@multiversx/sdk-dapp-liquidity 2.3.0 → 2.4.0-alpha.0

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 (509) hide show
  1. package/BridgeHistory-BU-L_w0l.js +2 -0
  2. package/BridgeHistory-CInRkJ6T.mjs +275 -0
  3. package/ToggleDirection-BLDXxUlN.mjs +16 -0
  4. package/ToggleDirection-CZ9-ZD7Y.js +2 -0
  5. package/all-networks-De_MBUh1.js +2 -0
  6. package/all-networks-hdZt5Hcc.mjs +4 -0
  7. package/api/checkAccount.d.ts +1 -2
  8. package/api/checkAccount.js +1 -1
  9. package/api/checkAccount.mjs +10 -20
  10. package/api/confirmRate.d.ts +2 -3
  11. package/api/confirmRate.js +1 -1
  12. package/api/confirmRate.mjs +16 -23
  13. package/api/getChains.d.ts +1 -2
  14. package/api/getChains.js +1 -1
  15. package/api/getChains.mjs +10 -16
  16. package/api/getRate.d.ts +1 -2
  17. package/api/getRate.js +1 -1
  18. package/api/getRate.mjs +16 -23
  19. package/api/getTokens.d.ts +1 -2
  20. package/api/getTokens.js +1 -1
  21. package/api/getTokens.mjs +10 -20
  22. package/api/getTokensBalances.d.ts +1 -2
  23. package/api/getTokensBalances.js +1 -1
  24. package/api/getTokensBalances.mjs +10 -20
  25. package/api/getTransactions.d.ts +2 -3
  26. package/api/getTransactions.js +1 -1
  27. package/api/getTransactions.mjs +19 -31
  28. package/api/index.js +1 -1
  29. package/api/index.mjs +9 -18
  30. package/api/sendTransactions.d.ts +3 -4
  31. package/api/sendTransactions.js +1 -1
  32. package/api/sendTransactions.mjs +19 -31
  33. package/api/tests/confirmRate.spec.js +1 -1
  34. package/api/tests/confirmRate.spec.mjs +98 -112
  35. package/api/tests/getChains.spec.js +1 -1
  36. package/api/tests/getChains.spec.mjs +38 -36
  37. package/api/tests/getRate.spec.js +1 -1
  38. package/api/tests/getRate.spec.mjs +73 -69
  39. package/api/tests/getTokens.spec.js +1 -1
  40. package/api/tests/getTokens.spec.mjs +58 -58
  41. package/api/tests/getTransactions.spec.js +1 -1
  42. package/api/tests/getTransactions.spec.mjs +84 -74
  43. package/api/tests/sendTransactions.spec.js +1 -1
  44. package/api/tests/sendTransactions.spec.mjs +74 -84
  45. package/chains-Bmeag21l.js +2 -0
  46. package/chains-DQACurVn.mjs +33 -0
  47. package/chunk-oiTVcehM.js +2 -0
  48. package/constants/index.js +1 -1
  49. package/constants/index.mjs +8 -4
  50. package/default-CqGeN438.js +2 -0
  51. package/default-DuNFRYAj.mjs +4 -0
  52. package/dto/Chain.dto.d.ts +0 -1
  53. package/dto/Chain.dto.js +0 -1
  54. package/dto/Chain.dto.mjs +0 -1
  55. package/dto/CheckAccount.dto.js +0 -1
  56. package/dto/CheckAccount.dto.mjs +0 -1
  57. package/dto/ConfirmRate.dto.d.ts +0 -1
  58. package/dto/ConfirmRate.dto.js +0 -1
  59. package/dto/ConfirmRate.dto.mjs +0 -1
  60. package/dto/Token.dto.js +0 -1
  61. package/dto/Token.dto.mjs +0 -1
  62. package/dto/TokenBalance.dto.js +0 -1
  63. package/dto/TokenBalance.dto.mjs +0 -1
  64. package/dto/Transaction.dto.d.ts +0 -1
  65. package/dto/Transaction.dto.js +0 -1
  66. package/dto/Transaction.dto.mjs +0 -1
  67. package/dto/index.js +0 -1
  68. package/dto/index.mjs +0 -1
  69. package/helpers/assertConfirmRateData.js +1 -1
  70. package/helpers/assertConfirmRateData.mjs +11 -28
  71. package/helpers/assertRateConfirmationMatchesIntent.d.ts +0 -1
  72. package/helpers/assertRateConfirmationMatchesIntent.js +1 -1
  73. package/helpers/assertRateConfirmationMatchesIntent.mjs +9 -18
  74. package/helpers/base64Utils.js +1 -1
  75. package/helpers/base64Utils.mjs +15 -18
  76. package/helpers/decodeLoginToken.js +1 -1
  77. package/helpers/decodeLoginToken.mjs +19 -21
  78. package/helpers/decodeToken.js +1 -1
  79. package/helpers/decodeToken.mjs +22 -27
  80. package/helpers/getApiURL.js +1 -1
  81. package/helpers/getApiURL.mjs +5 -5
  82. package/helpers/getBridgeURL.js +1 -1
  83. package/helpers/getBridgeURL.mjs +4 -4
  84. package/helpers/getDisplayName.d.ts +0 -1
  85. package/helpers/getDisplayName.js +1 -1
  86. package/helpers/getDisplayName.mjs +5 -5
  87. package/helpers/getMvxApiURL.js +1 -1
  88. package/helpers/getMvxApiURL.mjs +5 -5
  89. package/helpers/getMvxChainId.js +1 -1
  90. package/helpers/getMvxChainId.mjs +5 -5
  91. package/helpers/getMvxExplorerAddress.js +1 -1
  92. package/helpers/getMvxExplorerAddress.mjs +4 -4
  93. package/helpers/index.js +1 -1
  94. package/helpers/index.mjs +12 -27
  95. package/helpers/isValidAddressForChainType.d.ts +0 -1
  96. package/helpers/isValidAddressForChainType.js +1 -1
  97. package/helpers/isValidAddressForChainType.mjs +37 -48
  98. package/helpers/safeImageUrl.js +1 -1
  99. package/helpers/safeImageUrl.mjs +14 -12
  100. package/helpers/serializeTransaction.d.ts +0 -1
  101. package/helpers/serializeTransaction.js +1 -1
  102. package/helpers/serializeTransaction.mjs +5 -5
  103. package/helpers/tests/assertConfirmRateData.spec.js +1 -1
  104. package/helpers/tests/assertConfirmRateData.spec.mjs +86 -74
  105. package/helpers/tests/assertRateConfirmationMatchesIntent.spec.js +1 -1
  106. package/helpers/tests/assertRateConfirmationMatchesIntent.spec.mjs +61 -49
  107. package/helpers/tests/base64Utils.spec.js +1 -1
  108. package/helpers/tests/base64Utils.spec.mjs +15 -13
  109. package/helpers/tests/decodeLoginToken.spec.js +1 -1
  110. package/helpers/tests/decodeLoginToken.spec.mjs +20 -19
  111. package/helpers/tests/decodeToken.spec.js +1 -1
  112. package/helpers/tests/decodeToken.spec.mjs +18 -19
  113. package/helpers/tests/isValidAddressForChainType.spec.js +1 -1
  114. package/helpers/tests/isValidAddressForChainType.spec.mjs +59 -134
  115. package/helpers/tests/safeImageUrl.spec.js +1 -1
  116. package/helpers/tests/safeImageUrl.spec.mjs +30 -30
  117. package/helpers/tests/serializeTransaction.spec.js +1 -1
  118. package/helpers/tests/serializeTransaction.spec.mjs +35 -21
  119. package/index.js +1 -1
  120. package/index.mjs +91 -200
  121. package/package.json +23 -32
  122. package/react.esm-JNqTldrP.mjs +8927 -0
  123. package/react.esm-kvI07ZPd.js +59 -0
  124. package/reactjs/adapters/SuiAdapter.d.ts +2 -2
  125. package/reactjs/adapters/SuiAdapter.js +1 -1
  126. package/reactjs/adapters/SuiAdapter.mjs +254 -323
  127. package/reactjs/components/AccountAddress/AccountAddress.d.ts +1 -1
  128. package/reactjs/components/AccountAddress/AccountAddress.js +1 -1
  129. package/reactjs/components/AccountAddress/AccountAddress.mjs +20 -30
  130. package/reactjs/components/AccountAddress/index.js +1 -1
  131. package/reactjs/components/AccountAddress/index.mjs +2 -4
  132. package/reactjs/components/AmountCard/AmountCard.d.ts +1 -2
  133. package/reactjs/components/AmountCard/AmountCard.js +1 -1
  134. package/reactjs/components/AmountCard/AmountCard.mjs +13 -31
  135. package/reactjs/components/AmountCard/index.js +1 -1
  136. package/reactjs/components/AmountCard/index.mjs +2 -4
  137. package/reactjs/components/AmountInput/AmountInput.d.ts +1 -2
  138. package/reactjs/components/AmountInput/AmountInput.js +1 -1
  139. package/reactjs/components/AmountInput/AmountInput.mjs +48 -66
  140. package/reactjs/components/AmountInput/index.js +1 -1
  141. package/reactjs/components/AmountInput/index.mjs +2 -4
  142. package/reactjs/components/BridgeForm/BridgeForm.d.ts +1 -1
  143. package/reactjs/components/BridgeForm/BridgeForm.js +1 -1
  144. package/reactjs/components/BridgeForm/BridgeForm.mjs +53 -81
  145. package/reactjs/components/BridgeForm/Deposit.d.ts +1 -1
  146. package/reactjs/components/BridgeForm/Deposit.js +1 -1
  147. package/reactjs/components/BridgeForm/Deposit.mjs +457 -573
  148. package/reactjs/components/BridgeForm/Transfer.d.ts +1 -1
  149. package/reactjs/components/BridgeForm/Transfer.js +1 -1
  150. package/reactjs/components/BridgeForm/Transfer.mjs +358 -470
  151. package/reactjs/components/BridgeForm/hooks/useBridgeAmounts.d.ts +0 -1
  152. package/reactjs/components/BridgeForm/hooks/useBridgeAmounts.js +1 -1
  153. package/reactjs/components/BridgeForm/hooks/useBridgeAmounts.mjs +52 -54
  154. package/reactjs/components/BridgeForm/hooks/useBridgeRateFetching.d.ts +0 -1
  155. package/reactjs/components/BridgeForm/hooks/useBridgeRateFetching.js +1 -1
  156. package/reactjs/components/BridgeForm/hooks/useBridgeRateFetching.mjs +35 -46
  157. package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.d.ts +1 -2
  158. package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.js +1 -1
  159. package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.mjs +131 -197
  160. package/reactjs/components/BridgeForm/index.js +1 -1
  161. package/reactjs/components/BridgeForm/index.mjs +1 -3
  162. package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.d.ts +3 -4
  163. package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.js +1 -1
  164. package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.mjs +26 -43
  165. package/reactjs/components/BridgeHistory/BridgeHistory.d.ts +1 -1
  166. package/reactjs/components/BridgeHistory/BridgeHistory.js +1 -1
  167. package/reactjs/components/BridgeHistory/BridgeHistory.mjs +2 -353
  168. package/reactjs/components/BridgeHistory/index.js +1 -1
  169. package/reactjs/components/BridgeHistory/index.mjs +2 -4
  170. package/reactjs/components/Connect/BridgeAccountDisplay.d.ts +1 -2
  171. package/reactjs/components/Connect/BridgeAccountDisplay.js +1 -1
  172. package/reactjs/components/Connect/BridgeAccountDisplay.mjs +125 -134
  173. package/reactjs/components/Connect/BridgeConnectButton.d.ts +1 -2
  174. package/reactjs/components/Connect/BridgeConnectButton.js +1 -1
  175. package/reactjs/components/Connect/BridgeConnectButton.mjs +42 -44
  176. package/reactjs/components/Connect/ChainSelectConnect.d.ts +1 -2
  177. package/reactjs/components/Connect/ChainSelectConnect.js +1 -1
  178. package/reactjs/components/Connect/ChainSelectConnect.mjs +100 -129
  179. package/reactjs/components/Connect/CustomConnectButton.d.ts +2 -3
  180. package/reactjs/components/Connect/CustomConnectButton.js +1 -1
  181. package/reactjs/components/Connect/CustomConnectButton.mjs +23 -35
  182. package/reactjs/components/Connect/MvxAccountDisplay.d.ts +1 -1
  183. package/reactjs/components/Connect/MvxAccountDisplay.js +1 -1
  184. package/reactjs/components/Connect/MvxAccountDisplay.mjs +74 -94
  185. package/reactjs/components/Connect/MvxConnectButton.d.ts +1 -1
  186. package/reactjs/components/Connect/MvxConnectButton.js +1 -1
  187. package/reactjs/components/Connect/MvxConnectButton.mjs +27 -38
  188. package/reactjs/components/Connect/SwitchChainButton.d.ts +2 -3
  189. package/reactjs/components/Connect/SwitchChainButton.js +1 -1
  190. package/reactjs/components/Connect/SwitchChainButton.mjs +20 -30
  191. package/reactjs/components/Connect/index.js +1 -1
  192. package/reactjs/components/Connect/index.mjs +6 -14
  193. package/reactjs/components/CopyButton/CopyButton.d.ts +2 -1
  194. package/reactjs/components/CopyButton/CopyButton.js +1 -1
  195. package/reactjs/components/CopyButton/CopyButton.mjs +35 -42
  196. package/reactjs/components/CopyButton/index.js +1 -1
  197. package/reactjs/components/CopyButton/index.mjs +2 -4
  198. package/reactjs/components/CopyButton/utils/copyToClipboard.js +1 -1
  199. package/reactjs/components/CopyButton/utils/copyToClipboard.mjs +20 -24
  200. package/reactjs/components/CopyButton/utils/index.js +1 -1
  201. package/reactjs/components/CopyButton/utils/index.mjs +2 -4
  202. package/reactjs/components/DisplayAmount/DisplayAmount.d.ts +2 -3
  203. package/reactjs/components/DisplayAmount/DisplayAmount.js +1 -1
  204. package/reactjs/components/DisplayAmount/DisplayAmount.mjs +74 -82
  205. package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.d.ts +1 -1
  206. package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.js +1 -1
  207. package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.mjs +22 -31
  208. package/reactjs/components/DisplayAmount/components/AnimateNumber/index.js +0 -1
  209. package/reactjs/components/DisplayAmount/components/AnimateNumber/index.mjs +0 -1
  210. package/reactjs/components/DisplayAmount/components/PrecisedAmount/PrecisedAmount.d.ts +1 -2
  211. package/reactjs/components/DisplayAmount/components/PrecisedAmount/PrecisedAmount.js +1 -1
  212. package/reactjs/components/DisplayAmount/components/PrecisedAmount/PrecisedAmount.mjs +46 -52
  213. package/reactjs/components/DisplayAmount/components/index.js +0 -1
  214. package/reactjs/components/DisplayAmount/components/index.mjs +0 -1
  215. package/reactjs/components/DisplayAmount/index.js +1 -1
  216. package/reactjs/components/DisplayAmount/index.mjs +2 -4
  217. package/reactjs/components/DisplayAmount/utils/index.js +1 -1
  218. package/reactjs/components/DisplayAmount/utils/index.mjs +2 -4
  219. package/reactjs/components/DisplayAmount/utils/truncateAmount.js +1 -1
  220. package/reactjs/components/DisplayAmount/utils/truncateAmount.mjs +14 -16
  221. package/reactjs/components/Error/Error.d.ts +1 -2
  222. package/reactjs/components/Error/Error.js +1 -1
  223. package/reactjs/components/Error/Error.mjs +44 -66
  224. package/reactjs/components/Error/index.js +1 -1
  225. package/reactjs/components/Error/index.mjs +1 -3
  226. package/reactjs/components/SmallLoader/SmallLoader.d.ts +1 -1
  227. package/reactjs/components/SmallLoader/SmallLoader.js +1 -1
  228. package/reactjs/components/SmallLoader/SmallLoader.mjs +12 -15
  229. package/reactjs/components/SmallLoader/index.js +1 -1
  230. package/reactjs/components/SmallLoader/index.mjs +2 -4
  231. package/reactjs/components/ToggleDirection/ToggleDirection.d.ts +1 -1
  232. package/reactjs/components/ToggleDirection/ToggleDirection.js +1 -1
  233. package/reactjs/components/ToggleDirection/ToggleDirection.mjs +2 -24
  234. package/reactjs/components/TokenSelector/TokenSelector.d.ts +1 -2
  235. package/reactjs/components/TokenSelector/TokenSelector.js +1 -1
  236. package/reactjs/components/TokenSelector/TokenSelector.mjs +94 -151
  237. package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.d.ts +1 -2
  238. package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.js +1 -1
  239. package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.mjs +75 -83
  240. package/reactjs/components/TokenSelector/components/ChainSelect/components/ChainOptionLabel.d.ts +1 -1
  241. package/reactjs/components/TokenSelector/components/ChainSelect/components/ChainOptionLabel.js +1 -1
  242. package/reactjs/components/TokenSelector/components/ChainSelect/components/ChainOptionLabel.mjs +40 -51
  243. package/reactjs/components/TokenSelector/components/ChainSelect/components/FormatChainOptionLabel.d.ts +2 -3
  244. package/reactjs/components/TokenSelector/components/ChainSelect/components/FormatChainOptionLabel.js +1 -1
  245. package/reactjs/components/TokenSelector/components/ChainSelect/components/FormatChainOptionLabel.mjs +16 -12
  246. package/reactjs/components/TokenSelector/components/ChainSelect/components/IndicatorSeparator.js +1 -1
  247. package/reactjs/components/TokenSelector/components/ChainSelect/components/IndicatorSeparator.mjs +4 -4
  248. package/reactjs/components/TokenSelector/components/ChainSelect/components/SelectedChainOption.d.ts +2 -3
  249. package/reactjs/components/TokenSelector/components/ChainSelect/components/SelectedChainOption.js +1 -1
  250. package/reactjs/components/TokenSelector/components/ChainSelect/components/SelectedChainOption.mjs +29 -41
  251. package/reactjs/components/TokenSelector/components/ChainSelect/types/chainSelectOption.js +0 -1
  252. package/reactjs/components/TokenSelector/components/ChainSelect/types/chainSelectOption.mjs +0 -1
  253. package/reactjs/components/TokenSelector/components/ChainSelect/types/partialChainOption.js +0 -1
  254. package/reactjs/components/TokenSelector/components/ChainSelect/types/partialChainOption.mjs +0 -1
  255. package/reactjs/components/TokenSelector/components/SelectContainer.d.ts +1 -2
  256. package/reactjs/components/TokenSelector/components/SelectContainer.js +1 -1
  257. package/reactjs/components/TokenSelector/components/SelectContainer.mjs +32 -37
  258. package/reactjs/components/TokenSelector/components/SelectContent.d.ts +2 -3
  259. package/reactjs/components/TokenSelector/components/SelectContent.js +1 -1
  260. package/reactjs/components/TokenSelector/components/SelectContent.mjs +78 -110
  261. package/reactjs/components/TokenSelector/components/SelectedOption.d.ts +1 -2
  262. package/reactjs/components/TokenSelector/components/SelectedOption.js +1 -1
  263. package/reactjs/components/TokenSelector/components/SelectedOption.mjs +26 -26
  264. package/reactjs/components/TokenSelector/components/TokenIcon.d.ts +1 -2
  265. package/reactjs/components/TokenSelector/components/TokenIcon.js +1 -1
  266. package/reactjs/components/TokenSelector/components/TokenIcon.mjs +54 -74
  267. package/reactjs/components/TokenSelector/components/TokenItem.d.ts +1 -2
  268. package/reactjs/components/TokenSelector/components/TokenItem.js +1 -1
  269. package/reactjs/components/TokenSelector/components/TokenItem.mjs +53 -66
  270. package/reactjs/components/TokenSelector/components/TokenList.d.ts +1 -2
  271. package/reactjs/components/TokenSelector/components/TokenList.js +1 -1
  272. package/reactjs/components/TokenSelector/components/TokenList.mjs +13 -21
  273. package/reactjs/components/TokenSelector/components/TokenSymbol.d.ts +1 -2
  274. package/reactjs/components/TokenSelector/components/TokenSymbol.js +1 -1
  275. package/reactjs/components/TokenSelector/components/TokenSymbol.mjs +15 -23
  276. package/reactjs/components/TokenSelector/index.js +1 -1
  277. package/reactjs/components/TokenSelector/index.mjs +2 -4
  278. package/reactjs/components/TransactionToast/TransactionToast.d.ts +1 -2
  279. package/reactjs/components/TransactionToast/TransactionToast.js +1 -1
  280. package/reactjs/components/TransactionToast/TransactionToast.mjs +43 -51
  281. package/reactjs/components/TransactionToast/TransactionToastContainer.d.ts +1 -2
  282. package/reactjs/components/TransactionToast/TransactionToastContainer.js +1 -1
  283. package/reactjs/components/TransactionToast/TransactionToastContainer.mjs +15 -18
  284. package/reactjs/components/TransactionToast/index.js +1 -1
  285. package/reactjs/components/TransactionToast/index.mjs +3 -6
  286. package/reactjs/components/TrimAddress/TrimAddress.d.ts +1 -1
  287. package/reactjs/components/TrimAddress/TrimAddress.js +1 -1
  288. package/reactjs/components/TrimAddress/TrimAddress.mjs +13 -22
  289. package/reactjs/components/TrimAddress/index.js +1 -1
  290. package/reactjs/components/TrimAddress/index.mjs +1 -3
  291. package/reactjs/components/base/MxButton/MxButton.d.ts +1 -2
  292. package/reactjs/components/base/MxButton/MxButton.js +1 -1
  293. package/reactjs/components/base/MxButton/MxButton.mjs +43 -70
  294. package/reactjs/components/base/MxButton/index.js +1 -1
  295. package/reactjs/components/base/MxButton/index.mjs +2 -4
  296. package/reactjs/components/base/MxCard/MxCard.d.ts +0 -1
  297. package/reactjs/components/base/MxCard/MxCard.js +1 -1
  298. package/reactjs/components/base/MxCard/MxCard.mjs +33 -54
  299. package/reactjs/components/base/MxCard/index.js +1 -1
  300. package/reactjs/components/base/MxCard/index.mjs +2 -4
  301. package/reactjs/components/base/MxCircleLoader/MxCircleLoader.d.ts +1 -1
  302. package/reactjs/components/base/MxCircleLoader/MxCircleLoader.js +1 -1
  303. package/reactjs/components/base/MxCircleLoader/MxCircleLoader.mjs +9 -26
  304. package/reactjs/components/base/MxCircleLoader/index.js +1 -1
  305. package/reactjs/components/base/MxCircleLoader/index.mjs +2 -4
  306. package/reactjs/components/base/MxLink/MxLink.d.ts +0 -1
  307. package/reactjs/components/base/MxLink/MxLink.js +1 -1
  308. package/reactjs/components/base/MxLink/MxLink.mjs +42 -68
  309. package/reactjs/components/base/MxLink/index.js +1 -1
  310. package/reactjs/components/base/MxLink/index.mjs +2 -4
  311. package/reactjs/components/base/MxSearch/MxSearch.js +1 -1
  312. package/reactjs/components/base/MxSearch/MxSearch.mjs +35 -65
  313. package/reactjs/components/base/MxSearch/index.js +1 -1
  314. package/reactjs/components/base/MxSearch/index.mjs +2 -4
  315. package/reactjs/components/base/MxSlideover/MxSlideover.d.ts +1 -2
  316. package/reactjs/components/base/MxSlideover/MxSlideover.js +1 -1
  317. package/reactjs/components/base/MxSlideover/MxSlideover.mjs +70 -76
  318. package/reactjs/components/base/MxSlideover/index.js +1 -1
  319. package/reactjs/components/base/MxSlideover/index.mjs +2 -4
  320. package/reactjs/components/base/MxTooltip/MxTooltip.d.ts +2 -3
  321. package/reactjs/components/base/MxTooltip/MxTooltip.js +1 -1
  322. package/reactjs/components/base/MxTooltip/MxTooltip.mjs +79 -119
  323. package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.d.ts +0 -1
  324. package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.js +1 -1
  325. package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.mjs +23 -31
  326. package/reactjs/components/base/MxTooltip/components/TooltipContainer/index.js +1 -1
  327. package/reactjs/components/base/MxTooltip/components/TooltipContainer/index.mjs +2 -4
  328. package/reactjs/components/base/MxTooltip/components/TooltipContent/TooltipContent.d.ts +1 -2
  329. package/reactjs/components/base/MxTooltip/components/TooltipContent/TooltipContent.js +1 -1
  330. package/reactjs/components/base/MxTooltip/components/TooltipContent/TooltipContent.mjs +13 -25
  331. package/reactjs/components/base/MxTooltip/components/TooltipContent/index.js +1 -1
  332. package/reactjs/components/base/MxTooltip/components/TooltipContent/index.mjs +1 -3
  333. package/reactjs/components/base/MxTooltip/components/index.js +1 -1
  334. package/reactjs/components/base/MxTooltip/components/index.mjs +5 -6
  335. package/reactjs/components/base/MxTooltip/index.js +1 -1
  336. package/reactjs/components/base/MxTooltip/index.mjs +2 -4
  337. package/reactjs/components/base/index.js +1 -1
  338. package/reactjs/components/base/index.mjs +12 -13
  339. package/reactjs/components/index.js +1 -1
  340. package/reactjs/components/index.mjs +40 -53
  341. package/reactjs/constants/chains.js +1 -1
  342. package/reactjs/constants/chains.mjs +2 -35
  343. package/reactjs/constants/index.js +1 -1
  344. package/reactjs/constants/index.mjs +5 -12
  345. package/reactjs/context/Web3AppProvider.d.ts +6 -7
  346. package/reactjs/context/Web3AppProvider.js +1 -1
  347. package/reactjs/context/Web3AppProvider.mjs +41 -40
  348. package/reactjs/context/queryClient.d.ts +0 -1
  349. package/reactjs/context/queryClient.js +1 -1
  350. package/reactjs/context/queryClient.mjs +6 -6
  351. package/reactjs/context/useWeb3App.js +1 -1
  352. package/reactjs/context/useWeb3App.mjs +9 -10
  353. package/reactjs/helpers/index.js +1 -1
  354. package/reactjs/helpers/index.mjs +2 -6
  355. package/reactjs/helpers/resolveBridgeApiChainId.js +1 -1
  356. package/reactjs/helpers/resolveBridgeApiChainId.mjs +22 -23
  357. package/reactjs/hooks/index.js +1 -1
  358. package/reactjs/hooks/index.mjs +16 -35
  359. package/reactjs/hooks/tests/useGenericSignMessage.spec.js +1 -1
  360. package/reactjs/hooks/tests/useGenericSignMessage.spec.mjs +43 -50
  361. package/reactjs/hooks/tests/useSignTransaction.spec.js +1 -1
  362. package/reactjs/hooks/tests/useSignTransaction.spec.mjs +123 -150
  363. package/reactjs/hooks/useAccount.js +1 -1
  364. package/reactjs/hooks/useAccount.mjs +11 -11
  365. package/reactjs/hooks/useBalances.d.ts +0 -1
  366. package/reactjs/hooks/useBalances.js +1 -1
  367. package/reactjs/hooks/useBalances.mjs +31 -39
  368. package/reactjs/hooks/useBridgeApiChainId.js +1 -1
  369. package/reactjs/hooks/useBridgeApiChainId.mjs +8 -11
  370. package/reactjs/hooks/useBridgeFormik.d.ts +4 -5
  371. package/reactjs/hooks/useBridgeFormik.js +1 -1
  372. package/reactjs/hooks/useBridgeFormik.mjs +117 -143
  373. package/reactjs/hooks/useDebounce.js +1 -1
  374. package/reactjs/hooks/useDebounce.mjs +10 -10
  375. package/reactjs/hooks/useDisconnectOnChainTypeChange.d.ts +0 -1
  376. package/reactjs/hooks/useDisconnectOnChainTypeChange.js +1 -1
  377. package/reactjs/hooks/useDisconnectOnChainTypeChange.mjs +12 -12
  378. package/reactjs/hooks/useFetchBridgeData.d.ts +2 -2
  379. package/reactjs/hooks/useFetchBridgeData.js +1 -1
  380. package/reactjs/hooks/useFetchBridgeData.mjs +2 -44
  381. package/reactjs/hooks/useFetchTokens.d.ts +1 -1
  382. package/reactjs/hooks/useFetchTokens.js +1 -1
  383. package/reactjs/hooks/useFetchTokens.mjs +2 -92
  384. package/reactjs/hooks/useGenericSignMessage.js +1 -1
  385. package/reactjs/hooks/useGenericSignMessage.mjs +37 -54
  386. package/reactjs/hooks/useGetChainId.js +1 -1
  387. package/reactjs/hooks/useGetChainId.mjs +9 -9
  388. package/reactjs/hooks/useNamespaceAddress.d.ts +0 -1
  389. package/reactjs/hooks/useNamespaceAddress.js +1 -1
  390. package/reactjs/hooks/useNamespaceAddress.mjs +12 -15
  391. package/reactjs/hooks/useResolveTokenChain.d.ts +0 -1
  392. package/reactjs/hooks/useResolveTokenChain.js +1 -1
  393. package/reactjs/hooks/useResolveTokenChain.mjs +13 -15
  394. package/reactjs/hooks/useSendTransactions.d.ts +0 -1
  395. package/reactjs/hooks/useSendTransactions.js +1 -1
  396. package/reactjs/hooks/useSendTransactions.mjs +11 -20
  397. package/reactjs/hooks/useSignTransaction.d.ts +509 -0
  398. package/reactjs/hooks/useSignTransaction.js +1 -1
  399. package/reactjs/hooks/useSignTransaction.mjs +59 -85
  400. package/reactjs/hooks/useSuiConnect.js +1 -1
  401. package/reactjs/hooks/useSuiConnect.mjs +68 -67
  402. package/reactjs/hooks/validation/index.js +1 -1
  403. package/reactjs/hooks/validation/index.mjs +5 -10
  404. package/reactjs/hooks/validation/useAmountSchema.js +1 -1
  405. package/reactjs/hooks/validation/useAmountSchema.mjs +9 -11
  406. package/reactjs/hooks/validation/useSecondAmountSchema.js +1 -1
  407. package/reactjs/hooks/validation/useSecondAmountSchema.mjs +5 -8
  408. package/reactjs/hooks/validation/useTestHasEnoughFunds.d.ts +0 -1
  409. package/reactjs/hooks/validation/useTestHasEnoughFunds.js +1 -1
  410. package/reactjs/hooks/validation/useTestHasEnoughFunds.mjs +20 -27
  411. package/reactjs/hooks/validation/useTestIsConnected.d.ts +0 -1
  412. package/reactjs/hooks/validation/useTestIsConnected.js +1 -1
  413. package/reactjs/hooks/validation/useTestIsConnected.mjs +15 -20
  414. package/reactjs/index.d.ts +0 -1
  415. package/reactjs/index.js +1 -1
  416. package/reactjs/index.mjs +70 -157
  417. package/reactjs/init/index.js +1 -1
  418. package/reactjs/init/index.mjs +2 -5
  419. package/reactjs/init/init.d.ts +2 -3
  420. package/reactjs/init/init.js +1 -1
  421. package/reactjs/init/init.mjs +113 -112
  422. package/reactjs/init/isMobileInjectedDappBrowser.js +1 -1
  423. package/reactjs/init/isMobileInjectedDappBrowser.mjs +6 -7
  424. package/reactjs/queries/index.js +1 -1
  425. package/reactjs/queries/index.mjs +7 -17
  426. package/reactjs/queries/useCheckAccount.query.d.ts +1 -2
  427. package/reactjs/queries/useCheckAccount.query.js +1 -1
  428. package/reactjs/queries/useCheckAccount.query.mjs +35 -34
  429. package/reactjs/queries/useGetAllTokens.query.d.ts +1 -2
  430. package/reactjs/queries/useGetAllTokens.query.js +1 -1
  431. package/reactjs/queries/useGetAllTokens.query.mjs +24 -30
  432. package/reactjs/queries/useGetChains.query.d.ts +1 -2
  433. package/reactjs/queries/useGetChains.query.js +1 -1
  434. package/reactjs/queries/useGetChains.query.mjs +28 -31
  435. package/reactjs/queries/useGetHistory.query.d.ts +2 -3
  436. package/reactjs/queries/useGetHistory.query.js +1 -1
  437. package/reactjs/queries/useGetHistory.query.mjs +50 -64
  438. package/reactjs/queries/useGetMvxTokensBalances.query.d.ts +3 -4
  439. package/reactjs/queries/useGetMvxTokensBalances.query.js +1 -1
  440. package/reactjs/queries/useGetMvxTokensBalances.query.mjs +44 -56
  441. package/reactjs/queries/useGetNonMvxTokensBalances.query.d.ts +3 -4
  442. package/reactjs/queries/useGetNonMvxTokensBalances.query.js +1 -1
  443. package/reactjs/queries/useGetNonMvxTokensBalances.query.mjs +2 -75
  444. package/reactjs/queries/useGetRate.mutation.d.ts +0 -1
  445. package/reactjs/queries/useGetRate.mutation.js +1 -1
  446. package/reactjs/queries/useGetRate.mutation.mjs +12 -14
  447. package/reactjs/reexports.d.ts +2 -3
  448. package/reactjs/reexports.js +1 -1
  449. package/reactjs/reexports.mjs +3 -15
  450. package/reactjs/utils/delay.js +1 -1
  451. package/reactjs/utils/delay.mjs +5 -5
  452. package/reactjs/utils/formatAmount.js +1 -1
  453. package/reactjs/utils/formatAmount.mjs +11 -22
  454. package/reactjs/utils/getCleanStringAmount.js +1 -1
  455. package/reactjs/utils/getCleanStringAmount.mjs +11 -8
  456. package/reactjs/utils/getCompletePathname.js +1 -1
  457. package/reactjs/utils/getCompletePathname.mjs +5 -5
  458. package/reactjs/utils/getInitialTokens.js +1 -1
  459. package/reactjs/utils/getInitialTokens.mjs +10 -10
  460. package/reactjs/utils/hasEnoughFunds.js +1 -1
  461. package/reactjs/utils/hasEnoughFunds.mjs +9 -15
  462. package/reactjs/utils/index.js +1 -1
  463. package/reactjs/utils/index.mjs +12 -25
  464. package/reactjs/utils/isStringFloat.js +1 -1
  465. package/reactjs/utils/isStringFloat.mjs +10 -13
  466. package/reactjs/utils/mxClsx.d.ts +0 -1
  467. package/reactjs/utils/mxClsx.js +1 -1
  468. package/reactjs/utils/mxClsx.mjs +5 -5
  469. package/reactjs/utils/pipe.js +1 -1
  470. package/reactjs/utils/pipe.mjs +13 -20
  471. package/reactjs/utils/removeCommas.js +1 -1
  472. package/reactjs/utils/removeCommas.mjs +4 -4
  473. package/reactjs/utils/roundAmount.js +1 -1
  474. package/reactjs/utils/roundAmount.mjs +15 -19
  475. package/reactjs/utils/testNumber.js +1 -1
  476. package/reactjs/utils/testNumber.mjs +4 -4
  477. package/store/inMemoryStore.js +1 -1
  478. package/store/inMemoryStore.mjs +30 -34
  479. package/style.css +2 -1
  480. package/types/batchTransactions.d.ts +0 -1
  481. package/types/batchTransactions.js +0 -1
  482. package/types/batchTransactions.mjs +0 -1
  483. package/types/chainType.js +1 -1
  484. package/types/chainType.mjs +6 -4
  485. package/types/errors.js +1 -1
  486. package/types/errors.mjs +15 -19
  487. package/types/index.js +0 -1
  488. package/types/index.mjs +0 -1
  489. package/types/providerType.js +1 -1
  490. package/types/providerType.mjs +6 -4
  491. package/types/rate.d.ts +0 -1
  492. package/types/rate.js +0 -1
  493. package/types/rate.mjs +0 -1
  494. package/types/token.d.ts +0 -1
  495. package/types/token.js +0 -1
  496. package/types/token.mjs +0 -1
  497. package/types/transaction.d.ts +3 -4
  498. package/types/transaction.js +0 -1
  499. package/types/transaction.mjs +0 -1
  500. package/types/utxo.js +0 -1
  501. package/types/utxo.mjs +0 -1
  502. package/useFetchBridgeData-B5xt9GbW.js +2 -0
  503. package/useFetchBridgeData-C_hZjzd_.mjs +142 -0
  504. package/all-networks--dfVLHLJ.js +0 -2
  505. package/all-networks-Czd8zS1n.mjs +0 -4
  506. package/default-D0Jk5ROI.mjs +0 -4
  507. package/default-DbU6vPaB.js +0 -2
  508. package/react.esm-B0AMOHxa.js +0 -73
  509. package/react.esm-BxvJJ86Q.mjs +0 -9949
@@ -1,52 +1,64 @@
1
- import { RateConfirmationMismatchError as r } from "../../types/errors.mjs";
2
- import { assertRateConfirmationMatchesIntent as e } from "../assertRateConfirmationMatchesIntent.mjs";
3
- const o = (n = {}) => ({
4
- to: "0xdeadbeef",
5
- data: "0x",
6
- gasLimit: BigInt(21e3),
7
- value: BigInt(0),
8
- account: "0xSender",
9
- txHash: "",
10
- ...n
1
+ import { RateConfirmationMismatchError as e } from "../../types/errors.mjs";
2
+ import { assertRateConfirmationMatchesIntent as t } from "../assertRateConfirmationMatchesIntent.mjs";
3
+ //#region src/helpers/tests/assertRateConfirmationMatchesIntent.spec.ts
4
+ var n = (e = {}) => ({
5
+ to: "0xdeadbeef",
6
+ data: "0x",
7
+ gasLimit: BigInt(21e3),
8
+ value: BigInt(0),
9
+ account: "0xSender",
10
+ txHash: "",
11
+ ...e
11
12
  });
12
13
  describe("assertRateConfirmationMatchesIntent", () => {
13
- const n = { fromChainId: "1", sender: "0xSender" };
14
- it("does not throw for an empty transactions array", () => {
15
- expect(() => e(n, [])).not.toThrow();
16
- }), it("does not throw when chainID and account match", () => {
17
- const t = o({ fromChainId: "1", account: "0xSender" });
18
- expect(
19
- () => e(n, [t])
20
- ).not.toThrow();
21
- }), it("does not throw when chainID is undefined (field absent)", () => {
22
- const t = o({ account: "0xSender" });
23
- expect(
24
- () => e(n, [t])
25
- ).not.toThrow();
26
- }), it("throws RateConfirmationMismatchError when chainID does not match fromChainId", () => {
27
- const t = o({ fromChainId: "999", account: "0xSender" });
28
- expect(() => e(n, [t])).toThrow(
29
- r
30
- );
31
- }), it("throws RateConfirmationMismatchError when account does not match sender (case-insensitive)", () => {
32
- const t = o({ account: "0xAttacker" });
33
- expect(() => e(n, [t])).toThrow(
34
- r
35
- );
36
- }), it("does not throw when account matches sender case-insensitively", () => {
37
- const t = o({ account: "0xsender" }), a = { fromChainId: "1", sender: "0xSENDER" };
38
- expect(
39
- () => e(a, [t])
40
- ).not.toThrow();
41
- }), it("throws RateConfirmationMismatchError when MvX sender field does not match", () => {
42
- const t = o({ account: "0xSender", sender: "erd1attacker" }), a = { fromChainId: "1", sender: "erd1legit" };
43
- expect(() => e(a, [t])).toThrow(
44
- r
45
- );
46
- }), it("throws on the bad transaction when mixed valid and invalid transactions are present", () => {
47
- const t = o({ fromChainId: "1", account: "0xSender" }), a = o({ fromChainId: "999", account: "0xSender" });
48
- expect(
49
- () => e(n, [t, a])
50
- ).toThrow(r);
51
- });
14
+ let r = {
15
+ fromChainId: "1",
16
+ sender: "0xSender"
17
+ };
18
+ it("does not throw for an empty transactions array", () => {
19
+ expect(() => t(r, [])).not.toThrow();
20
+ }), it("does not throw when chainID and account match", () => {
21
+ let e = n({
22
+ fromChainId: "1",
23
+ account: "0xSender"
24
+ });
25
+ expect(() => t(r, [e])).not.toThrow();
26
+ }), it("does not throw when chainID is undefined (field absent)", () => {
27
+ let e = n({ account: "0xSender" });
28
+ expect(() => t(r, [e])).not.toThrow();
29
+ }), it("throws RateConfirmationMismatchError when chainID does not match fromChainId", () => {
30
+ let i = n({
31
+ fromChainId: "999",
32
+ account: "0xSender"
33
+ });
34
+ expect(() => t(r, [i])).toThrow(e);
35
+ }), it("throws RateConfirmationMismatchError when account does not match sender (case-insensitive)", () => {
36
+ let i = n({ account: "0xAttacker" });
37
+ expect(() => t(r, [i])).toThrow(e);
38
+ }), it("does not throw when account matches sender case-insensitively", () => {
39
+ let e = n({ account: "0xsender" }), r = {
40
+ fromChainId: "1",
41
+ sender: "0xSENDER"
42
+ };
43
+ expect(() => t(r, [e])).not.toThrow();
44
+ }), it("throws RateConfirmationMismatchError when MvX sender field does not match", () => {
45
+ let r = n({
46
+ account: "0xSender",
47
+ sender: "erd1attacker"
48
+ }), i = {
49
+ fromChainId: "1",
50
+ sender: "erd1legit"
51
+ };
52
+ expect(() => t(i, [r])).toThrow(e);
53
+ }), it("throws on the bad transaction when mixed valid and invalid transactions are present", () => {
54
+ let i = n({
55
+ fromChainId: "1",
56
+ account: "0xSender"
57
+ }), a = n({
58
+ fromChainId: "999",
59
+ account: "0xSender"
60
+ });
61
+ expect(() => t(r, [i, a])).toThrow(e);
62
+ });
52
63
  });
64
+ //#endregion
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const s=require("../base64Utils.js");describe("base64Utils",()=>{it("encodes a string to base64",()=>{expect(s.encodeToBase64("Hello, World!")).toBe("SGVsbG8sIFdvcmxkIQ==")}),it("decodes a base64 string",()=>{expect(s.decodeBase64("SGVsbG8sIFdvcmxkIQ==")).toBe("Hello, World!")}),it("encodes an empty string to base64",()=>{expect(s.encodeToBase64("")).toBe("")}),it("decodes an empty base64 string",()=>{expect(s.decodeBase64("")).toBe("")}),it("retrieve the given input if is an invalid base64 string",()=>{const e="Invalid base64 string",t=s.decodeBase64(e);expect(t).toEqual(e)})});
2
+ const e=require("../base64Utils.js");describe(`base64Utils`,()=>{it(`encodes a string to base64`,()=>{expect(e.encodeToBase64(`Hello, World!`)).toBe(`SGVsbG8sIFdvcmxkIQ==`)}),it(`decodes a base64 string`,()=>{expect(e.decodeBase64(`SGVsbG8sIFdvcmxkIQ==`)).toBe(`Hello, World!`)}),it(`encodes an empty string to base64`,()=>{expect(e.encodeToBase64(``)).toBe(``)}),it(`decodes an empty base64 string`,()=>{expect(e.decodeBase64(``)).toBe(``)}),it(`retrieve the given input if is an invalid base64 string`,()=>{let t=`Invalid base64 string`,n=e.decodeBase64(t);expect(n).toEqual(t)})});
@@ -1,15 +1,17 @@
1
- import { encodeToBase64 as n, decodeBase64 as s } from "../base64Utils.mjs";
1
+ import { decodeBase64 as e, encodeToBase64 as t } from "../base64Utils.mjs";
2
+ //#region src/helpers/tests/base64Utils.spec.ts
2
3
  describe("base64Utils", () => {
3
- it("encodes a string to base64", () => {
4
- expect(n("Hello, World!")).toBe("SGVsbG8sIFdvcmxkIQ==");
5
- }), it("decodes a base64 string", () => {
6
- expect(s("SGVsbG8sIFdvcmxkIQ==")).toBe("Hello, World!");
7
- }), it("encodes an empty string to base64", () => {
8
- expect(n("")).toBe("");
9
- }), it("decodes an empty base64 string", () => {
10
- expect(s("")).toBe("");
11
- }), it("retrieve the given input if is an invalid base64 string", () => {
12
- const t = "Invalid base64 string", e = s(t);
13
- expect(e).toEqual(t);
14
- });
4
+ it("encodes a string to base64", () => {
5
+ expect(t("Hello, World!")).toBe("SGVsbG8sIFdvcmxkIQ==");
6
+ }), it("decodes a base64 string", () => {
7
+ expect(e("SGVsbG8sIFdvcmxkIQ==")).toBe("Hello, World!");
8
+ }), it("encodes an empty string to base64", () => {
9
+ expect(t("")).toBe("");
10
+ }), it("decodes an empty base64 string", () => {
11
+ expect(e("")).toBe("");
12
+ }), it("retrieve the given input if is an invalid base64 string", () => {
13
+ let t = "Invalid base64 string", n = e(t);
14
+ expect(n).toEqual(t);
15
+ });
15
16
  });
17
+ //#endregion
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const t=require("../decodeLoginToken.js");describe("decodeLoginToken",()=>{it("decodes a valid login token",()=>{const e="aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9",o={origin:"https://devnet.template-dapp.multiversx.com",blockHash:"ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651",ttl:86400,extraInfo:{timestamp:1733489400}};expect(t.decodeLoginToken(e)).toEqual(o)}),it("returns null for an invalid login token",()=>{expect(t.decodeLoginToken("invalid.token.here")).toBeNull()}),it("returns null for an empty token",()=>{expect(t.decodeLoginToken("")).toBeNull()}),it("returns null for a token with less than 4 parts",()=>{expect(t.decodeLoginToken("part1.part2.part3")).toBeNull()}),it("returns null for a token with more than 4 parts",()=>{expect(t.decodeLoginToken("part1.part2.part3.part4.part5")).toBeNull()}),it("returns null for a token with invalid JSON in extraInfo",()=>{expect(t.decodeLoginToken("b3JpZ2lu.blockHash.3600.invalidBase64")).toBeNull()})});
2
+ const e=require("../decodeLoginToken.js");describe(`decodeLoginToken`,()=>{it(`decodes a valid login token`,()=>{expect(e.decodeLoginToken(`aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9`)).toEqual({origin:`https://devnet.template-dapp.multiversx.com`,blockHash:`ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651`,ttl:86400,extraInfo:{timestamp:1733489400}})}),it(`returns null for an invalid login token`,()=>{expect(e.decodeLoginToken(`invalid.token.here`)).toBeNull()}),it(`returns null for an empty token`,()=>{expect(e.decodeLoginToken(``)).toBeNull()}),it(`returns null for a token with less than 4 parts`,()=>{expect(e.decodeLoginToken(`part1.part2.part3`)).toBeNull()}),it(`returns null for a token with more than 4 parts`,()=>{expect(e.decodeLoginToken(`part1.part2.part3.part4.part5`)).toBeNull()}),it(`returns null for a token with invalid JSON in extraInfo`,()=>{expect(e.decodeLoginToken(`b3JpZ2lu.blockHash.3600.invalidBase64`)).toBeNull()})});
@@ -1,22 +1,23 @@
1
1
  import { decodeLoginToken as e } from "../decodeLoginToken.mjs";
2
+ //#region src/helpers/tests/decodeLoginToken.spec.ts
2
3
  describe("decodeLoginToken", () => {
3
- it("decodes a valid login token", () => {
4
- const t = "aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9", n = {
5
- origin: "https://devnet.template-dapp.multiversx.com",
6
- blockHash: "ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651",
7
- ttl: 86400,
8
- extraInfo: { timestamp: 1733489400 }
9
- };
10
- expect(e(t)).toEqual(n);
11
- }), it("returns null for an invalid login token", () => {
12
- expect(e("invalid.token.here")).toBeNull();
13
- }), it("returns null for an empty token", () => {
14
- expect(e("")).toBeNull();
15
- }), it("returns null for a token with less than 4 parts", () => {
16
- expect(e("part1.part2.part3")).toBeNull();
17
- }), it("returns null for a token with more than 4 parts", () => {
18
- expect(e("part1.part2.part3.part4.part5")).toBeNull();
19
- }), it("returns null for a token with invalid JSON in extraInfo", () => {
20
- expect(e("b3JpZ2lu.blockHash.3600.invalidBase64")).toBeNull();
21
- });
4
+ it("decodes a valid login token", () => {
5
+ expect(e("aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9")).toEqual({
6
+ origin: "https://devnet.template-dapp.multiversx.com",
7
+ blockHash: "ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651",
8
+ ttl: 86400,
9
+ extraInfo: { timestamp: 1733489400 }
10
+ });
11
+ }), it("returns null for an invalid login token", () => {
12
+ expect(e("invalid.token.here")).toBeNull();
13
+ }), it("returns null for an empty token", () => {
14
+ expect(e("")).toBeNull();
15
+ }), it("returns null for a token with less than 4 parts", () => {
16
+ expect(e("part1.part2.part3")).toBeNull();
17
+ }), it("returns null for a token with more than 4 parts", () => {
18
+ expect(e("part1.part2.part3.part4.part5")).toBeNull();
19
+ }), it("returns null for a token with invalid JSON in extraInfo", () => {
20
+ expect(e("b3JpZ2lu.blockHash.3600.invalidBase64")).toBeNull();
21
+ });
22
22
  });
23
+ //#endregion
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const a=require("../decodeToken.js");describe("decodeToken",()=>{it("decodes a valid native auth token",async()=>{const e="ZXJkMXdoOWMwc2pyMnhuOGh6ZjAybHd3Y3I0amsyczg0dGF0OXVkMmthcTZ6cjd4enB2bDlsNXE4YXdtZXg.YUhSMGNITTZMeTlrWlhadVpYUXVkR1Z0Y0d4aGRHVXRaR0Z3Y0M1dGRXeDBhWFpsY25ONExtTnZiUS5lZjc2YjRjNzZlZjZlMTNhNjM5MDc2N2ZjNzhhODhjYTRiYmI1OTE4YTJiOWRkYzQ0OTQyOTI3NjkzNjUwNjUxLjg2NDAwLmV5SjBhVzFsYzNSaGJYQWlPakUzTXpNME9EazBNREI5.04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01",c={address:"erd1wh9c0sjr2xn8hzf02lwwcr4jk2s84tat9ud2kaq6zr7xzpvl9l5q8awmex",blockHash:"ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651",body:"aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9",extraInfo:{timestamp:1733489400},origin:"https://devnet.template-dapp.multiversx.com",signature:"04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01",ttl:86400};expect(a.decodeToken(e)).toEqual(c)}),it("returns null for an invalid native auth token",async()=>{expect(a.decodeToken("invalid.token.here")).toBeNull()}),it("returns null for an empty token",async()=>{expect(a.decodeToken("")).toBeNull()})});
2
+ const e=require("../decodeToken.js");describe(`decodeToken`,()=>{it(`decodes a valid native auth token`,async()=>{expect(e.decodeToken(`ZXJkMXdoOWMwc2pyMnhuOGh6ZjAybHd3Y3I0amsyczg0dGF0OXVkMmthcTZ6cjd4enB2bDlsNXE4YXdtZXg.YUhSMGNITTZMeTlrWlhadVpYUXVkR1Z0Y0d4aGRHVXRaR0Z3Y0M1dGRXeDBhWFpsY25ONExtTnZiUS5lZjc2YjRjNzZlZjZlMTNhNjM5MDc2N2ZjNzhhODhjYTRiYmI1OTE4YTJiOWRkYzQ0OTQyOTI3NjkzNjUwNjUxLjg2NDAwLmV5SjBhVzFsYzNSaGJYQWlPakUzTXpNME9EazBNREI5.04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01`)).toEqual({address:`erd1wh9c0sjr2xn8hzf02lwwcr4jk2s84tat9ud2kaq6zr7xzpvl9l5q8awmex`,blockHash:`ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651`,body:`aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9`,extraInfo:{timestamp:1733489400},origin:`https://devnet.template-dapp.multiversx.com`,signature:`04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01`,ttl:86400})}),it(`returns null for an invalid native auth token`,async()=>{expect(e.decodeToken(`invalid.token.here`)).toBeNull()}),it(`returns null for an empty token`,async()=>{expect(e.decodeToken(``)).toBeNull()})});
@@ -1,21 +1,20 @@
1
- import { decodeToken as a } from "../decodeToken.mjs";
1
+ import { decodeToken as e } from "../decodeToken.mjs";
2
+ //#region src/helpers/tests/decodeToken.spec.ts
2
3
  describe("decodeToken", () => {
3
- it("decodes a valid native auth token", async () => {
4
- const e = "ZXJkMXdoOWMwc2pyMnhuOGh6ZjAybHd3Y3I0amsyczg0dGF0OXVkMmthcTZ6cjd4enB2bDlsNXE4YXdtZXg.YUhSMGNITTZMeTlrWlhadVpYUXVkR1Z0Y0d4aGRHVXRaR0Z3Y0M1dGRXeDBhWFpsY25ONExtTnZiUS5lZjc2YjRjNzZlZjZlMTNhNjM5MDc2N2ZjNzhhODhjYTRiYmI1OTE4YTJiOWRkYzQ0OTQyOTI3NjkzNjUwNjUxLjg2NDAwLmV5SjBhVzFsYzNSaGJYQWlPakUzTXpNME9EazBNREI5.04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01", c = {
5
- address: "erd1wh9c0sjr2xn8hzf02lwwcr4jk2s84tat9ud2kaq6zr7xzpvl9l5q8awmex",
6
- blockHash: "ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651",
7
- body: "aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9",
8
- extraInfo: {
9
- timestamp: 1733489400
10
- },
11
- origin: "https://devnet.template-dapp.multiversx.com",
12
- signature: "04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01",
13
- ttl: 86400
14
- };
15
- expect(a(e)).toEqual(c);
16
- }), it("returns null for an invalid native auth token", async () => {
17
- expect(a("invalid.token.here")).toBeNull();
18
- }), it("returns null for an empty token", async () => {
19
- expect(a("")).toBeNull();
20
- });
4
+ it("decodes a valid native auth token", async () => {
5
+ expect(e("ZXJkMXdoOWMwc2pyMnhuOGh6ZjAybHd3Y3I0amsyczg0dGF0OXVkMmthcTZ6cjd4enB2bDlsNXE4YXdtZXg.YUhSMGNITTZMeTlrWlhadVpYUXVkR1Z0Y0d4aGRHVXRaR0Z3Y0M1dGRXeDBhWFpsY25ONExtTnZiUS5lZjc2YjRjNzZlZjZlMTNhNjM5MDc2N2ZjNzhhODhjYTRiYmI1OTE4YTJiOWRkYzQ0OTQyOTI3NjkzNjUwNjUxLjg2NDAwLmV5SjBhVzFsYzNSaGJYQWlPakUzTXpNME9EazBNREI5.04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01")).toEqual({
6
+ address: "erd1wh9c0sjr2xn8hzf02lwwcr4jk2s84tat9ud2kaq6zr7xzpvl9l5q8awmex",
7
+ blockHash: "ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651",
8
+ body: "aHR0cHM6Ly9kZXZuZXQudGVtcGxhdGUtZGFwcC5tdWx0aXZlcnN4LmNvbQ.ef76b4c76ef6e13a6390767fc78a88ca4bbb5918a2b9ddc44942927693650651.86400.eyJ0aW1lc3RhbXAiOjE3MzM0ODk0MDB9",
9
+ extraInfo: { timestamp: 1733489400 },
10
+ origin: "https://devnet.template-dapp.multiversx.com",
11
+ signature: "04a986df7f0142837f9b1ca1ae4829f7b471e4c3470602ca6a16f2a4d7c6616c4e7628a93b4ce87d9534e95ab9215f893faeb9e0904e1d834007c16e43b12d01",
12
+ ttl: 86400
13
+ });
14
+ }), it("returns null for an invalid native auth token", async () => {
15
+ expect(e("invalid.token.here")).toBeNull();
16
+ }), it("returns null for an empty token", async () => {
17
+ expect(e("")).toBeNull();
18
+ });
21
19
  });
20
+ //#endregion
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const a=require("../../types/chainType.js"),e=require("../isValidAddressForChainType.js");describe("isValidAddressForChainType",()=>{describe("EVM",()=>{it("accepts a valid checksummed EVM address",()=>{expect(e.isValidAddressForChainType("0x71C7656EC7ab88b098defB751B7401B5f6d8976F",a.ChainType.evm)).toBe(!0)}),it("accepts a lowercase EVM address",()=>{expect(e.isValidAddressForChainType("0x71c7656ec7ab88b098defb751b7401b5f6d8976f",a.ChainType.evm)).toBe(!0)}),it("rejects a non-EVM string",()=>{expect(e.isValidAddressForChainType("not-an-address",a.ChainType.evm)).toBe(!1)})}),describe("MVX",()=>{it("accepts a valid erd1 address",()=>{expect(e.isValidAddressForChainType("erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx",a.ChainType.mvx)).toBe(!0)}),it("rejects an EVM address for MVX",()=>{expect(e.isValidAddressForChainType("0x71C7656EC7ab88b098defB751B7401B5f6d8976F",a.ChainType.mvx)).toBe(!1)})}),describe("Solana",()=>{it("accepts a valid base58 Solana address",()=>{expect(e.isValidAddressForChainType("9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",a.ChainType.sol)).toBe(!0)}),it("rejects an invalid Solana address",()=>{expect(e.isValidAddressForChainType("notasoladdr",a.ChainType.sol)).toBe(!1)})}),describe("Sui",()=>{it("accepts a valid Sui address (0x + 64 hex chars)",()=>{expect(e.isValidAddressForChainType("0x"+"a".repeat(64),a.ChainType.sui)).toBe(!0)}),it("rejects an EVM-shaped address (0x + 40 hex chars) for Sui — the reported bug",()=>{expect(e.isValidAddressForChainType("0x2566c27aaafa46818c4d91fd4ab88137d26764fd",a.ChainType.sui)).toBe(!1)}),it("rejects a non-hex string for Sui",()=>{expect(e.isValidAddressForChainType("notasuiaddr",a.ChainType.sui)).toBe(!1)})}),describe("BTC",()=>{it("accepts a valid bech32 mainnet address",()=>{expect(e.isValidAddressForChainType("bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",a.ChainType.btc)).toBe(!0)}),it("accepts a valid legacy P2PKH address",()=>{expect(e.isValidAddressForChainType("1BoatSLRHtKNngkdXEeobR76b53LETtpyT",a.ChainType.btc)).toBe(!0)}),it("rejects a garbage string for BTC",()=>{expect(e.isValidAddressForChainType("notabtcaddr",a.ChainType.btc)).toBe(!1)})}),describe("edge cases",()=>{it("returns true for undefined address (no constraint)",()=>{expect(e.isValidAddressForChainType(void 0,a.ChainType.evm)).toBe(!1)}),it("returns true for undefined chainType (no constraint)",()=>{expect(e.isValidAddressForChainType("0x71C7656EC7ab88b098defB751B7401B5f6d8976F",void 0)).toBe(!1)})}),describe("burn / null addresses",()=>{it("rejects EVM all-zero burn address",()=>{expect(e.isValidAddressForChainType("0x0000000000000000000000000000000000000000",a.ChainType.evm)).toBe(!1)}),it("rejects Sui all-zero burn address",()=>{expect(e.isValidAddressForChainType("0x0000000000000000000000000000000000000000000000000000000000000000",a.ChainType.sui)).toBe(!1)}),it("rejects MultiversX dead address",()=>{expect(e.isValidAddressForChainType("erd1deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaqtv0gag",a.ChainType.mvx)).toBe(!1)}),it("rejects BTC unspendable genesis burn address",()=>{expect(e.isValidAddressForChainType("1111111111111111111114oLvT2",a.ChainType.btc)).toBe(!1)}),it("rejects EVM all-zero burn address regardless of case",()=>{expect(e.isValidAddressForChainType("0X0000000000000000000000000000000000000000".toLowerCase(),a.ChainType.evm)).toBe(!1)})})});
2
+ const e=require("../../types/chainType.js"),t=require("../isValidAddressForChainType.js");describe(`isValidAddressForChainType`,()=>{describe(`EVM`,()=>{it(`accepts a valid checksummed EVM address`,()=>{expect(t.isValidAddressForChainType(`0x71C7656EC7ab88b098defB751B7401B5f6d8976F`,e.ChainType.evm)).toBe(!0)}),it(`accepts a lowercase EVM address`,()=>{expect(t.isValidAddressForChainType(`0x71c7656ec7ab88b098defb751b7401b5f6d8976f`,e.ChainType.evm)).toBe(!0)}),it(`rejects a non-EVM string`,()=>{expect(t.isValidAddressForChainType(`not-an-address`,e.ChainType.evm)).toBe(!1)})}),describe(`MVX`,()=>{it(`accepts a valid erd1 address`,()=>{expect(t.isValidAddressForChainType(`erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx`,e.ChainType.mvx)).toBe(!0)}),it(`rejects an EVM address for MVX`,()=>{expect(t.isValidAddressForChainType(`0x71C7656EC7ab88b098defB751B7401B5f6d8976F`,e.ChainType.mvx)).toBe(!1)})}),describe(`Solana`,()=>{it(`accepts a valid base58 Solana address`,()=>{expect(t.isValidAddressForChainType(`9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM`,e.ChainType.sol)).toBe(!0)}),it(`rejects an invalid Solana address`,()=>{expect(t.isValidAddressForChainType(`notasoladdr`,e.ChainType.sol)).toBe(!1)})}),describe(`Sui`,()=>{it(`accepts a valid Sui address (0x + 64 hex chars)`,()=>{expect(t.isValidAddressForChainType(`0x`+`a`.repeat(64),e.ChainType.sui)).toBe(!0)}),it(`rejects an EVM-shaped address (0x + 40 hex chars) for Sui — the reported bug`,()=>{expect(t.isValidAddressForChainType(`0x2566c27aaafa46818c4d91fd4ab88137d26764fd`,e.ChainType.sui)).toBe(!1)}),it(`rejects a non-hex string for Sui`,()=>{expect(t.isValidAddressForChainType(`notasuiaddr`,e.ChainType.sui)).toBe(!1)})}),describe(`BTC`,()=>{it(`accepts a valid bech32 mainnet address`,()=>{expect(t.isValidAddressForChainType(`bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq`,e.ChainType.btc)).toBe(!0)}),it(`accepts a valid legacy P2PKH address`,()=>{expect(t.isValidAddressForChainType(`1BoatSLRHtKNngkdXEeobR76b53LETtpyT`,e.ChainType.btc)).toBe(!0)}),it(`rejects a garbage string for BTC`,()=>{expect(t.isValidAddressForChainType(`notabtcaddr`,e.ChainType.btc)).toBe(!1)})}),describe(`edge cases`,()=>{it(`returns true for undefined address (no constraint)`,()=>{expect(t.isValidAddressForChainType(void 0,e.ChainType.evm)).toBe(!1)}),it(`returns true for undefined chainType (no constraint)`,()=>{expect(t.isValidAddressForChainType(`0x71C7656EC7ab88b098defB751B7401B5f6d8976F`,void 0)).toBe(!1)})}),describe(`burn / null addresses`,()=>{it(`rejects EVM all-zero burn address`,()=>{expect(t.isValidAddressForChainType(`0x0000000000000000000000000000000000000000`,e.ChainType.evm)).toBe(!1)}),it(`rejects Sui all-zero burn address`,()=>{expect(t.isValidAddressForChainType(`0x0000000000000000000000000000000000000000000000000000000000000000`,e.ChainType.sui)).toBe(!1)}),it(`rejects MultiversX dead address`,()=>{expect(t.isValidAddressForChainType(`erd1deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaqtv0gag`,e.ChainType.mvx)).toBe(!1)}),it(`rejects BTC unspendable genesis burn address`,()=>{expect(t.isValidAddressForChainType(`1111111111111111111114oLvT2`,e.ChainType.btc)).toBe(!1)}),it(`rejects EVM all-zero burn address regardless of case`,()=>{expect(t.isValidAddressForChainType(`0x0000000000000000000000000000000000000000`,e.ChainType.evm)).toBe(!1)})})});
@@ -1,136 +1,61 @@
1
- import { ChainType as a } from "../../types/chainType.mjs";
2
- import { isValidAddressForChainType as e } from "../isValidAddressForChainType.mjs";
1
+ import { ChainType as e } from "../../types/chainType.mjs";
2
+ import { isValidAddressForChainType as t } from "../isValidAddressForChainType.mjs";
3
+ //#region src/helpers/tests/isValidAddressForChainType.spec.ts
3
4
  describe("isValidAddressForChainType", () => {
4
- describe("EVM", () => {
5
- it("accepts a valid checksummed EVM address", () => {
6
- expect(
7
- e(
8
- "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
9
- a.evm
10
- )
11
- ).toBe(!0);
12
- }), it("accepts a lowercase EVM address", () => {
13
- expect(
14
- e(
15
- "0x71c7656ec7ab88b098defb751b7401b5f6d8976f",
16
- a.evm
17
- )
18
- ).toBe(!0);
19
- }), it("rejects a non-EVM string", () => {
20
- expect(e("not-an-address", a.evm)).toBe(
21
- !1
22
- );
23
- });
24
- }), describe("MVX", () => {
25
- it("accepts a valid erd1 address", () => {
26
- expect(
27
- e(
28
- "erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx",
29
- a.mvx
30
- )
31
- ).toBe(!0);
32
- }), it("rejects an EVM address for MVX", () => {
33
- expect(
34
- e(
35
- "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
36
- a.mvx
37
- )
38
- ).toBe(!1);
39
- });
40
- }), describe("Solana", () => {
41
- it("accepts a valid base58 Solana address", () => {
42
- expect(
43
- e(
44
- "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
45
- a.sol
46
- )
47
- ).toBe(!0);
48
- }), it("rejects an invalid Solana address", () => {
49
- expect(e("notasoladdr", a.sol)).toBe(
50
- !1
51
- );
52
- });
53
- }), describe("Sui", () => {
54
- it("accepts a valid Sui address (0x + 64 hex chars)", () => {
55
- expect(
56
- e("0x" + "a".repeat(64), a.sui)
57
- ).toBe(!0);
58
- }), it("rejects an EVM-shaped address (0x + 40 hex chars) for Sui — the reported bug", () => {
59
- expect(
60
- e(
61
- "0x2566c27aaafa46818c4d91fd4ab88137d26764fd",
62
- a.sui
63
- )
64
- ).toBe(!1);
65
- }), it("rejects a non-hex string for Sui", () => {
66
- expect(e("notasuiaddr", a.sui)).toBe(
67
- !1
68
- );
69
- });
70
- }), describe("BTC", () => {
71
- it("accepts a valid bech32 mainnet address", () => {
72
- expect(
73
- e(
74
- "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
75
- a.btc
76
- )
77
- ).toBe(!0);
78
- }), it("accepts a valid legacy P2PKH address", () => {
79
- expect(
80
- e(
81
- "1BoatSLRHtKNngkdXEeobR76b53LETtpyT",
82
- a.btc
83
- )
84
- ).toBe(!0);
85
- }), it("rejects a garbage string for BTC", () => {
86
- expect(e("notabtcaddr", a.btc)).toBe(
87
- !1
88
- );
89
- });
90
- }), describe("edge cases", () => {
91
- it("returns true for undefined address (no constraint)", () => {
92
- expect(e(void 0, a.evm)).toBe(!1);
93
- }), it("returns true for undefined chainType (no constraint)", () => {
94
- expect(
95
- e(
96
- "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
97
- void 0
98
- )
99
- ).toBe(!1);
100
- });
101
- }), describe("burn / null addresses", () => {
102
- it("rejects EVM all-zero burn address", () => {
103
- expect(
104
- e(
105
- "0x0000000000000000000000000000000000000000",
106
- a.evm
107
- )
108
- ).toBe(!1);
109
- }), it("rejects Sui all-zero burn address", () => {
110
- expect(
111
- e(
112
- "0x0000000000000000000000000000000000000000000000000000000000000000",
113
- a.sui
114
- )
115
- ).toBe(!1);
116
- }), it("rejects MultiversX dead address", () => {
117
- expect(
118
- e(
119
- "erd1deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaqtv0gag",
120
- a.mvx
121
- )
122
- ).toBe(!1);
123
- }), it("rejects BTC unspendable genesis burn address", () => {
124
- expect(
125
- e("1111111111111111111114oLvT2", a.btc)
126
- ).toBe(!1);
127
- }), it("rejects EVM all-zero burn address regardless of case", () => {
128
- expect(
129
- e(
130
- "0X0000000000000000000000000000000000000000".toLowerCase(),
131
- a.evm
132
- )
133
- ).toBe(!1);
134
- });
135
- });
5
+ describe("EVM", () => {
6
+ it("accepts a valid checksummed EVM address", () => {
7
+ expect(t("0x71C7656EC7ab88b098defB751B7401B5f6d8976F", e.evm)).toBe(!0);
8
+ }), it("accepts a lowercase EVM address", () => {
9
+ expect(t("0x71c7656ec7ab88b098defb751b7401b5f6d8976f", e.evm)).toBe(!0);
10
+ }), it("rejects a non-EVM string", () => {
11
+ expect(t("not-an-address", e.evm)).toBe(!1);
12
+ });
13
+ }), describe("MVX", () => {
14
+ it("accepts a valid erd1 address", () => {
15
+ expect(t("erd1spyavw0956vq68xj8y4tenjpq2wd5a9p2c6j8gsz7ztyrnpxrruqzu66jx", e.mvx)).toBe(!0);
16
+ }), it("rejects an EVM address for MVX", () => {
17
+ expect(t("0x71C7656EC7ab88b098defB751B7401B5f6d8976F", e.mvx)).toBe(!1);
18
+ });
19
+ }), describe("Solana", () => {
20
+ it("accepts a valid base58 Solana address", () => {
21
+ expect(t("9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM", e.sol)).toBe(!0);
22
+ }), it("rejects an invalid Solana address", () => {
23
+ expect(t("notasoladdr", e.sol)).toBe(!1);
24
+ });
25
+ }), describe("Sui", () => {
26
+ it("accepts a valid Sui address (0x + 64 hex chars)", () => {
27
+ expect(t("0x" + "a".repeat(64), e.sui)).toBe(!0);
28
+ }), it("rejects an EVM-shaped address (0x + 40 hex chars) for Sui — the reported bug", () => {
29
+ expect(t("0x2566c27aaafa46818c4d91fd4ab88137d26764fd", e.sui)).toBe(!1);
30
+ }), it("rejects a non-hex string for Sui", () => {
31
+ expect(t("notasuiaddr", e.sui)).toBe(!1);
32
+ });
33
+ }), describe("BTC", () => {
34
+ it("accepts a valid bech32 mainnet address", () => {
35
+ expect(t("bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq", e.btc)).toBe(!0);
36
+ }), it("accepts a valid legacy P2PKH address", () => {
37
+ expect(t("1BoatSLRHtKNngkdXEeobR76b53LETtpyT", e.btc)).toBe(!0);
38
+ }), it("rejects a garbage string for BTC", () => {
39
+ expect(t("notabtcaddr", e.btc)).toBe(!1);
40
+ });
41
+ }), describe("edge cases", () => {
42
+ it("returns true for undefined address (no constraint)", () => {
43
+ expect(t(void 0, e.evm)).toBe(!1);
44
+ }), it("returns true for undefined chainType (no constraint)", () => {
45
+ expect(t("0x71C7656EC7ab88b098defB751B7401B5f6d8976F", void 0)).toBe(!1);
46
+ });
47
+ }), describe("burn / null addresses", () => {
48
+ it("rejects EVM all-zero burn address", () => {
49
+ expect(t("0x0000000000000000000000000000000000000000", e.evm)).toBe(!1);
50
+ }), it("rejects Sui all-zero burn address", () => {
51
+ expect(t("0x0000000000000000000000000000000000000000000000000000000000000000", e.sui)).toBe(!1);
52
+ }), it("rejects MultiversX dead address", () => {
53
+ expect(t("erd1deaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaqtv0gag", e.mvx)).toBe(!1);
54
+ }), it("rejects BTC unspendable genesis burn address", () => {
55
+ expect(t("1111111111111111111114oLvT2", e.btc)).toBe(!1);
56
+ }), it("rejects EVM all-zero burn address regardless of case", () => {
57
+ expect(t("0x0000000000000000000000000000000000000000", e.evm)).toBe(!1);
58
+ });
59
+ });
136
60
  });
61
+ //#endregion
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const t=require("../safeImageUrl.js");describe("safeImageUrl",()=>{it("passes through a valid https:// URL unchanged",()=>{const e="https://example.com/icon.png";expect(t.safeImageUrl(e)).toBe(e)}),it("rejects an http:// URL and returns the default fallback",()=>{expect(t.safeImageUrl("http://example.com/icon.png")).toBe("")}),it("rejects a data: URL",()=>{expect(t.safeImageUrl("data:image/png;base64,abc123")).toBe("")}),it("rejects a javascript: URL",()=>{expect(t.safeImageUrl("javascript:alert(1)")).toBe("")}),it("rejects a file: URL",()=>{expect(t.safeImageUrl("file:///etc/passwd")).toBe("")}),it("rejects a blob: URL",()=>{expect(t.safeImageUrl("blob:https://example.com/some-uuid")).toBe("")}),it("rejects an empty string",()=>{expect(t.safeImageUrl("")).toBe("")}),it("rejects undefined",()=>{expect(t.safeImageUrl(void 0)).toBe("")}),it("rejects a URL longer than 2048 characters",()=>{const e="https://example.com/"+"a".repeat(2030);expect(e.length).toBeGreaterThan(2048),expect(t.safeImageUrl(e)).toBe("")}),it("allows a URL of exactly 2048 characters",()=>{const e="https://example.com/",a=e+"a".repeat(2048-e.length);expect(a.length).toBe(2048),expect(t.safeImageUrl(a)).toBe(a)}),it("returns the custom fallback when URL is invalid",()=>{const e="https://cdn.example.com/default.svg";expect(t.safeImageUrl("http://bad.example.com/icon.png",e)).toBe(e),expect(t.safeImageUrl(void 0,e)).toBe(e),expect(t.safeImageUrl("javascript:void(0)",e)).toBe(e)})});
2
+ const e=require("../safeImageUrl.js");describe(`safeImageUrl`,()=>{it(`passes through a valid https:// URL unchanged`,()=>{let t=`https://example.com/icon.png`;expect(e.safeImageUrl(t)).toBe(t)}),it(`rejects an http:// URL and returns the default fallback`,()=>{expect(e.safeImageUrl(`http://example.com/icon.png`)).toBe(``)}),it(`rejects a data: URL`,()=>{expect(e.safeImageUrl(`data:image/png;base64,abc123`)).toBe(``)}),it(`rejects a javascript: URL`,()=>{expect(e.safeImageUrl(`javascript:alert(1)`)).toBe(``)}),it(`rejects a file: URL`,()=>{expect(e.safeImageUrl(`file:///etc/passwd`)).toBe(``)}),it(`rejects a blob: URL`,()=>{expect(e.safeImageUrl(`blob:https://example.com/some-uuid`)).toBe(``)}),it(`rejects an empty string`,()=>{expect(e.safeImageUrl(``)).toBe(``)}),it(`rejects undefined`,()=>{expect(e.safeImageUrl(void 0)).toBe(``)}),it(`rejects a URL longer than 2048 characters`,()=>{let t=`https://example.com/`+`a`.repeat(2030);expect(t.length).toBeGreaterThan(2048),expect(e.safeImageUrl(t)).toBe(``)}),it(`allows a URL of exactly 2048 characters`,()=>{let t=`https://example.com/`+`a`.repeat(2028);expect(t.length).toBe(2048),expect(e.safeImageUrl(t)).toBe(t)}),it(`returns the custom fallback when URL is invalid`,()=>{let t=`https://cdn.example.com/default.svg`;expect(e.safeImageUrl(`http://bad.example.com/icon.png`,t)).toBe(t),expect(e.safeImageUrl(void 0,t)).toBe(t),expect(e.safeImageUrl(`javascript:void(0)`,t)).toBe(t)})});
@@ -1,32 +1,32 @@
1
- import { safeImageUrl as t } from "../safeImageUrl.mjs";
1
+ import { safeImageUrl as e } from "../safeImageUrl.mjs";
2
+ //#region src/helpers/tests/safeImageUrl.spec.ts
2
3
  describe("safeImageUrl", () => {
3
- it("passes through a valid https:// URL unchanged", () => {
4
- const e = "https://example.com/icon.png";
5
- expect(t(e)).toBe(e);
6
- }), it("rejects an http:// URL and returns the default fallback", () => {
7
- expect(t("http://example.com/icon.png")).toBe("");
8
- }), it("rejects a data: URL", () => {
9
- expect(t("data:image/png;base64,abc123")).toBe("");
10
- }), it("rejects a javascript: URL", () => {
11
- expect(t("javascript:alert(1)")).toBe("");
12
- }), it("rejects a file: URL", () => {
13
- expect(t("file:///etc/passwd")).toBe("");
14
- }), it("rejects a blob: URL", () => {
15
- expect(t("blob:https://example.com/some-uuid")).toBe("");
16
- }), it("rejects an empty string", () => {
17
- expect(t("")).toBe("");
18
- }), it("rejects undefined", () => {
19
- expect(t(void 0)).toBe("");
20
- }), it("rejects a URL longer than 2048 characters", () => {
21
- const e = "https://example.com/" + "a".repeat(2030);
22
- expect(e.length).toBeGreaterThan(2048), expect(t(e)).toBe("");
23
- }), it("allows a URL of exactly 2048 characters", () => {
24
- const e = "https://example.com/", a = e + "a".repeat(2048 - e.length);
25
- expect(a.length).toBe(2048), expect(t(a)).toBe(a);
26
- }), it("returns the custom fallback when URL is invalid", () => {
27
- const e = "https://cdn.example.com/default.svg";
28
- expect(t("http://bad.example.com/icon.png", e)).toBe(
29
- e
30
- ), expect(t(void 0, e)).toBe(e), expect(t("javascript:void(0)", e)).toBe(e);
31
- });
4
+ it("passes through a valid https:// URL unchanged", () => {
5
+ let t = "https://example.com/icon.png";
6
+ expect(e(t)).toBe(t);
7
+ }), it("rejects an http:// URL and returns the default fallback", () => {
8
+ expect(e("http://example.com/icon.png")).toBe("");
9
+ }), it("rejects a data: URL", () => {
10
+ expect(e("data:image/png;base64,abc123")).toBe("");
11
+ }), it("rejects a javascript: URL", () => {
12
+ expect(e("javascript:alert(1)")).toBe("");
13
+ }), it("rejects a file: URL", () => {
14
+ expect(e("file:///etc/passwd")).toBe("");
15
+ }), it("rejects a blob: URL", () => {
16
+ expect(e("blob:https://example.com/some-uuid")).toBe("");
17
+ }), it("rejects an empty string", () => {
18
+ expect(e("")).toBe("");
19
+ }), it("rejects undefined", () => {
20
+ expect(e(void 0)).toBe("");
21
+ }), it("rejects a URL longer than 2048 characters", () => {
22
+ let t = "https://example.com/" + "a".repeat(2030);
23
+ expect(t.length).toBeGreaterThan(2048), expect(e(t)).toBe("");
24
+ }), it("allows a URL of exactly 2048 characters", () => {
25
+ let t = "https://example.com/" + "a".repeat(2028);
26
+ expect(t.length).toBe(2048), expect(e(t)).toBe(t);
27
+ }), it("returns the custom fallback when URL is invalid", () => {
28
+ let t = "https://cdn.example.com/default.svg";
29
+ expect(e("http://bad.example.com/icon.png", t)).toBe(t), expect(e(void 0, t)).toBe(t), expect(e("javascript:void(0)", t)).toBe(t);
30
+ });
32
31
  });
32
+ //#endregion
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const s=require("../serializeTransaction.js"),n={to:"0x1234567890abcdef1234567890abcdef12345678",data:"0x",gasLimit:21000n,value:0n,account:"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",txHash:""};describe("serializeTransaction",()=>{it("serialises a normal small BigInt correctly",()=>{const a={...n,value:100n},e=JSON.parse(s.serializeTransaction(a));expect(e.value).toBe("100")}),it("serialises a BigInt at exactly Number.MAX_SAFE_INTEGER correctly",()=>{const e={...n,value:9007199254740991n},t=JSON.parse(s.serializeTransaction(e));expect(t.value).toBe("9007199254740991")}),it("serialises 10 ETH in wei (above Number.MAX_SAFE_INTEGER) to the exact string without rounding",()=>{const e={...n,value:10000000000000000000n},t=JSON.parse(s.serializeTransaction(e));expect(t.value).toBe("10000000000000000000")}),it("serialises a value that would be corrupted by Number() to the exact string",()=>{const e={...n,value:9007199254740993n},t=JSON.parse(s.serializeTransaction(e));expect(t.value).toBe("9007199254740993"),expect(t.value).not.toBe("9007199254740992")})});
2
+ const e=require("../serializeTransaction.js");var t={to:`0x1234567890abcdef1234567890abcdef12345678`,data:`0x`,gasLimit:21000n,value:0n,account:`0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef`,txHash:``};describe(`serializeTransaction`,()=>{it(`serialises a normal small BigInt correctly`,()=>{let n={...t,value:100n},r=JSON.parse(e.serializeTransaction(n));expect(r.value).toBe(`100`)}),it(`serialises a BigInt at exactly Number.MAX_SAFE_INTEGER correctly`,()=>{let n={...t,value:9007199254740991n},r=JSON.parse(e.serializeTransaction(n));expect(r.value).toBe(`9007199254740991`)}),it(`serialises 10 ETH in wei (above Number.MAX_SAFE_INTEGER) to the exact string without rounding`,()=>{let n={...t,value:10000000000000000000n},r=JSON.parse(e.serializeTransaction(n));expect(r.value).toBe(`10000000000000000000`)}),it(`serialises a value that would be corrupted by Number() to the exact string`,()=>{let n={...t,value:9007199254740993n},r=JSON.parse(e.serializeTransaction(n));expect(r.value).toBe(`9007199254740993`),expect(r.value).not.toBe(`9007199254740992`)})});