@proton/wrap-constants 0.0.35 → 0.0.39

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.
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-constants.cjs.production.min.js","sources":["../src/coins.ts","../src/parsers/base.ts","../src/parsers/actions.ts","../src/parsers/deposit.ts","../src/parsers/auth.ts","../src/constants.ts","../src/parsers/address.ts","../src/parsers/currency.ts","../src/parsers/wrap.ts","../src/parsers/otc.ts","../src/parsers/withdraw.ts","../src/parsers/withdrawalHistory.ts","../src/utils.ts"],"sourcesContent":["import { Asset } from '@bloks/numbers'\n\nexport enum Chains {\n BitcoinMainnet = 'Bitcoin',\n BitcoinTestnet = 'Bitcoin (Testnet)',\n EthereumMainnet = 'Ethereum',\n EthereumRopsten = 'Ethereum (Ropsten)',\n LitecoinMainnet = 'Litecoin',\n LitecoinTestnet = 'Litecoin (Testnet)',\n BitcoinCashMainnet = 'Bitcoin Cash',\n BitcoinCashTestnet = 'Bitcoin Cash (Testnet)',\n StellarMainnet = 'Stellar',\n StellarTestnet = 'Stellar (Testnet)',\n ProtonMainnet = 'Proton',\n ProtonTestnet = 'Proton (Testnet)',\n PolkadotMainnet = 'Polkadot',\n BinanceBEP2 = 'Binance (BEP2)',\n BinanceBEP20 = 'Binance (BEP20)',\n EosMainnet = 'EOS',\n EosTestnet = 'EOS (Jungle Testnet)',\n HederaMainnet = 'Hedera (Mainnet)',\n HederaTestnet = 'Hedera (Testnet)',\n DogeMainnet = 'Dogecoin',\n CardanoMainnet = 'Cardano',\n}\n\nexport enum Networks {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Ropsten = 'ropsten',\n ERC20 = 'erc20',\n BEP20 = 'bep20',\n XLM = 'xlm',\n}\n\nexport const similarChains = {\n [Chains.EthereumMainnet]: [Chains.BinanceBEP20],\n [Chains.BinanceBEP20]: [Chains.EthereumMainnet],\n}\n\nexport interface Coin {\n allowSwap : boolean;\n allowBridge : boolean;\n allowLend : boolean;\n allowBorrow : boolean;\n name : string;\n coin : string;\n xtokenSymbol : string;\n xtokenPrecision: number;\n xtokenContract : string;\n wallets : Wallet[];\n image : string;\n balance? : Asset;\n}\n \nexport interface Wallet {\n wallet : string;\n symbol : string;\n chain : Chains;\n network : Networks;\n precision : number;\n contract : string | undefined;\n hasWithdrawMemo: boolean;\n}\n\nexport type CoinWallet = Exclude<Coin, 'wallets'> & Wallet\n\nexport const explorerLinkByChain = {\n [Chains.BitcoinMainnet] : (txid: string) => `https://blockchain.com/btc/tx/${txid}`,\n [Chains.BitcoinTestnet] : (txid: string) => `https://blockstream.info/testnet/tx/${txid}`,\n [Chains.EthereumMainnet] : (txid: string) => `https://etherscan.io/tx/${txid}`,\n [Chains.EthereumRopsten] : (txid: string) => `https://ropsten.etherscan.io/tx/${txid}`,\n [Chains.LitecoinMainnet] : (txid: string) => `https://blockchair.com/litecoin/transaction/${txid}`,\n [Chains.LitecoinTestnet] : (txid: string) => `https://blockexplorer.one/litecoin/testnet/blockHash/${txid}`,\n [Chains.BitcoinCashMainnet]: (txid: string) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,\n [Chains.BitcoinCashTestnet]: (txid: string) => `https://blockexplorer.one/bitcoin-cash/testnet/blockHash/${txid}`,\n [Chains.StellarMainnet] : (txid: string) => `https://blockchair.com/stellar/transaction/${txid}`,\n [Chains.StellarTestnet] : (txid: string) => `https://testnet.steexp.com/tx/${txid}`,\n [Chains.ProtonMainnet] : (txid: string) => `https://proton.bloks.io/transaction/${txid}`,\n [Chains.ProtonTestnet] : (txid: string) => `https://proton-test.bloks.io/transaction/${txid}`,\n [Chains.PolkadotMainnet] : (txid: string) => `https://polkadot.subscan.io/extrinsic/${txid}`,\n [Chains.BinanceBEP2] : (txid: string) => `https://binance.mintscan.io/txs/${txid}`,\n [Chains.BinanceBEP20] : (txid: string) => `https://bscscan.com/tx/${txid}`,\n [Chains.EosMainnet] : (txid: string) => `https://bloks.io/transaction/${txid}`,\n [Chains.EosTestnet] : (txid: string) => `https://jungle.bloks.io/transaction/${txid}`,\n [Chains.HederaMainnet] : (txid: string) => `https://app.dragonglass.me/transactions/${txid}`,\n [Chains.HederaTestnet] : (txid: string) => `https://testnet.dragonglass.me/transactions/${txid}`,\n [Chains.DogeMainnet] : (txid: string) => `https://blockchair.com/dogecoin/transaction/${txid}`,\n [Chains.CardanoMainnet] : (txid: string) => `https://explorer.cardano.org/en/transaction?id=${txid}`,\n}\n\nexport const initializeCoins = (protonChain: string): {\n allCoins : Coin[];\n swapCoins : Coin[];\n bridgeCoins : Coin[];\n lendCoins : Coin[];\n borrowCoins : Coin[];\n loanCoins : Coin[];\n allEnabledCoins: Coin[];\n} => {\n const IS_MAINNET = protonChain === 'proton'\n const IS_TESTNET = protonChain === 'proton-test'\n \n const coins: Coin[] = [\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Proton',\n coin: 'XPR',\n xtokenSymbol: 'XPR',\n xtokenPrecision: 4,\n xtokenContract: 'eosio.token',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'XPR-ERC20',\n symbol: 'XPR',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 4,\n contract: '0xD7EFB00D12C2C13131FD319336FDF952525DA2AF',\n hasWithdrawMemo: false\n },\n {\n wallet: 'XPR-BEP20',\n symbol: 'XPR',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 4,\n contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',\n hasWithdrawMemo: false\n }\n ]: []),\n ],\n image: '/img/tokens/xpr.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'USD Coin',\n coin: 'USDC',\n xtokenSymbol: 'XUSDC',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-BEP20',\n symbol: 'USDC',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-XLM',\n symbol: 'USDC',\n chain: Chains.StellarMainnet,\n network: Networks.XLM,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n },\n ]: []),\n ...(IS_TESTNET ? [ {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdc.png'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Metal',\n coin: 'MTL',\n xtokenSymbol: 'XMT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MTL',\n symbol: 'MTL',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 8,\n contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xmt.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Bitcoin',\n coin: 'BTC',\n xtokenSymbol: 'XBTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbtc.png'\n },\n {\n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Ethereum',\n coin: 'ETH',\n xtokenSymbol: 'XETH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xeth.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Tether',\n coin: 'USDT',\n xtokenSymbol: 'XUSDT',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdt.png'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TrueUSD',\n coin: 'TUSD',\n xtokenSymbol: 'XTUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'TUSD',\n symbol: 'TUSD',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x0000000000085D4780B73119B644AE5ECD22B376',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xtusd.png'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Standard',\n coin: 'PAX',\n xtokenSymbol: 'XPAX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAX',\n symbol: 'PAX',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpax.png'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Gold',\n coin: 'PAXG',\n xtokenSymbol: 'XPAXG',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpaxg.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Uniswap',\n coin: 'UNI',\n xtokenSymbol: 'XUNI',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xuni.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: '1INCH',\n coin: '1INCH',\n xtokenSymbol: 'XINCH',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: '1INCH',\n symbol: '1INCH',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x111111111117DC0AA78B770FA6A738034120C302',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xinch.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Chainlink',\n coin: 'LINK',\n xtokenSymbol: 'XLINK',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LINK',\n symbol: 'LINK',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xlink.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Litecoin',\n coin: 'LTC',\n xtokenSymbol: 'XLTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xltc.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Bitcoin Cash',\n coin: 'BCH',\n xtokenSymbol: 'XBCH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbch.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Stellar',\n coin: 'XLM',\n xtokenSymbol: 'XXLM',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarMainnet,\n network: Networks.Mainnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarTestnet,\n network: Networks.Testnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xxlm.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Sense',\n coin: 'SENSE',\n xtokenSymbol: 'XSENSE',\n xtokenPrecision: 4,\n xtokenContract: 'sense',\n wallets: [],\n image: '/img/tokens/xsense.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polkadot',\n coin: 'DOT',\n xtokenSymbol: 'XDOT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOT',\n symbol: 'DOT',\n chain: Chains.PolkadotMainnet,\n network: Networks.Mainnet,\n precision: 10,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xdot.png'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Binance Coin',\n coin: 'BNB',\n xtokenSymbol: 'XBNB',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BNB',\n symbol: 'BNB',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbnb.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'EOS',\n coin: 'EOS',\n xtokenSymbol: 'XEOS',\n xtokenPrecision: 4,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosMainnet,\n network: Networks.Mainnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosTestnet,\n network: Networks.Testnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xeos.png'\n },\n { \n allowSwap: false,\n allowBridge: IS_TESTNET,\n allowLend: false,\n allowBorrow: false,\n name: 'HBAR',\n coin: 'HBAR',\n xtokenSymbol: 'XHBAR',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_TESTNET ? [{\n wallet: 'HBAR',\n symbol: 'HBAR',\n chain: Chains.HederaTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xhbar.png'\n },\n\n // Synthethic\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Dogecoin',\n coin: 'DOGE',\n xtokenSymbol: 'XDOGE',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOGE',\n symbol: 'DOGE',\n chain: Chains.DogeMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ],\n image: '/img/tokens/xdoge.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Cardano',\n coin: 'ADA',\n xtokenSymbol: 'XADA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ADA',\n symbol: 'ADA',\n chain: Chains.CardanoMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xada.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Theta',\n coin: 'THETA',\n xtokenSymbol: 'XTHETA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtheta.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Filecoin',\n coin: 'FIL',\n xtokenSymbol: 'XFIL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xfil.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'TRON',\n coin: 'TRX',\n xtokenSymbol: 'XTRX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtrx.png'\n },\n // End synthetic\n ]\n\n // Validation\n const walletWithDuplicateChains = coins.find(coin => {\n const chains = coin.wallets.map(wallet => wallet.chain)\n return new Set(chains).size !== chains.length\n })\n if (walletWithDuplicateChains) {\n throw new Error(`Coin ${walletWithDuplicateChains.coin} has duplicate chains in wallet`)\n }\n\n return {\n allCoins: coins,\n swapCoins: coins.filter(coin => coin.allowSwap),\n bridgeCoins: coins.filter(coin => coin.allowBridge),\n lendCoins: coins.filter(coin => coin.allowLend),\n borrowCoins: coins.filter(coin => coin.allowBorrow),\n loanCoins: coins.filter(coin => coin.allowLend || coin.allowBorrow),\n allEnabledCoins: coins.filter(coin => coin.allowSwap || coin.allowBridge)\n }\n}","import * as z from 'zod'\n\nexport const accountParser = z.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/)\n\nexport const authorizationParser = z.object({\n actor : accountParser,\n permission: z.string()\n})\nexport type Authorization = z.infer<typeof authorizationParser>\n\nexport const authorizationsParser = z.array(authorizationParser).min(1)\nexport type Authorizations = z.infer<typeof authorizationsParser>\n\nexport const ExtendedAssetParser = z.object({\n quantity: z.string(),\n contract: accountParser\n})\nexport type ExtendedAsset = z.infer<typeof ExtendedAssetParser>","import * as z from 'zod'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\nimport { accountParser, authorizationsParser } from './base'\n\nconst rawTransactionParser = z.object({\n expiration : z.string(),\n ref_block_num : z.number(),\n ref_block_prefix : z.number(),\n max_net_usage_words : z.number(),\n max_cpu_usage_ms : z.number(),\n delay_sec : z.number(),\n context_free_actions : z.array(z.any()),\n transaction_extensions: z.array(z.any())\n})\n\nexport const baseActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.object(data),\n authorization: authorizationsParser\n})\n\nexport const baseActionSerializedParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.string().or(z.object(data)),\n authorization: authorizationsParser\n})\n\nexport const webauthActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: z.literal('webauthn'),\n name: z.literal('exec'),\n data: z.object({\n account: accountParser,\n key: z.object({\n key: z.array(z.string().or(z.object({\n modulus: z.string(),\n exponent: z.string()\n }))),\n user_presence: z.number(),\n rpid: z.string()\n }),\n nonce: z.number(),\n permissions: authorizationsParser,\n signature: z.object({\n auth_data: z.string(),\n client_json: z.string(),\n signature: z.string()\n }),\n trx: rawTransactionParser.merge(\n z.object({\n actions: z.array(\n baseActionSerializedParser(contract, action, data)\n ).length(1)\n })\n )\n }),\n authorization: authorizationsParser\n})\n\nexport const singleActionTransactionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => {\n const baseAction = baseActionParser(contract, action, data)\n const webauthAction = webauthActionParser(contract, action, data)\n\n return rawTransactionParser.merge(z.object({\n actions: z.array(baseAction.or(webauthAction)).length(1)\n }))\n}","import * as z from 'zod'\n\nexport enum Type {\n RECEIVE = 'receive',\n SEND = 'send'\n}\n\nexport const depositBodyParser = z.object({\n id : z.string(), // \"0x000010203121388fac991\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n hash : z.string(), // \"0x000010203121388fac991\"\n coin : z.string(), // \"ETH\" or \"XPR\"\n wallet : z.string(), // \"ETH-ROPSTEN\" or \"XPR-MAINNET\"\n})\nexport type DepositBody = z.infer<typeof depositBodyParser>\n\nexport const transactionParser = z.object({\n id : z.string(), // \"2629304740076324677\"\n wallet : z.string(), // \"ETH\"\n value : z.number(), // 10000000000000000\n valueString : z.string(), // \"10000000000000000\"\n address : z.string(), // \"0x0000\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n state : z.string(), // \"confirmed\"\n confirmations : z.number(), // 1\n hash : z.string(), // \"b4781422be95fee8fbbf720e3e0fa9705ae834474ef25f5724cdd0f5d23211ed\"\n blockHash : z.string().optional().nullable(), // \"000000000000000000089b270eb99f75107d6a9cde37ec944cb80a2998df7b43\"\n blockHeight : z.number().optional().nullable(), // 643159\n})\nexport type Transaction = z.infer<typeof transactionParser>","import * as z from 'zod'\nimport { baseActionParser, singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT, WRAP_AUTH_ACTION } from '../constants'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: ZodRawShape) => {\n return z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser(contract, action, data)\n })\n}\n\nconst generateAuthData = {\n time: z.string(),\n protonAccount: z.string()\n}\nconst generateAuthActionsBaseParser = baseActionParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuthBaseAction = z.infer<typeof generateAuthActionsBaseParser>\n\nexport const generateAuthParser = createAbstractAuthParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuth = z.infer<typeof generateAuthParser>","import { Coin, CoinWallet, initializeCoins, Wallet } from './coins'\n\nexport const WRAP_CONTRACT = 'proton.wrap'\nexport const WRAP_AUTH_ACTION = 'generateauth'\n\nexport const initializeConstants = (chain: string) => {\n const { swapCoins, bridgeCoins, allEnabledCoins, allCoins, lendCoins, borrowCoins, loanCoins } = initializeCoins(chain)\n\n const constants = {\n SWAP_CONTRACT: 'proton.swaps',\n FEE_FACTOR: 10000,\n GOOGLE_MAPS_KEY: 'AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs',\n SWAP_URL: chain === 'proton'\n ? 'https://otc.protonswap.com'\n : 'https://otc-test.protonswap.com',\n WRAP_SERVER_URL: chain === 'proton'\n ? 'https://www.api.bloks.io/proton-wrap-public2'\n : 'https://www.api.bloks.io/proton-wrap-testnet-public2',\n WRAP_CONTRACT,\n WRAP_ACTIONS: {\n SAVE_ADDRESS: 'saveaddress2',\n DELETE_ADDRESS: 'deladdress2',\n WRAP_START: 'wrapstart2',\n WRAP_FINISH: 'wrapfinish2',\n WRAP_PROCESS: 'wrapprocess2',\n WRAP_SET_CONF: 'wrapsetconf2',\n },\n WRAP_TABLES: {\n ADDRESSES: 'addresses2',\n WRAPS: 'wraps2'\n },\n ADDRESSES_INDEXES: {\n BY_ACCOUNT: 2,\n BY_ADDR_HASH: 3\n },\n WRAPS_INDEXES: {\n BY_ACCOUNT: 2,\n BY_STATUS: 3,\n BY_WRAP_HASH: 4\n },\n WRAP_PROCESS_TIMER: 5000,\n\n FARM_CONTRACT: 'yield.farms',\n\n WEBHOOK_PERMISSION: 'webhook',\n PUBLIC_PERMISSION: 'public',\n LIGHT_PERMISSION: 'light',\n WRAP_AUTH_ACTION: WRAP_AUTH_ACTION,\n\n METAL_ENDPOINT: chain === 'proton'\n ? 'https://cirrus.metalpay.com'\n : 'https://cirrus-dev.metalpay.com',\n\n METAL_PROTON_ENDPOINT: chain === 'proton'\n ? 'https://api.protonchain.com'\n : 'https://api-dev.protonchain.com',\n\n PROTON_ENDPOINTS: chain === 'proton'\n ? ['https://proton.greymass.com', 'https://proton.eoscafeblock.com', 'https://proton.cryptolions.io', 'https://proton.eosusa.news']\n : ['https://testnet.protonchain.com'],\n\n CHAIN_ID: chain === 'proton'\n ? '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'\n : '71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd',\n\n CHAIN: chain,\n\n SWAP_COINS: swapCoins,\n BRIDGE_COINS: bridgeCoins,\n ALL_ENABLED_COINS: allEnabledCoins,\n LEND_COINS: lendCoins,\n BORROW_COINS: borrowCoins,\n LOAN_COINS: loanCoins,\n ALL_COINS: allCoins,\n\n findBridgeCoinWalletByXtokenAndChain (xtokenSymbol: string, chain: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.xtokenSymbol === xtokenSymbol)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.chain === chain)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinWallet (coin: string, wallet: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.wallet === wallet)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinNetwork (coin: string, network: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.network === network)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n }\n }\n\n return constants\n}","import * as z from 'zod'\nimport { accountParser } from './base'\nimport { generateAuthParser } from './auth'\n\nexport const addressParser = z.object({\n index : z.number(),\n account : accountParser,\n chain : z.string(),\n address : z.string(),\n address_hash: z.string(),\n})\nexport type Address = z.infer<typeof addressParser>\n\nexport const generateAddressBodyParser = z.object({\n coin: z.string(),\n wallet: z.string(),\n}).merge(generateAuthParser)\nexport type GenerateAddressBody = z.infer<typeof generateAddressBodyParser>\n\nexport const generateAddressResponse = z.object({\n id : z.string(), // \"2448834505708930950\",\n address: z.string(), // \"0x617C03C1E2Bf81C062A4CEfbE312c070E1d86d18\",\n coin : z.string(), // \"ETH\",\n wallet : z.string(), // \"ETH\",\n memo : z.string().optional()\n})\nexport type GenerateAddressResponse = z.infer<typeof generateAddressResponse>\n","import * as z from 'zod'\n\nexport interface CurrencyStat {\n supply : string;\n max_supply: string;\n issuer : string;\n}\nexport interface CurrencyStats {\n [key: string]: CurrencyStat;\n}\n\nexport const rateParser = z.object({\n counterCurrency : z.string(),\n price : z.number(),\n priceChangePercent: z.number(),\n marketCap : z.number(),\n volume : z.number(),\n timestamp : z.number()\n})\nexport type Rate = z.infer<typeof rateParser>\n\nexport const exchangeRateParser = z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n})\nexport type ExchangeRate = z.infer<typeof exchangeRateParser>\n\nexport const exchangeRatesParser = z.array(exchangeRateParser)\nexport type ExchangeRates = z.infer<typeof exchangeRatesParser>","import * as z from 'zod'\nimport { ExtendedAssetParser } from './base'\n\nexport enum Status {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAIL = 'fail',\n PROCESSING = 'processing'\n}\n\nexport const wrapStartParser = z.object({\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n confirmations : z.number()\n})\n\nexport type WrapStart = z.infer<typeof wrapStartParser>\n\nexport const wrapSetConfParser = z.object({\n wrap_hash : z.string(),\n confirmations: z.number()\n})\nexport type WrapSetConf = z.infer<typeof wrapSetConfParser>\n\nexport const wrapParser = z.object({\n index : z.number(),\n proton_account : z.string(),\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n status : z.nativeEnum(Status),\n finish_txid : z.string(),\n wrap_hash : z.string(),\n confirmations : z.number(),\n})\nexport type Wrap = z.infer<typeof wrapParser>","import * as z from 'zod'\n\nexport const otcOrderResponseParser = z.object({\n success : z.boolean(),\n transaction_id: z.string(),\n errormsg : z.string().optional()\n})\nexport type OtcOrderResponse = z.infer<typeof otcOrderResponseParser>\n\nexport const otcQuoteBodyParser = z.object({\n baseAmount : z.number(),\n baseSymbol : z.string(),\n quoteSymbol: z.string()\n})\nexport type OtcQuoteBody = z.infer<typeof otcQuoteBodyParser>\n\nexport const otcQuoteResponseParser = z.object({\n success : z.boolean(),\n token : z.string(),\n qty : z.number(),\n errormsg: z.string().optional()\n})\nexport type OtcQuoteResponse = z.infer<typeof otcQuoteResponseParser>","import * as z from 'zod'\nimport { singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT } from '../constants'\nimport { baseActionParser } from './actions'\n\nconst withdrawData = {\n from: z.string().refine((val) => val !== WRAP_CONTRACT, {\n message: `${WRAP_CONTRACT} must be receiver`,\n }),\n to: z.literal(WRAP_CONTRACT),\n quantity: z.string(),\n memo: z.string()\n}\nconst withdrawBodyBaseAction = baseActionParser('*', 'transfer', withdrawData)\nexport type WithdrawBodyBaseAction = z.infer<typeof withdrawBodyBaseAction>\n\nexport const withdrawBodyParser = z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser('*', 'transfer', withdrawData),\n quoteId: z.string(),\n provider: z.string().optional()\n})\nexport type WithdrawBody = z.infer<typeof withdrawBodyParser>\n\nexport const withdrawMetalResponseParser = z.object({\n success: z.boolean(),\n id : z.string(),\n})\nexport type WithdrawMetalResponse = z.infer<typeof withdrawMetalResponseParser>\n\nexport const withdrawalFeeQuoteParser = z.object({\n quoteId : z.string(),\n estimatedFee: z.string(),\n currency : z.string(),\n network : z.string(),\n})\nexport type WithdrawalFeeQuote = z.infer<typeof withdrawalFeeQuoteParser>","import * as z from 'zod'\n\nexport const withdrawHistoryMetalSwapParser = z.object({\n id : z.string(),\n status : z.string(),\n amount : z.string(),\n currency : z.string(),\n network : z.string(),\n created : z.string(),\n withdrawalAddress: z.string(),\n withdrawalHash : z.string().optional()\n})\nexport type WithdrawHistoryMetalSwap = z.infer<typeof withdrawHistoryMetalSwapParser>\n\nexport const withdrawHistoryMetalResponseParser = z.object({\n swaps : z.array(withdrawHistoryMetalSwapParser),\n page : z.number(),\n pageSize : z.number(),\n numberOfElements: z.number(),\n totalPages : z.number(),\n totalElements : z.number()\n})\nexport type WithdrawHistoryMetalResponse = z.infer<typeof withdrawHistoryMetalResponseParser>\n","interface PartialCoin {\n xtokenSymbol: string;\n xtokenPrecision: number;\n xtokenContract: string;\n}\n\nexport const isSameToken = (token1: PartialCoin, token2: PartialCoin) => {\n return token1.xtokenSymbol === token2.xtokenSymbol &&\n token1.xtokenPrecision === token2.xtokenPrecision &&\n token1.xtokenContract === token2.xtokenContract\n}"],"names":["Chains","Networks","similarChains","EthereumMainnet","BinanceBEP20","explorerLinkByChain","BitcoinMainnet","txid","BitcoinTestnet","EthereumRopsten","LitecoinMainnet","LitecoinTestnet","BitcoinCashMainnet","BitcoinCashTestnet","StellarMainnet","StellarTestnet","ProtonMainnet","ProtonTestnet","PolkadotMainnet","BinanceBEP2","EosMainnet","EosTestnet","HederaMainnet","HederaTestnet","DogeMainnet","CardanoMainnet","initializeCoins","protonChain","IS_MAINNET","IS_TESTNET","coins","allowSwap","allowBridge","allowLend","allowBorrow","name","coin","xtokenSymbol","xtokenPrecision","xtokenContract","wallets","wallet","symbol","chain","network","ERC20","precision","contract","hasWithdrawMemo","BEP20","image","XLM","undefined","Ropsten","Mainnet","Testnet","walletWithDuplicateChains","find","chains","map","Set","size","length","Error","allCoins","swapCoins","filter","bridgeCoins","lendCoins","borrowCoins","loanCoins","allEnabledCoins","accountParser","z","regex","authorizationParser","actor","permission","authorizationsParser","min","ExtendedAssetParser","quantity","rawTransactionParser","expiration","ref_block_num","ref_block_prefix","max_net_usage_words","max_cpu_usage_ms","delay_sec","context_free_actions","transaction_extensions","baseActionParser","action","data","account","authorization","baseActionSerializedParser","or","webauthActionParser","key","modulus","exponent","user_presence","rpid","nonce","permissions","signature","auth_data","client_json","trx","merge","actions","singleActionTransactionParser","baseAction","webauthAction","Type","createAbstractAuthParser","signer","signatures","transaction","generateAuthParser","time","protonAccount","addressParser","index","address","address_hash","generateAddressBodyParser","generateAddressResponse","id","memo","optional","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","Status","depositBodyParser","type","hash","transactionParser","value","valueString","state","confirmations","blockHash","nullable","blockHeight","otcOrderResponseParser","success","transaction_id","errormsg","otcQuoteBodyParser","baseAmount","baseSymbol","quoteSymbol","otcQuoteResponseParser","token","qty","withdrawData","from","refine","val","message","WRAP_CONTRACT","to","withdrawBodyParser","quoteId","provider","withdrawMetalResponseParser","withdrawalFeeQuoteParser","estimatedFee","currency","withdrawHistoryMetalSwapParser","status","amount","created","withdrawalAddress","withdrawalHash","withdrawHistoryMetalResponseParser","swaps","page","pageSize","numberOfElements","totalPages","totalElements","wrapStartParser","balance","deposit_address","wrapSetConfParser","wrap_hash","wrapParser","proton_account","finish_txid","constants","SWAP_CONTRACT","FEE_FACTOR","GOOGLE_MAPS_KEY","SWAP_URL","WRAP_SERVER_URL","WRAP_ACTIONS","SAVE_ADDRESS","DELETE_ADDRESS","WRAP_START","WRAP_FINISH","WRAP_PROCESS","WRAP_SET_CONF","WRAP_TABLES","ADDRESSES","WRAPS","ADDRESSES_INDEXES","BY_ACCOUNT","BY_ADDR_HASH","WRAPS_INDEXES","BY_STATUS","BY_WRAP_HASH","WRAP_PROCESS_TIMER","FARM_CONTRACT","WEBHOOK_PERMISSION","PUBLIC_PERMISSION","LIGHT_PERMISSION","WRAP_AUTH_ACTION","METAL_ENDPOINT","METAL_PROTON_ENDPOINT","PROTON_ENDPOINTS","CHAIN_ID","CHAIN","SWAP_COINS","BRIDGE_COINS","ALL_ENABLED_COINS","LEND_COINS","BORROW_COINS","LOAN_COINS","ALL_COINS","findBridgeCoinWalletByXtokenAndChain","bridgeCoin","bridgeWallet","findBridgeCoinWallet","findBridgeCoinNetwork","token1","token2"],"mappings":"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"}
1
+ {"version":3,"file":"wrap-constants.cjs.production.min.js","sources":["../src/coins.ts","../src/parsers/base.ts","../src/parsers/actions.ts","../src/parsers/deposit.ts","../src/parsers/auth.ts","../src/constants.ts","../src/parsers/address.ts","../src/parsers/currency.ts","../src/parsers/wrap.ts","../src/parsers/otc.ts","../src/parsers/withdraw.ts","../src/parsers/withdrawalHistory.ts","../src/utils.ts"],"sourcesContent":["import { Asset } from '@bloks/numbers'\n\nexport enum Chains {\n BitcoinMainnet = 'Bitcoin',\n BitcoinTestnet = 'Bitcoin (Testnet)',\n EthereumMainnet = 'Ethereum',\n EthereumRopsten = 'Ethereum (Ropsten)',\n LitecoinMainnet = 'Litecoin',\n LitecoinTestnet = 'Litecoin (Testnet)',\n BitcoinCashMainnet = 'Bitcoin Cash',\n BitcoinCashTestnet = 'Bitcoin Cash (Testnet)',\n StellarMainnet = 'Stellar',\n StellarTestnet = 'Stellar (Testnet)',\n ProtonMainnet = 'Proton',\n ProtonTestnet = 'Proton (Testnet)',\n PolkadotMainnet = 'Polkadot',\n BinanceBEP2 = 'Binance (BEP2)',\n BinanceBEP20 = 'Binance (BEP20)',\n EosMainnet = 'EOS',\n EosTestnet = 'EOS (Jungle Testnet)',\n HederaMainnet = 'Hedera (Mainnet)',\n HederaTestnet = 'Hedera (Testnet)',\n DogeMainnet = 'Dogecoin',\n CardanoMainnet = 'Cardano',\n}\n\nexport enum Networks {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Ropsten = 'ropsten',\n ERC20 = 'erc20',\n BEP20 = 'bep20',\n XLM = 'xlm',\n}\n\nexport const similarChains = {\n [Chains.EthereumMainnet]: [Chains.BinanceBEP20],\n [Chains.BinanceBEP20]: [Chains.EthereumMainnet],\n}\n\nexport interface Coin {\n allowSwap : boolean;\n allowBridge : boolean;\n allowLend : boolean;\n allowBorrow : boolean;\n name : string;\n coin : string;\n xtokenSymbol : string;\n xtokenPrecision: number;\n xtokenContract : string;\n wallets : Wallet[];\n image : string;\n coingeckoId : string;\n balance? : Asset;\n}\n \nexport interface Wallet {\n wallet : string;\n symbol : string;\n chain : Chains;\n network : Networks;\n precision : number;\n contract : string | undefined;\n hasWithdrawMemo: boolean;\n}\n\nexport type CoinWallet = Exclude<Coin, 'wallets'> & Wallet\n\nexport const explorerLinkByChain = {\n [Chains.BitcoinMainnet] : (txid: string) => `https://blockchain.com/btc/tx/${txid}`,\n [Chains.BitcoinTestnet] : (txid: string) => `https://blockstream.info/testnet/tx/${txid}`,\n [Chains.EthereumMainnet] : (txid: string) => `https://etherscan.io/tx/${txid}`,\n [Chains.EthereumRopsten] : (txid: string) => `https://ropsten.etherscan.io/tx/${txid}`,\n [Chains.LitecoinMainnet] : (txid: string) => `https://blockchair.com/litecoin/transaction/${txid}`,\n [Chains.LitecoinTestnet] : (txid: string) => `https://blockexplorer.one/litecoin/testnet/blockHash/${txid}`,\n [Chains.BitcoinCashMainnet]: (txid: string) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,\n [Chains.BitcoinCashTestnet]: (txid: string) => `https://blockexplorer.one/bitcoin-cash/testnet/blockHash/${txid}`,\n [Chains.StellarMainnet] : (txid: string) => `https://blockchair.com/stellar/transaction/${txid}`,\n [Chains.StellarTestnet] : (txid: string) => `https://testnet.steexp.com/tx/${txid}`,\n [Chains.ProtonMainnet] : (txid: string) => `https://proton.bloks.io/transaction/${txid}`,\n [Chains.ProtonTestnet] : (txid: string) => `https://proton-test.bloks.io/transaction/${txid}`,\n [Chains.PolkadotMainnet] : (txid: string) => `https://polkadot.subscan.io/extrinsic/${txid}`,\n [Chains.BinanceBEP2] : (txid: string) => `https://binance.mintscan.io/txs/${txid}`,\n [Chains.BinanceBEP20] : (txid: string) => `https://bscscan.com/tx/${txid}`,\n [Chains.EosMainnet] : (txid: string) => `https://bloks.io/transaction/${txid}`,\n [Chains.EosTestnet] : (txid: string) => `https://jungle.bloks.io/transaction/${txid}`,\n [Chains.HederaMainnet] : (txid: string) => `https://app.dragonglass.me/transactions/${txid}`,\n [Chains.HederaTestnet] : (txid: string) => `https://testnet.dragonglass.me/transactions/${txid}`,\n [Chains.DogeMainnet] : (txid: string) => `https://blockchair.com/dogecoin/transaction/${txid}`,\n [Chains.CardanoMainnet] : (txid: string) => `https://explorer.cardano.org/en/transaction?id=${txid}`,\n}\n\nexport const initializeCoins = (protonChain: string): {\n allCoins : Coin[];\n swapCoins : Coin[];\n bridgeCoins : Coin[];\n lendCoins : Coin[];\n borrowCoins : Coin[];\n loanCoins : Coin[];\n allEnabledCoins: Coin[];\n} => {\n const IS_MAINNET = protonChain === 'proton'\n const IS_TESTNET = protonChain === 'proton-test'\n \n const coins: Coin[] = [\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Proton',\n coin: 'XPR',\n xtokenSymbol: 'XPR',\n xtokenPrecision: 4,\n xtokenContract: 'eosio.token',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'XPR-ERC20',\n symbol: 'XPR',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 4,\n contract: '0xD7EFB00D12C2C13131FD319336FDF952525DA2AF',\n hasWithdrawMemo: false\n },\n {\n wallet: 'XPR-BEP20',\n symbol: 'XPR',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 4,\n contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',\n hasWithdrawMemo: false\n }\n ]: []),\n ],\n image: '/img/tokens/xpr.png',\n coingeckoId: 'proton'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'USD Coin',\n coin: 'USDC',\n xtokenSymbol: 'XUSDC',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-BEP20',\n symbol: 'USDC',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-XLM',\n symbol: 'USDC',\n chain: Chains.StellarMainnet,\n network: Networks.XLM,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n },\n ]: []),\n ...(IS_TESTNET ? [ {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdc.png',\n coingeckoId: 'usd-coin'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Metal',\n coin: 'MTL',\n xtokenSymbol: 'XMT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MTL',\n symbol: 'MTL',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 8,\n contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xmt.png',\n coingeckoId: 'metal'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Bitcoin',\n coin: 'BTC',\n xtokenSymbol: 'XBTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbtc.png',\n coingeckoId: 'bitcoin'\n },\n {\n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Ethereum',\n coin: 'ETH',\n xtokenSymbol: 'XETH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xeth.png',\n coingeckoId: 'ethereum'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: true,\n name: 'Proton Loan',\n coin: 'LOAN',\n xtokenSymbol: 'LOAN',\n xtokenPrecision: 4,\n xtokenContract: 'loan.token',\n wallets: [],\n image: '/img/tokens/loan.png',\n coingeckoId: ''\n },\n\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Tether',\n coin: 'USDT',\n xtokenSymbol: 'XUSDT',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdt.png',\n coingeckoId: 'tether'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TrueUSD',\n coin: 'TUSD',\n xtokenSymbol: 'XTUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'TUSD',\n symbol: 'TUSD',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x0000000000085D4780B73119B644AE5ECD22B376',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xtusd.png',\n coingeckoId: 'true-usd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Standard',\n coin: 'PAX',\n xtokenSymbol: 'XPAX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAX',\n symbol: 'PAX',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpax.png',\n coingeckoId: 'usdp'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Gold',\n coin: 'PAXG',\n xtokenSymbol: 'XPAXG',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpaxg.png',\n coingeckoId: 'pax-gold'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Uniswap',\n coin: 'UNI',\n xtokenSymbol: 'XUNI',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xuni.png',\n coingeckoId: 'uniswap'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: '1INCH',\n coin: '1INCH',\n xtokenSymbol: 'XINCH',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: '1INCH',\n symbol: '1INCH',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x111111111117DC0AA78B770FA6A738034120C302',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xinch.png',\n coingeckoId: '1inch'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Chainlink',\n coin: 'LINK',\n xtokenSymbol: 'XLINK',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LINK',\n symbol: 'LINK',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xlink.png',\n coingeckoId: 'chainlink'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Litecoin',\n coin: 'LTC',\n xtokenSymbol: 'XLTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xltc.png',\n coingeckoId: 'litecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Bitcoin Cash',\n coin: 'BCH',\n xtokenSymbol: 'XBCH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbch.png',\n coingeckoId: 'bitcoin-cash'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Stellar',\n coin: 'XLM',\n xtokenSymbol: 'XXLM',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarMainnet,\n network: Networks.Mainnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarTestnet,\n network: Networks.Testnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xxlm.png',\n coingeckoId: 'stellar'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Sense',\n coin: 'SENSE',\n xtokenSymbol: 'XSENSE',\n xtokenPrecision: 4,\n xtokenContract: 'sense',\n wallets: [],\n image: '/img/tokens/xsense.png',\n coingeckoId: 'sense'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polkadot',\n coin: 'DOT',\n xtokenSymbol: 'XDOT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOT',\n symbol: 'DOT',\n chain: Chains.PolkadotMainnet,\n network: Networks.Mainnet,\n precision: 10,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xdot.png',\n coingeckoId: 'polkadot'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Binance Coin',\n coin: 'BNB',\n xtokenSymbol: 'XBNB',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BNB',\n symbol: 'BNB',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbnb.png',\n coingeckoId: 'binancecoin'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'EOS',\n coin: 'EOS',\n xtokenSymbol: 'XEOS',\n xtokenPrecision: 4,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosMainnet,\n network: Networks.Mainnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosTestnet,\n network: Networks.Testnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xeos.png',\n coingeckoId: 'eos'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: false,\n name: 'Dogecoin',\n coin: 'DOGE',\n xtokenSymbol: 'XDOGE',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOGE',\n symbol: 'DOGE',\n chain: Chains.DogeMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ],\n image: '/img/tokens/xdoge.png',\n coingeckoId: 'dogecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Cardano',\n coin: 'ADA',\n xtokenSymbol: 'XADA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ADA',\n symbol: 'ADA',\n chain: Chains.CardanoMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xada.png',\n coingeckoId: 'cardano'\n },\n\n // Synthethic\n { \n allowSwap: false,\n allowBridge: IS_TESTNET,\n allowLend: false,\n allowBorrow: false,\n name: 'HBAR',\n coin: 'HBAR',\n xtokenSymbol: 'XHBAR',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_TESTNET ? [{\n wallet: 'HBAR',\n symbol: 'HBAR',\n chain: Chains.HederaTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xhbar.png',\n coingeckoId: 'hedera-hashgraph'\n },\n\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Theta',\n coin: 'THETA',\n xtokenSymbol: 'XTHETA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtheta.png',\n coingeckoId: 'theta-token'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Filecoin',\n coin: 'FIL',\n xtokenSymbol: 'XFIL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xfil.png',\n coingeckoId: 'filecoin'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'TRON',\n coin: 'TRX',\n xtokenSymbol: 'XTRX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtrx.png',\n coingeckoId: 'tron'\n },\n // End synthetic\n ]\n\n // Validation\n const walletWithDuplicateChains = coins.find(coin => {\n const chains = coin.wallets.map(wallet => wallet.chain)\n return new Set(chains).size !== chains.length\n })\n if (walletWithDuplicateChains) {\n throw new Error(`Coin ${walletWithDuplicateChains.coin} has duplicate chains in wallet`)\n }\n\n return {\n allCoins: coins,\n swapCoins: coins.filter(coin => coin.allowSwap),\n bridgeCoins: coins.filter(coin => coin.allowBridge),\n lendCoins: coins.filter(coin => coin.allowLend),\n borrowCoins: coins.filter(coin => coin.allowBorrow),\n loanCoins: coins.filter(coin => coin.allowLend || coin.allowBorrow),\n allEnabledCoins: coins.filter(coin => coin.allowSwap || coin.allowBridge)\n }\n}","import * as z from 'zod'\n\nexport const accountParser = z.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/)\n\nexport const authorizationParser = z.object({\n actor : accountParser,\n permission: z.string()\n})\nexport type Authorization = z.infer<typeof authorizationParser>\n\nexport const authorizationsParser = z.array(authorizationParser).min(1)\nexport type Authorizations = z.infer<typeof authorizationsParser>\n\nexport const ExtendedAssetParser = z.object({\n quantity: z.string(),\n contract: accountParser\n})\nexport type ExtendedAsset = z.infer<typeof ExtendedAssetParser>","import * as z from 'zod'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\nimport { accountParser, authorizationsParser } from './base'\n\nconst rawTransactionParser = z.object({\n expiration : z.string(),\n ref_block_num : z.number(),\n ref_block_prefix : z.number(),\n max_net_usage_words : z.number(),\n max_cpu_usage_ms : z.number(),\n delay_sec : z.number(),\n context_free_actions : z.array(z.any()),\n transaction_extensions: z.array(z.any())\n})\n\nexport const baseActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.object(data),\n authorization: authorizationsParser\n})\n\nexport const baseActionSerializedParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.string().or(z.object(data)),\n authorization: authorizationsParser\n})\n\nexport const webauthActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: z.literal('webauthn'),\n name: z.literal('exec'),\n data: z.object({\n account: accountParser,\n key: z.object({\n key: z.array(z.string().or(z.object({\n modulus: z.string(),\n exponent: z.string()\n }))),\n user_presence: z.number(),\n rpid: z.string()\n }),\n nonce: z.number(),\n permissions: authorizationsParser,\n signature: z.object({\n auth_data: z.string(),\n client_json: z.string(),\n signature: z.string()\n }),\n trx: rawTransactionParser.merge(\n z.object({\n actions: z.array(\n baseActionSerializedParser(contract, action, data)\n ).length(1)\n })\n )\n }),\n authorization: authorizationsParser\n})\n\nexport const singleActionTransactionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => {\n const baseAction = baseActionParser(contract, action, data)\n const webauthAction = webauthActionParser(contract, action, data)\n\n return rawTransactionParser.merge(z.object({\n actions: z.array(baseAction.or(webauthAction)).length(1)\n }))\n}","import * as z from 'zod'\n\nexport enum Type {\n RECEIVE = 'receive',\n SEND = 'send'\n}\n\nexport const depositBodyParser = z.object({\n id : z.string(), // \"0x000010203121388fac991\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n hash : z.string(), // \"0x000010203121388fac991\"\n coin : z.string(), // \"ETH\" or \"XPR\"\n wallet : z.string(), // \"ETH-ROPSTEN\" or \"XPR-MAINNET\"\n})\nexport type DepositBody = z.infer<typeof depositBodyParser>\n\nexport const transactionParser = z.object({\n id : z.string(), // \"2629304740076324677\"\n wallet : z.string(), // \"ETH\"\n value : z.number(), // 10000000000000000\n valueString : z.string(), // \"10000000000000000\"\n address : z.string(), // \"0x0000\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n state : z.string(), // \"confirmed\"\n confirmations : z.number(), // 1\n hash : z.string(), // \"b4781422be95fee8fbbf720e3e0fa9705ae834474ef25f5724cdd0f5d23211ed\"\n blockHash : z.string().optional().nullable(), // \"000000000000000000089b270eb99f75107d6a9cde37ec944cb80a2998df7b43\"\n blockHeight : z.number().optional().nullable(), // 643159\n})\nexport type Transaction = z.infer<typeof transactionParser>","import * as z from 'zod'\nimport { baseActionParser, singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT, WRAP_AUTH_ACTION } from '../constants'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: ZodRawShape) => {\n return z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser(contract, action, data)\n })\n}\n\nconst generateAuthData = {\n time: z.string(),\n protonAccount: z.string()\n}\nconst generateAuthActionsBaseParser = baseActionParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuthBaseAction = z.infer<typeof generateAuthActionsBaseParser>\n\nexport const generateAuthParser = createAbstractAuthParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuth = z.infer<typeof generateAuthParser>","import { Coin, CoinWallet, initializeCoins, Wallet } from './coins'\n\nexport const WRAP_CONTRACT = 'proton.wrap'\nexport const WRAP_AUTH_ACTION = 'generateauth'\n\nexport const initializeConstants = (chain: string) => {\n const { swapCoins, bridgeCoins, allEnabledCoins, allCoins, lendCoins, borrowCoins, loanCoins } = initializeCoins(chain)\n\n const constants = {\n SWAP_CONTRACT: 'proton.swaps',\n FEE_FACTOR: 10000,\n GOOGLE_MAPS_KEY: 'AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs',\n SWAP_URL: chain === 'proton'\n ? 'https://otc.protonswap.com'\n : 'https://otc-test.protonswap.com',\n WRAP_SERVER_URL: chain === 'proton'\n ? 'https://www.api.bloks.io/proton-wrap-public2'\n : 'https://www.api.bloks.io/proton-wrap-testnet-public2',\n WRAP_CONTRACT,\n WRAP_ACTIONS: {\n SAVE_ADDRESS: 'saveaddress2',\n DELETE_ADDRESS: 'deladdress2',\n WRAP_START: 'wrapstart2',\n WRAP_FINISH: 'wrapfinish2',\n WRAP_PROCESS: 'wrapprocess2',\n WRAP_SET_CONF: 'wrapsetconf2',\n },\n WRAP_TABLES: {\n ADDRESSES: 'addresses2',\n WRAPS: 'wraps2'\n },\n ADDRESSES_INDEXES: {\n BY_ACCOUNT: 2,\n BY_ADDR_HASH: 3\n },\n WRAPS_INDEXES: {\n BY_ACCOUNT: 2,\n BY_STATUS: 3,\n BY_WRAP_HASH: 4\n },\n WRAP_PROCESS_TIMER: 5000,\n\n FARM_CONTRACT: 'yield.farms',\n\n WEBHOOK_PERMISSION: 'webhook',\n PUBLIC_PERMISSION: 'public',\n LIGHT_PERMISSION: 'light',\n WRAP_AUTH_ACTION: WRAP_AUTH_ACTION,\n\n METAL_ENDPOINT: chain === 'proton'\n ? 'https://cirrus.metalpay.com'\n : 'https://cirrus-dev.metalpay.com',\n\n METAL_PROTON_ENDPOINT: chain === 'proton'\n ? 'https://api.protonchain.com'\n : 'https://api-dev.protonchain.com',\n\n PROTON_ENDPOINTS: chain === 'proton'\n ? ['https://proton.greymass.com', 'https://proton.eoscafeblock.com', 'https://proton.cryptolions.io', 'https://proton.eosusa.news']\n : ['https://testnet.protonchain.com'],\n\n CHAIN_ID: chain === 'proton'\n ? '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'\n : '71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd',\n\n CHAIN: chain,\n\n SWAP_COINS: swapCoins,\n BRIDGE_COINS: bridgeCoins,\n ALL_ENABLED_COINS: allEnabledCoins,\n LEND_COINS: lendCoins,\n BORROW_COINS: borrowCoins,\n LOAN_COINS: loanCoins,\n ALL_COINS: allCoins,\n\n findBridgeCoinWalletByXtokenAndChain (xtokenSymbol: string, chain: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.xtokenSymbol === xtokenSymbol)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.chain === chain)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinWallet (coin: string, wallet: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.wallet === wallet)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinNetwork (coin: string, network: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.network === network)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n }\n }\n\n return constants\n}","import * as z from 'zod'\nimport { accountParser } from './base'\nimport { generateAuthParser } from './auth'\n\nexport const addressParser = z.object({\n index : z.number(),\n account : accountParser,\n chain : z.string(),\n address : z.string(),\n address_hash: z.string(),\n})\nexport type Address = z.infer<typeof addressParser>\n\nexport const generateAddressBodyParser = z.object({\n coin: z.string(),\n wallet: z.string(),\n}).merge(generateAuthParser)\nexport type GenerateAddressBody = z.infer<typeof generateAddressBodyParser>\n\nexport const generateAddressResponse = z.object({\n id : z.string(), // \"2448834505708930950\",\n address: z.string(), // \"0x617C03C1E2Bf81C062A4CEfbE312c070E1d86d18\",\n coin : z.string(), // \"ETH\",\n wallet : z.string(), // \"ETH\",\n memo : z.string().optional()\n})\nexport type GenerateAddressResponse = z.infer<typeof generateAddressResponse>\n","import * as z from 'zod'\n\nexport interface CurrencyStat {\n supply : string;\n max_supply: string;\n issuer : string;\n}\nexport interface CurrencyStats {\n [key: string]: CurrencyStat;\n}\n\nexport const rateParser = z.object({\n counterCurrency : z.string(),\n price : z.number(),\n priceChangePercent: z.number(),\n marketCap : z.number(),\n volume : z.number(),\n timestamp : z.number()\n})\nexport type Rate = z.infer<typeof rateParser>\n\nexport const exchangeRateParser = z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n})\nexport type ExchangeRate = z.infer<typeof exchangeRateParser>\n\nexport const exchangeRatesParser = z.array(exchangeRateParser)\nexport type ExchangeRates = z.infer<typeof exchangeRatesParser>","import * as z from 'zod'\nimport { ExtendedAssetParser } from './base'\n\nexport enum Status {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAIL = 'fail',\n PROCESSING = 'processing'\n}\n\nexport const wrapStartParser = z.object({\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n confirmations : z.number()\n})\n\nexport type WrapStart = z.infer<typeof wrapStartParser>\n\nexport const wrapSetConfParser = z.object({\n wrap_hash : z.string(),\n confirmations: z.number()\n})\nexport type WrapSetConf = z.infer<typeof wrapSetConfParser>\n\nexport const wrapParser = z.object({\n index : z.number(),\n proton_account : z.string(),\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n status : z.nativeEnum(Status),\n finish_txid : z.string(),\n wrap_hash : z.string(),\n confirmations : z.number(),\n})\nexport type Wrap = z.infer<typeof wrapParser>","import * as z from 'zod'\n\nexport const otcOrderResponseParser = z.object({\n success : z.boolean(),\n transaction_id: z.string(),\n errormsg : z.string().optional()\n})\nexport type OtcOrderResponse = z.infer<typeof otcOrderResponseParser>\n\nexport const otcQuoteBodyParser = z.object({\n baseAmount : z.number(),\n baseSymbol : z.string(),\n quoteSymbol: z.string()\n})\nexport type OtcQuoteBody = z.infer<typeof otcQuoteBodyParser>\n\nexport const otcQuoteResponseParser = z.object({\n success : z.boolean(),\n token : z.string(),\n qty : z.number(),\n errormsg: z.string().optional()\n})\nexport type OtcQuoteResponse = z.infer<typeof otcQuoteResponseParser>","import * as z from 'zod'\nimport { singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT } from '../constants'\nimport { baseActionParser } from './actions'\n\nconst withdrawData = {\n from: z.string().refine((val) => val !== WRAP_CONTRACT, {\n message: `${WRAP_CONTRACT} must be receiver`,\n }),\n to: z.literal(WRAP_CONTRACT),\n quantity: z.string(),\n memo: z.string()\n}\nconst withdrawBodyBaseAction = baseActionParser('*', 'transfer', withdrawData)\nexport type WithdrawBodyBaseAction = z.infer<typeof withdrawBodyBaseAction>\n\nexport const withdrawBodyParser = z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser('*', 'transfer', withdrawData),\n quoteId: z.string(),\n provider: z.string().optional()\n})\nexport type WithdrawBody = z.infer<typeof withdrawBodyParser>\n\nexport const withdrawMetalResponseParser = z.object({\n success: z.boolean(),\n id : z.string(),\n})\nexport type WithdrawMetalResponse = z.infer<typeof withdrawMetalResponseParser>\n\nexport const withdrawalFeeQuoteParser = z.object({\n quoteId : z.string(),\n estimatedFee: z.string(),\n currency : z.string(),\n network : z.string(),\n})\nexport type WithdrawalFeeQuote = z.infer<typeof withdrawalFeeQuoteParser>","import * as z from 'zod'\n\nexport const withdrawHistoryMetalSwapParser = z.object({\n id : z.string(),\n status : z.string(),\n amount : z.string(),\n currency : z.string(),\n network : z.string(),\n created : z.string(),\n withdrawalAddress: z.string(),\n withdrawalHash : z.string().optional()\n})\nexport type WithdrawHistoryMetalSwap = z.infer<typeof withdrawHistoryMetalSwapParser>\n\nexport const withdrawHistoryMetalResponseParser = z.object({\n swaps : z.array(withdrawHistoryMetalSwapParser),\n page : z.number(),\n pageSize : z.number(),\n numberOfElements: z.number(),\n totalPages : z.number(),\n totalElements : z.number()\n})\nexport type WithdrawHistoryMetalResponse = z.infer<typeof withdrawHistoryMetalResponseParser>\n","interface PartialCoin {\n xtokenSymbol: string;\n xtokenPrecision: number;\n xtokenContract: string;\n}\n\nexport const isSameToken = (token1: PartialCoin, token2: PartialCoin) => {\n return token1.xtokenSymbol === token2.xtokenSymbol &&\n token1.xtokenPrecision === token2.xtokenPrecision &&\n token1.xtokenContract === token2.xtokenContract\n}"],"names":["Chains","Networks","similarChains","EthereumMainnet","BinanceBEP20","explorerLinkByChain","BitcoinMainnet","txid","BitcoinTestnet","EthereumRopsten","LitecoinMainnet","LitecoinTestnet","BitcoinCashMainnet","BitcoinCashTestnet","StellarMainnet","StellarTestnet","ProtonMainnet","ProtonTestnet","PolkadotMainnet","BinanceBEP2","EosMainnet","EosTestnet","HederaMainnet","HederaTestnet","DogeMainnet","CardanoMainnet","initializeCoins","protonChain","IS_MAINNET","IS_TESTNET","coins","allowSwap","allowBridge","allowLend","allowBorrow","name","coin","xtokenSymbol","xtokenPrecision","xtokenContract","wallets","wallet","symbol","chain","network","ERC20","precision","contract","hasWithdrawMemo","BEP20","image","coingeckoId","XLM","undefined","Ropsten","Mainnet","Testnet","walletWithDuplicateChains","find","chains","map","Set","size","length","Error","allCoins","swapCoins","filter","bridgeCoins","lendCoins","borrowCoins","loanCoins","allEnabledCoins","accountParser","z","regex","authorizationParser","actor","permission","authorizationsParser","min","ExtendedAssetParser","quantity","rawTransactionParser","expiration","ref_block_num","ref_block_prefix","max_net_usage_words","max_cpu_usage_ms","delay_sec","context_free_actions","transaction_extensions","baseActionParser","action","data","account","authorization","baseActionSerializedParser","or","webauthActionParser","key","modulus","exponent","user_presence","rpid","nonce","permissions","signature","auth_data","client_json","trx","merge","actions","singleActionTransactionParser","baseAction","webauthAction","Type","createAbstractAuthParser","signer","signatures","transaction","generateAuthParser","time","protonAccount","addressParser","index","address","address_hash","generateAddressBodyParser","generateAddressResponse","id","memo","optional","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","Status","depositBodyParser","type","hash","transactionParser","value","valueString","state","confirmations","blockHash","nullable","blockHeight","otcOrderResponseParser","success","transaction_id","errormsg","otcQuoteBodyParser","baseAmount","baseSymbol","quoteSymbol","otcQuoteResponseParser","token","qty","withdrawData","from","refine","val","message","WRAP_CONTRACT","to","withdrawBodyParser","quoteId","provider","withdrawMetalResponseParser","withdrawalFeeQuoteParser","estimatedFee","currency","withdrawHistoryMetalSwapParser","status","amount","created","withdrawalAddress","withdrawalHash","withdrawHistoryMetalResponseParser","swaps","page","pageSize","numberOfElements","totalPages","totalElements","wrapStartParser","balance","deposit_address","wrapSetConfParser","wrap_hash","wrapParser","proton_account","finish_txid","constants","SWAP_CONTRACT","FEE_FACTOR","GOOGLE_MAPS_KEY","SWAP_URL","WRAP_SERVER_URL","WRAP_ACTIONS","SAVE_ADDRESS","DELETE_ADDRESS","WRAP_START","WRAP_FINISH","WRAP_PROCESS","WRAP_SET_CONF","WRAP_TABLES","ADDRESSES","WRAPS","ADDRESSES_INDEXES","BY_ACCOUNT","BY_ADDR_HASH","WRAPS_INDEXES","BY_STATUS","BY_WRAP_HASH","WRAP_PROCESS_TIMER","FARM_CONTRACT","WEBHOOK_PERMISSION","PUBLIC_PERMISSION","LIGHT_PERMISSION","WRAP_AUTH_ACTION","METAL_ENDPOINT","METAL_PROTON_ENDPOINT","PROTON_ENDPOINTS","CHAIN_ID","CHAIN","SWAP_COINS","BRIDGE_COINS","ALL_ENABLED_COINS","LEND_COINS","BORROW_COINS","LOAN_COINS","ALL_COINS","findBridgeCoinWalletByXtokenAndChain","bridgeCoin","bridgeWallet","findBridgeCoinWallet","findBridgeCoinNetwork","token1","token2"],"mappings":"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"}
@@ -113,7 +113,8 @@ var initializeCoins = function initializeCoins(protonChain) {
113
113
  contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',
114
114
  hasWithdrawMemo: false
115
115
  }] : []),
116
- image: '/img/tokens/xpr.png'
116
+ image: '/img/tokens/xpr.png',
117
+ coingeckoId: 'proton'
117
118
  }, {
118
119
  allowSwap: true,
119
120
  allowBridge: true,
@@ -157,7 +158,8 @@ var initializeCoins = function initializeCoins(protonChain) {
157
158
  contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',
158
159
  hasWithdrawMemo: false
159
160
  }] : []),
160
- image: '/img/tokens/xusdc.png'
161
+ image: '/img/tokens/xusdc.png',
162
+ coingeckoId: 'usd-coin'
161
163
  }, {
162
164
  allowSwap: true,
163
165
  allowBridge: IS_MAINNET,
@@ -177,7 +179,8 @@ var initializeCoins = function initializeCoins(protonChain) {
177
179
  contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',
178
180
  hasWithdrawMemo: false
179
181
  }] : []),
180
- image: '/img/tokens/xmt.png'
182
+ image: '/img/tokens/xmt.png',
183
+ coingeckoId: 'metal'
181
184
  }, {
182
185
  allowSwap: true,
183
186
  allowBridge: true,
@@ -205,7 +208,8 @@ var initializeCoins = function initializeCoins(protonChain) {
205
208
  contract: undefined,
206
209
  hasWithdrawMemo: false
207
210
  }] : []),
208
- image: '/img/tokens/xbtc.png'
211
+ image: '/img/tokens/xbtc.png',
212
+ coingeckoId: 'bitcoin'
209
213
  }, {
210
214
  allowSwap: true,
211
215
  allowBridge: true,
@@ -233,7 +237,21 @@ var initializeCoins = function initializeCoins(protonChain) {
233
237
  contract: '0x0000000000000000000000000000000000000000',
234
238
  hasWithdrawMemo: false
235
239
  }] : []),
236
- image: '/img/tokens/xeth.png'
240
+ image: '/img/tokens/xeth.png',
241
+ coingeckoId: 'ethereum'
242
+ }, {
243
+ allowSwap: IS_MAINNET,
244
+ allowBridge: false,
245
+ allowLend: false,
246
+ allowBorrow: true,
247
+ name: 'Proton Loan',
248
+ coin: 'LOAN',
249
+ xtokenSymbol: 'LOAN',
250
+ xtokenPrecision: 4,
251
+ xtokenContract: 'loan.token',
252
+ wallets: [],
253
+ image: '/img/tokens/loan.png',
254
+ coingeckoId: ''
237
255
  }, {
238
256
  allowSwap: IS_MAINNET,
239
257
  allowBridge: true,
@@ -261,7 +279,8 @@ var initializeCoins = function initializeCoins(protonChain) {
261
279
  contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',
262
280
  hasWithdrawMemo: false
263
281
  }] : []),
264
- image: '/img/tokens/xusdt.png'
282
+ image: '/img/tokens/xusdt.png',
283
+ coingeckoId: 'tether'
265
284
  }, {
266
285
  allowSwap: false,
267
286
  allowBridge: IS_MAINNET,
@@ -281,7 +300,8 @@ var initializeCoins = function initializeCoins(protonChain) {
281
300
  contract: '0x0000000000085D4780B73119B644AE5ECD22B376',
282
301
  hasWithdrawMemo: false
283
302
  }] : []),
284
- image: '/img/tokens/xtusd.png'
303
+ image: '/img/tokens/xtusd.png',
304
+ coingeckoId: 'true-usd'
285
305
  }, {
286
306
  allowSwap: false,
287
307
  allowBridge: IS_MAINNET,
@@ -301,7 +321,8 @@ var initializeCoins = function initializeCoins(protonChain) {
301
321
  contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',
302
322
  hasWithdrawMemo: false
303
323
  }] : []),
304
- image: '/img/tokens/xpax.png'
324
+ image: '/img/tokens/xpax.png',
325
+ coingeckoId: 'usdp'
305
326
  }, {
306
327
  allowSwap: false,
307
328
  allowBridge: true,
@@ -329,7 +350,8 @@ var initializeCoins = function initializeCoins(protonChain) {
329
350
  contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',
330
351
  hasWithdrawMemo: false
331
352
  }] : []),
332
- image: '/img/tokens/xpaxg.png'
353
+ image: '/img/tokens/xpaxg.png',
354
+ coingeckoId: 'pax-gold'
333
355
  }, {
334
356
  allowSwap: IS_MAINNET,
335
357
  allowBridge: true,
@@ -357,7 +379,8 @@ var initializeCoins = function initializeCoins(protonChain) {
357
379
  contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',
358
380
  hasWithdrawMemo: false
359
381
  }] : []),
360
- image: '/img/tokens/xuni.png'
382
+ image: '/img/tokens/xuni.png',
383
+ coingeckoId: 'uniswap'
361
384
  }, {
362
385
  allowSwap: false,
363
386
  allowBridge: false,
@@ -377,7 +400,8 @@ var initializeCoins = function initializeCoins(protonChain) {
377
400
  contract: '0x111111111117DC0AA78B770FA6A738034120C302',
378
401
  hasWithdrawMemo: false
379
402
  }] : []),
380
- image: '/img/tokens/xinch.png'
403
+ image: '/img/tokens/xinch.png',
404
+ coingeckoId: '1inch'
381
405
  }, {
382
406
  allowSwap: false,
383
407
  allowBridge: false,
@@ -397,7 +421,8 @@ var initializeCoins = function initializeCoins(protonChain) {
397
421
  contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',
398
422
  hasWithdrawMemo: false
399
423
  }] : []),
400
- image: '/img/tokens/xlink.png'
424
+ image: '/img/tokens/xlink.png',
425
+ coingeckoId: 'chainlink'
401
426
  }, {
402
427
  allowSwap: IS_MAINNET,
403
428
  allowBridge: true,
@@ -425,7 +450,8 @@ var initializeCoins = function initializeCoins(protonChain) {
425
450
  contract: undefined,
426
451
  hasWithdrawMemo: false
427
452
  }] : []),
428
- image: '/img/tokens/xltc.png'
453
+ image: '/img/tokens/xltc.png',
454
+ coingeckoId: 'litecoin'
429
455
  }, {
430
456
  allowSwap: IS_MAINNET,
431
457
  allowBridge: true,
@@ -453,7 +479,8 @@ var initializeCoins = function initializeCoins(protonChain) {
453
479
  contract: undefined,
454
480
  hasWithdrawMemo: false
455
481
  }] : []),
456
- image: '/img/tokens/xbch.png'
482
+ image: '/img/tokens/xbch.png',
483
+ coingeckoId: 'bitcoin-cash'
457
484
  }, {
458
485
  allowSwap: false,
459
486
  allowBridge: false,
@@ -481,7 +508,8 @@ var initializeCoins = function initializeCoins(protonChain) {
481
508
  contract: undefined,
482
509
  hasWithdrawMemo: true
483
510
  }] : []),
484
- image: '/img/tokens/xxlm.png'
511
+ image: '/img/tokens/xxlm.png',
512
+ coingeckoId: 'stellar'
485
513
  }, {
486
514
  allowSwap: IS_MAINNET,
487
515
  allowBridge: false,
@@ -493,7 +521,8 @@ var initializeCoins = function initializeCoins(protonChain) {
493
521
  xtokenPrecision: 4,
494
522
  xtokenContract: 'sense',
495
523
  wallets: [],
496
- image: '/img/tokens/xsense.png'
524
+ image: '/img/tokens/xsense.png',
525
+ coingeckoId: 'sense'
497
526
  }, {
498
527
  allowSwap: false,
499
528
  allowBridge: false,
@@ -513,7 +542,8 @@ var initializeCoins = function initializeCoins(protonChain) {
513
542
  contract: undefined,
514
543
  hasWithdrawMemo: false
515
544
  }] : []),
516
- image: '/img/tokens/xdot.png'
545
+ image: '/img/tokens/xdot.png',
546
+ coingeckoId: 'polkadot'
517
547
  }, {
518
548
  allowSwap: true,
519
549
  allowBridge: IS_MAINNET,
@@ -533,7 +563,8 @@ var initializeCoins = function initializeCoins(protonChain) {
533
563
  contract: undefined,
534
564
  hasWithdrawMemo: false
535
565
  }] : []),
536
- image: '/img/tokens/xbnb.png'
566
+ image: '/img/tokens/xbnb.png',
567
+ coingeckoId: 'binancecoin'
537
568
  }, {
538
569
  allowSwap: true,
539
570
  allowBridge: true,
@@ -561,32 +592,12 @@ var initializeCoins = function initializeCoins(protonChain) {
561
592
  contract: undefined,
562
593
  hasWithdrawMemo: true
563
594
  }] : []),
564
- image: '/img/tokens/xeos.png'
595
+ image: '/img/tokens/xeos.png',
596
+ coingeckoId: 'eos'
565
597
  }, {
566
- allowSwap: false,
567
- allowBridge: IS_TESTNET,
568
- allowLend: false,
569
- allowBorrow: false,
570
- name: 'HBAR',
571
- coin: 'HBAR',
572
- xtokenSymbol: 'XHBAR',
573
- xtokenPrecision: 6,
574
- xtokenContract: 'xtokens',
575
- wallets: [].concat(IS_TESTNET ? [{
576
- wallet: 'HBAR',
577
- symbol: 'HBAR',
578
- chain: Chains.HederaTestnet,
579
- network: Networks.Testnet,
580
- precision: 8,
581
- contract: undefined,
582
- hasWithdrawMemo: false
583
- }] : []),
584
- image: '/img/tokens/xhbar.png'
585
- }, // Synthethic
586
- {
587
598
  allowSwap: IS_MAINNET,
588
599
  allowBridge: IS_MAINNET,
589
- allowLend: false,
600
+ allowLend: true,
590
601
  allowBorrow: false,
591
602
  name: 'Dogecoin',
592
603
  coin: 'DOGE',
@@ -602,7 +613,8 @@ var initializeCoins = function initializeCoins(protonChain) {
602
613
  contract: undefined,
603
614
  hasWithdrawMemo: false
604
615
  }] : []),
605
- image: '/img/tokens/xdoge.png'
616
+ image: '/img/tokens/xdoge.png',
617
+ coingeckoId: 'dogecoin'
606
618
  }, {
607
619
  allowSwap: IS_MAINNET,
608
620
  allowBridge: IS_MAINNET,
@@ -622,7 +634,30 @@ var initializeCoins = function initializeCoins(protonChain) {
622
634
  contract: undefined,
623
635
  hasWithdrawMemo: false
624
636
  }] : []),
625
- image: '/img/tokens/xada.png'
637
+ image: '/img/tokens/xada.png',
638
+ coingeckoId: 'cardano'
639
+ }, // Synthethic
640
+ {
641
+ allowSwap: false,
642
+ allowBridge: IS_TESTNET,
643
+ allowLend: false,
644
+ allowBorrow: false,
645
+ name: 'HBAR',
646
+ coin: 'HBAR',
647
+ xtokenSymbol: 'XHBAR',
648
+ xtokenPrecision: 6,
649
+ xtokenContract: 'xtokens',
650
+ wallets: [].concat(IS_TESTNET ? [{
651
+ wallet: 'HBAR',
652
+ symbol: 'HBAR',
653
+ chain: Chains.HederaTestnet,
654
+ network: Networks.Testnet,
655
+ precision: 8,
656
+ contract: undefined,
657
+ hasWithdrawMemo: false
658
+ }] : []),
659
+ image: '/img/tokens/xhbar.png',
660
+ coingeckoId: 'hedera-hashgraph'
626
661
  }, {
627
662
  allowSwap: false,
628
663
  allowBridge: false,
@@ -634,7 +669,8 @@ var initializeCoins = function initializeCoins(protonChain) {
634
669
  xtokenPrecision: 6,
635
670
  xtokenContract: 'xtokens',
636
671
  wallets: [],
637
- image: '/img/tokens/xtheta.png'
672
+ image: '/img/tokens/xtheta.png',
673
+ coingeckoId: 'theta-token'
638
674
  }, {
639
675
  allowSwap: false,
640
676
  allowBridge: false,
@@ -646,7 +682,8 @@ var initializeCoins = function initializeCoins(protonChain) {
646
682
  xtokenPrecision: 6,
647
683
  xtokenContract: 'xtokens',
648
684
  wallets: [],
649
- image: '/img/tokens/xfil.png'
685
+ image: '/img/tokens/xfil.png',
686
+ coingeckoId: 'filecoin'
650
687
  }, {
651
688
  allowSwap: false,
652
689
  allowBridge: false,
@@ -658,7 +695,8 @@ var initializeCoins = function initializeCoins(protonChain) {
658
695
  xtokenPrecision: 6,
659
696
  xtokenContract: 'xtokens',
660
697
  wallets: [],
661
- image: '/img/tokens/xtrx.png'
698
+ image: '/img/tokens/xtrx.png',
699
+ coingeckoId: 'tron'
662
700
  }]; // Validation
663
701
 
664
702
  var walletWithDuplicateChains = coins.find(function (coin) {