thirdweb 5.64.0-nightly-cdb907f175f7472d1fb3dea6547d946514564085-20241023000322 → 5.64.0-nightly-e6e994479fb8386b1740de4170f33446f038f2b1-20241024000332

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 (430) hide show
  1. package/dist/cjs/analytics/track/connect.js +21 -0
  2. package/dist/cjs/analytics/track/connect.js.map +1 -0
  3. package/dist/cjs/analytics/track/index.js +21 -0
  4. package/dist/cjs/analytics/track/index.js.map +1 -0
  5. package/dist/cjs/analytics/track/pay.js +26 -0
  6. package/dist/cjs/analytics/track/pay.js.map +1 -0
  7. package/dist/cjs/analytics/track/siwe.js +32 -0
  8. package/dist/cjs/analytics/track/siwe.js.map +1 -0
  9. package/dist/cjs/analytics/track/transaction.js +36 -0
  10. package/dist/cjs/analytics/track/transaction.js.map +1 -0
  11. package/dist/cjs/auth/core/verify-login-payload.js +19 -1
  12. package/dist/cjs/auth/core/verify-login-payload.js.map +1 -1
  13. package/dist/cjs/exports/extensions/erc721.js +3 -1
  14. package/dist/cjs/exports/extensions/erc721.js.map +1 -1
  15. package/dist/cjs/exports/wallets/in-app.js +2 -1
  16. package/dist/cjs/exports/wallets/in-app.js.map +1 -1
  17. package/dist/cjs/extensions/erc1155/write/mintAdditionalSupplyToBatch.js +41 -1
  18. package/dist/cjs/extensions/erc1155/write/mintAdditionalSupplyToBatch.js.map +1 -1
  19. package/dist/cjs/extensions/erc721/drops/write/claimToBatch.js +115 -0
  20. package/dist/cjs/extensions/erc721/drops/write/claimToBatch.js.map +1 -0
  21. package/dist/cjs/react/core/utils/walletIcon.js +2 -2
  22. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  23. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +3 -4
  24. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +2 -2
  26. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +3 -3
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +2 -2
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +2 -2
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +2 -2
  34. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +5 -5
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  37. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js +1 -1
  38. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +2 -2
  39. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  40. package/dist/cjs/react/web/ui/components/WalletImage.js +1 -1
  41. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +2 -2
  42. package/dist/cjs/version.js +1 -1
  43. package/dist/cjs/wallets/__generated__/getWalletInfo.js +45 -15
  44. package/dist/cjs/wallets/__generated__/getWalletInfo.js.map +1 -1
  45. package/dist/cjs/wallets/__generated__/wallet/app.nightly/image.js +7 -0
  46. package/dist/cjs/wallets/__generated__/wallet/app.nightly/image.js.map +1 -0
  47. package/dist/cjs/wallets/__generated__/wallet/app.nightly/index.js +34 -0
  48. package/dist/cjs/wallets/__generated__/wallet/app.nightly/index.js.map +1 -0
  49. package/dist/cjs/wallets/__generated__/wallet/app.status/image.js +1 -1
  50. package/dist/cjs/wallets/__generated__/wallet/app.status/image.js.map +1 -1
  51. package/dist/cjs/wallets/__generated__/wallet/app.status/index.js +1 -1
  52. package/dist/cjs/wallets/__generated__/wallet/app.walletnow/index.js +1 -1
  53. package/dist/cjs/wallets/__generated__/wallet/app.walletnow/index.js.map +1 -1
  54. package/dist/cjs/wallets/__generated__/wallet/com.beexo/image.js +7 -0
  55. package/dist/cjs/wallets/__generated__/wallet/com.beexo/image.js.map +1 -0
  56. package/dist/cjs/wallets/__generated__/wallet/{org.nitrogen → com.beexo}/index.js +9 -9
  57. package/dist/cjs/wallets/__generated__/wallet/com.beexo/index.js.map +1 -0
  58. package/dist/cjs/wallets/__generated__/wallet/com.brave.wallet/image.js +1 -1
  59. package/dist/cjs/wallets/__generated__/wallet/com.brave.wallet/image.js.map +1 -1
  60. package/dist/cjs/wallets/__generated__/wallet/com.brave.wallet/index.js +9 -9
  61. package/dist/cjs/wallets/__generated__/wallet/com.brave.wallet/index.js.map +1 -1
  62. package/dist/cjs/wallets/__generated__/wallet/com.coin98/image.js +1 -1
  63. package/dist/cjs/wallets/__generated__/wallet/com.coin98/image.js.map +1 -1
  64. package/dist/cjs/wallets/__generated__/wallet/com.coin98/index.js +1 -1
  65. package/dist/cjs/wallets/__generated__/wallet/com.crypto/image.js +1 -1
  66. package/dist/cjs/wallets/__generated__/wallet/com.crypto/image.js.map +1 -1
  67. package/dist/cjs/wallets/__generated__/wallet/com.crypto/index.js +1 -1
  68. package/dist/cjs/wallets/__generated__/wallet/com.daffione/image.js +7 -0
  69. package/dist/cjs/wallets/__generated__/wallet/{org.nitrogen → com.daffione}/image.js.map +1 -1
  70. package/dist/cjs/wallets/__generated__/wallet/com.daffione/index.js +34 -0
  71. package/dist/cjs/wallets/__generated__/wallet/com.daffione/index.js.map +1 -0
  72. package/dist/cjs/wallets/__generated__/wallet/com.ipmb/image.js +7 -0
  73. package/dist/cjs/wallets/__generated__/wallet/com.ipmb/image.js.map +1 -0
  74. package/dist/cjs/wallets/__generated__/wallet/com.ipmb/index.js +34 -0
  75. package/dist/cjs/wallets/__generated__/wallet/com.ipmb/index.js.map +1 -0
  76. package/dist/cjs/wallets/__generated__/wallet/com.webauth/image.js +7 -0
  77. package/dist/cjs/wallets/__generated__/wallet/com.webauth/image.js.map +1 -0
  78. package/dist/cjs/wallets/__generated__/wallet/com.webauth/index.js +34 -0
  79. package/dist/cjs/wallets/__generated__/wallet/com.webauth/index.js.map +1 -0
  80. package/dist/cjs/wallets/__generated__/wallet/finance.openwallet/index.js +2 -2
  81. package/dist/cjs/wallets/__generated__/wallet/finance.openwallet/index.js.map +1 -1
  82. package/dist/cjs/wallets/__generated__/wallet/finance.plena/index.js +1 -1
  83. package/dist/cjs/wallets/__generated__/wallet/finance.plena/index.js.map +1 -1
  84. package/dist/cjs/wallets/__generated__/wallet/id.plumaa/image.js +7 -0
  85. package/dist/cjs/wallets/__generated__/wallet/id.plumaa/image.js.map +1 -0
  86. package/dist/cjs/wallets/__generated__/wallet/id.plumaa/index.js +34 -0
  87. package/dist/cjs/wallets/__generated__/wallet/id.plumaa/index.js.map +1 -0
  88. package/dist/cjs/wallets/__generated__/wallet/io.miraiapp/image.js +1 -1
  89. package/dist/cjs/wallets/__generated__/wallet/io.miraiapp/image.js.map +1 -1
  90. package/dist/cjs/wallets/__generated__/wallet/io.miraiapp/index.js +1 -1
  91. package/dist/cjs/wallets/__generated__/wallet/io.owallet/image.js +7 -0
  92. package/dist/cjs/wallets/__generated__/wallet/io.owallet/image.js.map +1 -0
  93. package/dist/cjs/wallets/__generated__/wallet/io.owallet/index.js +34 -0
  94. package/dist/cjs/wallets/__generated__/wallet/io.owallet/index.js.map +1 -0
  95. package/dist/cjs/wallets/__generated__/wallet/io.tradestrike/image.js +1 -1
  96. package/dist/cjs/wallets/__generated__/wallet/io.tradestrike/image.js.map +1 -1
  97. package/dist/cjs/wallets/__generated__/wallet/io.tradestrike/index.js +2 -2
  98. package/dist/cjs/wallets/__generated__/wallet/io.tradestrike/index.js.map +1 -1
  99. package/dist/cjs/wallets/__generated__/wallet-infos.js +45 -15
  100. package/dist/cjs/wallets/__generated__/wallet-infos.js.map +1 -1
  101. package/dist/cjs/wallets/coinbase/coinbase-wallet.js +3 -3
  102. package/dist/cjs/wallets/coinbase/coinbase-wallet.js.map +1 -1
  103. package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js +20 -8
  104. package/dist/cjs/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
  105. package/dist/cjs/wallets/create-wallet.js +11 -6
  106. package/dist/cjs/wallets/create-wallet.js.map +1 -1
  107. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js +13 -3
  108. package/dist/cjs/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  109. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js +5 -3
  110. package/dist/cjs/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  111. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js +9 -2
  112. package/dist/cjs/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  113. package/dist/cjs/wallets/injected/index.js +36 -8
  114. package/dist/cjs/wallets/injected/index.js.map +1 -1
  115. package/dist/cjs/wallets/native/create-wallet.js +3 -3
  116. package/dist/cjs/wallets/native/create-wallet.js.map +1 -1
  117. package/dist/cjs/wallets/smart/smart-wallet.js +3 -3
  118. package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
  119. package/dist/cjs/wallets/wallet-connect/controller.js +20 -8
  120. package/dist/cjs/wallets/wallet-connect/controller.js.map +1 -1
  121. package/dist/esm/analytics/track/connect.js +18 -0
  122. package/dist/esm/analytics/track/connect.js.map +1 -0
  123. package/dist/esm/analytics/track/index.js +18 -0
  124. package/dist/esm/analytics/track/index.js.map +1 -0
  125. package/dist/esm/analytics/track/pay.js +23 -0
  126. package/dist/esm/analytics/track/pay.js.map +1 -0
  127. package/dist/esm/analytics/track/siwe.js +29 -0
  128. package/dist/esm/analytics/track/siwe.js.map +1 -0
  129. package/dist/esm/analytics/track/transaction.js +33 -0
  130. package/dist/esm/analytics/track/transaction.js.map +1 -0
  131. package/dist/esm/auth/core/verify-login-payload.js +19 -1
  132. package/dist/esm/auth/core/verify-login-payload.js.map +1 -1
  133. package/dist/esm/exports/extensions/erc721.js +1 -0
  134. package/dist/esm/exports/extensions/erc721.js.map +1 -1
  135. package/dist/esm/exports/wallets/in-app.js +1 -1
  136. package/dist/esm/exports/wallets/in-app.js.map +1 -1
  137. package/dist/esm/extensions/erc1155/write/mintAdditionalSupplyToBatch.js +40 -1
  138. package/dist/esm/extensions/erc1155/write/mintAdditionalSupplyToBatch.js.map +1 -1
  139. package/dist/esm/extensions/erc721/drops/write/claimToBatch.js +111 -0
  140. package/dist/esm/extensions/erc721/drops/write/claimToBatch.js.map +1 -0
  141. package/dist/esm/react/core/utils/walletIcon.js +1 -1
  142. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  143. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +3 -4
  144. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  145. package/dist/esm/react/web/ui/ConnectWallet/Details.js +1 -1
  146. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  147. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +1 -1
  148. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  149. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +1 -1
  150. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  151. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +1 -1
  152. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
  153. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +1 -1
  154. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  155. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +1 -1
  156. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  157. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.js +2 -2
  158. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +1 -1
  159. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  160. package/dist/esm/react/web/ui/components/WalletImage.js +2 -2
  161. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +3 -3
  162. package/dist/esm/version.js +1 -1
  163. package/dist/esm/wallets/__generated__/getWalletInfo.js +45 -15
  164. package/dist/esm/wallets/__generated__/getWalletInfo.js.map +1 -1
  165. package/dist/esm/wallets/__generated__/wallet/app.nightly/image.js +5 -0
  166. package/dist/esm/wallets/__generated__/wallet/app.nightly/image.js.map +1 -0
  167. package/dist/esm/wallets/__generated__/wallet/app.nightly/index.js +31 -0
  168. package/dist/esm/wallets/__generated__/wallet/app.nightly/index.js.map +1 -0
  169. package/dist/esm/wallets/__generated__/wallet/app.status/image.js +1 -1
  170. package/dist/esm/wallets/__generated__/wallet/app.status/image.js.map +1 -1
  171. package/dist/esm/wallets/__generated__/wallet/app.status/index.js +1 -1
  172. package/dist/esm/wallets/__generated__/wallet/app.walletnow/index.js +1 -1
  173. package/dist/esm/wallets/__generated__/wallet/app.walletnow/index.js.map +1 -1
  174. package/dist/esm/wallets/__generated__/wallet/com.beexo/image.js +5 -0
  175. package/dist/esm/wallets/__generated__/wallet/com.beexo/image.js.map +1 -0
  176. package/dist/esm/wallets/__generated__/wallet/{org.nitrogen → com.beexo}/index.js +9 -9
  177. package/dist/esm/wallets/__generated__/wallet/com.beexo/index.js.map +1 -0
  178. package/dist/esm/wallets/__generated__/wallet/com.brave.wallet/image.js +1 -1
  179. package/dist/esm/wallets/__generated__/wallet/com.brave.wallet/image.js.map +1 -1
  180. package/dist/esm/wallets/__generated__/wallet/com.brave.wallet/index.js +9 -9
  181. package/dist/esm/wallets/__generated__/wallet/com.brave.wallet/index.js.map +1 -1
  182. package/dist/esm/wallets/__generated__/wallet/com.coin98/image.js +1 -1
  183. package/dist/esm/wallets/__generated__/wallet/com.coin98/image.js.map +1 -1
  184. package/dist/esm/wallets/__generated__/wallet/com.coin98/index.js +1 -1
  185. package/dist/esm/wallets/__generated__/wallet/com.crypto/image.js +1 -1
  186. package/dist/esm/wallets/__generated__/wallet/com.crypto/image.js.map +1 -1
  187. package/dist/esm/wallets/__generated__/wallet/com.crypto/index.js +1 -1
  188. package/dist/esm/wallets/__generated__/wallet/com.daffione/image.js +5 -0
  189. package/dist/esm/wallets/__generated__/wallet/{org.nitrogen → com.daffione}/image.js.map +1 -1
  190. package/dist/esm/wallets/__generated__/wallet/com.daffione/index.js +31 -0
  191. package/dist/esm/wallets/__generated__/wallet/com.daffione/index.js.map +1 -0
  192. package/dist/esm/wallets/__generated__/wallet/com.ipmb/image.js +5 -0
  193. package/dist/esm/wallets/__generated__/wallet/com.ipmb/image.js.map +1 -0
  194. package/dist/esm/wallets/__generated__/wallet/com.ipmb/index.js +31 -0
  195. package/dist/esm/wallets/__generated__/wallet/com.ipmb/index.js.map +1 -0
  196. package/dist/esm/wallets/__generated__/wallet/com.webauth/image.js +5 -0
  197. package/dist/esm/wallets/__generated__/wallet/com.webauth/image.js.map +1 -0
  198. package/dist/esm/wallets/__generated__/wallet/com.webauth/index.js +31 -0
  199. package/dist/esm/wallets/__generated__/wallet/com.webauth/index.js.map +1 -0
  200. package/dist/esm/wallets/__generated__/wallet/finance.openwallet/index.js +2 -2
  201. package/dist/esm/wallets/__generated__/wallet/finance.openwallet/index.js.map +1 -1
  202. package/dist/esm/wallets/__generated__/wallet/finance.plena/index.js +1 -1
  203. package/dist/esm/wallets/__generated__/wallet/finance.plena/index.js.map +1 -1
  204. package/dist/esm/wallets/__generated__/wallet/id.plumaa/image.js +5 -0
  205. package/dist/esm/wallets/__generated__/wallet/id.plumaa/image.js.map +1 -0
  206. package/dist/esm/wallets/__generated__/wallet/id.plumaa/index.js +31 -0
  207. package/dist/esm/wallets/__generated__/wallet/id.plumaa/index.js.map +1 -0
  208. package/dist/esm/wallets/__generated__/wallet/io.miraiapp/image.js +1 -1
  209. package/dist/esm/wallets/__generated__/wallet/io.miraiapp/image.js.map +1 -1
  210. package/dist/esm/wallets/__generated__/wallet/io.miraiapp/index.js +1 -1
  211. package/dist/esm/wallets/__generated__/wallet/io.owallet/image.js +5 -0
  212. package/dist/esm/wallets/__generated__/wallet/io.owallet/image.js.map +1 -0
  213. package/dist/esm/wallets/__generated__/wallet/io.owallet/index.js +31 -0
  214. package/dist/esm/wallets/__generated__/wallet/io.owallet/index.js.map +1 -0
  215. package/dist/esm/wallets/__generated__/wallet/io.tradestrike/image.js +1 -1
  216. package/dist/esm/wallets/__generated__/wallet/io.tradestrike/image.js.map +1 -1
  217. package/dist/esm/wallets/__generated__/wallet/io.tradestrike/index.js +2 -2
  218. package/dist/esm/wallets/__generated__/wallet/io.tradestrike/index.js.map +1 -1
  219. package/dist/esm/wallets/__generated__/wallet-infos.js +45 -15
  220. package/dist/esm/wallets/__generated__/wallet-infos.js.map +1 -1
  221. package/dist/esm/wallets/coinbase/coinbase-wallet.js +1 -1
  222. package/dist/esm/wallets/coinbase/coinbase-wallet.js.map +1 -1
  223. package/dist/esm/wallets/coinbase/coinbaseWebSDK.js +20 -8
  224. package/dist/esm/wallets/coinbase/coinbaseWebSDK.js.map +1 -1
  225. package/dist/esm/wallets/create-wallet.js +7 -2
  226. package/dist/esm/wallets/create-wallet.js.map +1 -1
  227. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js +13 -3
  228. package/dist/esm/wallets/in-app/core/wallet/enclave-wallet.js.map +1 -1
  229. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js +3 -1
  230. package/dist/esm/wallets/in-app/core/wallet/in-app-core.js.map +1 -1
  231. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js +9 -2
  232. package/dist/esm/wallets/in-app/web/lib/iframe-wallet.js.map +1 -1
  233. package/dist/esm/wallets/injected/index.js +36 -8
  234. package/dist/esm/wallets/injected/index.js.map +1 -1
  235. package/dist/esm/wallets/native/create-wallet.js +1 -1
  236. package/dist/esm/wallets/native/create-wallet.js.map +1 -1
  237. package/dist/esm/wallets/smart/smart-wallet.js +1 -1
  238. package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
  239. package/dist/esm/wallets/wallet-connect/controller.js +20 -8
  240. package/dist/esm/wallets/wallet-connect/controller.js.map +1 -1
  241. package/dist/types/analytics/track/connect.d.ts +12 -0
  242. package/dist/types/analytics/track/connect.d.ts.map +1 -0
  243. package/dist/types/analytics/track/index.d.ts +11 -0
  244. package/dist/types/analytics/track/index.d.ts.map +1 -0
  245. package/dist/types/analytics/{track.d.ts → track/pay.d.ts} +5 -11
  246. package/dist/types/analytics/track/pay.d.ts.map +1 -0
  247. package/dist/types/analytics/track/siwe.d.ts +19 -0
  248. package/dist/types/analytics/track/siwe.d.ts.map +1 -0
  249. package/dist/types/analytics/track/transaction.d.ts +24 -0
  250. package/dist/types/analytics/track/transaction.d.ts.map +1 -0
  251. package/dist/types/auth/core/verify-login-payload.d.ts.map +1 -1
  252. package/dist/types/exports/extensions/erc721.d.ts +1 -0
  253. package/dist/types/exports/extensions/erc721.d.ts.map +1 -1
  254. package/dist/types/exports/wallets/in-app.d.ts +1 -1
  255. package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
  256. package/dist/types/extensions/erc1155/write/mintAdditionalSupplyToBatch.d.ts +23 -3
  257. package/dist/types/extensions/erc1155/write/mintAdditionalSupplyToBatch.d.ts.map +1 -1
  258. package/dist/types/extensions/erc721/drops/write/claimToBatch.d.ts +71 -0
  259. package/dist/types/extensions/erc721/drops/write/claimToBatch.d.ts.map +1 -0
  260. package/dist/types/react/core/utils/walletIcon.d.ts +2 -1
  261. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  262. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +3 -4
  263. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  264. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  265. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  266. package/dist/types/version.d.ts +1 -1
  267. package/dist/types/wallets/__generated__/getWalletInfo.d.ts.map +1 -1
  268. package/dist/types/wallets/__generated__/wallet/app.nightly/image.d.ts +3 -0
  269. package/dist/types/wallets/__generated__/wallet/app.nightly/image.d.ts.map +1 -0
  270. package/dist/types/wallets/__generated__/wallet/app.nightly/index.d.ts +29 -0
  271. package/dist/types/wallets/__generated__/wallet/app.nightly/index.d.ts.map +1 -0
  272. package/dist/types/wallets/__generated__/wallet/app.status/image.d.ts +1 -1
  273. package/dist/types/wallets/__generated__/wallet/app.status/image.d.ts.map +1 -1
  274. package/dist/types/wallets/__generated__/wallet/app.status/index.d.ts +1 -1
  275. package/dist/types/wallets/__generated__/wallet/app.walletnow/index.d.ts +1 -1
  276. package/dist/types/wallets/__generated__/wallet/com.beexo/image.d.ts +3 -0
  277. package/dist/types/wallets/__generated__/wallet/com.beexo/image.d.ts.map +1 -0
  278. package/dist/types/wallets/__generated__/wallet/{org.nitrogen → com.beexo}/index.d.ts +9 -9
  279. package/dist/types/wallets/__generated__/wallet/com.beexo/index.d.ts.map +1 -0
  280. package/dist/types/wallets/__generated__/wallet/com.brave.wallet/image.d.ts +1 -1
  281. package/dist/types/wallets/__generated__/wallet/com.brave.wallet/image.d.ts.map +1 -1
  282. package/dist/types/wallets/__generated__/wallet/com.brave.wallet/index.d.ts +9 -9
  283. package/dist/types/wallets/__generated__/wallet/com.brave.wallet/index.d.ts.map +1 -1
  284. package/dist/types/wallets/__generated__/wallet/com.coin98/image.d.ts +1 -1
  285. package/dist/types/wallets/__generated__/wallet/com.coin98/image.d.ts.map +1 -1
  286. package/dist/types/wallets/__generated__/wallet/com.coin98/index.d.ts +1 -1
  287. package/dist/types/wallets/__generated__/wallet/com.crypto/image.d.ts +1 -1
  288. package/dist/types/wallets/__generated__/wallet/com.crypto/image.d.ts.map +1 -1
  289. package/dist/types/wallets/__generated__/wallet/com.crypto/index.d.ts +1 -1
  290. package/dist/types/wallets/__generated__/wallet/com.daffione/image.d.ts +3 -0
  291. package/dist/types/wallets/__generated__/wallet/com.daffione/image.d.ts.map +1 -0
  292. package/dist/types/wallets/__generated__/wallet/com.daffione/index.d.ts +29 -0
  293. package/dist/types/wallets/__generated__/wallet/{org.nitrogen → com.daffione}/index.d.ts.map +1 -1
  294. package/dist/types/wallets/__generated__/wallet/com.ipmb/image.d.ts +3 -0
  295. package/dist/types/wallets/__generated__/wallet/com.ipmb/image.d.ts.map +1 -0
  296. package/dist/types/wallets/__generated__/wallet/com.ipmb/index.d.ts +29 -0
  297. package/dist/types/wallets/__generated__/wallet/com.ipmb/index.d.ts.map +1 -0
  298. package/dist/types/wallets/__generated__/wallet/com.webauth/image.d.ts +3 -0
  299. package/dist/types/wallets/__generated__/wallet/com.webauth/image.d.ts.map +1 -0
  300. package/dist/types/wallets/__generated__/wallet/com.webauth/index.d.ts +29 -0
  301. package/dist/types/wallets/__generated__/wallet/com.webauth/index.d.ts.map +1 -0
  302. package/dist/types/wallets/__generated__/wallet/finance.openwallet/index.d.ts +2 -2
  303. package/dist/types/wallets/__generated__/wallet/finance.plena/index.d.ts +1 -1
  304. package/dist/types/wallets/__generated__/wallet/id.plumaa/image.d.ts +3 -0
  305. package/dist/types/wallets/__generated__/wallet/id.plumaa/image.d.ts.map +1 -0
  306. package/dist/types/wallets/__generated__/wallet/id.plumaa/index.d.ts +29 -0
  307. package/dist/types/wallets/__generated__/wallet/id.plumaa/index.d.ts.map +1 -0
  308. package/dist/types/wallets/__generated__/wallet/io.miraiapp/image.d.ts +1 -1
  309. package/dist/types/wallets/__generated__/wallet/io.miraiapp/image.d.ts.map +1 -1
  310. package/dist/types/wallets/__generated__/wallet/io.miraiapp/index.d.ts +1 -1
  311. package/dist/types/wallets/__generated__/wallet/io.owallet/image.d.ts +3 -0
  312. package/dist/types/wallets/__generated__/wallet/io.owallet/image.d.ts.map +1 -0
  313. package/dist/types/wallets/__generated__/wallet/io.owallet/index.d.ts +29 -0
  314. package/dist/types/wallets/__generated__/wallet/io.owallet/index.d.ts.map +1 -0
  315. package/dist/types/wallets/__generated__/wallet/io.tradestrike/image.d.ts +1 -1
  316. package/dist/types/wallets/__generated__/wallet/io.tradestrike/image.d.ts.map +1 -1
  317. package/dist/types/wallets/__generated__/wallet/io.tradestrike/index.d.ts +2 -2
  318. package/dist/types/wallets/__generated__/wallet-ids.d.ts +2 -2
  319. package/dist/types/wallets/__generated__/wallet-ids.d.ts.map +1 -1
  320. package/dist/types/wallets/__generated__/wallet-infos.d.ts +36 -12
  321. package/dist/types/wallets/__generated__/wallet-infos.d.ts.map +1 -1
  322. package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts +1 -1
  323. package/dist/types/wallets/coinbase/coinbaseWebSDK.d.ts.map +1 -1
  324. package/dist/types/wallets/create-wallet.d.ts.map +1 -1
  325. package/dist/types/wallets/getAllWalletsList.d.ts +36 -12
  326. package/dist/types/wallets/getAllWalletsList.d.ts.map +1 -1
  327. package/dist/types/wallets/in-app/core/wallet/enclave-wallet.d.ts.map +1 -1
  328. package/dist/types/wallets/in-app/core/wallet/in-app-core.d.ts.map +1 -1
  329. package/dist/types/wallets/in-app/web/lib/iframe-wallet.d.ts.map +1 -1
  330. package/dist/types/wallets/injected/index.d.ts +15 -2
  331. package/dist/types/wallets/injected/index.d.ts.map +1 -1
  332. package/dist/types/wallets/wallet-connect/controller.d.ts +2 -1
  333. package/dist/types/wallets/wallet-connect/controller.d.ts.map +1 -1
  334. package/package.json +1 -1
  335. package/src/analytics/track/connect.test.ts +78 -0
  336. package/src/analytics/track/connect.ts +25 -0
  337. package/src/analytics/track/index.ts +30 -0
  338. package/src/analytics/track/pay.test.ts +98 -0
  339. package/src/analytics/track/pay.ts +37 -0
  340. package/src/analytics/track/siwe.test.ts +110 -0
  341. package/src/analytics/track/siwe.ts +48 -0
  342. package/src/analytics/track/track.test.ts +107 -0
  343. package/src/analytics/track/transaction.test.ts +130 -0
  344. package/src/analytics/track/transaction.ts +57 -0
  345. package/src/auth/core/verify-login-payload.ts +25 -1
  346. package/src/exports/extensions/erc721.ts +4 -0
  347. package/src/exports/wallets/in-app.ts +4 -1
  348. package/src/extensions/erc1155/drop1155.test.ts +11 -0
  349. package/src/extensions/erc1155/token1155.test.ts +170 -2
  350. package/src/extensions/erc1155/write/lazyMint.test.ts +2 -22
  351. package/src/extensions/erc1155/write/mintAdditionalSupplyToBatch.test.ts +16 -85
  352. package/src/extensions/erc1155/write/mintAdditionalSupplyToBatch.ts +51 -4
  353. package/src/extensions/erc721/drops/write/claimTo.test.ts +15 -0
  354. package/src/extensions/erc721/drops/write/claimToBatch.test.ts +154 -0
  355. package/src/extensions/erc721/drops/write/claimToBatch.ts +144 -0
  356. package/src/react/core/utils/walletIcon.ts +3 -1
  357. package/src/react/web/hooks/transaction/useSendTransaction.tsx +3 -4
  358. package/src/react/web/ui/ConnectWallet/Details.tsx +2 -4
  359. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +1 -1
  360. package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +1 -1
  361. package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +1 -1
  362. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +1 -1
  363. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +1 -1
  364. package/src/react/web/ui/ConnectWallet/screens/LinkedProfilesScreen.tsx +2 -2
  365. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +1 -1
  366. package/src/react/web/ui/components/WalletImage.tsx +2 -2
  367. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +3 -3
  368. package/src/version.ts +1 -1
  369. package/src/wallets/__generated__/getWalletInfo.ts +67 -25
  370. package/src/wallets/__generated__/wallet/app.nightly/image.ts +7 -0
  371. package/src/wallets/__generated__/wallet/app.nightly/index.ts +34 -0
  372. package/src/wallets/__generated__/wallet/app.status/image.ts +1 -1
  373. package/src/wallets/__generated__/wallet/app.status/index.ts +1 -1
  374. package/src/wallets/__generated__/wallet/app.walletnow/index.ts +1 -1
  375. package/src/wallets/__generated__/wallet/com.beexo/image.ts +7 -0
  376. package/src/wallets/__generated__/wallet/com.beexo/index.ts +31 -0
  377. package/src/wallets/__generated__/wallet/com.brave.wallet/image.ts +1 -1
  378. package/src/wallets/__generated__/wallet/com.brave.wallet/index.ts +9 -11
  379. package/src/wallets/__generated__/wallet/com.coin98/image.ts +1 -1
  380. package/src/wallets/__generated__/wallet/com.coin98/index.ts +1 -1
  381. package/src/wallets/__generated__/wallet/com.crypto/image.ts +1 -1
  382. package/src/wallets/__generated__/wallet/com.crypto/index.ts +1 -1
  383. package/src/wallets/__generated__/wallet/com.daffione/image.ts +7 -0
  384. package/src/wallets/__generated__/wallet/com.daffione/index.ts +31 -0
  385. package/src/wallets/__generated__/wallet/com.ipmb/image.ts +7 -0
  386. package/src/wallets/__generated__/wallet/com.ipmb/index.ts +32 -0
  387. package/src/wallets/__generated__/wallet/com.webauth/image.ts +7 -0
  388. package/src/wallets/__generated__/wallet/{org.nitrogen → com.webauth}/index.ts +8 -8
  389. package/src/wallets/__generated__/wallet/finance.openwallet/index.ts +2 -2
  390. package/src/wallets/__generated__/wallet/finance.plena/index.ts +1 -1
  391. package/src/wallets/__generated__/wallet/id.plumaa/image.ts +7 -0
  392. package/src/wallets/__generated__/wallet/id.plumaa/index.ts +31 -0
  393. package/src/wallets/__generated__/wallet/io.miraiapp/image.ts +1 -1
  394. package/src/wallets/__generated__/wallet/io.miraiapp/index.ts +1 -1
  395. package/src/wallets/__generated__/wallet/io.owallet/image.ts +7 -0
  396. package/src/wallets/__generated__/wallet/io.owallet/index.ts +32 -0
  397. package/src/wallets/__generated__/wallet/io.tradestrike/image.ts +1 -1
  398. package/src/wallets/__generated__/wallet/io.tradestrike/index.ts +2 -2
  399. package/src/wallets/__generated__/wallet-ids.ts +9 -6
  400. package/src/wallets/__generated__/wallet-infos.ts +45 -15
  401. package/src/wallets/coinbase/coinbase-wallet.ts +1 -1
  402. package/src/wallets/coinbase/coinbaseWebSDK.ts +30 -7
  403. package/src/wallets/create-wallet.ts +6 -5
  404. package/src/wallets/in-app/core/wallet/enclave-wallet.ts +16 -3
  405. package/src/wallets/in-app/core/wallet/in-app-core.ts +3 -1
  406. package/src/wallets/in-app/web/lib/iframe-wallet.ts +12 -2
  407. package/src/wallets/injected/index.ts +72 -17
  408. package/src/wallets/native/create-wallet.ts +1 -1
  409. package/src/wallets/smart/smart-wallet.ts +1 -1
  410. package/src/wallets/wallet-connect/controller.ts +29 -7
  411. package/dist/cjs/analytics/track.js +0 -51
  412. package/dist/cjs/analytics/track.js.map +0 -1
  413. package/dist/cjs/wallets/__generated__/wallet/org.nitrogen/image.js +0 -7
  414. package/dist/cjs/wallets/__generated__/wallet/org.nitrogen/index.js.map +0 -1
  415. package/dist/esm/analytics/track.js +0 -47
  416. package/dist/esm/analytics/track.js.map +0 -1
  417. package/dist/esm/wallets/__generated__/wallet/org.nitrogen/image.js +0 -5
  418. package/dist/esm/wallets/__generated__/wallet/org.nitrogen/index.js.map +0 -1
  419. package/dist/types/analytics/track.d.ts.map +0 -1
  420. package/dist/types/wallets/__generated__/wallet/org.nitrogen/image.d.ts +0 -3
  421. package/dist/types/wallets/__generated__/wallet/org.nitrogen/image.d.ts.map +0 -1
  422. package/src/analytics/track.ts +0 -67
  423. package/src/extensions/erc1155/read/getNFTs.test.ts +0 -44
  424. package/src/extensions/erc1155/read/getOwnedNFTs.test.ts +0 -62
  425. package/src/extensions/erc1155/read/getOwnedTokenIds.test.ts +0 -50
  426. package/src/extensions/erc1155/write/mintAdditionalSupplyTo.test.ts +0 -38
  427. package/src/extensions/erc1155/write/mintTo.test.ts +0 -42
  428. package/src/extensions/erc1155/write/mintToBatch.test.ts +0 -77
  429. package/src/extensions/erc1155/write/updateTokenURI.test.ts +0 -54
  430. package/src/wallets/__generated__/wallet/org.nitrogen/image.ts +0 -7
@@ -0,0 +1,48 @@
1
+ import type { ThirdwebClient } from "../../client/client.js";
2
+ import { stringify } from "../../utils/json.js";
3
+ import type { Ecosystem } from "../../wallets/in-app/core/wallet/types.js";
4
+ import { track } from "./index.js";
5
+
6
+ type SiweEvent = {
7
+ client: ThirdwebClient;
8
+ ecosystem?: Ecosystem;
9
+ walletAddress?: string;
10
+ walletType?: string;
11
+ chainId?: number;
12
+ error?: {
13
+ message: string;
14
+ code: string;
15
+ };
16
+ };
17
+
18
+ /**
19
+ * @internal
20
+ */
21
+ export async function trackLogin(event: SiweEvent) {
22
+ return trackSiweEvent({
23
+ ...event,
24
+ action: "login:attempt",
25
+ });
26
+ }
27
+
28
+ /**
29
+ * @internal
30
+ */
31
+ async function trackSiweEvent(
32
+ event: SiweEvent & {
33
+ action: "login:attempt";
34
+ },
35
+ ) {
36
+ return track({
37
+ client: event.client,
38
+ ecosystem: event.ecosystem,
39
+ data: {
40
+ action: event.action,
41
+ clientId: event.client.clientId,
42
+ chainId: event.chainId,
43
+ walletAddress: event.walletAddress,
44
+ walletType: event.walletType,
45
+ errorCode: stringify(event.error),
46
+ },
47
+ });
48
+ }
@@ -0,0 +1,107 @@
1
+ import { http, HttpResponse } from "msw";
2
+ import { setupServer } from "msw/node";
3
+ import { afterAll, afterEach, beforeAll, describe, expect, it } from "vitest";
4
+ import type { ThirdwebClient } from "../../client/client.js";
5
+ import { track } from "./index.js";
6
+
7
+ const server = setupServer(
8
+ http.post("https://c.thirdweb.com/event", () => {
9
+ return HttpResponse.json({});
10
+ }),
11
+ );
12
+
13
+ describe("track", () => {
14
+ beforeAll(() => server.listen());
15
+ afterEach(() => server.resetHandlers());
16
+ afterAll(() => server.close());
17
+
18
+ it("should send a POST request with correct data", async () => {
19
+ const mockClient: ThirdwebClient = {
20
+ clientId: "test-client-id",
21
+ secretKey: undefined,
22
+ };
23
+
24
+ let requestBody: unknown;
25
+ server.use(
26
+ http.post("https://c.thirdweb.com/event", async (handler) => {
27
+ requestBody = await handler.request.json();
28
+ return HttpResponse.json({});
29
+ }),
30
+ );
31
+
32
+ await track({
33
+ client: mockClient,
34
+ data: {
35
+ action: "test-action",
36
+ data: "test-data",
37
+ },
38
+ });
39
+
40
+ expect(requestBody).toEqual({
41
+ source: "sdk",
42
+ action: "test-action",
43
+ data: "test-data",
44
+ });
45
+ });
46
+
47
+ it("should not throw an error if the request fails", async () => {
48
+ const mockClient: ThirdwebClient = {
49
+ clientId: "test-client-id",
50
+ secretKey: undefined,
51
+ };
52
+
53
+ server.use(
54
+ http.post("https://c.thirdweb.com/event", () => {
55
+ return HttpResponse.error();
56
+ }),
57
+ );
58
+
59
+ expect(() =>
60
+ track({
61
+ client: mockClient,
62
+ data: {
63
+ action: "test-action",
64
+ data: "test-data",
65
+ },
66
+ }),
67
+ ).not.toThrowError();
68
+
69
+ // Wait for the asynchronous POST request to complete
70
+ await new Promise((resolve) => setTimeout(resolve, 100));
71
+ });
72
+
73
+ it("should send a POST request with correct headers", async () => {
74
+ const mockClient: ThirdwebClient = {
75
+ clientId: "test-client-id",
76
+ secretKey: undefined,
77
+ };
78
+
79
+ let requestHeaders: Headers | undefined;
80
+ server.use(
81
+ http.post("https://c.thirdweb.com/event", (handler) => {
82
+ requestHeaders = handler.request.headers;
83
+ return HttpResponse.json({});
84
+ }),
85
+ );
86
+
87
+ await track({
88
+ client: mockClient,
89
+ ecosystem: {
90
+ id: "ecosystem.test-ecosystem-id",
91
+ partnerId: "test-partner-id",
92
+ },
93
+ data: {
94
+ action: "test-action",
95
+ data: "test-data",
96
+ },
97
+ });
98
+
99
+ expect(requestHeaders?.get("x-client-id")).toEqual("test-client-id");
100
+ expect(requestHeaders?.get("x-ecosystem-id")).toEqual(
101
+ "ecosystem.test-ecosystem-id",
102
+ );
103
+ expect(requestHeaders?.get("x-ecosystem-partner-id")).toEqual(
104
+ "test-partner-id",
105
+ );
106
+ });
107
+ });
@@ -0,0 +1,130 @@
1
+ import { http, HttpResponse } from "msw";
2
+ import { setupServer } from "msw/node";
3
+ import { afterAll, afterEach, beforeAll, describe, expect, it } from "vitest";
4
+ import type { ThirdwebClient } from "../../client/client.js";
5
+ import { trackTransaction } from "./transaction.js";
6
+
7
+ const server = setupServer(
8
+ http.post("https://c.thirdweb.com/event", () => {
9
+ return HttpResponse.json({});
10
+ }),
11
+ );
12
+
13
+ describe("transaction tracking", () => {
14
+ beforeAll(() => server.listen());
15
+ afterEach(() => server.resetHandlers());
16
+ afterAll(() => server.close());
17
+
18
+ const mockClient: ThirdwebClient = {
19
+ clientId: "test-client-id",
20
+ secretKey: undefined,
21
+ };
22
+
23
+ it("should track successful transactions", async () => {
24
+ let requestBody: unknown;
25
+ server.use(
26
+ http.post("https://c.thirdweb.com/event", async (handler) => {
27
+ requestBody = await handler.request.json();
28
+ return HttpResponse.json({});
29
+ }),
30
+ );
31
+
32
+ await trackTransaction({
33
+ client: mockClient,
34
+ transactionHash: "0xabcdef1234567890",
35
+ walletAddress: "0x1234567890123456789012345678901234567890",
36
+ walletType: "io.metamask",
37
+ chainId: 1,
38
+ contractAddress: "0x0987654321098765432109876543210987654321",
39
+ functionName: "transfer",
40
+ gasPrice: BigInt(20000000000),
41
+ });
42
+
43
+ expect(requestBody).toEqual({
44
+ source: "sdk",
45
+ action: "transaction:sent",
46
+ clientId: "test-client-id",
47
+ transactionHash: "0xabcdef1234567890",
48
+ walletAddress: "0x1234567890123456789012345678901234567890",
49
+ walletType: "io.metamask",
50
+ chainId: 1,
51
+ contractAddress: "0x0987654321098765432109876543210987654321",
52
+ functionName: "transfer",
53
+ gasPrice: "20000000000",
54
+ errorCode: undefined,
55
+ });
56
+ });
57
+
58
+ it("should track transaction errors", async () => {
59
+ let requestBody: unknown;
60
+ server.use(
61
+ http.post("https://c.thirdweb.com/event", async (handler) => {
62
+ requestBody = await handler.request.json();
63
+ return HttpResponse.json({});
64
+ }),
65
+ );
66
+
67
+ await trackTransaction({
68
+ client: mockClient,
69
+ walletAddress: "0x1234567890123456789012345678901234567890",
70
+ walletType: "io.metamask",
71
+ chainId: 1,
72
+ error: {
73
+ message: "Insufficient funds",
74
+ code: "INSUFFICIENT_FUNDS",
75
+ },
76
+ });
77
+
78
+ expect(requestBody).toEqual({
79
+ source: "sdk",
80
+ action: "transaction:sent",
81
+ clientId: "test-client-id",
82
+ walletAddress: "0x1234567890123456789012345678901234567890",
83
+ walletType: "io.metamask",
84
+ chainId: 1,
85
+ errorCode: '{"message":"Insufficient funds","code":"INSUFFICIENT_FUNDS"}',
86
+ transactionHash: undefined,
87
+ contractAddress: undefined,
88
+ functionName: undefined,
89
+ gasPrice: undefined,
90
+ });
91
+ });
92
+
93
+ it("should send a POST request with correct headers", async () => {
94
+ const mockClient: ThirdwebClient = {
95
+ clientId: "test-client-id",
96
+ secretKey: undefined,
97
+ };
98
+
99
+ let requestHeaders: Headers | undefined;
100
+ server.use(
101
+ http.post("https://c.thirdweb.com/event", (handler) => {
102
+ requestHeaders = handler.request.headers;
103
+ return HttpResponse.json({});
104
+ }),
105
+ );
106
+
107
+ await trackTransaction({
108
+ client: mockClient,
109
+ ecosystem: {
110
+ id: "ecosystem.test-ecosystem-id",
111
+ partnerId: "test-partner-id",
112
+ },
113
+ transactionHash: "0xabcdef1234567890",
114
+ walletAddress: "0x1234567890123456789012345678901234567890",
115
+ walletType: "io.metamask",
116
+ chainId: 1,
117
+ contractAddress: "0x0987654321098765432109876543210987654321",
118
+ functionName: "transfer",
119
+ gasPrice: BigInt(20000000000),
120
+ });
121
+
122
+ expect(requestHeaders?.get("x-client-id")).toEqual("test-client-id");
123
+ expect(requestHeaders?.get("x-ecosystem-id")).toEqual(
124
+ "ecosystem.test-ecosystem-id",
125
+ );
126
+ expect(requestHeaders?.get("x-ecosystem-partner-id")).toEqual(
127
+ "test-partner-id",
128
+ );
129
+ });
130
+ });
@@ -0,0 +1,57 @@
1
+ import type { ThirdwebClient } from "../../client/client.js";
2
+ import { stringify } from "../../utils/json.js";
3
+ import type { Ecosystem } from "../../wallets/in-app/core/wallet/types.js";
4
+ import type { WalletId } from "../../wallets/wallet-types.js";
5
+ import { track } from "./index.js";
6
+
7
+ type TransactionEvent = {
8
+ client: ThirdwebClient;
9
+ ecosystem?: Ecosystem;
10
+ transactionHash?: string;
11
+ walletAddress?: string;
12
+ walletType?: WalletId;
13
+ chainId?: number;
14
+ contractAddress?: string;
15
+ functionName?: string;
16
+ gasPrice?: bigint;
17
+ error?: {
18
+ message: string;
19
+ code: string;
20
+ };
21
+ };
22
+
23
+ /**
24
+ * @internal
25
+ */
26
+ export async function trackTransaction(args: TransactionEvent) {
27
+ return trackTransactionEvent({
28
+ ...args,
29
+ action: "transaction:sent",
30
+ });
31
+ }
32
+
33
+ /**
34
+ * @internal
35
+ */
36
+ function trackTransactionEvent(
37
+ args: TransactionEvent & {
38
+ action: "transaction:sent";
39
+ },
40
+ ) {
41
+ return track({
42
+ client: args.client,
43
+ ecosystem: args.ecosystem,
44
+ data: {
45
+ action: args.action,
46
+ clientId: args.client.clientId,
47
+ chainId: args.chainId,
48
+ transactionHash: args.transactionHash,
49
+ walletAddress: args.walletAddress,
50
+ walletType: args.walletType,
51
+ contractAddress: args.contractAddress,
52
+ functionName: args.functionName,
53
+ gasPrice: args.gasPrice,
54
+ errorCode: stringify(args.error),
55
+ },
56
+ });
57
+ }
@@ -1,3 +1,4 @@
1
+ import { trackLogin } from "../../analytics/track/siwe.js";
1
2
  import { getCachedChain } from "../../chains/utils.js";
2
3
  import { verifySignature } from "../verify-signature.js";
3
4
  import { DEFAULT_LOGIN_STATEMENT, DEFAULT_LOGIN_VERSION } from "./constants.js";
@@ -42,7 +43,7 @@ export type VerifyLoginPayloadResult =
42
43
  * @internal
43
44
  */
44
45
  export function verifyLoginPayload(options: AuthOptions) {
45
- return async ({
46
+ const verifyLoginPayloadFn = async ({
46
47
  payload,
47
48
  signature,
48
49
  }: VerifyLoginPayloadParams): Promise<VerifyLoginPayloadResult> => {
@@ -152,4 +153,27 @@ export function verifyLoginPayload(options: AuthOptions) {
152
153
  payload: { ...payload, [VERIFIED_SYMBOL]: true },
153
154
  };
154
155
  };
156
+
157
+ return async ({
158
+ payload,
159
+ signature,
160
+ }: VerifyLoginPayloadParams): Promise<VerifyLoginPayloadResult> => {
161
+ const result = await verifyLoginPayloadFn({ payload, signature });
162
+
163
+ // We can only track logins if the client is provided
164
+ if (options.client) {
165
+ trackLogin({
166
+ client: options.client,
167
+ walletAddress: payload.address,
168
+ chainId: payload.chain_id
169
+ ? Number.parseInt(payload.chain_id)
170
+ : undefined,
171
+ error: !result.valid
172
+ ? { message: result.error, code: "401" }
173
+ : undefined,
174
+ });
175
+ }
176
+
177
+ return result;
178
+ };
155
179
  }
@@ -213,3 +213,7 @@ export {
213
213
  type UpdateTokenURIParams,
214
214
  isUpdateTokenURISupported,
215
215
  } from "../../extensions/erc721/write/updateTokenURI.js";
216
+ export {
217
+ claimToBatch,
218
+ type ClaimToBatchParams,
219
+ } from "../../extensions/erc721/drops/write/claimToBatch.js";
@@ -21,4 +21,7 @@ export type {
21
21
 
22
22
  export { hasStoredPasskey } from "../../wallets/in-app/web/lib/auth/passkeys.js";
23
23
 
24
- export { socialIcons } from "../../react/core/utils/walletIcon.js";
24
+ export {
25
+ socialIcons,
26
+ getSocialIcon,
27
+ } from "../../react/core/utils/walletIcon.js";
@@ -1,3 +1,4 @@
1
+ import { type Abi, toFunctionSelector } from "viem";
1
2
  import { beforeAll, describe, expect, it } from "vitest";
2
3
  import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
3
4
  import { VITALIK_WALLET } from "../../../test/src/addresses.js";
@@ -8,6 +9,7 @@ import {
8
9
  TEST_ACCOUNT_B,
9
10
  TEST_ACCOUNT_D,
10
11
  } from "../../../test/src/test-wallets.js";
12
+ import { resolveContractAbi } from "../../contract/actions/resolve-abi.js";
11
13
  import { type ThirdwebContract, getContract } from "../../contract/contract.js";
12
14
  import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
13
15
  import { resolvePromisedValue } from "../../utils/promise/resolve-promised-value.js";
@@ -20,6 +22,7 @@ import { claimTo } from "./drops/write/claimTo.js";
20
22
  import { resetClaimEligibility } from "./drops/write/resetClaimEligibility.js";
21
23
  import { setClaimConditions } from "./drops/write/setClaimConditions.js";
22
24
  import { getNFT } from "./read/getNFT.js";
25
+ import { isGetNFTsSupported } from "./read/getNFTs.js";
23
26
  import { lazyMint } from "./write/lazyMint.js";
24
27
 
25
28
  describe.runIf(process.env.TW_SECRET_KEY)(
@@ -398,5 +401,13 @@ describe.runIf(process.env.TW_SECRET_KEY)(
398
401
  balanceOf({ tokenId: 6n, contract, owner: TEST_ACCOUNT_D.address }),
399
402
  ).resolves.toBe(2n);
400
403
  });
404
+
405
+ it("isGetNFTsSupported should work with our Edition Drop contracts", async () => {
406
+ const abi = await resolveContractAbi<Abi>(contract);
407
+ const selectors = abi
408
+ .filter((f) => f.type === "function")
409
+ .map((f) => toFunctionSelector(f));
410
+ expect(isGetNFTsSupported(selectors)).toBe(true);
411
+ });
401
412
  },
402
413
  );
@@ -1,3 +1,4 @@
1
+ import { type Abi, toFunctionSelector } from "viem";
1
2
  import { beforeAll, describe, expect, it } from "vitest";
2
3
  import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
3
4
  import { ANVIL_CHAIN } from "../../../test/src/chains.js";
@@ -5,17 +6,27 @@ import { TEST_CLIENT } from "../../../test/src/test-clients.js";
5
6
  import {
6
7
  TEST_ACCOUNT_A,
7
8
  TEST_ACCOUNT_B,
9
+ TEST_ACCOUNT_C,
8
10
  } from "../../../test/src/test-wallets.js";
11
+ import { resolveContractAbi } from "../../contract/actions/resolve-abi.js";
9
12
  import { type ThirdwebContract, getContract } from "../../contract/contract.js";
10
13
  import { sendAndConfirmTransaction } from "../../transaction/actions/send-and-confirm-transaction.js";
11
14
  import { deployERC1155Contract } from "../prebuilts/deploy-erc1155.js";
12
15
  import { balanceOf } from "./__generated__/IERC1155/read/balanceOf.js";
13
16
  import { totalSupply } from "./__generated__/IERC1155/read/totalSupply.js";
17
+ import { uri } from "./__generated__/IERC1155/read/uri.js";
14
18
  import { nextTokenIdToMint } from "./__generated__/IERC1155Enumerable/read/nextTokenIdToMint.js";
15
19
  import { getNFT } from "./read/getNFT.js";
16
- import { getNFTs } from "./read/getNFTs.js";
17
- import { mintAdditionalSupplyTo } from "./write/mintAdditionalSupplyTo.js";
20
+ import { getNFTs, isGetNFTsSupported } from "./read/getNFTs.js";
21
+ import { getOwnedTokenIds } from "./read/getOwnedTokenIds.js";
22
+ import {
23
+ isMintAdditionalSupplyToSupported,
24
+ mintAdditionalSupplyTo,
25
+ } from "./write/mintAdditionalSupplyTo.js";
26
+ import { mintAdditionalSupplyToBatch } from "./write/mintAdditionalSupplyToBatch.js";
18
27
  import { mintTo } from "./write/mintTo.js";
28
+ import { mintToBatch } from "./write/mintToBatch.js";
29
+ import { updateTokenURI } from "./write/updateTokenURI.js";
19
30
 
20
31
  describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
21
32
  let contract: ThirdwebContract;
@@ -158,4 +169,161 @@ describe.runIf(process.env.TW_SECRET_KEY)("TokenERC1155", () => {
158
169
  ]
159
170
  `);
160
171
  });
172
+
173
+ it("isGetNFTsSupported should work with our Edition contracts", async () => {
174
+ const abi = await resolveContractAbi<Abi>(contract);
175
+ const selectors = abi
176
+ .filter((f) => f.type === "function")
177
+ .map((f) => toFunctionSelector(f));
178
+ expect(isGetNFTsSupported(selectors)).toBe(true);
179
+ });
180
+
181
+ // tokenId #0 is updated in this test
182
+ it("should update tokenURI", async () => {
183
+ await sendAndConfirmTransaction({
184
+ transaction: updateTokenURI({
185
+ contract,
186
+ newMetadata: { name: "Test1 Updated" },
187
+ tokenId: 0n,
188
+ }),
189
+ account: TEST_ACCOUNT_A,
190
+ });
191
+ const nft = await getNFT({ contract, tokenId: 0n });
192
+ expect(nft.metadata.name).toBe("Test1 Updated");
193
+ });
194
+
195
+ it("should mint with `nft` being declared as a string", async () => {
196
+ await sendAndConfirmTransaction({
197
+ transaction: mintTo({
198
+ contract,
199
+ nft: TEST_CONTRACT_URI,
200
+ to: TEST_ACCOUNT_A.address,
201
+ supply: 1n,
202
+ }),
203
+ account: TEST_ACCOUNT_A,
204
+ });
205
+
206
+ const tokenUri = await uri({ contract, tokenId: 2n });
207
+ expect(tokenUri).toBe(TEST_CONTRACT_URI);
208
+ });
209
+
210
+ it("`isMintAdditionalSupplyToSupported` should work with our Edition contracts", async () => {
211
+ const abi = await resolveContractAbi<Abi>(contract);
212
+ const selectors = abi
213
+ .filter((f) => f.type === "function")
214
+ .map((f) => toFunctionSelector(f));
215
+ expect(isMintAdditionalSupplyToSupported(selectors)).toBe(true);
216
+ });
217
+
218
+ it("should mint multiple tokens in one tx", async () => {
219
+ await sendAndConfirmTransaction({
220
+ account: TEST_ACCOUNT_A,
221
+ transaction: mintToBatch({
222
+ contract,
223
+ to: TEST_ACCOUNT_C.address,
224
+ nfts: [
225
+ { metadata: { name: "batch token 0" }, supply: 1n },
226
+ { metadata: { name: "batch token 1" }, supply: 2n },
227
+ { metadata: { name: "batch token 2" }, supply: 3n },
228
+ ],
229
+ }),
230
+ });
231
+
232
+ const nfts = await getNFTs({ contract });
233
+ expect(nfts).toStrictEqual([
234
+ {
235
+ // Updated tokenURI from the test above
236
+ metadata: { name: "Test1 Updated" },
237
+ owner: null,
238
+ id: 0n,
239
+ tokenURI: "ipfs://QmTSyt6YgoFtH8yhWgevC22BxjyrkCKuzdk86nqQJCwrV9/0",
240
+ type: "ERC1155",
241
+ supply: 15n,
242
+ },
243
+ {
244
+ metadata: { name: "Test NFT 2" },
245
+ owner: null,
246
+ id: 1n,
247
+ tokenURI: "ipfs://QmV6gsfzdiMRtpnh8ay3CgutStVbes7qoF4DKpYE64h8hT/0",
248
+ type: "ERC1155",
249
+ supply: 5n,
250
+ },
251
+ {
252
+ metadata: {
253
+ name: "tw-contract-name",
254
+ symbol: "tw-contract-symbol",
255
+ description: "tw-contract-description",
256
+ },
257
+ owner: null,
258
+ id: 2n,
259
+ // Minted using URI from the test above
260
+ tokenURI:
261
+ "ipfs://bafybeiewg2e3vehsb5pb34xwk25eyyfwlvajzmgz3rtdrvn3upsxnsbhzi/contractUri.json",
262
+ type: "ERC1155",
263
+ supply: 1n,
264
+ },
265
+ {
266
+ metadata: { name: "batch token 0" },
267
+ owner: null,
268
+ id: 3n,
269
+ tokenURI: "ipfs://QmPSQhC2J6Wig4pH1Lt5th19FM58J5oukhfLfpc9L1i39Q/0",
270
+ type: "ERC1155",
271
+ supply: 1n,
272
+ },
273
+ {
274
+ metadata: { name: "batch token 1" },
275
+ owner: null,
276
+ id: 4n,
277
+ tokenURI: "ipfs://QmWRQwLBAeq6Wr65Yj7A4aeYqMD1C7Hs1moz15ncS6EhGu/0",
278
+ type: "ERC1155",
279
+ supply: 2n,
280
+ },
281
+ {
282
+ metadata: { name: "batch token 2" },
283
+ owner: null,
284
+ id: 5n,
285
+ tokenURI: "ipfs://QmTg1wxKGvdZR4NrdkYZGcfB5YYaBz75DH83td5RwprMRP/0",
286
+ type: "ERC1155",
287
+ supply: 3n,
288
+ },
289
+ ]);
290
+ });
291
+
292
+ it("getOwnedTokenIds should work", async () => {
293
+ const ownedTokenIds = await getOwnedTokenIds({
294
+ contract,
295
+ address: TEST_ACCOUNT_C.address,
296
+ });
297
+ expect(ownedTokenIds).toStrictEqual([
298
+ { tokenId: 3n, balance: 1n },
299
+ { tokenId: 4n, balance: 2n },
300
+ { tokenId: 5n, balance: 3n },
301
+ ]);
302
+ });
303
+
304
+ it("should mint multiple ADDITIONAL tokens in one tx", async () => {
305
+ await sendAndConfirmTransaction({
306
+ account: TEST_ACCOUNT_A,
307
+ transaction: mintAdditionalSupplyToBatch({
308
+ contract,
309
+ nfts: [
310
+ { tokenId: 3n, supply: 99n, to: TEST_ACCOUNT_C.address },
311
+ { tokenId: 4n, supply: 94n, to: TEST_ACCOUNT_C.address },
312
+ { tokenId: 5n, supply: 97n, to: TEST_ACCOUNT_C.address },
313
+ { tokenId: 3n, supply: 4n, to: TEST_ACCOUNT_C.address },
314
+ ],
315
+ }),
316
+ });
317
+
318
+ const ownedTokenIds = await getOwnedTokenIds({
319
+ contract,
320
+ address: TEST_ACCOUNT_C.address,
321
+ });
322
+
323
+ expect(ownedTokenIds).toStrictEqual([
324
+ { tokenId: 3n, balance: 104n },
325
+ { tokenId: 4n, balance: 96n },
326
+ { tokenId: 5n, balance: 100n },
327
+ ]);
328
+ });
161
329
  });
@@ -1,32 +1,12 @@
1
1
  import { type Abi, toFunctionSelector } from "viem";
2
2
  import { describe, expect, it } from "vitest";
3
- import { ANVIL_CHAIN } from "~test/chains.js";
4
- import { TEST_CONTRACT_URI } from "~test/ipfs-uris.js";
5
- import { TEST_CLIENT } from "~test/test-clients.js";
6
- import { TEST_ACCOUNT_C } from "~test/test-wallets.js";
3
+ import { DROP1155_CONTRACT } from "~test/test-contracts.js";
7
4
  import { resolveContractAbi } from "../../../contract/actions/resolve-abi.js";
8
- import { getContract } from "../../../contract/contract.js";
9
- import { deployERC1155Contract } from "../../../extensions/prebuilts/deploy-erc1155.js";
10
5
  import { isLazyMintSupported } from "./lazyMint.js";
11
6
 
12
7
  describe.runIf(process.env.TW_SECRET_KEY)("erc1155: lazyMint", () => {
13
8
  it("`isLazyMintSupported` should work with our Edition Drop contracts", async () => {
14
- const contract = getContract({
15
- address: await deployERC1155Contract({
16
- chain: ANVIL_CHAIN,
17
- client: TEST_CLIENT,
18
- params: {
19
- name: "",
20
- contractURI: TEST_CONTRACT_URI,
21
- },
22
- type: "DropERC1155",
23
- account: TEST_ACCOUNT_C,
24
- }),
25
- chain: ANVIL_CHAIN,
26
- client: TEST_CLIENT,
27
- });
28
-
29
- const abi = await resolveContractAbi<Abi>(contract);
9
+ const abi = await resolveContractAbi<Abi>(DROP1155_CONTRACT);
30
10
  const selectors = abi
31
11
  .filter((f) => f.type === "function")
32
12
  .map((f) => toFunctionSelector(f));