thirdweb 5.86.1 → 5.86.3

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.
Files changed (439) hide show
  1. package/dist/cjs/adapters/viem.js +3 -2
  2. package/dist/cjs/adapters/viem.js.map +1 -1
  3. package/dist/cjs/auth/verify-hash.js +24 -0
  4. package/dist/cjs/auth/verify-hash.js.map +1 -1
  5. package/dist/cjs/chains/chain-definitions/abstract.js +19 -0
  6. package/dist/cjs/chains/chain-definitions/abstract.js.map +1 -0
  7. package/dist/cjs/contract/actions/get-bytecode.js.map +1 -1
  8. package/dist/cjs/contract/actions/resolve-abi.js +3 -2
  9. package/dist/cjs/contract/actions/resolve-abi.js.map +1 -1
  10. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js +2 -2
  11. package/dist/cjs/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
  12. package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js +3 -2
  13. package/dist/cjs/contract/deployment/zksync/zkDeployProxy.js.map +1 -1
  14. package/dist/cjs/event/actions/get-events.js +3 -2
  15. package/dist/cjs/event/actions/get-events.js.map +1 -1
  16. package/dist/cjs/exports/chains.js +3 -1
  17. package/dist/cjs/exports/chains.js.map +1 -1
  18. package/dist/cjs/extensions/erc4337/account/isAccountDeployed.js +5 -4
  19. package/dist/cjs/extensions/erc4337/account/isAccountDeployed.js.map +1 -1
  20. package/dist/cjs/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.js +2 -1
  21. package/dist/cjs/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.js.map +1 -1
  22. package/dist/cjs/gas/fee-data.js +1 -0
  23. package/dist/cjs/gas/fee-data.js.map +1 -1
  24. package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
  25. package/dist/cjs/react/web/ui/prebuilt/Wallet/provider.js +0 -1
  26. package/dist/cjs/react/web/ui/prebuilt/Wallet/provider.js.map +1 -1
  27. package/dist/cjs/rpc/actions/eth_getLogs.js +2 -1
  28. package/dist/cjs/rpc/actions/eth_getLogs.js.map +1 -1
  29. package/dist/cjs/rpc/actions/eth_getStorageAt.js +6 -1
  30. package/dist/cjs/rpc/actions/eth_getStorageAt.js.map +1 -1
  31. package/dist/cjs/transaction/actions/estimate-gas.js +4 -3
  32. package/dist/cjs/transaction/actions/estimate-gas.js.map +1 -1
  33. package/dist/cjs/transaction/actions/gasless/providers/biconomy.js +4 -3
  34. package/dist/cjs/transaction/actions/gasless/providers/biconomy.js.map +1 -1
  35. package/dist/cjs/transaction/actions/simulate.js +3 -2
  36. package/dist/cjs/transaction/actions/simulate.js.map +1 -1
  37. package/dist/cjs/transaction/actions/to-serializable-transaction.js +3 -1
  38. package/dist/cjs/transaction/actions/to-serializable-transaction.js.map +1 -1
  39. package/dist/cjs/transaction/read-contract.js +2 -1
  40. package/dist/cjs/transaction/read-contract.js.map +1 -1
  41. package/dist/cjs/utils/any-evm/compute-deployment-address.js +2 -1
  42. package/dist/cjs/utils/any-evm/compute-deployment-address.js.map +1 -1
  43. package/dist/cjs/utils/bytecode/resolveImplementation.js +7 -3
  44. package/dist/cjs/utils/bytecode/resolveImplementation.js.map +1 -1
  45. package/dist/cjs/utils/extensions/airdrop/hash-entry-erc1155.js +2 -1
  46. package/dist/cjs/utils/extensions/airdrop/hash-entry-erc1155.js.map +1 -1
  47. package/dist/cjs/utils/extensions/airdrop/hash-entry-erc20.js +2 -1
  48. package/dist/cjs/utils/extensions/airdrop/hash-entry-erc20.js.map +1 -1
  49. package/dist/cjs/utils/extensions/airdrop/hash-entry-erc721.js +2 -1
  50. package/dist/cjs/utils/extensions/airdrop/hash-entry-erc721.js.map +1 -1
  51. package/dist/cjs/utils/extensions/drops/hash-entry.js +3 -2
  52. package/dist/cjs/utils/extensions/drops/hash-entry.js.map +1 -1
  53. package/dist/cjs/version.js +1 -1
  54. package/dist/cjs/wallets/eip5792/get-capabilities.js +2 -1
  55. package/dist/cjs/wallets/eip5792/get-capabilities.js.map +1 -1
  56. package/dist/cjs/wallets/in-app/core/authentication/backend.js +2 -1
  57. package/dist/cjs/wallets/in-app/core/authentication/backend.js.map +1 -1
  58. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +1 -1
  59. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  60. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js +4 -7
  61. package/dist/cjs/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  62. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +14 -3
  63. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
  64. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js +1 -1
  65. package/dist/cjs/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js.map +1 -1
  66. package/dist/cjs/wallets/injected/index.js +2 -2
  67. package/dist/cjs/wallets/injected/index.js.map +1 -1
  68. package/dist/cjs/wallets/smart/index.js +9 -0
  69. package/dist/cjs/wallets/smart/index.js.map +1 -1
  70. package/dist/cjs/wallets/smart/lib/signing.js +1 -1
  71. package/dist/cjs/wallets/wallet-connect/controller.js +4 -2
  72. package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
  73. package/dist/esm/adapters/viem.js +3 -2
  74. package/dist/esm/adapters/viem.js.map +1 -1
  75. package/dist/esm/auth/verify-hash.js +24 -0
  76. package/dist/esm/auth/verify-hash.js.map +1 -1
  77. package/dist/esm/chains/chain-definitions/abstract.js +16 -0
  78. package/dist/esm/chains/chain-definitions/abstract.js.map +1 -0
  79. package/dist/esm/contract/actions/get-bytecode.js.map +1 -1
  80. package/dist/esm/contract/actions/resolve-abi.js +3 -2
  81. package/dist/esm/contract/actions/resolve-abi.js.map +1 -1
  82. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js +2 -2
  83. package/dist/esm/contract/deployment/zksync/zkDeployDeterministic.js.map +1 -1
  84. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js +3 -2
  85. package/dist/esm/contract/deployment/zksync/zkDeployProxy.js.map +1 -1
  86. package/dist/esm/event/actions/get-events.js +3 -2
  87. package/dist/esm/event/actions/get-events.js.map +1 -1
  88. package/dist/esm/exports/chains.js +1 -0
  89. package/dist/esm/exports/chains.js.map +1 -1
  90. package/dist/esm/extensions/erc4337/account/isAccountDeployed.js +5 -4
  91. package/dist/esm/extensions/erc4337/account/isAccountDeployed.js.map +1 -1
  92. package/dist/esm/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.js +2 -1
  93. package/dist/esm/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.js.map +1 -1
  94. package/dist/esm/gas/fee-data.js +1 -0
  95. package/dist/esm/gas/fee-data.js.map +1 -1
  96. package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
  97. package/dist/esm/react/web/ui/prebuilt/Wallet/provider.js +0 -1
  98. package/dist/esm/react/web/ui/prebuilt/Wallet/provider.js.map +1 -1
  99. package/dist/esm/rpc/actions/eth_getLogs.js +2 -1
  100. package/dist/esm/rpc/actions/eth_getLogs.js.map +1 -1
  101. package/dist/esm/rpc/actions/eth_getStorageAt.js +6 -1
  102. package/dist/esm/rpc/actions/eth_getStorageAt.js.map +1 -1
  103. package/dist/esm/transaction/actions/estimate-gas.js +4 -3
  104. package/dist/esm/transaction/actions/estimate-gas.js.map +1 -1
  105. package/dist/esm/transaction/actions/gasless/providers/biconomy.js +4 -3
  106. package/dist/esm/transaction/actions/gasless/providers/biconomy.js.map +1 -1
  107. package/dist/esm/transaction/actions/simulate.js +3 -2
  108. package/dist/esm/transaction/actions/simulate.js.map +1 -1
  109. package/dist/esm/transaction/actions/to-serializable-transaction.js +3 -1
  110. package/dist/esm/transaction/actions/to-serializable-transaction.js.map +1 -1
  111. package/dist/esm/transaction/read-contract.js +2 -1
  112. package/dist/esm/transaction/read-contract.js.map +1 -1
  113. package/dist/esm/utils/any-evm/compute-deployment-address.js +2 -1
  114. package/dist/esm/utils/any-evm/compute-deployment-address.js.map +1 -1
  115. package/dist/esm/utils/bytecode/resolveImplementation.js +7 -3
  116. package/dist/esm/utils/bytecode/resolveImplementation.js.map +1 -1
  117. package/dist/esm/utils/extensions/airdrop/hash-entry-erc1155.js +2 -1
  118. package/dist/esm/utils/extensions/airdrop/hash-entry-erc1155.js.map +1 -1
  119. package/dist/esm/utils/extensions/airdrop/hash-entry-erc20.js +2 -1
  120. package/dist/esm/utils/extensions/airdrop/hash-entry-erc20.js.map +1 -1
  121. package/dist/esm/utils/extensions/airdrop/hash-entry-erc721.js +2 -1
  122. package/dist/esm/utils/extensions/airdrop/hash-entry-erc721.js.map +1 -1
  123. package/dist/esm/utils/extensions/drops/hash-entry.js +3 -2
  124. package/dist/esm/utils/extensions/drops/hash-entry.js.map +1 -1
  125. package/dist/esm/version.js +1 -1
  126. package/dist/esm/wallets/eip5792/get-capabilities.js +2 -1
  127. package/dist/esm/wallets/eip5792/get-capabilities.js.map +1 -1
  128. package/dist/esm/wallets/in-app/core/authentication/backend.js +2 -1
  129. package/dist/esm/wallets/in-app/core/authentication/backend.js.map +1 -1
  130. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +1 -1
  131. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  132. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js +4 -7
  133. package/dist/esm/wallets/in-app/web/lib/auth/iframe-auth.js.map +1 -1
  134. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js +14 -3
  135. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.js.map +1 -1
  136. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js +1 -1
  137. package/dist/esm/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.js.map +1 -1
  138. package/dist/esm/wallets/injected/index.js +2 -2
  139. package/dist/esm/wallets/injected/index.js.map +1 -1
  140. package/dist/esm/wallets/smart/index.js +9 -0
  141. package/dist/esm/wallets/smart/index.js.map +1 -1
  142. package/dist/esm/wallets/smart/lib/signing.js +1 -1
  143. package/dist/esm/wallets/wallet-connect/controller.js +4 -2
  144. package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
  145. package/dist/types/adapters/ethers5.d.ts +1 -1
  146. package/dist/types/adapters/ethers6.d.ts +1 -1
  147. package/dist/types/adapters/viem.d.ts.map +1 -1
  148. package/dist/types/auth/verify-hash.d.ts.map +1 -1
  149. package/dist/types/chains/chain-definitions/abstract.d.ts +7 -0
  150. package/dist/types/chains/chain-definitions/abstract.d.ts.map +1 -0
  151. package/dist/types/contract/actions/get-bytecode.d.ts +1 -2
  152. package/dist/types/contract/actions/get-bytecode.d.ts.map +1 -1
  153. package/dist/types/contract/actions/resolve-abi.d.ts +1 -1
  154. package/dist/types/contract/actions/resolve-abi.d.ts.map +1 -1
  155. package/dist/types/contract/contract.d.ts +1 -1
  156. package/dist/types/contract/contract.d.ts.map +1 -1
  157. package/dist/types/contract/deployment/utils/bootstrap.d.ts +4 -4
  158. package/dist/types/contract/deployment/utils/bootstrap.d.ts.map +1 -1
  159. package/dist/types/contract/deployment/utils/clone-factory.d.ts +1 -1
  160. package/dist/types/contract/deployment/utils/clone-factory.d.ts.map +1 -1
  161. package/dist/types/contract/deployment/zksync/zkDeployDeterministic.d.ts.map +1 -1
  162. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts +1 -1
  163. package/dist/types/contract/deployment/zksync/zkDeployProxy.d.ts.map +1 -1
  164. package/dist/types/event/actions/get-events.d.ts.map +1 -1
  165. package/dist/types/exports/chains.d.ts +1 -0
  166. package/dist/types/exports/chains.d.ts.map +1 -1
  167. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/eip712Domain.d.ts +1 -1
  168. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/eip712Domain.d.ts.map +1 -1
  169. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/owner.d.ts +1 -1
  170. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/owner.d.ts.map +1 -1
  171. package/dist/types/extensions/common/__generated__/IOwnable/read/owner.d.ts +1 -1
  172. package/dist/types/extensions/common/__generated__/IOwnable/read/owner.d.ts.map +1 -1
  173. package/dist/types/extensions/common/__generated__/IPlatformFee/read/getPlatformFeeInfo.d.ts +1 -1
  174. package/dist/types/extensions/common/__generated__/IPlatformFee/read/getPlatformFeeInfo.d.ts.map +1 -1
  175. package/dist/types/extensions/common/__generated__/IPrimarySale/read/primarySaleRecipient.d.ts +1 -1
  176. package/dist/types/extensions/common/__generated__/IPrimarySale/read/primarySaleRecipient.d.ts.map +1 -1
  177. package/dist/types/extensions/common/__generated__/IRoyalty/read/getDefaultRoyaltyInfo.d.ts +1 -1
  178. package/dist/types/extensions/common/__generated__/IRoyalty/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
  179. package/dist/types/extensions/common/__generated__/IRoyalty/read/getRoyaltyInfoForToken.d.ts +1 -1
  180. package/dist/types/extensions/common/__generated__/IRoyalty/read/getRoyaltyInfoForToken.d.ts.map +1 -1
  181. package/dist/types/extensions/common/__generated__/IRoyalty/read/royaltyInfo.d.ts +1 -1
  182. package/dist/types/extensions/common/__generated__/IRoyalty/read/royaltyInfo.d.ts.map +1 -1
  183. package/dist/types/extensions/ens/__generated__/AddressResolver/read/addr.d.ts +1 -1
  184. package/dist/types/extensions/ens/__generated__/AddressResolver/read/addr.d.ts.map +1 -1
  185. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/resolve.d.ts +1 -1
  186. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/resolve.d.ts.map +1 -1
  187. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/reverse.d.ts +1 -1
  188. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/reverse.d.ts.map +1 -1
  189. package/dist/types/extensions/erc1155/__generated__/IDrop1155/read/getClaimConditionById.d.ts +1 -1
  190. package/dist/types/extensions/erc1155/__generated__/IDropSinglePhase1155/read/claimCondition.d.ts +1 -1
  191. package/dist/types/extensions/erc1155/__generated__/ISignatureMintERC1155/read/verify.d.ts +1 -1
  192. package/dist/types/extensions/erc1155/__generated__/ISignatureMintERC1155/read/verify.d.ts.map +1 -1
  193. package/dist/types/extensions/erc1155/drops/write/resetClaimEligibility.d.ts +1 -1
  194. package/dist/types/extensions/erc1155/drops/write/resetClaimEligibility.d.ts.map +1 -1
  195. package/dist/types/extensions/erc20/__generated__/IDropERC20/read/getClaimConditionById.d.ts +1 -1
  196. package/dist/types/extensions/erc20/__generated__/ISignatureMintERC20/read/verify.d.ts +1 -1
  197. package/dist/types/extensions/erc20/__generated__/ISignatureMintERC20/read/verify.d.ts.map +1 -1
  198. package/dist/types/extensions/erc20/__generated__/IVotes/read/delegates.d.ts +1 -1
  199. package/dist/types/extensions/erc20/__generated__/IVotes/read/delegates.d.ts.map +1 -1
  200. package/dist/types/extensions/erc20/drops/write/resetClaimEligibility.d.ts +1 -1
  201. package/dist/types/extensions/erc20/drops/write/resetClaimEligibility.d.ts.map +1 -1
  202. package/dist/types/extensions/erc2981/__generated__/IERC2981/read/royaltyInfo.d.ts +1 -1
  203. package/dist/types/extensions/erc2981/__generated__/IERC2981/read/royaltyInfo.d.ts.map +1 -1
  204. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/accountImplementation.d.ts +1 -1
  205. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/accountImplementation.d.ts.map +1 -1
  206. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.d.ts +1 -1
  207. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.d.ts.map +1 -1
  208. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.d.ts +1 -1
  209. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.d.ts.map +1 -1
  210. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAddress.d.ts +1 -1
  211. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAddress.d.ts.map +1 -1
  212. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.d.ts +1 -1
  213. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.d.ts.map +1 -1
  214. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllActiveSigners.d.ts +2 -2
  215. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.d.ts +1 -1
  216. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.d.ts.map +1 -1
  217. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllSigners.d.ts +2 -2
  218. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getPermissionsForSigner.d.ts +2 -2
  219. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/verifySignerPermissionRequest.d.ts +1 -1
  220. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/verifySignerPermissionRequest.d.ts.map +1 -1
  221. package/dist/types/extensions/erc4337/account/isAccountDeployed.d.ts +2 -2
  222. package/dist/types/extensions/erc4337/account/isAccountDeployed.d.ts.map +1 -1
  223. package/dist/types/extensions/erc4626/__generated__/IERC4626/read/asset.d.ts +1 -1
  224. package/dist/types/extensions/erc4626/__generated__/IERC4626/read/asset.d.ts.map +1 -1
  225. package/dist/types/extensions/erc6551/__generated__/IERC6551Account/read/token.d.ts +1 -1
  226. package/dist/types/extensions/erc6551/__generated__/IERC6551Account/read/token.d.ts.map +1 -1
  227. package/dist/types/extensions/erc721/__generated__/IDrop/read/getClaimConditionById.d.ts +1 -1
  228. package/dist/types/extensions/erc721/__generated__/IDropSinglePhase/read/claimCondition.d.ts +1 -1
  229. package/dist/types/extensions/erc721/__generated__/IERC721A/read/getApproved.d.ts +1 -1
  230. package/dist/types/extensions/erc721/__generated__/IERC721A/read/getApproved.d.ts.map +1 -1
  231. package/dist/types/extensions/erc721/__generated__/IERC721A/read/ownerOf.d.ts +1 -1
  232. package/dist/types/extensions/erc721/__generated__/IERC721A/read/ownerOf.d.ts.map +1 -1
  233. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721/read/verify.d.ts +1 -1
  234. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721/read/verify.d.ts.map +1 -1
  235. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721_v2/read/verify.d.ts +1 -1
  236. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721_v2/read/verify.d.ts.map +1 -1
  237. package/dist/types/extensions/erc721/__generated__/Multiwrap/read/getWrappedContents.d.ts +1 -1
  238. package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts +1 -1
  239. package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts.map +1 -1
  240. package/dist/types/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.d.ts.map +1 -1
  241. package/dist/types/extensions/erc7504/__generated__/IRouterState/read/getAllExtensions.d.ts +1 -1
  242. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts +1 -1
  243. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts.map +1 -1
  244. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts +1 -1
  245. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts.map +1 -1
  246. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts +1 -1
  247. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts.map +1 -1
  248. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts +1 -1
  249. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts.map +1 -1
  250. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts +1 -1
  251. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts.map +1 -1
  252. package/dist/types/extensions/farcaster/__generated__/IBundler/read/idGateway.d.ts +1 -1
  253. package/dist/types/extensions/farcaster/__generated__/IBundler/read/idGateway.d.ts.map +1 -1
  254. package/dist/types/extensions/farcaster/__generated__/IBundler/read/keyGateway.d.ts +1 -1
  255. package/dist/types/extensions/farcaster/__generated__/IBundler/read/keyGateway.d.ts.map +1 -1
  256. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/idRegistry.d.ts +1 -1
  257. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/idRegistry.d.ts.map +1 -1
  258. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/storageRegistry.d.ts +1 -1
  259. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/storageRegistry.d.ts.map +1 -1
  260. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/custodyOf.d.ts +1 -1
  261. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/custodyOf.d.ts.map +1 -1
  262. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/idGateway.d.ts +1 -1
  263. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/idGateway.d.ts.map +1 -1
  264. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/recoveryOf.d.ts +1 -1
  265. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/recoveryOf.d.ts.map +1 -1
  266. package/dist/types/extensions/farcaster/__generated__/IKeyGateway/read/keyRegistry.d.ts +1 -1
  267. package/dist/types/extensions/farcaster/__generated__/IKeyGateway/read/keyRegistry.d.ts.map +1 -1
  268. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/idRegistry.d.ts +1 -1
  269. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/idRegistry.d.ts.map +1 -1
  270. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyDataOf.d.ts +1 -1
  271. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyDataOf.d.ts.map +1 -1
  272. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyGateway.d.ts +1 -1
  273. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyGateway.d.ts.map +1 -1
  274. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts +1 -1
  275. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts.map +1 -1
  276. package/dist/types/extensions/lens/__generated__/LensHub/read/getProfile.d.ts +2 -2
  277. package/dist/types/extensions/lens/__generated__/LensHub/read/getPublication.d.ts +3 -3
  278. package/dist/types/extensions/lens/__generated__/LensHub/read/tokenDataOf.d.ts +1 -1
  279. package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getAllListings.d.ts +3 -3
  280. package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getAllValidListings.d.ts +3 -3
  281. package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getListing.d.ts +3 -3
  282. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAllAuctions.d.ts +3 -3
  283. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAllValidAuctions.d.ts +3 -3
  284. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAuction.d.ts +3 -3
  285. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getWinningBid.d.ts +1 -1
  286. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getWinningBid.d.ts.map +1 -1
  287. package/dist/types/extensions/marketplace/__generated__/IMarketplace/read/getPlatformFeeInfo.d.ts +1 -1
  288. package/dist/types/extensions/marketplace/__generated__/IMarketplace/read/getPlatformFeeInfo.d.ts.map +1 -1
  289. package/dist/types/extensions/marketplace/__generated__/IOffers/read/getAllOffers.d.ts +3 -3
  290. package/dist/types/extensions/marketplace/__generated__/IOffers/read/getAllValidOffers.d.ts +3 -3
  291. package/dist/types/extensions/marketplace/__generated__/IOffers/read/getOffer.d.ts +3 -3
  292. package/dist/types/extensions/modules/ClaimableERC1155/mint.d.ts +1 -1
  293. package/dist/types/extensions/modules/ClaimableERC1155/mint.d.ts.map +1 -1
  294. package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts +1 -1
  295. package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts.map +1 -1
  296. package/dist/types/extensions/modules/ClaimableERC20/mint.d.ts +1 -1
  297. package/dist/types/extensions/modules/ClaimableERC20/mint.d.ts.map +1 -1
  298. package/dist/types/extensions/modules/ClaimableERC20/setClaimConditions.d.ts +1 -1
  299. package/dist/types/extensions/modules/ClaimableERC20/setClaimConditions.d.ts.map +1 -1
  300. package/dist/types/extensions/modules/ClaimableERC721/mint.d.ts +1 -1
  301. package/dist/types/extensions/modules/ClaimableERC721/mint.d.ts.map +1 -1
  302. package/dist/types/extensions/modules/ClaimableERC721/setClaimConditions.d.ts +1 -1
  303. package/dist/types/extensions/modules/ClaimableERC721/setClaimConditions.d.ts.map +1 -1
  304. package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getClaimConditionByTokenId.d.ts +1 -1
  305. package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getSaleConfig.d.ts +1 -1
  306. package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getSaleConfig.d.ts.map +1 -1
  307. package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getClaimCondition.d.ts +1 -1
  308. package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getSaleConfig.d.ts +1 -1
  309. package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getSaleConfig.d.ts.map +1 -1
  310. package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getClaimCondition.d.ts +1 -1
  311. package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getSaleConfig.d.ts +1 -1
  312. package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getSaleConfig.d.ts.map +1 -1
  313. package/dist/types/extensions/modules/__generated__/IModularCore/read/getInstalledModules.d.ts +1 -1
  314. package/dist/types/extensions/modules/__generated__/MintableERC1155/read/getSaleConfig.d.ts +1 -1
  315. package/dist/types/extensions/modules/__generated__/MintableERC1155/read/getSaleConfig.d.ts.map +1 -1
  316. package/dist/types/extensions/modules/__generated__/MintableERC20/read/getSaleConfig.d.ts +1 -1
  317. package/dist/types/extensions/modules/__generated__/MintableERC20/read/getSaleConfig.d.ts.map +1 -1
  318. package/dist/types/extensions/modules/__generated__/MintableERC721/read/getSaleConfig.d.ts +1 -1
  319. package/dist/types/extensions/modules/__generated__/MintableERC721/read/getSaleConfig.d.ts.map +1 -1
  320. package/dist/types/extensions/modules/__generated__/OwnableRoles/read/owner.d.ts +1 -1
  321. package/dist/types/extensions/modules/__generated__/OwnableRoles/read/owner.d.ts.map +1 -1
  322. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getDefaultRoyaltyInfo.d.ts +1 -1
  323. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
  324. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getRoyaltyInfoForToken.d.ts +1 -1
  325. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getRoyaltyInfoForToken.d.ts.map +1 -1
  326. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getTransferValidator.d.ts +1 -1
  327. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getTransferValidator.d.ts.map +1 -1
  328. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/royaltyInfo.d.ts +1 -1
  329. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/royaltyInfo.d.ts.map +1 -1
  330. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getDefaultRoyaltyInfo.d.ts +1 -1
  331. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
  332. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getRoyaltyInfoForToken.d.ts +1 -1
  333. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getRoyaltyInfoForToken.d.ts.map +1 -1
  334. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getTransferValidator.d.ts +1 -1
  335. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getTransferValidator.d.ts.map +1 -1
  336. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/royaltyInfo.d.ts +1 -1
  337. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/royaltyInfo.d.ts.map +1 -1
  338. package/dist/types/extensions/modules/common/getOrDeployModule.d.ts +2 -2
  339. package/dist/types/extensions/modules/common/getOrDeployModule.d.ts.map +1 -1
  340. package/dist/types/extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.d.ts +1 -1
  341. package/dist/types/extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.d.ts.map +1 -1
  342. package/dist/types/extensions/pack/__generated__/IPack/read/getPackContents.d.ts +1 -1
  343. package/dist/types/extensions/pack/__generated__/IPack/read/getTokenOfBundle.d.ts +1 -1
  344. package/dist/types/extensions/permissions/__generated__/IPermissionsEnumerable/read/getRoleMember.d.ts +1 -1
  345. package/dist/types/extensions/permissions/__generated__/IPermissionsEnumerable/read/getRoleMember.d.ts.map +1 -1
  346. package/dist/types/extensions/split/__generated__/Split/read/payee.d.ts +1 -1
  347. package/dist/types/extensions/split/__generated__/Split/read/payee.d.ts.map +1 -1
  348. package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getAllPublishedContracts.d.ts +1 -1
  349. package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContract.d.ts +1 -1
  350. package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContractVersions.d.ts +1 -1
  351. package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getAllRules.d.ts +1 -1
  352. package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getRulesEngineOverride.d.ts +1 -1
  353. package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getRulesEngineOverride.d.ts.map +1 -1
  354. package/dist/types/extensions/thirdweb/__generated__/ISignatureAction/read/verify.d.ts +1 -1
  355. package/dist/types/extensions/thirdweb/__generated__/ISignatureAction/read/verify.d.ts.map +1 -1
  356. package/dist/types/extensions/thirdweb/__generated__/ITWFee/read/getFeeInfo.d.ts +1 -1
  357. package/dist/types/extensions/thirdweb/__generated__/ITWFee/read/getFeeInfo.d.ts.map +1 -1
  358. package/dist/types/extensions/thirdweb/__generated__/ITWMultichainRegistry/read/getAll.d.ts +1 -1
  359. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/getPool.d.ts +1 -1
  360. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/getPool.d.ts.map +1 -1
  361. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/owner.d.ts +1 -1
  362. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/owner.d.ts.map +1 -1
  363. package/dist/types/extensions/vote/__generated__/Vote/read/getAllProposals.d.ts +2 -2
  364. package/dist/types/extensions/vote/__generated__/Vote/read/proposals.d.ts +1 -1
  365. package/dist/types/extensions/vote/__generated__/Vote/read/proposals.d.ts.map +1 -1
  366. package/dist/types/extensions/vote/__generated__/Vote/read/token.d.ts +1 -1
  367. package/dist/types/extensions/vote/__generated__/Vote/read/token.d.ts.map +1 -1
  368. package/dist/types/gas/fee-data.d.ts.map +1 -1
  369. package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts +1 -2
  370. package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts.map +1 -1
  371. package/dist/types/react/web/ui/prebuilt/Wallet/provider.d.ts +0 -1
  372. package/dist/types/react/web/ui/prebuilt/Wallet/provider.d.ts.map +1 -1
  373. package/dist/types/rpc/actions/eth_getLogs.d.ts +1 -1
  374. package/dist/types/rpc/actions/eth_getLogs.d.ts.map +1 -1
  375. package/dist/types/rpc/actions/eth_getStorageAt.d.ts.map +1 -1
  376. package/dist/types/transaction/actions/estimate-gas.d.ts.map +1 -1
  377. package/dist/types/transaction/actions/gasless/providers/biconomy.d.ts.map +1 -1
  378. package/dist/types/transaction/actions/simulate.d.ts.map +1 -1
  379. package/dist/types/transaction/actions/to-serializable-transaction.d.ts.map +1 -1
  380. package/dist/types/transaction/read-contract.d.ts.map +1 -1
  381. package/dist/types/utils/any-evm/compute-deployment-address.d.ts.map +1 -1
  382. package/dist/types/utils/any-evm/keyless-transaction.d.ts +1 -1
  383. package/dist/types/utils/bytecode/resolveImplementation.d.ts +1 -1
  384. package/dist/types/utils/bytecode/resolveImplementation.d.ts.map +1 -1
  385. package/dist/types/utils/extensions/airdrop/hash-entry-erc1155.d.ts.map +1 -1
  386. package/dist/types/utils/extensions/airdrop/hash-entry-erc20.d.ts.map +1 -1
  387. package/dist/types/utils/extensions/airdrop/hash-entry-erc721.d.ts.map +1 -1
  388. package/dist/types/utils/extensions/drops/hash-entry.d.ts.map +1 -1
  389. package/dist/types/version.d.ts +1 -1
  390. package/dist/types/wallets/eip5792/get-capabilities.d.ts.map +1 -1
  391. package/dist/types/wallets/in-app/core/authentication/backend.d.ts.map +1 -1
  392. package/dist/types/wallets/in-app/web/lib/auth/iframe-auth.d.ts.map +1 -1
  393. package/dist/types/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.d.ts +1 -1
  394. package/dist/types/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.d.ts.map +1 -1
  395. package/dist/types/wallets/smart/index.d.ts.map +1 -1
  396. package/dist/types/wallets/smart/lib/signing.d.ts +1 -1
  397. package/dist/types/wallets/wallet-connect/controller.d.ts.map +1 -1
  398. package/package.json +3 -3
  399. package/src/adapters/viem.ts +3 -2
  400. package/src/auth/verify-hash.ts +33 -2
  401. package/src/chains/chain-definitions/abstract.ts +16 -0
  402. package/src/contract/actions/get-bytecode.ts +2 -5
  403. package/src/contract/actions/resolve-abi.ts +3 -3
  404. package/src/contract/contract.ts +1 -1
  405. package/src/contract/deployment/zksync/zkDeployDeterministic.ts +7 -5
  406. package/src/contract/deployment/zksync/zkDeployProxy.ts +8 -6
  407. package/src/event/actions/get-events.ts +3 -2
  408. package/src/exports/chains.ts +1 -0
  409. package/src/extensions/erc4337/account/isAccountDeployed.ts +9 -6
  410. package/src/extensions/erc721/lazyMinting/helpers/hashDelayedRevealBatch.ts +2 -1
  411. package/src/gas/fee-data.ts +1 -0
  412. package/src/react/web/ui/ConnectWallet/Blobbie.tsx +1 -2
  413. package/src/react/web/ui/prebuilt/Wallet/icon.test.tsx +2 -3
  414. package/src/react/web/ui/prebuilt/Wallet/provider.tsx +0 -1
  415. package/src/rpc/actions/eth_getLogs.ts +4 -4
  416. package/src/rpc/actions/eth_getStorageAt.ts +6 -1
  417. package/src/transaction/actions/estimate-gas.ts +4 -3
  418. package/src/transaction/actions/gasless/providers/biconomy.ts +4 -3
  419. package/src/transaction/actions/simulate.ts +3 -2
  420. package/src/transaction/actions/to-serializable-transaction.ts +4 -1
  421. package/src/transaction/read-contract.ts +2 -1
  422. package/src/utils/any-evm/compute-deployment-address.ts +2 -1
  423. package/src/utils/bytecode/resolveImplementation.ts +11 -6
  424. package/src/utils/extensions/airdrop/hash-entry-erc1155.ts +2 -1
  425. package/src/utils/extensions/airdrop/hash-entry-erc20.ts +2 -1
  426. package/src/utils/extensions/airdrop/hash-entry-erc721.ts +2 -1
  427. package/src/utils/extensions/drops/hash-entry.ts +3 -2
  428. package/src/version.ts +1 -1
  429. package/src/wallets/eip5792/get-capabilities.ts +2 -1
  430. package/src/wallets/in-app/core/authentication/backend.ts +3 -1
  431. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +1 -1
  432. package/src/wallets/in-app/web/lib/auth/iframe-auth.ts +4 -8
  433. package/src/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.test.tsx +102 -0
  434. package/src/wallets/in-app/web/utils/iFrameCommunication/IframeCommunicator.ts +17 -4
  435. package/src/wallets/in-app/web/utils/iFrameCommunication/InAppWalletIframeCommunicator.ts +1 -1
  436. package/src/wallets/injected/index.ts +2 -2
  437. package/src/wallets/smart/index.ts +10 -0
  438. package/src/wallets/smart/lib/signing.ts +1 -1
  439. package/src/wallets/wallet-connect/controller.ts +4 -2
@@ -20,6 +20,7 @@ import {
20
20
  eth_getLogs,
21
21
  } from "../../rpc/actions/eth_getLogs.js";
22
22
  import { getRpcClient } from "../../rpc/rpc.js";
23
+ import { getAddress } from "../../utils/address.js";
23
24
  import type { Prettify } from "../../utils/type-utils.js";
24
25
  import { type PreparedEvent, prepareEvent } from "../prepare-event.js";
25
26
  import { isAbiEvent } from "../utils.js";
@@ -168,11 +169,11 @@ export async function getContractEvents<
168
169
  ? // if we have events passed in then we use those
169
170
  events.map((e) => ({
170
171
  ...restParams,
171
- address: contract?.address,
172
+ address: getAddress(contract.address),
172
173
  topics: e.topics,
173
174
  }))
174
175
  : // otherwise we want "all" events (aka not pass any topics at all)
175
- [{ ...restParams, address: contract?.address }];
176
+ [{ ...restParams, address: getAddress(contract.address) }];
176
177
 
177
178
  const logs = await Promise.all(
178
179
  logsParams.map((ethLogParams) => eth_getLogs(rpcRequest, ethLogParams)),
@@ -72,6 +72,7 @@ export { frameTestnet } from "../chains/chain-definitions/frame-testnet.js";
72
72
  export { hokumTestnet } from "../chains/chain-definitions/hokum-testnet.js";
73
73
  export { godWokenTestnetV1 } from "../chains/chain-definitions/god-woken-testnet-v1.js";
74
74
  export { abstractTestnet } from "../chains/chain-definitions/abstract-testnet.js";
75
+ export { abstract } from "../chains/chain-definitions/abstract.js";
75
76
  export { assetChainTestnet } from "../chains/chain-definitions/assetchain-testnet.js";
76
77
  export { celoAlfajoresTestnet } from "../chains/chain-definitions/celo-alfajores-testnet.js";
77
78
  export { fraxtalTestnet } from "../chains/chain-definitions/fraxtal-testnet.js";
@@ -1,3 +1,4 @@
1
+ import { getContract } from "../../../contract/contract.js";
1
2
  import type { BaseTransactionOptions } from "../../../transaction/types.js";
2
3
  import { isContractDeployed } from "../../../utils/bytecode/is-contract-deployed.js";
3
4
  import * as PredictAddress from "../__generated__/IAccountFactory/read/getAddress.js";
@@ -15,10 +16,10 @@ export {
15
16
  * ```ts
16
17
  * import { isAccountDeployed } from 'thirdweb/extensions/erc4337';
17
18
  *
18
- * const transaction = addAdmin({
19
+ * const isDeployed = await isAccountDeployed({
19
20
  * contract,
20
21
  * account,
21
- * adminAddress: '0x...'
22
+ * adminSigner: '0x...'
22
23
  * });
23
24
  *
24
25
  * await isAccountDeployed({ contract, adminSigner });
@@ -29,8 +30,10 @@ export async function isAccountDeployed(
29
30
  options: BaseTransactionOptions<PredictAddress.GetAddressParams>,
30
31
  ): Promise<boolean> {
31
32
  const predictedAddress = await PredictAddress.getAddress(options);
32
- return isContractDeployed({
33
- ...options.contract,
34
- address: predictedAddress,
35
- });
33
+ return isContractDeployed(
34
+ getContract({
35
+ ...options.contract,
36
+ address: predictedAddress,
37
+ }),
38
+ );
36
39
  }
@@ -1,5 +1,6 @@
1
1
  import { encodePacked } from "viem/utils";
2
2
  import type { ThirdwebContract } from "../../../../contract/contract.js";
3
+ import { getAddress } from "../../../../utils/address.js";
3
4
  import { keccak256 } from "../../../../utils/hashing/keccak256.js";
4
5
 
5
6
  /**
@@ -15,7 +16,7 @@ export const hashDelayedRevealPassword = async (
15
16
  return keccak256(
16
17
  encodePacked(
17
18
  ["string", "uint256", "uint256", "address"],
18
- [password, chainId, batchTokenIndex, contractAddress],
19
+ [password, chainId, batchTokenIndex, getAddress(contractAddress)],
19
20
  ),
20
21
  );
21
22
  };
@@ -39,6 +39,7 @@ const FORCE_GAS_PRICE_CHAIN_IDS = [
39
39
  2442, // Polygon zkEVM Cardona Testnet
40
40
  1942999413, // Humanity Testnet
41
41
  1952959480, // Lumia Testnet
42
+ 994873017, // Lumia Mainnet
42
43
  ];
43
44
 
44
45
  /**
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { hexToNumber } from "@noble/curves/abstract/utils";
3
3
  import { useId, useMemo } from "react";
4
- import type { Address } from "viem";
5
4
 
6
5
  const COLOR_OPTIONS = [
7
6
  ["#fca5a5", "#b91c1c"],
@@ -26,7 +25,7 @@ const COLOR_OPTIONS = [
26
25
  * @component
27
26
  */
28
27
  export type BlobbieProps = {
29
- address: Address;
28
+ address: string;
30
29
  style?: Omit<React.CSSProperties, "backgroundImage">;
31
30
  className?: string;
32
31
  size?: number;
@@ -5,9 +5,8 @@ import { WalletProvider } from "./provider.js";
5
5
 
6
6
  describe("WalletIcon", () => {
7
7
  it("should fetch wallet image", async () => {
8
- expect(await fetchWalletImage({ id: "io.metamask" })).toMatchInlineSnapshot(
9
- `"data:image/webp;base64,UklGRuwGAABXRUJQVlA4IOAGAABwIQCdASqAAIAAPm0ylkekIqIhJRM72IANiWIAyqy1Dp/H+eFYv8NxdNKeeg+36Lvzn/wN975hf2w9Y/0Z/6z0a+pI9AD9Vetr8ry8NP1WRg8G/sPM3wJlt8FdNg0WVXrKZlHf/7BcL9ZlCeVp+JF3E1CbwOreB/90YH2PUR9BNzlivRmwiI5jOr6WJ/6RWb6/tZp9UbMeCRrLy+9YP/9AVZ2SFUruL/yoPkhhgYPVhVAyyvDGz6Mws+v8VQ/EqyPSTb1iD4FsNruUD7fVhplslH9Dh2EW3xy9tEeSAgV+QvEpsOf2HAqlW6VT1f2x+lkeGRKeohCDPYvoIBFLKwb4SzsF5l02NiyGaPN5/ODNR9n2EQAA/vsmBY+Q2dsG6yhgBhrmNE7GEK9pn+TE53EQ0+z+NL8/FkVgnO6FJpMGUcFQB9eOfECvyN9rfQD1Wq9X7u4/Bo7ur3bAkxWHl7CY5PlokCXuX4KvTRxdvUS23oUE2yqTSig0oRbBXdOGBXxgy6lUtFznnz+6QWb0rBEPhRqb3zKbmSL0gT4bPNaZew3h07g88/udLRjKmf0ellIolDALYrkbcJ08Y5rQ6E0xGiBrZykNg/xwYdd26p2ipY/vyeAOmddHVnBEbQglFALFMWiqCfov6s3IHwJHyP8s/h/am/pvn1gCbhTrbKI0rIuJXN2sljBDesRrvc9wpJ65o9AligVcUt3mTIDAqYysfF2QJwm3GxApi5svDwSajevWXF4z4IWOhVNDdQNKpl0+R0HUoK5n1cpWHRDrx31Hfh1SY5l/hqMOstkei+rznVXW+Ffl16KssbyiUCXQOwW4F6N00fiShJety//jfyqXXJNiY4n1xf77cqf1Z3Kq/Dnj5DKbwQ2XczShuDEsphJyn6FjFSP1e70n7d6aNp13xF9IfSa08mHGlS/jAguPwUJKwm4tly2eq+sBYDbDEkLHFKA75Y4cMSqK6+9OfNllq385/NTeOdCOGGrXAaoytxd2m1VE5dEh9lExaPxwfWhxTRD8ByR5GWe/3WMXlm6+oArrYTPKYAANBM4wAY7MPqaQzcV9rqtD+m0u22u4rdNKn1NMgoAWrlILvjQ3qqt27p32L2wf546/nQuDwGrFg+npvAMTX52Xl0SlpACvq8NqcdCKe/EWl5PfcBnKnO6JuQIEXlNWf6VLiv0VqKdwLAd96LPbBnZgbX5uX5p3GEb18QUcOFu9kMWg67HjQvmefds+kBxGh3rO/W/jFB/q67+kEKrutCcknGtEECtPBN5TIsVdn4dS/IH3DYC4HsgD09hGplPhFL99N/MXiZYbXFPYfl9H1ybPma4yljEjieZZdcHU+rncZxDm5ZgWuSTvgrgWuwzf6pHdQQVrFxhG+5PVW/IThXF50K1/g/xrcQHXOF8WvZ2Zxg9oQSPR0ArfJ8dAungVGomI9E3EIvGw9VdfiyUR0pCe+4q40mLqMoRdRplXACBrvUk1HTbqlsNYN0ElDxBW3q9Is/YDcJRWOJ3JtSxfN4yr7KY2vmgiJq04ta+fv8jDzXq35feu2ur2lYrfzHd02NaJo7W2pUyvoxCLpSM1cxr1E40s3u2ONRfn+r0r1/BpZJe0bgTwEb4I02KQak7Pl4yS1ZHwOn36HVfTrVpSc9zgG1yNOPQ4kCB6GSIZVxArMdQPKstj20YXj/i0Ra3SO7fx/14WvSIIIyNYsXbJXg8PL8fQfv9QjORNqjukfZbgusqnM8geR0pQhDfeZR1ZwdUQfx9a4Z0/fBR2Rg5zq05CcnuygEL6SZsWFBHSOeaUT3ycQQp2rHbHlnYT/GOaoUYR5wtGBahqXy0xBlaisNqZa6GEoHxzNKiMt2sGrcS079jZa5kDaGtSrW41e1HoLpuxwxiUKntwnjEaogJri9FgAxC6wazG6U56P6C/zJWsilWgi6jCsfORkpXQM91vYMgRL3+HiFzD93LPP13w/x8Hhty4jtCowlCzf0MqrScu+oDOCoMbdXV9j0OCfAZYXHdf9R1hgLmFjBk0kOl8O8HZucC6eUve6XVrJ/92ne39q3XC8uJ86jEyTYpzJOSzAbLiP8jSgLetO3pxmTa43aS527rhvZ8JL5yAffh+31QM7yH5z7OCSLeVOGJlwXqhF7scYXy5kaJdg93oEYrUhpHMTh3KV9Ex0Qf4/M7ucWrOpBR6AjyIGlvU92DbSj/ggL5w4N4wHUCOflgeum/BI6G33QdKXXJiebFiJIjyiYk4NPu4R2LxJkK7hMBIka6NtNFZCkGHgF/Dlwx36B0nZFYvHt1ciHu2IKWOpl9AdQeQo0jWiBOpElR7LhlhAHUTnP2S2VxoQCAAAA=="`,
10
- );
8
+ const image = await fetchWalletImage({ id: "io.metamask" });
9
+ expect(image).toContain("data:image/");
11
10
  });
12
11
 
13
12
  it("should throw error if WalletId is not supported", async () => {
@@ -20,7 +20,6 @@ export const WalletProviderContext = /* @__PURE__ */ createContext<
20
20
  WalletProviderProps | undefined
21
21
  >(undefined);
22
22
 
23
- /**
24
23
  /**
25
24
  * A React context provider component that supplies Wallet-related data to its child components.
26
25
  *
@@ -1,4 +1,3 @@
1
- import type { Address } from "abitype";
2
1
  import {
3
2
  type BlockNumber,
4
3
  type BlockTag,
@@ -9,6 +8,7 @@ import {
9
8
  type RpcLog,
10
9
  formatLog,
11
10
  } from "viem";
11
+ import { type Address, getAddress } from "../../utils/address.js";
12
12
  import { numberToHex } from "../../utils/encoding/hex.js";
13
13
 
14
14
  export type GetLogsBlockParams =
@@ -75,7 +75,7 @@ export async function eth_getLogs(
75
75
  // in the case we have a blockHash
76
76
  if (params.blockHash) {
77
77
  const param: {
78
- address?: string | string[];
78
+ address?: Address | Address[];
79
79
  topics: LogTopic[];
80
80
  blockHash: `0x${string}`;
81
81
  } = {
@@ -83,7 +83,7 @@ export async function eth_getLogs(
83
83
  blockHash: params.blockHash,
84
84
  };
85
85
  if (params.address) {
86
- param.address = params.address;
86
+ param.address = getAddress(params.address);
87
87
  }
88
88
  logs = await request({
89
89
  method: "eth_getLogs",
@@ -93,7 +93,7 @@ export async function eth_getLogs(
93
93
  // otherwise
94
94
  else {
95
95
  const param: {
96
- address?: string | string[];
96
+ address?: Address | Address[];
97
97
  topics?: LogTopic[];
98
98
  } & (
99
99
  | {
@@ -1,4 +1,5 @@
1
1
  import type { BlockTag, EIP1193RequestFn, EIP1474Methods, Hex } from "viem";
2
+ import { getAddress } from "../../utils/address.js";
2
3
 
3
4
  type GetStorageAtParams = {
4
5
  address: string;
@@ -28,6 +29,10 @@ export async function eth_getStorageAt(
28
29
  ): Promise<Hex> {
29
30
  return await request({
30
31
  method: "eth_getStorageAt",
31
- params: [params.address, params.position, params.blockTag ?? "latest"],
32
+ params: [
33
+ getAddress(params.address),
34
+ params.position,
35
+ params.blockTag ?? "latest",
36
+ ],
32
37
  });
33
38
  }
@@ -1,6 +1,7 @@
1
1
  import * as ox__Hex from "ox/Hex";
2
2
  import { formatTransactionRequest } from "viem";
3
3
  import { roundUpGas } from "../../gas/op-gas-fee-reducer.js";
4
+ import { getAddress } from "../../utils/address.js";
4
5
  import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
5
6
  import type { Prettify } from "../../utils/type-utils.js";
6
7
  import type { Account } from "../../wallets/interfaces/wallet.js";
@@ -117,9 +118,9 @@ export async function estimateGas(
117
118
  let gas = await eth_estimateGas(
118
119
  rpcRequest,
119
120
  formatTransactionRequest({
120
- to: toAddress,
121
+ to: toAddress ? getAddress(toAddress) : undefined,
121
122
  data: encodedData,
122
- from: fromAddress,
123
+ from: fromAddress ? getAddress(fromAddress) : undefined,
123
124
  value,
124
125
  // TODO: Remove this casting when we migrate this file to Ox
125
126
  authorizationList: authorizationList?.map((auth) => ({
@@ -127,7 +128,7 @@ export async function estimateGas(
127
128
  r: ox__Hex.fromNumber(auth.r),
128
129
  s: ox__Hex.fromNumber(auth.s),
129
130
  nonce: Number(auth.nonce),
130
- contractAddress: auth.address,
131
+ contractAddress: getAddress(auth.address),
131
132
  })),
132
133
  }),
133
134
  );
@@ -2,6 +2,7 @@ import type { Address } from "abitype";
2
2
  import { encodeAbiParameters } from "viem";
3
3
  import { ZERO_ADDRESS } from "../../../../constants/addresses.js";
4
4
  import { getContract } from "../../../../contract/contract.js";
5
+ import { getAddress } from "../../../../utils/address.js";
5
6
  import { isHex } from "../../../../utils/encoding/helpers/is-hex.js";
6
7
  import { keccak256 } from "../../../../utils/hashing/keccak256.js";
7
8
  import { stringify } from "../../../../utils/json.js";
@@ -95,9 +96,9 @@ export async function prepareBiconomyTransaction({
95
96
  { type: "bytes32" },
96
97
  ],
97
98
  [
98
- request.from,
99
- request.to,
100
- request.token,
99
+ getAddress(request.from),
100
+ getAddress(request.to),
101
+ getAddress(request.token),
101
102
  request.txGas,
102
103
  request.tokenGasPrice,
103
104
  request.batchId,
@@ -3,6 +3,7 @@ import { decodeAbiParameters, formatTransactionRequest } from "viem";
3
3
  import { eth_call } from "../../rpc/actions/eth_call.js";
4
4
  import { getRpcClient } from "../../rpc/rpc.js";
5
5
  import type { PreparedMethod } from "../../utils/abi/prepare-method.js";
6
+ import { getAddress } from "../../utils/address.js";
6
7
  import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
7
8
  import type { Prettify } from "../../utils/type-utils.js";
8
9
  import type { Account } from "../../wallets/interfaces/wallet.js";
@@ -61,8 +62,8 @@ export async function simulateTransaction<
61
62
 
62
63
  const serializedTx = formatTransactionRequest({
63
64
  data,
64
- from,
65
- to,
65
+ from: from ? getAddress(from) : undefined,
66
+ to: to ? getAddress(to) : undefined,
66
67
  value,
67
68
  accessList,
68
69
  });
@@ -91,7 +91,10 @@ export async function toSerializableTransaction(
91
91
  ? await import("../../rpc/actions/eth_getTransactionCount.js").then(
92
92
  ({ eth_getTransactionCount }) =>
93
93
  eth_getTransactionCount(rpcRequest, {
94
- address: typeof from === "string" ? from : from?.address,
94
+ address:
95
+ typeof from === "string"
96
+ ? getAddress(from)
97
+ : getAddress(from.address),
95
98
  blockTag: "pending",
96
99
  }),
97
100
  )
@@ -24,6 +24,7 @@ import {
24
24
  type PreparedMethod,
25
25
  prepareMethod,
26
26
  } from "../utils/abi/prepare-method.js";
27
+ import { getAddress } from "../utils/address.js";
27
28
  import type { Hex } from "../utils/encoding/hex.js";
28
29
 
29
30
  export type ReadContractResult<outputs extends readonly AbiParameter[]> = // if the outputs are 0 length, return never, invalid case
@@ -214,7 +215,7 @@ export async function readContract<
214
215
  const result = await eth_call(rpcRequest, {
215
216
  data: encodedData,
216
217
  to: contract.address,
217
- from: options.from,
218
+ from: options.from ? getAddress(options.from) : undefined,
218
219
  });
219
220
  // use the prepared method to decode the result
220
221
  const decoded = decodeAbiParameters(resolvedPreparedMethod[2], result);
@@ -1,4 +1,5 @@
1
1
  import { type Hex, encodePacked } from "viem";
2
+ import { getAddress } from "../address.js";
2
3
  import { ensureBytecodePrefix } from "../bytecode/prefix.js";
3
4
  import { keccak256 } from "../hashing/keccak256.js";
4
5
  import { getSaltHash } from "./get-salt-hash.js";
@@ -46,7 +47,7 @@ export function computeDeploymentAddress(
46
47
  ["bytes1", "address", "bytes32", "bytes32"],
47
48
  [
48
49
  "0xff",
49
- options.create2FactoryAddress,
50
+ getAddress(options.create2FactoryAddress),
50
51
  saltHash,
51
52
  keccak256(encodePacked(["bytes"], [initBytecode])),
52
53
  ],
@@ -1,5 +1,5 @@
1
1
  import { getBytecode } from "../../contract/actions/get-bytecode.js";
2
- import type { ThirdwebContract } from "../../contract/contract.js";
2
+ import { type ThirdwebContract, getContract } from "../../contract/contract.js";
3
3
  import { eth_getStorageAt } from "../../rpc/actions/eth_getStorageAt.js";
4
4
  import { getRpcClient } from "../../rpc/rpc.js";
5
5
  import { readContract } from "../../transaction/read-contract.js";
@@ -37,10 +37,12 @@ export async function resolveImplementation(
37
37
  if (minimalProxyImplementationAddress) {
38
38
  return {
39
39
  address: minimalProxyImplementationAddress,
40
- bytecode: await getBytecode({
41
- ...contract,
42
- address: minimalProxyImplementationAddress,
43
- }),
40
+ bytecode: await getBytecode(
41
+ getContract({
42
+ ...contract,
43
+ address: minimalProxyImplementationAddress,
44
+ }),
45
+ ),
44
46
  };
45
47
  }
46
48
 
@@ -50,7 +52,10 @@ export async function resolveImplementation(
50
52
  // In case of a BeaconProxy, it is setup as BeaconProxy --> Beacon --> Implementation
51
53
  // Hence we replace the proxy address with Beacon address, and continue further resolving below
52
54
  // biome-ignore lint/style/noParameterAssign: we purposefully mutate the contract object here
53
- contract = { ...contract, address: beacon };
55
+ contract = getContract({
56
+ ...contract,
57
+ address: beacon,
58
+ });
54
59
 
55
60
  implementationAddress = await getImplementationFromContractCall(contract);
56
61
  } else {
@@ -1,4 +1,5 @@
1
1
  import { encodePacked } from "viem";
2
+ import { getAddress } from "../../address.js";
2
3
  import { keccak256 } from "../../hashing/keccak256.js";
3
4
  import type { SnapshotEntryERC1155 } from "./types.js";
4
5
 
@@ -9,7 +10,7 @@ export async function hashEntryERC1155(options: {
9
10
  encodePacked(
10
11
  ["address", "uint256", "uint256"],
11
12
  [
12
- options.entry.recipient,
13
+ getAddress(options.entry.recipient),
13
14
  BigInt(options.entry.tokenId),
14
15
  BigInt(options.entry.amount),
15
16
  ],
@@ -1,4 +1,5 @@
1
1
  import { encodePacked } from "viem";
2
+ import { getAddress } from "../../address.js";
2
3
  import { keccak256 } from "../../hashing/keccak256.js";
3
4
  import { toUnits } from "../../units.js";
4
5
  import type { SnapshotEntryERC20 } from "./types.js";
@@ -13,7 +14,7 @@ export async function hashEntryERC20(options: {
13
14
  encodePacked(
14
15
  ["address", "uint256"],
15
16
  [
16
- options.entry.recipient,
17
+ getAddress(options.entry.recipient),
17
18
  convertQuantity({
18
19
  quantity: options.entry.amount.toString(),
19
20
  tokenDecimals: decimals,
@@ -1,4 +1,5 @@
1
1
  import { encodePacked } from "viem";
2
+ import { getAddress } from "../../address.js";
2
3
  import { keccak256 } from "../../hashing/keccak256.js";
3
4
  import type { SnapshotEntryERC721 } from "./types.js";
4
5
 
@@ -6,7 +7,7 @@ export async function hashEntryERC721(options: { entry: SnapshotEntryERC721 }) {
6
7
  return keccak256(
7
8
  encodePacked(
8
9
  ["address", "uint256"],
9
- [options.entry.recipient, BigInt(options.entry.tokenId)],
10
+ [getAddress(options.entry.recipient), BigInt(options.entry.tokenId)],
10
11
  ),
11
12
  );
12
13
  }
@@ -5,6 +5,7 @@ import {
5
5
  ZERO_ADDRESS,
6
6
  isNativeTokenAddress,
7
7
  } from "../../../constants/addresses.js";
8
+ import { getAddress } from "../../address.js";
8
9
  import { keccak256 } from "../../hashing/keccak256.js";
9
10
  import { convertQuantity } from "./convert-quantity.js";
10
11
  import type { OverrideEntry } from "./types.js";
@@ -39,7 +40,7 @@ export async function hashEntry(options: {
39
40
  encodePacked(
40
41
  ["address", "uint256", "uint256", "address"],
41
42
  [
42
- options.entry.address,
43
+ getAddress(options.entry.address),
43
44
  convertQuantity({
44
45
  quantity: options.entry.maxClaimable || "unlimited",
45
46
  tokenDecimals: options.tokenDecimals,
@@ -48,7 +49,7 @@ export async function hashEntry(options: {
48
49
  quantity: options.entry.price || "unlimited",
49
50
  tokenDecimals: currencyDecimals,
50
51
  }),
51
- currencyAddress,
52
+ getAddress(currencyAddress),
52
53
  ],
53
54
  ),
54
55
  );
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.86.1";
1
+ export const version = "5.86.3";
@@ -1,3 +1,4 @@
1
+ import { getAddress } from "../../utils/address.js";
1
2
  import type { Prettify } from "../../utils/type-utils.js";
2
3
  import { isCoinbaseSDKWallet } from "../coinbase/coinbase-web.js";
3
4
  import { isInAppWallet } from "../in-app/core/wallet/index.js";
@@ -80,7 +81,7 @@ export async function getCapabilities<const ID extends WalletId = WalletId>({
80
81
  try {
81
82
  return await provider.request({
82
83
  method: "wallet_getCapabilities",
83
- params: [account.address],
84
+ params: [getAddress(account.address)],
84
85
  });
85
86
  } catch (error: unknown) {
86
87
  if (/unsupport|not support|not available/i.test((error as Error).message)) {
@@ -30,7 +30,9 @@ export async function backendAuthenticate(args: {
30
30
  }),
31
31
  });
32
32
 
33
- if (!res.ok) throw new Error("Failed to generate backend account");
33
+ if (!res.ok) {
34
+ throw new Error("Failed to generate backend account");
35
+ }
34
36
 
35
37
  return (await res.json()) satisfies AuthStoredTokenWithCookieReturnType;
36
38
  }
@@ -154,7 +154,7 @@ export class EnclaveWallet implements IWebWallet {
154
154
  "../../../../rpc/actions/eth_getTransactionCount.js"
155
155
  ).then(({ eth_getTransactionCount }) =>
156
156
  eth_getTransactionCount(rpcRequest, {
157
- address: this.address,
157
+ address: getAddress(this.address),
158
158
  blockTag: "pending",
159
159
  }),
160
160
  ),
@@ -107,7 +107,10 @@ export class Auth {
107
107
  authToken: AuthStoredTokenWithCookieReturnType,
108
108
  recoveryCode?: string,
109
109
  ): Promise<AuthLoginReturnType> {
110
- await this.preLogin();
110
+ // We don't call logout for backend auth because that is handled on the backend where the iframe isn't available to call. Moreover, logout clears the local storage which isn't applicable for backend auth.
111
+ if (authToken.storedToken.authProvider !== "Backend") {
112
+ await this.preLogin();
113
+ }
111
114
 
112
115
  const user = await getUserStatus({
113
116
  authToken: authToken.storedToken.cookieString,
@@ -321,13 +324,6 @@ export class Auth {
321
324
  * @internal
322
325
  */
323
326
  async logout(): Promise<LogoutReturnType> {
324
- if (this.AuthQuerier) {
325
- await this.AuthQuerier.call<LogoutReturnType>({
326
- procedureName: "logout",
327
- params: undefined,
328
- });
329
- }
330
-
331
327
  const isRemoveAuthCookie = await this.localStorage.removeAuthCookie();
332
328
  const isRemoveUserId = await this.localStorage.removeWalletUserId();
333
329
 
@@ -0,0 +1,102 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { IframeCommunicator } from "./IframeCommunicator.js";
3
+
4
+ describe("IframeCommunicator", () => {
5
+ // biome-ignore lint/suspicious/noExplicitAny: mock
6
+ let mockLocalStorage: any;
7
+ let mockContainer: HTMLElement;
8
+ let mockIframe: HTMLIFrameElement;
9
+
10
+ beforeEach(() => {
11
+ // Mock localStorage
12
+ vi.restoreAllMocks();
13
+
14
+ mockLocalStorage = {
15
+ getAuthCookie: vi.fn().mockResolvedValue("mockAuthCookie"),
16
+ getDeviceShare: vi.fn().mockResolvedValue("mockDeviceShare"),
17
+ getWalletUserId: vi.fn().mockResolvedValue("mockWalletUserId"),
18
+ };
19
+ // Mock DOM elements
20
+ mockContainer = document.createElement("div");
21
+ mockIframe = document.createElement("iframe");
22
+ vi.spyOn(document, "createElement").mockReturnValue(mockIframe);
23
+ vi.spyOn(document, "getElementById").mockReturnValue(null);
24
+ });
25
+
26
+ it("should create an iframe with correct properties", () => {
27
+ new IframeCommunicator({
28
+ link: "https://example.com",
29
+ baseUrl: "https://example.com",
30
+ iframeId: "test-iframe",
31
+ container: mockContainer,
32
+ localStorage: mockLocalStorage,
33
+ clientId: "test-client",
34
+ });
35
+
36
+ expect(document.createElement).toHaveBeenCalledWith("iframe");
37
+ expect(mockIframe.id).toBe("test-iframe");
38
+ expect(mockIframe.src).toBe("https://example.com/");
39
+ expect(mockIframe.style.display).toBe("none");
40
+ });
41
+
42
+ it("should initialize with correct variables", async () => {
43
+ const communicator = new IframeCommunicator({
44
+ link: "https://example.com",
45
+ baseUrl: "https://example.com",
46
+ iframeId: "test-iframe",
47
+ container: mockContainer,
48
+ localStorage: mockLocalStorage,
49
+ clientId: "test-client",
50
+ });
51
+
52
+ // biome-ignore lint/complexity/useLiteralKeys: accessing protected method
53
+ const vars = await communicator["onIframeLoadedInitVariables"]();
54
+
55
+ expect(vars).toEqual({
56
+ authCookie: "mockAuthCookie",
57
+ deviceShareStored: "mockDeviceShare",
58
+ walletUserId: "mockWalletUserId",
59
+ clientId: "test-client",
60
+ partnerId: undefined,
61
+ ecosystemId: undefined,
62
+ });
63
+ });
64
+
65
+ it("should throw error when calling methods without iframe", async () => {
66
+ const temp = global.document;
67
+ // @ts-expect-error - Testing undefined document scenario
68
+ global.document = undefined;
69
+
70
+ const communicator = new IframeCommunicator({
71
+ link: "https://example.com",
72
+ baseUrl: "https://example.com",
73
+ iframeId: "test-iframe",
74
+ localStorage: mockLocalStorage,
75
+ clientId: "test-client",
76
+ });
77
+
78
+ await expect(
79
+ communicator.call({
80
+ procedureName: "test",
81
+ params: {},
82
+ }),
83
+ ).rejects.toThrow("Iframe not found");
84
+ global.document = temp;
85
+ });
86
+
87
+ it("should cleanup on destroy", () => {
88
+ const communicator = new IframeCommunicator({
89
+ link: "https://example.com",
90
+ baseUrl: "https://example.com",
91
+ iframeId: "test-iframe",
92
+ container: mockContainer,
93
+ localStorage: mockLocalStorage,
94
+ clientId: "test-client",
95
+ });
96
+
97
+ communicator.destroy();
98
+
99
+ // biome-ignore lint/complexity/useLiteralKeys: accessing protected field
100
+ expect(communicator["iframe"]).toBeDefined();
101
+ });
102
+ });
@@ -35,7 +35,7 @@ const isIframeLoaded = new Map<string, boolean>();
35
35
  */
36
36
  // biome-ignore lint/suspicious/noExplicitAny: TODO: fix later
37
37
  export class IframeCommunicator<T extends { [key: string]: any }> {
38
- private iframe: HTMLIFrameElement;
38
+ private iframe?: HTMLIFrameElement;
39
39
  private POLLING_INTERVAL_SECONDS = 1.4;
40
40
  private iframeBaseUrl;
41
41
  protected localStorage: ClientScopedStorage;
@@ -49,7 +49,7 @@ export class IframeCommunicator<T extends { [key: string]: any }> {
49
49
  link,
50
50
  baseUrl,
51
51
  iframeId,
52
- container = document.body,
52
+ container,
53
53
  onIframeInitialize,
54
54
  localStorage,
55
55
  clientId,
@@ -60,6 +60,10 @@ export class IframeCommunicator<T extends { [key: string]: any }> {
60
60
  this.ecosystem = ecosystem;
61
61
  this.iframeBaseUrl = baseUrl;
62
62
 
63
+ if (typeof document === "undefined") {
64
+ return;
65
+ }
66
+ container = container ?? document.body;
63
67
  // Creating the IFrame element for communication
64
68
  let iframe = document.getElementById(iframeId) as HTMLIFrameElement | null;
65
69
  const hrefLink = new URL(link);
@@ -164,6 +168,11 @@ export class IframeCommunicator<T extends { [key: string]: any }> {
164
168
  params: T[keyof T];
165
169
  showIframe?: boolean;
166
170
  }) {
171
+ if (!this.iframe) {
172
+ throw new Error(
173
+ "Iframe not found. You are likely calling this from the backend where the DOM is not available.",
174
+ );
175
+ }
167
176
  while (!isIframeLoaded.get(this.iframe.src)) {
168
177
  await sleep(this.POLLING_INTERVAL_SECONDS * 1000);
169
178
  }
@@ -182,7 +191,9 @@ export class IframeCommunicator<T extends { [key: string]: any }> {
182
191
  if (showIframe) {
183
192
  // magic number to let modal fade out before hiding it
184
193
  await sleep(0.1 * 1000);
185
- this.iframe.style.display = "none";
194
+ if (this.iframe) {
195
+ this.iframe.style.display = "none";
196
+ }
186
197
  }
187
198
  if (!data.success) {
188
199
  rej(new Error(data.error));
@@ -213,6 +224,8 @@ export class IframeCommunicator<T extends { [key: string]: any }> {
213
224
  * @internal
214
225
  */
215
226
  destroy() {
216
- isIframeLoaded.delete(this.iframe.src);
227
+ if (this.iframe) {
228
+ isIframeLoaded.delete(this.iframe.src);
229
+ }
217
230
  }
218
231
  }