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
@@ -65,6 +65,13 @@ export type GetBuyWithCryptoQuoteParams = {
65
65
  */
66
66
  toTokenAddress: string;
67
67
 
68
+ /**
69
+ * Extra details to store with the purchase.
70
+ *
71
+ * This details will be stored with the purchase and can be retrieved later via the status API or Webhook
72
+ */
73
+ purchaseData?: object;
74
+
68
75
  /**
69
76
  * The maximum slippage in basis points (bps) allowed for the swap.
70
77
  * For example, if you want to allow a maximum slippage of 0.5%, you should specify `50` bps.
@@ -229,34 +236,27 @@ export async function getBuyWithCryptoQuote(
229
236
  params: GetBuyWithCryptoQuoteParams,
230
237
  ): Promise<BuyWithCryptoQuote> {
231
238
  try {
232
- const queryParams = new URLSearchParams({
233
- fromAddress: params.fromAddress,
234
- fromChainId: params.fromChainId.toString(),
235
- fromTokenAddress: params.fromTokenAddress.toLowerCase(),
236
- toChainId: params.toChainId.toString(),
237
- toTokenAddress: params.toTokenAddress.toLowerCase(),
238
- });
239
-
240
- if ("fromAmount" in params && params.fromAmount) {
241
- queryParams.append("fromAmount", params.fromAmount);
242
- }
243
-
244
- if ("toAmount" in params && params.toAmount) {
245
- queryParams.append("toAmount", params.toAmount);
246
- }
247
-
248
- if (params.maxSlippageBPS) {
249
- queryParams.append("maxSlippageBPS", params.maxSlippageBPS.toString());
250
- }
251
-
252
- if (params.intentId) {
253
- queryParams.append("intentId", params.intentId);
254
- }
255
-
256
- const queryString = queryParams.toString();
257
- const url = `${getPayBuyWithCryptoQuoteEndpoint()}?${queryString}`;
239
+ const clientFetch = getClientFetch(params.client);
258
240
 
259
- const response = await getClientFetch(params.client)(url);
241
+ const response = await clientFetch(getPayBuyWithCryptoQuoteEndpoint(), {
242
+ method: "POST",
243
+ headers: {
244
+ Accept: "application/json",
245
+ "Content-Type": "application/json",
246
+ },
247
+ body: JSON.stringify({
248
+ fromAddress: params.fromAddress,
249
+ fromChainId: params.fromChainId.toString(),
250
+ fromTokenAddress: params.fromTokenAddress,
251
+ toChainId: params.toChainId.toString(),
252
+ toTokenAddress: params.toTokenAddress,
253
+ fromAmount: params.fromAmount,
254
+ toAmount: params.toAmount,
255
+ maxSlippageBPS: params.maxSlippageBPS,
256
+ intentId: params.intentId,
257
+ purchaseData: params.purchaseData,
258
+ }),
259
+ });
260
260
 
261
261
  // Assuming the response directly matches the SwapResponse interface
262
262
  if (!response.ok) {
@@ -70,6 +70,7 @@ export type BuyWithCryptoStatus =
70
70
  toAddress: string;
71
71
  failureMessage?: string;
72
72
  bridge?: string;
73
+ purchaseData?: object;
73
74
  };
74
75
 
75
76
  export type ValidBuyWithCryptoStatus = Exclude<
@@ -15,10 +15,15 @@ export type GetBuyWithFiatQuoteParams = {
15
15
  client: ThirdwebClient;
16
16
 
17
17
  /**
18
- * The address of the wallet to which the tokens will be sent.
18
+ * The address of the wallet where the tokens will be sent.
19
19
  */
20
20
  toAddress: string;
21
21
 
22
+ /**
23
+ * The address of the wallet which will be used to buy the token.
24
+ */
25
+ fromAddress: string;
26
+
22
27
  /**
23
28
  * Chain id of the token to buy.
24
29
  */
@@ -62,6 +67,13 @@ export type GetBuyWithFiatQuoteParams = {
62
67
  * Defaults to `false`
63
68
  */
64
69
  isTestMode?: boolean;
70
+
71
+ /**
72
+ * Extra details to store with the purchase.
73
+ *
74
+ * This details will be stored with the purchase and can be retrieved later via the status API or Webhook
75
+ */
76
+ purchaseData?: object;
65
77
  };
66
78
 
67
79
  /**
@@ -236,33 +248,27 @@ export async function getBuyWithFiatQuote(
236
248
  params: GetBuyWithFiatQuoteParams,
237
249
  ): Promise<BuyWithFiatQuote> {
238
250
  try {
239
- const queryParams = new URLSearchParams({
240
- toAddress: params.toAddress,
241
- fromCurrencySymbol: params.fromCurrencySymbol,
242
- toChainId: params.toChainId.toString(),
243
- toTokenAddress: params.toTokenAddress.toLowerCase(),
244
- });
245
-
246
- if (params.fromAmount) {
247
- queryParams.append("fromAmount", params.fromAmount);
248
- }
249
-
250
- if (params.toAmount) {
251
- queryParams.append("toAmount", params.toAmount);
252
- }
253
-
254
- if (params.maxSlippageBPS) {
255
- queryParams.append("maxSlippageBPS", params.maxSlippageBPS.toString());
256
- }
251
+ const clientFetch = getClientFetch(params.client);
257
252
 
258
- if (params.isTestMode) {
259
- queryParams.append("isTestMode", params.isTestMode.toString());
260
- }
261
-
262
- const queryString = queryParams.toString();
263
- const url = `${getPayBuyWithFiatQuoteEndpoint()}?${queryString}`;
264
-
265
- const response = await getClientFetch(params.client)(url);
253
+ const response = await clientFetch(getPayBuyWithFiatQuoteEndpoint(), {
254
+ method: "POST",
255
+ headers: {
256
+ Accept: "application/json",
257
+ "Content-Type": "application/json",
258
+ },
259
+ body: JSON.stringify({
260
+ toAddress: params.toAddress,
261
+ fromCurrencySymbol: params.fromCurrencySymbol,
262
+ toChainId: params.toChainId.toString(),
263
+ toTokenAddress: params.toTokenAddress,
264
+ fromAmount: params.fromAmount,
265
+ toAmount: params.toAmount,
266
+ maxSlippageBPS: params.maxSlippageBPS,
267
+ isTestMode: params.isTestMode,
268
+ purchaseData: params.purchaseData,
269
+ fromAddress: params.fromAddress,
270
+ }),
271
+ });
266
272
 
267
273
  // Assuming the response directly matches the SwapResponse interface
268
274
  if (!response.ok) {
@@ -116,6 +116,11 @@ export type BuyWithFiatStatus =
116
116
  * Message indicating the reason for failure
117
117
  */
118
118
  failureMessage?: string;
119
+
120
+ /**
121
+ * Arbitrary data sent at the time of fetching the quote
122
+ */
123
+ purchaseData?: object;
119
124
  };
120
125
 
121
126
  /**
@@ -35,7 +35,7 @@ type UseContractEventsOptions<
35
35
  *
36
36
  * const account = useActiveAccount();
37
37
  * const contractEvents = useContractEvents({
38
- * contract
38
+ * contract,
39
39
  * events: [tokensClaimedEvent({ claimer: account?.address })],
40
40
  * });
41
41
  * ```
@@ -47,6 +47,7 @@ export type SendTransactionPayModalConfig =
47
47
  | {
48
48
  testMode?: boolean;
49
49
  };
50
+ purchaseData?: object;
50
51
  }
51
52
  | false;
52
53
 
@@ -8,7 +8,7 @@ import { connectionManager } from "../../index.js";
8
8
  * ```jsx
9
9
  * import { useActiveWalletChain } from "thirdweb/react";
10
10
  *
11
- * const chainId = useActiveWalletChain();
11
+ * const activeChain = useActiveWalletChain();
12
12
  * ```
13
13
  * @walletConnection
14
14
  */
@@ -92,6 +92,7 @@ export function useSendTransaction(config: SendTransactionConfig = {}) {
92
92
  payOptions={{
93
93
  buyWithCrypto: payModal?.buyWithCrypto,
94
94
  buyWithFiat: payModal?.buyWithFiat,
95
+ purchaseData: payModal?.purchaseData,
95
96
  }}
96
97
  />,
97
98
  );
@@ -8,7 +8,7 @@ import { connectionManager } from "../../index.js";
8
8
  * ```jsx
9
9
  * import { useActiveWalletChain } from "thirdweb/react";
10
10
  *
11
- * const chainId = useActiveWalletChain();
11
+ * const activeChain = useActiveWalletChain();
12
12
  * ```
13
13
  * @walletConnection
14
14
  */
@@ -74,6 +74,13 @@ export type PayUIOptions = {
74
74
  testMode?: boolean;
75
75
  }
76
76
  | false;
77
+
78
+ /**
79
+ * Extra details to store with the purchase.
80
+ *
81
+ * This details will be stored with the purchase and can be retrieved later via the status API or Webhook
82
+ */
83
+ purchaseData?: object;
77
84
  };
78
85
 
79
86
  /**
@@ -85,7 +92,7 @@ export type ConnectButton_connectButtonOptions = {
85
92
  * Set a custom label for the button. The default is `"Connect"`
86
93
  * @example
87
94
  * ```tsx
88
- * <ConnectButton button={{
95
+ * <ConnectButton connectButton={{
89
96
  * label: "Sign in"
90
97
  * }} />
91
98
  * ```
@@ -98,8 +105,8 @@ export type ConnectButton_connectButtonOptions = {
98
105
  * For some CSS properties, you may need to use the `!important` to override the default styles
99
106
  *
100
107
  * ```tsx
101
- * <ConnectButton button={{
102
- * className="my-custom-class"
108
+ * <ConnectButton connectButton={{
109
+ * className: "my-custom-class",
103
110
  * }} />
104
111
  * ```
105
112
  */
@@ -107,6 +114,14 @@ export type ConnectButton_connectButtonOptions = {
107
114
 
108
115
  /**
109
116
  * CSS styles to apply to the connectButton element
117
+ * @example
118
+ * ```tsx
119
+ * <ConnectButton connectButton={{
120
+ * style: {
121
+ * color: "red",
122
+ * },
123
+ * }} />
124
+ * ```
110
125
  */
111
126
  style?: React.CSSProperties;
112
127
  };
@@ -205,7 +220,7 @@ export type ConnectButton_detailsButtonOptions = {
205
220
  * @example
206
221
  * ```tsx
207
222
  * <ConnectButton detailsButton={{
208
- * balanceToken:{
223
+ * displayBalanceToken:{
209
224
  * // show USDC balance when connected to Ethereum mainnet or Polygon
210
225
  * [ethereum.id]: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599",
211
226
  * [polygon.id]: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
@@ -559,16 +574,42 @@ export type ConnectButtonProps = {
559
574
  signInButton?: {
560
575
  /**
561
576
  * Set a custom label for the sign-in button
577
+ * @example
578
+ * ```tsx
579
+ * <ConnectButton
580
+ * signInButton={{
581
+ * label: "Sign in now!"
582
+ * }}
583
+ * />
584
+ * ```
562
585
  */
563
586
  label?: string;
564
587
 
565
588
  /**
566
589
  * CSS styles to apply to the sign-in button element
590
+ * @example
591
+ * ```tsx
592
+ * <ConnectButton
593
+ * signInButton={{
594
+ * style: {
595
+ * color: "purple",
596
+ * }
597
+ * }}
598
+ * />
599
+ * ```
567
600
  */
568
601
  style?: React.CSSProperties;
569
602
 
570
603
  /**
571
604
  * CSS class to apply to the sign-in button element
605
+ * @example
606
+ * ```tsx
607
+ * <ConnectButton
608
+ * signInButton={{
609
+ * className: "my-class-name"
610
+ * }}
611
+ * />
612
+ * ```
572
613
  */
573
614
  className?: string;
574
615
  };
@@ -6,7 +6,6 @@ import {
6
6
  PaperPlaneIcon,
7
7
  PinBottomIcon,
8
8
  PlusIcon,
9
- ShuffleIcon,
10
9
  TextAlignJustifyIcon,
11
10
  } from "@radix-ui/react-icons";
12
11
  import { useQuery } from "@tanstack/react-query";
@@ -18,8 +17,6 @@ import { getContract } from "../../../../contract/contract.js";
18
17
  import { resolveAvatar } from "../../../../extensions/ens/resolve-avatar.js";
19
18
  import { resolveName } from "../../../../extensions/ens/resolve-name.js";
20
19
  import { isContractDeployed } from "../../../../utils/bytecode/is-contract-deployed.js";
21
- import { isInAppWallet } from "../../../../wallets/in-app/core/wallet/index.js";
22
- import { injectedProvider } from "../../../../wallets/injected/mipdStore.js";
23
20
  import {
24
21
  CustomThemeProvider,
25
22
  useCustomTheme,
@@ -65,41 +62,34 @@ import type {
65
62
  ConnectButton_detailsModalOptions,
66
63
  PayUIOptions,
67
64
  } from "./ConnectButtonProps.js";
65
+ import { MenuButton, MenuLink } from "./MenuButton.js";
68
66
  import {
69
67
  NetworkSelectorContent,
70
68
  type NetworkSelectorProps,
71
69
  } from "./NetworkSelector.js";
72
70
  import { onModalUnmount } from "./constants.js";
73
71
  import type { SupportedTokens } from "./defaultTokens.js";
72
+ import { CoinsIcon } from "./icons/CoinsIcon.js";
74
73
  import { FundsIcon } from "./icons/FundsIcon.js";
75
- import { KeyIcon } from "./icons/KeyIcon.js";
74
+ import { GenericWalletIcon } from "./icons/GenericWalletIcon.js";
75
+ import { OutlineWalletIcon } from "./icons/OutlineWalletIcon.js";
76
76
  import { SmartWalletBadgeIcon } from "./icons/SmartAccountBadgeIcon.js";
77
- import { WalletIcon } from "./icons/WalletIcon.js";
78
- import { genericTokenIcon } from "./icons/dataUris.js";
79
77
  import { getConnectLocale } from "./locale/getConnectLocale.js";
80
78
  import type { ConnectLocale } from "./locale/types.js";
81
79
  import { LazyBuyScreen } from "./screens/Buy/LazyBuyScreen.js";
82
80
  import { BuyTxHistory } from "./screens/Buy/tx-history/BuyTxHistory.js";
81
+ import { ManageWalletScreen } from "./screens/ManageWalletScreen.js";
83
82
  import { PrivateKey } from "./screens/PrivateKey.js";
84
83
  import { ReceiveFunds } from "./screens/ReceiveFunds.js";
85
84
  import { SendFunds } from "./screens/SendFunds.js";
86
85
  import { ViewFunds } from "./screens/ViewFunds.js";
86
+ import { WalletConnectReceiverScreen } from "./screens/WalletConnectReceiverScreen.js";
87
+ import type { WalletDetailsModalScreen } from "./screens/types.js";
87
88
 
88
89
  const TW_CONNECTED_WALLET = "tw-connected-wallet";
89
90
 
90
91
  const LocalhostChainId = 1337;
91
92
 
92
- type WalletDetailsModalScreen =
93
- | "main"
94
- | "export"
95
- | "send"
96
- | "receive"
97
- | "buy"
98
- | "network-switcher"
99
- | "pending-tx"
100
- | "view-funds"
101
- | "private-key";
102
-
103
93
  /**
104
94
  * @internal
105
95
  */
@@ -195,7 +185,7 @@ export const ConnectedWalletDetails: React.FC<{
195
185
  ) : activeWallet?.id ? (
196
186
  <WalletImage size={iconSize.lg} id={activeWallet.id} client={client} />
197
187
  ) : (
198
- <WalletIcon size={iconSize.lg} />
188
+ <GenericWalletIcon size={iconSize.lg} />
199
189
  )}
200
190
 
201
191
  <Container flex="column" gap="xxs">
@@ -341,10 +331,11 @@ function DetailsModal(props: {
341
331
  client={client}
342
332
  />
343
333
  ) : (
344
- <WalletIcon size={iconSize.xxl} />
334
+ <GenericWalletIcon size={iconSize.xxl} />
345
335
  )}
346
336
 
347
337
  <Spacer y="md" />
338
+
348
339
  <ConnectedToSmartWallet client={props.client} connectLocale={locale} />
349
340
 
350
341
  {(activeWallet?.id === "embedded" || activeWallet?.id === "inApp") && (
@@ -501,31 +492,22 @@ function DetailsModal(props: {
501
492
  fontSize: fontSize.sm,
502
493
  }}
503
494
  >
504
- <Img
505
- width={iconSize.md}
506
- height={iconSize.md}
507
- src={genericTokenIcon}
508
- client={client}
509
- />
495
+ <CoinsIcon size={iconSize.md} />
510
496
  <Text color="primaryText">View Funds</Text>
511
497
  </MenuButton>
512
498
 
513
- {/* Private Key Export (if enabled) */}
514
- {activeWallet &&
515
- isInAppWallet(activeWallet) &&
516
- !activeWallet.getConfig()?.hidePrivateKeyExport && (
517
- <MenuButton
518
- onClick={() => {
519
- setScreen("private-key");
520
- }}
521
- style={{
522
- fontSize: fontSize.sm,
523
- }}
524
- >
525
- <KeyIcon size={iconSize.md} />
526
- <Text color="primaryText">Export Private Key</Text>
527
- </MenuButton>
528
- )}
499
+ {/* Manage Wallet */}
500
+ <MenuButton
501
+ onClick={() => {
502
+ setScreen("manage-wallet");
503
+ }}
504
+ style={{
505
+ fontSize: fontSize.sm,
506
+ }}
507
+ >
508
+ <OutlineWalletIcon size={iconSize.md} />
509
+ <Text color="primaryText">Manage Wallet</Text>
510
+ </MenuButton>
529
511
 
530
512
  {/* Switch to Personal Wallet */}
531
513
  {/* {personalWallet &&
@@ -541,11 +523,6 @@ function DetailsModal(props: {
541
523
  <AccountSwitcher name={locale.smartWallet} wallet={smartWallet} />
542
524
  )} */}
543
525
 
544
- <SwitchMetamaskAccount
545
- closeModal={closeModal}
546
- connectLocale={locale}
547
- />
548
-
549
526
  {/* Request Testnet funds */}
550
527
  {(props.detailsModal?.showTestnetFaucet ?? false) &&
551
528
  ((chainQuery.data?.faucets && chainQuery.data.faucets.length > 0) ||
@@ -568,23 +545,6 @@ function DetailsModal(props: {
568
545
  </MenuLink>
569
546
  )}
570
547
 
571
- {/* Export Wallet */}
572
- {/* {activeWallet?.id === "local" && (
573
- <div>
574
- <MenuButton
575
- onClick={() => {
576
- setScreen("export");
577
- }}
578
- style={{
579
- fontSize: fontSize.sm,
580
- }}
581
- >
582
- <PinBottomIcon width={iconSize.md} height={iconSize.md} />
583
- <Text color="primaryText">{locale.backupWallet}</Text>
584
- </MenuButton>
585
- </div>
586
- )} */}
587
-
588
548
  {props.detailsModal?.footer && (
589
549
  <props.detailsModal.footer close={closeModal} />
590
550
  )}
@@ -672,9 +632,32 @@ function DetailsModal(props: {
672
632
  content = (
673
633
  <PrivateKey
674
634
  theme={props.theme} // do not use the useCustomTheme hook to get this, it's not valid here
635
+ onBack={() => {
636
+ setScreen("manage-wallet");
637
+ }}
638
+ client={client}
639
+ />
640
+ );
641
+ } else if (screen === "manage-wallet") {
642
+ content = (
643
+ <ManageWalletScreen
675
644
  onBack={() => {
676
645
  setScreen("main");
677
646
  }}
647
+ locale={locale}
648
+ closeModal={closeModal}
649
+ client={client}
650
+ setScreen={setScreen}
651
+ />
652
+ );
653
+ } else if (screen === "wallet-connect-receiver") {
654
+ content = (
655
+ <WalletConnectReceiverScreen
656
+ onBack={() => {
657
+ setScreen("manage-wallet");
658
+ }}
659
+ chains={props.chains}
660
+ closeModal={closeModal}
678
661
  client={client}
679
662
  />
680
663
  );
@@ -774,54 +757,6 @@ const WalletInfoButton = /* @__PURE__ */ StyledButton(() => {
774
757
  };
775
758
  });
776
759
 
777
- const MenuButton = /* @__PURE__ */ StyledButton(() => {
778
- const theme = useCustomTheme();
779
- return {
780
- all: "unset",
781
- padding: `${spacing.sm} ${spacing.sm}`,
782
- borderRadius: radius.md,
783
- backgroundColor: "transparent",
784
- // border: `1px solid ${theme.colors.borderColor}`,
785
- boxSizing: "border-box",
786
- display: "flex",
787
- alignItems: "center",
788
- width: "100%",
789
- cursor: "pointer",
790
- fontSize: fontSize.md,
791
- fontWeight: 500,
792
- color: theme.colors.secondaryText,
793
- gap: spacing.sm,
794
- WebkitTapHighlightColor: "transparent",
795
- lineHeight: 1.3,
796
- transition: "background-color 200ms ease, transform 200ms ease",
797
- "&:hover": {
798
- backgroundColor: theme.colors.tertiaryBg,
799
- transform: "scale(1.01)",
800
- svg: {
801
- color: theme.colors.accentText,
802
- },
803
- },
804
- "&[disabled]": {
805
- cursor: "not-allowed",
806
- svg: {
807
- display: "none",
808
- },
809
- },
810
- svg: {
811
- color: theme.colors.secondaryText,
812
- transition: "color 200ms ease",
813
- },
814
- "&[data-variant='danger']:hover svg": {
815
- color: `${theme.colors.danger}!important`,
816
- },
817
- "&[data-variant='primary']:hover svg": {
818
- color: `${theme.colors.primaryText}!important`,
819
- },
820
- };
821
- });
822
-
823
- const MenuLink = /* @__PURE__ */ (() => MenuButton.withComponent("a"))();
824
-
825
760
  const StyledChevronRightIcon = /* @__PURE__ */ styled(
826
761
  /* @__PURE__ */ ChevronRightIcon,
827
762
  )(() => {
@@ -996,40 +931,6 @@ function SwitchNetworkButton(props: {
996
931
  );
997
932
  }
998
933
 
999
- function SwitchMetamaskAccount(props: {
1000
- closeModal: () => void;
1001
- connectLocale: ConnectLocale;
1002
- }) {
1003
- const wallet = useActiveWallet();
1004
- const connectLocale = props.connectLocale;
1005
-
1006
- if (wallet?.id !== "io.metamask") {
1007
- return null;
1008
- }
1009
-
1010
- const injectedMetamaskProvider = injectedProvider("io.metamask");
1011
-
1012
- if (!injectedMetamaskProvider) {
1013
- return null;
1014
- }
1015
-
1016
- return (
1017
- <MenuButton
1018
- type="button"
1019
- onClick={async () => {
1020
- await injectedMetamaskProvider.request({
1021
- method: "wallet_requestPermissions",
1022
- params: [{ eth_accounts: {} }],
1023
- });
1024
- props.closeModal();
1025
- }}
1026
- >
1027
- <ShuffleIcon width={iconSize.md} height={iconSize.md} />
1028
- <Text color="primaryText">{connectLocale.switchAccount}</Text>
1029
- </MenuButton>
1030
- );
1031
- }
1032
-
1033
934
  export type UseWalletDetailsModalOptions = {
1034
935
  /**
1035
936
  * A client is the entry point to the thirdweb SDK.
@@ -0,0 +1,55 @@
1
+ import { useCustomTheme } from "../../../core/design-system/CustomThemeProvider.js";
2
+ import {
3
+ fontSize,
4
+ radius,
5
+ spacing,
6
+ } from "../../../core/design-system/index.js";
7
+ import { StyledButton } from "../design-system/elements.js";
8
+
9
+ export const MenuButton = /* @__PURE__ */ StyledButton(() => {
10
+ const theme = useCustomTheme();
11
+ return {
12
+ all: "unset",
13
+ padding: `${spacing.sm} ${spacing.sm}`,
14
+ borderRadius: radius.md,
15
+ backgroundColor: "transparent",
16
+ // border: `1px solid ${theme.colors.borderColor}`,
17
+ boxSizing: "border-box",
18
+ display: "flex",
19
+ alignItems: "center",
20
+ width: "100%",
21
+ cursor: "pointer",
22
+ fontSize: fontSize.md,
23
+ fontWeight: 500,
24
+ color: theme.colors.secondaryText,
25
+ gap: spacing.sm,
26
+ WebkitTapHighlightColor: "transparent",
27
+ lineHeight: 1.3,
28
+ transition: "background-color 200ms ease, transform 200ms ease",
29
+ "&:hover": {
30
+ backgroundColor: theme.colors.tertiaryBg,
31
+ transform: "scale(1.01)",
32
+ svg: {
33
+ color: theme.colors.accentText,
34
+ },
35
+ },
36
+ "&[disabled]": {
37
+ cursor: "not-allowed",
38
+ svg: {
39
+ display: "none",
40
+ },
41
+ },
42
+ svg: {
43
+ color: theme.colors.secondaryText,
44
+ transition: "color 200ms ease",
45
+ },
46
+ "&[data-variant='danger']:hover svg": {
47
+ color: `${theme.colors.danger}!important`,
48
+ },
49
+ "&[data-variant='primary']:hover svg": {
50
+ color: `${theme.colors.primaryText}!important`,
51
+ },
52
+ };
53
+ });
54
+
55
+ export const MenuLink = /* @__PURE__ */ (() => MenuButton.withComponent("a"))();