@@ -643,6 +643,7 @@ public async Task<TransactionResult> AddAdmin(string admin)
643643 {
644644 if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
645645 throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
646+
646647 var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
647648 var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
648649 {
@@ -677,6 +678,7 @@ public async Task<TransactionResult> RemoveAdmin(string admin)
677678 {
678679 if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
679680 throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
681+
680682 var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
681683 var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
682684 {
@@ -735,6 +737,9 @@ string reqValidityEndTimestamp
735737 }
736738 else
737739 {
740+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
741+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
742+
738743 var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
739744 var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
740745 {
@@ -766,6 +771,9 @@ public async Task<TransactionResult> RevokeSessionKey(string signerAddress)
766771 }
767772 else
768773 {
774+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
775+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
776+
769777 var smartWallet = ThirdwebManager . Instance . SDK . session . ActiveWallet as Wallets . ThirdwebSmartWallet ;
770778 var request = new Contracts . Account . ContractDefinition . SignerPermissionRequest ( )
771779 {
@@ -804,6 +812,9 @@ public async Task<List<SignerWithPermissions>> GetAllActiveSigners()
804812 }
805813 else
806814 {
815+ if ( ThirdwebManager . Instance . SDK . session . ActiveWallet . GetProvider ( ) != WalletProvider . SmartWallet )
816+ throw new UnityException ( "This functionality is only available for SmartWallets." ) ;
817+
807818 string address = await GetAddress ( ) ;
808819 var raw = await TransactionManager . ThirdwebRead < Contracts . Account . ContractDefinition . GetAllActiveSignersFunction , Contracts . Account . ContractDefinition . GetAllActiveSignersOutputDTO > (
809820 address ,
@@ -846,6 +857,26 @@ public async Task<List<SignerWithPermissions>> GetAllActiveSigners()
846857 }
847858 }
848859
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+
849880 /// <summary>
850881 /// Sends a raw transaction from the connected wallet.
851882 /// </summary>
0 commit comments