@@ -643,6 +643,7 @@ public async Task<TransactionResult> AddAdmin(string admin)
643
643
{
644
644
if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
645
645
throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
646
+
646
647
var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
647
648
var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
648
649
{
@@ -677,6 +678,7 @@ public async Task<TransactionResult> RemoveAdmin(string admin)
677
678
{
678
679
if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
679
680
throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
681
+
680
682
var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
681
683
var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
682
684
{
@@ -735,6 +737,9 @@ string reqValidityEndTimestamp
735
737
}
736
738
else
737
739
{
740
+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
741
+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
742
+
738
743
var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
739
744
var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
740
745
{
@@ -766,6 +771,9 @@ public async Task<TransactionResult> RevokeSessionKey(string signerAddress)
766
771
}
767
772
else
768
773
{
774
+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
775
+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
776
+
769
777
var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
770
778
var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
771
779
{
@@ -804,6 +812,9 @@ public async Task<List<SignerWithPermissions>> GetAllActiveSigners()
804
812
}
805
813
else
806
814
{
815
+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
816
+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
817
+
807
818
string address = await GetAddress ( ) ;
808
819
var raw = await TransactionManager . ThirdwebRead < Contracts . Account . ContractDefinition . GetAllActiveSignersFunction , Contracts . Account . ContractDefinition . GetAllActiveSignersOutputDTO > (
809
820
address ,
@@ -846,6 +857,26 @@ public async Task<List<SignerWithPermissions>> GetAllActiveSigners()
846
857
}
847
858
}
848
859
860
+ /// <summary>
861
+ /// Smart Wallet only: check if the account is deployed.
862
+ /// </summary>
863
+ /// <returns>True if the account is deployed, false otherwise.</returns>
864
+ public async Task < bool > IsDeployed ( )
865
+ {
866
+ if ( Utils . IsWebGLBuild ( ) )
867
+ {
868
+ return await Bridge . SmartWalletIsDeployed ( ) ;
869
+ }
870
+ else
871
+ {
872
+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
873
+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
874
+
875
+ var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
876
+ return smartWallet . SmartWallet . IsDeployed ;
877
+ }
878
+ }
879
+
849
880
/// <summary>
850
881
/// Sends a raw transaction from the connected wallet.
851
882
/// </summary>
0 commit comments