thirdweb 5.29.6 → 5.30.0-nightly-33777df88fb190c2af8ad25e4930040884996f1e-20240620000630

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 (363) hide show
  1. package/dist/cjs/exports/extensions/erc1155.js +3 -1
  2. package/dist/cjs/exports/extensions/erc1155.js.map +1 -1
  3. package/dist/cjs/exports/wallets/wallet-connect.js +1 -1
  4. package/dist/cjs/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.js +28 -0
  5. package/dist/cjs/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.js.map +1 -0
  6. package/dist/cjs/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.js +71 -0
  7. package/dist/cjs/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.js.map +1 -0
  8. package/dist/cjs/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.js +115 -0
  9. package/dist/cjs/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.js.map +1 -0
  10. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.js +116 -0
  11. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.js.map +1 -0
  12. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.js +126 -0
  13. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.js.map +1 -0
  14. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.js +126 -0
  15. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.js.map +1 -0
  16. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.js +123 -0
  17. package/dist/cjs/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.js.map +1 -0
  18. package/dist/cjs/extensions/erc1155/drops/write/updateMetadata.js +89 -0
  19. package/dist/cjs/extensions/erc1155/drops/write/updateMetadata.js.map +1 -0
  20. package/dist/cjs/pay/buyWithCrypto/getQuote.js +19 -21
  21. package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
  22. package/dist/cjs/pay/buyWithCrypto/getStatus.js.map +1 -1
  23. package/dist/cjs/pay/buyWithFiat/getQuote.js +19 -20
  24. package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
  25. package/dist/cjs/pay/buyWithFiat/getStatus.js.map +1 -1
  26. package/dist/cjs/react/core/hooks/contract/useContractEvents.js +1 -1
  27. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  28. package/dist/cjs/react/native/hooks/wallets/useActiveWalletChain.js +1 -1
  29. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +1 -0
  30. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  31. package/dist/cjs/react/web/hooks/wallets/useActiveWalletChain.js +1 -1
  32. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +63 -118
  33. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  34. package/dist/cjs/react/web/ui/ConnectWallet/MenuButton.js +53 -0
  35. package/dist/cjs/react/web/ui/ConnectWallet/MenuButton.js.map +1 -0
  36. package/dist/cjs/react/web/ui/ConnectWallet/icons/CoinsIcon.js +12 -0
  37. package/dist/cjs/react/web/ui/ConnectWallet/icons/CoinsIcon.js.map +1 -0
  38. package/dist/cjs/react/web/ui/ConnectWallet/icons/{WalletIcon.js → GenericWalletIcon.js} +4 -4
  39. package/dist/cjs/react/web/ui/ConnectWallet/icons/GenericWalletIcon.js.map +1 -0
  40. package/dist/cjs/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.js +12 -0
  41. package/dist/cjs/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.js.map +1 -0
  42. package/dist/cjs/react/web/ui/ConnectWallet/icons/WalletConnectIcon.js +12 -0
  43. package/dist/cjs/react/web/ui/ConnectWallet/icons/WalletConnectIcon.js.map +1 -0
  44. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -0
  45. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  46. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +2 -2
  47. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  48. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +57 -0
  49. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -0
  50. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +3 -1
  51. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  52. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.js +78 -0
  53. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.js.map +1 -0
  54. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.js +2 -4
  55. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.js.map +1 -1
  56. package/dist/cjs/react/web/ui/ConnectWallet/useConnectModal.js.map +1 -1
  57. package/dist/cjs/react/web/ui/components/CopyIcon.js +2 -1
  58. package/dist/cjs/react/web/ui/components/CopyIcon.js.map +1 -1
  59. package/dist/cjs/react/web/utils/canFitWideModal.js +1 -1
  60. package/dist/cjs/react/web/wallets/in-app/InputSelectionUI.js +2 -2
  61. package/dist/cjs/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
  62. package/dist/cjs/react/web/wallets/shared/ConnectingScreen.js +2 -2
  63. package/dist/cjs/react/web/wallets/shared/ConnectingScreen.js.map +1 -1
  64. package/dist/cjs/transaction/read-contract.js +1 -1
  65. package/dist/cjs/version.js +1 -1
  66. package/dist/cjs/version.js.map +1 -1
  67. package/dist/cjs/wallets/injected/index.js +7 -0
  68. package/dist/cjs/wallets/injected/index.js.map +1 -1
  69. package/dist/cjs/wallets/wallet-connect/controller.js +6 -6
  70. package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
  71. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/index.js +17 -4
  72. package/dist/cjs/wallets/wallet-connect/receiver/index.js.map +1 -0
  73. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.js.map +1 -1
  74. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.js.map +1 -1
  75. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.js.map +1 -1
  76. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.js.map +1 -1
  77. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.js +1 -1
  78. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.js.map +1 -1
  79. package/dist/cjs/wallets/wallet-connect/receiver/request-handlers/switch-chain.js +20 -0
  80. package/dist/cjs/wallets/wallet-connect/receiver/request-handlers/switch-chain.js.map +1 -0
  81. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/session-proposal.js +13 -10
  82. package/dist/cjs/wallets/wallet-connect/receiver/session-proposal.js.map +1 -0
  83. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/session-request.js +28 -0
  84. package/dist/cjs/wallets/wallet-connect/receiver/session-request.js.map +1 -0
  85. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/session-store.js.map +1 -1
  86. package/dist/cjs/wallets/wallet-connect/receiver/types.js.map +1 -0
  87. package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/utils.js +2 -1
  88. package/dist/cjs/wallets/wallet-connect/receiver/utils.js.map +1 -0
  89. package/dist/esm/exports/extensions/erc1155.js +1 -0
  90. package/dist/esm/exports/extensions/erc1155.js.map +1 -1
  91. package/dist/esm/exports/wallets/wallet-connect.js +1 -1
  92. package/dist/esm/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.js +24 -0
  93. package/dist/esm/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.js.map +1 -0
  94. package/dist/esm/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.js +65 -0
  95. package/dist/esm/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.js.map +1 -0
  96. package/dist/esm/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.js +107 -0
  97. package/dist/esm/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.js.map +1 -0
  98. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.js +109 -0
  99. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.js.map +1 -0
  100. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.js +119 -0
  101. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.js.map +1 -0
  102. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.js +119 -0
  103. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.js.map +1 -0
  104. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.js +116 -0
  105. package/dist/esm/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.js.map +1 -0
  106. package/dist/esm/extensions/erc1155/drops/write/updateMetadata.js +84 -0
  107. package/dist/esm/extensions/erc1155/drops/write/updateMetadata.js.map +1 -0
  108. package/dist/esm/pay/buyWithCrypto/getQuote.js +19 -21
  109. package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
  110. package/dist/esm/pay/buyWithCrypto/getStatus.js.map +1 -1
  111. package/dist/esm/pay/buyWithFiat/getQuote.js +19 -20
  112. package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
  113. package/dist/esm/pay/buyWithFiat/getStatus.js.map +1 -1
  114. package/dist/esm/react/core/hooks/contract/useContractEvents.js +1 -1
  115. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  116. package/dist/esm/react/native/hooks/wallets/useActiveWalletChain.js +1 -1
  117. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +1 -0
  118. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  119. package/dist/esm/react/web/hooks/wallets/useActiveWalletChain.js +1 -1
  120. package/dist/esm/react/web/ui/ConnectWallet/Details.js +23 -78
  121. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  122. package/dist/esm/react/web/ui/ConnectWallet/MenuButton.js +50 -0
  123. package/dist/esm/react/web/ui/ConnectWallet/MenuButton.js.map +1 -0
  124. package/dist/esm/react/web/ui/ConnectWallet/icons/CoinsIcon.js +8 -0
  125. package/dist/esm/react/web/ui/ConnectWallet/icons/CoinsIcon.js.map +1 -0
  126. package/dist/esm/react/web/ui/ConnectWallet/icons/{WalletIcon.js → GenericWalletIcon.js} +2 -2
  127. package/dist/esm/react/web/ui/ConnectWallet/icons/GenericWalletIcon.js.map +1 -0
  128. package/dist/esm/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.js +8 -0
  129. package/dist/esm/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.js.map +1 -0
  130. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletConnectIcon.js +8 -0
  131. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletConnectIcon.js.map +1 -0
  132. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -0
  133. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  134. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +2 -2
  135. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  136. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +53 -0
  137. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -0
  138. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +3 -1
  139. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  140. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.js +74 -0
  141. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.js.map +1 -0
  142. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.js +2 -4
  143. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.js.map +1 -1
  144. package/dist/esm/react/web/ui/ConnectWallet/useConnectModal.js.map +1 -1
  145. package/dist/esm/react/web/ui/components/CopyIcon.js +2 -1
  146. package/dist/esm/react/web/ui/components/CopyIcon.js.map +1 -1
  147. package/dist/esm/react/web/utils/canFitWideModal.js +1 -1
  148. package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js +2 -2
  149. package/dist/esm/react/web/wallets/in-app/InputSelectionUI.js.map +1 -1
  150. package/dist/esm/react/web/wallets/shared/ConnectingScreen.js +2 -2
  151. package/dist/esm/react/web/wallets/shared/ConnectingScreen.js.map +1 -1
  152. package/dist/esm/transaction/read-contract.js +1 -1
  153. package/dist/esm/version.js +1 -1
  154. package/dist/esm/version.js.map +1 -1
  155. package/dist/esm/wallets/injected/index.js +7 -0
  156. package/dist/esm/wallets/injected/index.js.map +1 -1
  157. package/dist/esm/wallets/wallet-connect/controller.js +6 -6
  158. package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
  159. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/index.js +15 -3
  160. package/dist/esm/wallets/wallet-connect/receiver/index.js.map +1 -0
  161. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.js.map +1 -1
  162. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.js.map +1 -1
  163. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.js.map +1 -1
  164. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.js.map +1 -1
  165. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.js +1 -1
  166. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.js.map +1 -1
  167. package/dist/esm/wallets/wallet-connect/receiver/request-handlers/switch-chain.js +16 -0
  168. package/dist/esm/wallets/wallet-connect/receiver/request-handlers/switch-chain.js.map +1 -0
  169. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/session-proposal.js +13 -10
  170. package/dist/esm/wallets/wallet-connect/receiver/session-proposal.js.map +1 -0
  171. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/session-request.js +28 -0
  172. package/dist/esm/wallets/wallet-connect/receiver/session-request.js.map +1 -0
  173. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/session-store.js.map +1 -1
  174. package/dist/esm/wallets/wallet-connect/receiver/types.js.map +1 -0
  175. package/dist/esm/wallets/wallet-connect/{consumer → receiver}/utils.js +2 -1
  176. package/dist/esm/wallets/wallet-connect/receiver/utils.js.map +1 -0
  177. package/dist/types/exports/extensions/erc1155.d.ts +1 -0
  178. package/dist/types/exports/extensions/erc1155.d.ts.map +1 -1
  179. package/dist/types/exports/wallets/wallet-connect.d.ts +2 -2
  180. package/dist/types/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.d.ts +29 -0
  181. package/dist/types/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.d.ts.map +1 -0
  182. package/dist/types/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.d.ts +46 -0
  183. package/dist/types/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.d.ts.map +1 -0
  184. package/dist/types/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.d.ts +85 -0
  185. package/dist/types/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.d.ts.map +1 -0
  186. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.d.ts +80 -0
  187. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.d.ts.map +1 -0
  188. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.d.ts +87 -0
  189. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.d.ts.map +1 -0
  190. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.d.ts +87 -0
  191. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.d.ts.map +1 -0
  192. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.d.ts +87 -0
  193. package/dist/types/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.d.ts.map +1 -0
  194. package/dist/types/extensions/erc1155/drops/write/updateMetadata.d.ts +37 -0
  195. package/dist/types/extensions/erc1155/drops/write/updateMetadata.d.ts.map +1 -0
  196. package/dist/types/pay/buyWithCrypto/getQuote.d.ts +6 -0
  197. package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
  198. package/dist/types/pay/buyWithCrypto/getStatus.d.ts +1 -0
  199. package/dist/types/pay/buyWithCrypto/getStatus.d.ts.map +1 -1
  200. package/dist/types/pay/buyWithFiat/getQuote.d.ts +11 -1
  201. package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
  202. package/dist/types/pay/buyWithFiat/getStatus.d.ts +4 -0
  203. package/dist/types/pay/buyWithFiat/getStatus.d.ts.map +1 -1
  204. package/dist/types/react/core/hooks/contract/useContractEvents.d.ts +1 -1
  205. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -0
  206. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  207. package/dist/types/react/native/hooks/wallets/useActiveWalletChain.d.ts +1 -1
  208. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  209. package/dist/types/react/web/hooks/wallets/useActiveWalletChain.d.ts +1 -1
  210. package/dist/types/react/web/ui/ConnectWallet/ConnectButtonProps.d.ts +44 -4
  211. package/dist/types/react/web/ui/ConnectWallet/ConnectButtonProps.d.ts.map +1 -1
  212. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  213. package/dist/types/react/web/ui/ConnectWallet/MenuButton.d.ts +10 -0
  214. package/dist/types/react/web/ui/ConnectWallet/MenuButton.d.ts.map +1 -0
  215. package/dist/types/react/web/ui/ConnectWallet/icons/CoinsIcon.d.ts +6 -0
  216. package/dist/types/react/web/ui/ConnectWallet/icons/CoinsIcon.d.ts.map +1 -0
  217. package/dist/types/react/web/ui/ConnectWallet/icons/GenericWalletIcon.d.ts +6 -0
  218. package/dist/types/react/web/ui/ConnectWallet/icons/GenericWalletIcon.d.ts.map +1 -0
  219. package/dist/types/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.d.ts +6 -0
  220. package/dist/types/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.d.ts.map +1 -0
  221. package/dist/types/react/web/ui/ConnectWallet/icons/WalletConnectIcon.d.ts +6 -0
  222. package/dist/types/react/web/ui/ConnectWallet/icons/WalletConnectIcon.d.ts.map +1 -0
  223. package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts +14 -0
  224. package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -0
  225. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts.map +1 -1
  226. package/dist/types/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.d.ts +12 -0
  227. package/dist/types/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.d.ts.map +1 -0
  228. package/dist/types/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.d.ts +3 -0
  229. package/dist/types/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.d.ts.map +1 -1
  230. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts +1 -0
  231. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts.map +1 -1
  232. package/dist/types/react/web/ui/ConnectWallet/useConnectModal.d.ts +1 -1
  233. package/dist/types/react/web/ui/components/CopyIcon.d.ts.map +1 -1
  234. package/dist/types/react/web/utils/canFitWideModal.d.ts +1 -1
  235. package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts +1 -0
  236. package/dist/types/react/web/wallets/in-app/InputSelectionUI.d.ts.map +1 -1
  237. package/dist/types/react/web/wallets/shared/ConnectingScreen.d.ts.map +1 -1
  238. package/dist/types/transaction/read-contract.d.ts +1 -1
  239. package/dist/types/version.d.ts +1 -1
  240. package/dist/types/version.d.ts.map +1 -1
  241. package/dist/types/wallets/injected/index.d.ts.map +1 -1
  242. package/dist/types/wallets/interfaces/wallet.d.ts +21 -0
  243. package/dist/types/wallets/interfaces/wallet.d.ts.map +1 -1
  244. package/dist/types/wallets/wallet-connect/controller.d.ts.map +1 -1
  245. package/dist/types/wallets/wallet-connect/{consumer → receiver}/index.d.ts +7 -1
  246. package/dist/types/wallets/wallet-connect/receiver/index.d.ts.map +1 -0
  247. package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.d.ts.map +1 -1
  248. package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.d.ts.map +1 -1
  249. package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.d.ts.map +1 -1
  250. package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.d.ts.map +1 -1
  251. package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.d.ts.map +1 -1
  252. package/dist/types/wallets/wallet-connect/receiver/request-handlers/switch-chain.d.ts +11 -0
  253. package/dist/types/wallets/wallet-connect/receiver/request-handlers/switch-chain.d.ts.map +1 -0
  254. package/dist/types/wallets/wallet-connect/{consumer → receiver}/session-proposal.d.ts +4 -1
  255. package/dist/types/wallets/wallet-connect/receiver/session-proposal.d.ts.map +1 -0
  256. package/dist/types/wallets/wallet-connect/receiver/session-request.d.ts.map +1 -0
  257. package/dist/types/wallets/wallet-connect/{consumer → receiver}/session-store.d.ts.map +1 -1
  258. package/dist/types/wallets/wallet-connect/{consumer → receiver}/types.d.ts +25 -3
  259. package/dist/types/wallets/wallet-connect/receiver/types.d.ts.map +1 -0
  260. package/dist/types/wallets/wallet-connect/{consumer → receiver}/utils.d.ts +1 -1
  261. package/dist/types/wallets/wallet-connect/receiver/utils.d.ts.map +1 -0
  262. package/package.json +3 -3
  263. package/src/exports/extensions/erc1155.ts +5 -0
  264. package/src/exports/wallets/wallet-connect.ts +2 -2
  265. package/src/extensions/erc1155/__generated__/BatchMintMetadata/events/BatchMetadataUpdate.ts +25 -0
  266. package/src/extensions/erc1155/__generated__/BatchMintMetadata/read/getBaseURICount.ts +74 -0
  267. package/src/extensions/erc1155/__generated__/BatchMintMetadata/read/getBatchIdAtIndex.ts +131 -0
  268. package/src/extensions/erc1155/__generated__/DropERC1155/write/freezeBatchBaseURI.ts +141 -0
  269. package/src/extensions/erc1155/__generated__/DropERC1155/write/setMaxTotalSupply.ts +155 -0
  270. package/src/extensions/erc1155/__generated__/DropERC1155/write/setSaleRecipientForToken.ts +157 -0
  271. package/src/extensions/erc1155/__generated__/DropERC1155/write/updateBatchBaseURI.ts +149 -0
  272. package/src/extensions/erc1155/drops/write/claimTo.test.ts +73 -0
  273. package/src/extensions/erc1155/drops/write/updateMetadata.test.ts +127 -0
  274. package/src/extensions/erc1155/drops/write/updateMetadata.ts +125 -0
  275. package/src/extensions/erc721/write/mintTo.test.ts +67 -0
  276. package/src/pay/buyWithCrypto/getQuote.ts +27 -27
  277. package/src/pay/buyWithCrypto/getStatus.ts +1 -0
  278. package/src/pay/buyWithFiat/getQuote.ts +33 -27
  279. package/src/pay/buyWithFiat/getStatus.ts +5 -0
  280. package/src/react/core/hooks/contract/useContractEvents.ts +1 -1
  281. package/src/react/core/hooks/transaction/useSendTransaction.ts +1 -0
  282. package/src/react/native/hooks/wallets/useActiveWalletChain.ts +1 -1
  283. package/src/react/web/hooks/transaction/useSendTransaction.tsx +1 -0
  284. package/src/react/web/hooks/wallets/useActiveWalletChain.ts +1 -1
  285. package/src/react/web/ui/ConnectWallet/ConnectButtonProps.ts +45 -4
  286. package/src/react/web/ui/ConnectWallet/Details.tsx +46 -145
  287. package/src/react/web/ui/ConnectWallet/MenuButton.tsx +55 -0
  288. package/src/react/web/ui/ConnectWallet/icons/CoinsIcon.tsx +46 -0
  289. package/src/react/web/ui/ConnectWallet/icons/{WalletIcon.tsx → GenericWalletIcon.tsx} +1 -1
  290. package/src/react/web/ui/ConnectWallet/icons/OutlineWalletIcon.tsx +32 -0
  291. package/src/react/web/ui/ConnectWallet/icons/WalletConnectIcon.tsx +22 -0
  292. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +3 -0
  293. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +2 -2
  294. package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +122 -0
  295. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +7 -1
  296. package/src/react/web/ui/ConnectWallet/screens/WalletConnectReceiverScreen.tsx +165 -0
  297. package/src/react/web/ui/ConnectWallet/screens/WalletLogoSpinner.tsx +30 -24
  298. package/src/react/web/ui/ConnectWallet/screens/types.ts +13 -0
  299. package/src/react/web/ui/ConnectWallet/useConnectModal.tsx +1 -1
  300. package/src/react/web/ui/components/CopyIcon.tsx +5 -6
  301. package/src/react/web/utils/canFitWideModal.ts +1 -1
  302. package/src/react/web/wallets/in-app/InputSelectionUI.tsx +3 -0
  303. package/src/react/web/wallets/shared/ConnectingScreen.tsx +2 -1
  304. package/src/transaction/read-contract.ts +1 -1
  305. package/src/version.ts +1 -1
  306. package/src/wallets/injected/index.ts +10 -0
  307. package/src/wallets/interfaces/wallet.ts +22 -0
  308. package/src/wallets/smart/smart-wallet-integration.test.ts +1 -2
  309. package/src/wallets/wallet-connect/controller.ts +6 -5
  310. package/src/wallets/wallet-connect/{consumer → receiver}/index.ts +29 -4
  311. package/src/wallets/wallet-connect/{consumer/consumer.test.ts → receiver/receiver.test.ts} +5 -0
  312. package/src/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.ts +1 -1
  313. package/src/wallets/wallet-connect/receiver/request-handlers/switch-chain.ts +21 -0
  314. package/src/wallets/wallet-connect/{consumer → receiver}/session-proposal.test.ts +37 -18
  315. package/src/wallets/wallet-connect/{consumer → receiver}/session-proposal.ts +23 -15
  316. package/src/wallets/wallet-connect/{consumer → receiver}/session-request.test.ts +85 -0
  317. package/src/wallets/wallet-connect/{consumer → receiver}/session-request.ts +39 -1
  318. package/src/wallets/wallet-connect/{consumer → receiver}/types.ts +27 -3
  319. package/src/wallets/wallet-connect/{consumer → receiver}/utils.ts +2 -2
  320. package/dist/cjs/react/web/ui/ConnectWallet/icons/WalletIcon.js.map +0 -1
  321. package/dist/cjs/wallets/wallet-connect/consumer/index.js.map +0 -1
  322. package/dist/cjs/wallets/wallet-connect/consumer/session-proposal.js.map +0 -1
  323. package/dist/cjs/wallets/wallet-connect/consumer/session-request.js.map +0 -1
  324. package/dist/cjs/wallets/wallet-connect/consumer/types.js.map +0 -1
  325. package/dist/cjs/wallets/wallet-connect/consumer/utils.js.map +0 -1
  326. package/dist/esm/react/web/ui/ConnectWallet/icons/WalletIcon.js.map +0 -1
  327. package/dist/esm/wallets/wallet-connect/consumer/index.js.map +0 -1
  328. package/dist/esm/wallets/wallet-connect/consumer/session-proposal.js.map +0 -1
  329. package/dist/esm/wallets/wallet-connect/consumer/session-request.js.map +0 -1
  330. package/dist/esm/wallets/wallet-connect/consumer/types.js.map +0 -1
  331. package/dist/esm/wallets/wallet-connect/consumer/utils.js.map +0 -1
  332. package/dist/types/react/web/ui/ConnectWallet/icons/WalletIcon.d.ts +0 -6
  333. package/dist/types/react/web/ui/ConnectWallet/icons/WalletIcon.d.ts.map +0 -1
  334. package/dist/types/wallets/wallet-connect/consumer/index.d.ts.map +0 -1
  335. package/dist/types/wallets/wallet-connect/consumer/session-proposal.d.ts.map +0 -1
  336. package/dist/types/wallets/wallet-connect/consumer/session-request.d.ts.map +0 -1
  337. package/dist/types/wallets/wallet-connect/consumer/types.d.ts.map +0 -1
  338. package/dist/types/wallets/wallet-connect/consumer/utils.d.ts.map +0 -1
  339. /package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.js +0 -0
  340. /package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.js +0 -0
  341. /package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.js +0 -0
  342. /package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.js +0 -0
  343. /package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/session-store.js +0 -0
  344. /package/dist/cjs/wallets/wallet-connect/{consumer → receiver}/types.js +0 -0
  345. /package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.js +0 -0
  346. /package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.js +0 -0
  347. /package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.js +0 -0
  348. /package/dist/esm/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.js +0 -0
  349. /package/dist/esm/wallets/wallet-connect/{consumer → receiver}/session-store.js +0 -0
  350. /package/dist/esm/wallets/wallet-connect/{consumer → receiver}/types.js +0 -0
  351. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.d.ts +0 -0
  352. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.d.ts +0 -0
  353. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.d.ts +0 -0
  354. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.d.ts +0 -0
  355. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign.d.ts +0 -0
  356. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/session-request.d.ts +0 -0
  357. /package/dist/types/wallets/wallet-connect/{consumer → receiver}/session-store.d.ts +0 -0
  358. /package/src/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-raw-transaction.ts +0 -0
  359. /package/src/wallets/wallet-connect/{consumer → receiver}/request-handlers/send-transaction.ts +0 -0
  360. /package/src/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-transaction.ts +0 -0
  361. /package/src/wallets/wallet-connect/{consumer → receiver}/request-handlers/sign-typed-data.ts +0 -0
  362. /package/src/wallets/wallet-connect/{consumer → receiver}/session-store.test.ts +0 -0
  363. /package/src/wallets/wallet-connect/{consumer → receiver}/session-store.ts +0 -0
@@ -0,0 +1,46 @@
1
+ import type { IconFC } from "./types.js";
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export const CoinsIcon: IconFC = (props) => {
7
+ return (
8
+ <svg
9
+ width={props.size}
10
+ height={props.size}
11
+ role="presentation"
12
+ viewBox="0 0 24 24"
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ >
16
+ <path
17
+ d="M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14Z"
18
+ stroke="currentColor"
19
+ strokeWidth="1.5"
20
+ strokeLinecap="round"
21
+ strokeLinejoin="round"
22
+ />
23
+ <path
24
+ d="M18.0901 10.37C19.0354 10.7224 19.8766 11.3075 20.5358 12.0712C21.1951 12.8349 21.6512 13.7524 21.8618 14.7391C22.0725 15.7257 22.031 16.7495 21.7411 17.7158C21.4513 18.6822 20.9224 19.5598 20.2035 20.2676C19.4846 20.9754 18.5988 21.4905 17.6281 21.7652C16.6573 22.04 15.633 22.0655 14.6498 21.8395C13.6666 21.6134 12.7562 21.1431 12.0029 20.472C11.2496 19.8009 10.6777 18.9507 10.3401 18"
25
+ stroke="currentColor"
26
+ strokeWidth="1.5"
27
+ strokeLinecap="round"
28
+ strokeLinejoin="round"
29
+ />
30
+ <path
31
+ d="M7 6H8V10"
32
+ stroke="currentColor"
33
+ strokeWidth="1.5"
34
+ strokeLinecap="round"
35
+ strokeLinejoin="round"
36
+ />
37
+ <path
38
+ d="M16.7101 13.88L17.4101 14.59L14.5901 17.41"
39
+ stroke="currentColor"
40
+ strokeWidth="1.5"
41
+ strokeLinecap="round"
42
+ strokeLinejoin="round"
43
+ />
44
+ </svg>
45
+ );
46
+ };
@@ -3,7 +3,7 @@ import type { IconFC } from "./types.js";
3
3
  /**
4
4
  * @internal
5
5
  */
6
- export const WalletIcon: IconFC = (props) => {
6
+ export const GenericWalletIcon: IconFC = (props) => {
7
7
  return (
8
8
  <svg
9
9
  xmlns="http://www.w3.org/2000/svg"
@@ -0,0 +1,32 @@
1
+ import type { IconFC } from "./types.js";
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export const OutlineWalletIcon: IconFC = (props) => {
7
+ return (
8
+ <svg
9
+ width={props.size}
10
+ height={props.size}
11
+ viewBox="0 0 24 24"
12
+ role="presentation"
13
+ fill="none"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ >
16
+ <path
17
+ d="M19 7V4C19 3.73478 18.8946 3.48043 18.7071 3.29289C18.5196 3.10536 18.2652 3 18 3H5C4.46957 3 3.96086 3.21071 3.58579 3.58579C3.21071 3.96086 3 4.46957 3 5C3 5.53043 3.21071 6.03914 3.58579 6.41421C3.96086 6.78929 4.46957 7 5 7H20C20.2652 7 20.5196 7.10536 20.7071 7.29289C20.8946 7.48043 21 7.73478 21 8V12M21 12H18C17.4696 12 16.9609 12.2107 16.5858 12.5858C16.2107 12.9609 16 13.4696 16 14C16 14.5304 16.2107 15.0391 16.5858 15.4142C16.9609 15.7893 17.4696 16 18 16H21C21.2652 16 21.5196 15.8946 21.7071 15.7071C21.8946 15.5196 22 15.2652 22 15V13C22 12.7348 21.8946 12.4804 21.7071 12.2929C21.5196 12.1054 21.2652 12 21 12Z"
18
+ stroke="currentColor"
19
+ strokeWidth="1.5"
20
+ strokeLinecap="round"
21
+ strokeLinejoin="round"
22
+ />
23
+ <path
24
+ d="M3 5V19C3 19.5304 3.21071 20.0391 3.58579 20.4142C3.96086 20.7893 4.46957 21 5 21H20C20.2652 21 20.5196 20.8946 20.7071 20.7071C20.8946 20.5196 21 20.2652 21 20V16"
25
+ stroke="currentColor"
26
+ strokeWidth="1.5"
27
+ strokeLinecap="round"
28
+ strokeLinejoin="round"
29
+ />
30
+ </svg>
31
+ );
32
+ };
@@ -0,0 +1,22 @@
1
+ import type { IconFC } from "./types.js";
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ export const WalletConnectIcon: IconFC = (props) => {
7
+ return (
8
+ <svg
9
+ width={props.size}
10
+ height={props.size}
11
+ viewBox="0 0 24 24"
12
+ fill="none"
13
+ role="presentation"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ >
16
+ <path
17
+ d="M4.91334 7.73539C8.82714 4.0882 15.1729 4.0882 19.0867 7.73539L19.5577 8.17432C19.7534 8.35664 19.7534 8.65232 19.5577 8.83464L17.9464 10.3362C17.8485 10.4274 17.6899 10.4274 17.5921 10.3362L16.9439 9.73217C14.2134 7.18782 9.7866 7.18782 7.05614 9.73217L6.36193 10.379C6.26407 10.4702 6.10547 10.4702 6.0076 10.379L4.39629 8.87747C4.20056 8.69515 4.20056 8.39947 4.39629 8.21715L4.91334 7.73539ZM22.4191 10.8407L23.8532 12.1771C24.0489 12.3594 24.0489 12.6551 23.8532 12.8374L17.3867 18.8632C17.1911 19.0456 16.8738 19.0456 16.6781 18.8632L12.0886 14.5865C12.0397 14.5409 11.9604 14.5409 11.9115 14.5865L7.32202 18.8632C7.12638 19.0456 6.8091 19.0456 6.61337 18.8632L0.146771 12.8373C-0.0489237 12.655 -0.0489237 12.3593 0.146771 12.177L1.58087 10.8406C1.77657 10.6582 2.09384 10.6582 2.28954 10.8406L6.87907 15.1173C6.928 15.163 7.0073 15.163 7.05623 15.1173L11.6456 10.8406C11.8412 10.6582 12.1585 10.6582 12.3542 10.8406L16.9438 15.1173C16.9927 15.163 17.072 15.163 17.1209 15.1173L21.7105 10.8407C21.9061 10.6583 22.2234 10.6583 22.4191 10.8407Z"
18
+ fill="currentColor"
19
+ />
20
+ </svg>
21
+ );
22
+ };
@@ -604,6 +604,7 @@ function SwapScreenContent(
604
604
  : toToken.address,
605
605
  toAmount: tokenAmount,
606
606
  client,
607
+ purchaseData: payOptions.purchaseData,
607
608
  }
608
609
  : undefined;
609
610
 
@@ -799,6 +800,8 @@ function FiatScreenContent(
799
800
  toAmount: tokenAmount,
800
801
  client,
801
802
  isTestMode: buyWithFiatOptions?.testMode,
803
+ purchaseData: props.payOptions.purchaseData,
804
+ fromAddress: account.address,
802
805
  }
803
806
  : undefined,
804
807
  );
@@ -18,7 +18,7 @@ import { Button } from "../../../../components/buttons.js";
18
18
  import { Text } from "../../../../components/text.js";
19
19
  import { TokenSymbol } from "../../../../components/token/TokenSymbol.js";
20
20
  import type { TokenInfo } from "../../../defaultTokens.js";
21
- import { WalletIcon } from "../../../icons/WalletIcon.js";
21
+ import { GenericWalletIcon } from "../../../icons/GenericWalletIcon.js";
22
22
  import { formatTokenBalance } from "../../formatTokenBalance.js";
23
23
  import { type NativeToken, isNativeToken } from "../../nativeToken.js";
24
24
 
@@ -126,7 +126,7 @@ export function PayWithCrypto(props: {
126
126
  )}
127
127
 
128
128
  <Container flex="row" gap="xxs" center="y" color="secondaryText">
129
- <WalletIcon size={fontSize.xs} />
129
+ <GenericWalletIcon size={fontSize.xs} />
130
130
  {balanceQuery.data ? (
131
131
  <Text size="xs" color="secondaryText" weight={500}>
132
132
  {formatTokenBalance(balanceQuery.data, true)}
@@ -0,0 +1,122 @@
1
+ "use client";
2
+ import { ShuffleIcon } from "@radix-ui/react-icons";
3
+ import type { ThirdwebClient } from "../../../../../client/client.js";
4
+ import { isInAppWallet } from "../../../../../wallets/in-app/core/wallet/index.js";
5
+ import { injectedProvider } from "../../../../../wallets/injected/mipdStore.js";
6
+ import { fontSize, iconSize } from "../../../../core/design-system/index.js";
7
+ import { useActiveWallet } from "../../../hooks/wallets/useActiveWallet.js";
8
+ import { Spacer } from "../../components/Spacer.js";
9
+ import { Container, Line, ModalHeader } from "../../components/basic.js";
10
+ import { Text } from "../../components/text.js";
11
+ import { MenuButton } from "../MenuButton.js";
12
+ import { KeyIcon } from "../icons/KeyIcon.js";
13
+ import { WalletConnectIcon } from "../icons/WalletConnectIcon.js";
14
+ import type { ConnectLocale } from "../locale/types.js";
15
+ import type { WalletDetailsModalScreen } from "./types.js";
16
+
17
+ /**
18
+ * @internal
19
+ */
20
+ export function ManageWalletScreen(props: {
21
+ onBack: () => void;
22
+ setScreen: (screen: WalletDetailsModalScreen) => void;
23
+ closeModal: () => void;
24
+ locale: ConnectLocale;
25
+ client: ThirdwebClient;
26
+ }) {
27
+ const activeWallet = useActiveWallet();
28
+
29
+ return (
30
+ <Container
31
+ style={{
32
+ minHeight: "300px",
33
+ }}
34
+ >
35
+ <Container p="lg">
36
+ <ModalHeader title="Manage Wallet" onBack={props.onBack} />
37
+ </Container>
38
+ <Line />
39
+ <Container
40
+ px="sm"
41
+ scrollY
42
+ style={{
43
+ maxHeight: "500px",
44
+ }}
45
+ >
46
+ <Spacer y="md" />
47
+ <Container style={{ position: "relative", height: "250px" }}>
48
+ {/* Switch Metamask Account (only shows if the active wallet is MetaMask) */}
49
+ <SwitchMetamaskAccount
50
+ closeModal={props.closeModal}
51
+ connectLocale={props.locale}
52
+ />
53
+
54
+ {/* Wallet Connect Receiver */}
55
+ <MenuButton
56
+ onClick={() => {
57
+ props.setScreen("wallet-connect-receiver");
58
+ }}
59
+ style={{
60
+ fontSize: fontSize.sm,
61
+ }}
62
+ >
63
+ <WalletConnectIcon size={iconSize.md} />
64
+ <Text color="primaryText">Connect an App</Text>
65
+ </MenuButton>
66
+
67
+ {/* Private Key Export (if enabled) */}
68
+ {activeWallet &&
69
+ isInAppWallet(activeWallet) &&
70
+ !activeWallet.getConfig()?.hidePrivateKeyExport && (
71
+ <MenuButton
72
+ onClick={() => {
73
+ props.setScreen("private-key");
74
+ }}
75
+ style={{
76
+ fontSize: fontSize.sm,
77
+ }}
78
+ >
79
+ <KeyIcon size={iconSize.md} />
80
+ <Text color="primaryText">Export Private Key</Text>
81
+ </MenuButton>
82
+ )}
83
+ </Container>
84
+ <Spacer y="lg" />
85
+ </Container>
86
+ </Container>
87
+ );
88
+ }
89
+
90
+ function SwitchMetamaskAccount(props: {
91
+ closeModal: () => void;
92
+ connectLocale: ConnectLocale;
93
+ }) {
94
+ const wallet = useActiveWallet();
95
+ const connectLocale = props.connectLocale;
96
+
97
+ if (wallet?.id !== "io.metamask") {
98
+ return null;
99
+ }
100
+
101
+ const injectedMetamaskProvider = injectedProvider("io.metamask");
102
+
103
+ if (!injectedMetamaskProvider) {
104
+ return null;
105
+ }
106
+
107
+ return (
108
+ <MenuButton
109
+ type="button"
110
+ onClick={async () => {
111
+ await injectedMetamaskProvider.request({
112
+ method: "wallet_requestPermissions",
113
+ params: [{ eth_accounts: {} }],
114
+ });
115
+ props.closeModal();
116
+ }}
117
+ >
118
+ <ShuffleIcon width={iconSize.md} height={iconSize.md} />
119
+ <Text color="primaryText">{connectLocale.switchAccount}</Text>
120
+ </MenuButton>
121
+ );
122
+ }
@@ -10,6 +10,7 @@ import {
10
10
  spacing,
11
11
  } from "../../../../core/design-system/index.js";
12
12
  import { useSiweAuth } from "../../../../core/hooks/auth/useSiweAuth.js";
13
+ import { useConnectUI } from "../../../../core/hooks/others/useWalletConnectionCtx.js";
13
14
  import { wait } from "../../../../core/utils/wait.js";
14
15
  import { useActiveWallet } from "../../../hooks/wallets/useActiveWallet.js";
15
16
  import { useDisconnect } from "../../../hooks/wallets/useDisconnect.js";
@@ -37,6 +38,7 @@ export const SignatureScreen: React.FC<{
37
38
  client: ThirdwebClient;
38
39
  auth: ConnectButtonProps["auth"];
39
40
  }> = (props) => {
41
+ const { client } = useConnectUI();
40
42
  const {
41
43
  onDone,
42
44
  modalSize,
@@ -146,7 +148,11 @@ export const SignatureScreen: React.FC<{
146
148
  ) : (
147
149
  <>
148
150
  <Container py="3xl">
149
- <WalletLogoSpinner error={status === "failed"} id={wallet.id} />
151
+ <WalletLogoSpinner
152
+ client={client}
153
+ error={status === "failed"}
154
+ id={wallet.id}
155
+ />
150
156
  </Container>
151
157
 
152
158
  <Container flex="column" gap="md" animate="fadein" key={status}>
@@ -0,0 +1,165 @@
1
+ "use client";
2
+ import { ReloadIcon } from "@radix-ui/react-icons";
3
+ import { useEffect, useState } from "react";
4
+ import type { Chain } from "../../../../../chains/types.js";
5
+ import type { ThirdwebClient } from "../../../../../client/client.js";
6
+ import {
7
+ createWalletConnectClient,
8
+ createWalletConnectSession,
9
+ } from "../../../../../wallets/wallet-connect/receiver/index.js";
10
+ import type { WalletConnectClient } from "../../../../../wallets/wallet-connect/receiver/types.js";
11
+ import { iconSize, spacing } from "../../../../core/design-system/index.js";
12
+ import { useActiveWallet } from "../../../hooks/wallets/useActiveWallet.js";
13
+ import { InputSelectionUI } from "../../../wallets/in-app/InputSelectionUI.js";
14
+ import { Spacer } from "../../components/Spacer.js";
15
+ import { Container, Line, ModalHeader } from "../../components/basic.js";
16
+ import { Button } from "../../components/buttons.js";
17
+ import { Text } from "../../components/text.js";
18
+ import { WalletLogoSpinner } from "./WalletLogoSpinner.js";
19
+
20
+ /**
21
+ * @internal
22
+ */
23
+ export function WalletConnectReceiverScreen(props: {
24
+ onBack: () => void;
25
+ closeModal: () => void;
26
+ client: ThirdwebClient;
27
+ chains?: Chain[];
28
+ }) {
29
+ const [walletConnectClient, setWalletConnectClient] = useState<
30
+ WalletConnectClient | undefined
31
+ >();
32
+ const activeWallet = useActiveWallet();
33
+ const [loading, setLoading] = useState(false);
34
+ const [errorConnecting, setErrorConnecting] = useState<false | string>(false);
35
+
36
+ useEffect(() => {
37
+ if (!activeWallet || !!errorConnecting) return;
38
+ createWalletConnectClient({
39
+ wallet: activeWallet,
40
+ client: props.client,
41
+ chains: props.chains,
42
+ onConnect: () => {
43
+ props.closeModal();
44
+ setLoading(false);
45
+ },
46
+ })
47
+ .then((wcClient) => {
48
+ setWalletConnectClient(wcClient);
49
+ })
50
+ .catch(() => {
51
+ setErrorConnecting("Failed to establish WalletConnect connection");
52
+ });
53
+ }, [
54
+ activeWallet,
55
+ props.client,
56
+ props.closeModal,
57
+ errorConnecting,
58
+ props.chains,
59
+ ]);
60
+
61
+ return (
62
+ <Container
63
+ style={{
64
+ minHeight: "300px",
65
+ }}
66
+ >
67
+ <Container p="lg">
68
+ <ModalHeader title="Connect an App" onBack={props.onBack} />
69
+ </Container>
70
+ <Line />
71
+ <Container
72
+ px="lg"
73
+ scrollY
74
+ style={{
75
+ maxHeight: "500px",
76
+ }}
77
+ >
78
+ <Container py="sm" style={{ position: "relative" }}>
79
+ <Container py="md">
80
+ <WalletLogoSpinner
81
+ client={props.client}
82
+ error={false}
83
+ id={"walletConnect"}
84
+ hideSpinner={!loading}
85
+ />
86
+ </Container>
87
+ <Container
88
+ animate="fadein"
89
+ style={{
90
+ animationDuration: "200ms",
91
+ }}
92
+ >
93
+ {!errorConnecting ? (
94
+ <>
95
+ <Text balance center multiline size="sm">
96
+ Copy your connection URI from the external app.
97
+ </Text>
98
+ <Spacer y="xl" />
99
+ <InputSelectionUI
100
+ type="text"
101
+ disabled={
102
+ loading || !!errorConnecting || !walletConnectClient
103
+ }
104
+ onSelect={async (value) => {
105
+ setLoading(true);
106
+ if (!walletConnectClient) {
107
+ setErrorConnecting("No WalletConnect client found");
108
+ } else {
109
+ try {
110
+ createWalletConnectSession({
111
+ uri: value,
112
+ walletConnectClient,
113
+ });
114
+ } catch (e) {
115
+ setErrorConnecting(
116
+ "Error creating WalletConnect session",
117
+ );
118
+ }
119
+ }
120
+ }}
121
+ placeholder="WalletConnect URI"
122
+ name="wcUri"
123
+ emptyErrorMessage="Please enter a valid URI"
124
+ submitButtonText="Connect"
125
+ />
126
+ </>
127
+ ) : (
128
+ <>
129
+ <Text center balance multiline size="sm">
130
+ {errorConnecting}
131
+ </Text>
132
+ <Spacer y="md" />
133
+ <Container flex="row" center="x" animate="fadein">
134
+ <Button
135
+ fullWidth
136
+ variant="accent"
137
+ onClick={() => setErrorConnecting(false)}
138
+ style={{
139
+ gap: spacing.xs,
140
+ alignItems: "center",
141
+ }}
142
+ >
143
+ <ReloadIcon width={iconSize.sm} height={iconSize.sm} />{" "}
144
+ Retry
145
+ </Button>
146
+ </Container>
147
+ </>
148
+ )}
149
+ </Container>
150
+ </Container>
151
+ </Container>
152
+ <Container>
153
+ <Spacer y="lg" />
154
+ <Line />
155
+ <Container flex="row" center="x" p="lg">
156
+ <a href="https://google.com">
157
+ <Button variant="link" onClick={() => {}}>
158
+ Where do I find the URI?
159
+ </Button>
160
+ </a>
161
+ </Container>
162
+ </Container>
163
+ </Container>
164
+ );
165
+ }
@@ -1,8 +1,8 @@
1
1
  import { keyframes } from "@emotion/react";
2
+ import type { ThirdwebClient } from "../../../../../client/client.js";
2
3
  import type { WalletId } from "../../../../../wallets/wallet-types.js";
3
4
  import { useCustomTheme } from "../../../../core/design-system/CustomThemeProvider.js";
4
5
  import { radius, spacing } from "../../../../core/design-system/index.js";
5
- import { useConnectUI } from "../../../../core/hooks/others/useWalletConnectionCtx.js";
6
6
  import { WalletImage } from "../../components/WalletImage.js";
7
7
  import { fadeInAnimation } from "../../design-system/animations.js";
8
8
  import { StyledDiv } from "../../design-system/elements.js";
@@ -11,8 +11,12 @@ import { StyledDiv } from "../../design-system/elements.js";
11
11
  *
12
12
  * @internal
13
13
  */
14
- export function WalletLogoSpinner(props: { error: boolean; id: WalletId }) {
15
- const { client } = useConnectUI();
14
+ export function WalletLogoSpinner(props: {
15
+ client: ThirdwebClient;
16
+ error: boolean;
17
+ id: WalletId;
18
+ hideSpinner?: boolean;
19
+ }) {
16
20
  const loaderRadius = 20;
17
21
  const radiusFactor = 36 - loaderRadius;
18
22
  const dashArrayStart = 116 + radiusFactor;
@@ -31,29 +35,31 @@ export function WalletLogoSpinner(props: { error: boolean; id: WalletId }) {
31
35
  }}
32
36
  >
33
37
  <div data-img-container>
34
- <svg
35
- viewBox="0 0 110 110"
36
- style={{
37
- display: props.error ? "none" : "block",
38
- }}
39
- role="presentation"
40
- >
41
- <rect
42
- x="2"
43
- y="2"
44
- width="106"
45
- height="106"
46
- rx={loaderRadius}
47
- strokeDasharray={`${dashArrayStart} ${dashArrayEnd}`}
48
- strokeDashoffset={dashOffset}
49
- strokeLinecap="round"
50
- fill="none"
51
- strokeWidth={4}
52
- />
53
- </svg>
38
+ {!props.hideSpinner && (
39
+ <svg
40
+ viewBox="0 0 110 110"
41
+ style={{
42
+ display: props.error ? "none" : "block",
43
+ }}
44
+ role="presentation"
45
+ >
46
+ <rect
47
+ x="2"
48
+ y="2"
49
+ width="106"
50
+ height="106"
51
+ rx={loaderRadius}
52
+ strokeDasharray={`${dashArrayStart} ${dashArrayEnd}`}
53
+ strokeDashoffset={dashOffset}
54
+ strokeLinecap="round"
55
+ fill="none"
56
+ strokeWidth={4}
57
+ />
58
+ </svg>
59
+ )}
54
60
 
55
61
  <WalletBg>
56
- <WalletImage id={props.id} size={"68"} client={client} />
62
+ <WalletImage id={props.id} size={"68"} client={props.client} />
57
63
  </WalletBg>
58
64
  </div>
59
65
  </div>
@@ -58,3 +58,16 @@ export type WelcomeScreen =
58
58
  };
59
59
  }
60
60
  | (() => React.ReactNode);
61
+
62
+ export type WalletDetailsModalScreen =
63
+ | "main"
64
+ | "export"
65
+ | "send"
66
+ | "receive"
67
+ | "buy"
68
+ | "network-switcher"
69
+ | "pending-tx"
70
+ | "view-funds"
71
+ | "private-key"
72
+ | "manage-wallet"
73
+ | "wallet-connect-receiver";
@@ -55,7 +55,7 @@ export function useConnectModal() {
55
55
  setRootEl(undefined);
56
56
  }
57
57
 
58
- return new Promise((resolve, reject) => {
58
+ return new Promise<Wallet>((resolve, reject) => {
59
59
  setIsConnecting(true);
60
60
  getConnectLocale(props.locale || "en_US")
61
61
  .then((locale) => {
@@ -15,6 +15,7 @@ export const CopyIcon: React.FC<{
15
15
  hasCopied?: boolean;
16
16
  }> = (props) => {
17
17
  const { hasCopied, onCopy } = useClipboard(props.text);
18
+ const showCheckIcon = props.hasCopied || hasCopied;
18
19
 
19
20
  return (
20
21
  <div
@@ -31,13 +32,11 @@ export const CopyIcon: React.FC<{
31
32
  }}
32
33
  >
33
34
  <ToolTip tip={props.tip} side={props.side} align={props.align}>
34
- {props.hasCopied || hasCopied ? (
35
- <Container color="success">
36
- <CheckIcon />
35
+ <div>
36
+ <Container color={showCheckIcon ? "success" : undefined}>
37
+ {showCheckIcon ? <CheckIcon /> : <CopyIconSVG />}
37
38
  </Container>
38
- ) : (
39
- <CopyIconSVG />
40
- )}
39
+ </div>
41
40
  </ToolTip>
42
41
  </div>
43
42
  );
@@ -1,7 +1,7 @@
1
1
  import { wideModalScreenThreshold } from "../ui/ConnectWallet/constants.js";
2
2
 
3
3
  /**
4
- * Return true if the current screen size can fit the the wide connect modal
4
+ * Return true if the current screen size can fit the wide connect modal
5
5
  * @internal
6
6
  */
7
7
  export function canFitWideModal(): boolean {
@@ -21,6 +21,7 @@ export function InputSelectionUI(props: {
21
21
  emptyErrorMessage?: string;
22
22
  submitButtonText: string;
23
23
  format?: "phone";
24
+ disabled?: boolean;
24
25
  }) {
25
26
  const [countryCodeInfo, setCountryCodeInfo] = useState("US +1");
26
27
  const [input, setInput] = useState("");
@@ -77,6 +78,7 @@ export function InputSelectionUI(props: {
77
78
  type={props.type}
78
79
  name={props.name}
79
80
  value={input}
81
+ disabled={props.disabled}
80
82
  onChange={(e) => {
81
83
  setInput(e.target.value);
82
84
  if (props.errorMessage) {
@@ -93,6 +95,7 @@ export function InputSelectionUI(props: {
93
95
  />
94
96
  <IconButton
95
97
  onClick={handleSelect}
98
+ disabled={props.disabled}
96
99
  style={{
97
100
  padding: spacing.md,
98
101
  borderRadius: `0 ${radius.lg} ${radius.lg} 0`,
@@ -27,7 +27,7 @@ export const ConnectingScreen: React.FC<{
27
27
  };
28
28
  }> = (props) => {
29
29
  const { locale } = props;
30
- const { connectModal } = useConnectUI();
30
+ const { client, connectModal } = useConnectUI();
31
31
  return (
32
32
  <Container animate="fadein" fullHeight flex="column">
33
33
  <Container
@@ -51,6 +51,7 @@ export const ConnectingScreen: React.FC<{
51
51
  >
52
52
  <Container py="3xl">
53
53
  <WalletLogoSpinner
54
+ client={client}
54
55
  error={props.errorConnecting}
55
56
  id={props.walletId}
56
57
  />
@@ -78,7 +78,7 @@ export type ReadContractOptions<
78
78
  * import { readContract } from "thirdweb";
79
79
  * const result = await readContract({
80
80
  * contract,
81
- * method: "totalSupply",
81
+ * method: "function totalSupply() view returns (uint256)",
82
82
  * });
83
83
  * ```
84
84
  */
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.29.6";
1
+ export const version = "5.30.0-nightly-33777df88fb190c2af8ad25e4930040884996f1e-20240620000630";