thirdweb 5.74.0 → 5.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/adapters/ethers5.js +2 -2
- package/dist/cjs/adapters/ethers5.js.map +1 -1
- package/dist/cjs/adapters/ethers6.js.map +1 -1
- package/dist/cjs/auth/verify-hash.js +2 -1
- package/dist/cjs/auth/verify-hash.js.map +1 -1
- package/dist/cjs/auth/verify-signature.js.map +1 -1
- package/dist/cjs/contract/actions/resolve-abi.js +4 -0
- package/dist/cjs/contract/actions/resolve-abi.js.map +1 -1
- package/dist/cjs/exports/wallets/smart.js +3 -1
- package/dist/cjs/exports/wallets/smart.js.map +1 -1
- package/dist/cjs/extensions/erc1271/checkContractWalletSignedTypedData.js +6 -2
- package/dist/cjs/extensions/erc1271/checkContractWalletSignedTypedData.js.map +1 -1
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js +27 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js +27 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js +71 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js +132 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js +121 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js +114 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js +114 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/execute.js +127 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/execute.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js +132 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js +139 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js +139 -0
- package/dist/cjs/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js +32 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js +31 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js +70 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js +70 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js +122 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js +71 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js +71 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js +117 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js +157 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js +51 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js +117 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js +51 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js +117 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js +139 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js.map +1 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js +117 -0
- package/dist/cjs/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js.map +1 -0
- package/dist/cjs/extensions/marketplace/direct-listings/write/buyFromListing.js +6 -0
- package/dist/cjs/extensions/marketplace/direct-listings/write/buyFromListing.js.map +1 -1
- package/dist/cjs/extensions/pack/createNewPack.js +1 -0
- package/dist/cjs/extensions/pack/createNewPack.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/balance.js +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/balance.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/name.js +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/name.js.map +1 -1
- package/dist/cjs/react/web/utils/usePreloadWalletProviders.js +1 -1
- package/dist/cjs/react/web/utils/usePreloadWalletProviders.js.map +1 -1
- package/dist/cjs/transaction/actions/estimate-gas.js.map +1 -1
- package/dist/cjs/transaction/actions/gasless/providers/biconomy.js.map +1 -1
- package/dist/cjs/transaction/actions/gasless/providers/engine.js.map +1 -1
- package/dist/cjs/transaction/actions/gasless/providers/openzeppelin.js.map +1 -1
- package/dist/cjs/transaction/actions/sign-transaction.js +4 -7
- package/dist/cjs/transaction/actions/sign-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/to-serializable-transaction.js.map +1 -1
- package/dist/cjs/transaction/actions/zksync/getEip721Domain.js.map +1 -1
- package/dist/cjs/transaction/serialize-transaction.js +76 -9
- package/dist/cjs/transaction/serialize-transaction.js.map +1 -1
- package/dist/cjs/utils/any-evm/keyless-transaction.js +25 -4
- package/dist/cjs/utils/any-evm/keyless-transaction.js.map +1 -1
- package/dist/cjs/utils/hashing/hashMessage.js +2 -2
- package/dist/cjs/utils/hashing/hashMessage.js.map +1 -1
- package/dist/cjs/utils/hashing/hashTypedData.js +8 -6
- package/dist/cjs/utils/hashing/hashTypedData.js.map +1 -1
- package/dist/cjs/utils/signatures/helpers/{parseTypedData.js → parse-typed-data.js} +4 -4
- package/dist/cjs/utils/signatures/helpers/parse-typed-data.js.map +1 -0
- package/dist/cjs/utils/signatures/sign-message.js +12 -6
- package/dist/cjs/utils/signatures/sign-message.js.map +1 -1
- package/dist/cjs/utils/signatures/sign-typed-data.js +11 -8
- package/dist/cjs/utils/signatures/sign-typed-data.js.map +1 -1
- package/dist/cjs/utils/signatures/sign.js +4 -4
- package/dist/cjs/utils/signatures/sign.js.map +1 -1
- package/dist/cjs/utils/signatures/signature-to-hex.js +17 -10
- package/dist/cjs/utils/signatures/signature-to-hex.js.map +1 -1
- package/dist/cjs/utils/types.js +5 -0
- package/dist/cjs/utils/types.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/coinbase/{coinbaseMobileSDK.js → coinbase-mobile.js} +1 -1
- package/dist/cjs/wallets/coinbase/coinbase-mobile.js.map +1 -0
- package/dist/cjs/wallets/coinbase/coinbase-wallet.js +2 -2
- package/dist/cjs/wallets/coinbase/coinbase-wallet.js.map +1 -1
- package/dist/cjs/wallets/coinbase/{coinbaseWebSDK.js → coinbase-web.js} +11 -11
- package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -0
- package/dist/cjs/wallets/create-wallet.js +2 -2
- package/dist/cjs/wallets/create-wallet.js.map +1 -1
- package/dist/cjs/wallets/eip5792/get-calls-status.js +3 -3
- package/dist/cjs/wallets/eip5792/get-calls-status.js.map +1 -1
- package/dist/cjs/wallets/eip5792/get-capabilities.js +3 -3
- package/dist/cjs/wallets/eip5792/get-capabilities.js.map +1 -1
- package/dist/cjs/wallets/eip5792/send-calls.js +3 -3
- package/dist/cjs/wallets/eip5792/send-calls.js.map +1 -1
- package/dist/cjs/wallets/eip5792/show-calls-status.js +3 -3
- package/dist/cjs/wallets/eip5792/show-calls-status.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -1
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +2 -2
- package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +3 -3
- package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/cjs/wallets/injected/index.js +2 -2
- package/dist/cjs/wallets/injected/index.js.map +1 -1
- package/dist/cjs/wallets/native/create-wallet.js +2 -2
- package/dist/cjs/wallets/native/create-wallet.js.map +1 -1
- package/dist/cjs/wallets/private-key.js +2 -5
- package/dist/cjs/wallets/private-key.js.map +1 -1
- package/dist/cjs/wallets/smart/index.js +26 -160
- package/dist/cjs/wallets/smart/index.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js +1 -1
- package/dist/cjs/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/calls.js +2 -2
- package/dist/cjs/wallets/smart/lib/calls.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/paymaster.js +7 -6
- package/dist/cjs/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/cjs/wallets/smart/lib/signing.js +166 -0
- package/dist/cjs/wallets/smart/lib/signing.js.map +1 -0
- package/dist/cjs/wallets/smart/lib/userop.js +1 -1
- package/dist/cjs/wallets/smart/lib/userop.js.map +1 -1
- package/dist/cjs/wallets/smart/presets/7579.js +218 -0
- package/dist/cjs/wallets/smart/presets/7579.js.map +1 -0
- package/dist/cjs/wallets/smart/presets/index.js +6 -0
- package/dist/cjs/wallets/smart/presets/index.js.map +1 -0
- package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/cjs/wallets/smart/types.js.map +1 -1
- package/dist/cjs/wallets/wallet-connect/controller.js +2 -2
- package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
- package/dist/esm/adapters/ethers5.js +2 -2
- package/dist/esm/adapters/ethers5.js.map +1 -1
- package/dist/esm/adapters/ethers6.js.map +1 -1
- package/dist/esm/auth/verify-hash.js +2 -1
- package/dist/esm/auth/verify-hash.js.map +1 -1
- package/dist/esm/auth/verify-signature.js.map +1 -1
- package/dist/esm/contract/actions/resolve-abi.js +4 -0
- package/dist/esm/contract/actions/resolve-abi.js.map +1 -1
- package/dist/esm/exports/wallets/smart.js +2 -0
- package/dist/esm/exports/wallets/smart.js.map +1 -1
- package/dist/esm/extensions/erc1271/checkContractWalletSignedTypedData.js +6 -2
- package/dist/esm/extensions/erc1271/checkContractWalletSignedTypedData.js.map +1 -1
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js +24 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js +24 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js +65 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/accountId.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js +124 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js +113 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js +106 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js +106 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/execute.js +120 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/execute.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js +125 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js +132 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/installModule.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js +132 -0
- package/dist/esm/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js +29 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js +28 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js +64 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js +64 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js +114 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js +65 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js +65 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js +110 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js +150 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js +46 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js +110 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js +46 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js +110 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js +132 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.js.map +1 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js +110 -0
- package/dist/esm/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.js.map +1 -0
- package/dist/esm/extensions/marketplace/direct-listings/write/buyFromListing.js +6 -0
- package/dist/esm/extensions/marketplace/direct-listings/write/buyFromListing.js.map +1 -1
- package/dist/esm/extensions/pack/createNewPack.js +1 -0
- package/dist/esm/extensions/pack/createNewPack.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/avatar.js +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/balance.js +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/balance.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/name.js +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/name.js.map +1 -1
- package/dist/esm/react/web/utils/usePreloadWalletProviders.js +1 -1
- package/dist/esm/react/web/utils/usePreloadWalletProviders.js.map +1 -1
- package/dist/esm/transaction/actions/estimate-gas.js +3 -3
- package/dist/esm/transaction/actions/estimate-gas.js.map +1 -1
- package/dist/esm/transaction/actions/gasless/providers/biconomy.js.map +1 -1
- package/dist/esm/transaction/actions/gasless/providers/engine.js.map +1 -1
- package/dist/esm/transaction/actions/gasless/providers/openzeppelin.js.map +1 -1
- package/dist/esm/transaction/actions/sign-transaction.js +5 -8
- package/dist/esm/transaction/actions/sign-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/to-serializable-transaction.js.map +1 -1
- package/dist/esm/transaction/actions/zksync/getEip721Domain.js.map +1 -1
- package/dist/esm/transaction/serialize-transaction.js +76 -9
- package/dist/esm/transaction/serialize-transaction.js.map +1 -1
- package/dist/esm/utils/any-evm/keyless-transaction.js +26 -5
- package/dist/esm/utils/any-evm/keyless-transaction.js.map +1 -1
- package/dist/esm/utils/hashing/hashMessage.js +2 -2
- package/dist/esm/utils/hashing/hashMessage.js.map +1 -1
- package/dist/esm/utils/hashing/hashTypedData.js +8 -6
- package/dist/esm/utils/hashing/hashTypedData.js.map +1 -1
- package/dist/esm/utils/signatures/helpers/parse-typed-data.js +15 -0
- package/dist/esm/utils/signatures/helpers/parse-typed-data.js.map +1 -0
- package/dist/esm/utils/signatures/sign-message.js +12 -6
- package/dist/esm/utils/signatures/sign-message.js.map +1 -1
- package/dist/esm/utils/signatures/sign-typed-data.js +11 -8
- package/dist/esm/utils/signatures/sign-typed-data.js.map +1 -1
- package/dist/esm/utils/signatures/sign.js +4 -4
- package/dist/esm/utils/signatures/sign.js.map +1 -1
- package/dist/esm/utils/signatures/signature-to-hex.js +17 -10
- package/dist/esm/utils/signatures/signature-to-hex.js.map +1 -1
- package/dist/esm/utils/types.js +4 -1
- package/dist/esm/utils/types.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/coinbase/{coinbaseMobileSDK.js → coinbase-mobile.js} +1 -1
- package/dist/esm/wallets/coinbase/coinbase-mobile.js.map +1 -0
- package/dist/esm/wallets/coinbase/coinbase-wallet.js +2 -2
- package/dist/esm/wallets/coinbase/coinbase-wallet.js.map +1 -1
- package/dist/esm/wallets/coinbase/{coinbaseWebSDK.js → coinbase-web.js} +11 -11
- package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -0
- package/dist/esm/wallets/create-wallet.js +1 -1
- package/dist/esm/wallets/create-wallet.js.map +1 -1
- package/dist/esm/wallets/eip5792/get-calls-status.js +2 -2
- package/dist/esm/wallets/eip5792/get-calls-status.js.map +1 -1
- package/dist/esm/wallets/eip5792/get-capabilities.js +2 -2
- package/dist/esm/wallets/eip5792/get-capabilities.js.map +1 -1
- package/dist/esm/wallets/eip5792/send-calls.js +2 -2
- package/dist/esm/wallets/eip5792/send-calls.js.map +1 -1
- package/dist/esm/wallets/eip5792/show-calls-status.js +2 -2
- package/dist/esm/wallets/eip5792/show-calls-status.js.map +1 -1
- package/dist/esm/wallets/in-app/core/actions/sign-typed-data.enclave.js.map +1 -1
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +1 -1
- package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +2 -2
- package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
- package/dist/esm/wallets/injected/index.js +1 -1
- package/dist/esm/wallets/injected/index.js.map +1 -1
- package/dist/esm/wallets/native/create-wallet.js +1 -1
- package/dist/esm/wallets/native/create-wallet.js.map +1 -1
- package/dist/esm/wallets/private-key.js +2 -5
- package/dist/esm/wallets/private-key.js.map +1 -1
- package/dist/esm/wallets/smart/index.js +24 -158
- package/dist/esm/wallets/smart/index.js.map +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js +1 -1
- package/dist/esm/wallets/smart/lib/bundler.js.map +1 -1
- package/dist/esm/wallets/smart/lib/calls.js +2 -2
- package/dist/esm/wallets/smart/lib/calls.js.map +1 -1
- package/dist/esm/wallets/smart/lib/paymaster.js +7 -6
- package/dist/esm/wallets/smart/lib/paymaster.js.map +1 -1
- package/dist/esm/wallets/smart/lib/signing.js +161 -0
- package/dist/esm/wallets/smart/lib/signing.js.map +1 -0
- package/dist/esm/wallets/smart/lib/userop.js +1 -1
- package/dist/esm/wallets/smart/lib/userop.js.map +1 -1
- package/dist/esm/wallets/smart/presets/7579.js +215 -0
- package/dist/esm/wallets/smart/presets/7579.js.map +1 -0
- package/dist/esm/wallets/smart/presets/index.js +2 -0
- package/dist/esm/wallets/smart/presets/index.js.map +1 -0
- package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/esm/wallets/smart/types.js.map +1 -1
- package/dist/esm/wallets/wallet-connect/controller.js +1 -1
- package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
- package/dist/types/adapters/ethers5.d.ts.map +1 -1
- package/dist/types/adapters/ethers6.d.ts.map +1 -1
- package/dist/types/auth/verify-hash.d.ts.map +1 -1
- package/dist/types/auth/verify-signature.d.ts +2 -2
- package/dist/types/auth/verify-signature.d.ts.map +1 -1
- package/dist/types/contract/actions/resolve-abi.d.ts.map +1 -1
- package/dist/types/exports/wallets/smart.d.ts +1 -0
- package/dist/types/exports/wallets/smart.d.ts.map +1 -1
- package/dist/types/exports/wallets.d.ts +1 -1
- package/dist/types/exports/wallets.d.ts.map +1 -1
- package/dist/types/exports/wallets.native.d.ts +1 -1
- package/dist/types/exports/wallets.native.d.ts.map +1 -1
- package/dist/types/extensions/erc1271/checkContractWalletSignedTypedData.d.ts +4 -4
- package/dist/types/extensions/erc1271/checkContractWalletSignedTypedData.d.ts.map +1 -1
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.d.ts +29 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.d.ts +29 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/accountId.d.ts +44 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/accountId.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.d.ts +97 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.d.ts +90 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.d.ts +83 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.d.ts +83 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/execute.d.ts +86 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/execute.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.d.ts +86 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/installModule.d.ts +93 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/installModule.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.d.ts +93 -0
- package/dist/types/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.d.ts +51 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.d.ts +41 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts +44 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts +44 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts +90 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts +44 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts +44 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.d.ts +79 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.d.ts +107 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.d.ts +33 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.d.ts +79 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.d.ts +33 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.d.ts +79 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.d.ts +93 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.d.ts.map +1 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.d.ts +79 -0
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.d.ts.map +1 -0
- package/dist/types/extensions/marketplace/direct-listings/write/buyFromListing.d.ts.map +1 -1
- package/dist/types/extensions/pack/createNewPack.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/name.d.ts.map +1 -1
- package/dist/types/transaction/actions/gasless/providers/biconomy.d.ts +2 -2
- package/dist/types/transaction/actions/gasless/providers/biconomy.d.ts.map +1 -1
- package/dist/types/transaction/actions/gasless/providers/engine.d.ts +2 -2
- package/dist/types/transaction/actions/gasless/providers/engine.d.ts.map +1 -1
- package/dist/types/transaction/actions/gasless/providers/openzeppelin.d.ts +2 -2
- package/dist/types/transaction/actions/gasless/providers/openzeppelin.d.ts.map +1 -1
- package/dist/types/transaction/actions/gasless/send-gasless-transaction.d.ts +2 -2
- package/dist/types/transaction/actions/gasless/send-gasless-transaction.d.ts.map +1 -1
- package/dist/types/transaction/actions/sign-transaction.d.ts +2 -2
- package/dist/types/transaction/actions/sign-transaction.d.ts.map +1 -1
- package/dist/types/transaction/actions/to-serializable-transaction.d.ts.map +1 -1
- package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts +2 -2
- package/dist/types/transaction/actions/zksync/getEip721Domain.d.ts.map +1 -1
- package/dist/types/transaction/serialize-transaction.d.ts +24 -4
- package/dist/types/transaction/serialize-transaction.d.ts.map +1 -1
- package/dist/types/utils/any-evm/keyless-transaction.d.ts +6 -4
- package/dist/types/utils/any-evm/keyless-transaction.d.ts.map +1 -1
- package/dist/types/utils/hashing/hashMessage.d.ts +3 -2
- package/dist/types/utils/hashing/hashMessage.d.ts.map +1 -1
- package/dist/types/utils/hashing/hashTypedData.d.ts +3 -3
- package/dist/types/utils/hashing/hashTypedData.d.ts.map +1 -1
- package/dist/types/utils/signatures/helpers/parse-typed-data.d.ts +6 -0
- package/dist/types/utils/signatures/helpers/parse-typed-data.d.ts.map +1 -0
- package/dist/types/utils/signatures/sign-message.d.ts.map +1 -1
- package/dist/types/utils/signatures/sign-typed-data.d.ts +3 -4
- package/dist/types/utils/signatures/sign-typed-data.d.ts.map +1 -1
- package/dist/types/utils/signatures/sign.d.ts +6 -2
- package/dist/types/utils/signatures/sign.d.ts.map +1 -1
- package/dist/types/utils/signatures/signature-to-hex.d.ts +7 -3
- package/dist/types/utils/signatures/signature-to-hex.d.ts.map +1 -1
- package/dist/types/utils/types.d.ts +13 -0
- package/dist/types/utils/types.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/coinbase/{coinbaseMobileSDK.d.ts → coinbase-mobile.d.ts} +2 -2
- package/dist/types/wallets/coinbase/coinbase-mobile.d.ts.map +1 -0
- package/dist/types/wallets/coinbase/{coinbaseWebSDK.d.ts → coinbase-web.d.ts} +1 -1
- package/dist/types/wallets/coinbase/coinbase-web.d.ts.map +1 -0
- package/dist/types/wallets/in-app/core/actions/sign-typed-data.enclave.d.ts +3 -4
- package/dist/types/wallets/in-app/core/actions/sign-typed-data.enclave.d.ts.map +1 -1
- package/dist/types/wallets/interfaces/wallet.d.ts +6 -4
- package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
- package/dist/types/wallets/private-key.d.ts.map +1 -1
- package/dist/types/wallets/smart/index.d.ts +3 -2
- package/dist/types/wallets/smart/index.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/bundler.d.ts +3 -3
- package/dist/types/wallets/smart/lib/bundler.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/calls.d.ts +2 -2
- package/dist/types/wallets/smart/lib/calls.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/paymaster.d.ts.map +1 -1
- package/dist/types/wallets/smart/lib/signing.d.ts +20 -0
- package/dist/types/wallets/smart/lib/signing.d.ts.map +1 -0
- package/dist/types/wallets/smart/lib/userop.d.ts.map +1 -1
- package/dist/types/wallets/smart/presets/7579.d.ts +34 -0
- package/dist/types/wallets/smart/presets/7579.d.ts.map +1 -0
- package/dist/types/wallets/smart/presets/index.d.ts +2 -0
- package/dist/types/wallets/smart/presets/index.d.ts.map +1 -0
- package/dist/types/wallets/smart/smart-wallet.d.ts +2 -2
- package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
- package/dist/types/wallets/smart/types.d.ts +23 -9
- package/dist/types/wallets/smart/types.d.ts.map +1 -1
- package/dist/types/wallets/wallet-types.d.ts +1 -1
- package/dist/types/wallets/wallet-types.d.ts.map +1 -1
- package/package.json +23 -23
- package/src/adapters/ethers5.test.ts +92 -0
- package/src/adapters/ethers5.ts +6 -5
- package/src/adapters/ethers6.ts +3 -2
- package/src/adapters/viem.test.ts +5 -4
- package/src/auth/verify-hash.ts +2 -1
- package/src/auth/verify-signature.ts +2 -2
- package/src/contract/actions/resolve-abi.ts +6 -0
- package/src/exports/wallets/smart.ts +3 -0
- package/src/exports/wallets.native.ts +1 -1
- package/src/exports/wallets.ts +1 -1
- package/src/extensions/erc1271/checkContractWalletSignedTypedData.ts +9 -5
- package/src/extensions/erc7579/__generated__/IERC7579Account/events/ModuleInstalled.ts +24 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/events/ModuleUninstalled.ts +24 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/read/accountId.ts +71 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/read/isModuleInstalled.ts +153 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/read/isValidSignature.ts +133 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/read/supportsExecutionMode.ts +132 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/read/supportsModule.ts +128 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/write/execute.ts +149 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/write/executeFromExecutor.ts +158 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/write/installModule.ts +164 -0
- package/src/extensions/erc7579/__generated__/IERC7579Account/write/uninstallModule.ts +167 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/events/OwnershipTransferred.ts +49 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/events/Upgraded.ts +40 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.ts +70 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.ts +70 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.ts +134 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.ts +71 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.ts +71 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/addStake.ts +138 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/createAccountWithModules.ts +193 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/renounceOwnership.ts +50 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/transferOwnership.ts +139 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/unlockStake.ts +50 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/upgradeTo.ts +140 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/withdraw.ts +159 -0
- package/src/extensions/erc7579/__generated__/ModularAccountFactory/write/withdrawStake.ts +137 -0
- package/src/extensions/marketplace/direct-listings/direct-listings.test.ts +74 -14
- package/src/extensions/marketplace/direct-listings/write/buyFromListing.ts +6 -0
- package/src/extensions/pack/createNewPack.ts +1 -0
- package/src/react/web/ui/prebuilt/Account/avatar.tsx +1 -0
- package/src/react/web/ui/prebuilt/Account/balance.tsx +1 -0
- package/src/react/web/ui/prebuilt/Account/name.tsx +1 -0
- package/src/react/web/utils/usePreloadWalletProviders.ts +1 -1
- package/src/transaction/actions/estimate-gas.ts +3 -3
- package/src/transaction/actions/gasless/providers/biconomy.ts +3 -2
- package/src/transaction/actions/gasless/providers/engine.ts +2 -2
- package/src/transaction/actions/gasless/providers/openzeppelin.ts +2 -2
- package/src/transaction/actions/gasless/send-gasless-transaction.ts +2 -2
- package/src/transaction/actions/sign-transaction.test.ts +8 -15
- package/src/transaction/actions/sign-transaction.ts +9 -11
- package/src/transaction/actions/to-serializable-transaction.ts +2 -2
- package/src/transaction/actions/zksync/getEip721Domain.ts +2 -2
- package/src/transaction/serialize-transaction.test.ts +135 -229
- package/src/transaction/serialize-transaction.ts +131 -22
- package/src/utils/any-evm/keyless-transaction.test.ts +91 -0
- package/src/utils/any-evm/keyless-transaction.ts +43 -14
- package/src/utils/hashing/hashMessage.ts +4 -3
- package/src/utils/hashing/hashTypedData.ts +24 -27
- package/src/utils/signatures/helpers/parse-typed-data.test.ts +56 -0
- package/src/utils/signatures/helpers/parse-typed-data.ts +29 -0
- package/src/utils/signatures/sign-message.ts +15 -6
- package/src/utils/signatures/sign-typed-data.ts +18 -12
- package/src/utils/signatures/sign.ts +5 -6
- package/src/utils/signatures/signature-to-hex.ts +29 -13
- package/src/utils/types.ts +17 -0
- package/src/version.ts +1 -1
- package/src/wallets/coinbase/coinbase-mobile.test.ts +69 -0
- package/src/wallets/coinbase/{coinbaseMobileSDK.ts → coinbase-mobile.ts} +1 -1
- package/src/wallets/coinbase/coinbase-wallet.ts +2 -2
- package/src/wallets/coinbase/coinbase-web.test.ts +176 -0
- package/src/wallets/coinbase/{coinbaseWebSDK.ts → coinbase-web.ts} +13 -17
- package/src/wallets/create-wallet.ts +1 -1
- package/src/wallets/eip5792/get-calls-status.ts +2 -2
- package/src/wallets/eip5792/get-capabilities.ts +2 -2
- package/src/wallets/eip5792/send-calls.ts +2 -2
- package/src/wallets/eip5792/show-calls-status.ts +2 -2
- package/src/wallets/in-app/core/actions/sign-typed-data.enclave.ts +3 -4
- package/src/wallets/in-app/core/wallet/enclave-wallet.ts +1 -1
- package/src/wallets/in-app/web/lib/iframe-wallet.ts +2 -2
- package/src/wallets/injected/index.ts +1 -1
- package/src/wallets/interfaces/wallet.ts +7 -11
- package/src/wallets/native/create-wallet.ts +1 -1
- package/src/wallets/private-key.ts +16 -14
- package/src/wallets/smart/index.ts +31 -218
- package/src/wallets/smart/lib/bundler.ts +5 -4
- package/src/wallets/smart/lib/calls.ts +4 -2
- package/src/wallets/smart/lib/paymaster.ts +8 -6
- package/src/wallets/smart/lib/signing.ts +231 -0
- package/src/wallets/smart/lib/userop.ts +3 -2
- package/src/wallets/smart/presets/7579.ts +269 -0
- package/src/wallets/smart/presets/index.ts +1 -0
- package/src/wallets/smart/smart-wallet-dev.test.ts +5 -4
- package/src/wallets/smart/smart-wallet-integration-v07.test.ts +299 -0
- package/src/wallets/smart/smart-wallet-integration.test.ts +399 -0
- package/src/wallets/smart/smart-wallet-modular.test.ts +134 -0
- package/src/wallets/smart/smart-wallet.ts +3 -5
- package/src/wallets/smart/smart.test.ts +87 -0
- package/src/wallets/smart/types.ts +31 -8
- package/src/wallets/wallet-connect/controller.ts +1 -1
- package/src/wallets/wallet-connect/receiver/session-request.test.ts +5 -5
- package/src/wallets/wallet-types.ts +1 -1
- package/dist/cjs/utils/signatures/helpers/parseTypedData.js.map +0 -1
- package/dist/cjs/wallets/coinbase/coinbaseMobileSDK.js.map +0 -1
- package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +0 -1
- package/dist/esm/utils/signatures/helpers/parseTypedData.js +0 -15
- package/dist/esm/utils/signatures/helpers/parseTypedData.js.map +0 -1
- package/dist/esm/wallets/coinbase/coinbaseMobileSDK.js.map +0 -1
- package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +0 -1
- package/dist/types/utils/signatures/helpers/parseTypedData.d.ts +0 -7
- package/dist/types/utils/signatures/helpers/parseTypedData.d.ts.map +0 -1
- package/dist/types/wallets/coinbase/coinbaseMobileSDK.d.ts.map +0 -1
- package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts.map +0 -1
- package/src/utils/signatures/helpers/parseTypedData.ts +0 -25
package/src/adapters/ethers5.ts
CHANGED
@@ -2,7 +2,7 @@ import type { Abi } from "abitype";
|
|
2
2
|
import * as universalethers from "ethers";
|
3
3
|
import type * as ethers5 from "ethers5";
|
4
4
|
import type * as ethers6 from "ethers6";
|
5
|
-
import type { AccessList, Hex
|
5
|
+
import type { AccessList, Hex } from "viem";
|
6
6
|
import type { Chain } from "../chains/types.js";
|
7
7
|
import { getRpcUrlForChain } from "../chains/utils.js";
|
8
8
|
import type { ThirdwebClient } from "../client/client.js";
|
@@ -10,6 +10,7 @@ import { type ThirdwebContract, getContract } from "../contract/contract.js";
|
|
10
10
|
import { toSerializableTransaction } from "../transaction/actions/to-serializable-transaction.js";
|
11
11
|
import { waitForReceipt } from "../transaction/actions/wait-for-tx-receipt.js";
|
12
12
|
import type { PreparedTransaction } from "../transaction/prepare-transaction.js";
|
13
|
+
import type { SerializableTransaction } from "../transaction/serialize-transaction.js";
|
13
14
|
import { toHex } from "../utils/encoding/hex.js";
|
14
15
|
import type { Account } from "../wallets/interfaces/wallet.js";
|
15
16
|
|
@@ -39,7 +40,7 @@ function assertEthers5(
|
|
39
40
|
): asserts ethers is typeof ethers5 {
|
40
41
|
if (!isEthers5(ethers)) {
|
41
42
|
throw new Error(
|
42
|
-
"You seem to be using ethers@6, please use the `ethers6Adapter()",
|
43
|
+
"You seem to be using ethers@6, please use the `ethers6Adapter()`",
|
43
44
|
);
|
44
45
|
}
|
45
46
|
}
|
@@ -279,6 +280,7 @@ export function toEthersProvider(
|
|
279
280
|
client: ThirdwebClient,
|
280
281
|
chain: Chain,
|
281
282
|
): ethers5.providers.Provider {
|
283
|
+
assertEthers5(ethers);
|
282
284
|
const url = getRpcUrlForChain({ chain, client });
|
283
285
|
const headers: HeadersInit = {
|
284
286
|
"Content-Type": "application/json",
|
@@ -588,7 +590,7 @@ export async function toEthersSigner(
|
|
588
590
|
* @internal
|
589
591
|
*/
|
590
592
|
function alignTxToEthers(
|
591
|
-
tx:
|
593
|
+
tx: SerializableTransaction,
|
592
594
|
): ethers5.ethers.utils.Deferrable<ethers5.ethers.providers.TransactionRequest> {
|
593
595
|
const { to: viemTo, type: viemType, gas, ...rest } = tx;
|
594
596
|
// massage "to" to fit ethers
|
@@ -623,8 +625,7 @@ function alignTxToEthers(
|
|
623
625
|
gasLimit: gas,
|
624
626
|
to,
|
625
627
|
type,
|
626
|
-
|
627
|
-
};
|
628
|
+
} as ethers5.ethers.utils.Deferrable<ethers5.ethers.providers.TransactionRequest>;
|
628
629
|
}
|
629
630
|
|
630
631
|
async function alignTxFromEthers(
|
package/src/adapters/ethers6.ts
CHANGED
@@ -2,13 +2,14 @@ import type { Abi } from "abitype";
|
|
2
2
|
import * as universalethers from "ethers";
|
3
3
|
import type * as ethers5 from "ethers5";
|
4
4
|
import type * as ethers6 from "ethers6";
|
5
|
-
import type { AccessList, Hex
|
5
|
+
import type { AccessList, Hex } from "viem";
|
6
6
|
import type { Chain } from "../chains/types.js";
|
7
7
|
import { getRpcUrlForChain } from "../chains/utils.js";
|
8
8
|
import type { ThirdwebClient } from "../client/client.js";
|
9
9
|
import { type ThirdwebContract, getContract } from "../contract/contract.js";
|
10
10
|
import { toSerializableTransaction } from "../transaction/actions/to-serializable-transaction.js";
|
11
11
|
import type { PreparedTransaction } from "../transaction/prepare-transaction.js";
|
12
|
+
import type { SerializableTransaction } from "../transaction/serialize-transaction.js";
|
12
13
|
import { toHex } from "../utils/encoding/hex.js";
|
13
14
|
import { resolvePromisedValue } from "../utils/promise/resolve-promised-value.js";
|
14
15
|
import type { Account } from "../wallets/interfaces/wallet.js";
|
@@ -493,7 +494,7 @@ export function toEthersSigner(
|
|
493
494
|
* @returns The aligned transaction object.
|
494
495
|
* @internal
|
495
496
|
*/
|
496
|
-
function alignTxToEthers(tx:
|
497
|
+
function alignTxToEthers(tx: SerializableTransaction) {
|
497
498
|
const { type: viemType, ...rest } = tx;
|
498
499
|
|
499
500
|
// massage "type" to fit ethers
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import type { Account as ViemAccount } from "viem";
|
2
2
|
import { privateKeyToAccount as viemPrivateKeyToAccount } from "viem/accounts";
|
3
3
|
import { beforeAll, describe, expect, test } from "vitest";
|
4
4
|
import { USDT_ABI } from "~test/abis/usdt.js";
|
@@ -6,7 +6,7 @@ import {
|
|
6
6
|
USDT_CONTRACT_ADDRESS,
|
7
7
|
USDT_CONTRACT_WITH_ABI,
|
8
8
|
} from "~test/test-contracts.js";
|
9
|
-
import { ANVIL_PKEY_A } from "~test/test-wallets.js";
|
9
|
+
import { ANVIL_PKEY_A, TEST_ACCOUNT_B } from "~test/test-wallets.js";
|
10
10
|
import { typedData } from "~test/typed-data.js";
|
11
11
|
|
12
12
|
import { ANVIL_CHAIN, FORKED_ETHEREUM_CHAIN } from "../../test/src/chains.js";
|
@@ -87,6 +87,7 @@ describe("walletClient.toViem", () => {
|
|
87
87
|
if (!walletClient.account) {
|
88
88
|
throw new Error("Account not found");
|
89
89
|
}
|
90
|
+
|
90
91
|
const txHash = await walletClient.sendTransaction({
|
91
92
|
account: walletClient.account,
|
92
93
|
chain: {
|
@@ -101,8 +102,8 @@ describe("walletClient.toViem", () => {
|
|
101
102
|
decimals: ANVIL_CHAIN.nativeCurrency?.decimals || 18,
|
102
103
|
},
|
103
104
|
},
|
104
|
-
to:
|
105
|
-
value:
|
105
|
+
to: TEST_ACCOUNT_B.address,
|
106
|
+
value: 10n,
|
106
107
|
});
|
107
108
|
expect(txHash).toBeDefined();
|
108
109
|
expect(txHash.slice(0, 2)).toBe("0x");
|
package/src/auth/verify-hash.ts
CHANGED
@@ -129,7 +129,8 @@ export async function verifyHash({
|
|
129
129
|
try {
|
130
130
|
const result = await eth_call(rpcRequest, verificationData);
|
131
131
|
return hexToBool(result);
|
132
|
-
} catch {
|
132
|
+
} catch (err) {
|
133
|
+
console.error("Error verifying ERC-6492 signature", err);
|
133
134
|
// Some chains do not support the eth_call simulation and will fail, so we fall back to regular EIP1271 validation
|
134
135
|
const validEip1271 = await verifyEip1271Signature({
|
135
136
|
hash,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { type Signature, recoverAddress } from "viem";
|
1
|
+
import { type SignableMessage, type Signature, recoverAddress } from "viem";
|
2
2
|
import type { Chain } from "../chains/types.js";
|
3
3
|
import type { ThirdwebClient } from "../client/client.js";
|
4
4
|
import { type Hex, isHex } from "../utils/encoding/hex.js";
|
@@ -10,7 +10,7 @@ import { verifyHash } from "./verify-hash.js";
|
|
10
10
|
* @auth
|
11
11
|
*/
|
12
12
|
export type VerifyEOASignatureParams = {
|
13
|
-
message: string;
|
13
|
+
message: string | SignableMessage;
|
14
14
|
signature: string | Uint8Array | Signature;
|
15
15
|
address: string;
|
16
16
|
};
|
@@ -41,6 +41,12 @@ export function resolveContractAbi<abi extends Abi>(
|
|
41
41
|
if (contract.abi) {
|
42
42
|
return contract.abi as abi;
|
43
43
|
}
|
44
|
+
|
45
|
+
// for local chains, we need to resolve the composite abi from bytecode
|
46
|
+
if (contract.chain.id === 31337 || contract.chain.id === 1337) {
|
47
|
+
return await resolveCompositeAbi(contract as ThirdwebContract);
|
48
|
+
}
|
49
|
+
|
44
50
|
// try to get it from the api
|
45
51
|
try {
|
46
52
|
return await resolveAbiFromContractApi(contract, contractApiBaseUrl);
|
@@ -107,7 +107,7 @@ export const authenticateWithRedirect = () => {
|
|
107
107
|
export type {
|
108
108
|
CoinbaseWalletCreationOptions,
|
109
109
|
CoinbaseSDKWalletConnectionOptions,
|
110
|
-
} from "../wallets/coinbase/
|
110
|
+
} from "../wallets/coinbase/coinbase-web.js";
|
111
111
|
|
112
112
|
export type {
|
113
113
|
WalletEmitter,
|
package/src/exports/wallets.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import * as ox__TypedData from "ox/TypedData";
|
2
2
|
import type { ThirdwebContract } from "../../contract/contract.js";
|
3
3
|
import { isHex } from "../../utils/encoding/hex.js";
|
4
4
|
import { isValidSignature } from "./__generated__/isValidSignature/read/isValidSignature.js";
|
@@ -7,11 +7,11 @@ import { isValidSignature } from "./__generated__/isValidSignature/read/isValidS
|
|
7
7
|
* @extension ERC1271
|
8
8
|
*/
|
9
9
|
export type CheckContractWalletSignTypedDataOptions<
|
10
|
-
typedData extends TypedData | Record<string, unknown>,
|
10
|
+
typedData extends ox__TypedData.TypedData | Record<string, unknown>,
|
11
11
|
primaryType extends keyof typedData | "EIP712Domain" = keyof typedData,
|
12
12
|
> = {
|
13
13
|
contract: ThirdwebContract;
|
14
|
-
data:
|
14
|
+
data: ox__TypedData.Definition<typedData, primaryType>;
|
15
15
|
signature: string;
|
16
16
|
};
|
17
17
|
const MAGIC_VALUE = "0x1626ba7e";
|
@@ -42,7 +42,7 @@ const MAGIC_VALUE = "0x1626ba7e";
|
|
42
42
|
* @returns A promise that resolves with a boolean indicating if the signature is valid.
|
43
43
|
*/
|
44
44
|
export async function checkContractWalletSignedTypedData<
|
45
|
-
typedData extends TypedData | Record<string, unknown>,
|
45
|
+
typedData extends ox__TypedData.TypedData | Record<string, unknown>,
|
46
46
|
primaryType extends keyof typedData | "EIP712Domain" = keyof typedData,
|
47
47
|
>(options: CheckContractWalletSignTypedDataOptions<typedData, primaryType>) {
|
48
48
|
if (!isHex(options.signature)) {
|
@@ -50,7 +50,11 @@ export async function checkContractWalletSignedTypedData<
|
|
50
50
|
}
|
51
51
|
const result = await isValidSignature({
|
52
52
|
contract: options.contract,
|
53
|
-
hash:
|
53
|
+
hash: ox__TypedData.hashStruct({
|
54
|
+
primaryType: options.data.primaryType,
|
55
|
+
data: options.data.message as Record<string, unknown>,
|
56
|
+
types: options.data.types as ox__TypedData.Definition["types"],
|
57
|
+
}),
|
54
58
|
signature: options.signature,
|
55
59
|
});
|
56
60
|
return result === MAGIC_VALUE;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { prepareEvent } from "../../../../../event/prepare-event.js";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Creates an event object for the ModuleInstalled event.
|
5
|
+
* @returns The prepared event object.
|
6
|
+
* @extension ERC7579
|
7
|
+
* @example
|
8
|
+
* ```ts
|
9
|
+
* import { getContractEvents } from "thirdweb";
|
10
|
+
* import { moduleInstalledEvent } from "thirdweb/extensions/erc7579";
|
11
|
+
*
|
12
|
+
* const events = await getContractEvents({
|
13
|
+
* contract,
|
14
|
+
* events: [
|
15
|
+
* moduleInstalledEvent()
|
16
|
+
* ],
|
17
|
+
* });
|
18
|
+
* ```
|
19
|
+
*/
|
20
|
+
export function moduleInstalledEvent() {
|
21
|
+
return prepareEvent({
|
22
|
+
signature: "event ModuleInstalled(uint256 moduleTypeId, address module)",
|
23
|
+
});
|
24
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { prepareEvent } from "../../../../../event/prepare-event.js";
|
2
|
+
|
3
|
+
/**
|
4
|
+
* Creates an event object for the ModuleUninstalled event.
|
5
|
+
* @returns The prepared event object.
|
6
|
+
* @extension ERC7579
|
7
|
+
* @example
|
8
|
+
* ```ts
|
9
|
+
* import { getContractEvents } from "thirdweb";
|
10
|
+
* import { moduleUninstalledEvent } from "thirdweb/extensions/erc7579";
|
11
|
+
*
|
12
|
+
* const events = await getContractEvents({
|
13
|
+
* contract,
|
14
|
+
* events: [
|
15
|
+
* moduleUninstalledEvent()
|
16
|
+
* ],
|
17
|
+
* });
|
18
|
+
* ```
|
19
|
+
*/
|
20
|
+
export function moduleUninstalledEvent() {
|
21
|
+
return prepareEvent({
|
22
|
+
signature: "event ModuleUninstalled(uint256 moduleTypeId, address module)",
|
23
|
+
});
|
24
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { readContract } from "../../../../../transaction/read-contract.js";
|
2
|
+
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
3
|
+
|
4
|
+
import { decodeAbiParameters } from "viem";
|
5
|
+
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
6
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
7
|
+
|
8
|
+
export const FN_SELECTOR = "0x9cfd7cff" as const;
|
9
|
+
const FN_INPUTS = [] as const;
|
10
|
+
const FN_OUTPUTS = [
|
11
|
+
{
|
12
|
+
type: "string",
|
13
|
+
name: "accountImplementationId",
|
14
|
+
},
|
15
|
+
] as const;
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Checks if the `accountId` method is supported by the given contract.
|
19
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
20
|
+
* @returns A boolean indicating if the `accountId` method is supported.
|
21
|
+
* @extension ERC7579
|
22
|
+
* @example
|
23
|
+
* ```ts
|
24
|
+
* import { isAccountIdSupported } from "thirdweb/extensions/erc7579";
|
25
|
+
* const supported = isAccountIdSupported(["0x..."]);
|
26
|
+
* ```
|
27
|
+
*/
|
28
|
+
export function isAccountIdSupported(availableSelectors: string[]) {
|
29
|
+
return detectMethod({
|
30
|
+
availableSelectors,
|
31
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Decodes the result of the accountId function call.
|
37
|
+
* @param result - The hexadecimal result to decode.
|
38
|
+
* @returns The decoded result as per the FN_OUTPUTS definition.
|
39
|
+
* @extension ERC7579
|
40
|
+
* @example
|
41
|
+
* ```ts
|
42
|
+
* import { decodeAccountIdResult } from "thirdweb/extensions/erc7579";
|
43
|
+
* const result = decodeAccountIdResultResult("...");
|
44
|
+
* ```
|
45
|
+
*/
|
46
|
+
export function decodeAccountIdResult(result: Hex) {
|
47
|
+
return decodeAbiParameters(FN_OUTPUTS, result)[0];
|
48
|
+
}
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Calls the "accountId" function on the contract.
|
52
|
+
* @param options - The options for the accountId function.
|
53
|
+
* @returns The parsed result of the function call.
|
54
|
+
* @extension ERC7579
|
55
|
+
* @example
|
56
|
+
* ```ts
|
57
|
+
* import { accountId } from "thirdweb/extensions/erc7579";
|
58
|
+
*
|
59
|
+
* const result = await accountId({
|
60
|
+
* contract,
|
61
|
+
* });
|
62
|
+
*
|
63
|
+
* ```
|
64
|
+
*/
|
65
|
+
export async function accountId(options: BaseTransactionOptions) {
|
66
|
+
return readContract({
|
67
|
+
contract: options.contract,
|
68
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
69
|
+
params: [],
|
70
|
+
});
|
71
|
+
}
|
@@ -0,0 +1,153 @@
|
|
1
|
+
import type { AbiParameterToPrimitiveType } from "abitype";
|
2
|
+
import { readContract } from "../../../../../transaction/read-contract.js";
|
3
|
+
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
4
|
+
import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
|
5
|
+
import { decodeAbiParameters } from "viem";
|
6
|
+
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
7
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Represents the parameters for the "isModuleInstalled" function.
|
11
|
+
*/
|
12
|
+
export type IsModuleInstalledParams = {
|
13
|
+
moduleTypeId: AbiParameterToPrimitiveType<{
|
14
|
+
type: "uint256";
|
15
|
+
name: "moduleTypeId";
|
16
|
+
}>;
|
17
|
+
module: AbiParameterToPrimitiveType<{ type: "address"; name: "module" }>;
|
18
|
+
additionalContext: AbiParameterToPrimitiveType<{
|
19
|
+
type: "bytes";
|
20
|
+
name: "additionalContext";
|
21
|
+
}>;
|
22
|
+
};
|
23
|
+
|
24
|
+
export const FN_SELECTOR = "0x112d3a7d" as const;
|
25
|
+
const FN_INPUTS = [
|
26
|
+
{
|
27
|
+
type: "uint256",
|
28
|
+
name: "moduleTypeId",
|
29
|
+
},
|
30
|
+
{
|
31
|
+
type: "address",
|
32
|
+
name: "module",
|
33
|
+
},
|
34
|
+
{
|
35
|
+
type: "bytes",
|
36
|
+
name: "additionalContext",
|
37
|
+
},
|
38
|
+
] as const;
|
39
|
+
const FN_OUTPUTS = [
|
40
|
+
{
|
41
|
+
type: "bool",
|
42
|
+
},
|
43
|
+
] as const;
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Checks if the `isModuleInstalled` method is supported by the given contract.
|
47
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
48
|
+
* @returns A boolean indicating if the `isModuleInstalled` method is supported.
|
49
|
+
* @extension ERC7579
|
50
|
+
* @example
|
51
|
+
* ```ts
|
52
|
+
* import { isIsModuleInstalledSupported } from "thirdweb/extensions/erc7579";
|
53
|
+
* const supported = isIsModuleInstalledSupported(["0x..."]);
|
54
|
+
* ```
|
55
|
+
*/
|
56
|
+
export function isIsModuleInstalledSupported(availableSelectors: string[]) {
|
57
|
+
return detectMethod({
|
58
|
+
availableSelectors,
|
59
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
60
|
+
});
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Encodes the parameters for the "isModuleInstalled" function.
|
65
|
+
* @param options - The options for the isModuleInstalled function.
|
66
|
+
* @returns The encoded ABI parameters.
|
67
|
+
* @extension ERC7579
|
68
|
+
* @example
|
69
|
+
* ```ts
|
70
|
+
* import { encodeIsModuleInstalledParams } from "thirdweb/extensions/erc7579";
|
71
|
+
* const result = encodeIsModuleInstalledParams({
|
72
|
+
* moduleTypeId: ...,
|
73
|
+
* module: ...,
|
74
|
+
* additionalContext: ...,
|
75
|
+
* });
|
76
|
+
* ```
|
77
|
+
*/
|
78
|
+
export function encodeIsModuleInstalledParams(
|
79
|
+
options: IsModuleInstalledParams,
|
80
|
+
) {
|
81
|
+
return encodeAbiParameters(FN_INPUTS, [
|
82
|
+
options.moduleTypeId,
|
83
|
+
options.module,
|
84
|
+
options.additionalContext,
|
85
|
+
]);
|
86
|
+
}
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Encodes the "isModuleInstalled" function into a Hex string with its parameters.
|
90
|
+
* @param options - The options for the isModuleInstalled function.
|
91
|
+
* @returns The encoded hexadecimal string.
|
92
|
+
* @extension ERC7579
|
93
|
+
* @example
|
94
|
+
* ```ts
|
95
|
+
* import { encodeIsModuleInstalled } from "thirdweb/extensions/erc7579";
|
96
|
+
* const result = encodeIsModuleInstalled({
|
97
|
+
* moduleTypeId: ...,
|
98
|
+
* module: ...,
|
99
|
+
* additionalContext: ...,
|
100
|
+
* });
|
101
|
+
* ```
|
102
|
+
*/
|
103
|
+
export function encodeIsModuleInstalled(options: IsModuleInstalledParams) {
|
104
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
105
|
+
// we can do this because we know the specific formats of the values
|
106
|
+
return (FN_SELECTOR +
|
107
|
+
encodeIsModuleInstalledParams(options).slice(
|
108
|
+
2,
|
109
|
+
)) as `${typeof FN_SELECTOR}${string}`;
|
110
|
+
}
|
111
|
+
|
112
|
+
/**
|
113
|
+
* Decodes the result of the isModuleInstalled function call.
|
114
|
+
* @param result - The hexadecimal result to decode.
|
115
|
+
* @returns The decoded result as per the FN_OUTPUTS definition.
|
116
|
+
* @extension ERC7579
|
117
|
+
* @example
|
118
|
+
* ```ts
|
119
|
+
* import { decodeIsModuleInstalledResult } from "thirdweb/extensions/erc7579";
|
120
|
+
* const result = decodeIsModuleInstalledResultResult("...");
|
121
|
+
* ```
|
122
|
+
*/
|
123
|
+
export function decodeIsModuleInstalledResult(result: Hex) {
|
124
|
+
return decodeAbiParameters(FN_OUTPUTS, result)[0];
|
125
|
+
}
|
126
|
+
|
127
|
+
/**
|
128
|
+
* Calls the "isModuleInstalled" function on the contract.
|
129
|
+
* @param options - The options for the isModuleInstalled function.
|
130
|
+
* @returns The parsed result of the function call.
|
131
|
+
* @extension ERC7579
|
132
|
+
* @example
|
133
|
+
* ```ts
|
134
|
+
* import { isModuleInstalled } from "thirdweb/extensions/erc7579";
|
135
|
+
*
|
136
|
+
* const result = await isModuleInstalled({
|
137
|
+
* contract,
|
138
|
+
* moduleTypeId: ...,
|
139
|
+
* module: ...,
|
140
|
+
* additionalContext: ...,
|
141
|
+
* });
|
142
|
+
*
|
143
|
+
* ```
|
144
|
+
*/
|
145
|
+
export async function isModuleInstalled(
|
146
|
+
options: BaseTransactionOptions<IsModuleInstalledParams>,
|
147
|
+
) {
|
148
|
+
return readContract({
|
149
|
+
contract: options.contract,
|
150
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
151
|
+
params: [options.moduleTypeId, options.module, options.additionalContext],
|
152
|
+
});
|
153
|
+
}
|
@@ -0,0 +1,133 @@
|
|
1
|
+
import type { AbiParameterToPrimitiveType } from "abitype";
|
2
|
+
import { readContract } from "../../../../../transaction/read-contract.js";
|
3
|
+
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
4
|
+
import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
|
5
|
+
import { decodeAbiParameters } from "viem";
|
6
|
+
import type { Hex } from "../../../../../utils/encoding/hex.js";
|
7
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
8
|
+
|
9
|
+
/**
|
10
|
+
* Represents the parameters for the "isValidSignature" function.
|
11
|
+
*/
|
12
|
+
export type IsValidSignatureParams = {
|
13
|
+
hash: AbiParameterToPrimitiveType<{ type: "bytes32"; name: "hash" }>;
|
14
|
+
data: AbiParameterToPrimitiveType<{ type: "bytes"; name: "data" }>;
|
15
|
+
};
|
16
|
+
|
17
|
+
export const FN_SELECTOR = "0x1626ba7e" as const;
|
18
|
+
const FN_INPUTS = [
|
19
|
+
{
|
20
|
+
type: "bytes32",
|
21
|
+
name: "hash",
|
22
|
+
},
|
23
|
+
{
|
24
|
+
type: "bytes",
|
25
|
+
name: "data",
|
26
|
+
},
|
27
|
+
] as const;
|
28
|
+
const FN_OUTPUTS = [
|
29
|
+
{
|
30
|
+
type: "bytes4",
|
31
|
+
},
|
32
|
+
] as const;
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Checks if the `isValidSignature` method is supported by the given contract.
|
36
|
+
* @param availableSelectors An array of 4byte function selectors of the contract. You can get this in various ways, such as using "whatsabi" or if you have the ABI of the contract available you can use it to generate the selectors.
|
37
|
+
* @returns A boolean indicating if the `isValidSignature` method is supported.
|
38
|
+
* @extension ERC7579
|
39
|
+
* @example
|
40
|
+
* ```ts
|
41
|
+
* import { isIsValidSignatureSupported } from "thirdweb/extensions/erc7579";
|
42
|
+
* const supported = isIsValidSignatureSupported(["0x..."]);
|
43
|
+
* ```
|
44
|
+
*/
|
45
|
+
export function isIsValidSignatureSupported(availableSelectors: string[]) {
|
46
|
+
return detectMethod({
|
47
|
+
availableSelectors,
|
48
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
49
|
+
});
|
50
|
+
}
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Encodes the parameters for the "isValidSignature" function.
|
54
|
+
* @param options - The options for the isValidSignature function.
|
55
|
+
* @returns The encoded ABI parameters.
|
56
|
+
* @extension ERC7579
|
57
|
+
* @example
|
58
|
+
* ```ts
|
59
|
+
* import { encodeIsValidSignatureParams } from "thirdweb/extensions/erc7579";
|
60
|
+
* const result = encodeIsValidSignatureParams({
|
61
|
+
* hash: ...,
|
62
|
+
* data: ...,
|
63
|
+
* });
|
64
|
+
* ```
|
65
|
+
*/
|
66
|
+
export function encodeIsValidSignatureParams(options: IsValidSignatureParams) {
|
67
|
+
return encodeAbiParameters(FN_INPUTS, [options.hash, options.data]);
|
68
|
+
}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Encodes the "isValidSignature" function into a Hex string with its parameters.
|
72
|
+
* @param options - The options for the isValidSignature function.
|
73
|
+
* @returns The encoded hexadecimal string.
|
74
|
+
* @extension ERC7579
|
75
|
+
* @example
|
76
|
+
* ```ts
|
77
|
+
* import { encodeIsValidSignature } from "thirdweb/extensions/erc7579";
|
78
|
+
* const result = encodeIsValidSignature({
|
79
|
+
* hash: ...,
|
80
|
+
* data: ...,
|
81
|
+
* });
|
82
|
+
* ```
|
83
|
+
*/
|
84
|
+
export function encodeIsValidSignature(options: IsValidSignatureParams) {
|
85
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
86
|
+
// we can do this because we know the specific formats of the values
|
87
|
+
return (FN_SELECTOR +
|
88
|
+
encodeIsValidSignatureParams(options).slice(
|
89
|
+
2,
|
90
|
+
)) as `${typeof FN_SELECTOR}${string}`;
|
91
|
+
}
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Decodes the result of the isValidSignature function call.
|
95
|
+
* @param result - The hexadecimal result to decode.
|
96
|
+
* @returns The decoded result as per the FN_OUTPUTS definition.
|
97
|
+
* @extension ERC7579
|
98
|
+
* @example
|
99
|
+
* ```ts
|
100
|
+
* import { decodeIsValidSignatureResult } from "thirdweb/extensions/erc7579";
|
101
|
+
* const result = decodeIsValidSignatureResultResult("...");
|
102
|
+
* ```
|
103
|
+
*/
|
104
|
+
export function decodeIsValidSignatureResult(result: Hex) {
|
105
|
+
return decodeAbiParameters(FN_OUTPUTS, result)[0];
|
106
|
+
}
|
107
|
+
|
108
|
+
/**
|
109
|
+
* Calls the "isValidSignature" function on the contract.
|
110
|
+
* @param options - The options for the isValidSignature function.
|
111
|
+
* @returns The parsed result of the function call.
|
112
|
+
* @extension ERC7579
|
113
|
+
* @example
|
114
|
+
* ```ts
|
115
|
+
* import { isValidSignature } from "thirdweb/extensions/erc7579";
|
116
|
+
*
|
117
|
+
* const result = await isValidSignature({
|
118
|
+
* contract,
|
119
|
+
* hash: ...,
|
120
|
+
* data: ...,
|
121
|
+
* });
|
122
|
+
*
|
123
|
+
* ```
|
124
|
+
*/
|
125
|
+
export async function isValidSignature(
|
126
|
+
options: BaseTransactionOptions<IsValidSignatureParams>,
|
127
|
+
) {
|
128
|
+
return readContract({
|
129
|
+
contract: options.contract,
|
130
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
131
|
+
params: [options.hash, options.data],
|
132
|
+
});
|
133
|
+
}
|