thirdweb 5.34.4-nightly-88fa60d4ad7ee6ce0a8305ce35e023d1a858ea85-20240716000333 → 5.35.0-nightly-39b329a56e9eb031e1799524d827fdf69a92c854-20240717000718

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 (262) hide show
  1. package/dist/cjs/exports/extensions/airdrop.js +7 -1
  2. package/dist/cjs/exports/extensions/airdrop.js.map +1 -1
  3. package/dist/cjs/exports/thirdweb.js +3 -1
  4. package/dist/cjs/exports/thirdweb.js.map +1 -1
  5. package/dist/cjs/extensions/airdrop/write/claimERC20.js +1 -1
  6. package/dist/cjs/extensions/airdrop/write/claimERC20.js.map +1 -1
  7. package/dist/cjs/pay/buyWithFiat/getPostOnRampQuote.js +2 -5
  8. package/dist/cjs/pay/buyWithFiat/getPostOnRampQuote.js.map +1 -1
  9. package/dist/cjs/pay/buyWithFiat/getStatus.js.map +1 -1
  10. package/dist/cjs/react/core/hooks/others/useWalletBalance.js.map +1 -1
  11. package/dist/cjs/react/core/utils/wallet.js +8 -0
  12. package/dist/cjs/react/core/utils/wallet.js.map +1 -1
  13. package/dist/cjs/react/native/ui/connect/ConnectButton.js +13 -2
  14. package/dist/cjs/react/native/ui/connect/ConnectButton.js.map +1 -1
  15. package/dist/cjs/react/native/ui/connect/ConnectModal.js +69 -14
  16. package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -1
  17. package/dist/cjs/react/native/ui/connect/ConnectedModal.js +3 -0
  18. package/dist/cjs/react/native/ui/connect/ConnectedModal.js.map +1 -1
  19. package/dist/cjs/react/native/ui/connect/WalletLoadingThumbnail.js +5 -3
  20. package/dist/cjs/react/native/ui/connect/WalletLoadingThumbnail.js.map +1 -1
  21. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +8 -6
  22. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js +11 -0
  24. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/locale/es.js +11 -0
  26. package/dist/cjs/react/web/ui/ConnectWallet/locale/es.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/locale/getConnectLocale.js +3 -0
  28. package/dist/cjs/react/web/ui/ConnectWallet/locale/getConnectLocale.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/locale/ja.js +11 -0
  30. package/dist/cjs/react/web/ui/ConnectWallet/locale/ja.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/locale/tl.js +11 -0
  32. package/dist/cjs/react/web/ui/ConnectWallet/locale/tl.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/locale/vi.js +112 -0
  34. package/dist/cjs/react/web/ui/ConnectWallet/locale/vi.js.map +1 -0
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +8 -10
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  37. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +1 -1
  38. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -6
  40. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  41. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js +1 -1
  42. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js.map +1 -1
  43. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +3 -3
  44. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  45. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewFunds.js +4 -3
  46. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewFunds.js.map +1 -1
  47. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewNFTs.js +2 -1
  48. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewNFTs.js.map +1 -1
  49. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewTokens.js +2 -1
  50. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewTokens.js.map +1 -1
  51. package/dist/cjs/react/web/wallets/injected/locale/getInjectedWalletLocale.js +2 -0
  52. package/dist/cjs/react/web/wallets/injected/locale/getInjectedWalletLocale.js.map +1 -1
  53. package/dist/cjs/react/web/wallets/injected/locale/vi.js +27 -0
  54. package/dist/cjs/react/web/wallets/injected/locale/vi.js.map +1 -0
  55. package/dist/cjs/react/web/wallets/local/locale/getLocalWalletLocale.js +2 -0
  56. package/dist/cjs/react/web/wallets/local/locale/getLocalWalletLocale.js.map +1 -1
  57. package/dist/cjs/react/web/wallets/local/locale/vi.js +44 -0
  58. package/dist/cjs/react/web/wallets/local/locale/vi.js.map +1 -0
  59. package/dist/cjs/react/web/wallets/shared/locale/getConnectLocale.js +2 -0
  60. package/dist/cjs/react/web/wallets/shared/locale/getConnectLocale.js.map +1 -1
  61. package/dist/cjs/react/web/wallets/shared/locale/vi.js +54 -0
  62. package/dist/cjs/react/web/wallets/shared/locale/vi.js.map +1 -0
  63. package/dist/cjs/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js +2 -0
  64. package/dist/cjs/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js.map +1 -1
  65. package/dist/cjs/react/web/wallets/smartWallet/locale/vi.js +13 -0
  66. package/dist/cjs/react/web/wallets/smartWallet/locale/vi.js.map +1 -0
  67. package/dist/cjs/react/web/wallets/walletConnect/locale.js +4 -0
  68. package/dist/cjs/react/web/wallets/walletConnect/locale.js.map +1 -1
  69. package/dist/cjs/transaction/extract-error.js +12 -13
  70. package/dist/cjs/transaction/extract-error.js.map +1 -1
  71. package/dist/cjs/utils/extensions/airdrop/fetch-proofs-erc1155.js +34 -0
  72. package/dist/cjs/utils/extensions/airdrop/fetch-proofs-erc1155.js.map +1 -1
  73. package/dist/cjs/utils/extensions/airdrop/fetch-proofs-erc20.js +36 -2
  74. package/dist/cjs/utils/extensions/airdrop/fetch-proofs-erc20.js.map +1 -1
  75. package/dist/cjs/utils/extensions/airdrop/fetch-proofs-erc721.js +34 -0
  76. package/dist/cjs/utils/extensions/airdrop/fetch-proofs-erc721.js.map +1 -1
  77. package/dist/cjs/version.js +1 -1
  78. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js +12 -8
  79. package/dist/cjs/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  80. package/dist/esm/exports/extensions/airdrop.js +3 -0
  81. package/dist/esm/exports/extensions/airdrop.js.map +1 -1
  82. package/dist/esm/exports/thirdweb.js +1 -0
  83. package/dist/esm/exports/thirdweb.js.map +1 -1
  84. package/dist/esm/extensions/airdrop/write/claimERC20.js +2 -2
  85. package/dist/esm/extensions/airdrop/write/claimERC20.js.map +1 -1
  86. package/dist/esm/pay/buyWithFiat/getPostOnRampQuote.js +2 -5
  87. package/dist/esm/pay/buyWithFiat/getPostOnRampQuote.js.map +1 -1
  88. package/dist/esm/pay/buyWithFiat/getStatus.js.map +1 -1
  89. package/dist/esm/react/core/hooks/others/useWalletBalance.js.map +1 -1
  90. package/dist/esm/react/core/utils/wallet.js +8 -0
  91. package/dist/esm/react/core/utils/wallet.js.map +1 -1
  92. package/dist/esm/react/native/ui/connect/ConnectButton.js +13 -2
  93. package/dist/esm/react/native/ui/connect/ConnectButton.js.map +1 -1
  94. package/dist/esm/react/native/ui/connect/ConnectModal.js +70 -15
  95. package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -1
  96. package/dist/esm/react/native/ui/connect/ConnectedModal.js +3 -0
  97. package/dist/esm/react/native/ui/connect/ConnectedModal.js.map +1 -1
  98. package/dist/esm/react/native/ui/connect/WalletLoadingThumbnail.js +5 -3
  99. package/dist/esm/react/native/ui/connect/WalletLoadingThumbnail.js.map +1 -1
  100. package/dist/esm/react/web/ui/ConnectWallet/Details.js +8 -6
  101. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  102. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js +11 -0
  103. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  104. package/dist/esm/react/web/ui/ConnectWallet/locale/es.js +11 -0
  105. package/dist/esm/react/web/ui/ConnectWallet/locale/es.js.map +1 -1
  106. package/dist/esm/react/web/ui/ConnectWallet/locale/getConnectLocale.js +3 -0
  107. package/dist/esm/react/web/ui/ConnectWallet/locale/getConnectLocale.js.map +1 -1
  108. package/dist/esm/react/web/ui/ConnectWallet/locale/ja.js +11 -0
  109. package/dist/esm/react/web/ui/ConnectWallet/locale/ja.js.map +1 -1
  110. package/dist/esm/react/web/ui/ConnectWallet/locale/tl.js +11 -0
  111. package/dist/esm/react/web/ui/ConnectWallet/locale/tl.js.map +1 -1
  112. package/dist/esm/react/web/ui/ConnectWallet/locale/vi.js +110 -0
  113. package/dist/esm/react/web/ui/ConnectWallet/locale/vi.js.map +1 -0
  114. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +8 -10
  115. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  116. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +1 -1
  117. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
  118. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +1 -6
  119. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  120. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js +1 -1
  121. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js.map +1 -1
  122. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +3 -3
  123. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  124. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewFunds.js +4 -3
  125. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewFunds.js.map +1 -1
  126. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewNFTs.js +2 -1
  127. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewNFTs.js.map +1 -1
  128. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewTokens.js +2 -1
  129. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewTokens.js.map +1 -1
  130. package/dist/esm/react/web/wallets/injected/locale/getInjectedWalletLocale.js +2 -0
  131. package/dist/esm/react/web/wallets/injected/locale/getInjectedWalletLocale.js.map +1 -1
  132. package/dist/esm/react/web/wallets/injected/locale/vi.js +25 -0
  133. package/dist/esm/react/web/wallets/injected/locale/vi.js.map +1 -0
  134. package/dist/esm/react/web/wallets/local/locale/getLocalWalletLocale.js +2 -0
  135. package/dist/esm/react/web/wallets/local/locale/getLocalWalletLocale.js.map +1 -1
  136. package/dist/esm/react/web/wallets/local/locale/vi.js +42 -0
  137. package/dist/esm/react/web/wallets/local/locale/vi.js.map +1 -0
  138. package/dist/esm/react/web/wallets/shared/locale/getConnectLocale.js +2 -0
  139. package/dist/esm/react/web/wallets/shared/locale/getConnectLocale.js.map +1 -1
  140. package/dist/esm/react/web/wallets/shared/locale/vi.js +52 -0
  141. package/dist/esm/react/web/wallets/shared/locale/vi.js.map +1 -0
  142. package/dist/esm/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js +2 -0
  143. package/dist/esm/react/web/wallets/smartWallet/locale/getSmartWalletLocale.js.map +1 -1
  144. package/dist/esm/react/web/wallets/smartWallet/locale/vi.js +11 -0
  145. package/dist/esm/react/web/wallets/smartWallet/locale/vi.js.map +1 -0
  146. package/dist/esm/react/web/wallets/walletConnect/locale.js +4 -0
  147. package/dist/esm/react/web/wallets/walletConnect/locale.js.map +1 -1
  148. package/dist/esm/transaction/extract-error.js +12 -13
  149. package/dist/esm/transaction/extract-error.js.map +1 -1
  150. package/dist/esm/utils/extensions/airdrop/fetch-proofs-erc1155.js +34 -0
  151. package/dist/esm/utils/extensions/airdrop/fetch-proofs-erc1155.js.map +1 -1
  152. package/dist/esm/utils/extensions/airdrop/fetch-proofs-erc20.js +35 -1
  153. package/dist/esm/utils/extensions/airdrop/fetch-proofs-erc20.js.map +1 -1
  154. package/dist/esm/utils/extensions/airdrop/fetch-proofs-erc721.js +34 -0
  155. package/dist/esm/utils/extensions/airdrop/fetch-proofs-erc721.js.map +1 -1
  156. package/dist/esm/version.js +1 -1
  157. package/dist/esm/wallets/in-app/web/lib/in-app-account.js +12 -8
  158. package/dist/esm/wallets/in-app/web/lib/in-app-account.js.map +1 -1
  159. package/dist/types/exports/extensions/airdrop.d.ts +3 -0
  160. package/dist/types/exports/extensions/airdrop.d.ts.map +1 -1
  161. package/dist/types/exports/thirdweb.d.ts +1 -0
  162. package/dist/types/exports/thirdweb.d.ts.map +1 -1
  163. package/dist/types/pay/buyWithFiat/getPostOnRampQuote.d.ts.map +1 -1
  164. package/dist/types/pay/buyWithFiat/getStatus.d.ts +8 -1
  165. package/dist/types/pay/buyWithFiat/getStatus.d.ts.map +1 -1
  166. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +6 -0
  167. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  168. package/dist/types/react/core/hooks/others/useWalletBalance.d.ts +7 -1
  169. package/dist/types/react/core/hooks/others/useWalletBalance.d.ts.map +1 -1
  170. package/dist/types/react/core/utils/wallet.d.ts +2 -2
  171. package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
  172. package/dist/types/react/native/ui/connect/ConnectButton.d.ts.map +1 -1
  173. package/dist/types/react/native/ui/connect/ConnectModal.d.ts +4 -0
  174. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
  175. package/dist/types/react/native/ui/connect/ConnectedModal.d.ts.map +1 -1
  176. package/dist/types/react/native/ui/connect/WalletLoadingThumbnail.d.ts +2 -1
  177. package/dist/types/react/native/ui/connect/WalletLoadingThumbnail.d.ts.map +1 -1
  178. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  179. package/dist/types/react/web/ui/ConnectWallet/locale/en.d.ts.map +1 -1
  180. package/dist/types/react/web/ui/ConnectWallet/locale/es.d.ts.map +1 -1
  181. package/dist/types/react/web/ui/ConnectWallet/locale/getConnectLocale.d.ts.map +1 -1
  182. package/dist/types/react/web/ui/ConnectWallet/locale/ja.d.ts.map +1 -1
  183. package/dist/types/react/web/ui/ConnectWallet/locale/tl.d.ts.map +1 -1
  184. package/dist/types/react/web/ui/ConnectWallet/locale/types.d.ts +11 -0
  185. package/dist/types/react/web/ui/ConnectWallet/locale/types.d.ts.map +1 -1
  186. package/dist/types/react/web/ui/ConnectWallet/locale/vi.d.ts +4 -0
  187. package/dist/types/react/web/ui/ConnectWallet/locale/vi.d.ts.map +1 -0
  188. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts +0 -2
  189. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts.map +1 -1
  190. package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -1
  191. package/dist/types/react/web/ui/ConnectWallet/screens/ViewFunds.d.ts +2 -0
  192. package/dist/types/react/web/ui/ConnectWallet/screens/ViewFunds.d.ts.map +1 -1
  193. package/dist/types/react/web/ui/ConnectWallet/screens/ViewNFTs.d.ts +2 -0
  194. package/dist/types/react/web/ui/ConnectWallet/screens/ViewNFTs.d.ts.map +1 -1
  195. package/dist/types/react/web/ui/ConnectWallet/screens/ViewTokens.d.ts +2 -0
  196. package/dist/types/react/web/ui/ConnectWallet/screens/ViewTokens.d.ts.map +1 -1
  197. package/dist/types/react/web/ui/types.d.ts +1 -1
  198. package/dist/types/react/web/ui/types.d.ts.map +1 -1
  199. package/dist/types/react/web/wallets/injected/locale/getInjectedWalletLocale.d.ts.map +1 -1
  200. package/dist/types/react/web/wallets/injected/locale/vi.d.ts +7 -0
  201. package/dist/types/react/web/wallets/injected/locale/vi.d.ts.map +1 -0
  202. package/dist/types/react/web/wallets/local/locale/getLocalWalletLocale.d.ts.map +1 -1
  203. package/dist/types/react/web/wallets/local/locale/vi.d.ts +4 -0
  204. package/dist/types/react/web/wallets/local/locale/vi.d.ts.map +1 -0
  205. package/dist/types/react/web/wallets/shared/locale/getConnectLocale.d.ts.map +1 -1
  206. package/dist/types/react/web/wallets/shared/locale/vi.d.ts +53 -0
  207. package/dist/types/react/web/wallets/shared/locale/vi.d.ts.map +1 -0
  208. package/dist/types/react/web/wallets/smartWallet/locale/getSmartWalletLocale.d.ts.map +1 -1
  209. package/dist/types/react/web/wallets/smartWallet/locale/vi.d.ts +4 -0
  210. package/dist/types/react/web/wallets/smartWallet/locale/vi.d.ts.map +1 -0
  211. package/dist/types/react/web/wallets/walletConnect/locale.d.ts.map +1 -1
  212. package/dist/types/utils/extensions/airdrop/fetch-proofs-erc1155.d.ts.map +1 -1
  213. package/dist/types/utils/extensions/airdrop/fetch-proofs-erc20.d.ts +1 -1
  214. package/dist/types/utils/extensions/airdrop/fetch-proofs-erc20.d.ts.map +1 -1
  215. package/dist/types/utils/extensions/airdrop/fetch-proofs-erc721.d.ts.map +1 -1
  216. package/dist/types/version.d.ts +1 -1
  217. package/dist/types/wallets/in-app/web/lib/in-app-account.d.ts.map +1 -1
  218. package/package.json +1 -1
  219. package/src/exports/extensions/airdrop.ts +3 -0
  220. package/src/exports/thirdweb.ts +5 -0
  221. package/src/extensions/airdrop/write/claimERC20.ts +2 -2
  222. package/src/pay/buyWithFiat/getPostOnRampQuote.ts +2 -5
  223. package/src/pay/buyWithFiat/getStatus.ts +8 -1
  224. package/src/react/core/hooks/connection/ConnectButtonProps.ts +7 -0
  225. package/src/react/core/hooks/others/useWalletBalance.ts +9 -1
  226. package/src/react/core/utils/wallet.ts +10 -2
  227. package/src/react/native/ui/connect/ConnectButton.tsx +16 -4
  228. package/src/react/native/ui/connect/ConnectModal.tsx +181 -19
  229. package/src/react/native/ui/connect/ConnectedModal.tsx +3 -0
  230. package/src/react/native/ui/connect/WalletLoadingThumbnail.tsx +18 -13
  231. package/src/react/web/ui/ConnectWallet/Details.tsx +8 -2
  232. package/src/react/web/ui/ConnectWallet/locale/en.ts +11 -0
  233. package/src/react/web/ui/ConnectWallet/locale/es.ts +11 -0
  234. package/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts +3 -0
  235. package/src/react/web/ui/ConnectWallet/locale/ja.ts +11 -0
  236. package/src/react/web/ui/ConnectWallet/locale/tl.ts +11 -0
  237. package/src/react/web/ui/ConnectWallet/locale/types.ts +11 -0
  238. package/src/react/web/ui/ConnectWallet/locale/vi.ts +114 -0
  239. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +15 -17
  240. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.tsx +0 -2
  241. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +0 -23
  242. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.tsx +1 -1
  243. package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +10 -3
  244. package/src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx +9 -3
  245. package/src/react/web/ui/ConnectWallet/screens/ViewNFTs.tsx +8 -1
  246. package/src/react/web/ui/ConnectWallet/screens/ViewTokens.tsx +7 -1
  247. package/src/react/web/ui/types.ts +1 -1
  248. package/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts +2 -0
  249. package/src/react/web/wallets/injected/locale/vi.ts +27 -0
  250. package/src/react/web/wallets/local/locale/getLocalWalletLocale.ts +2 -0
  251. package/src/react/web/wallets/local/locale/vi.ts +48 -0
  252. package/src/react/web/wallets/shared/locale/getConnectLocale.ts +2 -0
  253. package/src/react/web/wallets/shared/locale/vi.ts +56 -0
  254. package/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts +2 -0
  255. package/src/react/web/wallets/smartWallet/locale/vi.ts +13 -0
  256. package/src/react/web/wallets/walletConnect/locale.ts +4 -0
  257. package/src/transaction/extract-error.ts +9 -9
  258. package/src/utils/extensions/airdrop/fetch-proofs-erc1155.ts +34 -0
  259. package/src/utils/extensions/airdrop/fetch-proofs-erc20.ts +35 -1
  260. package/src/utils/extensions/airdrop/fetch-proofs-erc721.ts +34 -0
  261. package/src/version.ts +1 -1
  262. package/src/wallets/in-app/web/lib/in-app-account.ts +12 -8
@@ -14,6 +14,7 @@ interface Props {
14
14
  children?: React.ReactNode;
15
15
  imageSize: number;
16
16
  showError?: boolean;
17
+ animate: boolean;
17
18
  }
18
19
 
19
20
  function WalletLoadingThumbnail({
@@ -21,10 +22,12 @@ function WalletLoadingThumbnail({
21
22
  children,
22
23
  showError,
23
24
  imageSize,
25
+ animate,
24
26
  }: Props) {
25
27
  const spinValue = useRef(new Animated.Value(0));
26
28
 
27
29
  useEffect(() => {
30
+ if (!animate) return;
28
31
  const animation = Animated.timing(spinValue.current, {
29
32
  toValue: 1,
30
33
  duration: 1150,
@@ -38,7 +41,7 @@ function WalletLoadingThumbnail({
38
41
  return () => {
39
42
  loop.stop();
40
43
  };
41
- }, []);
44
+ }, [animate]);
42
45
 
43
46
  const spin = spinValue.current.interpolate({
44
47
  inputRange: [0, 1],
@@ -53,18 +56,20 @@ function WalletLoadingThumbnail({
53
56
  viewBox={`0 0 ${imageSize + PADDING} ${imageSize + PADDING}`}
54
57
  style={styles.loader}
55
58
  >
56
- <AnimatedRect
57
- x="2"
58
- y="2"
59
- width={imageSize + INTERNAL_PADDING}
60
- height={imageSize + INTERNAL_PADDING}
61
- rx={15}
62
- stroke={showError ? "transparent" : theme.colors.accentButtonBg}
63
- strokeWidth={3}
64
- fill="transparent"
65
- strokeDasharray={"100 300"}
66
- strokeDashoffset={spin}
67
- />
59
+ {animate && (
60
+ <AnimatedRect
61
+ x="2"
62
+ y="2"
63
+ width={imageSize + INTERNAL_PADDING}
64
+ height={imageSize + INTERNAL_PADDING}
65
+ rx={15}
66
+ stroke={showError ? "transparent" : theme.colors.accentButtonBg}
67
+ strokeWidth={3}
68
+ fill="transparent"
69
+ strokeDasharray={"100 300"}
70
+ strokeDashoffset={spin}
71
+ />
72
+ )}
68
73
  </Svg>
69
74
  {showError && (
70
75
  <View
@@ -536,7 +536,9 @@ function DetailsModal(props: {
536
536
  >
537
537
  <CoinsIcon size={iconSize.md} />
538
538
  <Text color="primaryText">
539
- {props.supportedNFTs ? "View Assets" : "View Funds"}
539
+ {props.supportedNFTs
540
+ ? locale.viewFunds.viewAssets
541
+ : locale.viewFunds.title}
540
542
  </Text>
541
543
  </MenuButton>
542
544
 
@@ -550,7 +552,7 @@ function DetailsModal(props: {
550
552
  }}
551
553
  >
552
554
  <OutlineWalletIcon size={iconSize.md} />
553
- <Text color="primaryText">Manage Wallet</Text>
555
+ <Text color="primaryText">{props.locale.manageWallet.title}</Text>
554
556
  </MenuButton>
555
557
 
556
558
  {/* Switch to Personal Wallet */}
@@ -702,6 +704,7 @@ function DetailsModal(props: {
702
704
  }}
703
705
  setScreen={setScreen}
704
706
  client={client}
707
+ connectLocale={locale}
705
708
  />
706
709
  );
707
710
  } else {
@@ -713,6 +716,7 @@ function DetailsModal(props: {
713
716
  setScreen("main");
714
717
  }}
715
718
  client={client}
719
+ connectLocale={locale}
716
720
  />
717
721
  );
718
722
  }
@@ -725,6 +729,7 @@ function DetailsModal(props: {
725
729
  setScreen("main");
726
730
  }}
727
731
  client={client}
732
+ connectLocale={locale}
728
733
  />
729
734
  );
730
735
  } else if (screen === "view-tokens") {
@@ -735,6 +740,7 @@ function DetailsModal(props: {
735
740
  setScreen("main");
736
741
  }}
737
742
  client={client}
743
+ connectLocale={locale}
738
744
  />
739
745
  );
740
746
  } else if (screen === "private-key") {
@@ -98,6 +98,17 @@ const connectLocaleEn: ConnectLocale = {
98
98
  inProgress: "Awaiting Confirmation",
99
99
  },
100
100
  },
101
+ manageWallet: {
102
+ title: "Manage Wallet",
103
+ connectAnApp: "Connect an App",
104
+ exportPrivateKey: "Export Private Key",
105
+ },
106
+ viewFunds: {
107
+ title: "View Funds",
108
+ viewNFTs: "View NFTs",
109
+ viewTokens: "View Tokens",
110
+ viewAssets: "View Assets",
111
+ },
101
112
  };
102
113
 
103
114
  export default connectLocaleEn;
@@ -100,6 +100,17 @@ const connectWalletLocalEs: ConnectLocale = {
100
100
  inProgress: "Esperando confirmación",
101
101
  },
102
102
  },
103
+ manageWallet: {
104
+ title: "Manage Wallet",
105
+ connectAnApp: "Connect an App",
106
+ exportPrivateKey: "Export Private Key",
107
+ },
108
+ viewFunds: {
109
+ title: "View Funds",
110
+ viewNFTs: "View NFTs",
111
+ viewTokens: "View Tokens",
112
+ viewAssets: "View Assets",
113
+ },
103
114
  };
104
115
 
105
116
  export default connectWalletLocalEs;
@@ -12,6 +12,9 @@ export async function getConnectLocale(localeId: LocaleId) {
12
12
  case "tl_PH": {
13
13
  return (await import("./tl.js")).default;
14
14
  }
15
+ case "vi_VN": {
16
+ return (await import("./vi.js")).default;
17
+ }
15
18
  default: {
16
19
  return (await import("./en.js")).default;
17
20
  }
@@ -100,6 +100,17 @@ const connectWalletLocalJa: ConnectLocale = {
100
100
  inProgress: "確認待ち",
101
101
  },
102
102
  },
103
+ manageWallet: {
104
+ title: "Manage Wallet",
105
+ connectAnApp: "Connect an App",
106
+ exportPrivateKey: "Export Private Key",
107
+ },
108
+ viewFunds: {
109
+ title: "View Funds",
110
+ viewNFTs: "View NFTs",
111
+ viewTokens: "View Tokens",
112
+ viewAssets: "View Assets",
113
+ },
103
114
  };
104
115
 
105
116
  export default connectWalletLocalJa;
@@ -100,6 +100,17 @@ const connectWalletLocalTl: ConnectLocale = {
100
100
  inProgress: "Naghihintay ng Kumpirmasyon",
101
101
  },
102
102
  },
103
+ manageWallet: {
104
+ title: "Manage Wallet",
105
+ connectAnApp: "Connect an App",
106
+ exportPrivateKey: "Export Private Key",
107
+ },
108
+ viewFunds: {
109
+ title: "View Funds",
110
+ viewNFTs: "View NFTs",
111
+ viewTokens: "View Tokens",
112
+ viewAssets: "View Assets",
113
+ },
103
114
  };
104
115
 
105
116
  export default connectWalletLocalTl;
@@ -90,4 +90,15 @@ export type ConnectLocale = {
90
90
  transactions: string;
91
91
  viewAllTransactions: string;
92
92
  welcomeScreen: { defaultSubtitle: string; defaultTitle: string };
93
+ manageWallet: {
94
+ title: string;
95
+ connectAnApp: string;
96
+ exportPrivateKey: string;
97
+ };
98
+ viewFunds: {
99
+ title: string;
100
+ viewTokens: string;
101
+ viewNFTs: string;
102
+ viewAssets: string;
103
+ };
93
104
  };
@@ -0,0 +1,114 @@
1
+ import type { ConnectLocale } from "./types.js";
2
+
3
+ const connectLocaleVi: ConnectLocale = {
4
+ id: "vi_VN",
5
+ signIn: "Đăng nhập",
6
+ defaultButtonTitle: "Kết nối ví",
7
+ connecting: "Đang kết nối",
8
+ switchNetwork: "Chuyển mạng",
9
+ switchingNetwork: "Đang chuyển mạng",
10
+ defaultModalTitle: "Đăng nhập",
11
+ recommended: "Khuyên dùng",
12
+ installed: "Đã cài đặt",
13
+ buy: "Mua",
14
+ continueAsGuest: "Continue as guest",
15
+ connectAWallet: "Kết nối ví",
16
+ newToWallets: "Tìm hiểu về ví điện tử",
17
+ getStarted: "Bắt đầu",
18
+ guest: "Guest",
19
+ send: "Gửi",
20
+ receive: "Nhận",
21
+ currentNetwork: "Mạng lưới hiện tại",
22
+ switchAccount: "Chuyển tài khoản",
23
+ requestTestnetFunds: "Nhận Testnet Funds",
24
+ transactions: "Giao dịch",
25
+ viewAllTransactions: "Tất cả giao dịch",
26
+ backupWallet: "Sao lưu ví",
27
+ guestWalletWarning:
28
+ "Đây là ví tạm thời cho phiên đăng nhập của bạn. Vui lòng sao lưu ví nếu bạn không muốn dánh mất thông tin",
29
+ switchTo: "Đổi qua ví", // Used in "Switch to <Wallet-Name>"
30
+ connectedToSmartWallet: "Ví Thông Minh",
31
+ confirmInWallet: "Xác nhận bằng ví",
32
+ disconnectWallet: "Ngắt kết nối ví",
33
+ copyAddress: "Sao chép địa chỉ",
34
+ personalWallet: "Ví cá nhân",
35
+ smartWallet: "Ví Thông Minh",
36
+ or: "hoặc",
37
+ goBackButton: "Quay lại",
38
+ welcomeScreen: {
39
+ defaultTitle: "Cánh cổng dẫn tới thế giới phi tập trung",
40
+ defaultSubtitle: "Kết nối ví để bắt đầu",
41
+ },
42
+ agreement: {
43
+ prefix: "Bằng việc kết nối, bạn đồng ý với",
44
+ termsOfService: "Điều khoản dịch vụ",
45
+ and: "và",
46
+ privacyPolicy: "Chính sách bảo mật",
47
+ },
48
+ networkSelector: {
49
+ title: "Chọn mạng lưới",
50
+ mainnets: "Mainnets",
51
+ testnets: "Testnets",
52
+ allNetworks: "Tất cả",
53
+ addCustomNetwork: "Thêm mạng lưới",
54
+ inputPlaceholder: "Tìm theo tên hoặc ID",
55
+ categoryLabel: {
56
+ recentlyUsed: "Gần đây",
57
+ popular: "Thông dụng",
58
+ others: "Tất cả mạng lưới",
59
+ },
60
+ loading: "Đang tải",
61
+ failedToSwitch: "Không thể đổi mạng lưới",
62
+ },
63
+ receiveFundsScreen: {
64
+ title: "Nhận tiền",
65
+ instruction: "Sử dụng địa chỉ ví này để nhận tiền",
66
+ },
67
+ sendFundsScreen: {
68
+ title: "Gửi tiền",
69
+ submitButton: "Gửi",
70
+ token: "Token",
71
+ sendTo: "Gửi tới",
72
+ amount: "Số lượng",
73
+ successMessage: "Giao dịch thành công",
74
+ invalidAddress: "Địa chỉ không hợp lệ",
75
+ noTokensFound: "Không tìm thấy token",
76
+ searchToken: "Tìm kiếm hoặc dán địa chỉ token",
77
+ transactionFailed: "Giao dịch thất baị",
78
+ transactionRejected: "Giao dịch bị huỷ",
79
+ insufficientFunds: "Không đủ vốn",
80
+ selectTokenTitle: "Chọn Token",
81
+ sending: "Đang gửi",
82
+ },
83
+ signatureScreen: {
84
+ instructionScreen: {
85
+ title: "Đăng nhập",
86
+ instruction: "Kí vào yêu cầu tin nhắn trong ví của bạn để tiếp tục",
87
+ signInButton: "Đăng nhập",
88
+ disconnectWallet: "Ngắt kết nối ví",
89
+ },
90
+ signingScreen: {
91
+ title: "Đang đăng nhập",
92
+ prompt: "Ký vào yêu cầu tin nhắn trong ví của bạn",
93
+ promptForSafe:
94
+ "Kí vào yêu cầu tin nhắn trong ví của bạn và chấp nhận giao dịch trong ứng dụng Safe",
95
+ approveTransactionInSafe: "Xác nhận giao dịch bằng ví Safe",
96
+ tryAgain: "Thử lại",
97
+ failedToSignIn: "Đăng nhập thất bại",
98
+ inProgress: "Đang đợi xác nhận",
99
+ },
100
+ },
101
+ manageWallet: {
102
+ title: "Quản lý ví",
103
+ connectAnApp: "Kết nối ứng dụng",
104
+ exportPrivateKey: "Sao lưu private key",
105
+ },
106
+ viewFunds: {
107
+ title: "Tài sản",
108
+ viewTokens: "Tokens",
109
+ viewNFTs: "NFTs",
110
+ viewAssets: "Tài sản",
111
+ },
112
+ };
113
+
114
+ export default connectLocaleVi;
@@ -831,7 +831,7 @@ function SwapScreenContent(props: {
831
831
  } = props;
832
832
 
833
833
  const [receiverAddress, setReceiverAddress] = useState(
834
- props.activeAccount.address,
834
+ props.payOptions.recipientAddress || props.activeAccount.address,
835
835
  );
836
836
  const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = useDrawer();
837
837
  const [drawerScreen, setDrawerScreen] = useState<
@@ -924,6 +924,8 @@ function SwapScreenContent(props: {
924
924
  ? payOptions.buyWithCrypto?.prefillSource
925
925
  : undefined;
926
926
 
927
+ const disableReceiverSelection = !!props.payOptions.recipientAddress;
928
+
927
929
  return (
928
930
  <Container flex="column" gap="md" animate="fadein">
929
931
  {isOpen && (
@@ -1025,6 +1027,8 @@ function SwapScreenContent(props: {
1025
1027
  <Spacer y="xs" />
1026
1028
  <WalletSelectorButton
1027
1029
  client={props.client}
1030
+ disabled={disableReceiverSelection}
1031
+ disableChevron={disableReceiverSelection}
1028
1032
  onClick={() => {
1029
1033
  setIsOpen(true);
1030
1034
  setDrawerScreen("receiver");
@@ -1100,12 +1104,6 @@ function FiatScreenContent(props: {
1100
1104
  setTokenAmount: (amount: string) => void;
1101
1105
  setHasEditedAmount: (hasEdited: boolean) => void;
1102
1106
  }) {
1103
- const [receiverAddress, setReceiverAddress] = useState(
1104
- props.payer.account.address,
1105
- );
1106
- const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = useDrawer();
1107
- const [drawerScreen, setDrawerScreen] = useState<"fees" | "receiver">("fees");
1108
-
1109
1107
  const {
1110
1108
  toToken,
1111
1109
  tokenAmount,
@@ -1116,6 +1114,11 @@ function FiatScreenContent(props: {
1116
1114
  showCurrencySelector,
1117
1115
  selectedCurrency,
1118
1116
  } = props;
1117
+ const [receiverAddress, setReceiverAddress] = useState(
1118
+ props.payOptions.recipientAddress || props.payer.account.address,
1119
+ );
1120
+ const { drawerRef, drawerOverlayRef, isOpen, setIsOpen } = useDrawer();
1121
+ const [drawerScreen, setDrawerScreen] = useState<"fees" | "receiver">("fees");
1119
1122
 
1120
1123
  const buyWithFiatOptions = props.payOptions.buyWithFiat;
1121
1124
 
@@ -1219,13 +1222,7 @@ function FiatScreenContent(props: {
1219
1222
 
1220
1223
  const disableSubmit = !fiatQuoteQuery.data;
1221
1224
 
1222
- // TODO: API should just not return a quote if fromAddress !== toAddress and a swap is required after onramp and return an error message with a specific error id
1223
-
1224
- // TODO: if the receiver wallet is frozen by the developer, we need to stop the user from clicking continue here
1225
-
1226
- // Selecting Reciever wallet only allowed if no swap required after onramp
1227
- const enableReceiverSelection =
1228
- fiatQuoteQuery.data && !isSwapRequiredPostOnramp(fiatQuoteQuery.data);
1225
+ const disableReceiverSelection = !!props.payOptions.recipientAddress;
1229
1226
 
1230
1227
  const errorMsg =
1231
1228
  !fiatQuoteQuery.isLoading && fiatQuoteQuery.error
@@ -1234,11 +1231,11 @@ function FiatScreenContent(props: {
1234
1231
 
1235
1232
  return (
1236
1233
  <Container flex="column" gap="md" animate="fadein">
1237
- {isOpen && fiatQuoteQuery.data && (
1234
+ {isOpen && (
1238
1235
  <>
1239
1236
  <DrawerOverlay ref={drawerOverlayRef} />
1240
1237
  <Drawer ref={drawerRef} close={() => setIsOpen(false)}>
1241
- {drawerScreen === "fees" && (
1238
+ {drawerScreen === "fees" && fiatQuoteQuery.data && (
1242
1239
  <div>
1243
1240
  <Text size="lg" color="primaryText">
1244
1241
  Fees
@@ -1285,7 +1282,8 @@ function FiatScreenContent(props: {
1285
1282
  setIsOpen(true);
1286
1283
  }}
1287
1284
  address={receiverAddress}
1288
- disabled={!enableReceiverSelection}
1285
+ disabled={disableReceiverSelection}
1286
+ disableChevron={disableReceiverSelection}
1289
1287
  walletId={undefined}
1290
1288
  />
1291
1289
  </div>
@@ -177,8 +177,6 @@ function OnrampStatusScreenUI(props: {
177
177
  }
178
178
  : undefined
179
179
  }
180
- fromAddress={props.quote.fromAddress.toLowerCase()}
181
- toAddress={props.quote.toAddress.toLowerCase()}
182
180
  />
183
181
  );
184
182
 
@@ -1,7 +1,6 @@
1
1
  import { ExternalLinkIcon } from "@radix-ui/react-icons";
2
2
  import { getCachedChain } from "../../../../../../../chains/utils.js";
3
3
  import type { ThirdwebClient } from "../../../../../../../client/client.js";
4
- import { shortenAddress } from "../../../../../../../utils/address.js";
5
4
  import { formatNumber } from "../../../../../../../utils/formatNumber.js";
6
5
  import {
7
6
  fontSize,
@@ -38,8 +37,6 @@ export function OnRampTxDetailsTable(props: {
38
37
  text: FiatStatusMeta["status"];
39
38
  txHash?: string;
40
39
  };
41
- fromAddress?: string;
42
- toAddress?: string;
43
40
  }) {
44
41
  const onRampExplorers = useChainExplorers(
45
42
  getCachedChain(props.token.chainId),
@@ -115,26 +112,6 @@ export function OnRampTxDetailsTable(props: {
115
112
  </>
116
113
  )}
117
114
 
118
- {props.fromAddress &&
119
- props.toAddress &&
120
- props.fromAddress !== props.toAddress && (
121
- <>
122
- {lineSpacer}
123
- <Container
124
- flex="row"
125
- center="y"
126
- style={{
127
- justifyContent: "space-between",
128
- }}
129
- >
130
- <Text>Send to</Text>
131
- <Container flex="row" gap="xs" center="y">
132
- <Text>{shortenAddress(props.toAddress)}</Text>
133
- </Container>
134
- </Container>
135
- </>
136
- )}
137
-
138
115
  {lineSpacer}
139
116
 
140
117
  {/* Transaction Hash link */}
@@ -124,7 +124,7 @@ export function BuyTxHistoryList(props: {
124
124
  }}
125
125
  >
126
126
  <CrossCircledIcon width={iconSize.xl} height={iconSize.xl} />
127
- <Text> No Transactions </Text>
127
+ <Text>No Transactions </Text>
128
128
  </Container>
129
129
  )}
130
130
 
@@ -34,7 +34,10 @@ export function ManageWalletScreen(props: {
34
34
  }}
35
35
  >
36
36
  <Container p="lg">
37
- <ModalHeader title="Manage Wallet" onBack={props.onBack} />
37
+ <ModalHeader
38
+ title={props.locale.manageWallet.title}
39
+ onBack={props.onBack}
40
+ />
38
41
  </Container>
39
42
  <Line />
40
43
  <Container
@@ -62,7 +65,9 @@ export function ManageWalletScreen(props: {
62
65
  }}
63
66
  >
64
67
  <WalletConnectIcon size={iconSize.md} />
65
- <Text color="primaryText">Connect an App</Text>
68
+ <Text color="primaryText">
69
+ {props.locale.manageWallet.connectAnApp}
70
+ </Text>
66
71
  </MenuButton>
67
72
 
68
73
  {/* Private Key Export (if enabled) */}
@@ -79,7 +84,9 @@ export function ManageWalletScreen(props: {
79
84
  }}
80
85
  >
81
86
  <KeyIcon size={iconSize.md} />
82
- <Text color="primaryText">Export Private Key</Text>
87
+ <Text color="primaryText">
88
+ {props.locale.manageWallet.exportPrivateKey}
89
+ </Text>
83
90
  </MenuButton>
84
91
  )}
85
92
  </Container>
@@ -10,6 +10,7 @@ import { Text } from "../../components/text.js";
10
10
  import { MenuButton } from "../MenuButton.js";
11
11
  import { CoinsIcon } from "../icons/CoinsIcon.js";
12
12
  import { ImageIcon } from "../icons/ImageIcon.js";
13
+ import type { ConnectLocale } from "../locale/types.js";
13
14
  import type { WalletDetailsModalScreen } from "./types.js";
14
15
 
15
16
  /**
@@ -21,7 +22,9 @@ export function ViewFunds(props: {
21
22
  onBack: () => void;
22
23
  setScreen: (screen: WalletDetailsModalScreen) => void;
23
24
  client: ThirdwebClient;
25
+ connectLocale: ConnectLocale;
24
26
  }) {
27
+ const { connectLocale } = props;
25
28
  return (
26
29
  <Container
27
30
  style={{
@@ -29,7 +32,10 @@ export function ViewFunds(props: {
29
32
  }}
30
33
  >
31
34
  <Container p="lg">
32
- <ModalHeader title="View Funds" onBack={props.onBack} />
35
+ <ModalHeader
36
+ title={connectLocale.viewFunds.title}
37
+ onBack={props.onBack}
38
+ />
33
39
  </Container>
34
40
  <Line />
35
41
  <Container
@@ -50,7 +56,7 @@ export function ViewFunds(props: {
50
56
  }}
51
57
  >
52
58
  <CoinsIcon size={iconSize.md} />
53
- <Text color="primaryText">View Tokens</Text>
59
+ <Text color="primaryText">{connectLocale.viewFunds.viewTokens}</Text>
54
60
  </MenuButton>
55
61
  <MenuButton
56
62
  onClick={() => {
@@ -61,7 +67,7 @@ export function ViewFunds(props: {
61
67
  }}
62
68
  >
63
69
  <ImageIcon size={iconSize.md} />
64
- <Text color="primaryText">View NFTs</Text>
70
+ <Text color="primaryText">{connectLocale.viewFunds.viewNFTs}</Text>
65
71
  </MenuButton>
66
72
  <Spacer y="lg" />
67
73
  </Container>
@@ -16,6 +16,7 @@ import { MediaRenderer } from "../../MediaRenderer/MediaRenderer.js";
16
16
  import { Skeleton } from "../../components/Skeleton.js";
17
17
  import { Spacer } from "../../components/Spacer.js";
18
18
  import { Container, Line, ModalHeader } from "../../components/basic.js";
19
+ import type { ConnectLocale } from "../locale/types.js";
19
20
 
20
21
  const fetchNFTs = async (
21
22
  client: ThirdwebClient,
@@ -69,6 +70,7 @@ export function ViewNFTs(props: {
69
70
  theme: Theme | "light" | "dark";
70
71
  onBack: () => void;
71
72
  client: ThirdwebClient;
73
+ connectLocale: ConnectLocale;
72
74
  }) {
73
75
  const activeAccount = useActiveAccount();
74
76
  const activeChain = useActiveWalletChain();
@@ -77,6 +79,8 @@ export function ViewNFTs(props: {
77
79
  return null;
78
80
  }
79
81
 
82
+ const { connectLocale } = props;
83
+
80
84
  const nftList = useMemo(() => {
81
85
  const nfts = [];
82
86
  if (!props.supportedNFTs) return [];
@@ -108,7 +112,10 @@ export function ViewNFTs(props: {
108
112
  }}
109
113
  >
110
114
  <Container p="lg">
111
- <ModalHeader title="View NFTs" onBack={props.onBack} />
115
+ <ModalHeader
116
+ title={connectLocale.viewFunds.viewNFTs}
117
+ onBack={props.onBack}
118
+ />
112
119
  </Container>
113
120
  <Line />
114
121
  <Container
@@ -13,6 +13,7 @@ import { Spacer } from "../../components/Spacer.js";
13
13
  import { TokenIcon } from "../../components/TokenIcon.js";
14
14
  import { Container, Line, ModalHeader } from "../../components/basic.js";
15
15
  import { Text } from "../../components/text.js";
16
+ import type { ConnectLocale } from "../locale/types.js";
16
17
  import { formatTokenBalance } from "./formatTokenBalance.js";
17
18
  import {
18
19
  type ERC20OrNativeToken,
@@ -27,6 +28,7 @@ export function ViewTokens(props: {
27
28
  supportedTokens?: SupportedTokens;
28
29
  onBack: () => void;
29
30
  client: ThirdwebClient;
31
+ connectLocale: ConnectLocale;
30
32
  }) {
31
33
  const activeChain = useActiveWalletChain();
32
34
  const supportedTokens = props.supportedTokens || defaultTokens;
@@ -37,6 +39,7 @@ export function ViewTokens(props: {
37
39
 
38
40
  const tokenList =
39
41
  (activeChain?.id ? supportedTokens[activeChain.id] : undefined) || [];
42
+ const { connectLocale } = props;
40
43
 
41
44
  return (
42
45
  <Container
@@ -45,7 +48,10 @@ export function ViewTokens(props: {
45
48
  }}
46
49
  >
47
50
  <Container p="lg">
48
- <ModalHeader title="View Funds" onBack={props.onBack} />
51
+ <ModalHeader
52
+ title={connectLocale.viewFunds.title}
53
+ onBack={props.onBack}
54
+ />
49
55
  </Container>
50
56
  <Line />
51
57
  <Container
@@ -1,2 +1,2 @@
1
1
  // valid combinations of ISO language code and ISO country code
2
- export type LocaleId = "en_US" | "es_ES" | "ja_JP" | "tl_PH";
2
+ export type LocaleId = "en_US" | "es_ES" | "ja_JP" | "tl_PH" | "vi_VN";
@@ -14,6 +14,8 @@ export async function getInjectedWalletLocale(
14
14
  return (await import("./ja.js")).default;
15
15
  case "tl_PH":
16
16
  return (await import("./tl.js")).default;
17
+ case "vi_VN":
18
+ return (await import("./vi.js")).default;
17
19
  default:
18
20
  return (await import("./en.js")).default;
19
21
  }