thirdweb 5.76.0 → 5.77.0-nightly-a0fabb205916a7b06938fafbea5d80d9506d342e-20241212000351

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 (269) hide show
  1. package/dist/cjs/contract/deployment/deploy-with-abi.js +1 -1
  2. package/dist/cjs/contract/deployment/deploy-with-abi.js.map +1 -1
  3. package/dist/cjs/exports/react.js +4 -1
  4. package/dist/cjs/exports/react.js.map +1 -1
  5. package/dist/cjs/extensions/prebuilts/deploy-published.js +25 -6
  6. package/dist/cjs/extensions/prebuilts/deploy-published.js.map +1 -1
  7. package/dist/cjs/extensions/prebuilts/process-ref-deployments.js +117 -0
  8. package/dist/cjs/extensions/prebuilts/process-ref-deployments.js.map +1 -0
  9. package/dist/cjs/extensions/thirdweb/write/publish.js +1 -0
  10. package/dist/cjs/extensions/thirdweb/write/publish.js.map +1 -1
  11. package/dist/cjs/react/core/hooks/wallets/useAddConnectedWallet.js +1 -1
  12. package/dist/cjs/react/core/hooks/wallets/useAddConnectedWallet.js.map +1 -1
  13. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +1 -1
  14. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  15. package/dist/cjs/react/core/utils/storage.js +4 -3
  16. package/dist/cjs/react/core/utils/storage.js.map +1 -1
  17. package/dist/cjs/react/core/utils/wallet.js +2 -1
  18. package/dist/cjs/react/core/utils/wallet.js.map +1 -1
  19. package/dist/cjs/react/native/hooks/wallets/useLinkProfile.js +14 -4
  20. package/dist/cjs/react/native/hooks/wallets/useLinkProfile.js.map +1 -1
  21. package/dist/cjs/react/native/hooks/wallets/useProfiles.js +15 -6
  22. package/dist/cjs/react/native/hooks/wallets/useProfiles.js.map +1 -1
  23. package/dist/cjs/react/web/hooks/wallets/useLinkProfile.js +14 -4
  24. package/dist/cjs/react/web/hooks/wallets/useLinkProfile.js.map +1 -1
  25. package/dist/cjs/react/web/hooks/wallets/useProfiles.js +15 -6
  26. package/dist/cjs/react/web/hooks/wallets/useProfiles.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/locale/br.js +120 -0
  28. package/dist/cjs/react/web/ui/ConnectWallet/locale/br.js.map +1 -0
  29. package/dist/cjs/react/web/ui/ConnectWallet/locale/getConnectLocale.js +3 -0
  30. package/dist/cjs/react/web/ui/ConnectWallet/locale/getConnectLocale.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +6 -2
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
  33. package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js +6 -1
  34. package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
  35. package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js +1 -0
  36. package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js.map +1 -1
  37. package/dist/cjs/react/web/ui/prebuilt/Account/name.js +6 -1
  38. package/dist/cjs/react/web/ui/prebuilt/Account/name.js.map +1 -1
  39. package/dist/cjs/react/web/ui/prebuilt/Account/provider.js.map +1 -1
  40. package/dist/cjs/react/web/ui/prebuilt/Chain/icon.js +13 -1
  41. package/dist/cjs/react/web/ui/prebuilt/Chain/icon.js.map +1 -1
  42. package/dist/cjs/react/web/ui/prebuilt/Chain/name.js +30 -13
  43. package/dist/cjs/react/web/ui/prebuilt/Chain/name.js.map +1 -1
  44. package/dist/cjs/react/web/ui/prebuilt/NFT/description.js +2 -1
  45. package/dist/cjs/react/web/ui/prebuilt/NFT/description.js.map +1 -1
  46. package/dist/cjs/react/web/ui/prebuilt/NFT/media.js +3 -1
  47. package/dist/cjs/react/web/ui/prebuilt/NFT/media.js.map +1 -1
  48. package/dist/cjs/react/web/ui/prebuilt/NFT/name.js +3 -1
  49. package/dist/cjs/react/web/ui/prebuilt/NFT/name.js.map +1 -1
  50. package/dist/cjs/react/web/ui/prebuilt/NFT/provider.js +1 -0
  51. package/dist/cjs/react/web/ui/prebuilt/NFT/provider.js.map +1 -1
  52. package/dist/cjs/react/web/ui/prebuilt/Token/icon.js +14 -1
  53. package/dist/cjs/react/web/ui/prebuilt/Token/icon.js.map +1 -1
  54. package/dist/cjs/react/web/ui/prebuilt/Token/name.js +57 -26
  55. package/dist/cjs/react/web/ui/prebuilt/Token/name.js.map +1 -1
  56. package/dist/cjs/react/web/ui/prebuilt/Token/symbol.js +57 -26
  57. package/dist/cjs/react/web/ui/prebuilt/Token/symbol.js.map +1 -1
  58. package/dist/cjs/react/web/utils/storage.js +26 -0
  59. package/dist/cjs/react/web/utils/storage.js.map +1 -0
  60. package/dist/cjs/react/web/wallets/injected/locale/br.js +27 -0
  61. package/dist/cjs/react/web/wallets/injected/locale/br.js.map +1 -0
  62. package/dist/cjs/react/web/wallets/injected/locale/getInjectedWalletLocale.js +3 -0
  63. package/dist/cjs/react/web/wallets/injected/locale/getInjectedWalletLocale.js.map +1 -1
  64. package/dist/cjs/react/web/wallets/shared/locale/br.js +59 -0
  65. package/dist/cjs/react/web/wallets/shared/locale/br.js.map +1 -0
  66. package/dist/cjs/react/web/wallets/shared/locale/getConnectLocale.js +3 -0
  67. package/dist/cjs/react/web/wallets/shared/locale/getConnectLocale.js.map +1 -1
  68. package/dist/cjs/react/web/wallets/smartWallet/locale/br.js +13 -0
  69. package/dist/cjs/react/web/wallets/smartWallet/locale/br.js.map +1 -0
  70. package/dist/cjs/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js +3 -0
  71. package/dist/cjs/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js.map +1 -1
  72. package/dist/cjs/version.js +1 -1
  73. package/dist/cjs/version.js.map +1 -1
  74. package/dist/cjs/wallets/manager/index.js +3 -2
  75. package/dist/cjs/wallets/manager/index.js.map +1 -1
  76. package/dist/esm/contract/deployment/deploy-with-abi.js +1 -1
  77. package/dist/esm/contract/deployment/deploy-with-abi.js.map +1 -1
  78. package/dist/esm/exports/react.js +2 -0
  79. package/dist/esm/exports/react.js.map +1 -1
  80. package/dist/esm/extensions/prebuilts/deploy-published.js +25 -6
  81. package/dist/esm/extensions/prebuilts/deploy-published.js.map +1 -1
  82. package/dist/esm/extensions/prebuilts/process-ref-deployments.js +114 -0
  83. package/dist/esm/extensions/prebuilts/process-ref-deployments.js.map +1 -0
  84. package/dist/esm/extensions/thirdweb/write/publish.js +1 -0
  85. package/dist/esm/extensions/thirdweb/write/publish.js.map +1 -1
  86. package/dist/esm/react/core/hooks/wallets/useAddConnectedWallet.js +1 -1
  87. package/dist/esm/react/core/hooks/wallets/useAddConnectedWallet.js.map +1 -1
  88. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +1 -1
  89. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  90. package/dist/esm/react/core/utils/storage.js +1 -1
  91. package/dist/esm/react/core/utils/storage.js.map +1 -1
  92. package/dist/esm/react/core/utils/wallet.js +2 -1
  93. package/dist/esm/react/core/utils/wallet.js.map +1 -1
  94. package/dist/esm/react/native/hooks/wallets/useLinkProfile.js +15 -5
  95. package/dist/esm/react/native/hooks/wallets/useLinkProfile.js.map +1 -1
  96. package/dist/esm/react/native/hooks/wallets/useProfiles.js +15 -6
  97. package/dist/esm/react/native/hooks/wallets/useProfiles.js.map +1 -1
  98. package/dist/esm/react/web/hooks/wallets/useLinkProfile.js +15 -5
  99. package/dist/esm/react/web/hooks/wallets/useLinkProfile.js.map +1 -1
  100. package/dist/esm/react/web/hooks/wallets/useProfiles.js +15 -6
  101. package/dist/esm/react/web/hooks/wallets/useProfiles.js.map +1 -1
  102. package/dist/esm/react/web/ui/ConnectWallet/locale/br.js +118 -0
  103. package/dist/esm/react/web/ui/ConnectWallet/locale/br.js.map +1 -0
  104. package/dist/esm/react/web/ui/ConnectWallet/locale/getConnectLocale.js +3 -0
  105. package/dist/esm/react/web/ui/ConnectWallet/locale/getConnectLocale.js.map +1 -1
  106. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js +6 -2
  107. package/dist/esm/react/web/ui/ConnectWallet/screens/LinkProfileScreen.js.map +1 -1
  108. package/dist/esm/react/web/ui/prebuilt/Account/avatar.js +6 -1
  109. package/dist/esm/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
  110. package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js +1 -0
  111. package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js.map +1 -1
  112. package/dist/esm/react/web/ui/prebuilt/Account/name.js +6 -1
  113. package/dist/esm/react/web/ui/prebuilt/Account/name.js.map +1 -1
  114. package/dist/esm/react/web/ui/prebuilt/Account/provider.js.map +1 -1
  115. package/dist/esm/react/web/ui/prebuilt/Chain/icon.js +13 -1
  116. package/dist/esm/react/web/ui/prebuilt/Chain/icon.js.map +1 -1
  117. package/dist/esm/react/web/ui/prebuilt/Chain/name.js +29 -13
  118. package/dist/esm/react/web/ui/prebuilt/Chain/name.js.map +1 -1
  119. package/dist/esm/react/web/ui/prebuilt/NFT/description.js +2 -1
  120. package/dist/esm/react/web/ui/prebuilt/NFT/description.js.map +1 -1
  121. package/dist/esm/react/web/ui/prebuilt/NFT/media.js +3 -1
  122. package/dist/esm/react/web/ui/prebuilt/NFT/media.js.map +1 -1
  123. package/dist/esm/react/web/ui/prebuilt/NFT/name.js +3 -1
  124. package/dist/esm/react/web/ui/prebuilt/NFT/name.js.map +1 -1
  125. package/dist/esm/react/web/ui/prebuilt/NFT/provider.js +1 -0
  126. package/dist/esm/react/web/ui/prebuilt/NFT/provider.js.map +1 -1
  127. package/dist/esm/react/web/ui/prebuilt/Token/icon.js +14 -1
  128. package/dist/esm/react/web/ui/prebuilt/Token/icon.js.map +1 -1
  129. package/dist/esm/react/web/ui/prebuilt/Token/name.js +55 -26
  130. package/dist/esm/react/web/ui/prebuilt/Token/name.js.map +1 -1
  131. package/dist/esm/react/web/ui/prebuilt/Token/symbol.js +55 -26
  132. package/dist/esm/react/web/ui/prebuilt/Token/symbol.js.map +1 -1
  133. package/dist/esm/react/web/utils/storage.js +23 -0
  134. package/dist/esm/react/web/utils/storage.js.map +1 -0
  135. package/dist/esm/react/web/wallets/injected/locale/br.js +25 -0
  136. package/dist/esm/react/web/wallets/injected/locale/br.js.map +1 -0
  137. package/dist/esm/react/web/wallets/injected/locale/getInjectedWalletLocale.js +3 -0
  138. package/dist/esm/react/web/wallets/injected/locale/getInjectedWalletLocale.js.map +1 -1
  139. package/dist/esm/react/web/wallets/shared/locale/br.js +57 -0
  140. package/dist/esm/react/web/wallets/shared/locale/br.js.map +1 -0
  141. package/dist/esm/react/web/wallets/shared/locale/getConnectLocale.js +3 -0
  142. package/dist/esm/react/web/wallets/shared/locale/getConnectLocale.js.map +1 -1
  143. package/dist/esm/react/web/wallets/smartWallet/locale/br.js +11 -0
  144. package/dist/esm/react/web/wallets/smartWallet/locale/br.js.map +1 -0
  145. package/dist/esm/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js +3 -0
  146. package/dist/esm/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js.map +1 -1
  147. package/dist/esm/version.js +1 -1
  148. package/dist/esm/version.js.map +1 -1
  149. package/dist/esm/wallets/manager/index.js +3 -2
  150. package/dist/esm/wallets/manager/index.js.map +1 -1
  151. package/dist/types/exports/react.d.ts +1 -0
  152. package/dist/types/exports/react.d.ts.map +1 -1
  153. package/dist/types/extensions/prebuilts/deploy-published.d.ts.map +1 -1
  154. package/dist/types/extensions/prebuilts/process-ref-deployments.d.ts +17 -0
  155. package/dist/types/extensions/prebuilts/process-ref-deployments.d.ts.map +1 -0
  156. package/dist/types/extensions/thirdweb/write/publish.d.ts.map +1 -1
  157. package/dist/types/react/core/hooks/wallets/useAddConnectedWallet.d.ts +1 -1
  158. package/dist/types/react/core/hooks/wallets/useAddConnectedWallet.d.ts.map +1 -1
  159. package/dist/types/react/core/utils/storage.d.ts +1 -0
  160. package/dist/types/react/core/utils/storage.d.ts.map +1 -1
  161. package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
  162. package/dist/types/react/native/hooks/wallets/useLinkProfile.d.ts +1 -1
  163. package/dist/types/react/native/hooks/wallets/useLinkProfile.d.ts.map +1 -1
  164. package/dist/types/react/native/hooks/wallets/useProfiles.d.ts.map +1 -1
  165. package/dist/types/react/web/hooks/wallets/useLinkProfile.d.ts.map +1 -1
  166. package/dist/types/react/web/hooks/wallets/useProfiles.d.ts.map +1 -1
  167. package/dist/types/react/web/ui/ConnectWallet/MenuButton.d.ts.map +1 -1
  168. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  169. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts.map +1 -1
  170. package/dist/types/react/web/ui/ConnectWallet/locale/br.d.ts +4 -0
  171. package/dist/types/react/web/ui/ConnectWallet/locale/br.d.ts.map +1 -0
  172. package/dist/types/react/web/ui/ConnectWallet/locale/getConnectLocale.d.ts.map +1 -1
  173. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  174. package/dist/types/react/web/ui/ConnectWallet/screens/LinkProfileScreen.d.ts.map +1 -1
  175. package/dist/types/react/web/ui/components/Drawer.d.ts.map +1 -1
  176. package/dist/types/react/web/ui/components/FadeIn.d.ts.map +1 -1
  177. package/dist/types/react/web/ui/components/Modal.d.ts.map +1 -1
  178. package/dist/types/react/web/ui/components/Overlay.d.ts.map +1 -1
  179. package/dist/types/react/web/ui/components/basic.d.ts.map +1 -1
  180. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  181. package/dist/types/react/web/ui/components/formElements.d.ts.map +1 -1
  182. package/dist/types/react/web/ui/components/modalElements.d.ts.map +1 -1
  183. package/dist/types/react/web/ui/components/text.d.ts.map +1 -1
  184. package/dist/types/react/web/ui/design-system/animations.d.ts +18 -3
  185. package/dist/types/react/web/ui/design-system/animations.d.ts.map +1 -1
  186. package/dist/types/react/web/ui/design-system/elements.d.ts.map +1 -1
  187. package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts.map +1 -1
  188. package/dist/types/react/web/ui/prebuilt/Account/blobbie.d.ts.map +1 -1
  189. package/dist/types/react/web/ui/prebuilt/Account/name.d.ts +1 -1
  190. package/dist/types/react/web/ui/prebuilt/Account/name.d.ts.map +1 -1
  191. package/dist/types/react/web/ui/prebuilt/Account/provider.d.ts.map +1 -1
  192. package/dist/types/react/web/ui/prebuilt/Chain/icon.d.ts.map +1 -1
  193. package/dist/types/react/web/ui/prebuilt/Chain/name.d.ts +8 -0
  194. package/dist/types/react/web/ui/prebuilt/Chain/name.d.ts.map +1 -1
  195. package/dist/types/react/web/ui/prebuilt/NFT/description.d.ts.map +1 -1
  196. package/dist/types/react/web/ui/prebuilt/NFT/media.d.ts.map +1 -1
  197. package/dist/types/react/web/ui/prebuilt/NFT/name.d.ts.map +1 -1
  198. package/dist/types/react/web/ui/prebuilt/NFT/provider.d.ts.map +1 -1
  199. package/dist/types/react/web/ui/prebuilt/Token/icon.d.ts.map +1 -1
  200. package/dist/types/react/web/ui/prebuilt/Token/name.d.ts +21 -0
  201. package/dist/types/react/web/ui/prebuilt/Token/name.d.ts.map +1 -1
  202. package/dist/types/react/web/ui/prebuilt/Token/symbol.d.ts +21 -0
  203. package/dist/types/react/web/ui/prebuilt/Token/symbol.d.ts.map +1 -1
  204. package/dist/types/react/web/ui/types.d.ts +1 -1
  205. package/dist/types/react/web/ui/types.d.ts.map +1 -1
  206. package/dist/types/react/web/utils/storage.d.ts +19 -0
  207. package/dist/types/react/web/utils/storage.d.ts.map +1 -0
  208. package/dist/types/react/web/wallets/injected/locale/br.d.ts +7 -0
  209. package/dist/types/react/web/wallets/injected/locale/br.d.ts.map +1 -0
  210. package/dist/types/react/web/wallets/injected/locale/getInjectedWalletLocale.d.ts.map +1 -1
  211. package/dist/types/react/web/wallets/shared/locale/br.d.ts +58 -0
  212. package/dist/types/react/web/wallets/shared/locale/br.d.ts.map +1 -0
  213. package/dist/types/react/web/wallets/shared/locale/getConnectLocale.d.ts.map +1 -1
  214. package/dist/types/react/web/wallets/smartWallet/locale/br.d.ts +4 -0
  215. package/dist/types/react/web/wallets/smartWallet/locale/br.d.ts.map +1 -0
  216. package/dist/types/react/web/wallets/smartWallet/locale/getSmartWalletLocale.d.ts.map +1 -1
  217. package/dist/types/utils/any-evm/deploy-metadata.d.ts +19 -0
  218. package/dist/types/utils/any-evm/deploy-metadata.d.ts.map +1 -1
  219. package/dist/types/version.d.ts +1 -1
  220. package/dist/types/version.d.ts.map +1 -1
  221. package/dist/types/wallets/manager/index.d.ts.map +1 -1
  222. package/package.json +13 -13
  223. package/src/contract/deployment/deploy-with-abi.ts +1 -1
  224. package/src/exports/react.ts +3 -0
  225. package/src/extensions/prebuilts/deploy-published.ts +36 -6
  226. package/src/extensions/prebuilts/process-ref-deployments.test.ts +196 -0
  227. package/src/extensions/prebuilts/process-ref-deployments.ts +167 -0
  228. package/src/extensions/thirdweb/write/publish.ts +1 -0
  229. package/src/react/core/hooks/wallets/useAddConnectedWallet.ts +1 -1
  230. package/src/react/core/hooks/wallets/useAutoConnect.ts +1 -1
  231. package/src/react/core/utils/storage.ts +1 -1
  232. package/src/react/core/utils/wallet.test.ts +77 -0
  233. package/src/react/core/utils/wallet.ts +2 -1
  234. package/src/react/native/hooks/wallets/useLinkProfile.ts +17 -8
  235. package/src/react/native/hooks/wallets/useProfiles.ts +17 -8
  236. package/src/react/web/hooks/wallets/useLinkProfile.ts +16 -7
  237. package/src/react/web/hooks/wallets/useProfiles.ts +17 -8
  238. package/src/react/web/ui/ConnectWallet/locale/br.ts +124 -0
  239. package/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts +3 -0
  240. package/src/react/web/ui/ConnectWallet/screens/LinkProfileScreen.tsx +6 -2
  241. package/src/react/web/ui/prebuilt/Account/avatar.tsx +6 -1
  242. package/src/react/web/ui/prebuilt/Account/blobbie.tsx +2 -0
  243. package/src/react/web/ui/prebuilt/Account/name.tsx +7 -2
  244. package/src/react/web/ui/prebuilt/Account/provider.tsx +1 -0
  245. package/src/react/web/ui/prebuilt/Chain/icon.tsx +15 -1
  246. package/src/react/web/ui/prebuilt/Chain/name.test.tsx +36 -9
  247. package/src/react/web/ui/prebuilt/Chain/name.tsx +35 -13
  248. package/src/react/web/ui/prebuilt/NFT/description.tsx +2 -1
  249. package/src/react/web/ui/prebuilt/NFT/media.tsx +4 -1
  250. package/src/react/web/ui/prebuilt/NFT/name.tsx +4 -1
  251. package/src/react/web/ui/prebuilt/NFT/provider.tsx +2 -0
  252. package/src/react/web/ui/prebuilt/Token/icon.tsx +16 -1
  253. package/src/react/web/ui/prebuilt/Token/name.test.tsx +148 -0
  254. package/src/react/web/ui/prebuilt/Token/name.tsx +73 -29
  255. package/src/react/web/ui/prebuilt/Token/provider.test.tsx +11 -0
  256. package/src/react/web/ui/prebuilt/Token/symbol.test.tsx +138 -20
  257. package/src/react/web/ui/prebuilt/Token/symbol.tsx +73 -32
  258. package/src/react/web/ui/types.ts +2 -1
  259. package/src/react/web/utils/storage.test.ts +34 -0
  260. package/src/react/web/utils/storage.ts +23 -0
  261. package/src/react/web/wallets/injected/locale/br.ts +27 -0
  262. package/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts +3 -0
  263. package/src/react/web/wallets/shared/locale/br.ts +62 -0
  264. package/src/react/web/wallets/shared/locale/getConnectLocale.ts +3 -0
  265. package/src/react/web/wallets/smartWallet/locale/br.ts +13 -0
  266. package/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts +3 -0
  267. package/src/utils/any-evm/deploy-metadata.ts +29 -0
  268. package/src/version.ts +1 -1
  269. package/src/wallets/manager/index.ts +6 -2
@@ -3,11 +3,14 @@
3
3
  import { type UseQueryOptions, useQuery } from "@tanstack/react-query";
4
4
  import type React from "react";
5
5
  import type { JSX } from "react";
6
+ import type { Chain } from "../../../../../chains/types.js";
6
7
  import { getChainMetadata } from "../../../../../chains/utils.js";
8
+ import type { ThirdwebClient } from "../../../../../client/client.js";
7
9
  import { NATIVE_TOKEN_ADDRESS } from "../../../../../constants/addresses.js";
8
10
  import { getContract } from "../../../../../contract/contract.js";
9
11
  import { getContractMetadata } from "../../../../../extensions/common/read/getContractMetadata.js";
10
12
  import { symbol } from "../../../../../extensions/common/read/symbol.js";
13
+ import { getFunctionId } from "../../../../../utils/function-id.js";
11
14
  import { useTokenContext } from "./provider.js";
12
15
 
13
16
  /**
@@ -154,36 +157,9 @@ export function TokenSymbol({
154
157
  }: TokenSymbolProps) {
155
158
  const { address, client, chain } = useTokenContext();
156
159
  const symbolQuery = useQuery({
157
- queryKey: ["_internal_token_symbol_", chain.id, address] as const,
158
- queryFn: async () => {
159
- if (typeof symbolResolver === "string") {
160
- return symbolResolver;
161
- }
162
- if (typeof symbolResolver === "function") {
163
- return symbolResolver();
164
- }
165
- if (address.toLowerCase() === NATIVE_TOKEN_ADDRESS.toLowerCase()) {
166
- // Don't wanna use `getChainSymbol` because it has some side effect (it catches error and defaults to "ETH")
167
- return getChainMetadata(chain).then(
168
- (data) => data.nativeCurrency.symbol,
169
- );
170
- }
171
-
172
- // Try to fetch the symbol from both the `symbol` function and the contract metadata
173
- // then prioritize the `symbol()`
174
- const contract = getContract({ address, client, chain });
175
- const [_symbol, contractMetadata] = await Promise.all([
176
- symbol({ contract }),
177
- getContractMetadata({ contract }),
178
- ]);
179
- if (!_symbol && !contractMetadata.symbol) {
180
- throw new Error(
181
- "Failed to resolve symbol from both symbol() and contract metadata",
182
- );
183
- }
184
-
185
- return _symbol || contractMetadata.symbol;
186
- },
160
+ queryKey: getQueryKeys({ chainId: chain.id, address, symbolResolver }),
161
+ queryFn: async () =>
162
+ fetchTokenSymbol({ symbolResolver, address, chain, client }),
187
163
  ...queryOptions,
188
164
  });
189
165
 
@@ -195,7 +171,72 @@ export function TokenSymbol({
195
171
  return fallbackComponent || null;
196
172
  }
197
173
 
198
- const displayValue = formatFn ? formatFn(symbolQuery.data) : symbolQuery.data;
174
+ if (formatFn && typeof formatFn === "function") {
175
+ return <span {...restProps}>{formatFn(symbolQuery.data)}</span>;
176
+ }
177
+
178
+ return <span {...restProps}>{symbolQuery.data}</span>;
179
+ }
199
180
 
200
- return <span {...restProps}>{displayValue}</span>;
181
+ /**
182
+ * @internal Exported for tests only
183
+ */
184
+ export async function fetchTokenSymbol(props: {
185
+ address: string;
186
+ client: ThirdwebClient;
187
+ chain: Chain;
188
+ symbolResolver?: string | (() => string) | (() => Promise<string>);
189
+ }): Promise<string> {
190
+ const { symbolResolver, address, client, chain } = props;
191
+ if (typeof symbolResolver === "string") {
192
+ return symbolResolver;
193
+ }
194
+ if (typeof symbolResolver === "function") {
195
+ return symbolResolver();
196
+ }
197
+ if (address.toLowerCase() === NATIVE_TOKEN_ADDRESS.toLowerCase()) {
198
+ // Don't wanna use `getChainSymbol` because it has some side effect (it catches error and defaults to "ETH")
199
+ return getChainMetadata(chain).then((data) => data.nativeCurrency.symbol);
200
+ }
201
+
202
+ // Try to fetch the symbol from both the `symbol` function and the contract metadata
203
+ // then prioritize its result
204
+ const contract = getContract({ address, client, chain });
205
+ const [_symbol, contractMetadata] = await Promise.all([
206
+ symbol({ contract }).catch(() => undefined),
207
+ getContractMetadata({ contract }).catch(() => undefined),
208
+ ]);
209
+ if (typeof _symbol === "string") {
210
+ return _symbol;
211
+ }
212
+ if (typeof contractMetadata?.symbol === "string") {
213
+ return contractMetadata.symbol;
214
+ }
215
+ throw new Error(
216
+ "Failed to resolve symbol from both symbol() and contract metadata",
217
+ );
218
+ }
219
+
220
+ /**
221
+ * @internal
222
+ */
223
+ export function getQueryKeys(props: {
224
+ chainId: number;
225
+ address: string;
226
+ symbolResolver?: string | (() => string) | (() => Promise<string>);
227
+ }) {
228
+ const { chainId, address, symbolResolver } = props;
229
+ return [
230
+ "_internal_token_symbol_",
231
+ chainId,
232
+ address,
233
+ {
234
+ resolver:
235
+ typeof symbolResolver === "string"
236
+ ? symbolResolver
237
+ : typeof symbolResolver === "function"
238
+ ? getFunctionId(symbolResolver)
239
+ : undefined,
240
+ },
241
+ ] as const;
201
242
  }
@@ -7,4 +7,5 @@ export type LocaleId =
7
7
  | "tl_PH"
8
8
  | "vi_VN"
9
9
  | "de_DE"
10
- | "fr_FR";
10
+ | "fr_FR"
11
+ | "pt_BR";
@@ -0,0 +1,34 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ import { webLocalStorage } from "../../../utils/storage/webStorage.js";
3
+ import { LAST_AUTH_PROVIDER_STORAGE_KEY } from "../../core/utils/storage.js";
4
+ import { getLastAuthProvider } from "./storage.js";
5
+
6
+ vi.mock("../../../utils/storage/webStorage.js", () => ({
7
+ webLocalStorage: {
8
+ getItem: vi.fn().mockResolvedValueOnce("mockStrategy"),
9
+ },
10
+ }));
11
+
12
+ describe("getLastAuthProvider", () => {
13
+ it("should return the last authentication provider strategy if it exists", async () => {
14
+ const mockStrategy = "mockStrategy";
15
+ webLocalStorage.getItem = vi.fn().mockResolvedValueOnce(mockStrategy);
16
+
17
+ const result = await getLastAuthProvider();
18
+ expect(result).toBe(mockStrategy);
19
+ });
20
+
21
+ it("should return null if no authentication provider strategy is found", async () => {
22
+ webLocalStorage.getItem = vi.fn().mockResolvedValueOnce(null);
23
+
24
+ const result = await getLastAuthProvider();
25
+ expect(result).toBeNull();
26
+ });
27
+
28
+ it("should call webLocalStorage.getItem with the correct key", async () => {
29
+ await getLastAuthProvider();
30
+ expect(webLocalStorage.getItem).toHaveBeenCalledWith(
31
+ LAST_AUTH_PROVIDER_STORAGE_KEY,
32
+ );
33
+ });
34
+ });
@@ -0,0 +1,23 @@
1
+ import { webLocalStorage } from "../../../utils/storage/webStorage.js";
2
+ import { getLastAuthProvider as getLastAuthProviderCore } from "../../core/utils/storage.js";
3
+
4
+ /**
5
+ * Retrieves the last authentication provider used from local storage.
6
+ *
7
+ * This function is designed to work only in a browser environment.
8
+ *
9
+ * @returns {Promise<AuthArgsType["strategy"] | null>} A promise that resolves to the last
10
+ * authentication provider strategy used, or `null` if none is found.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { getLastAuthProvider } from "thirdweb/react";
15
+ *
16
+ * const lastAuthProvider = await getLastAuthProvider();
17
+ * ```
18
+ *
19
+ * @utils
20
+ */
21
+ export async function getLastAuthProvider() {
22
+ return getLastAuthProviderCore(webLocalStorage);
23
+ }
@@ -0,0 +1,27 @@
1
+ import type { InjectedWalletLocale } from "./types.js";
2
+
3
+ /**
4
+ * @internal
5
+ */
6
+ const injectedWalletLocalePtBr = (wallet: string): InjectedWalletLocale => ({
7
+ connectionScreen: {
8
+ inProgress: "Aguardando Confirmação",
9
+ failed: "Falha na conexão",
10
+ instruction: `Aceite a solicitação de conexão no ${wallet}`,
11
+ retry: "Tentar novamente",
12
+ },
13
+ getStartedScreen: {
14
+ instruction: `Escaneie o código QR para baixar o aplicativo ${wallet}`,
15
+ },
16
+ scanScreen: {
17
+ instruction: `Escaneie o código QR com o aplicativo ${wallet} para conectar`,
18
+ },
19
+ getStartedLink: `Não tem o ${wallet}?`,
20
+ download: {
21
+ chrome: "Baixar extensão para Chrome",
22
+ android: "Baixar no Google Play",
23
+ iOS: "Baixar na App Store",
24
+ },
25
+ });
26
+
27
+ export default injectedWalletLocalePtBr;
@@ -22,6 +22,9 @@ export async function getInjectedWalletLocale(
22
22
  return (await import("./kr.js")).default;
23
23
  case "fr_FR":
24
24
  return (await import("./fr.js")).default;
25
+ case "pt_BR": {
26
+ return (await import("./br.js")).default;
27
+ }
25
28
  default:
26
29
  return (await import("./en.js")).default;
27
30
  }
@@ -0,0 +1,62 @@
1
+ import type { InAppWalletLocale } from "./types.js";
2
+
3
+ export default {
4
+ signInWithGoogle: "Google",
5
+ signInWithFacebook: "Facebook",
6
+ signInWithApple: "Apple",
7
+ signInWithDiscord: "Discord",
8
+ emailPlaceholder: "Endereço de e-mail",
9
+ submitEmail: "Continuar",
10
+ signIn: "Entrar",
11
+ or: "ou",
12
+ emailRequired: "Endereço de e-mail é obrigatório",
13
+ invalidEmail: "Endereço de e-mail inválido",
14
+ maxAccountsExceeded:
15
+ "Número máximo de contas excedido. Por favor, notifique o desenvolvedor do aplicativo.",
16
+ socialLoginScreen: {
17
+ title: "Entrar",
18
+ instruction: "Faça login na sua conta no pop-up",
19
+ failed: "Falha ao entrar",
20
+ retry: "Tentar novamente",
21
+ },
22
+ emailLoginScreen: {
23
+ title: "Entrar",
24
+ enterCodeSendTo: "Digite o código de verificação enviado para",
25
+ newDeviceDetected: "Novo dispositivo detectado",
26
+ enterRecoveryCode:
27
+ "Digite o código de recuperação enviado por e-mail quando você se cadastrou",
28
+ invalidCode: "Código de verificação inválido",
29
+ invalidCodeOrRecoveryCode:
30
+ "Código de verificação ou código de recuperação inválido",
31
+ verify: "Verificar",
32
+ failedToSendCode: "Falha ao enviar código de verificação",
33
+ sendingCode: "Enviando código de verificação",
34
+ resendCode: "Reenviar código de verificação",
35
+ },
36
+ createPassword: {
37
+ title: "Criar senha",
38
+ instruction:
39
+ "Defina uma senha para sua conta. Você precisará dessa senha ao conectar-se de um novo dispositivo.",
40
+ saveInstruction: "Certifique-se de salvá-la",
41
+ inputPlaceholder: "Digite sua senha",
42
+ confirmation: "Eu salvei minha senha",
43
+ submitButton: "Definir senha",
44
+ failedToSetPassword: "Falha ao definir senha",
45
+ },
46
+ enterPassword: {
47
+ title: "Digite a senha",
48
+ instruction: "Digite a senha da sua conta",
49
+ inputPlaceholder: "Digite sua senha",
50
+ submitButton: "Verificar",
51
+ wrongPassword: "Senha incorreta",
52
+ },
53
+ signInWithEmail: "Entrar com e-mail",
54
+ invalidPhone: "Número de telefone inválido",
55
+ phonePlaceholder: "Número de telefone",
56
+ signInWithPhone: "Entrar com número de telefone",
57
+ phoneRequired: "Número de telefone é obrigatório",
58
+ passkey: "Chave de acesso",
59
+ signInWithWallet: "Entrar com carteira",
60
+ linkWallet: "Vincular uma carteira",
61
+ loginAsGuest: "Continuar como convidado",
62
+ } satisfies InAppWalletLocale;
@@ -22,6 +22,9 @@ export async function getInAppWalletLocale(
22
22
  return (await import("./kr.js")).default;
23
23
  case "fr_FR":
24
24
  return (await import("./fr.js")).default;
25
+ case "pt_BR": {
26
+ return (await import("./br.js")).default;
27
+ }
25
28
  default:
26
29
  return (await import("./en.js")).default;
27
30
  }
@@ -0,0 +1,13 @@
1
+ import type { SmartWalletLocale } from "./types.js";
2
+
3
+ const smartWalletLocalePtBr: SmartWalletLocale = {
4
+ connecting: "Conectando à Conta Inteligente",
5
+ failedToConnect: "Falha ao conectar à Conta Inteligente",
6
+ wrongNetworkScreen: {
7
+ title: "Rede Incorreta",
8
+ subtitle: "Sua carteira não está conectada à rede requerida",
9
+ failedToSwitch: "Falha ao mudar de rede",
10
+ },
11
+ };
12
+
13
+ export default smartWalletLocalePtBr;
@@ -22,6 +22,9 @@ export async function getSmartWalletLocale(
22
22
  return (await import("./kr.js")).default;
23
23
  case "fr_FR":
24
24
  return (await import("./fr.js")).default;
25
+ case "pt_BR": {
26
+ return (await import("./br.js")).default;
27
+ }
25
28
  default:
26
29
  return (await import("./en.js")).default;
27
30
  }
@@ -159,6 +159,27 @@ type ParsedCompilerMetadata = {
159
159
  zk_version?: string;
160
160
  };
161
161
 
162
+ export type DynamicParams = {
163
+ type: "address" | "address[]" | "bytes" | "bytes[]";
164
+
165
+ // use for address types
166
+ refContracts?: Array<{
167
+ contractId: string;
168
+ publisherAddress: string;
169
+ version: string;
170
+ salt?: string;
171
+ }>;
172
+
173
+ // use for bytes
174
+ paramsToEncode?: Array<
175
+ Array<{
176
+ type: string;
177
+ defaultValue?: string;
178
+ dynamicValue?: DynamicParams; // can have address type which may need ref
179
+ }>
180
+ >;
181
+ };
182
+
162
183
  export type CompilerMetadata = Prettify<
163
184
  RawCompilerMetadata & ParsedCompilerMetadata
164
185
  >;
@@ -220,6 +241,14 @@ export type ExtendedMetadata = {
220
241
  description?: string;
221
242
  defaultValue?: string;
222
243
  hidden?: boolean;
244
+ dynamicValue?: DynamicParams;
245
+ }
246
+ >;
247
+ implConstructorParams?: Record<
248
+ string,
249
+ {
250
+ defaultValue?: string;
251
+ dynamicValue?: DynamicParams;
223
252
  }
224
253
  >;
225
254
  compositeAbi?: Abi;
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = "5.76.0";
1
+ export const version = "5.77.0-nightly-a0fabb205916a7b06938fafbea5d80d9506d342e-20241212000351";
@@ -230,11 +230,15 @@ export function createConnectionManager(storage: AsyncStorage) {
230
230
 
231
231
  // save last connected wallet ids to storage
232
232
  effect(
233
- () => {
233
+ async () => {
234
+ const prevAccounts = (await getStoredConnectedWalletIds(storage)) || [];
234
235
  const accounts = connectedWallets.getValue();
235
236
  const ids = accounts.map((acc) => acc?.id).filter((c) => !!c) as string[];
236
237
 
237
- storage.setItem(CONNECTED_WALLET_IDS, stringify(ids));
238
+ storage.setItem(
239
+ CONNECTED_WALLET_IDS,
240
+ stringify(Array.from(new Set([...prevAccounts, ...ids]))),
241
+ );
238
242
  },
239
243
  [connectedWallets],
240
244
  false,