@proton/wrap-constants 0.0.56 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -0
- package/dist/graph.d.ts +30 -0
- package/dist/index.d.ts +2 -0
- package/dist/math.d.ts +17 -0
- package/dist/parsers/pool.d.ts +6 -11
- package/dist/wrap-constants.cjs.development.js +331 -2
- package/dist/wrap-constants.cjs.development.js.map +1 -1
- package/dist/wrap-constants.cjs.production.min.js +1 -1
- package/dist/wrap-constants.cjs.production.min.js.map +1 -1
- package/dist/wrap-constants.esm.js +321 -3
- package/dist/wrap-constants.esm.js.map +1 -1
- package/package.json +4 -2
- package/src/coins.ts +1 -1
- package/src/constants.ts +2 -1
- package/src/graph.ts +126 -0
- package/src/index.ts +3 -1
- package/src/math.ts +107 -0
- package/src/parsers/pool.ts +7 -6
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,o,n,e,a=require("zod");(n=exports.Chains||(exports.Chains={})).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.AvalancheXChain="Avalanche X-Chain",n.AvalancheCChain="Avalanche C-Chain",n.PolygonMainnet="Polygon",n.TerraMainnet="Terra",n.RippleMainnet="Ripple",n.SolanaMainnet="Solana",(e=exports.Networks||(exports.Networks={})).Mainnet="mainnet",e.Testnet="testnet",e.Ropsten="ropsten",e.ERC20="erc20",e.BEP20="bep20",e.XLM="xlm";var r=((t={})[exports.Chains.EthereumMainnet]=[exports.Chains.BinanceBEP20],t[exports.Chains.BinanceBEP20]=[exports.Chains.EthereumMainnet],t),s=((o={})[exports.Chains.BitcoinMainnet]=function(t){return"https://blockchain.com/btc/tx/"+t},o[exports.Chains.BitcoinTestnet]=function(t){return"https://blockstream.info/testnet/tx/"+t},o[exports.Chains.EthereumMainnet]=function(t){return"https://etherscan.io/tx/"+t},o[exports.Chains.EthereumRopsten]=function(t){return"https://ropsten.etherscan.io/tx/"+t},o[exports.Chains.LitecoinMainnet]=function(t){return"https://blockchair.com/litecoin/transaction/"+t},o[exports.Chains.LitecoinTestnet]=function(t){return"https://blockexplorer.one/litecoin/testnet/blockHash/"+t},o[exports.Chains.BitcoinCashMainnet]=function(t){return"https://blockchair.com/bitcoin-cash/transaction/"+t},o[exports.Chains.BitcoinCashTestnet]=function(t){return"https://blockexplorer.one/bitcoin-cash/testnet/blockHash/"+t},o[exports.Chains.StellarMainnet]=function(t){return"https://blockchair.com/stellar/transaction/"+t},o[exports.Chains.StellarTestnet]=function(t){return"https://testnet.steexp.com/tx/"+t},o[exports.Chains.ProtonMainnet]=function(t){return"https://proton.bloks.io/transaction/"+t},o[exports.Chains.ProtonTestnet]=function(t){return"https://proton-test.bloks.io/transaction/"+t},o[exports.Chains.PolkadotMainnet]=function(t){return"https://polkadot.subscan.io/extrinsic/"+t},o[exports.Chains.BinanceBEP2]=function(t){return"https://binance.mintscan.io/txs/"+t},o[exports.Chains.BinanceBEP20]=function(t){return"https://bscscan.com/tx/"+t},o[exports.Chains.EosMainnet]=function(t){return"https://bloks.io/transaction/"+t},o[exports.Chains.EosTestnet]=function(t){return"https://jungle.bloks.io/transaction/"+t},o[exports.Chains.HederaMainnet]=function(t){return"https://app.dragonglass.me/transactions/"+t},o[exports.Chains.HederaTestnet]=function(t){return"https://testnet.dragonglass.me/transactions/"+t},o[exports.Chains.DogeMainnet]=function(t){return"https://blockchair.com/dogecoin/transaction/"+t},o[exports.Chains.CardanoMainnet]=function(t){return"https://explorer.cardano.org/en/transaction?id="+t},o[exports.Chains.AvalancheXChain]=function(t){return"https://avascan.info/blockchain/x/tx/"+t},o[exports.Chains.AvalancheCChain]=function(t){return"https://snowtrace.io/tx/"+t},o[exports.Chains.PolygonMainnet]=function(t){return"https://polygonscan.com/tx/"+t},o[exports.Chains.TerraMainnet]=function(t){return"https://terra.stake.id/?#/tx/"+t},o[exports.Chains.RippleMainnet]=function(t){return"https://xrpscan.com/tx/"+t},o[exports.Chains.SolanaMainnet]=function(t){return"https://explorer.solana.com/tx/"+t},o),i=function(t){var o="proton"===t,n="proton-test"===t,e=[{allowSwap:!0,allowBridge:o,allowLend:!0,allowBorrow:!0,name:"Proton",coin:"XPR",xtokenSymbol:"XPR",xtokenPrecision:4,xtokenContract:"eosio.token",wallets:[].concat(o?[{wallet:"XPR-ERC20",symbol:"XPR",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:4,contract:"0xD7EFB00D12C2C13131FD319336FDF952525DA2AF",hasWithdrawMemo:!1},{wallet:"XPR-BEP20",symbol:"XPR",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:4,contract:"0x5DE3939B2F811A61D830E6F52D13B066881412AB",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/eosio-tokenXPR.png",coingeckoId:"proton"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"USD Coin",coin:"USDC",xtokenSymbol:"XUSDC",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1},{wallet:"USDC-BEP20",symbol:"USDC",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:"0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D",hasWithdrawMemo:!1},{wallet:"USDC-XLM",symbol:"USDC",chain:exports.Chains.StellarMainnet,network:exports.Networks.XLM,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[],n?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUSDC.png",coingeckoId:"usd-coin"},{allowSwap:!0,allowBridge:o,allowLend:!0,allowBorrow:!0,name:"Metal",coin:"MTL",xtokenSymbol:"XMT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"MTL",symbol:"MTL",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:8,contract:"0xF433089366899D83A9F26A773D59EC7ECF30355E",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXMT.png",coingeckoId:"metal"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"Bitcoin",coin:"BTC",xtokenSymbol:"XBTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],n?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXBTC.png",coingeckoId:"bitcoin"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"Ethereum",coin:"ETH",xtokenSymbol:"XETH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[],n?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXETH.png",coingeckoId:"ethereum"},{allowSwap:!0,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Loan",coin:"LOAN",xtokenSymbol:"LOAN",xtokenPrecision:4,xtokenContract:"loan.token",wallets:[],image:"https://www.protonchain.com/images/tokens/loan.tokenLOAN.png",coingeckoId:"proton-loan"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Tether",coin:"USDT",xtokenSymbol:"XUSDT",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[],n?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUSDT.png",coingeckoId:"tether"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"TrueUSD",coin:"TUSD",xtokenSymbol:"XTUSD",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"TUSD",symbol:"TUSD",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x0000000000085D4780B73119B644AE5ECD22B376",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXTUSD.png",coingeckoId:"true-usd"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Paxos Standard",coin:"PAX",xtokenSymbol:"XPAX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"PAX",symbol:"PAX",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x8E870D67F660D95D5BE530380D0EC0BD388289E1",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXPAX.png",coingeckoId:"paxos-standard"},{allowSwap:!1,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Paxos Gold",coin:"PAXG",xtokenSymbol:"XPAXG",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[],n?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXPAXG.png",coingeckoId:"pax-gold"},{allowSwap:o,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Uniswap",coin:"UNI",xtokenSymbol:"XUNI",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}]:[],n?[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUNI.png",coingeckoId:"uniswap"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"1INCH",coin:"1INCH",xtokenSymbol:"XINCH",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"1INCH",symbol:"1INCH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x111111111117DC0AA78B770FA6A738034120C302",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXINCH.png",coingeckoId:"1inch"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Chainlink",coin:"LINK",xtokenSymbol:"XLINK",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"LINK",symbol:"LINK",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x514910771AF9CA656AF840DFF83E8264ECF986CA",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXLINK.png",coingeckoId:"chainlink"},{allowSwap:o,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Litecoin",coin:"LTC",xtokenSymbol:"XLTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],n?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXLTC.png",coingeckoId:"litecoin"},{allowSwap:o,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Bitcoin Cash",coin:"BCH",xtokenSymbol:"XBCH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],n?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXBCH.png",coingeckoId:"bitcoin-cash"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Stellar",coin:"XLM",xtokenSymbol:"XXLM",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarMainnet,network:exports.Networks.Mainnet,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[],n?[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarTestnet,network:exports.Networks.Testnet,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXXLM.png",coingeckoId:"stellar"},{allowSwap:o,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Sense",coin:"SENSE",xtokenSymbol:"XSENSE",xtokenPrecision:4,xtokenContract:"sense",wallets:[],image:"https://www.protonchain.com/images/tokens/senseXSENSE.png",coingeckoId:"sense"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polkadot",coin:"DOT",xtokenSymbol:"XDOT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"DOT",symbol:"DOT",chain:exports.Chains.PolkadotMainnet,network:exports.Networks.Mainnet,precision:10,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXDOT.png",coingeckoId:"polkadot"},{allowSwap:!0,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Binance Coin",coin:"BNB",xtokenSymbol:"XBNB",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"BNB",symbol:"BNB",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXBNB.png",coingeckoId:"binancecoin"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"EOS",coin:"EOS",xtokenSymbol:"XEOS",xtokenPrecision:4,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosMainnet,network:exports.Networks.Mainnet,precision:4,contract:void 0,hasWithdrawMemo:!0}]:[],n?[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosTestnet,network:exports.Networks.Testnet,precision:4,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXEOS.png",coingeckoId:"eos"},{allowSwap:o,allowBridge:o,allowLend:!0,allowBorrow:!0,name:"Dogecoin",coin:"DOGE",xtokenSymbol:"XDOGE",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"DOGE",symbol:"DOGE",chain:exports.Chains.DogeMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXDOGE.png",coingeckoId:"dogecoin"},{allowSwap:o,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Cardano",coin:"ADA",xtokenSymbol:"XADA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"ADA",symbol:"ADA",chain:exports.Chains.CardanoMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXADA.png",coingeckoId:"cardano"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Terra",coin:"LUNA",xtokenSymbol:"XLUNA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"LUNA",symbol:"LUNA",chain:exports.Chains.TerraMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXLUNA.png",coingeckoId:"terra-luna"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"TerraUSD",coin:"UST",xtokenSymbol:"XUST",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"UST",symbol:"UST",chain:exports.Chains.TerraMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUST.png",coingeckoId:"terrausd"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Solana",coin:"SOL",xtokenSymbol:"XSOL",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"SOL",symbol:"SOL",chain:exports.Chains.SolanaMainnet,network:exports.Networks.Mainnet,precision:9,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png",coingeckoId:"solana"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Ripple",coin:"XRP",xtokenSymbol:"XXRP",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"XRP",symbol:"XRP",chain:exports.Chains.RippleMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png",coingeckoId:"ripple"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Avalanche",coin:"AVAX",xtokenSymbol:"XAVAX",xtokenPrecision:9,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"AVAX",symbol:"AVAX",chain:exports.Chains.AvalancheCChain,network:exports.Networks.Mainnet,precision:9,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXAVAX.png",coingeckoId:"avalanche-2"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polygon",coin:"MATIC",xtokenSymbol:"XMATIC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"MATIC",symbol:"MATIC",chain:exports.Chains.PolygonMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXMATIC.png",coingeckoId:"matic-network"},{allowSwap:!1,allowBridge:n,allowLend:!1,allowBorrow:!1,name:"HBAR",coin:"HBAR",xtokenSymbol:"XHBAR",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(n?[{wallet:"HBAR",symbol:"HBAR",chain:exports.Chains.HederaTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXHBAR.png",coingeckoId:"hedera-hashgraph"}],a=e.find((function(t){var o=t.wallets.map((function(t){return t.chain}));return new Set(o).size!==o.length}));if(a)throw new Error("Coin "+a.coin+" has duplicate chains in wallet");return{allCoins:e,swapCoins:e.filter((function(t){return t.allowSwap})),bridgeCoins:e.filter((function(t){return t.allowBridge})),lendCoins:e.filter((function(t){return t.allowLend})),borrowCoins:e.filter((function(t){return t.allowBorrow})),loanCoins:e.filter((function(t){return t.allowLend||t.allowBorrow})),allEnabledCoins:e.filter((function(t){return t.allowSwap||t.allowBridge}))}},c=a.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/),l=a.object({actor:c,permission:a.string()}),w=a.array(l).min(1),p=a.object({quantity:a.string(),contract:c}),h=a.object({account:a.string(),name:a.string(),authorization:a.array(a.object({actor:a.string(),permission:a.string()})),data:a.any(),hex_data:a.string().optional()}),x=a.array(a.number().or(a.string())).optional(),m=a.object({expiration:a.string(),ref_block_num:a.number(),ref_block_prefix:a.number(),max_net_usage_words:a.number(),max_cpu_usage_ms:a.number(),delay_sec:a.number(),context_free_actions:a.array(h),transaction_extensions:a.array(x)}),k=function(t,o,n){return a.object({account:"*"===t?c:a.literal(t),name:a.literal(o),data:a.object(n),authorization:w})},d=function(t,o,n){return a.object({account:"*"===t?c:a.literal(t),name:a.literal(o),data:a.string().or(a.object(n)),authorization:w})},g=function(t,o,n){return a.object({account:a.literal("webauthn"),name:a.literal("exec"),data:a.object({account:c,key:a.object({key:a.array(a.string().or(a.object({modulus:a.string(),exponent:a.string()}))),user_presence:a.number(),rpid:a.string()}),nonce:a.number(),permissions:w,signature:a.object({auth_data:a.string(),client_json:a.string(),signature:a.string()}),trx:m.merge(a.object({actions:a.array(d(t,o,n)).length(1)}))}),authorization:w})},C=function(t,o,n){var e=k(t,o,n),r=g(t,o,n);return m.merge(a.object({actions:a.array(e.or(r)).length(1)}))};function u(){return(u=Object.assign||function(t){for(var o=1;o<arguments.length;o++){var n=arguments[o];for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}return t}).apply(this,arguments)}var b,S=function(t,o,n){return a.object({signer:l,signatures:a.array(a.string()).length(1),transaction:C(t,o,n)})},B=S("proton.wrap","generateauth",{time:a.string(),protonAccount:a.string()}),E=a.object({index:a.number(),account:c,chain:a.string(),address:a.string(),address_hash:a.string()}),A=a.object({coin:a.string(),wallet:a.string()}).merge(B),P=a.object({id:a.string(),address:a.string(),coin:a.string(),wallet:a.string(),memo:a.string().optional()}),M=a.object({counterCurrency:a.string(),price:a.number(),priceChangePercent:a.number(),marketCap:a.number(),volume:a.number(),timestamp:a.number()}),T=a.object({contract:a.string(),symbol:a.string(),rank:a.number(),rates:a.array(M)}),y=a.array(T),D=a.array(a.object({contract:a.string(),symbol:a.string(),rank:a.number(),rates:a.array(M)}));(b=exports.Type||(exports.Type={})).RECEIVE="receive",b.SEND="send";var N,f=a.object({id:a.string(),type:a.nativeEnum(exports.Type),hash:a.string(),coin:a.string(),wallet:a.string()}),R=a.object({id:a.string(),wallet:a.string(),value:a.number(),valueString:a.string(),address:a.string(),type:a.nativeEnum(exports.Type),state:a.string(),confirmations:a.number(),hash:a.string(),blockHash:a.string().optional().nullable(),blockHeight:a.number().optional().nullable()}),L=a.object({success:a.boolean(),transaction_id:a.string(),errormsg:a.string().optional()}),X=a.object({baseAmount:a.number(),baseSymbol:a.string(),quoteSymbol:a.string()}),I=a.object({success:a.boolean(),token:a.string(),qty:a.number(),errormsg:a.string().optional()}),_={from:a.string().refine((function(t){return"proton.wrap"!==t}),{message:"proton.wrap must be receiver"}),to:a.literal("proton.wrap"),quantity:a.string(),memo:a.string()},O=a.object({signer:l,signatures:a.array(a.string()).length(1),transaction:C("*","transfer",_),quoteId:a.string(),provider:a.string().optional()}),W=a.object({success:a.boolean(),id:a.string()}),v=a.object({quoteId:a.string(),estimatedFee:a.string(),currency:a.string(),network:a.string()}),U=a.object({id:a.string(),status:a.string(),amount:a.string(),currency:a.string(),network:a.string(),created:a.string(),withdrawalAddress:a.string(),withdrawalHash:a.string().optional()}),H=a.object({swaps:a.array(U),page:a.number(),pageSize:a.number(),numberOfElements:a.number(),totalPages:a.number(),totalElements:a.number()});(N=exports.Status||(exports.Status={})).PENDING="pending",N.SUCCESS="success",N.FAIL="fail",N.PROCESSING="processing";var F=a.object({balance:p,id:a.string(),txid:a.string(),chain:a.string(),deposit_address:a.string(),confirmations:a.number()}),j=a.object({wrap_hash:a.string(),confirmations:a.number()}),G=a.object({index:a.number(),proton_account:a.string(),balance:p,id:a.string(),txid:a.string(),chain:a.string(),deposit_address:a.string(),status:a.nativeEnum(exports.Status),finish_txid:a.string(),wrap_hash:a.string(),confirmations:a.number()});exports.ExtendedAssetParser=p,exports.WRAP_AUTH_ACTION="generateauth",exports.WRAP_CONTRACT="proton.wrap",exports.accountParser=c,exports.addressParser=E,exports.authorizationParser=l,exports.authorizationsParser=w,exports.baseActionParser=k,exports.baseActionSerializedParser=d,exports.bloksRatesParser=D,exports.createAbstractAuthParser=S,exports.depositBodyParser=f,exports.exchangeRateParser=T,exports.exchangeRatesParser=y,exports.explorerLinkByChain=s,exports.generateAddressBodyParser=A,exports.generateAddressResponse=P,exports.generateAuthParser=B,exports.initializeCoins=i,exports.initializeConstants=function(t){var o=i(t),n={SWAP_CONTRACT:"proton.swaps",FEE_FACTOR:1e4,GOOGLE_MAPS_KEY:"AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs",SWAP_URL:"proton"===t?"https://otc.protonswap.com":"https://otc-test.protonswap.com",WRAP_SERVER_URL:"proton"===t?"https://www.api.bloks.io/proton-wrap-public2":"https://www.api.bloks.io/proton-wrap-testnet-public2",WRAP_CONTRACT:"proton.wrap",WRAP_ACTIONS:{SAVE_ADDRESS:"saveaddress2",DELETE_ADDRESS:"deladdress2",WRAP_START:"wrapstart2",WRAP_FINISH:"wrapfinish2",WRAP_PROCESS:"wrapprocess2",WRAP_SET_CONF:"wrapsetconf2"},WRAP_TABLES:{ADDRESSES:"addresses2",WRAPS:"wraps2"},ADDRESSES_INDEXES:{BY_ACCOUNT:2,BY_ADDR_HASH:3},WRAPS_INDEXES:{BY_ACCOUNT:2,BY_STATUS:3,BY_WRAP_HASH:4},WRAP_PROCESS_TIMER:5e3,FARM_CONTRACT:"yield.farms",WEBHOOK_PERMISSION:"webhook",PUBLIC_PERMISSION:"public",LIGHT_PERMISSION:"light",WRAP_AUTH_ACTION:"generateauth",METAL_ENDPOINT:"proton"===t?"https://cirrus.metalpay.com":"https://cirrus-dev.metalpay.com",METAL_PROTON_ENDPOINT:"proton"===t?"https://api.protonchain.com":"https://api-dev.protonchain.com",PROTON_ENDPOINTS:"proton"===t?["https://proton.greymass.com","https://proton.eoscafeblock.com","https://proton.cryptolions.io","https://proton.eosusa.news"]:["https://testnet.protonchain.com"],CHAIN_ID:"proton"===t?"384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0":"71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd",CHAIN:t,SWAP_COINS:o.swapCoins,BRIDGE_COINS:o.bridgeCoins,ALL_ENABLED_COINS:o.allEnabledCoins,LEND_COINS:o.lendCoins,BORROW_COINS:o.borrowCoins,LOAN_COINS:o.loanCoins,ALL_COINS:o.allCoins,findBridgeCoinWalletByXtokenAndChain:function(t,o){var e=n.BRIDGE_COINS.find((function(o){return o.xtokenSymbol===t}));if(e){var a=e.wallets.find((function(t){return t.chain===o}));if(a)return u({},e,a)}},findBridgeCoinWallet:function(t,o){var e=n.BRIDGE_COINS.find((function(o){return o.coin===t}));if(e){var a=e.wallets.find((function(t){return t.wallet===o}));if(a)return u({},e,a)}},findBridgeCoinNetwork:function(t,o){var e=n.BRIDGE_COINS.find((function(o){return o.coin===t}));if(e){var a=e.wallets.find((function(t){return t.network===o}));if(a)return u({},e,a)}}};return n},exports.isSameToken=function(t,o){return t.xtokenSymbol===o.xtokenSymbol&&t.xtokenPrecision===o.xtokenPrecision&&t.xtokenContract===o.xtokenContract},exports.otcOrderResponseParser=L,exports.otcQuoteBodyParser=X,exports.otcQuoteResponseParser=I,exports.rateParser=M,exports.similarChains=r,exports.singleActionTransactionParser=C,exports.transactionParser=R,exports.webauthActionParser=g,exports.withdrawBodyParser=O,exports.withdrawHistoryMetalResponseParser=H,exports.withdrawHistoryMetalSwapParser=U,exports.withdrawMetalResponseParser=W,exports.withdrawalFeeQuoteParser=v,exports.wrapParser=G,exports.wrapSetConfParser=j,exports.wrapStartParser=F;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,n,o,r,a=require("zod"),i=(t=require("lodash.clonedeep"))&&"object"==typeof t&&"default"in t?t.default:t,s=require("bignumber.js");(o=exports.Chains||(exports.Chains={})).BitcoinMainnet="Bitcoin",o.BitcoinTestnet="Bitcoin (Testnet)",o.EthereumMainnet="Ethereum",o.EthereumRopsten="Ethereum (Ropsten)",o.LitecoinMainnet="Litecoin",o.LitecoinTestnet="Litecoin (Testnet)",o.BitcoinCashMainnet="Bitcoin Cash",o.BitcoinCashTestnet="Bitcoin Cash (Testnet)",o.StellarMainnet="Stellar",o.StellarTestnet="Stellar (Testnet)",o.ProtonMainnet="Proton",o.ProtonTestnet="Proton (Testnet)",o.PolkadotMainnet="Polkadot",o.BinanceBEP2="Binance (BEP2)",o.BinanceBEP20="Binance (BEP20)",o.EosMainnet="EOS",o.EosTestnet="EOS (Jungle Testnet)",o.HederaMainnet="Hedera (Mainnet)",o.HederaTestnet="Hedera (Testnet)",o.DogeMainnet="Dogecoin",o.CardanoMainnet="Cardano",o.AvalancheXChain="Avalanche X-Chain",o.AvalancheCChain="Avalanche C-Chain",o.PolygonMainnet="Polygon",o.TerraMainnet="Terra",o.RippleMainnet="Ripple",o.SolanaMainnet="Solana",(r=exports.Networks||(exports.Networks={})).Mainnet="mainnet",r.Testnet="testnet",r.Ropsten="ropsten",r.ERC20="erc20",r.BEP20="bep20",r.XLM="xlm";var c=((e={})[exports.Chains.EthereumMainnet]=[exports.Chains.BinanceBEP20],e[exports.Chains.BinanceBEP20]=[exports.Chains.EthereumMainnet],e),l=((n={})[exports.Chains.BitcoinMainnet]=function(t){return"https://blockchain.com/btc/tx/"+t},n[exports.Chains.BitcoinTestnet]=function(t){return"https://blockstream.info/testnet/tx/"+t},n[exports.Chains.EthereumMainnet]=function(t){return"https://etherscan.io/tx/"+t},n[exports.Chains.EthereumRopsten]=function(t){return"https://ropsten.etherscan.io/tx/"+t},n[exports.Chains.LitecoinMainnet]=function(t){return"https://blockchair.com/litecoin/transaction/"+t},n[exports.Chains.LitecoinTestnet]=function(t){return"https://blockexplorer.one/litecoin/testnet/blockHash/"+t},n[exports.Chains.BitcoinCashMainnet]=function(t){return"https://blockchair.com/bitcoin-cash/transaction/"+t},n[exports.Chains.BitcoinCashTestnet]=function(t){return"https://blockexplorer.one/bitcoin-cash/testnet/blockHash/"+t},n[exports.Chains.StellarMainnet]=function(t){return"https://blockchair.com/stellar/transaction/"+t},n[exports.Chains.StellarTestnet]=function(t){return"https://testnet.steexp.com/tx/"+t},n[exports.Chains.ProtonMainnet]=function(t){return"https://proton.bloks.io/transaction/"+t},n[exports.Chains.ProtonTestnet]=function(t){return"https://proton-test.bloks.io/transaction/"+t},n[exports.Chains.PolkadotMainnet]=function(t){return"https://polkadot.subscan.io/extrinsic/"+t},n[exports.Chains.BinanceBEP2]=function(t){return"https://binance.mintscan.io/txs/"+t},n[exports.Chains.BinanceBEP20]=function(t){return"https://bscscan.com/tx/"+t},n[exports.Chains.EosMainnet]=function(t){return"https://bloks.io/transaction/"+t},n[exports.Chains.EosTestnet]=function(t){return"https://jungle.bloks.io/transaction/"+t},n[exports.Chains.HederaMainnet]=function(t){return"https://app.dragonglass.me/transactions/"+t},n[exports.Chains.HederaTestnet]=function(t){return"https://testnet.dragonglass.me/transactions/"+t},n[exports.Chains.DogeMainnet]=function(t){return"https://blockchair.com/dogecoin/transaction/"+t},n[exports.Chains.CardanoMainnet]=function(t){return"https://explorer.cardano.org/en/transaction?id="+t},n[exports.Chains.AvalancheXChain]=function(t){return"https://avascan.info/blockchain/x/tx/"+t},n[exports.Chains.AvalancheCChain]=function(t){return"https://snowtrace.io/tx/"+t},n[exports.Chains.PolygonMainnet]=function(t){return"https://polygonscan.com/tx/"+t},n[exports.Chains.TerraMainnet]=function(t){return"https://terra.stake.id/?#/tx/"+t},n[exports.Chains.RippleMainnet]=function(t){return"https://xrpscan.com/tx/"+t},n[exports.Chains.SolanaMainnet]=function(t){return"https://explorer.solana.com/tx/"+t},n),p=function(t){var e="proton"===t,n="proton-test"===t,o=[{allowSwap:!0,allowBridge:e,allowLend:!0,allowBorrow:!0,name:"Proton",coin:"XPR",xtokenSymbol:"XPR",xtokenPrecision:4,xtokenContract:"eosio.token",wallets:[].concat(e?[{wallet:"XPR-ERC20",symbol:"XPR",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:4,contract:"0xD7EFB00D12C2C13131FD319336FDF952525DA2AF",hasWithdrawMemo:!1},{wallet:"XPR-BEP20",symbol:"XPR",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:4,contract:"0x5DE3939B2F811A61D830E6F52D13B066881412AB",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/eosio-tokenXPR.png",coingeckoId:"proton"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"USD Coin",coin:"USDC",xtokenSymbol:"XUSDC",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1},{wallet:"USDC-BEP20",symbol:"USDC",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:"0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D",hasWithdrawMemo:!1},{wallet:"USDC-XLM",symbol:"USDC",chain:exports.Chains.StellarMainnet,network:exports.Networks.XLM,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[],n?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUSDC.png",coingeckoId:"usd-coin"},{allowSwap:!0,allowBridge:e,allowLend:!0,allowBorrow:!0,name:"Metal",coin:"MTL",xtokenSymbol:"XMT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"MTL",symbol:"MTL",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:8,contract:"0xF433089366899D83A9F26A773D59EC7ECF30355E",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXMT.png",coingeckoId:"metal"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"Bitcoin",coin:"BTC",xtokenSymbol:"XBTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],n?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXBTC.png",coingeckoId:"bitcoin"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"Ethereum",coin:"ETH",xtokenSymbol:"XETH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[],n?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXETH.png",coingeckoId:"ethereum"},{allowSwap:!0,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Loan",coin:"LOAN",xtokenSymbol:"LOAN",xtokenPrecision:4,xtokenContract:"loan.token",wallets:[],image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/loan.png",coingeckoId:"proton-loan"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Tether",coin:"USDT",xtokenSymbol:"XUSDT",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[],n?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUSDT.png",coingeckoId:"tether"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"TrueUSD",coin:"TUSD",xtokenSymbol:"XTUSD",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"TUSD",symbol:"TUSD",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x0000000000085D4780B73119B644AE5ECD22B376",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXTUSD.png",coingeckoId:"true-usd"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Paxos Standard",coin:"PAX",xtokenSymbol:"XPAX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"PAX",symbol:"PAX",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x8E870D67F660D95D5BE530380D0EC0BD388289E1",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXPAX.png",coingeckoId:"paxos-standard"},{allowSwap:!1,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Paxos Gold",coin:"PAXG",xtokenSymbol:"XPAXG",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[],n?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXPAXG.png",coingeckoId:"pax-gold"},{allowSwap:e,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Uniswap",coin:"UNI",xtokenSymbol:"XUNI",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}]:[],n?[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUNI.png",coingeckoId:"uniswap"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"1INCH",coin:"1INCH",xtokenSymbol:"XINCH",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"1INCH",symbol:"1INCH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x111111111117DC0AA78B770FA6A738034120C302",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXINCH.png",coingeckoId:"1inch"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Chainlink",coin:"LINK",xtokenSymbol:"XLINK",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"LINK",symbol:"LINK",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x514910771AF9CA656AF840DFF83E8264ECF986CA",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXLINK.png",coingeckoId:"chainlink"},{allowSwap:e,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Litecoin",coin:"LTC",xtokenSymbol:"XLTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],n?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXLTC.png",coingeckoId:"litecoin"},{allowSwap:e,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Bitcoin Cash",coin:"BCH",xtokenSymbol:"XBCH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],n?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXBCH.png",coingeckoId:"bitcoin-cash"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Stellar",coin:"XLM",xtokenSymbol:"XXLM",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarMainnet,network:exports.Networks.Mainnet,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[],n?[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarTestnet,network:exports.Networks.Testnet,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXXLM.png",coingeckoId:"stellar"},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Sense",coin:"SENSE",xtokenSymbol:"XSENSE",xtokenPrecision:4,xtokenContract:"sense",wallets:[],image:"https://www.protonchain.com/images/tokens/senseXSENSE.png",coingeckoId:"sense"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polkadot",coin:"DOT",xtokenSymbol:"XDOT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"DOT",symbol:"DOT",chain:exports.Chains.PolkadotMainnet,network:exports.Networks.Mainnet,precision:10,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXDOT.png",coingeckoId:"polkadot"},{allowSwap:!0,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Binance Coin",coin:"BNB",xtokenSymbol:"XBNB",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BNB",symbol:"BNB",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXBNB.png",coingeckoId:"binancecoin"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"EOS",coin:"EOS",xtokenSymbol:"XEOS",xtokenPrecision:4,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosMainnet,network:exports.Networks.Mainnet,precision:4,contract:void 0,hasWithdrawMemo:!0}]:[],n?[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosTestnet,network:exports.Networks.Testnet,precision:4,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXEOS.png",coingeckoId:"eos"},{allowSwap:e,allowBridge:e,allowLend:!0,allowBorrow:!0,name:"Dogecoin",coin:"DOGE",xtokenSymbol:"XDOGE",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"DOGE",symbol:"DOGE",chain:exports.Chains.DogeMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXDOGE.png",coingeckoId:"dogecoin"},{allowSwap:e,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Cardano",coin:"ADA",xtokenSymbol:"XADA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"ADA",symbol:"ADA",chain:exports.Chains.CardanoMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXADA.png",coingeckoId:"cardano"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Terra",coin:"LUNA",xtokenSymbol:"XLUNA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"LUNA",symbol:"LUNA",chain:exports.Chains.TerraMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXLUNA.png",coingeckoId:"terra-luna"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"TerraUSD",coin:"UST",xtokenSymbol:"XUST",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"UST",symbol:"UST",chain:exports.Chains.TerraMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXUST.png",coingeckoId:"terrausd"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Solana",coin:"SOL",xtokenSymbol:"XSOL",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"SOL",symbol:"SOL",chain:exports.Chains.SolanaMainnet,network:exports.Networks.Mainnet,precision:9,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png",coingeckoId:"solana"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Ripple",coin:"XRP",xtokenSymbol:"XXRP",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"XRP",symbol:"XRP",chain:exports.Chains.RippleMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png",coingeckoId:"ripple"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Avalanche",coin:"AVAX",xtokenSymbol:"XAVAX",xtokenPrecision:9,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"AVAX",symbol:"AVAX",chain:exports.Chains.AvalancheCChain,network:exports.Networks.Mainnet,precision:9,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXAVAX.png",coingeckoId:"avalanche-2"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polygon",coin:"MATIC",xtokenSymbol:"XMATIC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"MATIC",symbol:"MATIC",chain:exports.Chains.PolygonMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXMATIC.png",coingeckoId:"matic-network"},{allowSwap:!1,allowBridge:n,allowLend:!1,allowBorrow:!1,name:"HBAR",coin:"HBAR",xtokenSymbol:"XHBAR",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(n?[{wallet:"HBAR",symbol:"HBAR",chain:exports.Chains.HederaTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.protonchain.com/images/tokens/xtokensXHBAR.png",coingeckoId:"hedera-hashgraph"}],r=o.find((function(t){var e=t.wallets.map((function(t){return t.chain}));return new Set(e).size!==e.length}));if(r)throw new Error("Coin "+r.coin+" has duplicate chains in wallet");return{allCoins:o,swapCoins:o.filter((function(t){return t.allowSwap})),bridgeCoins:o.filter((function(t){return t.allowBridge})),lendCoins:o.filter((function(t){return t.allowLend})),borrowCoins:o.filter((function(t){return t.allowBorrow})),loanCoins:o.filter((function(t){return t.allowLend||t.allowBorrow})),allEnabledCoins:o.filter((function(t){return t.allowSwap||t.allowBridge}))}},w=a.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/),h=a.object({actor:w,permission:a.string()}),d=a.array(h).min(1),m=a.object({quantity:a.string(),contract:w}),u=a.object({account:a.string(),name:a.string(),authorization:a.array(a.object({actor:a.string(),permission:a.string()})),data:a.any(),hex_data:a.string().optional()}),x=a.array(a.number().or(a.string())).optional(),k=a.object({expiration:a.string(),ref_block_num:a.number(),ref_block_prefix:a.number(),max_net_usage_words:a.number(),max_cpu_usage_ms:a.number(),delay_sec:a.number(),context_free_actions:a.array(u),transaction_extensions:a.array(x)}),g=function(t,e,n){return a.object({account:"*"===t?w:a.literal(t),name:a.literal(e),data:a.object(n),authorization:d})},C=function(t,e,n){return a.object({account:"*"===t?w:a.literal(t),name:a.literal(e),data:a.string().or(a.object(n)),authorization:d})},b=function(t,e,n){return a.object({account:a.literal("webauthn"),name:a.literal("exec"),data:a.object({account:w,key:a.object({key:a.array(a.string().or(a.object({modulus:a.string(),exponent:a.string()}))),user_presence:a.number(),rpid:a.string()}),nonce:a.number(),permissions:d,signature:a.object({auth_data:a.string(),client_json:a.string(),signature:a.string()}),trx:k.merge(a.object({actions:a.array(C(t,e,n)).length(1)}))}),authorization:d})},B=function(t,e,n){var o=g(t,e,n),r=b(t,e,n);return k.merge(a.object({actions:a.array(o.or(r)).length(1)}))};function S(){return(S=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,o=new Array(e);n<e;n++)o[n]=t[n];return o}function E(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return f(t,void 0);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var o=0;return function(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var y,A=function(t,e,n){return a.object({signer:h,signatures:a.array(a.string()).length(1),transaction:B(t,e,n)})},N=A("proton.wrap","generateauth",{time:a.string(),protonAccount:a.string()}),P=a.object({index:a.number(),account:w,chain:a.string(),address:a.string(),address_hash:a.string()}),M=a.object({coin:a.string(),wallet:a.string()}).merge(N),T=a.object({id:a.string(),address:a.string(),coin:a.string(),wallet:a.string(),memo:a.string().optional()}),D=a.object({counterCurrency:a.string(),price:a.number(),priceChangePercent:a.number(),marketCap:a.number(),volume:a.number(),timestamp:a.number()}),R=a.object({contract:a.string(),symbol:a.string(),rank:a.number(),rates:a.array(D)}),v=a.array(R),L=a.array(a.object({contract:a.string(),symbol:a.string(),rank:a.number(),rates:a.array(D)}));(y=exports.Type||(exports.Type={})).RECEIVE="receive",y.SEND="send";var I,X=a.object({id:a.string(),type:a.nativeEnum(exports.Type),hash:a.string(),coin:a.string(),wallet:a.string()}),_=a.object({id:a.string(),wallet:a.string(),value:a.number(),valueString:a.string(),address:a.string(),type:a.nativeEnum(exports.Type),state:a.string(),confirmations:a.number(),hash:a.string(),blockHash:a.string().optional().nullable(),blockHeight:a.number().optional().nullable()}),O=a.object({success:a.boolean(),transaction_id:a.string(),errormsg:a.string().optional()}),W=a.object({baseAmount:a.number(),baseSymbol:a.string(),quoteSymbol:a.string()}),U=a.object({success:a.boolean(),token:a.string(),qty:a.number(),errormsg:a.string().optional()}),F={from:a.string().refine((function(t){return"proton.wrap"!==t}),{message:"proton.wrap must be receiver"}),to:a.literal("proton.wrap"),quantity:a.string(),memo:a.string()},H=a.object({signer:h,signatures:a.array(a.string()).length(1),transaction:B("*","transfer",F),quoteId:a.string(),provider:a.string().optional()}),j=a.object({success:a.boolean(),id:a.string()}),G=a.object({quoteId:a.string(),estimatedFee:a.string(),currency:a.string(),network:a.string()}),q=a.object({id:a.string(),status:a.string(),amount:a.string(),currency:a.string(),network:a.string(),created:a.string(),withdrawalAddress:a.string(),withdrawalHash:a.string().optional()}),z=a.object({swaps:a.array(q),page:a.number(),pageSize:a.number(),numberOfElements:a.number(),totalPages:a.number(),totalElements:a.number()});(I=exports.Status||(exports.Status={})).PENDING="pending",I.SUCCESS="success",I.FAIL="fail",I.PROCESSING="processing";var V=a.object({balance:m,id:a.string(),txid:a.string(),chain:a.string(),deposit_address:a.string(),confirmations:a.number()}),K=a.object({wrap_hash:a.string(),confirmations:a.number()}),Y=a.object({index:a.number(),proton_account:a.string(),balance:m,id:a.string(),txid:a.string(),chain:a.string(),deposit_address:a.string(),status:a.nativeEnum(exports.Status),finish_txid:a.string(),wrap_hash:a.string(),confirmations:a.number()}),Q=function(t,e){this.key=void 0,this.data={},this.key=t,e&&(this.data=e)},$=function(t,e,n){this.from=void 0,this.to=void 0,this.data={},this.from=t,this.to=e,n&&(this.data=n)},J=function(){function t(){this.nodes=[],this.links=[],this.lastPathFound=[],this.isEquals=function(t,e){return t.key===e.key}}var e=t.prototype;return e.addNode=function(t,e){this.findNode(t)||this.nodes.push(new Q(t,e))},e.addNodes=function(){for(var t=this,e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];n.forEach((function(e){return"string"==typeof e?t.addNode(e):t.addNode(e[0],e[1])}))},e.findNode=function(t){var e=this,n=new Q(t);return this.nodes.find((function(t){return e.isEquals(t,n)}))},e.findNodes=function(){for(var t=this,e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];return n.map((function(e){return t.findNode(e)}))},e.requireFindNodes=function(){var t=this.findNodes.apply(this,arguments);if(t.some((function(t){return void 0===t})))throw new Error("One of the nodes does not exist");return t},e.addLink=function(t,e,n){var o=this.requireFindNodes(t,e);this.links.push(new $(o[0],o[1],n))},e.addLinks=function(){for(var t=this,e=arguments.length,n=new Array(e),o=0;o<e;o++)n[o]=arguments[o];n.forEach((function(e){return t.addLink.apply(t,e)}))},e.findLinkedNodes=function(t){var e=this;return this.links.reduce((function(n,o){return e.isEquals(o.from,t)&&n.push(o.to),n}),[])},e.findAllPaths=function(t,e){var n=this,o=[],r=this.requireFindNodes(t,e),a=r[0],s=r[1],c=[a],l=new Set;return function t(e){if(n.isEquals(e,s))o.push(i(c));else if(l=new Set(c.map((function(t){return t.key}))),!function t(e){if(n.isEquals(e,s))return!1;for(var o,r=E(n.findLinkedNodes(e));!(o=r()).done;){var a=o.value;if(!l.has(a.key)&&(l.add(a.key),!t(a)))return!1}return!0}(e))for(var r,a=E(n.findLinkedNodes(e));!(r=a()).done;){var p=r.value;c.includes(p)||(c.push(p),t(p),c.pop())}}(a),o},t}(),Z=function(t,e,n,o,r){var a=e,i=t.multipliedBy(e),c=t.plus(n),l=i.dividedBy(c).integerValue(s.BigNumber.ROUND_DOWN),p=a.minus(l),w=new s.BigNumber(o).dividedBy(1e4);return p.minus(p.multipliedBy(w)).integerValue(s.BigNumber.ROUND_DOWN).shiftedBy(-r)};exports.ExtendedAssetParser=m,exports.FEE_FACTOR=1e4,exports.Graph=J,exports.ILink=$,exports.INode=Q,exports.WRAP_AUTH_ACTION="generateauth",exports.WRAP_CONTRACT="proton.wrap",exports.accountParser=w,exports.addressParser=P,exports.applyDiscountToFee=function(t,e){return e>=1e7?0*t:e>=1e6?.33*t:e>=1e5?.66*t:t},exports.authorizationParser=h,exports.authorizationsParser=d,exports.baseActionParser=g,exports.baseActionSerializedParser=C,exports.bloksRatesParser=L,exports.compute_liquidity=function(t,e,n,o){return+t.multipliedBy(e).dividedBy(n).integerValue(s.BigNumber.ROUND_DOWN).shiftedBy(-o).toFixed(o,s.BigNumber.ROUND_DOWN)},exports.compute_transfer=Z,exports.compute_transfer_curve=function(t,e,n,o,r,a){if(0===a)return Z(new s.BigNumber(t),new s.BigNumber(e),new s.BigNumber(n),o,r);for(var i=t+e,c=i,l=0,p=function(t){return(t>=0?1:-1)*Math.floor(Math.abs(t))},w=10;c!=l&&w--;){var h=p(p(c*c/(2*t))*c/(2*e));l=c,c=p(2*c*(a*i+h)/((2*a-1)*c+3*h))}var d=t+n+p(c/(2*a))-c,m=p(p(c*c/(2*(t+n)))*c/(4*a)),u=c,x=0;for(w=10;u!=x&&w--;)x=p(u),u=+new s.BigNumber(u*u+m).dividedBy(2*u+d).toFixed(0,s.BigNumber.ROUND_DOWN);if(e<=u)throw new Error("curve: insufficient reserve out");var k=new s.BigNumber(e-u),g=k.multipliedBy(o).dividedBy(1e4).toFixed(0,s.BigNumber.ROUND_DOWN);return k.minus(g).integerValue(s.BigNumber.ROUND_DOWN).shiftedBy(-r)},exports.createAbstractAuthParser=A,exports.depositBodyParser=X,exports.exchangeRateParser=R,exports.exchangeRatesParser=v,exports.explorerLinkByChain=l,exports.generateAddressBodyParser=M,exports.generateAddressResponse=T,exports.generateAuthParser=N,exports.initializeCoins=p,exports.initializeConstants=function(t){var e=p(t),n={SWAP_CONTRACT:"proton.swaps",FEE_FACTOR:1e4,GOOGLE_MAPS_KEY:"AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs",SWAP_URL:"proton"===t?"https://otc.protonswap.com":"https://otc-test.protonswap.com",WRAP_SERVER_URL:"proton"===t?"https://www.api.bloks.io/proton-wrap-public2":"https://www.api.bloks.io/proton-wrap-testnet-public2",WRAP_CONTRACT:"proton.wrap",WRAP_ACTIONS:{SAVE_ADDRESS:"saveaddress2",DELETE_ADDRESS:"deladdress2",WRAP_START:"wrapstart2",WRAP_FINISH:"wrapfinish2",WRAP_PROCESS:"wrapprocess2",WRAP_SET_CONF:"wrapsetconf2"},WRAP_TABLES:{ADDRESSES:"addresses2",WRAPS:"wraps2"},ADDRESSES_INDEXES:{BY_ACCOUNT:2,BY_ADDR_HASH:3},WRAPS_INDEXES:{BY_ACCOUNT:2,BY_STATUS:3,BY_WRAP_HASH:4},WRAP_PROCESS_TIMER:5e3,FARM_CONTRACT:"yield.farms",WEBHOOK_PERMISSION:"webhook",PUBLIC_PERMISSION:"public",LIGHT_PERMISSION:"light",WRAP_AUTH_ACTION:"generateauth",METAL_ENDPOINT:"proton"===t?"https://cirrus.metalpay.com":"https://cirrus-dev.metalpay.com",METAL_PROTON_ENDPOINT:"proton"===t?"https://api.protonchain.com":"https://api-dev.protonchain.com",PROTON_ENDPOINTS:"proton"===t?["https://proton.greymass.com","https://proton.eoscafeblock.com","https://proton.cryptolions.io","https://proton.eosusa.news"]:["https://testnet.protonchain.com"],CHAIN_ID:"proton"===t?"384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0":"71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd",CHAIN:t,SWAP_COINS:e.swapCoins,BRIDGE_COINS:e.bridgeCoins,ALL_ENABLED_COINS:e.allEnabledCoins,LEND_COINS:e.lendCoins,BORROW_COINS:e.borrowCoins,LOAN_COINS:e.loanCoins,ALL_COINS:e.allCoins,findBridgeCoinWalletByXtokenAndChain:function(t,e){var o=n.BRIDGE_COINS.find((function(e){return e.xtokenSymbol===t}));if(o){var r=o.wallets.find((function(t){return t.chain===e}));if(r)return S({},o,r)}},findBridgeCoinWallet:function(t,e){var o=n.BRIDGE_COINS.find((function(e){return e.coin===t}));if(o){var r=o.wallets.find((function(t){return t.wallet===e}));if(r)return S({},o,r)}},findBridgeCoinNetwork:function(t,e){var o=n.BRIDGE_COINS.find((function(e){return e.coin===t}));if(o){var r=o.wallets.find((function(t){return t.network===e}));if(r)return S({},o,r)}}};return n},exports.isInputInvalid=function(t,e,n){e=String(e);var o=null===t,r=!/[0-9]|\./.test(t),a="."===t&&e.indexOf(".")!==e.length-1,i=e&&-1!==e.indexOf(".")&&e.split(".")[1].length>n.xtokenPrecision;return!o&&Boolean(r||a||i)},exports.isSameToken=function(t,e){return t.xtokenSymbol===e.xtokenSymbol&&t.xtokenPrecision===e.xtokenPrecision&&t.xtokenContract===e.xtokenContract},exports.otcOrderResponseParser=O,exports.otcQuoteBodyParser=W,exports.otcQuoteResponseParser=U,exports.rateParser=D,exports.similarChains=c,exports.singleActionTransactionParser=B,exports.transactionParser=_,exports.webauthActionParser=b,exports.withdrawBodyParser=H,exports.withdrawHistoryMetalResponseParser=z,exports.withdrawHistoryMetalSwapParser=q,exports.withdrawMetalResponseParser=j,exports.withdrawalFeeQuoteParser=G,exports.wrapParser=Y,exports.wrapSetConfParser=K,exports.wrapStartParser=V;
|
|
2
2
|
//# sourceMappingURL=wrap-constants.cjs.production.min.js.map
|
|
@@ -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 AvalancheXChain = 'Avalanche X-Chain',\n AvalancheCChain = 'Avalanche C-Chain',\n PolygonMainnet = 'Polygon',\n TerraMainnet = 'Terra',\n RippleMainnet = 'Ripple',\n SolanaMainnet = 'Solana'\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 [Chains.AvalancheXChain] : (txid: string) => `https://avascan.info/blockchain/x/tx/${txid}`,\n [Chains.AvalancheCChain] : (txid: string) => `https://snowtrace.io/tx/${txid}`,\n [Chains.PolygonMainnet] : (txid: string) => `https://polygonscan.com/tx/${txid}`,\n [Chains.TerraMainnet] : (txid: string) => `https://terra.stake.id/?#/tx/${txid}`,\n [Chains.RippleMainnet] : (txid: string) => `https://xrpscan.com/tx/${txid}`,\n [Chains.SolanaMainnet] : (txid: string) => `https://explorer.solana.com/tx/${txid}`,\n}\n\n// Initialize\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: 'https://www.protonchain.com/images/tokens/eosio-tokenXPR.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: 'https://www.protonchain.com/images/tokens/xtokensXUSDC.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: 'https://www.protonchain.com/images/tokens/xtokensXMT.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: 'https://www.protonchain.com/images/tokens/xtokensXBTC.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: 'https://www.protonchain.com/images/tokens/xtokensXETH.png',\n coingeckoId: 'ethereum'\n },\n { \n allowSwap: true,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Loan',\n coin: 'LOAN',\n xtokenSymbol: 'LOAN',\n xtokenPrecision: 4,\n xtokenContract: 'loan.token',\n wallets: [],\n image: 'https://www.protonchain.com/images/tokens/loan.tokenLOAN.png',\n coingeckoId: 'proton-loan'\n },\n { \n allowSwap: true,\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: 'https://www.protonchain.com/images/tokens/xtokensXUSDT.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: 'https://www.protonchain.com/images/tokens/xtokensXTUSD.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: 'https://www.protonchain.com/images/tokens/xtokensXPAX.png',\n coingeckoId: 'paxos-standard'\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: 'https://www.protonchain.com/images/tokens/xtokensXPAXG.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: 'https://www.protonchain.com/images/tokens/xtokensXUNI.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: 'https://www.protonchain.com/images/tokens/xtokensXINCH.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: 'https://www.protonchain.com/images/tokens/xtokensXLINK.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: 'https://www.protonchain.com/images/tokens/xtokensXLTC.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: 'https://www.protonchain.com/images/tokens/xtokensXBCH.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: 'https://www.protonchain.com/images/tokens/xtokensXXLM.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: 'https://www.protonchain.com/images/tokens/senseXSENSE.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: 'https://www.protonchain.com/images/tokens/xtokensXDOT.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: 'https://www.protonchain.com/images/tokens/xtokensXBNB.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: 'https://www.protonchain.com/images/tokens/xtokensXEOS.png',\n coingeckoId: 'eos'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\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: 'https://www.protonchain.com/images/tokens/xtokensXDOGE.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: 'https://www.protonchain.com/images/tokens/xtokensXADA.png',\n coingeckoId: 'cardano'\n },\n\n // Adding\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Terra',\n coin: 'LUNA',\n xtokenSymbol: 'XLUNA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LUNA',\n symbol: 'LUNA',\n chain: Chains.TerraMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXLUNA.png',\n coingeckoId: 'terra-luna'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TerraUSD',\n coin: 'UST',\n xtokenSymbol: 'XUST',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UST',\n symbol: 'UST',\n chain: Chains.TerraMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXUST.png',\n coingeckoId: 'terrausd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Solana',\n coin: 'SOL',\n xtokenSymbol: 'XSOL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'SOL',\n symbol: 'SOL',\n chain: Chains.SolanaMainnet,\n network: Networks.Mainnet,\n precision: 9,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png',\n coingeckoId: 'solana'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Ripple',\n coin: 'XRP',\n xtokenSymbol: 'XXRP',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XRP',\n symbol: 'XRP',\n chain: Chains.RippleMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png',\n coingeckoId: 'ripple'\n },\n\n // Future\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Avalanche',\n coin: 'AVAX',\n xtokenSymbol: 'XAVAX',\n xtokenPrecision: 9,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'AVAX',\n symbol: 'AVAX',\n chain: Chains.AvalancheCChain,\n network: Networks.Mainnet,\n precision: 9,\n contract: undefined,\n hasWithdrawMemo: false\n }\n ]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXAVAX.png',\n coingeckoId: 'avalanche-2'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polygon',\n coin: 'MATIC',\n xtokenSymbol: 'XMATIC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MATIC',\n symbol: 'MATIC',\n chain: Chains.PolygonMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXMATIC.png',\n coingeckoId: 'matic-network'\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: true\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXHBAR.png',\n coingeckoId: 'hedera-hashgraph'\n }\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 { accountParser, authorizationsParser } from './base'\n\nconst actionParser = z.object({\n account: z.string(),\n name: z.string(),\n authorization: z.array(\n z.object({\n actor: z.string(),\n permission: z.string(),\n })\n ),\n data: z.any(),\n hex_data: z.string().optional()\n})\n\nconst transactionExtensionsParser = z.array(z.number().or(z.string())).optional()\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(actionParser),\n transaction_extensions: z.array(transactionExtensionsParser)\n})\n\nexport const baseActionParser = <T extends z.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 z.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 z.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 z.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'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: z.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>\n\nexport const bloksRatesParser = z.array(z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n}))\n\nexport type BloksRate = {\n key: string;\n symbol: string;\n account: string;\n chain: string;\n supply: {\n circulating: number;\n max: number;\n precision: number;\n last_update: string;\n };\n metadata: {\n name: string;\n website: string;\n logo: string;\n created_at: string;\n desc: string;\n };\n pairs: [\n {\n id: string;\n pair_base: string;\n pair_quote: string;\n exchange: string;\n quote:{\n price: number\n volume_base_24h: number\n volume_quote_24h: number\n market_cap: number\n price_usd: number\n volume_usd_24h: number\n },\n percentage_daily_volume: number\n },\n ];\n price: {\n quotes: {\n [key: string]: number\n },\n usd: number;\n volume_base_24h: number;\n volume_usd_24h: number;\n marketcap_usd: number;\n change_24hr: number;\n },\n rank: number;\n chain_rank: number;\n}\n\nexport type BloksRates = BloksRate[]","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","AvalancheXChain","AvalancheCChain","PolygonMainnet","TerraMainnet","RippleMainnet","SolanaMainnet","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","actionParser","account","authorization","data","hex_data","optional","transactionExtensionsParser","or","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","baseActionSerializedParser","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","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","bloksRatesParser","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/graph.ts","../src/math.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 AvalancheXChain = 'Avalanche X-Chain',\n AvalancheCChain = 'Avalanche C-Chain',\n PolygonMainnet = 'Polygon',\n TerraMainnet = 'Terra',\n RippleMainnet = 'Ripple',\n SolanaMainnet = 'Solana'\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 [Chains.AvalancheXChain] : (txid: string) => `https://avascan.info/blockchain/x/tx/${txid}`,\n [Chains.AvalancheCChain] : (txid: string) => `https://snowtrace.io/tx/${txid}`,\n [Chains.PolygonMainnet] : (txid: string) => `https://polygonscan.com/tx/${txid}`,\n [Chains.TerraMainnet] : (txid: string) => `https://terra.stake.id/?#/tx/${txid}`,\n [Chains.RippleMainnet] : (txid: string) => `https://xrpscan.com/tx/${txid}`,\n [Chains.SolanaMainnet] : (txid: string) => `https://explorer.solana.com/tx/${txid}`,\n}\n\n// Initialize\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: 'https://www.protonchain.com/images/tokens/eosio-tokenXPR.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: 'https://www.protonchain.com/images/tokens/xtokensXUSDC.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: 'https://www.protonchain.com/images/tokens/xtokensXMT.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: 'https://www.protonchain.com/images/tokens/xtokensXBTC.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: 'https://www.protonchain.com/images/tokens/xtokensXETH.png',\n coingeckoId: 'ethereum'\n },\n { \n allowSwap: true,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Loan',\n coin: 'LOAN',\n xtokenSymbol: 'LOAN',\n xtokenPrecision: 4,\n xtokenContract: 'loan.token',\n wallets: [],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/loan.png',\n coingeckoId: 'proton-loan'\n },\n { \n allowSwap: true,\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: 'https://www.protonchain.com/images/tokens/xtokensXUSDT.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: 'https://www.protonchain.com/images/tokens/xtokensXTUSD.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: 'https://www.protonchain.com/images/tokens/xtokensXPAX.png',\n coingeckoId: 'paxos-standard'\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: 'https://www.protonchain.com/images/tokens/xtokensXPAXG.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: 'https://www.protonchain.com/images/tokens/xtokensXUNI.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: 'https://www.protonchain.com/images/tokens/xtokensXINCH.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: 'https://www.protonchain.com/images/tokens/xtokensXLINK.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: 'https://www.protonchain.com/images/tokens/xtokensXLTC.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: 'https://www.protonchain.com/images/tokens/xtokensXBCH.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: 'https://www.protonchain.com/images/tokens/xtokensXXLM.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: 'https://www.protonchain.com/images/tokens/senseXSENSE.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: 'https://www.protonchain.com/images/tokens/xtokensXDOT.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: 'https://www.protonchain.com/images/tokens/xtokensXBNB.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: 'https://www.protonchain.com/images/tokens/xtokensXEOS.png',\n coingeckoId: 'eos'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\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: 'https://www.protonchain.com/images/tokens/xtokensXDOGE.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: 'https://www.protonchain.com/images/tokens/xtokensXADA.png',\n coingeckoId: 'cardano'\n },\n\n // Adding\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Terra',\n coin: 'LUNA',\n xtokenSymbol: 'XLUNA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LUNA',\n symbol: 'LUNA',\n chain: Chains.TerraMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXLUNA.png',\n coingeckoId: 'terra-luna'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TerraUSD',\n coin: 'UST',\n xtokenSymbol: 'XUST',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UST',\n symbol: 'UST',\n chain: Chains.TerraMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXUST.png',\n coingeckoId: 'terrausd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Solana',\n coin: 'SOL',\n xtokenSymbol: 'XSOL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'SOL',\n symbol: 'SOL',\n chain: Chains.SolanaMainnet,\n network: Networks.Mainnet,\n precision: 9,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png',\n coingeckoId: 'solana'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Ripple',\n coin: 'XRP',\n xtokenSymbol: 'XXRP',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XRP',\n symbol: 'XRP',\n chain: Chains.RippleMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png',\n coingeckoId: 'ripple'\n },\n\n // Future\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Avalanche',\n coin: 'AVAX',\n xtokenSymbol: 'XAVAX',\n xtokenPrecision: 9,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'AVAX',\n symbol: 'AVAX',\n chain: Chains.AvalancheCChain,\n network: Networks.Mainnet,\n precision: 9,\n contract: undefined,\n hasWithdrawMemo: false\n }\n ]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXAVAX.png',\n coingeckoId: 'avalanche-2'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polygon',\n coin: 'MATIC',\n xtokenSymbol: 'XMATIC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MATIC',\n symbol: 'MATIC',\n chain: Chains.PolygonMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXMATIC.png',\n coingeckoId: 'matic-network'\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: true\n }]: [])\n ],\n image: 'https://www.protonchain.com/images/tokens/xtokensXHBAR.png',\n coingeckoId: 'hedera-hashgraph'\n }\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 { accountParser, authorizationsParser } from './base'\n\nconst actionParser = z.object({\n account: z.string(),\n name: z.string(),\n authorization: z.array(\n z.object({\n actor: z.string(),\n permission: z.string(),\n })\n ),\n data: z.any(),\n hex_data: z.string().optional()\n})\n\nconst transactionExtensionsParser = z.array(z.number().or(z.string())).optional()\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(actionParser),\n transaction_extensions: z.array(transactionExtensionsParser)\n})\n\nexport const baseActionParser = <T extends z.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 z.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 z.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 z.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'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: z.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'\nexport const FEE_FACTOR = 10000\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,\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>\n\nexport const bloksRatesParser = z.array(z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n}))\n\nexport type BloksRate = {\n key: string;\n symbol: string;\n account: string;\n chain: string;\n supply: {\n circulating: number;\n max: number;\n precision: number;\n last_update: string;\n };\n metadata: {\n name: string;\n website: string;\n logo: string;\n created_at: string;\n desc: string;\n };\n pairs: [\n {\n id: string;\n pair_base: string;\n pair_quote: string;\n exchange: string;\n quote:{\n price: number\n volume_base_24h: number\n volume_quote_24h: number\n market_cap: number\n price_usd: number\n volume_usd_24h: number\n },\n percentage_daily_volume: number\n },\n ];\n price: {\n quotes: {\n [key: string]: number\n },\n usd: number;\n volume_base_24h: number;\n volume_usd_24h: number;\n marketcap_usd: number;\n change_24hr: number;\n },\n rank: number;\n chain_rank: number;\n}\n\nexport type BloksRates = BloksRate[]","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","import cloneDeep from 'lodash.clonedeep'\n\nexport class INode <T> {\n data: T = {} as T\n constructor (public key: string, data?: T) {\n if (data) {\n this.data = data\n }\n }\n}\n\nexport class ILink <T> {\n data: T = {} as T\n constructor (public from: INode<T>, public to: INode<T>, data?: T) {\n if (data) {\n this.data = data\n }\n }\n}\n\nexport class Graph <T> {\n nodes: INode<T>[] = []\n links: ILink<T>[] = []\n lastPathFound: INode<T>[] = []\n\n isEquals = (a: INode<T>, b: INode<T>) => a.key === b.key\n\n addNode (k: string, v?: T): void {\n const node = this.findNode(k)\n if (!node) {\n this.nodes.push(new INode(k, v))\n }\n }\n\n addNodes (...nodes: (string | [string, T?])[]): void {\n nodes.forEach(node => typeof node === \"string\" ? this.addNode(node) : this.addNode(node[0], node[1]))\n }\n\n findNode (k: string): INode<T> | undefined {\n const inode = new INode<T>(k)\n return this.nodes.find(node => this.isEquals(node, inode))\n }\n\n findNodes (...keys: string[]): (INode<T> | undefined)[] {\n return keys.map(k => this.findNode(k))\n }\n\n requireFindNodes (...keys: string[]): INode<T>[] {\n const nodes = this.findNodes(...keys)\n if (nodes.some(n => n === undefined)) {\n throw new Error('One of the nodes does not exist')\n }\n return nodes as INode<T>[]\n }\n\n addLink (nodeA: string, nodeB: string, data?: T): void {\n const [inodeA, inodeB] = this.requireFindNodes(nodeA, nodeB)\n this.links.push(new ILink<T>(inodeA, inodeB, data))\n }\n\n addLinks (...links: [nodeA: string, nodeB: string, data?: T][]): void {\n links.forEach(link => this.addLink(...link))\n }\n \n /** \n * Get all nodes linked \n * to from `node`.\n */\n findLinkedNodes (node: INode<T>) {\n return this.links.reduce((acc, link) => {\n if (this.isEquals(link.from, node)) {\n acc.push(link.to)\n }\n return acc;\n }, [] as INode<T>[]);\n }\n\n findAllPaths(from: string, to: string) {\n const allPaths: INode<T>[][] = []\n\n const [fromNode, toNode] = this.requireFindNodes(from, to)\n\n const path: INode<T>[] = [fromNode]\n let seen = new Set()\n\n const stuck = (x: INode<T>) => {\n if (this.isEquals(x, toNode)) {\n return false\n }\n\n for (const y of this.findLinkedNodes(x)) {\n if (!seen.has(y.key)) {\n seen.add(y.key)\n if (!stuck(y)) {\n return false\n }\n }\n }\n\n return true\n }\n\n const search = (x: INode<T>) => {\n if (this.isEquals(x, toNode)) {\n allPaths.push(cloneDeep(path))\n return\n }\n seen = new Set(path.map(p => p.key))\n if (stuck(x)) {\n return\n }\n\n for (const y of this.findLinkedNodes(x)) {\n if (!path.includes(y)) {\n path.push(y)\n search(y)\n path.pop()\n }\n }\n }\n\n search(fromNode)\n\n return allPaths\n }\n}","import { BigNumber as BN } from 'bignumber.js'\nimport { FEE_FACTOR } from './constants'\n\n/**\n * XPR<>XUSDT (XPR -> XUSDT)\n *\n * pool1 * pool2\n * term = pool2 - --------------\n * pool1 + swap\n *\n * result = term - (term * fee)\n */\nexport const compute_transfer = (pool1: BN.Instance, pool2: BN.Instance, swap: BN.Instance, exchange_fee: number, precision: number): BN => {\n const term1 = pool2\n const term2over = pool1.multipliedBy(pool2)\n const term2under = pool1.plus(swap)\n const term2 = term2over.dividedBy(term2under).integerValue(BN.ROUND_DOWN)\n const term = term1.minus(term2)\n const fee = new BN(exchange_fee).dividedBy(FEE_FACTOR)\n const result = term.minus(term.multipliedBy(fee))\n \n return result.integerValue(BN.ROUND_DOWN).shiftedBy(-precision)\n}\n\nexport const compute_transfer_curve = (\n reserve_in: number,\n reserve_out: number,\n amount_in: number,\n exchange_fee: number,\n precision: number,\n amplifier: number\n): BN => {\n if (amplifier === 0) {\n return compute_transfer(new BN(reserve_in), new BN(reserve_out), new BN(amount_in), exchange_fee, precision)\n }\n\n const MAX_ITERATIONS = 10\n\n const sum = reserve_in + reserve_out\n let D = sum;\n let D_prev = 0\n\n const F = (v: number) => {\n return (v >= 0 ? 1 : -1) * Math.floor(Math.abs(v));\n }\n\n let i = MAX_ITERATIONS\n while (D != D_prev && i--) {\n const prod1 = F((F((D * D) / (reserve_in * 2)) * D) / (reserve_out * 2));\n D_prev = D\n D = F((2 * D * ((amplifier * sum) + prod1)) / ((2 * amplifier - 1) * D + 3 * prod1));\n }\n\n const b = ((reserve_in + amount_in) + F(D / (amplifier * 2))) - D;\n\n const c = F(F((D * D) / ((reserve_in + amount_in) * 2)) * D / (amplifier * 4));\n\n let x = D, x_prev = 0;\n i = MAX_ITERATIONS;\n while ( x != x_prev && i--) {\n x_prev = F(x);\n x = +new BN(x * x + c).dividedBy(2 * x + b).toFixed(0, BN.ROUND_DOWN)\n }\n\n if (reserve_out <= x) {\n throw new Error(\"curve: insufficient reserve out\")\n }\n\n // Fee\n const amount_out_with_fee = new BN(reserve_out - x);\n const fee = amount_out_with_fee.multipliedBy(exchange_fee).dividedBy(FEE_FACTOR).toFixed(0, BN.ROUND_DOWN);\n const amount_out = amount_out_with_fee.minus(fee)\n\n return amount_out.integerValue(BN.ROUND_DOWN).shiftedBy(-precision)\n}\n\nexport const compute_liquidity = (amount_lt: BN.Instance, pool: BN.Instance, lt_supply: BN.Instance, precision: number): number => {\n const over = amount_lt.multipliedBy(pool)\n const under = lt_supply\n const result = over.dividedBy(under).integerValue(BN.ROUND_DOWN)\n\n return +(result.shiftedBy(-precision).toFixed(precision, BN.ROUND_DOWN))\n}\n\nexport const isInputInvalid = (data: string, value: string | number, pool: { xtokenPrecision: number }): boolean => {\n value = String(value)\n \n const isBackspace = data === null\n const isNumber = !/[0-9]|\\./.test(data)\n const isDoubleDot = data === '.' && value.indexOf('.') !== value.length - 1\n const isPrecisionTooHigh = value && value.indexOf('.') !== -1 && value.split('.')[1].length > pool.xtokenPrecision\n const isInvalid = !isBackspace && Boolean(isNumber || isDoubleDot || isPrecisionTooHigh)\n\n return isInvalid\n}\n\nexport const applyDiscountToFee = (fee: number, staked: number): number => {\n if (staked >= 10000000) {\n return fee * 0\n } else if (staked >= 1000000) {\n return fee * 0.33\n } else if (staked >= 100000) {\n return fee * 0.66\n } else {\n return fee\n }\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","AvalancheXChain","AvalancheCChain","PolygonMainnet","TerraMainnet","RippleMainnet","SolanaMainnet","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","actionParser","account","authorization","data","hex_data","optional","transactionExtensionsParser","or","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","baseActionSerializedParser","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","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","bloksRatesParser","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","INode","ILink","Graph","nodes","links","lastPathFound","isEquals","a","b","addNode","k","v","this","findNode","push","addNodes","forEach","node","_this","inode","_this2","findNodes","keys","_this3","requireFindNodes","some","n","addLink","nodeA","nodeB","addLinks","link","_this4","findLinkedNodes","reduce","acc","_this5","findAllPaths","allPaths","fromNode","toNode","path","seen","search","x","_this6","cloneDeep","p","stuck","y","has","add","includes","pop","compute_transfer","pool1","pool2","swap","exchange_fee","term1","term2over","multipliedBy","term2under","plus","term2","dividedBy","integerValue","BN","ROUND_DOWN","term","minus","fee","shiftedBy","staked","amount_lt","pool","lt_supply","toFixed","reserve_in","reserve_out","amount_in","amplifier","sum","D","D_prev","F","Math","floor","abs","i","prod1","c","x_prev","amount_out_with_fee","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","String","isBackspace","isNumber","test","isDoubleDot","indexOf","isPrecisionTooHigh","split","Boolean","token1","token2"],"mappings":"8EAEYA,EA8BAC,+HA9BAD,EAAAA,iBAAAA,6CAERA,qCACAA,6BACAA,uCACAA,6BACAA,uCACAA,oCACAA,8CACAA,2BACAA,qCACAA,yBACAA,mCACAA,6BACAA,+BACAA,iCACAA,mBACAA,oCACAA,mCACAA,mCACAA,yBACAA,2BACAA,sCACAA,sCACAA,2BACAA,uBACAA,yBACAA,0BAGQC,EAAAA,mBAAAA,wCAERA,oBACAA,oBACAA,gBACAA,gBACAA,gBAGSC,UACRF,eAAOG,iBAAkB,CAACH,eAAOI,gBACjCJ,eAAOI,cAAe,CAACJ,eAAOG,oBA+BtBE,UACRL,eAAOM,gBAAqB,SAACC,0CAAkDA,KAC/EP,eAAOQ,gBAAqB,SAACD,gDAAwDA,KACrFP,eAAOG,iBAAqB,SAACI,oCAA4CA,KACzEP,eAAOS,iBAAqB,SAACF,4CAAoDA,KACjFP,eAAOU,iBAAqB,SAACH,wDAAgEA,KAC7FP,eAAOW,iBAAqB,SAACJ,iEAAyEA,KACtGP,eAAOY,oBAAqB,SAACL,4DAAoEA,KACjGP,eAAOa,oBAAqB,SAACN,qEAA6EA,KAC1GP,eAAOc,gBAAqB,SAACP,uDAA+DA,KAC5FP,eAAOe,gBAAqB,SAACR,0CAAkDA,KAC/EP,eAAOgB,eAAqB,SAACT,gDAAwDA,KACrFP,eAAOiB,eAAqB,SAACV,qDAA6DA,KAC1FP,eAAOkB,iBAAqB,SAACX,kDAA0DA,KACvFP,eAAOmB,aAAqB,SAACZ,4CAAoDA,KACjFP,eAAOI,cAAqB,SAACG,mCAA2CA,KACxEP,eAAOoB,YAAqB,SAACb,yCAAiDA,KAC9EP,eAAOqB,YAAqB,SAACd,gDAAwDA,KACrFP,eAAOsB,eAAqB,SAACf,oDAA4DA,KACzFP,eAAOuB,eAAqB,SAAChB,wDAAgEA,KAC7FP,eAAOwB,aAAqB,SAACjB,wDAAgEA,KAC7FP,eAAOyB,gBAAqB,SAAClB,2DAAmEA,KAChGP,eAAO0B,iBAAqB,SAACnB,iDAAyDA,KACtFP,eAAO2B,iBAAqB,SAACpB,oCAA4CA,KACzEP,eAAO4B,gBAAqB,SAACrB,uCAA+CA,KAC5EP,eAAO6B,cAAqB,SAACtB,yCAAiDA,KAC9EP,eAAO8B,eAAqB,SAACvB,mCAA2CA,KACxEP,eAAO+B,eAAqB,SAACxB,2CAAmDA,MAIxEyB,EAAkB,SAACC,OAStBC,EAA6B,WAAhBD,EACbE,EAA6B,gBAAhBF,EAEbG,EAAgB,CAClB,CACIC,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,MACNC,aAAc,MACdC,gBAAiB,EACjBC,eAAgB,cAChBC,kBACQZ,EAAa,CACb,CACIa,OAAQ,YACRC,OAAQ,MACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,GAErB,CACIP,OAAQ,YACRC,OAAQ,MACRC,MAAOjD,eAAOI,aACd8C,QAASjD,iBAASsD,MAClBH,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IAEtB,IAEPE,MAAO,+DACPC,YAAa,UAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CACb,CACIa,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,GAErB,CACIP,OAAQ,aACRC,OAAQ,OACRC,MAAOjD,eAAOI,aACd8C,QAASjD,iBAASsD,MAClBH,UAAW,GACXC,SAAU,6CACVC,iBAAiB,GAErB,CACIP,OAAQ,WACRC,OAAQ,OACRC,MAAOjD,eAAOc,eACdoC,QAASjD,iBAASyD,IAClBN,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IAEtB,GACCnB,EAAa,CAAiB,CAC9BY,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOS,gBACdyC,QAASjD,iBAAS2D,QAClBR,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,YAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,MACNC,aAAc,MACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,2DACPC,YAAa,SAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOM,eACd4C,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOQ,eACd0C,QAASjD,iBAAS6D,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,WAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAAS4D,QAClBT,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOS,gBACdyC,QAASjD,iBAAS2D,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,YAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,OACNC,KAAM,OACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,aAChBC,QAAS,GACTU,MAAO,+EACPC,YAAa,eAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOS,gBACdyC,QAASjD,iBAAS2D,QAClBR,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,UAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,YAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,iBACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,kBAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,aACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOS,gBACdyC,QAASjD,iBAAS2D,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,YAEjB,CACIpB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOS,gBACdyC,QAASjD,iBAAS2D,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,WAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,QACRC,OAAQ,QACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,SAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,YACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOG,gBACd+C,QAASjD,iBAASkD,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,aAEjB,CACIpB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOU,gBACdwC,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOW,gBACduC,QAASjD,iBAAS6D,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,YAEjB,CACIpB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,eACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOY,mBACdsC,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOa,mBACdqC,QAASjD,iBAAS6D,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,gBAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOc,eACdoC,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOe,eACdmC,QAASjD,iBAAS6D,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,WAEjB,CACIpB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,SACdC,gBAAiB,EACjBC,eAAgB,QAChBC,QAAS,GACTU,MAAO,4DACPC,YAAa,SAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOkB,gBACdgC,QAASjD,iBAAS4D,QAClBT,UAAW,GACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,YAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,eACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOI,aACd8C,QAASjD,iBAASsD,MAClBH,UAAW,GACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,eAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,MACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOoB,WACd8B,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOqB,WACd6B,QAASjD,iBAAS6D,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,OAEjB,CACIpB,UAAWH,EACXI,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOwB,YACd0B,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,YAEjB,CACIpB,UAAWH,EACXI,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAOyB,eACdyB,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,YAKbpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAO6B,aACdqB,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,cAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAO6B,aACdqB,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,4DACPC,YAAa,YAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAO+B,cACdmB,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,+EACPC,YAAa,UAEjB,CACIpB,WAAW,EACXC,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,MACRC,OAAQ,MACRC,MAAOjD,eAAO8B,cACdoB,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,+EACPC,YAAa,WAKbpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,YACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CACb,CACIa,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAO2B,gBACduB,QAASjD,iBAAS4D,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IAEtB,IAEPE,MAAO,6DACPC,YAAa,eAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,QACNC,aAAc,SACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,QACRC,OAAQ,QACRC,MAAOjD,eAAO4B,eACdsB,QAASjD,iBAAS4D,QAClBT,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,8DACPC,YAAa,iBAEjB,CACIpB,WAAW,EACXC,YAAaH,EACbI,WAAW,EACXC,aAAa,EACbC,KAAM,OACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQX,EAAa,CAAC,CACdY,OAAQ,OACRC,OAAQ,OACRC,MAAOjD,eAAOuB,cACd2B,QAASjD,iBAAS6D,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,6DACPC,YAAa,qBAKfM,EAA4B3B,EAAM4B,MAAK,SAAAtB,OACnCuB,EAASvB,EAAKI,QAAQoB,KAAI,SAAAnB,UAAUA,EAAOE,gBAC1C,IAAIkB,IAAIF,GAAQG,OAASH,EAAOI,aAEvCN,QACM,IAAIO,cAAcP,EAA0BrB,8CAG/C,CACH6B,SAAUnC,EACVoC,UAAWpC,EAAMqC,QAAO,SAAA/B,UAAQA,EAAKL,aACrCqC,YAAatC,EAAMqC,QAAO,SAAA/B,UAAQA,EAAKJ,eACvCqC,UAAWvC,EAAMqC,QAAO,SAAA/B,UAAQA,EAAKH,aACrCqC,YAAaxC,EAAMqC,QAAO,SAAA/B,UAAQA,EAAKF,eACvCqC,UAAWzC,EAAMqC,QAAO,SAAA/B,UAAQA,EAAKH,WAAaG,EAAKF,eACvDsC,gBAAiB1C,EAAMqC,QAAO,SAAA/B,UAAQA,EAAKL,WAAaK,EAAKJ,iBCz6BxDyC,EAAgBC,WAAWC,MAAM,+BAEjCC,EAAsBF,SAAS,CACxCG,MAAYJ,EACZK,WAAYJ,aAIHK,EAAuBL,QAAQE,GAAqBI,IAAI,GAGxDC,EAAsBP,SAAS,CACxCQ,SAAUR,WACV3B,SAAU0B,ICZRU,EAAeT,SAAS,CAC1BU,QAASV,WACTvC,KAAMuC,WACNW,cAAeX,QACXA,SAAS,CACLG,MAAOH,WACPI,WAAYJ,cAGpBY,KAAMZ,QACNa,SAAUb,WAAWc,aAGnBC,EAA8Bf,QAAQA,WAAWgB,GAAGhB,aAAac,WAEjEG,EAAuBjB,SAAS,CAClCkB,WAAwBlB,WACxBmB,cAAwBnB,WACxBoB,iBAAwBpB,WACxBqB,oBAAwBrB,WACxBsB,iBAAwBtB,WACxBuB,UAAwBvB,WACxBwB,qBAAwBxB,QAAQS,GAChCgB,uBAAwBzB,QAAQe,KAGvBW,EAAmB,SAA0BrD,EAAkBsD,EAAgBf,UAAYZ,SAAS,CAC7GU,QAAsB,MAAbrC,EAAmB0B,EAAgBC,UAAU3B,GACtDZ,KAAMuC,UAAU2B,GAChBf,KAAMZ,SAASY,GACfD,cAAeN,KAGNuB,EAA6B,SAA0BvD,EAAkBsD,EAAgBf,UAAYZ,SAAS,CACvHU,QAAsB,MAAbrC,EAAmB0B,EAAgBC,UAAU3B,GACtDZ,KAAMuC,UAAU2B,GAChBf,KAAMZ,WAAWgB,GAAGhB,SAASY,IAC7BD,cAAeN,KAGNwB,EAAsB,SAA0BxD,EAAkBsD,EAAgBf,UAAYZ,SAAS,CAChHU,QAASV,UAAU,YACnBvC,KAAMuC,UAAU,QAChBY,KAAMZ,SAAS,CACXU,QAASX,EACT+B,IAAK9B,SAAS,CACV8B,IAAK9B,QAAQA,WAAWgB,GAAGhB,SAAS,CAChC+B,QAAS/B,WACTgC,SAAUhC,eAEdiC,cAAejC,WACfkC,KAAMlC,aAEVmC,MAAOnC,WACPoC,YAAa/B,EACbgC,UAAWrC,SAAS,CAChBsC,UAAWtC,WACXuC,YAAavC,WACbqC,UAAWrC,aAEfwC,IAAKvB,EAAqBwB,MACtBzC,SAAS,CACL0C,QAAS1C,QACL4B,EAA2BvD,EAAUsD,EAAQf,IAC/CvB,OAAO,QAIrBsB,cAAeN,KAGNsC,EAAgC,SAA0BtE,EAAkBsD,EAAgBf,OAC/FgC,EAAalB,EAAiBrD,EAAUsD,EAAQf,GAChDiC,EAAgBhB,EAAoBxD,EAAUsD,EAAQf,UAErDK,EAAqBwB,MAAMzC,SAAS,CACvC0C,QAAS1C,QAAQ4C,EAAW5B,GAAG6B,IAAgBxD,OAAO,0hCC7ElDyD,ECGCC,EAA2B,SAAC1E,EAAkBsD,EAAgBf,UAChEZ,SAAS,CACZgD,OAAa9C,EACb+C,WAAajD,QAAQA,YAAYX,OAAO,GACxC6D,YAAaP,EAA8BtE,EAAUsD,EAAQf,MAWxDuC,EAAqBJ,EClBL,cACG,eDUP,CACrBK,KAAMpD,WACNqD,cAAerD,aEXNsD,EAAgBtD,SAAS,CAClCuD,MAAcvD,WACdU,QAAcX,EACd9B,MAAc+B,WACdwD,QAAcxD,WACdyD,aAAczD,aAIL0D,EAA4B1D,SAAS,CAC9CtC,KAAMsC,WACNjC,OAAQiC,aACTyC,MAAMU,GAGIQ,EAA0B3D,SAAS,CAC5C4D,GAAS5D,WACTwD,QAASxD,WACTtC,KAASsC,WACTjC,OAASiC,WACT6D,KAAS7D,WAAWc,aCbXgD,EAAa9D,SAAS,CAC/B+D,gBAAoB/D,WACpBgE,MAAoBhE,WACpBiE,mBAAoBjE,WACpBkE,UAAoBlE,WACpBmE,OAAoBnE,WACpBoE,UAAoBpE,aAIXqE,EAAqBrE,SAAS,CACvC3B,SAAU2B,WACVhC,OAAUgC,WACVsE,KAAUtE,WACVuE,MAAUvE,QAAQ8D,KAITU,EAAsBxE,QAAQqE,GAG9BI,EAAmBzE,QAAQA,SAAS,CAC7C3B,SAAU2B,WACVhC,OAAUgC,WACVsE,KAAUtE,WACVuE,MAAUvE,QAAQ8D,OJlCVhB,EAAAA,eAAAA,oCAERA,kBKDQ4B,ELICC,EAAoB3E,SAAS,CACtC4D,GAAY5D,WACZ4E,KAAY5E,aAAa8C,cACzB+B,KAAY7E,WACZtC,KAAYsC,WACZjC,OAAYiC,aAIH8E,EAAoB9E,SAAS,CACtC4D,GAAgB5D,WAChBjC,OAAgBiC,WAChB+E,MAAgB/E,WAChBgF,YAAgBhF,WAChBwD,QAAgBxD,WAChB4E,KAAgB5E,aAAa8C,cAC7BmC,MAAgBjF,WAChBkF,cAAgBlF,WAChB6E,KAAgB7E,WAChBmF,UAAgBnF,WAAWc,WAAWsE,WACtCC,YAAgBrF,WAAWc,WAAWsE,aMzB7BE,EAAyBtF,SAAS,CAC3CuF,QAAgBvF,YAChBwF,eAAgBxF,WAChByF,SAAgBzF,WAAWc,aAIlB4E,EAAqB1F,SAAS,CACvC2F,WAAa3F,WACb4F,WAAa5F,WACb6F,YAAa7F,aAIJ8F,EAAyB9F,SAAS,CAC3CuF,QAAUvF,YACV+F,MAAU/F,WACVgG,IAAUhG,WACVyF,SAAUzF,WAAWc,aCdnBmF,EAAe,CACjBC,KAAMlG,WAAWmG,QAAO,SAACC,SLLA,gBKKQA,IAAuB,CACpDC,QAAYC,iCAEhBC,GAAIvG,ULRqB,eKSzBQ,SAAUR,WACV6D,KAAM7D,YAKGwG,EAAqBxG,SAAS,CACvCgD,OAAa9C,EACb+C,WAAajD,QAAQA,YAAYX,OAAO,GACxC6D,YAAaP,EAA8B,IAAK,WAAYsD,GAC5DQ,QAASzG,WACT0G,SAAU1G,WAAWc,aAIZ6F,EAA8B3G,SAAS,CAChDuF,QAASvF,YACT4D,GAAS5D,aAIA4G,EAA2B5G,SAAS,CAC7CyG,QAAczG,WACd6G,aAAc7G,WACd8G,SAAc9G,WACd9B,QAAc8B,aClCL+G,EAAiC/G,SAAS,CACnD4D,GAAmB5D,WACnBgH,OAAmBhH,WACnBiH,OAAmBjH,WACnB8G,SAAmB9G,WACnB9B,QAAmB8B,WACnBkH,QAAmBlH,WACnBmH,kBAAmBnH,WACnBoH,eAAmBpH,WAAWc,aAIrBuG,EAAqCrH,SAAS,CACvDsH,MAAkBtH,QAAQ+G,GAC1BQ,KAAkBvH,WAClBwH,SAAkBxH,WAClByH,iBAAkBzH,WAClB0H,WAAkB1H,WAClB2H,cAAkB3H,cHjBV0E,EAAAA,iBAAAA,sCAERA,oBACAA,cACAA,8BAGSkD,EAAkB5H,SAAS,CACpC6H,QAAiBtH,EACjBqD,GAAiB5D,WACjBzE,KAAiByE,WACjB/B,MAAiB+B,WACjB8H,gBAAiB9H,WACjBkF,cAAiBlF,aAKR+H,EAAoB/H,SAAS,CACtCgI,UAAehI,WACfkF,cAAelF,aAINiI,EAAajI,SAAS,CAC/BuD,MAAiBvD,WACjBkI,eAAiBlI,WACjB6H,QAAiBtH,EACjBqD,GAAiB5D,WACjBzE,KAAiByE,WACjB/B,MAAiB+B,WACjB8H,gBAAiB9H,WACjBgH,OAAiBhH,aAAa0E,gBAC9ByD,YAAiBnI,WACjBgI,UAAiBhI,WACjBkF,cAAiBlF,aIpCRoI,EAET,SAAoBtG,EAAalB,QAAbkB,gBADpBlB,KAAU,YACUkB,EACZlB,SACKA,KAAOA,IAKXyH,EAET,SAAoBnC,EAAuBK,EAAc3F,QAArCsF,iBAAuBK,eAD3C3F,KAAU,aACUsF,UAAuBK,EACnC3F,SACKA,KAAOA,IAKX0H,+BACTC,MAAoB,QACpBC,MAAoB,QACpBC,cAA4B,QAE5BC,SAAW,SAACC,EAAaC,UAAgBD,EAAE7G,MAAQ8G,EAAE9G,gCAErD+G,QAAA,SAASC,EAAWC,GACHC,KAAKC,SAASH,SAElBP,MAAMW,KAAK,IAAId,EAAMU,EAAGC,OAIrCI,SAAA,6CAAaZ,2BAAAA,kBACTA,EAAMa,SAAQ,SAAAC,SAAwB,iBAATA,EAAoBC,EAAKT,QAAQQ,GAAQC,EAAKT,QAAQQ,EAAK,GAAIA,EAAK,UAGrGJ,SAAA,SAAUH,cACAS,EAAQ,IAAInB,EAASU,UACpBE,KAAKT,MAAMvJ,MAAK,SAAAqK,UAAQG,EAAKd,SAASW,EAAME,SAGvDE,UAAA,6CAAcC,2BAAAA,yBACHA,EAAKxK,KAAI,SAAA4J,UAAKa,EAAKV,SAASH,SAGvCc,iBAAA,eACUrB,EAAQS,KAAKS,mCACflB,EAAMsB,MAAK,SAAAC,eAAWnL,IAANmL,WACV,IAAIxK,MAAM,0CAEbiJ,KAGXwB,QAAA,SAASC,EAAeC,EAAerJ,SACVoI,KAAKY,iBAAiBI,EAAOC,QACjDzB,MAAMU,KAAK,IAAIb,YAAyBzH,OAGjDsJ,SAAA,6CAAa1B,2BAAAA,kBACTA,EAAMY,SAAQ,SAAAe,UAAQC,EAAKL,cAALK,EAAgBD,SAO1CE,gBAAA,SAAiBhB,qBACNL,KAAKR,MAAM8B,QAAO,SAACC,EAAKJ,UACvBK,EAAK9B,SAASyB,EAAKjE,KAAMmD,IACzBkB,EAAIrB,KAAKiB,EAAK5D,IAEXgE,IACR,OAGPE,aAAA,SAAavE,EAAcK,cACjBmE,EAAyB,KAEJ1B,KAAKY,iBAAiB1D,EAAMK,GAAhDoE,OAAUC,OAEXC,EAAmB,CAACF,GACtBG,EAAO,IAAI3L,WAmBA,SAAT4L,EAAUC,MACRC,EAAKvC,SAASsC,EAAGJ,GACjBF,EAASxB,KAAKgC,EAAUL,YAG5BC,EAAO,IAAI3L,IAAI0L,EAAK3L,KAAI,SAAAiM,UAAKA,EAAErJ,SAtBrB,SAARsJ,EAASJ,MACPC,EAAKvC,SAASsC,EAAGJ,UACV,gBAGKK,EAAKZ,gBAAgBW,mBAAI,KAA9BK,cACFP,EAAKQ,IAAID,EAAEvJ,OACZgJ,EAAKS,IAAIF,EAAEvJ,MACNsJ,EAAMC,WACA,SAKZ,EASHD,CAAMJ,iBAIMC,EAAKZ,gBAAgBW,mBAAI,KAA9BK,UACFR,EAAKW,SAASH,KACfR,EAAK3B,KAAKmC,GACVN,EAAOM,GACPR,EAAKY,QAKjBV,CAAOJ,GAEAD,QC/GFgB,EAAmB,SAACC,EAAoBC,EAAoBC,EAAmBC,EAAsB1N,OAC1G2N,EAAQH,EACRI,EAAYL,EAAMM,aAAaL,GAC/BM,EAAaP,EAAMQ,KAAKN,GACxBO,EAAQJ,EAAUK,UAAUH,GAAYI,aAAaC,YAAGC,YACxDC,EAAOV,EAAMW,MAAMN,GACnBO,EAAM,IAAIJ,YAAGT,GAAcO,URdT,YQeTI,EAAKC,MAAMD,EAAKR,aAAaU,IAE9BL,aAAaC,YAAGC,YAAYI,WAAWxO,qDRjB7B,6EADM,qCADH,yFQ8FK,SAACuO,EAAaE,UAC1CA,GAAU,IACC,EAANF,EACEE,GAAU,IACN,IAANF,EACEE,GAAU,IACN,IAANF,EAEAA,qLA5BsB,SAACG,EAAwBC,EAAmBC,EAAwB5O,UACtF0O,EAAUb,aAAac,GAEhBV,UADNW,GACuBV,aAAaC,YAAGC,YAErCI,WAAWxO,GAAW6O,QAAQ7O,EAAWmO,YAAGC,uEAzDxB,SACpCU,EACAC,EACAC,EACAtB,EACA1N,EACAiP,MAEkB,IAAdA,SACO3B,EAAiB,IAAIa,YAAGW,GAAa,IAAIX,YAAGY,GAAc,IAAIZ,YAAGa,GAAYtB,EAAc1N,WAKhGkP,EAAMJ,EAAaC,EACrBI,EAAID,EACJE,EAAS,EAEPC,EAAI,SAAC1E,UACCA,GAAK,EAAI,GAAK,GAAK2E,KAAKC,MAAMD,KAAKE,IAAI7E,KAG/C8E,EAVmB,GAWhBN,GAAKC,GAAUK,KAAK,KACjBC,EAAQL,EAAGA,EAAGF,EAAIA,GAAmB,EAAbL,IAAmBK,GAAoB,EAAdJ,IACvDK,EAASD,EACTA,EAAIE,EAAG,EAAIF,GAAMF,EAAYC,EAAOQ,KAAY,EAAIT,EAAY,GAAKE,EAAI,EAAIO,QAG3ElF,EAAMsE,EAAaE,EAAaK,EAAEF,GAAiB,EAAZF,IAAmBE,EAE1DQ,EAAIN,EAAEA,EAAGF,EAAIA,GAAiC,GAA1BL,EAAaE,KAAmBG,GAAiB,EAAZF,IAE3DrC,EAAIuC,EAAGS,EAAS,MACpBH,EAtBuB,GAuBf7C,GAAKgD,GAAUH,KACrBG,EAASP,EAAEzC,GACXA,GAAK,IAAIuB,YAAGvB,EAAIA,EAAI+C,GAAG1B,UAAU,EAAIrB,EAAIpC,GAAGqE,QAAQ,EAAGV,YAAGC,eAGxDW,GAAenC,QACT,IAAI1L,MAAM,uCAId2O,EAAsB,IAAI1B,YAAGY,EAAcnC,GAC3C2B,EAAMsB,EAAoBhC,aAAaH,GAAcO,URlEnC,KQkEyDY,QAAQ,EAAGV,YAAGC,mBAC5EyB,EAAoBvB,MAAMC,GAE3BL,aAAaC,YAAGC,YAAYI,WAAWxO,qTRnExB,SAACH,SACiEjB,EAAgBiB,GAE3GiQ,EAAY,CACdC,cAAe,eACfC,WAPkB,IAQlBC,gBAAiB,0CACjBC,SAAoB,WAAVrQ,EACJ,6BACA,kCACNsQ,gBAA2B,WAAVtQ,EACX,+CACA,uDACNqI,cAjBqB,cAkBrBkI,aAAc,CACVC,aAAc,eACdC,eAAgB,cAChBC,WAAY,aACZC,YAAa,cACbC,aAAc,eACdC,cAAe,gBAEnBC,YAAa,CACTC,UAAW,aACXC,MAAO,UAEXC,kBAAmB,CACfC,WAAY,EACZC,aAAc,GAElBC,cAAe,CACXF,WAAY,EACZG,UAAW,EACXC,aAAc,GAElBC,mBAAoB,IAEpBC,cAAe,cAEfC,mBAAoB,UACpBC,kBAAmB,SACnBC,iBAAkB,QAClBC,iBA7CwB,eA+CxBC,eAA0B,WAAV7R,EACV,8BACA,kCAEN8R,sBAAiC,WAAV9R,EACjB,8BACA,kCAEN+R,iBAA4B,WAAV/R,EACZ,CAAC,8BAA+B,kCAAmC,gCAAiC,8BACpG,CAAC,mCAEPgS,SAAoB,WAAVhS,EACJ,mEACA,mEAENiS,MAAOjS,EAEPkS,aA7DI3Q,UA8DJ4Q,eA9De1Q,YA+Df2Q,oBA/D4BvQ,gBAgE5BwQ,aAhEuD3Q,UAiEvD4Q,eAjEkE3Q,YAkElE4Q,aAlE+E3Q,UAmE/E4Q,YAnE6ClR,SAqE7CmR,8CAAsC/S,EAAsBM,OAClD0S,EAAazC,EAAUkC,aAAapR,MAAK,SAAC2R,UAAqBA,EAAWhT,eAAiBA,QAC5FgT,OACCC,EAAeD,EAAW7S,QAAQkB,MAAK,SAAC4R,UAAyBA,EAAa3S,QAAUA,QACzF2S,cAGED,EACAC,KAIXC,8BAAsBnT,EAAcK,OAC1B4S,EAAazC,EAAUkC,aAAapR,MAAK,SAAC2R,UAAqBA,EAAWjT,OAASA,QACpFiT,OAECC,EAAeD,EAAW7S,QAAQkB,MAAK,SAAC4R,UAAyBA,EAAa7S,SAAWA,QAC1F6S,cAGED,EACAC,KAIXE,+BAAuBpT,EAAcQ,OAC3ByS,EAAazC,EAAUkC,aAAapR,MAAK,SAAC2R,UAAqBA,EAAWjT,OAASA,QACpFiT,OACCC,EAAeD,EAAW7S,QAAQkB,MAAK,SAAC4R,UAAyBA,EAAa1S,UAAYA,QAC3F0S,cAGED,EACAC,aAKR1C,0BQ9BmB,SAACtN,EAAcmE,EAAwBgI,GACnEhI,EAAQgM,OAAOhM,OAETiM,EAAuB,OAATpQ,EACdqQ,GAAY,WAAWC,KAAKtQ,GAC5BuQ,EAAuB,MAATvQ,GAAgBmE,EAAMqM,QAAQ,OAASrM,EAAM1F,OAAS,EACpEgS,EAAqBtM,IAAiC,IAAxBA,EAAMqM,QAAQ,MAAerM,EAAMuM,MAAM,KAAK,GAAGjS,OAAS0N,EAAKnP,uBAChFoT,GAAeO,QAAQN,GAAYE,GAAeE,wBCrF5C,SAACG,EAAqBC,UACtCD,EAAO7T,eAAiB8T,EAAO9T,cAC/B6T,EAAO5T,kBAAoB6T,EAAO7T,iBAClC4T,EAAO3T,iBAAmB4T,EAAO5T"}
|