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
@@ -0,0 +1,50 @@
|
|
1
|
+
import type { BaseTransactionOptions } from "../../../../../transaction/types.js";
|
2
|
+
import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
|
3
|
+
|
4
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
5
|
+
|
6
|
+
export const FN_SELECTOR = "0xbb9fe6bf" as const;
|
7
|
+
const FN_INPUTS = [] as const;
|
8
|
+
const FN_OUTPUTS = [] as const;
|
9
|
+
|
10
|
+
/**
|
11
|
+
* Checks if the `unlockStake` method is supported by the given contract.
|
12
|
+
* @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.
|
13
|
+
* @returns A boolean indicating if the `unlockStake` method is supported.
|
14
|
+
* @extension ERC7579
|
15
|
+
* @example
|
16
|
+
* ```ts
|
17
|
+
* import { isUnlockStakeSupported } from "thirdweb/extensions/erc7579";
|
18
|
+
*
|
19
|
+
* const supported = isUnlockStakeSupported(["0x..."]);
|
20
|
+
* ```
|
21
|
+
*/
|
22
|
+
export function isUnlockStakeSupported(availableSelectors: string[]) {
|
23
|
+
return detectMethod({
|
24
|
+
availableSelectors,
|
25
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
26
|
+
});
|
27
|
+
}
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Prepares a transaction to call the "unlockStake" function on the contract.
|
31
|
+
* @param options - The options for the "unlockStake" function.
|
32
|
+
* @returns A prepared transaction object.
|
33
|
+
* @extension ERC7579
|
34
|
+
* @example
|
35
|
+
* ```ts
|
36
|
+
* import { sendTransaction } from "thirdweb";
|
37
|
+
* import { unlockStake } from "thirdweb/extensions/erc7579";
|
38
|
+
*
|
39
|
+
* const transaction = unlockStake();
|
40
|
+
*
|
41
|
+
* // Send the transaction
|
42
|
+
* await sendTransaction({ transaction, account });
|
43
|
+
* ```
|
44
|
+
*/
|
45
|
+
export function unlockStake(options: BaseTransactionOptions) {
|
46
|
+
return prepareContractCall({
|
47
|
+
contract: options.contract,
|
48
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
49
|
+
});
|
50
|
+
}
|
@@ -0,0 +1,140 @@
|
|
1
|
+
import type { AbiParameterToPrimitiveType } from "abitype";
|
2
|
+
import type {
|
3
|
+
BaseTransactionOptions,
|
4
|
+
WithOverrides,
|
5
|
+
} from "../../../../../transaction/types.js";
|
6
|
+
import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
|
7
|
+
import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
|
8
|
+
import { once } from "../../../../../utils/promise/once.js";
|
9
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Represents the parameters for the "upgradeTo" function.
|
13
|
+
*/
|
14
|
+
export type UpgradeToParams = WithOverrides<{
|
15
|
+
newImplementation: AbiParameterToPrimitiveType<{
|
16
|
+
type: "address";
|
17
|
+
name: "newImplementation";
|
18
|
+
}>;
|
19
|
+
}>;
|
20
|
+
|
21
|
+
export const FN_SELECTOR = "0x3659cfe6" as const;
|
22
|
+
const FN_INPUTS = [
|
23
|
+
{
|
24
|
+
type: "address",
|
25
|
+
name: "newImplementation",
|
26
|
+
},
|
27
|
+
] as const;
|
28
|
+
const FN_OUTPUTS = [] as const;
|
29
|
+
|
30
|
+
/**
|
31
|
+
* Checks if the `upgradeTo` method is supported by the given contract.
|
32
|
+
* @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.
|
33
|
+
* @returns A boolean indicating if the `upgradeTo` method is supported.
|
34
|
+
* @extension ERC7579
|
35
|
+
* @example
|
36
|
+
* ```ts
|
37
|
+
* import { isUpgradeToSupported } from "thirdweb/extensions/erc7579";
|
38
|
+
*
|
39
|
+
* const supported = isUpgradeToSupported(["0x..."]);
|
40
|
+
* ```
|
41
|
+
*/
|
42
|
+
export function isUpgradeToSupported(availableSelectors: string[]) {
|
43
|
+
return detectMethod({
|
44
|
+
availableSelectors,
|
45
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
46
|
+
});
|
47
|
+
}
|
48
|
+
|
49
|
+
/**
|
50
|
+
* Encodes the parameters for the "upgradeTo" function.
|
51
|
+
* @param options - The options for the upgradeTo function.
|
52
|
+
* @returns The encoded ABI parameters.
|
53
|
+
* @extension ERC7579
|
54
|
+
* @example
|
55
|
+
* ```ts
|
56
|
+
* import { encodeUpgradeToParams } from "thirdweb/extensions/erc7579";
|
57
|
+
* const result = encodeUpgradeToParams({
|
58
|
+
* newImplementation: ...,
|
59
|
+
* });
|
60
|
+
* ```
|
61
|
+
*/
|
62
|
+
export function encodeUpgradeToParams(options: UpgradeToParams) {
|
63
|
+
return encodeAbiParameters(FN_INPUTS, [options.newImplementation]);
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Encodes the "upgradeTo" function into a Hex string with its parameters.
|
68
|
+
* @param options - The options for the upgradeTo function.
|
69
|
+
* @returns The encoded hexadecimal string.
|
70
|
+
* @extension ERC7579
|
71
|
+
* @example
|
72
|
+
* ```ts
|
73
|
+
* import { encodeUpgradeTo } from "thirdweb/extensions/erc7579";
|
74
|
+
* const result = encodeUpgradeTo({
|
75
|
+
* newImplementation: ...,
|
76
|
+
* });
|
77
|
+
* ```
|
78
|
+
*/
|
79
|
+
export function encodeUpgradeTo(options: UpgradeToParams) {
|
80
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
81
|
+
// we can do this because we know the specific formats of the values
|
82
|
+
return (FN_SELECTOR +
|
83
|
+
encodeUpgradeToParams(options).slice(
|
84
|
+
2,
|
85
|
+
)) as `${typeof FN_SELECTOR}${string}`;
|
86
|
+
}
|
87
|
+
|
88
|
+
/**
|
89
|
+
* Prepares a transaction to call the "upgradeTo" function on the contract.
|
90
|
+
* @param options - The options for the "upgradeTo" function.
|
91
|
+
* @returns A prepared transaction object.
|
92
|
+
* @extension ERC7579
|
93
|
+
* @example
|
94
|
+
* ```ts
|
95
|
+
* import { sendTransaction } from "thirdweb";
|
96
|
+
* import { upgradeTo } from "thirdweb/extensions/erc7579";
|
97
|
+
*
|
98
|
+
* const transaction = upgradeTo({
|
99
|
+
* contract,
|
100
|
+
* newImplementation: ...,
|
101
|
+
* overrides: {
|
102
|
+
* ...
|
103
|
+
* }
|
104
|
+
* });
|
105
|
+
*
|
106
|
+
* // Send the transaction
|
107
|
+
* await sendTransaction({ transaction, account });
|
108
|
+
* ```
|
109
|
+
*/
|
110
|
+
export function upgradeTo(
|
111
|
+
options: BaseTransactionOptions<
|
112
|
+
| UpgradeToParams
|
113
|
+
| {
|
114
|
+
asyncParams: () => Promise<UpgradeToParams>;
|
115
|
+
}
|
116
|
+
>,
|
117
|
+
) {
|
118
|
+
const asyncOptions = once(async () => {
|
119
|
+
return "asyncParams" in options ? await options.asyncParams() : options;
|
120
|
+
});
|
121
|
+
|
122
|
+
return prepareContractCall({
|
123
|
+
contract: options.contract,
|
124
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
125
|
+
params: async () => {
|
126
|
+
const resolvedOptions = await asyncOptions();
|
127
|
+
return [resolvedOptions.newImplementation] as const;
|
128
|
+
},
|
129
|
+
value: async () => (await asyncOptions()).overrides?.value,
|
130
|
+
accessList: async () => (await asyncOptions()).overrides?.accessList,
|
131
|
+
gas: async () => (await asyncOptions()).overrides?.gas,
|
132
|
+
gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
|
133
|
+
maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
|
134
|
+
maxPriorityFeePerGas: async () =>
|
135
|
+
(await asyncOptions()).overrides?.maxPriorityFeePerGas,
|
136
|
+
nonce: async () => (await asyncOptions()).overrides?.nonce,
|
137
|
+
extraGas: async () => (await asyncOptions()).overrides?.extraGas,
|
138
|
+
erc20Value: async () => (await asyncOptions()).overrides?.erc20Value,
|
139
|
+
});
|
140
|
+
}
|
@@ -0,0 +1,159 @@
|
|
1
|
+
import type { AbiParameterToPrimitiveType } from "abitype";
|
2
|
+
import type {
|
3
|
+
BaseTransactionOptions,
|
4
|
+
WithOverrides,
|
5
|
+
} from "../../../../../transaction/types.js";
|
6
|
+
import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
|
7
|
+
import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
|
8
|
+
import { once } from "../../../../../utils/promise/once.js";
|
9
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Represents the parameters for the "withdraw" function.
|
13
|
+
*/
|
14
|
+
export type WithdrawParams = WithOverrides<{
|
15
|
+
to: AbiParameterToPrimitiveType<{ type: "address"; name: "to" }>;
|
16
|
+
token: AbiParameterToPrimitiveType<{ type: "address"; name: "token" }>;
|
17
|
+
amount: AbiParameterToPrimitiveType<{ type: "uint256"; name: "amount" }>;
|
18
|
+
}>;
|
19
|
+
|
20
|
+
export const FN_SELECTOR = "0xd9caed12" as const;
|
21
|
+
const FN_INPUTS = [
|
22
|
+
{
|
23
|
+
type: "address",
|
24
|
+
name: "to",
|
25
|
+
},
|
26
|
+
{
|
27
|
+
type: "address",
|
28
|
+
name: "token",
|
29
|
+
},
|
30
|
+
{
|
31
|
+
type: "uint256",
|
32
|
+
name: "amount",
|
33
|
+
},
|
34
|
+
] as const;
|
35
|
+
const FN_OUTPUTS = [] as const;
|
36
|
+
|
37
|
+
/**
|
38
|
+
* Checks if the `withdraw` method is supported by the given contract.
|
39
|
+
* @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.
|
40
|
+
* @returns A boolean indicating if the `withdraw` method is supported.
|
41
|
+
* @extension ERC7579
|
42
|
+
* @example
|
43
|
+
* ```ts
|
44
|
+
* import { isWithdrawSupported } from "thirdweb/extensions/erc7579";
|
45
|
+
*
|
46
|
+
* const supported = isWithdrawSupported(["0x..."]);
|
47
|
+
* ```
|
48
|
+
*/
|
49
|
+
export function isWithdrawSupported(availableSelectors: string[]) {
|
50
|
+
return detectMethod({
|
51
|
+
availableSelectors,
|
52
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
53
|
+
});
|
54
|
+
}
|
55
|
+
|
56
|
+
/**
|
57
|
+
* Encodes the parameters for the "withdraw" function.
|
58
|
+
* @param options - The options for the withdraw function.
|
59
|
+
* @returns The encoded ABI parameters.
|
60
|
+
* @extension ERC7579
|
61
|
+
* @example
|
62
|
+
* ```ts
|
63
|
+
* import { encodeWithdrawParams } from "thirdweb/extensions/erc7579";
|
64
|
+
* const result = encodeWithdrawParams({
|
65
|
+
* to: ...,
|
66
|
+
* token: ...,
|
67
|
+
* amount: ...,
|
68
|
+
* });
|
69
|
+
* ```
|
70
|
+
*/
|
71
|
+
export function encodeWithdrawParams(options: WithdrawParams) {
|
72
|
+
return encodeAbiParameters(FN_INPUTS, [
|
73
|
+
options.to,
|
74
|
+
options.token,
|
75
|
+
options.amount,
|
76
|
+
]);
|
77
|
+
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Encodes the "withdraw" function into a Hex string with its parameters.
|
81
|
+
* @param options - The options for the withdraw function.
|
82
|
+
* @returns The encoded hexadecimal string.
|
83
|
+
* @extension ERC7579
|
84
|
+
* @example
|
85
|
+
* ```ts
|
86
|
+
* import { encodeWithdraw } from "thirdweb/extensions/erc7579";
|
87
|
+
* const result = encodeWithdraw({
|
88
|
+
* to: ...,
|
89
|
+
* token: ...,
|
90
|
+
* amount: ...,
|
91
|
+
* });
|
92
|
+
* ```
|
93
|
+
*/
|
94
|
+
export function encodeWithdraw(options: WithdrawParams) {
|
95
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
96
|
+
// we can do this because we know the specific formats of the values
|
97
|
+
return (FN_SELECTOR +
|
98
|
+
encodeWithdrawParams(options).slice(2)) as `${typeof FN_SELECTOR}${string}`;
|
99
|
+
}
|
100
|
+
|
101
|
+
/**
|
102
|
+
* Prepares a transaction to call the "withdraw" function on the contract.
|
103
|
+
* @param options - The options for the "withdraw" function.
|
104
|
+
* @returns A prepared transaction object.
|
105
|
+
* @extension ERC7579
|
106
|
+
* @example
|
107
|
+
* ```ts
|
108
|
+
* import { sendTransaction } from "thirdweb";
|
109
|
+
* import { withdraw } from "thirdweb/extensions/erc7579";
|
110
|
+
*
|
111
|
+
* const transaction = withdraw({
|
112
|
+
* contract,
|
113
|
+
* to: ...,
|
114
|
+
* token: ...,
|
115
|
+
* amount: ...,
|
116
|
+
* overrides: {
|
117
|
+
* ...
|
118
|
+
* }
|
119
|
+
* });
|
120
|
+
*
|
121
|
+
* // Send the transaction
|
122
|
+
* await sendTransaction({ transaction, account });
|
123
|
+
* ```
|
124
|
+
*/
|
125
|
+
export function withdraw(
|
126
|
+
options: BaseTransactionOptions<
|
127
|
+
| WithdrawParams
|
128
|
+
| {
|
129
|
+
asyncParams: () => Promise<WithdrawParams>;
|
130
|
+
}
|
131
|
+
>,
|
132
|
+
) {
|
133
|
+
const asyncOptions = once(async () => {
|
134
|
+
return "asyncParams" in options ? await options.asyncParams() : options;
|
135
|
+
});
|
136
|
+
|
137
|
+
return prepareContractCall({
|
138
|
+
contract: options.contract,
|
139
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
140
|
+
params: async () => {
|
141
|
+
const resolvedOptions = await asyncOptions();
|
142
|
+
return [
|
143
|
+
resolvedOptions.to,
|
144
|
+
resolvedOptions.token,
|
145
|
+
resolvedOptions.amount,
|
146
|
+
] as const;
|
147
|
+
},
|
148
|
+
value: async () => (await asyncOptions()).overrides?.value,
|
149
|
+
accessList: async () => (await asyncOptions()).overrides?.accessList,
|
150
|
+
gas: async () => (await asyncOptions()).overrides?.gas,
|
151
|
+
gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
|
152
|
+
maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
|
153
|
+
maxPriorityFeePerGas: async () =>
|
154
|
+
(await asyncOptions()).overrides?.maxPriorityFeePerGas,
|
155
|
+
nonce: async () => (await asyncOptions()).overrides?.nonce,
|
156
|
+
extraGas: async () => (await asyncOptions()).overrides?.extraGas,
|
157
|
+
erc20Value: async () => (await asyncOptions()).overrides?.erc20Value,
|
158
|
+
});
|
159
|
+
}
|
@@ -0,0 +1,137 @@
|
|
1
|
+
import type { AbiParameterToPrimitiveType } from "abitype";
|
2
|
+
import type {
|
3
|
+
BaseTransactionOptions,
|
4
|
+
WithOverrides,
|
5
|
+
} from "../../../../../transaction/types.js";
|
6
|
+
import { prepareContractCall } from "../../../../../transaction/prepare-contract-call.js";
|
7
|
+
import { encodeAbiParameters } from "../../../../../utils/abi/encodeAbiParameters.js";
|
8
|
+
import { once } from "../../../../../utils/promise/once.js";
|
9
|
+
import { detectMethod } from "../../../../../utils/bytecode/detectExtension.js";
|
10
|
+
|
11
|
+
/**
|
12
|
+
* Represents the parameters for the "withdrawStake" function.
|
13
|
+
*/
|
14
|
+
export type WithdrawStakeParams = WithOverrides<{
|
15
|
+
to: AbiParameterToPrimitiveType<{ type: "address"; name: "to" }>;
|
16
|
+
}>;
|
17
|
+
|
18
|
+
export const FN_SELECTOR = "0xc23a5cea" as const;
|
19
|
+
const FN_INPUTS = [
|
20
|
+
{
|
21
|
+
type: "address",
|
22
|
+
name: "to",
|
23
|
+
},
|
24
|
+
] as const;
|
25
|
+
const FN_OUTPUTS = [] as const;
|
26
|
+
|
27
|
+
/**
|
28
|
+
* Checks if the `withdrawStake` method is supported by the given contract.
|
29
|
+
* @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.
|
30
|
+
* @returns A boolean indicating if the `withdrawStake` method is supported.
|
31
|
+
* @extension ERC7579
|
32
|
+
* @example
|
33
|
+
* ```ts
|
34
|
+
* import { isWithdrawStakeSupported } from "thirdweb/extensions/erc7579";
|
35
|
+
*
|
36
|
+
* const supported = isWithdrawStakeSupported(["0x..."]);
|
37
|
+
* ```
|
38
|
+
*/
|
39
|
+
export function isWithdrawStakeSupported(availableSelectors: string[]) {
|
40
|
+
return detectMethod({
|
41
|
+
availableSelectors,
|
42
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
43
|
+
});
|
44
|
+
}
|
45
|
+
|
46
|
+
/**
|
47
|
+
* Encodes the parameters for the "withdrawStake" function.
|
48
|
+
* @param options - The options for the withdrawStake function.
|
49
|
+
* @returns The encoded ABI parameters.
|
50
|
+
* @extension ERC7579
|
51
|
+
* @example
|
52
|
+
* ```ts
|
53
|
+
* import { encodeWithdrawStakeParams } from "thirdweb/extensions/erc7579";
|
54
|
+
* const result = encodeWithdrawStakeParams({
|
55
|
+
* to: ...,
|
56
|
+
* });
|
57
|
+
* ```
|
58
|
+
*/
|
59
|
+
export function encodeWithdrawStakeParams(options: WithdrawStakeParams) {
|
60
|
+
return encodeAbiParameters(FN_INPUTS, [options.to]);
|
61
|
+
}
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Encodes the "withdrawStake" function into a Hex string with its parameters.
|
65
|
+
* @param options - The options for the withdrawStake function.
|
66
|
+
* @returns The encoded hexadecimal string.
|
67
|
+
* @extension ERC7579
|
68
|
+
* @example
|
69
|
+
* ```ts
|
70
|
+
* import { encodeWithdrawStake } from "thirdweb/extensions/erc7579";
|
71
|
+
* const result = encodeWithdrawStake({
|
72
|
+
* to: ...,
|
73
|
+
* });
|
74
|
+
* ```
|
75
|
+
*/
|
76
|
+
export function encodeWithdrawStake(options: WithdrawStakeParams) {
|
77
|
+
// we do a "manual" concat here to avoid the overhead of the "concatHex" function
|
78
|
+
// we can do this because we know the specific formats of the values
|
79
|
+
return (FN_SELECTOR +
|
80
|
+
encodeWithdrawStakeParams(options).slice(
|
81
|
+
2,
|
82
|
+
)) as `${typeof FN_SELECTOR}${string}`;
|
83
|
+
}
|
84
|
+
|
85
|
+
/**
|
86
|
+
* Prepares a transaction to call the "withdrawStake" function on the contract.
|
87
|
+
* @param options - The options for the "withdrawStake" function.
|
88
|
+
* @returns A prepared transaction object.
|
89
|
+
* @extension ERC7579
|
90
|
+
* @example
|
91
|
+
* ```ts
|
92
|
+
* import { sendTransaction } from "thirdweb";
|
93
|
+
* import { withdrawStake } from "thirdweb/extensions/erc7579";
|
94
|
+
*
|
95
|
+
* const transaction = withdrawStake({
|
96
|
+
* contract,
|
97
|
+
* to: ...,
|
98
|
+
* overrides: {
|
99
|
+
* ...
|
100
|
+
* }
|
101
|
+
* });
|
102
|
+
*
|
103
|
+
* // Send the transaction
|
104
|
+
* await sendTransaction({ transaction, account });
|
105
|
+
* ```
|
106
|
+
*/
|
107
|
+
export function withdrawStake(
|
108
|
+
options: BaseTransactionOptions<
|
109
|
+
| WithdrawStakeParams
|
110
|
+
| {
|
111
|
+
asyncParams: () => Promise<WithdrawStakeParams>;
|
112
|
+
}
|
113
|
+
>,
|
114
|
+
) {
|
115
|
+
const asyncOptions = once(async () => {
|
116
|
+
return "asyncParams" in options ? await options.asyncParams() : options;
|
117
|
+
});
|
118
|
+
|
119
|
+
return prepareContractCall({
|
120
|
+
contract: options.contract,
|
121
|
+
method: [FN_SELECTOR, FN_INPUTS, FN_OUTPUTS] as const,
|
122
|
+
params: async () => {
|
123
|
+
const resolvedOptions = await asyncOptions();
|
124
|
+
return [resolvedOptions.to] as const;
|
125
|
+
},
|
126
|
+
value: async () => (await asyncOptions()).overrides?.value,
|
127
|
+
accessList: async () => (await asyncOptions()).overrides?.accessList,
|
128
|
+
gas: async () => (await asyncOptions()).overrides?.gas,
|
129
|
+
gasPrice: async () => (await asyncOptions()).overrides?.gasPrice,
|
130
|
+
maxFeePerGas: async () => (await asyncOptions()).overrides?.maxFeePerGas,
|
131
|
+
maxPriorityFeePerGas: async () =>
|
132
|
+
(await asyncOptions()).overrides?.maxPriorityFeePerGas,
|
133
|
+
nonce: async () => (await asyncOptions()).overrides?.nonce,
|
134
|
+
extraGas: async () => (await asyncOptions()).overrides?.extraGas,
|
135
|
+
erc20Value: async () => (await asyncOptions()).overrides?.erc20Value,
|
136
|
+
});
|
137
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
1
|
+
import { beforeAll, describe, expect, it } from "vitest";
|
2
2
|
import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
|
3
3
|
import { ANVIL_CHAIN } from "../../../../test/src/chains.js";
|
4
4
|
import { TEST_CLIENT } from "../../../../test/src/test-clients.js";
|
@@ -7,11 +7,18 @@ import {
|
|
7
7
|
TEST_ACCOUNT_B,
|
8
8
|
TEST_ACCOUNT_C,
|
9
9
|
} from "../../../../test/src/test-wallets.js";
|
10
|
-
import {
|
10
|
+
import {
|
11
|
+
type ThirdwebContract,
|
12
|
+
getContract,
|
13
|
+
} from "../../../contract/contract.js";
|
11
14
|
import { parseEventLogs } from "../../../event/actions/parse-logs.js";
|
15
|
+
import { getApprovalForTransaction } from "../../../extensions/erc20/write/getApprovalForTransaction.js";
|
12
16
|
import { setApprovalForAll as setApprovalForAll721 } from "../../../extensions/erc721/__generated__/IERC721A/write/setApprovalForAll.js";
|
13
17
|
import { mintTo as mintToErc1155 } from "../../../extensions/erc1155/write/mintTo.js";
|
18
|
+
import { deployERC20Contract } from "../../../extensions/prebuilts/deploy-erc20.js";
|
14
19
|
import { sendAndConfirmTransaction } from "../../../transaction/actions/send-and-confirm-transaction.js";
|
20
|
+
import { sendTransaction } from "../../../transaction/actions/send-transaction.js";
|
21
|
+
import { resolvePromisedValue } from "../../../utils/promise/resolve-promised-value.js";
|
15
22
|
import { balanceOf as balanceOfErc721 } from "../../erc721/__generated__/IERC721A/read/balanceOf.js";
|
16
23
|
import { mintTo as mintToErc721 } from "../../erc721/write/mintTo.js";
|
17
24
|
import { balanceOf as balanceOfErc1155 } from "../../erc1155/__generated__/IERC1155/read/balanceOf.js";
|
@@ -32,7 +39,11 @@ const chain = ANVIL_CHAIN;
|
|
32
39
|
const client = TEST_CLIENT;
|
33
40
|
|
34
41
|
describe.runIf(process.env.TW_SECRET_KEY)("Marketplace Direct Listings", () => {
|
35
|
-
|
42
|
+
let marketplaceContract: ThirdwebContract;
|
43
|
+
let erc721Contract: ThirdwebContract;
|
44
|
+
let erc1155Contract: ThirdwebContract;
|
45
|
+
|
46
|
+
beforeAll(async () => {
|
36
47
|
const marketplaceAddress = await deployMarketplaceContract({
|
37
48
|
account: TEST_ACCOUNT_A,
|
38
49
|
chain,
|
@@ -63,17 +74,17 @@ describe.runIf(process.env.TW_SECRET_KEY)("Marketplace Direct Listings", () => {
|
|
63
74
|
},
|
64
75
|
});
|
65
76
|
|
66
|
-
|
77
|
+
marketplaceContract = getContract({
|
67
78
|
address: marketplaceAddress,
|
68
79
|
chain,
|
69
80
|
client,
|
70
81
|
});
|
71
|
-
|
82
|
+
erc721Contract = getContract({
|
72
83
|
address: erc721Address,
|
73
84
|
chain,
|
74
85
|
client,
|
75
86
|
});
|
76
|
-
|
87
|
+
erc1155Contract = getContract({
|
77
88
|
address: erc1155Address,
|
78
89
|
chain,
|
79
90
|
client,
|
@@ -119,9 +130,10 @@ describe.runIf(process.env.TW_SECRET_KEY)("Marketplace Direct Listings", () => {
|
|
119
130
|
}),
|
120
131
|
}),
|
121
132
|
]);
|
122
|
-
|
123
133
|
// ---- set up completed ---- //
|
134
|
+
}, 120_000);
|
124
135
|
|
136
|
+
it("should work with ERC721", async () => {
|
125
137
|
// listings should be 0 length to start
|
126
138
|
const [allListings, totalListingCount] = await Promise.all([
|
127
139
|
getAllListings({
|
@@ -244,14 +256,12 @@ describe.runIf(process.env.TW_SECRET_KEY)("Marketplace Direct Listings", () => {
|
|
244
256
|
expect(nftBalanceOfAccountAAfterPurchase).toBe(1n);
|
245
257
|
// expect the seller to no longer have the nft
|
246
258
|
expect(nftBalanceOfAccountBAfterPurchase).toBe(0n);
|
259
|
+
}, 120_000);
|
247
260
|
|
248
|
-
|
249
|
-
* ============ now do the same tests but for ERC1155 =============
|
250
|
-
*/
|
251
|
-
|
261
|
+
it("should work with ERC1155", async () => {
|
252
262
|
// this should fail because we're listing more than we have
|
253
263
|
await expect(
|
254
|
-
|
264
|
+
sendTransaction({
|
255
265
|
transaction: createListing({
|
256
266
|
contract: marketplaceContract,
|
257
267
|
assetContractAddress: erc1155Contract.address,
|
@@ -284,7 +294,7 @@ describe.runIf(process.env.TW_SECRET_KEY)("Marketplace Direct Listings", () => {
|
|
284
294
|
logs: receipt1155.logs,
|
285
295
|
});
|
286
296
|
|
287
|
-
expect(
|
297
|
+
expect(listingEvents1155.length).toBe(1);
|
288
298
|
|
289
299
|
// biome-ignore lint/style/noNonNullAssertion: OK in tests
|
290
300
|
const listingEvent1155 = listingEvents1155[0]!;
|
@@ -384,5 +394,55 @@ describe.runIf(process.env.TW_SECRET_KEY)("Marketplace Direct Listings", () => {
|
|
384
394
|
expect(nft1155BalanceOfAccountAAfterPurchase).toBe(1n);
|
385
395
|
// expect the seller to have one less 1155 token
|
386
396
|
expect(nft1155BalanceOfAccountCAfterPurchase).toBe(99n);
|
387
|
-
|
397
|
+
|
398
|
+
/**
|
399
|
+
* buyFromListing transaction (for listing with ERC20 currency) should have proper erc20 value
|
400
|
+
* so that getApprovalForTransaction can work properly
|
401
|
+
*/
|
402
|
+
const erc20Address = await deployERC20Contract({
|
403
|
+
chain,
|
404
|
+
client,
|
405
|
+
account: TEST_ACCOUNT_C,
|
406
|
+
type: "TokenERC20",
|
407
|
+
params: {
|
408
|
+
name: "MyToken",
|
409
|
+
contractURI: TEST_CONTRACT_URI,
|
410
|
+
},
|
411
|
+
});
|
412
|
+
await sendAndConfirmTransaction({
|
413
|
+
transaction: createListing({
|
414
|
+
contract: marketplaceContract,
|
415
|
+
assetContractAddress: erc1155Contract.address,
|
416
|
+
tokenId: 0n,
|
417
|
+
pricePerToken: "0.01",
|
418
|
+
quantity: 1n,
|
419
|
+
currencyContractAddress: erc20Address,
|
420
|
+
}),
|
421
|
+
account: TEST_ACCOUNT_C,
|
422
|
+
});
|
423
|
+
// get the last listing id
|
424
|
+
const _allListings = await getAllListings({
|
425
|
+
contract: marketplaceContract,
|
426
|
+
});
|
427
|
+
const latestListing = _allListings.at(-1);
|
428
|
+
expect(latestListing).toBeDefined();
|
429
|
+
if (!latestListing) {
|
430
|
+
throw new Error("Cannot get listings");
|
431
|
+
}
|
432
|
+
const buyListingTx = buyFromListing({
|
433
|
+
contract: marketplaceContract,
|
434
|
+
listingId: latestListing.id,
|
435
|
+
quantity: 1n,
|
436
|
+
recipient: TEST_ACCOUNT_C.address,
|
437
|
+
});
|
438
|
+
expect(await resolvePromisedValue(buyListingTx.erc20Value)).toStrictEqual({
|
439
|
+
amountWei: BigInt(1e16),
|
440
|
+
tokenAddress: erc20Address,
|
441
|
+
});
|
442
|
+
const approveTx = await getApprovalForTransaction({
|
443
|
+
transaction: buyListingTx,
|
444
|
+
account: TEST_ACCOUNT_A,
|
445
|
+
});
|
446
|
+
expect(approveTx).not.toBe(null);
|
447
|
+
}, 120_000);
|
388
448
|
});
|
@@ -66,6 +66,12 @@ export function buyFromListing(
|
|
66
66
|
? listing.pricePerToken * options.quantity
|
67
67
|
: 0n,
|
68
68
|
extraGas: 50_000n, // add extra gas to account for router call
|
69
|
+
erc20Value: isNativeTokenAddress(listing.currencyContractAddress)
|
70
|
+
? undefined
|
71
|
+
: {
|
72
|
+
amountWei: listing.pricePerToken * options.quantity,
|
73
|
+
tokenAddress: listing.currencyContractAddress,
|
74
|
+
},
|
69
75
|
},
|
70
76
|
};
|
71
77
|
},
|