@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.
- package/BridgeHistory-BU-L_w0l.js +2 -0
- package/BridgeHistory-CInRkJ6T.mjs +275 -0
- package/ToggleDirection-BLDXxUlN.mjs +16 -0
- package/ToggleDirection-CZ9-ZD7Y.js +2 -0
- package/all-networks-De_MBUh1.js +2 -0
- package/all-networks-hdZt5Hcc.mjs +4 -0
- package/api/checkAccount.d.ts +1 -2
- package/api/checkAccount.js +1 -1
- package/api/checkAccount.mjs +10 -20
- package/api/confirmRate.d.ts +2 -3
- package/api/confirmRate.js +1 -1
- package/api/confirmRate.mjs +16 -23
- package/api/getChains.d.ts +1 -2
- package/api/getChains.js +1 -1
- package/api/getChains.mjs +10 -16
- package/api/getRate.d.ts +1 -2
- package/api/getRate.js +1 -1
- package/api/getRate.mjs +16 -23
- package/api/getTokens.d.ts +1 -2
- package/api/getTokens.js +1 -1
- package/api/getTokens.mjs +10 -20
- package/api/getTokensBalances.d.ts +1 -2
- package/api/getTokensBalances.js +1 -1
- package/api/getTokensBalances.mjs +10 -20
- package/api/getTransactions.d.ts +2 -3
- package/api/getTransactions.js +1 -1
- package/api/getTransactions.mjs +19 -31
- package/api/index.js +1 -1
- package/api/index.mjs +9 -18
- package/api/sendTransactions.d.ts +3 -4
- package/api/sendTransactions.js +1 -1
- package/api/sendTransactions.mjs +19 -31
- package/api/tests/confirmRate.spec.js +1 -1
- package/api/tests/confirmRate.spec.mjs +98 -112
- package/api/tests/getChains.spec.js +1 -1
- package/api/tests/getChains.spec.mjs +38 -36
- package/api/tests/getRate.spec.js +1 -1
- package/api/tests/getRate.spec.mjs +73 -69
- package/api/tests/getTokens.spec.js +1 -1
- package/api/tests/getTokens.spec.mjs +58 -58
- package/api/tests/getTransactions.spec.js +1 -1
- package/api/tests/getTransactions.spec.mjs +84 -74
- package/api/tests/sendTransactions.spec.js +1 -1
- package/api/tests/sendTransactions.spec.mjs +74 -84
- package/chains-Bmeag21l.js +2 -0
- package/chains-DQACurVn.mjs +33 -0
- package/chunk-oiTVcehM.js +2 -0
- package/constants/index.js +1 -1
- package/constants/index.mjs +8 -4
- package/default-CqGeN438.js +2 -0
- package/default-DuNFRYAj.mjs +4 -0
- package/dto/Chain.dto.d.ts +0 -1
- package/dto/Chain.dto.js +0 -1
- package/dto/Chain.dto.mjs +0 -1
- package/dto/CheckAccount.dto.js +0 -1
- package/dto/CheckAccount.dto.mjs +0 -1
- package/dto/ConfirmRate.dto.d.ts +0 -1
- package/dto/ConfirmRate.dto.js +0 -1
- package/dto/ConfirmRate.dto.mjs +0 -1
- package/dto/Token.dto.js +0 -1
- package/dto/Token.dto.mjs +0 -1
- package/dto/TokenBalance.dto.js +0 -1
- package/dto/TokenBalance.dto.mjs +0 -1
- package/dto/Transaction.dto.d.ts +0 -1
- package/dto/Transaction.dto.js +0 -1
- package/dto/Transaction.dto.mjs +0 -1
- package/dto/index.js +0 -1
- package/dto/index.mjs +0 -1
- package/helpers/assertConfirmRateData.js +1 -1
- package/helpers/assertConfirmRateData.mjs +11 -28
- package/helpers/assertRateConfirmationMatchesIntent.d.ts +0 -1
- package/helpers/assertRateConfirmationMatchesIntent.js +1 -1
- package/helpers/assertRateConfirmationMatchesIntent.mjs +9 -18
- package/helpers/base64Utils.js +1 -1
- package/helpers/base64Utils.mjs +15 -18
- package/helpers/decodeLoginToken.js +1 -1
- package/helpers/decodeLoginToken.mjs +19 -21
- package/helpers/decodeToken.js +1 -1
- package/helpers/decodeToken.mjs +22 -27
- package/helpers/getApiURL.js +1 -1
- package/helpers/getApiURL.mjs +5 -5
- package/helpers/getBridgeURL.js +1 -1
- package/helpers/getBridgeURL.mjs +4 -4
- package/helpers/getDisplayName.d.ts +0 -1
- package/helpers/getDisplayName.js +1 -1
- package/helpers/getDisplayName.mjs +5 -5
- package/helpers/getMvxApiURL.js +1 -1
- package/helpers/getMvxApiURL.mjs +5 -5
- package/helpers/getMvxChainId.js +1 -1
- package/helpers/getMvxChainId.mjs +5 -5
- package/helpers/getMvxExplorerAddress.js +1 -1
- package/helpers/getMvxExplorerAddress.mjs +4 -4
- package/helpers/index.js +1 -1
- package/helpers/index.mjs +12 -27
- package/helpers/isValidAddressForChainType.d.ts +0 -1
- package/helpers/isValidAddressForChainType.js +1 -1
- package/helpers/isValidAddressForChainType.mjs +37 -48
- package/helpers/safeImageUrl.js +1 -1
- package/helpers/safeImageUrl.mjs +14 -12
- package/helpers/serializeTransaction.d.ts +0 -1
- package/helpers/serializeTransaction.js +1 -1
- package/helpers/serializeTransaction.mjs +5 -5
- package/helpers/tests/assertConfirmRateData.spec.js +1 -1
- package/helpers/tests/assertConfirmRateData.spec.mjs +86 -74
- package/helpers/tests/assertRateConfirmationMatchesIntent.spec.js +1 -1
- package/helpers/tests/assertRateConfirmationMatchesIntent.spec.mjs +61 -49
- package/helpers/tests/base64Utils.spec.js +1 -1
- package/helpers/tests/base64Utils.spec.mjs +15 -13
- package/helpers/tests/decodeLoginToken.spec.js +1 -1
- package/helpers/tests/decodeLoginToken.spec.mjs +20 -19
- package/helpers/tests/decodeToken.spec.js +1 -1
- package/helpers/tests/decodeToken.spec.mjs +18 -19
- package/helpers/tests/isValidAddressForChainType.spec.js +1 -1
- package/helpers/tests/isValidAddressForChainType.spec.mjs +59 -134
- package/helpers/tests/safeImageUrl.spec.js +1 -1
- package/helpers/tests/safeImageUrl.spec.mjs +30 -30
- package/helpers/tests/serializeTransaction.spec.js +1 -1
- package/helpers/tests/serializeTransaction.spec.mjs +35 -21
- package/index.js +1 -1
- package/index.mjs +91 -200
- package/package.json +23 -32
- package/react.esm-JNqTldrP.mjs +8927 -0
- package/react.esm-kvI07ZPd.js +59 -0
- package/reactjs/adapters/SuiAdapter.d.ts +2 -2
- package/reactjs/adapters/SuiAdapter.js +1 -1
- package/reactjs/adapters/SuiAdapter.mjs +254 -323
- package/reactjs/components/AccountAddress/AccountAddress.d.ts +1 -1
- package/reactjs/components/AccountAddress/AccountAddress.js +1 -1
- package/reactjs/components/AccountAddress/AccountAddress.mjs +20 -30
- package/reactjs/components/AccountAddress/index.js +1 -1
- package/reactjs/components/AccountAddress/index.mjs +2 -4
- package/reactjs/components/AmountCard/AmountCard.d.ts +1 -2
- package/reactjs/components/AmountCard/AmountCard.js +1 -1
- package/reactjs/components/AmountCard/AmountCard.mjs +13 -31
- package/reactjs/components/AmountCard/index.js +1 -1
- package/reactjs/components/AmountCard/index.mjs +2 -4
- package/reactjs/components/AmountInput/AmountInput.d.ts +1 -2
- package/reactjs/components/AmountInput/AmountInput.js +1 -1
- package/reactjs/components/AmountInput/AmountInput.mjs +48 -66
- package/reactjs/components/AmountInput/index.js +1 -1
- package/reactjs/components/AmountInput/index.mjs +2 -4
- package/reactjs/components/BridgeForm/BridgeForm.d.ts +1 -1
- package/reactjs/components/BridgeForm/BridgeForm.js +1 -1
- package/reactjs/components/BridgeForm/BridgeForm.mjs +53 -81
- package/reactjs/components/BridgeForm/Deposit.d.ts +1 -1
- package/reactjs/components/BridgeForm/Deposit.js +1 -1
- package/reactjs/components/BridgeForm/Deposit.mjs +457 -573
- package/reactjs/components/BridgeForm/Transfer.d.ts +1 -1
- package/reactjs/components/BridgeForm/Transfer.js +1 -1
- package/reactjs/components/BridgeForm/Transfer.mjs +358 -470
- package/reactjs/components/BridgeForm/hooks/useBridgeAmounts.d.ts +0 -1
- package/reactjs/components/BridgeForm/hooks/useBridgeAmounts.js +1 -1
- package/reactjs/components/BridgeForm/hooks/useBridgeAmounts.mjs +52 -54
- package/reactjs/components/BridgeForm/hooks/useBridgeRateFetching.d.ts +0 -1
- package/reactjs/components/BridgeForm/hooks/useBridgeRateFetching.js +1 -1
- package/reactjs/components/BridgeForm/hooks/useBridgeRateFetching.mjs +35 -46
- package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.d.ts +1 -2
- package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.js +1 -1
- package/reactjs/components/BridgeForm/hooks/useBridgeTokenSelection.mjs +131 -197
- package/reactjs/components/BridgeForm/index.js +1 -1
- package/reactjs/components/BridgeForm/index.mjs +1 -3
- package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.d.ts +3 -4
- package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.js +1 -1
- package/reactjs/components/BridgeForm/utils/bridgeFormHelpers.mjs +26 -43
- package/reactjs/components/BridgeHistory/BridgeHistory.d.ts +1 -1
- package/reactjs/components/BridgeHistory/BridgeHistory.js +1 -1
- package/reactjs/components/BridgeHistory/BridgeHistory.mjs +2 -353
- package/reactjs/components/BridgeHistory/index.js +1 -1
- package/reactjs/components/BridgeHistory/index.mjs +2 -4
- package/reactjs/components/Connect/BridgeAccountDisplay.d.ts +1 -2
- package/reactjs/components/Connect/BridgeAccountDisplay.js +1 -1
- package/reactjs/components/Connect/BridgeAccountDisplay.mjs +125 -134
- package/reactjs/components/Connect/BridgeConnectButton.d.ts +1 -2
- package/reactjs/components/Connect/BridgeConnectButton.js +1 -1
- package/reactjs/components/Connect/BridgeConnectButton.mjs +42 -44
- package/reactjs/components/Connect/ChainSelectConnect.d.ts +1 -2
- package/reactjs/components/Connect/ChainSelectConnect.js +1 -1
- package/reactjs/components/Connect/ChainSelectConnect.mjs +100 -129
- package/reactjs/components/Connect/CustomConnectButton.d.ts +2 -3
- package/reactjs/components/Connect/CustomConnectButton.js +1 -1
- package/reactjs/components/Connect/CustomConnectButton.mjs +23 -35
- package/reactjs/components/Connect/MvxAccountDisplay.d.ts +1 -1
- package/reactjs/components/Connect/MvxAccountDisplay.js +1 -1
- package/reactjs/components/Connect/MvxAccountDisplay.mjs +74 -94
- package/reactjs/components/Connect/MvxConnectButton.d.ts +1 -1
- package/reactjs/components/Connect/MvxConnectButton.js +1 -1
- package/reactjs/components/Connect/MvxConnectButton.mjs +27 -38
- package/reactjs/components/Connect/SwitchChainButton.d.ts +2 -3
- package/reactjs/components/Connect/SwitchChainButton.js +1 -1
- package/reactjs/components/Connect/SwitchChainButton.mjs +20 -30
- package/reactjs/components/Connect/index.js +1 -1
- package/reactjs/components/Connect/index.mjs +6 -14
- package/reactjs/components/CopyButton/CopyButton.d.ts +2 -1
- package/reactjs/components/CopyButton/CopyButton.js +1 -1
- package/reactjs/components/CopyButton/CopyButton.mjs +35 -42
- package/reactjs/components/CopyButton/index.js +1 -1
- package/reactjs/components/CopyButton/index.mjs +2 -4
- package/reactjs/components/CopyButton/utils/copyToClipboard.js +1 -1
- package/reactjs/components/CopyButton/utils/copyToClipboard.mjs +20 -24
- package/reactjs/components/CopyButton/utils/index.js +1 -1
- package/reactjs/components/CopyButton/utils/index.mjs +2 -4
- package/reactjs/components/DisplayAmount/DisplayAmount.d.ts +2 -3
- package/reactjs/components/DisplayAmount/DisplayAmount.js +1 -1
- package/reactjs/components/DisplayAmount/DisplayAmount.mjs +74 -82
- package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.d.ts +1 -1
- package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.js +1 -1
- package/reactjs/components/DisplayAmount/components/AnimateNumber/AnimateNumber.mjs +22 -31
- package/reactjs/components/DisplayAmount/components/AnimateNumber/index.js +0 -1
- package/reactjs/components/DisplayAmount/components/AnimateNumber/index.mjs +0 -1
- package/reactjs/components/DisplayAmount/components/PrecisedAmount/PrecisedAmount.d.ts +1 -2
- package/reactjs/components/DisplayAmount/components/PrecisedAmount/PrecisedAmount.js +1 -1
- package/reactjs/components/DisplayAmount/components/PrecisedAmount/PrecisedAmount.mjs +46 -52
- package/reactjs/components/DisplayAmount/components/index.js +0 -1
- package/reactjs/components/DisplayAmount/components/index.mjs +0 -1
- package/reactjs/components/DisplayAmount/index.js +1 -1
- package/reactjs/components/DisplayAmount/index.mjs +2 -4
- package/reactjs/components/DisplayAmount/utils/index.js +1 -1
- package/reactjs/components/DisplayAmount/utils/index.mjs +2 -4
- package/reactjs/components/DisplayAmount/utils/truncateAmount.js +1 -1
- package/reactjs/components/DisplayAmount/utils/truncateAmount.mjs +14 -16
- package/reactjs/components/Error/Error.d.ts +1 -2
- package/reactjs/components/Error/Error.js +1 -1
- package/reactjs/components/Error/Error.mjs +44 -66
- package/reactjs/components/Error/index.js +1 -1
- package/reactjs/components/Error/index.mjs +1 -3
- package/reactjs/components/SmallLoader/SmallLoader.d.ts +1 -1
- package/reactjs/components/SmallLoader/SmallLoader.js +1 -1
- package/reactjs/components/SmallLoader/SmallLoader.mjs +12 -15
- package/reactjs/components/SmallLoader/index.js +1 -1
- package/reactjs/components/SmallLoader/index.mjs +2 -4
- package/reactjs/components/ToggleDirection/ToggleDirection.d.ts +1 -1
- package/reactjs/components/ToggleDirection/ToggleDirection.js +1 -1
- package/reactjs/components/ToggleDirection/ToggleDirection.mjs +2 -24
- package/reactjs/components/TokenSelector/TokenSelector.d.ts +1 -2
- package/reactjs/components/TokenSelector/TokenSelector.js +1 -1
- package/reactjs/components/TokenSelector/TokenSelector.mjs +94 -151
- package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.js +1 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/ChainSelect.mjs +75 -83
- package/reactjs/components/TokenSelector/components/ChainSelect/components/ChainOptionLabel.d.ts +1 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/components/ChainOptionLabel.js +1 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/components/ChainOptionLabel.mjs +40 -51
- package/reactjs/components/TokenSelector/components/ChainSelect/components/FormatChainOptionLabel.d.ts +2 -3
- package/reactjs/components/TokenSelector/components/ChainSelect/components/FormatChainOptionLabel.js +1 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/components/FormatChainOptionLabel.mjs +16 -12
- package/reactjs/components/TokenSelector/components/ChainSelect/components/IndicatorSeparator.js +1 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/components/IndicatorSeparator.mjs +4 -4
- package/reactjs/components/TokenSelector/components/ChainSelect/components/SelectedChainOption.d.ts +2 -3
- package/reactjs/components/TokenSelector/components/ChainSelect/components/SelectedChainOption.js +1 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/components/SelectedChainOption.mjs +29 -41
- package/reactjs/components/TokenSelector/components/ChainSelect/types/chainSelectOption.js +0 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/types/chainSelectOption.mjs +0 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/types/partialChainOption.js +0 -1
- package/reactjs/components/TokenSelector/components/ChainSelect/types/partialChainOption.mjs +0 -1
- package/reactjs/components/TokenSelector/components/SelectContainer.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/SelectContainer.js +1 -1
- package/reactjs/components/TokenSelector/components/SelectContainer.mjs +32 -37
- package/reactjs/components/TokenSelector/components/SelectContent.d.ts +2 -3
- package/reactjs/components/TokenSelector/components/SelectContent.js +1 -1
- package/reactjs/components/TokenSelector/components/SelectContent.mjs +78 -110
- package/reactjs/components/TokenSelector/components/SelectedOption.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/SelectedOption.js +1 -1
- package/reactjs/components/TokenSelector/components/SelectedOption.mjs +26 -26
- package/reactjs/components/TokenSelector/components/TokenIcon.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/TokenIcon.js +1 -1
- package/reactjs/components/TokenSelector/components/TokenIcon.mjs +54 -74
- package/reactjs/components/TokenSelector/components/TokenItem.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/TokenItem.js +1 -1
- package/reactjs/components/TokenSelector/components/TokenItem.mjs +53 -66
- package/reactjs/components/TokenSelector/components/TokenList.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/TokenList.js +1 -1
- package/reactjs/components/TokenSelector/components/TokenList.mjs +13 -21
- package/reactjs/components/TokenSelector/components/TokenSymbol.d.ts +1 -2
- package/reactjs/components/TokenSelector/components/TokenSymbol.js +1 -1
- package/reactjs/components/TokenSelector/components/TokenSymbol.mjs +15 -23
- package/reactjs/components/TokenSelector/index.js +1 -1
- package/reactjs/components/TokenSelector/index.mjs +2 -4
- package/reactjs/components/TransactionToast/TransactionToast.d.ts +1 -2
- package/reactjs/components/TransactionToast/TransactionToast.js +1 -1
- package/reactjs/components/TransactionToast/TransactionToast.mjs +43 -51
- package/reactjs/components/TransactionToast/TransactionToastContainer.d.ts +1 -2
- package/reactjs/components/TransactionToast/TransactionToastContainer.js +1 -1
- package/reactjs/components/TransactionToast/TransactionToastContainer.mjs +15 -18
- package/reactjs/components/TransactionToast/index.js +1 -1
- package/reactjs/components/TransactionToast/index.mjs +3 -6
- package/reactjs/components/TrimAddress/TrimAddress.d.ts +1 -1
- package/reactjs/components/TrimAddress/TrimAddress.js +1 -1
- package/reactjs/components/TrimAddress/TrimAddress.mjs +13 -22
- package/reactjs/components/TrimAddress/index.js +1 -1
- package/reactjs/components/TrimAddress/index.mjs +1 -3
- package/reactjs/components/base/MxButton/MxButton.d.ts +1 -2
- package/reactjs/components/base/MxButton/MxButton.js +1 -1
- package/reactjs/components/base/MxButton/MxButton.mjs +43 -70
- package/reactjs/components/base/MxButton/index.js +1 -1
- package/reactjs/components/base/MxButton/index.mjs +2 -4
- package/reactjs/components/base/MxCard/MxCard.d.ts +0 -1
- package/reactjs/components/base/MxCard/MxCard.js +1 -1
- package/reactjs/components/base/MxCard/MxCard.mjs +33 -54
- package/reactjs/components/base/MxCard/index.js +1 -1
- package/reactjs/components/base/MxCard/index.mjs +2 -4
- package/reactjs/components/base/MxCircleLoader/MxCircleLoader.d.ts +1 -1
- package/reactjs/components/base/MxCircleLoader/MxCircleLoader.js +1 -1
- package/reactjs/components/base/MxCircleLoader/MxCircleLoader.mjs +9 -26
- package/reactjs/components/base/MxCircleLoader/index.js +1 -1
- package/reactjs/components/base/MxCircleLoader/index.mjs +2 -4
- package/reactjs/components/base/MxLink/MxLink.d.ts +0 -1
- package/reactjs/components/base/MxLink/MxLink.js +1 -1
- package/reactjs/components/base/MxLink/MxLink.mjs +42 -68
- package/reactjs/components/base/MxLink/index.js +1 -1
- package/reactjs/components/base/MxLink/index.mjs +2 -4
- package/reactjs/components/base/MxSearch/MxSearch.js +1 -1
- package/reactjs/components/base/MxSearch/MxSearch.mjs +35 -65
- package/reactjs/components/base/MxSearch/index.js +1 -1
- package/reactjs/components/base/MxSearch/index.mjs +2 -4
- package/reactjs/components/base/MxSlideover/MxSlideover.d.ts +1 -2
- package/reactjs/components/base/MxSlideover/MxSlideover.js +1 -1
- package/reactjs/components/base/MxSlideover/MxSlideover.mjs +70 -76
- package/reactjs/components/base/MxSlideover/index.js +1 -1
- package/reactjs/components/base/MxSlideover/index.mjs +2 -4
- package/reactjs/components/base/MxTooltip/MxTooltip.d.ts +2 -3
- package/reactjs/components/base/MxTooltip/MxTooltip.js +1 -1
- package/reactjs/components/base/MxTooltip/MxTooltip.mjs +79 -119
- package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.d.ts +0 -1
- package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.js +1 -1
- package/reactjs/components/base/MxTooltip/components/TooltipContainer/TooltipContainer.mjs +23 -31
- package/reactjs/components/base/MxTooltip/components/TooltipContainer/index.js +1 -1
- package/reactjs/components/base/MxTooltip/components/TooltipContainer/index.mjs +2 -4
- package/reactjs/components/base/MxTooltip/components/TooltipContent/TooltipContent.d.ts +1 -2
- package/reactjs/components/base/MxTooltip/components/TooltipContent/TooltipContent.js +1 -1
- package/reactjs/components/base/MxTooltip/components/TooltipContent/TooltipContent.mjs +13 -25
- package/reactjs/components/base/MxTooltip/components/TooltipContent/index.js +1 -1
- package/reactjs/components/base/MxTooltip/components/TooltipContent/index.mjs +1 -3
- package/reactjs/components/base/MxTooltip/components/index.js +1 -1
- package/reactjs/components/base/MxTooltip/components/index.mjs +5 -6
- package/reactjs/components/base/MxTooltip/index.js +1 -1
- package/reactjs/components/base/MxTooltip/index.mjs +2 -4
- package/reactjs/components/base/index.js +1 -1
- package/reactjs/components/base/index.mjs +12 -13
- package/reactjs/components/index.js +1 -1
- package/reactjs/components/index.mjs +40 -53
- package/reactjs/constants/chains.js +1 -1
- package/reactjs/constants/chains.mjs +2 -35
- package/reactjs/constants/index.js +1 -1
- package/reactjs/constants/index.mjs +5 -12
- package/reactjs/context/Web3AppProvider.d.ts +6 -7
- package/reactjs/context/Web3AppProvider.js +1 -1
- package/reactjs/context/Web3AppProvider.mjs +41 -40
- package/reactjs/context/queryClient.d.ts +0 -1
- package/reactjs/context/queryClient.js +1 -1
- package/reactjs/context/queryClient.mjs +6 -6
- package/reactjs/context/useWeb3App.js +1 -1
- package/reactjs/context/useWeb3App.mjs +9 -10
- package/reactjs/helpers/index.js +1 -1
- package/reactjs/helpers/index.mjs +2 -6
- package/reactjs/helpers/resolveBridgeApiChainId.js +1 -1
- package/reactjs/helpers/resolveBridgeApiChainId.mjs +22 -23
- package/reactjs/hooks/index.js +1 -1
- package/reactjs/hooks/index.mjs +16 -35
- package/reactjs/hooks/tests/useGenericSignMessage.spec.js +1 -1
- package/reactjs/hooks/tests/useGenericSignMessage.spec.mjs +43 -50
- package/reactjs/hooks/tests/useSignTransaction.spec.js +1 -1
- package/reactjs/hooks/tests/useSignTransaction.spec.mjs +123 -150
- package/reactjs/hooks/useAccount.js +1 -1
- package/reactjs/hooks/useAccount.mjs +11 -11
- package/reactjs/hooks/useBalances.d.ts +0 -1
- package/reactjs/hooks/useBalances.js +1 -1
- package/reactjs/hooks/useBalances.mjs +31 -39
- package/reactjs/hooks/useBridgeApiChainId.js +1 -1
- package/reactjs/hooks/useBridgeApiChainId.mjs +8 -11
- package/reactjs/hooks/useBridgeFormik.d.ts +4 -5
- package/reactjs/hooks/useBridgeFormik.js +1 -1
- package/reactjs/hooks/useBridgeFormik.mjs +117 -143
- package/reactjs/hooks/useDebounce.js +1 -1
- package/reactjs/hooks/useDebounce.mjs +10 -10
- package/reactjs/hooks/useDisconnectOnChainTypeChange.d.ts +0 -1
- package/reactjs/hooks/useDisconnectOnChainTypeChange.js +1 -1
- package/reactjs/hooks/useDisconnectOnChainTypeChange.mjs +12 -12
- package/reactjs/hooks/useFetchBridgeData.d.ts +2 -2
- package/reactjs/hooks/useFetchBridgeData.js +1 -1
- package/reactjs/hooks/useFetchBridgeData.mjs +2 -44
- package/reactjs/hooks/useFetchTokens.d.ts +1 -1
- package/reactjs/hooks/useFetchTokens.js +1 -1
- package/reactjs/hooks/useFetchTokens.mjs +2 -92
- package/reactjs/hooks/useGenericSignMessage.js +1 -1
- package/reactjs/hooks/useGenericSignMessage.mjs +37 -54
- package/reactjs/hooks/useGetChainId.js +1 -1
- package/reactjs/hooks/useGetChainId.mjs +9 -9
- package/reactjs/hooks/useNamespaceAddress.d.ts +0 -1
- package/reactjs/hooks/useNamespaceAddress.js +1 -1
- package/reactjs/hooks/useNamespaceAddress.mjs +12 -15
- package/reactjs/hooks/useResolveTokenChain.d.ts +0 -1
- package/reactjs/hooks/useResolveTokenChain.js +1 -1
- package/reactjs/hooks/useResolveTokenChain.mjs +13 -15
- package/reactjs/hooks/useSendTransactions.d.ts +0 -1
- package/reactjs/hooks/useSendTransactions.js +1 -1
- package/reactjs/hooks/useSendTransactions.mjs +11 -20
- package/reactjs/hooks/useSignTransaction.d.ts +509 -0
- package/reactjs/hooks/useSignTransaction.js +1 -1
- package/reactjs/hooks/useSignTransaction.mjs +59 -85
- package/reactjs/hooks/useSuiConnect.js +1 -1
- package/reactjs/hooks/useSuiConnect.mjs +68 -67
- package/reactjs/hooks/validation/index.js +1 -1
- package/reactjs/hooks/validation/index.mjs +5 -10
- package/reactjs/hooks/validation/useAmountSchema.js +1 -1
- package/reactjs/hooks/validation/useAmountSchema.mjs +9 -11
- package/reactjs/hooks/validation/useSecondAmountSchema.js +1 -1
- package/reactjs/hooks/validation/useSecondAmountSchema.mjs +5 -8
- package/reactjs/hooks/validation/useTestHasEnoughFunds.d.ts +0 -1
- package/reactjs/hooks/validation/useTestHasEnoughFunds.js +1 -1
- package/reactjs/hooks/validation/useTestHasEnoughFunds.mjs +20 -27
- package/reactjs/hooks/validation/useTestIsConnected.d.ts +0 -1
- package/reactjs/hooks/validation/useTestIsConnected.js +1 -1
- package/reactjs/hooks/validation/useTestIsConnected.mjs +15 -20
- package/reactjs/index.d.ts +0 -1
- package/reactjs/index.js +1 -1
- package/reactjs/index.mjs +70 -157
- package/reactjs/init/index.js +1 -1
- package/reactjs/init/index.mjs +2 -5
- package/reactjs/init/init.d.ts +2 -3
- package/reactjs/init/init.js +1 -1
- package/reactjs/init/init.mjs +113 -112
- package/reactjs/init/isMobileInjectedDappBrowser.js +1 -1
- package/reactjs/init/isMobileInjectedDappBrowser.mjs +6 -7
- package/reactjs/queries/index.js +1 -1
- package/reactjs/queries/index.mjs +7 -17
- package/reactjs/queries/useCheckAccount.query.d.ts +1 -2
- package/reactjs/queries/useCheckAccount.query.js +1 -1
- package/reactjs/queries/useCheckAccount.query.mjs +35 -34
- package/reactjs/queries/useGetAllTokens.query.d.ts +1 -2
- package/reactjs/queries/useGetAllTokens.query.js +1 -1
- package/reactjs/queries/useGetAllTokens.query.mjs +24 -30
- package/reactjs/queries/useGetChains.query.d.ts +1 -2
- package/reactjs/queries/useGetChains.query.js +1 -1
- package/reactjs/queries/useGetChains.query.mjs +28 -31
- package/reactjs/queries/useGetHistory.query.d.ts +2 -3
- package/reactjs/queries/useGetHistory.query.js +1 -1
- package/reactjs/queries/useGetHistory.query.mjs +50 -64
- package/reactjs/queries/useGetMvxTokensBalances.query.d.ts +3 -4
- package/reactjs/queries/useGetMvxTokensBalances.query.js +1 -1
- package/reactjs/queries/useGetMvxTokensBalances.query.mjs +44 -56
- package/reactjs/queries/useGetNonMvxTokensBalances.query.d.ts +3 -4
- package/reactjs/queries/useGetNonMvxTokensBalances.query.js +1 -1
- package/reactjs/queries/useGetNonMvxTokensBalances.query.mjs +2 -75
- package/reactjs/queries/useGetRate.mutation.d.ts +0 -1
- package/reactjs/queries/useGetRate.mutation.js +1 -1
- package/reactjs/queries/useGetRate.mutation.mjs +12 -14
- package/reactjs/reexports.d.ts +2 -3
- package/reactjs/reexports.js +1 -1
- package/reactjs/reexports.mjs +3 -15
- package/reactjs/utils/delay.js +1 -1
- package/reactjs/utils/delay.mjs +5 -5
- package/reactjs/utils/formatAmount.js +1 -1
- package/reactjs/utils/formatAmount.mjs +11 -22
- package/reactjs/utils/getCleanStringAmount.js +1 -1
- package/reactjs/utils/getCleanStringAmount.mjs +11 -8
- package/reactjs/utils/getCompletePathname.js +1 -1
- package/reactjs/utils/getCompletePathname.mjs +5 -5
- package/reactjs/utils/getInitialTokens.js +1 -1
- package/reactjs/utils/getInitialTokens.mjs +10 -10
- package/reactjs/utils/hasEnoughFunds.js +1 -1
- package/reactjs/utils/hasEnoughFunds.mjs +9 -15
- package/reactjs/utils/index.js +1 -1
- package/reactjs/utils/index.mjs +12 -25
- package/reactjs/utils/isStringFloat.js +1 -1
- package/reactjs/utils/isStringFloat.mjs +10 -13
- package/reactjs/utils/mxClsx.d.ts +0 -1
- package/reactjs/utils/mxClsx.js +1 -1
- package/reactjs/utils/mxClsx.mjs +5 -5
- package/reactjs/utils/pipe.js +1 -1
- package/reactjs/utils/pipe.mjs +13 -20
- package/reactjs/utils/removeCommas.js +1 -1
- package/reactjs/utils/removeCommas.mjs +4 -4
- package/reactjs/utils/roundAmount.js +1 -1
- package/reactjs/utils/roundAmount.mjs +15 -19
- package/reactjs/utils/testNumber.js +1 -1
- package/reactjs/utils/testNumber.mjs +4 -4
- package/store/inMemoryStore.js +1 -1
- package/store/inMemoryStore.mjs +30 -34
- package/style.css +2 -1
- package/types/batchTransactions.d.ts +0 -1
- package/types/batchTransactions.js +0 -1
- package/types/batchTransactions.mjs +0 -1
- package/types/chainType.js +1 -1
- package/types/chainType.mjs +6 -4
- package/types/errors.js +1 -1
- package/types/errors.mjs +15 -19
- package/types/index.js +0 -1
- package/types/index.mjs +0 -1
- package/types/providerType.js +1 -1
- package/types/providerType.mjs +6 -4
- package/types/rate.d.ts +0 -1
- package/types/rate.js +0 -1
- package/types/rate.mjs +0 -1
- package/types/token.d.ts +0 -1
- package/types/token.js +0 -1
- package/types/token.mjs +0 -1
- package/types/transaction.d.ts +3 -4
- package/types/transaction.js +0 -1
- package/types/transaction.mjs +0 -1
- package/types/utxo.js +0 -1
- package/types/utxo.mjs +0 -1
- package/useFetchBridgeData-B5xt9GbW.js +2 -0
- package/useFetchBridgeData-C_hZjzd_.mjs +142 -0
- package/all-networks--dfVLHLJ.js +0 -2
- package/all-networks-Czd8zS1n.mjs +0 -4
- package/default-D0Jk5ROI.mjs +0 -4
- package/default-DbU6vPaB.js +0 -2
- package/react.esm-B0AMOHxa.js +0 -73
- package/react.esm-BxvJJ86Q.mjs +0 -9949
|
@@ -1,52 +1,64 @@
|
|
|
1
|
-
import { RateConfirmationMismatchError as
|
|
2
|
-
import { assertRateConfirmationMatchesIntent as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
-
|
|
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 {
|
|
1
|
+
import { decodeBase64 as e, encodeToBase64 as t } from "../base64Utils.mjs";
|
|
2
|
+
//#region src/helpers/tests/base64Utils.spec.ts
|
|
2
3
|
describe("base64Utils", () => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
|
1
|
+
import { decodeToken as e } from "../decodeToken.mjs";
|
|
2
|
+
//#region src/helpers/tests/decodeToken.spec.ts
|
|
2
3
|
describe("decodeToken", () => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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
|
|
2
|
-
import { isValidAddressForChainType as
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
|
|
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
|
|
1
|
+
import { safeImageUrl as e } from "../safeImageUrl.mjs";
|
|
2
|
+
//#region src/helpers/tests/safeImageUrl.spec.ts
|
|
2
3
|
describe("safeImageUrl", () => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
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`)})});
|