UNPKG

@swapper-finance/sdk

Version:
1 lines 2.15 MB
{"version":3,"sources":["../node_modules/.pnpm/bn.js@5.2.1/node_modules/bn.js/lib/bn.js","../node_modules/.pnpm/js-sha3@0.8.0/node_modules/js-sha3/src/sha3.js","../node_modules/.pnpm/minimalistic-assert@1.0.1/node_modules/minimalistic-assert/index.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js","../node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/utils.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/common.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/common.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/1.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/256.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/224.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/512.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha/384.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/sha.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/ripemd.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash/hmac.js","../node_modules/.pnpm/hash.js@1.1.7/node_modules/hash.js/lib/hash.js","../node_modules/.pnpm/aes-js@3.0.0/node_modules/aes-js/index.js","../node_modules/.pnpm/scrypt-js@3.0.1/node_modules/scrypt-js/scrypt.js","../src/assets/icons/AddIcon.tsx","../src/assets/icons/BackArrowIcon.tsx","../src/assets/icons/BuyIcon.tsx","../src/assets/icons/CashIcon.tsx","../src/assets/icons/ChainlinkIcon.tsx","../src/assets/icons/ChevronDownIcon.tsx","../src/assets/icons/CloseIcon.tsx","../src/assets/icons/CopyIcon.tsx","../src/assets/icons/ErrorIcon.tsx","../src/assets/icons/ExpandCircleDownIcon.tsx","../src/assets/icons/ExpandCircleUpIcon.tsx","../src/assets/icons/ForwardArrowIcon.tsx","../src/assets/icons/HistoryIcon.tsx","../src/assets/icons/InfoIcon.tsx","../src/assets/icons/LogoutIcon.tsx","../src/assets/icons/MyProfileIcon.tsx","../src/assets/icons/OpenInNewTabIcon.tsx","../src/assets/icons/SearchIcon.tsx","../src/assets/icons/SettingsIcon.tsx","../src/assets/icons/ShieldIcon.tsx","../src/assets/icons/SuccessIcon.tsx","../src/assets/icons/SwapDownIcon.tsx","../src/assets/icons/WalletIcon.tsx","../src/assets/icons/WarningIcon.tsx","../src/assets/icons/HamburgerIcon.tsx","../src/assets/icons/DepositIcon.tsx","../src/assets/icons/TransferIcon.tsx","../src/assets/icons/LinkIcon.tsx","../src/assets/icons/SwapIcon.tsx","../src/assets/icons/CheckedIcon.tsx","../src/assets/icons/UncheckedIcon.tsx","../src/assets/icons/StarIcon.tsx","../src/assets/icons/ExternalLinkIcon.tsx","../src/assets/icons/OutlinedCopyIcon.tsx","../src/assets/icons/LockIcon.tsx","../src/assets/icons/MastercardIcon.tsx","../src/components/Banner/index.tsx","../src/interfaces/HistoryEntryAction.tsx","../src/components/Cashback/index.tsx","../src/components/IconWithTooltip/index.tsx","../src/components/Tooltip/index.tsx","../src/components/CopyButton/index.tsx","../src/contractAbis/ERC20.json","../src/contractAbis/FeeCollector.json","../src/contractAbis/SwapperTransferProxy.json","../src/contractAbis/index.ts","../node_modules/.pnpm/ethers@5.7.2_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/src.ts/ethers.ts","../node_modules/.pnpm/@ethersproject+bignumber@5.7.0/node_modules/@ethersproject/bignumber/src.ts/bignumber.ts","../node_modules/.pnpm/@ethersproject+logger@5.7.0/node_modules/@ethersproject/logger/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+logger@5.7.0/node_modules/@ethersproject/logger/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+bytes@5.7.0/node_modules/@ethersproject/bytes/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+bytes@5.7.0/node_modules/@ethersproject/bytes/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+bignumber@5.7.0/node_modules/@ethersproject/bignumber/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+bignumber@5.7.0/node_modules/@ethersproject/bignumber/src.ts/fixednumber.ts","../node_modules/.pnpm/@ethersproject+properties@5.7.0/node_modules/@ethersproject/properties/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+properties@5.7.0/node_modules/@ethersproject/properties/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/fragments.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/abstract-coder.ts","../node_modules/.pnpm/@ethersproject+keccak256@5.7.0/node_modules/@ethersproject/keccak256/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+rlp@5.7.0/node_modules/@ethersproject/rlp/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+rlp@5.7.0/node_modules/@ethersproject/rlp/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+address@5.7.0/node_modules/@ethersproject/address/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+address@5.7.0/node_modules/@ethersproject/address/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/address.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/anonymous.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/array.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/boolean.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/bytes.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/fixed-bytes.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/null.ts","../node_modules/.pnpm/@ethersproject+constants@5.7.0/node_modules/@ethersproject/constants/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+constants@5.7.0/node_modules/@ethersproject/constants/src.ts/addresses.ts","../node_modules/.pnpm/@ethersproject+constants@5.7.0/node_modules/@ethersproject/constants/src.ts/bignumbers.ts","../node_modules/.pnpm/@ethersproject+constants@5.7.0/node_modules/@ethersproject/constants/src.ts/hashes.ts","../node_modules/.pnpm/@ethersproject+constants@5.7.0/node_modules/@ethersproject/constants/src.ts/strings.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/number.ts","../node_modules/.pnpm/@ethersproject+strings@5.7.0/node_modules/@ethersproject/strings/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+strings@5.7.0/node_modules/@ethersproject/strings/src.ts/utf8.ts","../node_modules/.pnpm/@ethersproject+strings@5.7.0/node_modules/@ethersproject/strings/src.ts/bytes32.ts","../node_modules/.pnpm/@ethersproject+strings@5.7.0/node_modules/@ethersproject/strings/src.ts/idna.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/string.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/coders/tuple.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/abi-coder.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/id.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+base64@5.7.0/node_modules/@ethersproject/base64/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+base64@5.7.0/node_modules/@ethersproject/base64/src.ts/browser-base64.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/ens-normalize/decoder.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/ens-normalize/include.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/ens-normalize/lib.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/namehash.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/message.ts","../node_modules/.pnpm/@ethersproject+hash@5.7.0/node_modules/@ethersproject/hash/src.ts/typed-data.ts","../node_modules/.pnpm/@ethersproject+abi@5.7.0/node_modules/@ethersproject/abi/src.ts/interface.ts","../node_modules/.pnpm/@ethersproject+abstract-provider@5.7.0/node_modules/@ethersproject/abstract-provider/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+abstract-provider@5.7.0/node_modules/@ethersproject/abstract-provider/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+abstract-signer@5.7.0/node_modules/@ethersproject/abstract-signer/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+abstract-signer@5.7.0/node_modules/@ethersproject/abstract-signer/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/minimalistic-assert/index.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/utils.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/inherits/inherits_browser.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/curves.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/hmac-drbg/lib/hmac-drbg.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/node_modules/elliptic/lib/elliptic.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/@ethersproject/signing-key/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+signing-key@5.7.0/node_modules/@ethersproject/signing-key/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+transactions@5.7.0/node_modules/@ethersproject/transactions/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+transactions@5.7.0/node_modules/@ethersproject/transactions/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+contracts@5.7.0/node_modules/@ethersproject/contracts/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+contracts@5.7.0/node_modules/@ethersproject/contracts/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+basex@5.7.0/node_modules/@ethersproject/basex/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+sha2@5.7.0/node_modules/@ethersproject/sha2/src.ts/browser-sha2.ts","../node_modules/.pnpm/@ethersproject+sha2@5.7.0/node_modules/@ethersproject/sha2/src.ts/types.ts","../node_modules/.pnpm/@ethersproject+sha2@5.7.0/node_modules/@ethersproject/sha2/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+pbkdf2@5.7.0/node_modules/@ethersproject/pbkdf2/src.ts/browser-pbkdf2.ts","../node_modules/.pnpm/@ethersproject+wordlists@5.7.0/node_modules/@ethersproject/wordlists/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+wordlists@5.7.0/node_modules/@ethersproject/wordlists/src.ts/wordlist.ts","../node_modules/.pnpm/@ethersproject+wordlists@5.7.0/node_modules/@ethersproject/wordlists/src.ts/lang-en.ts","../node_modules/.pnpm/@ethersproject+wordlists@5.7.0/node_modules/@ethersproject/wordlists/src.ts/browser-wordlists.ts","../node_modules/.pnpm/@ethersproject+hdnode@5.7.0/node_modules/@ethersproject/hdnode/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+hdnode@5.7.0/node_modules/@ethersproject/hdnode/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+random@5.7.0/node_modules/@ethersproject/random/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+random@5.7.0/node_modules/@ethersproject/random/src.ts/browser-random.ts","../node_modules/.pnpm/@ethersproject+random@5.7.0/node_modules/@ethersproject/random/src.ts/shuffle.ts","../node_modules/.pnpm/@ethersproject+json-wallets@5.7.0/node_modules/@ethersproject/json-wallets/src.ts/crowdsale.ts","../node_modules/.pnpm/@ethersproject+json-wallets@5.7.0/node_modules/@ethersproject/json-wallets/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+json-wallets@5.7.0/node_modules/@ethersproject/json-wallets/src.ts/utils.ts","../node_modules/.pnpm/@ethersproject+json-wallets@5.7.0/node_modules/@ethersproject/json-wallets/src.ts/inspect.ts","../node_modules/.pnpm/@ethersproject+json-wallets@5.7.0/node_modules/@ethersproject/json-wallets/src.ts/keystore.ts","../node_modules/.pnpm/@ethersproject+json-wallets@5.7.0/node_modules/@ethersproject/json-wallets/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+wallet@5.7.0/node_modules/@ethersproject/wallet/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+wallet@5.7.0/node_modules/@ethersproject/wallet/src.ts/index.ts","../node_modules/.pnpm/ethers@5.7.2_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/src.ts/utils.ts","../node_modules/.pnpm/@ethersproject+solidity@5.7.0/node_modules/@ethersproject/solidity/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+solidity@5.7.0/node_modules/@ethersproject/solidity/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+units@5.7.0/node_modules/@ethersproject/units/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+units@5.7.0/node_modules/@ethersproject/units/src.ts/index.ts","../node_modules/.pnpm/@ethersproject+web@5.7.1/node_modules/@ethersproject/web/src.ts/_version.ts","../node_modules/.pnpm/@ethersproject+web@5.7.1/node_modules/@ethersproject/web/src.ts/browser-geturl.ts","../node_modules/.pnpm/@ethersproject+web@5.7.1/node_modules/@ethersproject/web/src.ts/index.ts","../node_modules/.pnpm/ethers@5.7.2_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/src.ts/_version.ts","../node_modules/.pnpm/ethers@5.7.2_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/src.ts/index.ts","../src/utils/contracts.ts","../src/utils/numbers.ts","../src/utils/strings.ts","../src/config/shift4Config.ts","../src/models/Addresses.ts","../src/models/Ecosystem.ts","../src/models/Environment.ts","../src/models/Web3Environment.ts","../src/models/SwapperCallType.ts","../src/models/Shift4Config.ts","../src/config/contractAddresses.ts","../src/config/variables.ts","../src/config/localTheme.ts","../src/utils/logger.ts","../src/utils/calculateGasCashback.ts","../src/utils/getTokenAmountOut.ts","../src/utils/balances.ts","../src/utils/fees.ts","../src/utils/colorValidation.ts","../src/utils/injectTooltipLayer.ts","../src/utils/index.ts","../src/components/ExpandableFees/index.tsx","../src/components/Skeleton/index.tsx","../src/hooks/useDebounce.tsx","../src/hooks/useEvmContractApi.ts","../src/hooks/usePortal.ts","../src/contexts/HistoryProvider.tsx","../swapper.config.ts","../src/services/api.ts","../src/services/rewards.ts","../src/contexts/PrivySmartWalletProvider.tsx","../src/contexts/RewardsProvider.tsx","../src/contexts/swapProvider/SwapProvider.tsx","../src/contexts/swapProvider/useShift4Api.ts","../src/contexts/swapProvider/defaultState.ts","../src/contexts/swapProvider/useTokensState.ts","../src/contexts/swapProvider/useRouteState.ts","../src/contexts/swapProvider/useTransactionState.ts","../src/hooks/useTokenBalance.tsx","../src/components/MaxBalance/index.tsx","../src/components/NumberBadge/index.tsx","../src/components/PointsReward/index.tsx","../src/components/SafeInput/index.tsx","../src/components/Spinner/index.tsx","../src/components/Swipeable/index.tsx","../src/components/TextInput/index.tsx","../src/hooks/useTimer.ts","../src/components/Timer/index.tsx","../src/components/TokenLogo/Unknown/index.tsx","../src/components/TokenLogo/index.tsx","../src/components/WaitingForInit/index.tsx","../src/components/CashLogoWithChain/index.tsx","../src/components/ChainPickerCard/index.tsx","../src/components/FeesWarningPanel/index.tsx","../src/components/Button/index.tsx","../src/components/ExternalAddressCard/index.tsx","../src/components/Navigation/index.tsx","../src/components/NavigationButton/index.tsx","../src/components/PageLayout/index.tsx","../src/components/PoweredByPanel/index.tsx","../src/components/PickChainButton/index.tsx","../src/components/DropdownMenu/index.tsx","../src/components/OpenWalletButton/index.tsx","../src/config/init.tsx","../src/styles/global.css","../src/config/fonts.ts","../src/utils/webComponents.ts","../src/TxWidgetWC.tsx","../src/app.tsx","../src/routes/AppRouter.tsx","../src/views/DepositLackingFundsView/index.tsx","../src/utils/delay.ts","../src/views/ErrorView/index.tsx","../src/features/Tx4Shift/index.tsx","../src/hooks/useShift4SDK.ts","../src/features/YourCash/index.tsx","../src/features/TokenPanel/index.tsx","../src/features/AmountPanel/index.tsx","../src/features/SwapButton/index.tsx","../src/features/AmountPicker/index.tsx","../src/features/DepositAndBuySteps/index.tsx","../src/features/ControlsDropdownMenu/index.tsx","../src/views/DepositView/index.tsx","../src/views/SuccessView/index.tsx","../src/views/MoveCashView/index.tsx","../src/views/MoveCashView/CashBridgePanel/CashAmountPanel/index.tsx","../src/views/MoveCashView/CashBridgePanel/index.tsx","../src/views/MoveCashView/CashBridgeButton/index.tsx","../src/views/HistoryView/index.tsx","../src/views/HistoryView/HistoryEntry/HistoryRow.tsx","../src/utils/groupHistoryByDate.ts","../src/views/PendingTransactionView/index.tsx","../src/views/ChainlinkSwapFailedView/index.tsx","../src/views/ProcessingView/index.tsx","../src/views/SettingsView/Slippage/index.tsx","../src/views/SettingsView/index.tsx","../src/views/TokenPickerView/index.tsx","../src/assets/icons/LightningIcon.tsx","../src/views/TokenPickerView/TokenItem/index.tsx","../src/views/TransferView/index.tsx","../src/views/TransferView/InitTransferView/index.tsx","../src/views/WalletView/index.tsx","../src/views/WalletView/WalletActionsPanel/index.tsx","../src/views/WalletView/TotalValueCard/index.tsx","../src/views/WalletView/hooks/usePnL.ts","../src/views/WalletView/YourCashExpandable/index.tsx","../src/views/WalletView/YourCashItem/index.tsx","../src/views/WalletView/YourTokensVirtuoso/index.tsx","../src/views/WalletView/YourTokenItem/index.tsx","../src/views/WithdrawView/index.tsx","../src/views/RewardsView/index.tsx","../src/components/AnimatedNumber/index.tsx","../src/views/RewardsView/RewardsSummaryCard/index.tsx","../src/views/RewardsView/RewardsTabsLayout/index.tsx","../src/views/RewardsView/RewardsTabsLayout/Tasks/TaskRow/index.tsx","../src/views/RewardsView/RewardsTabsLayout/StatsHeader/index.tsx","../src/views/RewardsView/RewardsTabsLayout/Tasks/index.tsx","../src/views/RewardsView/RewardsTabsLayout/Trades/index.tsx","../src/views/RewardsView/RewardsTabsLayout/Trades/TradesPointsAnimation/index.tsx","../src/views/RewardsView/RewardsTabsLayout/Trades/TradesPointsAnimation/starAnimation.json","../src/views/RewardsView/RewardsTabsLayout/Invite/index.tsx","../src/views/ChainPickerView/index.tsx","../src/views/ChainPickerView/ChainItem/index.tsx","../src/views/UsdcChainPickerView/index.tsx","../src/views/UsdcChainPickerView/UsdcChainItem/index.tsx","../src/views/IntegrationsView/index.tsx","../src/views/HomeView/index.tsx","../src/integrations/BaseIntegration.tsx","../src/integrations/Swap/Swap.tsx","../src/hooks/useGasFees.ts","../src/integrations/Swap/SwapIntegration.tsx","../src/integrations/Lido/Lido.tsx","../src/integrations/Lido/LidoIntegration.tsx","../src/integrations/IntegrationFactory.tsx","../src/views/DirectOnRampView/index.tsx","../src/views/LoadingView/index.tsx","../src/TxWidgetWCWrapped.tsx","../src/index.ts"],"sourcesContent":["(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var b