.NET 1.1.0 - Additional AA & External Wallet Support
Additional helpers for smart wallet session keys and external wallets.
This update comes with a couple additions and changes that should make your developer experience slightly better.
Smart Wallets
Added SmartWallet.GetAllAdmins
and SmartWallet.GetAllActiveSigners
helper functions, to respectively get all the admins that might have been added using SmartWallet.AddAdmin
and all the temporary signers that were added using SmartWallet.CreateSessionKey
and are still unexpired.
GetAllAdmins
returns a List<string>
of all your admins.
GetAllActiveSigners
returns permissions similar to the inputs of CreateSessionKey
SignerPermissions
{
string Signer // the signer address
List<string> ApprovedTargets // contracts signer is allowed to interact with
BigInteger NativeTokenLimitPerTransaction // wei
BigInteger StartTimestamp // unix
BigInteger EndTimestamp // unix
}
Furthermore, these functions now throw when called directly on the Smart Wallet, to make sure signatures are 1271 compatible and not confuse developers by forwarding these calls down to the personal wallet acting as a signer.
Functions: SmartWallet.EthSign
, SmartWallet.RecoverAddressFromEthSign
and SmartWallet.PersonalSign(byte[])
External Accounts
As we begun implementing the .NET SDK on different platforms, we ran into an issue when integrating external wallet types on such platforms - EIP-712.
We've added a utility to remedy this: Utils.ToJsonExternalWalletFriendly<TMessage, TDomain>(TypedData typedData, TMessage message)
This method will convert any typed data parameters into correct and verifiable formats, specially in cases of EIP-1271 Smart Wallet type signatures. If you're implementing an external wallet, we recommend using this util in your IThirdwebWallet.SignTypedDataV4<TMessage,TDomain>
overrides.
This has been confirmed to work with MetaMask (native and extension) and WalletConnect.
Miscellaneous
Thirdweb.Pay
specific constants have been removed.
Previously, adding using Thirdweb
and using Thirdweb.Pay
made it annoying to accesss Thirdweb.Constants
- this is no longer the case.