UNPKG

@pancakeswap/swap-sdk-evm

Version:
411 lines (403 loc) 11.5 kB
'use strict'; var chains = require('@pancakeswap/chains'); var swapSdkCore = require('@pancakeswap/swap-sdk-core'); var viem = require('viem'); var invariant2 = require('tiny-invariant'); var warning = require('tiny-warning'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var invariant2__default = /*#__PURE__*/_interopDefault(invariant2); var warning__default = /*#__PURE__*/_interopDefault(warning); // src/constants.ts function validateAndParseAddress(address) { try { const checksummedAddress = viem.getAddress(address); warning__default.default(address === checksummedAddress, `${address} is not checksummed.`); return checksummedAddress; } catch (error) { invariant2__default.default(false, `${address} is not a valid address.`); } } // src/entities/erc20Token.ts var ERC20Token = class extends swapSdkCore.Token { constructor(chainId, address, decimals, symbol, name, projectLink) { super(chainId, validateAndParseAddress(address), decimals, symbol, name, projectLink); } }; // src/constants.ts var ZERO_PERCENT = new swapSdkCore.Percent("0"); var ONE_HUNDRED_PERCENT = new swapSdkCore.Percent("1"); var WETH9 = { [chains.ChainId.ETHEREUM]: new ERC20Token( chains.ChainId.ETHEREUM, "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.GOERLI]: new ERC20Token( chains.ChainId.GOERLI, "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.BSC]: new ERC20Token( chains.ChainId.BSC, "0x2170Ed0880ac9A755fd29B2688956BD959F933F8", 18, "ETH", "Binance-Peg Ethereum Token", "https://ethereum.org" ), [chains.ChainId.BSC_TESTNET]: new ERC20Token( chains.ChainId.BSC, "0xE7bCB9e341D546b66a46298f4893f5650a56e99E", 18, "ETH", "ETH", "https://ethereum.org" ), [chains.ChainId.ARBITRUM_ONE]: new ERC20Token( chains.ChainId.ARBITRUM_ONE, "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.ARBITRUM_GOERLI]: new ERC20Token( chains.ChainId.ARBITRUM_GOERLI, "0xEe01c0CD76354C383B8c7B4e65EA88D00B06f36f", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.ZKSYNC]: new ERC20Token( chains.ChainId.ZKSYNC, "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.ZKSYNC_TESTNET]: new ERC20Token( chains.ChainId.ZKSYNC_TESTNET, "0x02968DB286f24cB18bB5b24903eC8eBFAcf591C0", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.POLYGON_ZKEVM]: new ERC20Token( chains.ChainId.POLYGON_ZKEVM, "0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.POLYGON_ZKEVM_TESTNET]: new ERC20Token( chains.ChainId.POLYGON_ZKEVM_TESTNET, "0x30ec47F7DFae72eA79646e6cf64a8A7db538915b", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.LINEA]: new ERC20Token( chains.ChainId.LINEA, "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.LINEA_TESTNET]: new ERC20Token( chains.ChainId.LINEA_TESTNET, "0x2C1b868d6596a18e32E61B901E4060C872647b6C", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.OPBNB_TESTNET]: new ERC20Token( chains.ChainId.OPBNB_TESTNET, "0x584f7b986d9942B0859a1E6921efA5342A673d04", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.OPBNB]: new ERC20Token( chains.ChainId.OPBNB, "0xE7798f023fC62146e8Aa1b36Da45fb70855a77Ea", 18, "ETH", "Binance-Peg Ethereum Token", "https://ethereum.org" ), [chains.ChainId.BASE]: new ERC20Token( chains.ChainId.BASE, "0x4200000000000000000000000000000000000006", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.BASE_TESTNET]: new ERC20Token( chains.ChainId.BASE_TESTNET, "0x4200000000000000000000000000000000000006", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.SCROLL_SEPOLIA]: new ERC20Token( chains.ChainId.SCROLL_SEPOLIA, "0x5300000000000000000000000000000000000004", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.SEPOLIA]: new ERC20Token( chains.ChainId.SEPOLIA, "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.ARBITRUM_SEPOLIA]: new ERC20Token( chains.ChainId.ARBITRUM_SEPOLIA, "0x1bdc540dEB9Ed1fA29964DeEcCc524A8f5e2198e", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.BASE_SEPOLIA]: new ERC20Token( chains.ChainId.BASE_SEPOLIA, "0x4200000000000000000000000000000000000006", 18, "WETH", "Wrapped Ether", "https://weth.io" ), [chains.ChainId.MONAD_TESTNET]: new ERC20Token( chains.ChainId.MONAD_TESTNET, "0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701", 18, "WMON", "Wrapped Monad", "https://www.monad.xyz/" ) }; var WBNB = { [chains.ChainId.ETHEREUM]: new ERC20Token( chains.ChainId.ETHEREUM, "0x418D75f65a02b3D53B2418FB8E1fe493759c7605", 18, "WBNB", "Wrapped BNB", "https://www.binance.org" ), [chains.ChainId.BSC]: new ERC20Token( chains.ChainId.BSC, "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", 18, "WBNB", "Wrapped BNB", "https://www.binance.org" ), [chains.ChainId.BSC_TESTNET]: new ERC20Token( chains.ChainId.BSC_TESTNET, "0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd", 18, "WBNB", "Wrapped BNB", "https://www.binance.org" ), [chains.ChainId.OPBNB_TESTNET]: new ERC20Token( chains.ChainId.OPBNB_TESTNET, "0x4200000000000000000000000000000000000006", 18, "WBNB", "Wrapped BNB", "https://www.binance.org" ), [chains.ChainId.OPBNB]: new ERC20Token( chains.ChainId.OPBNB, "0x4200000000000000000000000000000000000006", 18, "WBNB", "Wrapped BNB", "https://www.binance.org" ) }; var WNATIVE = { [chains.ChainId.ETHEREUM]: WETH9[chains.ChainId.ETHEREUM], [chains.ChainId.GOERLI]: WETH9[chains.ChainId.GOERLI], [chains.ChainId.BSC]: WBNB[chains.ChainId.BSC], [chains.ChainId.BSC_TESTNET]: WBNB[chains.ChainId.BSC_TESTNET], [chains.ChainId.ARBITRUM_ONE]: WETH9[chains.ChainId.ARBITRUM_ONE], [chains.ChainId.ARBITRUM_GOERLI]: WETH9[chains.ChainId.ARBITRUM_GOERLI], [chains.ChainId.POLYGON_ZKEVM]: WETH9[chains.ChainId.POLYGON_ZKEVM], [chains.ChainId.POLYGON_ZKEVM_TESTNET]: WETH9[chains.ChainId.POLYGON_ZKEVM_TESTNET], [chains.ChainId.ZKSYNC]: WETH9[chains.ChainId.ZKSYNC], [chains.ChainId.ZKSYNC_TESTNET]: WETH9[chains.ChainId.ZKSYNC_TESTNET], [chains.ChainId.LINEA]: WETH9[chains.ChainId.LINEA], [chains.ChainId.LINEA_TESTNET]: WETH9[chains.ChainId.LINEA_TESTNET], [chains.ChainId.OPBNB_TESTNET]: WBNB[chains.ChainId.OPBNB_TESTNET], [chains.ChainId.OPBNB]: WBNB[chains.ChainId.OPBNB], [chains.ChainId.BASE]: WETH9[chains.ChainId.BASE], [chains.ChainId.BASE_TESTNET]: WETH9[chains.ChainId.BASE_TESTNET], [chains.ChainId.SCROLL_SEPOLIA]: WETH9[chains.ChainId.SCROLL_SEPOLIA], [chains.ChainId.SEPOLIA]: WETH9[chains.ChainId.SEPOLIA], [chains.ChainId.ARBITRUM_SEPOLIA]: WETH9[chains.ChainId.ARBITRUM_SEPOLIA], [chains.ChainId.BASE_SEPOLIA]: WETH9[chains.ChainId.BASE_SEPOLIA], [chains.ChainId.MONAD_TESTNET]: WETH9[chains.ChainId.MONAD_TESTNET] }; var ETHER = { name: "Ether", symbol: "ETH", decimals: 18 }; var BNB = { name: "Binance Chain Native Token", symbol: "BNB", decimals: 18 }; var NATIVE = { [chains.ChainId.ETHEREUM]: ETHER, [chains.ChainId.GOERLI]: { name: "Goerli Ether", symbol: "GOR", decimals: 18 }, [chains.ChainId.BSC]: BNB, [chains.ChainId.BSC_TESTNET]: { name: "Binance Chain Native Token", symbol: "tBNB", decimals: 18 }, [chains.ChainId.ARBITRUM_ONE]: ETHER, [chains.ChainId.ARBITRUM_GOERLI]: { name: "Arbitrum Goerli Ether", symbol: "AGOR", decimals: 18 }, [chains.ChainId.POLYGON_ZKEVM]: ETHER, [chains.ChainId.POLYGON_ZKEVM_TESTNET]: ETHER, [chains.ChainId.ZKSYNC]: ETHER, [chains.ChainId.ZKSYNC_TESTNET]: ETHER, [chains.ChainId.LINEA]: ETHER, [chains.ChainId.LINEA_TESTNET]: ETHER, [chains.ChainId.OPBNB]: BNB, [chains.ChainId.OPBNB_TESTNET]: { name: "Binance Chain Native Token", symbol: "tBNB", decimals: 18 }, [chains.ChainId.BASE]: ETHER, [chains.ChainId.BASE_TESTNET]: ETHER, [chains.ChainId.SCROLL_SEPOLIA]: ETHER, [chains.ChainId.SEPOLIA]: { name: "Sepolia Ether", symbol: "SEP", decimals: 18 }, [chains.ChainId.ARBITRUM_SEPOLIA]: { name: "Arbitrum Sepolia Ether", symbol: "ETH", decimals: 18 }, [chains.ChainId.BASE_SEPOLIA]: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 }, [chains.ChainId.MONAD_TESTNET]: { name: "Monad Testnet Ether", symbol: "MON", decimals: 18 } }; var _Native = class extends swapSdkCore.NativeCurrency { constructor({ chainId, decimals, name, symbol }) { super(chainId, decimals, symbol, name); } get wrapped() { const wnative = WNATIVE[this.chainId]; invariant2__default.default(!!wnative, "WRAPPED"); return wnative; } static onChain(chainId) { if (chainId in this.cache) { return this.cache[chainId]; } invariant2__default.default(!!NATIVE[chainId], "NATIVE_CURRENCY"); const { decimals, name, symbol } = NATIVE[chainId]; return this.cache[chainId] = new _Native({ chainId, decimals, symbol, name }); } equals(other) { return other.isNative && other.chainId === this.chainId; } }; var Native = _Native; Native.cache = {}; // src/abis/ERC20.ts var erc20Abi = [ { constant: true, inputs: [], name: "decimals", outputs: [{ name: "", type: "uint8" }], payable: false, stateMutability: "view", type: "function" }, { constant: true, inputs: [{ name: "", type: "address" }], name: "balanceOf", outputs: [{ name: "", type: "uint256" }], payable: false, stateMutability: "view", type: "function" } ]; var _Ether = class extends swapSdkCore.NativeCurrency { constructor(chainId) { super(chainId, 18, "ETH", "Ether"); } get wrapped() { const weth9 = WETH9[this.chainId]; invariant2__default.default(!!weth9, "WRAPPED"); return weth9; } static onChain(chainId) { if (!this._etherCache[chainId]) { this._etherCache[chainId] = new _Ether(chainId); } return this._etherCache[chainId]; } equals(other) { return other.isNative && other.chainId === this.chainId; } }; var Ether = _Ether; Ether._etherCache = {}; exports.ERC20Token = ERC20Token; exports.Ether = Ether; exports.NATIVE = NATIVE; exports.Native = Native; exports.ONE_HUNDRED_PERCENT = ONE_HUNDRED_PERCENT; exports.WBNB = WBNB; exports.WETH9 = WETH9; exports.WNATIVE = WNATIVE; exports.ZERO_PERCENT = ZERO_PERCENT; exports.erc20Abi = erc20Abi; exports.validateAndParseAddress = validateAndParseAddress; //# sourceMappingURL=out.js.map //# sourceMappingURL=index.js.map