@proton/wrap-constants 0.0.36 → 0.0.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,o,n,r=require("zod");(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",(n=exports.Networks||(exports.Networks={})).Mainnet="mainnet",n.Testnet="testnet",n.Ropsten="ropsten",n.ERC20="erc20",n.BEP20="bep20",n.XLM="xlm";var a=((t={})[exports.Chains.EthereumMainnet]=[exports.Chains.BinanceBEP20],t[exports.Chains.BinanceBEP20]=[exports.Chains.EthereumMainnet],t),i=((e={})[exports.Chains.BitcoinMainnet]=function(t){return"https://blockchain.com/btc/tx/"+t},e[exports.Chains.BitcoinTestnet]=function(t){return"https://blockstream.info/testnet/tx/"+t},e[exports.Chains.EthereumMainnet]=function(t){return"https://etherscan.io/tx/"+t},e[exports.Chains.EthereumRopsten]=function(t){return"https://ropsten.etherscan.io/tx/"+t},e[exports.Chains.LitecoinMainnet]=function(t){return"https://blockchair.com/litecoin/transaction/"+t},e[exports.Chains.LitecoinTestnet]=function(t){return"https://blockexplorer.one/litecoin/testnet/blockHash/"+t},e[exports.Chains.BitcoinCashMainnet]=function(t){return"https://blockchair.com/bitcoin-cash/transaction/"+t},e[exports.Chains.BitcoinCashTestnet]=function(t){return"https://blockexplorer.one/bitcoin-cash/testnet/blockHash/"+t},e[exports.Chains.StellarMainnet]=function(t){return"https://blockchair.com/stellar/transaction/"+t},e[exports.Chains.StellarTestnet]=function(t){return"https://testnet.steexp.com/tx/"+t},e[exports.Chains.ProtonMainnet]=function(t){return"https://proton.bloks.io/transaction/"+t},e[exports.Chains.ProtonTestnet]=function(t){return"https://proton-test.bloks.io/transaction/"+t},e[exports.Chains.PolkadotMainnet]=function(t){return"https://polkadot.subscan.io/extrinsic/"+t},e[exports.Chains.BinanceBEP2]=function(t){return"https://binance.mintscan.io/txs/"+t},e[exports.Chains.BinanceBEP20]=function(t){return"https://bscscan.com/tx/"+t},e[exports.Chains.EosMainnet]=function(t){return"https://bloks.io/transaction/"+t},e[exports.Chains.EosTestnet]=function(t){return"https://jungle.bloks.io/transaction/"+t},e[exports.Chains.HederaMainnet]=function(t){return"https://app.dragonglass.me/transactions/"+t},e[exports.Chains.HederaTestnet]=function(t){return"https://testnet.dragonglass.me/transactions/"+t},e[exports.Chains.DogeMainnet]=function(t){return"https://blockchair.com/dogecoin/transaction/"+t},e[exports.Chains.CardanoMainnet]=function(t){return"https://explorer.cardano.org/en/transaction?id="+t},e),s=function(t){var e="proton"===t,o="proton-test"===t,n=[{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:"/img/tokens/xpr.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}]:[],o?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xusdc.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:"/img/tokens/xmt.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}]:[],o?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xbtc.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}]:[],o?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xeth.png",coingeckoId:"ethereum"},{allowSwap:e,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}]:[],o?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xusdt.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:"/img/tokens/xtusd.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:"/img/tokens/xpax.png",coingeckoId:"usdp"},{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}]:[],o?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xpaxg.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}]:[],o?[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xuni.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:"/img/tokens/xinch.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:"/img/tokens/xlink.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}]:[],o?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xltc.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}]:[],o?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xbch.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}]:[],o?[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarTestnet,network:exports.Networks.Testnet,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"/img/tokens/xxlm.png",coingeckoId:"stellar"},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Sense",coin:"SENSE",xtokenSymbol:"XSENSE",xtokenPrecision:4,xtokenContract:"sense",wallets:[],image:"/img/tokens/xsense.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:"/img/tokens/xdot.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:"/img/tokens/xbnb.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}]:[],o?[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosTestnet,network:exports.Networks.Testnet,precision:4,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"/img/tokens/xeos.png",coingeckoId:"eos"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"HBAR",coin:"HBAR",xtokenSymbol:"XHBAR",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"HBAR",symbol:"HBAR",chain:exports.Chains.HederaTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xhbar.png",coingeckoId:"hedera-hashgraph"},{allowSwap:e,allowBridge:e,allowLend:!1,allowBorrow:!1,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:"/img/tokens/xdoge.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:"/img/tokens/xada.png",coingeckoId:"cardano"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Theta",coin:"THETA",xtokenSymbol:"XTHETA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xtheta.png",coingeckoId:"theta-token"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Filecoin",coin:"FIL",xtokenSymbol:"XFIL",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xfil.png",coingeckoId:"filecoin"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"TRON",coin:"TRX",xtokenSymbol:"XTRX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xtrx.png",coingeckoId:"tron"}],r=n.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:n,swapCoins:n.filter((function(t){return t.allowSwap})),bridgeCoins:n.filter((function(t){return t.allowBridge})),lendCoins:n.filter((function(t){return t.allowLend})),borrowCoins:n.filter((function(t){return t.allowBorrow})),loanCoins:n.filter((function(t){return t.allowLend||t.allowBorrow})),allEnabledCoins:n.filter((function(t){return t.allowSwap||t.allowBridge}))}},c=r.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/),l=r.object({actor:c,permission:r.string()}),p=r.array(l).min(1),w=r.object({quantity:r.string(),contract:c}),x=r.object({expiration:r.string(),ref_block_num:r.number(),ref_block_prefix:r.number(),max_net_usage_words:r.number(),max_cpu_usage_ms:r.number(),delay_sec:r.number(),context_free_actions:r.array(r.any()),transaction_extensions:r.array(r.any())}),h=function(t,e,o){return r.object({account:"*"===t?c:r.literal(t),name:r.literal(e),data:r.object(o),authorization:p})},m=function(t,e,o){return r.object({account:"*"===t?c:r.literal(t),name:r.literal(e),data:r.string().or(r.object(o)),authorization:p})},d=function(t,e,o){return r.object({account:r.literal("webauthn"),name:r.literal("exec"),data:r.object({account:c,key:r.object({key:r.array(r.string().or(r.object({modulus:r.string(),exponent:r.string()}))),user_presence:r.number(),rpid:r.string()}),nonce:r.number(),permissions:p,signature:r.object({auth_data:r.string(),client_json:r.string(),signature:r.string()}),trx:x.merge(r.object({actions:r.array(m(t,e,o)).length(1)}))}),authorization:p})},k=function(t,e,o){var n=h(t,e,o),a=d(t,e,o);return x.merge(r.object({actions:r.array(n.or(a)).length(1)}))};function g(){return(g=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t}).apply(this,arguments)}var C,u=function(t,e,o){return r.object({signer:l,signatures:r.array(r.string()).length(1),transaction:k(t,e,o)})},b=u("proton.wrap","generateauth",{time:r.string(),protonAccount:r.string()}),E=r.object({index:r.number(),account:c,chain:r.string(),address:r.string(),address_hash:r.string()}),B=r.object({coin:r.string(),wallet:r.string()}).merge(b),S=r.object({id:r.string(),address:r.string(),coin:r.string(),wallet:r.string(),memo:r.string().optional()}),P=r.object({counterCurrency:r.string(),price:r.number(),priceChangePercent:r.number(),marketCap:r.number(),volume:r.number(),timestamp:r.number()}),A=r.object({contract:r.string(),symbol:r.string(),rank:r.number(),rates:r.array(P)}),T=r.array(A);(C=exports.Type||(exports.Type={})).RECEIVE="receive",C.SEND="send";var M,D=r.object({id:r.string(),type:r.nativeEnum(exports.Type),hash:r.string(),coin:r.string(),wallet:r.string()}),y=r.object({id:r.string(),wallet:r.string(),value:r.number(),valueString:r.string(),address:r.string(),type:r.nativeEnum(exports.Type),state:r.string(),confirmations:r.number(),hash:r.string(),blockHash:r.string().optional().nullable(),blockHeight:r.number().optional().nullable()}),f=r.object({success:r.boolean(),transaction_id:r.string(),errormsg:r.string().optional()}),N=r.object({baseAmount:r.number(),baseSymbol:r.string(),quoteSymbol:r.string()}),R=r.object({success:r.boolean(),token:r.string(),qty:r.number(),errormsg:r.string().optional()}),I={from:r.string().refine((function(t){return"proton.wrap"!==t}),{message:"proton.wrap must be receiver"}),to:r.literal("proton.wrap"),quantity:r.string(),memo:r.string()},_=r.object({signer:l,signatures:r.array(r.string()).length(1),transaction:k("*","transfer",I),quoteId:r.string(),provider:r.string().optional()}),L=r.object({success:r.boolean(),id:r.string()}),O=r.object({quoteId:r.string(),estimatedFee:r.string(),currency:r.string(),network:r.string()}),W=r.object({id:r.string(),status:r.string(),amount:r.string(),currency:r.string(),network:r.string(),created:r.string(),withdrawalAddress:r.string(),withdrawalHash:r.string().optional()}),X=r.object({swaps:r.array(W),page:r.number(),pageSize:r.number(),numberOfElements:r.number(),totalPages:r.number(),totalElements:r.number()});(M=exports.Status||(exports.Status={})).PENDING="pending",M.SUCCESS="success",M.FAIL="fail",M.PROCESSING="processing";var H=r.object({balance:w,id:r.string(),txid:r.string(),chain:r.string(),deposit_address:r.string(),confirmations:r.number()}),v=r.object({wrap_hash:r.string(),confirmations:r.number()}),F=r.object({index:r.number(),proton_account:r.string(),balance:w,id:r.string(),txid:r.string(),chain:r.string(),deposit_address:r.string(),status:r.nativeEnum(exports.Status),finish_txid:r.string(),wrap_hash:r.string(),confirmations:r.number()});exports.ExtendedAssetParser=w,exports.WRAP_AUTH_ACTION="generateauth",exports.WRAP_CONTRACT="proton.wrap",exports.accountParser=c,exports.addressParser=E,exports.authorizationParser=l,exports.authorizationsParser=p,exports.baseActionParser=h,exports.baseActionSerializedParser=m,exports.createAbstractAuthParser=u,exports.depositBodyParser=D,exports.exchangeRateParser=A,exports.exchangeRatesParser=T,exports.explorerLinkByChain=i,exports.generateAddressBodyParser=B,exports.generateAddressResponse=S,exports.generateAuthParser=b,exports.initializeCoins=s,exports.initializeConstants=function(t){var e=s(t),o={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 n=o.BRIDGE_COINS.find((function(e){return e.xtokenSymbol===t}));if(n){var r=n.wallets.find((function(t){return t.chain===e}));if(r)return g({},n,r)}},findBridgeCoinWallet:function(t,e){var n=o.BRIDGE_COINS.find((function(e){return e.coin===t}));if(n){var r=n.wallets.find((function(t){return t.wallet===e}));if(r)return g({},n,r)}},findBridgeCoinNetwork:function(t,e){var n=o.BRIDGE_COINS.find((function(e){return e.coin===t}));if(n){var r=n.wallets.find((function(t){return t.network===e}));if(r)return g({},n,r)}}};return o},exports.isSameToken=function(t,e){return t.xtokenSymbol===e.xtokenSymbol&&t.xtokenPrecision===e.xtokenPrecision&&t.xtokenContract===e.xtokenContract},exports.otcOrderResponseParser=f,exports.otcQuoteBodyParser=N,exports.otcQuoteResponseParser=R,exports.rateParser=P,exports.similarChains=a,exports.singleActionTransactionParser=k,exports.transactionParser=y,exports.webauthActionParser=d,exports.withdrawBodyParser=_,exports.withdrawHistoryMetalResponseParser=X,exports.withdrawHistoryMetalSwapParser=W,exports.withdrawMetalResponseParser=L,exports.withdrawalFeeQuoteParser=O,exports.wrapParser=F,exports.wrapSetConfParser=v,exports.wrapStartParser=H;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,o,n,r=require("zod");(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",(n=exports.Networks||(exports.Networks={})).Mainnet="mainnet",n.Testnet="testnet",n.Ropsten="ropsten",n.ERC20="erc20",n.BEP20="bep20",n.XLM="xlm";var a=((t={})[exports.Chains.EthereumMainnet]=[exports.Chains.BinanceBEP20],t[exports.Chains.BinanceBEP20]=[exports.Chains.EthereumMainnet],t),i=((e={})[exports.Chains.BitcoinMainnet]=function(t){return"https://blockchain.com/btc/tx/"+t},e[exports.Chains.BitcoinTestnet]=function(t){return"https://blockstream.info/testnet/tx/"+t},e[exports.Chains.EthereumMainnet]=function(t){return"https://etherscan.io/tx/"+t},e[exports.Chains.EthereumRopsten]=function(t){return"https://ropsten.etherscan.io/tx/"+t},e[exports.Chains.LitecoinMainnet]=function(t){return"https://blockchair.com/litecoin/transaction/"+t},e[exports.Chains.LitecoinTestnet]=function(t){return"https://blockexplorer.one/litecoin/testnet/blockHash/"+t},e[exports.Chains.BitcoinCashMainnet]=function(t){return"https://blockchair.com/bitcoin-cash/transaction/"+t},e[exports.Chains.BitcoinCashTestnet]=function(t){return"https://blockexplorer.one/bitcoin-cash/testnet/blockHash/"+t},e[exports.Chains.StellarMainnet]=function(t){return"https://blockchair.com/stellar/transaction/"+t},e[exports.Chains.StellarTestnet]=function(t){return"https://testnet.steexp.com/tx/"+t},e[exports.Chains.ProtonMainnet]=function(t){return"https://proton.bloks.io/transaction/"+t},e[exports.Chains.ProtonTestnet]=function(t){return"https://proton-test.bloks.io/transaction/"+t},e[exports.Chains.PolkadotMainnet]=function(t){return"https://polkadot.subscan.io/extrinsic/"+t},e[exports.Chains.BinanceBEP2]=function(t){return"https://binance.mintscan.io/txs/"+t},e[exports.Chains.BinanceBEP20]=function(t){return"https://bscscan.com/tx/"+t},e[exports.Chains.EosMainnet]=function(t){return"https://bloks.io/transaction/"+t},e[exports.Chains.EosTestnet]=function(t){return"https://jungle.bloks.io/transaction/"+t},e[exports.Chains.HederaMainnet]=function(t){return"https://app.dragonglass.me/transactions/"+t},e[exports.Chains.HederaTestnet]=function(t){return"https://testnet.dragonglass.me/transactions/"+t},e[exports.Chains.DogeMainnet]=function(t){return"https://blockchair.com/dogecoin/transaction/"+t},e[exports.Chains.CardanoMainnet]=function(t){return"https://explorer.cardano.org/en/transaction?id="+t},e),s=function(t){var e="proton"===t,o="proton-test"===t,n=[{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:"/img/tokens/xpr.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}]:[],o?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xusdc.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:"/img/tokens/xmt.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}]:[],o?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xbtc.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}]:[],o?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xeth.png",coingeckoId:"ethereum"},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!0,name:"Loan",coin:"LOAN",xtokenSymbol:"LOAN",xtokenPrecision:4,xtokenContract:"loan.token",wallets:[],image:"/img/tokens/loan.svg",coingeckoId:""},{allowSwap:e,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}]:[],o?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xusdt.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:"/img/tokens/xtusd.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:"/img/tokens/xpax.png",coingeckoId:"usdp"},{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}]:[],o?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xpaxg.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}]:[],o?[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xuni.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:"/img/tokens/xinch.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:"/img/tokens/xlink.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}]:[],o?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xltc.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}]:[],o?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xbch.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}]:[],o?[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarTestnet,network:exports.Networks.Testnet,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"/img/tokens/xxlm.png",coingeckoId:"stellar"},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Sense",coin:"SENSE",xtokenSymbol:"XSENSE",xtokenPrecision:4,xtokenContract:"sense",wallets:[],image:"/img/tokens/xsense.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:"/img/tokens/xdot.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:"/img/tokens/xbnb.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}]:[],o?[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosTestnet,network:exports.Networks.Testnet,precision:4,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"/img/tokens/xeos.png",coingeckoId:"eos"},{allowSwap:e,allowBridge:e,allowLend:!0,allowBorrow:!1,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:"/img/tokens/xdoge.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:"/img/tokens/xada.png",coingeckoId:"cardano"},{allowSwap:!1,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"HBAR",coin:"HBAR",xtokenSymbol:"XHBAR",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(o?[{wallet:"HBAR",symbol:"HBAR",chain:exports.Chains.HederaTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xhbar.png",coingeckoId:"hedera-hashgraph"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Theta",coin:"THETA",xtokenSymbol:"XTHETA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xtheta.png",coingeckoId:"theta-token"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Filecoin",coin:"FIL",xtokenSymbol:"XFIL",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xfil.png",coingeckoId:"filecoin"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"TRON",coin:"TRX",xtokenSymbol:"XTRX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xtrx.png",coingeckoId:"tron"}],r=n.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:n,swapCoins:n.filter((function(t){return t.allowSwap})),bridgeCoins:n.filter((function(t){return t.allowBridge})),lendCoins:n.filter((function(t){return t.allowLend})),borrowCoins:n.filter((function(t){return t.allowBorrow})),loanCoins:n.filter((function(t){return t.allowLend||t.allowBorrow})),allEnabledCoins:n.filter((function(t){return t.allowSwap||t.allowBridge}))}},c=r.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/),l=r.object({actor:c,permission:r.string()}),p=r.array(l).min(1),w=r.object({quantity:r.string(),contract:c}),x=r.object({expiration:r.string(),ref_block_num:r.number(),ref_block_prefix:r.number(),max_net_usage_words:r.number(),max_cpu_usage_ms:r.number(),delay_sec:r.number(),context_free_actions:r.array(r.any()),transaction_extensions:r.array(r.any())}),h=function(t,e,o){return r.object({account:"*"===t?c:r.literal(t),name:r.literal(e),data:r.object(o),authorization:p})},m=function(t,e,o){return r.object({account:"*"===t?c:r.literal(t),name:r.literal(e),data:r.string().or(r.object(o)),authorization:p})},d=function(t,e,o){return r.object({account:r.literal("webauthn"),name:r.literal("exec"),data:r.object({account:c,key:r.object({key:r.array(r.string().or(r.object({modulus:r.string(),exponent:r.string()}))),user_presence:r.number(),rpid:r.string()}),nonce:r.number(),permissions:p,signature:r.object({auth_data:r.string(),client_json:r.string(),signature:r.string()}),trx:x.merge(r.object({actions:r.array(m(t,e,o)).length(1)}))}),authorization:p})},k=function(t,e,o){var n=h(t,e,o),a=d(t,e,o);return x.merge(r.object({actions:r.array(n.or(a)).length(1)}))};function g(){return(g=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var o=arguments[e];for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(t[n]=o[n])}return t}).apply(this,arguments)}var C,u=function(t,e,o){return r.object({signer:l,signatures:r.array(r.string()).length(1),transaction:k(t,e,o)})},b=u("proton.wrap","generateauth",{time:r.string(),protonAccount:r.string()}),E=r.object({index:r.number(),account:c,chain:r.string(),address:r.string(),address_hash:r.string()}),B=r.object({coin:r.string(),wallet:r.string()}).merge(b),S=r.object({id:r.string(),address:r.string(),coin:r.string(),wallet:r.string(),memo:r.string().optional()}),P=r.object({counterCurrency:r.string(),price:r.number(),priceChangePercent:r.number(),marketCap:r.number(),volume:r.number(),timestamp:r.number()}),A=r.object({contract:r.string(),symbol:r.string(),rank:r.number(),rates:r.array(P)}),T=r.array(A);(C=exports.Type||(exports.Type={})).RECEIVE="receive",C.SEND="send";var M,D=r.object({id:r.string(),type:r.nativeEnum(exports.Type),hash:r.string(),coin:r.string(),wallet:r.string()}),y=r.object({id:r.string(),wallet:r.string(),value:r.number(),valueString:r.string(),address:r.string(),type:r.nativeEnum(exports.Type),state:r.string(),confirmations:r.number(),hash:r.string(),blockHash:r.string().optional().nullable(),blockHeight:r.number().optional().nullable()}),f=r.object({success:r.boolean(),transaction_id:r.string(),errormsg:r.string().optional()}),N=r.object({baseAmount:r.number(),baseSymbol:r.string(),quoteSymbol:r.string()}),R=r.object({success:r.boolean(),token:r.string(),qty:r.number(),errormsg:r.string().optional()}),I={from:r.string().refine((function(t){return"proton.wrap"!==t}),{message:"proton.wrap must be receiver"}),to:r.literal("proton.wrap"),quantity:r.string(),memo:r.string()},L=r.object({signer:l,signatures:r.array(r.string()).length(1),transaction:k("*","transfer",I),quoteId:r.string(),provider:r.string().optional()}),_=r.object({success:r.boolean(),id:r.string()}),O=r.object({quoteId:r.string(),estimatedFee:r.string(),currency:r.string(),network:r.string()}),W=r.object({id:r.string(),status:r.string(),amount:r.string(),currency:r.string(),network:r.string(),created:r.string(),withdrawalAddress:r.string(),withdrawalHash:r.string().optional()}),X=r.object({swaps:r.array(W),page:r.number(),pageSize:r.number(),numberOfElements:r.number(),totalPages:r.number(),totalElements:r.number()});(M=exports.Status||(exports.Status={})).PENDING="pending",M.SUCCESS="success",M.FAIL="fail",M.PROCESSING="processing";var H=r.object({balance:w,id:r.string(),txid:r.string(),chain:r.string(),deposit_address:r.string(),confirmations:r.number()}),v=r.object({wrap_hash:r.string(),confirmations:r.number()}),F=r.object({index:r.number(),proton_account:r.string(),balance:w,id:r.string(),txid:r.string(),chain:r.string(),deposit_address:r.string(),status:r.nativeEnum(exports.Status),finish_txid:r.string(),wrap_hash:r.string(),confirmations:r.number()});exports.ExtendedAssetParser=w,exports.WRAP_AUTH_ACTION="generateauth",exports.WRAP_CONTRACT="proton.wrap",exports.accountParser=c,exports.addressParser=E,exports.authorizationParser=l,exports.authorizationsParser=p,exports.baseActionParser=h,exports.baseActionSerializedParser=m,exports.createAbstractAuthParser=u,exports.depositBodyParser=D,exports.exchangeRateParser=A,exports.exchangeRatesParser=T,exports.explorerLinkByChain=i,exports.generateAddressBodyParser=B,exports.generateAddressResponse=S,exports.generateAuthParser=b,exports.initializeCoins=s,exports.initializeConstants=function(t){var e=s(t),o={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 n=o.BRIDGE_COINS.find((function(e){return e.xtokenSymbol===t}));if(n){var r=n.wallets.find((function(t){return t.chain===e}));if(r)return g({},n,r)}},findBridgeCoinWallet:function(t,e){var n=o.BRIDGE_COINS.find((function(e){return e.coin===t}));if(n){var r=n.wallets.find((function(t){return t.wallet===e}));if(r)return g({},n,r)}},findBridgeCoinNetwork:function(t,e){var n=o.BRIDGE_COINS.find((function(e){return e.coin===t}));if(n){var r=n.wallets.find((function(t){return t.network===e}));if(r)return g({},n,r)}}};return o},exports.isSameToken=function(t,e){return t.xtokenSymbol===e.xtokenSymbol&&t.xtokenPrecision===e.xtokenPrecision&&t.xtokenContract===e.xtokenContract},exports.otcOrderResponseParser=f,exports.otcQuoteBodyParser=N,exports.otcQuoteResponseParser=R,exports.rateParser=P,exports.similarChains=a,exports.singleActionTransactionParser=k,exports.transactionParser=y,exports.webauthActionParser=d,exports.withdrawBodyParser=L,exports.withdrawHistoryMetalResponseParser=X,exports.withdrawHistoryMetalSwapParser=W,exports.withdrawMetalResponseParser=_,exports.withdrawalFeeQuoteParser=O,exports.wrapParser=F,exports.wrapSetConfParser=v,exports.wrapStartParser=H;
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}\n\nexport enum Networks {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Ropsten = 'ropsten',\n ERC20 = 'erc20',\n BEP20 = 'bep20',\n XLM = 'xlm',\n}\n\nexport const similarChains = {\n [Chains.EthereumMainnet]: [Chains.BinanceBEP20],\n [Chains.BinanceBEP20]: [Chains.EthereumMainnet],\n}\n\nexport interface Coin {\n allowSwap : boolean;\n allowBridge : boolean;\n allowLend : boolean;\n allowBorrow : boolean;\n name : string;\n coin : string;\n xtokenSymbol : string;\n xtokenPrecision: number;\n xtokenContract : string;\n wallets : Wallet[];\n image : string;\n coingeckoId : string;\n balance? : Asset;\n}\n \nexport interface Wallet {\n wallet : string;\n symbol : string;\n chain : Chains;\n network : Networks;\n precision : number;\n contract : string | undefined;\n hasWithdrawMemo: boolean;\n}\n\nexport type CoinWallet = Exclude<Coin, 'wallets'> & Wallet\n\nexport const explorerLinkByChain = {\n [Chains.BitcoinMainnet] : (txid: string) => `https://blockchain.com/btc/tx/${txid}`,\n [Chains.BitcoinTestnet] : (txid: string) => `https://blockstream.info/testnet/tx/${txid}`,\n [Chains.EthereumMainnet] : (txid: string) => `https://etherscan.io/tx/${txid}`,\n [Chains.EthereumRopsten] : (txid: string) => `https://ropsten.etherscan.io/tx/${txid}`,\n [Chains.LitecoinMainnet] : (txid: string) => `https://blockchair.com/litecoin/transaction/${txid}`,\n [Chains.LitecoinTestnet] : (txid: string) => `https://blockexplorer.one/litecoin/testnet/blockHash/${txid}`,\n [Chains.BitcoinCashMainnet]: (txid: string) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,\n [Chains.BitcoinCashTestnet]: (txid: string) => `https://blockexplorer.one/bitcoin-cash/testnet/blockHash/${txid}`,\n [Chains.StellarMainnet] : (txid: string) => `https://blockchair.com/stellar/transaction/${txid}`,\n [Chains.StellarTestnet] : (txid: string) => `https://testnet.steexp.com/tx/${txid}`,\n [Chains.ProtonMainnet] : (txid: string) => `https://proton.bloks.io/transaction/${txid}`,\n [Chains.ProtonTestnet] : (txid: string) => `https://proton-test.bloks.io/transaction/${txid}`,\n [Chains.PolkadotMainnet] : (txid: string) => `https://polkadot.subscan.io/extrinsic/${txid}`,\n [Chains.BinanceBEP2] : (txid: string) => `https://binance.mintscan.io/txs/${txid}`,\n [Chains.BinanceBEP20] : (txid: string) => `https://bscscan.com/tx/${txid}`,\n [Chains.EosMainnet] : (txid: string) => `https://bloks.io/transaction/${txid}`,\n [Chains.EosTestnet] : (txid: string) => `https://jungle.bloks.io/transaction/${txid}`,\n [Chains.HederaMainnet] : (txid: string) => `https://app.dragonglass.me/transactions/${txid}`,\n [Chains.HederaTestnet] : (txid: string) => `https://testnet.dragonglass.me/transactions/${txid}`,\n [Chains.DogeMainnet] : (txid: string) => `https://blockchair.com/dogecoin/transaction/${txid}`,\n [Chains.CardanoMainnet] : (txid: string) => `https://explorer.cardano.org/en/transaction?id=${txid}`,\n}\n\nexport const initializeCoins = (protonChain: string): {\n allCoins : Coin[];\n swapCoins : Coin[];\n bridgeCoins : Coin[];\n lendCoins : Coin[];\n borrowCoins : Coin[];\n loanCoins : Coin[];\n allEnabledCoins: Coin[];\n} => {\n const IS_MAINNET = protonChain === 'proton'\n const IS_TESTNET = protonChain === 'proton-test'\n \n const coins: Coin[] = [\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Proton',\n coin: 'XPR',\n xtokenSymbol: 'XPR',\n xtokenPrecision: 4,\n xtokenContract: 'eosio.token',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'XPR-ERC20',\n symbol: 'XPR',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 4,\n contract: '0xD7EFB00D12C2C13131FD319336FDF952525DA2AF',\n hasWithdrawMemo: false\n },\n {\n wallet: 'XPR-BEP20',\n symbol: 'XPR',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 4,\n contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',\n hasWithdrawMemo: false\n }\n ]: []),\n ],\n image: '/img/tokens/xpr.png',\n coingeckoId: 'proton'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'USD Coin',\n coin: 'USDC',\n xtokenSymbol: 'XUSDC',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-BEP20',\n symbol: 'USDC',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-XLM',\n symbol: 'USDC',\n chain: Chains.StellarMainnet,\n network: Networks.XLM,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n },\n ]: []),\n ...(IS_TESTNET ? [ {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdc.png',\n coingeckoId: 'usd-coin'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Metal',\n coin: 'MTL',\n xtokenSymbol: 'XMT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MTL',\n symbol: 'MTL',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 8,\n contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xmt.png',\n coingeckoId: 'metal'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Bitcoin',\n coin: 'BTC',\n xtokenSymbol: 'XBTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbtc.png',\n coingeckoId: 'bitcoin'\n },\n {\n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Ethereum',\n coin: 'ETH',\n xtokenSymbol: 'XETH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xeth.png',\n coingeckoId: 'ethereum'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Tether',\n coin: 'USDT',\n xtokenSymbol: 'XUSDT',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdt.png',\n coingeckoId: 'tether'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TrueUSD',\n coin: 'TUSD',\n xtokenSymbol: 'XTUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'TUSD',\n symbol: 'TUSD',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x0000000000085D4780B73119B644AE5ECD22B376',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xtusd.png',\n coingeckoId: 'true-usd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Standard',\n coin: 'PAX',\n xtokenSymbol: 'XPAX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAX',\n symbol: 'PAX',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpax.png',\n coingeckoId: 'usdp'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Gold',\n coin: 'PAXG',\n xtokenSymbol: 'XPAXG',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpaxg.png',\n coingeckoId: 'pax-gold'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Uniswap',\n coin: 'UNI',\n xtokenSymbol: 'XUNI',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xuni.png',\n coingeckoId: 'uniswap'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: '1INCH',\n coin: '1INCH',\n xtokenSymbol: 'XINCH',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: '1INCH',\n symbol: '1INCH',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x111111111117DC0AA78B770FA6A738034120C302',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xinch.png',\n coingeckoId: '1inch'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Chainlink',\n coin: 'LINK',\n xtokenSymbol: 'XLINK',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LINK',\n symbol: 'LINK',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xlink.png',\n coingeckoId: 'chainlink'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Litecoin',\n coin: 'LTC',\n xtokenSymbol: 'XLTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xltc.png',\n coingeckoId: 'litecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Bitcoin Cash',\n coin: 'BCH',\n xtokenSymbol: 'XBCH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbch.png',\n coingeckoId: 'bitcoin-cash'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Stellar',\n coin: 'XLM',\n xtokenSymbol: 'XXLM',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarMainnet,\n network: Networks.Mainnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarTestnet,\n network: Networks.Testnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xxlm.png',\n coingeckoId: 'stellar'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Sense',\n coin: 'SENSE',\n xtokenSymbol: 'XSENSE',\n xtokenPrecision: 4,\n xtokenContract: 'sense',\n wallets: [],\n image: '/img/tokens/xsense.png',\n coingeckoId: 'sense'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polkadot',\n coin: 'DOT',\n xtokenSymbol: 'XDOT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOT',\n symbol: 'DOT',\n chain: Chains.PolkadotMainnet,\n network: Networks.Mainnet,\n precision: 10,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xdot.png',\n coingeckoId: 'polkadot'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Binance Coin',\n coin: 'BNB',\n xtokenSymbol: 'XBNB',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BNB',\n symbol: 'BNB',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbnb.png',\n coingeckoId: 'binancecoin'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'EOS',\n coin: 'EOS',\n xtokenSymbol: 'XEOS',\n xtokenPrecision: 4,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosMainnet,\n network: Networks.Mainnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosTestnet,\n network: Networks.Testnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xeos.png',\n coingeckoId: 'eos'\n },\n { \n allowSwap: false,\n allowBridge: IS_TESTNET,\n allowLend: false,\n allowBorrow: false,\n name: 'HBAR',\n coin: 'HBAR',\n xtokenSymbol: 'XHBAR',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_TESTNET ? [{\n wallet: 'HBAR',\n symbol: 'HBAR',\n chain: Chains.HederaTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xhbar.png',\n coingeckoId: 'hedera-hashgraph'\n },\n\n // Synthethic\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Dogecoin',\n coin: 'DOGE',\n xtokenSymbol: 'XDOGE',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOGE',\n symbol: 'DOGE',\n chain: Chains.DogeMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ],\n image: '/img/tokens/xdoge.png',\n coingeckoId: 'dogecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Cardano',\n coin: 'ADA',\n xtokenSymbol: 'XADA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ADA',\n symbol: 'ADA',\n chain: Chains.CardanoMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xada.png',\n coingeckoId: 'cardano'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Theta',\n coin: 'THETA',\n xtokenSymbol: 'XTHETA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtheta.png',\n coingeckoId: 'theta-token'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Filecoin',\n coin: 'FIL',\n xtokenSymbol: 'XFIL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xfil.png',\n coingeckoId: 'filecoin'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'TRON',\n coin: 'TRX',\n xtokenSymbol: 'XTRX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtrx.png',\n coingeckoId: 'tron'\n },\n // End synthetic\n ]\n\n // Validation\n const walletWithDuplicateChains = coins.find(coin => {\n const chains = coin.wallets.map(wallet => wallet.chain)\n return new Set(chains).size !== chains.length\n })\n if (walletWithDuplicateChains) {\n throw new Error(`Coin ${walletWithDuplicateChains.coin} has duplicate chains in wallet`)\n }\n\n return {\n allCoins: coins,\n swapCoins: coins.filter(coin => coin.allowSwap),\n bridgeCoins: coins.filter(coin => coin.allowBridge),\n lendCoins: coins.filter(coin => coin.allowLend),\n borrowCoins: coins.filter(coin => coin.allowBorrow),\n loanCoins: coins.filter(coin => coin.allowLend || coin.allowBorrow),\n allEnabledCoins: coins.filter(coin => coin.allowSwap || coin.allowBridge)\n }\n}","import * as z from 'zod'\n\nexport const accountParser = z.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/)\n\nexport const authorizationParser = z.object({\n actor : accountParser,\n permission: z.string()\n})\nexport type Authorization = z.infer<typeof authorizationParser>\n\nexport const authorizationsParser = z.array(authorizationParser).min(1)\nexport type Authorizations = z.infer<typeof authorizationsParser>\n\nexport const ExtendedAssetParser = z.object({\n quantity: z.string(),\n contract: accountParser\n})\nexport type ExtendedAsset = z.infer<typeof ExtendedAssetParser>","import * as z from 'zod'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\nimport { accountParser, authorizationsParser } from './base'\n\nconst rawTransactionParser = z.object({\n expiration : z.string(),\n ref_block_num : z.number(),\n ref_block_prefix : z.number(),\n max_net_usage_words : z.number(),\n max_cpu_usage_ms : z.number(),\n delay_sec : z.number(),\n context_free_actions : z.array(z.any()),\n transaction_extensions: z.array(z.any())\n})\n\nexport const baseActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.object(data),\n authorization: authorizationsParser\n})\n\nexport const baseActionSerializedParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.string().or(z.object(data)),\n authorization: authorizationsParser\n})\n\nexport const webauthActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: z.literal('webauthn'),\n name: z.literal('exec'),\n data: z.object({\n account: accountParser,\n key: z.object({\n key: z.array(z.string().or(z.object({\n modulus: z.string(),\n exponent: z.string()\n }))),\n user_presence: z.number(),\n rpid: z.string()\n }),\n nonce: z.number(),\n permissions: authorizationsParser,\n signature: z.object({\n auth_data: z.string(),\n client_json: z.string(),\n signature: z.string()\n }),\n trx: rawTransactionParser.merge(\n z.object({\n actions: z.array(\n baseActionSerializedParser(contract, action, data)\n ).length(1)\n })\n )\n }),\n authorization: authorizationsParser\n})\n\nexport const singleActionTransactionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => {\n const baseAction = baseActionParser(contract, action, data)\n const webauthAction = webauthActionParser(contract, action, data)\n\n return rawTransactionParser.merge(z.object({\n actions: z.array(baseAction.or(webauthAction)).length(1)\n }))\n}","import * as z from 'zod'\n\nexport enum Type {\n RECEIVE = 'receive',\n SEND = 'send'\n}\n\nexport const depositBodyParser = z.object({\n id : z.string(), // \"0x000010203121388fac991\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n hash : z.string(), // \"0x000010203121388fac991\"\n coin : z.string(), // \"ETH\" or \"XPR\"\n wallet : z.string(), // \"ETH-ROPSTEN\" or \"XPR-MAINNET\"\n})\nexport type DepositBody = z.infer<typeof depositBodyParser>\n\nexport const transactionParser = z.object({\n id : z.string(), // \"2629304740076324677\"\n wallet : z.string(), // \"ETH\"\n value : z.number(), // 10000000000000000\n valueString : z.string(), // \"10000000000000000\"\n address : z.string(), // \"0x0000\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n state : z.string(), // \"confirmed\"\n confirmations : z.number(), // 1\n hash : z.string(), // \"b4781422be95fee8fbbf720e3e0fa9705ae834474ef25f5724cdd0f5d23211ed\"\n blockHash : z.string().optional().nullable(), // \"000000000000000000089b270eb99f75107d6a9cde37ec944cb80a2998df7b43\"\n blockHeight : z.number().optional().nullable(), // 643159\n})\nexport type Transaction = z.infer<typeof transactionParser>","import * as z from 'zod'\nimport { baseActionParser, singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT, WRAP_AUTH_ACTION } from '../constants'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: ZodRawShape) => {\n return z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser(contract, action, data)\n })\n}\n\nconst generateAuthData = {\n time: z.string(),\n protonAccount: z.string()\n}\nconst generateAuthActionsBaseParser = baseActionParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuthBaseAction = z.infer<typeof generateAuthActionsBaseParser>\n\nexport const generateAuthParser = createAbstractAuthParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuth = z.infer<typeof generateAuthParser>","import { Coin, CoinWallet, initializeCoins, Wallet } from './coins'\n\nexport const WRAP_CONTRACT = 'proton.wrap'\nexport const WRAP_AUTH_ACTION = 'generateauth'\n\nexport const initializeConstants = (chain: string) => {\n const { swapCoins, bridgeCoins, allEnabledCoins, allCoins, lendCoins, borrowCoins, loanCoins } = initializeCoins(chain)\n\n const constants = {\n SWAP_CONTRACT: 'proton.swaps',\n FEE_FACTOR: 10000,\n GOOGLE_MAPS_KEY: 'AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs',\n SWAP_URL: chain === 'proton'\n ? 'https://otc.protonswap.com'\n : 'https://otc-test.protonswap.com',\n WRAP_SERVER_URL: chain === 'proton'\n ? 'https://www.api.bloks.io/proton-wrap-public2'\n : 'https://www.api.bloks.io/proton-wrap-testnet-public2',\n WRAP_CONTRACT,\n WRAP_ACTIONS: {\n SAVE_ADDRESS: 'saveaddress2',\n DELETE_ADDRESS: 'deladdress2',\n WRAP_START: 'wrapstart2',\n WRAP_FINISH: 'wrapfinish2',\n WRAP_PROCESS: 'wrapprocess2',\n WRAP_SET_CONF: 'wrapsetconf2',\n },\n WRAP_TABLES: {\n ADDRESSES: 'addresses2',\n WRAPS: 'wraps2'\n },\n ADDRESSES_INDEXES: {\n BY_ACCOUNT: 2,\n BY_ADDR_HASH: 3\n },\n WRAPS_INDEXES: {\n BY_ACCOUNT: 2,\n BY_STATUS: 3,\n BY_WRAP_HASH: 4\n },\n WRAP_PROCESS_TIMER: 5000,\n\n FARM_CONTRACT: 'yield.farms',\n\n WEBHOOK_PERMISSION: 'webhook',\n PUBLIC_PERMISSION: 'public',\n LIGHT_PERMISSION: 'light',\n WRAP_AUTH_ACTION: WRAP_AUTH_ACTION,\n\n METAL_ENDPOINT: chain === 'proton'\n ? 'https://cirrus.metalpay.com'\n : 'https://cirrus-dev.metalpay.com',\n\n METAL_PROTON_ENDPOINT: chain === 'proton'\n ? 'https://api.protonchain.com'\n : 'https://api-dev.protonchain.com',\n\n PROTON_ENDPOINTS: chain === 'proton'\n ? ['https://proton.greymass.com', 'https://proton.eoscafeblock.com', 'https://proton.cryptolions.io', 'https://proton.eosusa.news']\n : ['https://testnet.protonchain.com'],\n\n CHAIN_ID: chain === 'proton'\n ? '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'\n : '71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd',\n\n CHAIN: chain,\n\n SWAP_COINS: swapCoins,\n BRIDGE_COINS: bridgeCoins,\n ALL_ENABLED_COINS: allEnabledCoins,\n LEND_COINS: lendCoins,\n BORROW_COINS: borrowCoins,\n LOAN_COINS: loanCoins,\n ALL_COINS: allCoins,\n\n findBridgeCoinWalletByXtokenAndChain (xtokenSymbol: string, chain: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.xtokenSymbol === xtokenSymbol)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.chain === chain)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinWallet (coin: string, wallet: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.wallet === wallet)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinNetwork (coin: string, network: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.network === network)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n }\n }\n\n return constants\n}","import * as z from 'zod'\nimport { accountParser } from './base'\nimport { generateAuthParser } from './auth'\n\nexport const addressParser = z.object({\n index : z.number(),\n account : accountParser,\n chain : z.string(),\n address : z.string(),\n address_hash: z.string(),\n})\nexport type Address = z.infer<typeof addressParser>\n\nexport const generateAddressBodyParser = z.object({\n coin: z.string(),\n wallet: z.string(),\n}).merge(generateAuthParser)\nexport type GenerateAddressBody = z.infer<typeof generateAddressBodyParser>\n\nexport const generateAddressResponse = z.object({\n id : z.string(), // \"2448834505708930950\",\n address: z.string(), // \"0x617C03C1E2Bf81C062A4CEfbE312c070E1d86d18\",\n coin : z.string(), // \"ETH\",\n wallet : z.string(), // \"ETH\",\n memo : z.string().optional()\n})\nexport type GenerateAddressResponse = z.infer<typeof generateAddressResponse>\n","import * as z from 'zod'\n\nexport interface CurrencyStat {\n supply : string;\n max_supply: string;\n issuer : string;\n}\nexport interface CurrencyStats {\n [key: string]: CurrencyStat;\n}\n\nexport const rateParser = z.object({\n counterCurrency : z.string(),\n price : z.number(),\n priceChangePercent: z.number(),\n marketCap : z.number(),\n volume : z.number(),\n timestamp : z.number()\n})\nexport type Rate = z.infer<typeof rateParser>\n\nexport const exchangeRateParser = z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n})\nexport type ExchangeRate = z.infer<typeof exchangeRateParser>\n\nexport const exchangeRatesParser = z.array(exchangeRateParser)\nexport type ExchangeRates = z.infer<typeof exchangeRatesParser>","import * as z from 'zod'\nimport { ExtendedAssetParser } from './base'\n\nexport enum Status {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAIL = 'fail',\n PROCESSING = 'processing'\n}\n\nexport const wrapStartParser = z.object({\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n confirmations : z.number()\n})\n\nexport type WrapStart = z.infer<typeof wrapStartParser>\n\nexport const wrapSetConfParser = z.object({\n wrap_hash : z.string(),\n confirmations: z.number()\n})\nexport type WrapSetConf = z.infer<typeof wrapSetConfParser>\n\nexport const wrapParser = z.object({\n index : z.number(),\n proton_account : z.string(),\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n status : z.nativeEnum(Status),\n finish_txid : z.string(),\n wrap_hash : z.string(),\n confirmations : z.number(),\n})\nexport type Wrap = z.infer<typeof wrapParser>","import * as z from 'zod'\n\nexport const otcOrderResponseParser = z.object({\n success : z.boolean(),\n transaction_id: z.string(),\n errormsg : z.string().optional()\n})\nexport type OtcOrderResponse = z.infer<typeof otcOrderResponseParser>\n\nexport const otcQuoteBodyParser = z.object({\n baseAmount : z.number(),\n baseSymbol : z.string(),\n quoteSymbol: z.string()\n})\nexport type OtcQuoteBody = z.infer<typeof otcQuoteBodyParser>\n\nexport const otcQuoteResponseParser = z.object({\n success : z.boolean(),\n token : z.string(),\n qty : z.number(),\n errormsg: z.string().optional()\n})\nexport type OtcQuoteResponse = z.infer<typeof otcQuoteResponseParser>","import * as z from 'zod'\nimport { singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT } from '../constants'\nimport { baseActionParser } from './actions'\n\nconst withdrawData = {\n from: z.string().refine((val) => val !== WRAP_CONTRACT, {\n message: `${WRAP_CONTRACT} must be receiver`,\n }),\n to: z.literal(WRAP_CONTRACT),\n quantity: z.string(),\n memo: z.string()\n}\nconst withdrawBodyBaseAction = baseActionParser('*', 'transfer', withdrawData)\nexport type WithdrawBodyBaseAction = z.infer<typeof withdrawBodyBaseAction>\n\nexport const withdrawBodyParser = z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser('*', 'transfer', withdrawData),\n quoteId: z.string(),\n provider: z.string().optional()\n})\nexport type WithdrawBody = z.infer<typeof withdrawBodyParser>\n\nexport const withdrawMetalResponseParser = z.object({\n success: z.boolean(),\n id : z.string(),\n})\nexport type WithdrawMetalResponse = z.infer<typeof withdrawMetalResponseParser>\n\nexport const withdrawalFeeQuoteParser = z.object({\n quoteId : z.string(),\n estimatedFee: z.string(),\n currency : z.string(),\n network : z.string(),\n})\nexport type WithdrawalFeeQuote = z.infer<typeof withdrawalFeeQuoteParser>","import * as z from 'zod'\n\nexport const withdrawHistoryMetalSwapParser = z.object({\n id : z.string(),\n status : z.string(),\n amount : z.string(),\n currency : z.string(),\n network : z.string(),\n created : z.string(),\n withdrawalAddress: z.string(),\n withdrawalHash : z.string().optional()\n})\nexport type WithdrawHistoryMetalSwap = z.infer<typeof withdrawHistoryMetalSwapParser>\n\nexport const withdrawHistoryMetalResponseParser = z.object({\n swaps : z.array(withdrawHistoryMetalSwapParser),\n page : z.number(),\n pageSize : z.number(),\n numberOfElements: z.number(),\n totalPages : z.number(),\n totalElements : z.number()\n})\nexport type WithdrawHistoryMetalResponse = z.infer<typeof withdrawHistoryMetalResponseParser>\n","interface PartialCoin {\n xtokenSymbol: string;\n xtokenPrecision: number;\n xtokenContract: string;\n}\n\nexport const isSameToken = (token1: PartialCoin, token2: PartialCoin) => {\n return token1.xtokenSymbol === token2.xtokenSymbol &&\n token1.xtokenPrecision === token2.xtokenPrecision &&\n token1.xtokenContract === token2.xtokenContract\n}"],"names":["Chains","Networks","similarChains","EthereumMainnet","BinanceBEP20","explorerLinkByChain","BitcoinMainnet","txid","BitcoinTestnet","EthereumRopsten","LitecoinMainnet","LitecoinTestnet","BitcoinCashMainnet","BitcoinCashTestnet","StellarMainnet","StellarTestnet","ProtonMainnet","ProtonTestnet","PolkadotMainnet","BinanceBEP2","EosMainnet","EosTestnet","HederaMainnet","HederaTestnet","DogeMainnet","CardanoMainnet","initializeCoins","protonChain","IS_MAINNET","IS_TESTNET","coins","allowSwap","allowBridge","allowLend","allowBorrow","name","coin","xtokenSymbol","xtokenPrecision","xtokenContract","wallets","wallet","symbol","chain","network","ERC20","precision","contract","hasWithdrawMemo","BEP20","image","coingeckoId","XLM","undefined","Ropsten","Mainnet","Testnet","walletWithDuplicateChains","find","chains","map","Set","size","length","Error","allCoins","swapCoins","filter","bridgeCoins","lendCoins","borrowCoins","loanCoins","allEnabledCoins","accountParser","z","regex","authorizationParser","actor","permission","authorizationsParser","min","ExtendedAssetParser","quantity","rawTransactionParser","expiration","ref_block_num","ref_block_prefix","max_net_usage_words","max_cpu_usage_ms","delay_sec","context_free_actions","transaction_extensions","baseActionParser","action","data","account","authorization","baseActionSerializedParser","or","webauthActionParser","key","modulus","exponent","user_presence","rpid","nonce","permissions","signature","auth_data","client_json","trx","merge","actions","singleActionTransactionParser","baseAction","webauthAction","Type","createAbstractAuthParser","signer","signatures","transaction","generateAuthParser","time","protonAccount","addressParser","index","address","address_hash","generateAddressBodyParser","generateAddressResponse","id","memo","optional","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","Status","depositBodyParser","type","hash","transactionParser","value","valueString","state","confirmations","blockHash","nullable","blockHeight","otcOrderResponseParser","success","transaction_id","errormsg","otcQuoteBodyParser","baseAmount","baseSymbol","quoteSymbol","otcQuoteResponseParser","token","qty","withdrawData","from","refine","val","message","WRAP_CONTRACT","to","withdrawBodyParser","quoteId","provider","withdrawMetalResponseParser","withdrawalFeeQuoteParser","estimatedFee","currency","withdrawHistoryMetalSwapParser","status","amount","created","withdrawalAddress","withdrawalHash","withdrawHistoryMetalResponseParser","swaps","page","pageSize","numberOfElements","totalPages","totalElements","wrapStartParser","balance","deposit_address","wrapSetConfParser","wrap_hash","wrapParser","proton_account","finish_txid","constants","SWAP_CONTRACT","FEE_FACTOR","GOOGLE_MAPS_KEY","SWAP_URL","WRAP_SERVER_URL","WRAP_ACTIONS","SAVE_ADDRESS","DELETE_ADDRESS","WRAP_START","WRAP_FINISH","WRAP_PROCESS","WRAP_SET_CONF","WRAP_TABLES","ADDRESSES","WRAPS","ADDRESSES_INDEXES","BY_ACCOUNT","BY_ADDR_HASH","WRAPS_INDEXES","BY_STATUS","BY_WRAP_HASH","WRAP_PROCESS_TIMER","FARM_CONTRACT","WEBHOOK_PERMISSION","PUBLIC_PERMISSION","LIGHT_PERMISSION","WRAP_AUTH_ACTION","METAL_ENDPOINT","METAL_PROTON_ENDPOINT","PROTON_ENDPOINTS","CHAIN_ID","CHAIN","SWAP_COINS","BRIDGE_COINS","ALL_ENABLED_COINS","LEND_COINS","BORROW_COINS","LOAN_COINS","ALL_COINS","findBridgeCoinWalletByXtokenAndChain","bridgeCoin","bridgeWallet","findBridgeCoinWallet","findBridgeCoinNetwork","token1","token2"],"mappings":"4EAEYA,EAwBAC,oBAxBAD,EAAAA,iBAAAA,6CAERA,qCACAA,6BACAA,uCACAA,6BACAA,uCACAA,oCACAA,8CACAA,2BACAA,qCACAA,yBACAA,mCACAA,6BACAA,+BACAA,iCACAA,mBACAA,oCACAA,mCACAA,mCACAA,yBACAA,4BAGQC,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,MAGxFmB,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,GAErB,CACIP,OAAQ,YACRC,OAAQ,MACRC,MAAO3C,eAAOI,aACdwC,QAAS3C,iBAASgD,MAClBH,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IAEtB,IAEPE,MAAO,sBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,GAErB,CACIP,OAAQ,aACRC,OAAQ,OACRC,MAAO3C,eAAOI,aACdwC,QAAS3C,iBAASgD,MAClBH,UAAW,GACXC,SAAU,6CACVC,iBAAiB,GAErB,CACIP,OAAQ,WACRC,OAAQ,OACRC,MAAO3C,eAAOc,eACd8B,QAAS3C,iBAASmD,IAClBN,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IAEtB,GACCnB,EAAa,CAAiB,CAC9BY,OAAQ,OACRC,OAAQ,OACRC,MAAO3C,eAAOS,gBACdmC,QAAS3C,iBAASqD,QAClBR,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,sBACPC,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,MAAO3C,eAAOM,eACdsC,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOQ,eACdoC,QAAS3C,iBAASuD,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAASsD,QAClBT,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOS,gBACdmC,QAAS3C,iBAASqD,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,uBACPC,YAAa,YAEjB,CACIpB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,kBACQZ,EAAa,CAAC,CACda,OAAQ,OACRC,OAAQ,OACRC,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,OACRC,OAAQ,OACRC,MAAO3C,eAAOS,gBACdmC,QAAS3C,iBAASqD,QAClBR,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,uBACPC,YAAa,QAEjB,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,OACRC,OAAQ,OACRC,MAAO3C,eAAOS,gBACdmC,QAAS3C,iBAASqD,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOS,gBACdmC,QAAS3C,iBAASqD,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,uBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOG,gBACdyC,QAAS3C,iBAAS4C,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOU,gBACdkC,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOW,gBACdiC,QAAS3C,iBAASuD,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,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,MAAO3C,eAAOY,mBACdgC,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOa,mBACd+B,QAAS3C,iBAASuD,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,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,MAAO3C,eAAOc,eACd8B,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOe,eACd6B,QAAS3C,iBAASuD,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,YAAa,WAEjB,CACIpB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,SACdC,gBAAiB,EACjBC,eAAgB,QAChBC,QAAS,GACTU,MAAO,yBACPC,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,MAAO3C,eAAOkB,gBACd0B,QAAS3C,iBAASsD,QAClBT,UAAW,GACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,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,MAAO3C,eAAOI,aACdwC,QAAS3C,iBAASgD,MAClBH,UAAW,GACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,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,MAAO3C,eAAOoB,WACdwB,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,GACAnB,EAAa,CAAC,CACdY,OAAQ,MACRC,OAAQ,MACRC,MAAO3C,eAAOqB,WACduB,QAAS3C,iBAASuD,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,YAAa,OAEjB,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,MAAO3C,eAAOuB,cACdqB,QAAS3C,iBAASuD,QAClBV,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,wBACPC,YAAa,qBAKbpB,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,MAAO3C,eAAOwB,YACdoB,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,wBACPC,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,MAAO3C,eAAOyB,eACdmB,QAAS3C,iBAASsD,QAClBT,UAAW,EACXC,cAAUM,EACVL,iBAAiB,IACjB,IAERE,MAAO,uBACPC,YAAa,WAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,SACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,yBACPC,YAAa,eAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,uBACPC,YAAa,YAEjB,CACIpB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,OACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,uBACPC,YAAa,SAMfM,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,iBCryBxDyC,EAAgBC,WAAWC,MAAM,+BAEjCC,EAAsBF,SAAS,CACxCG,MAAYJ,EACZK,WAAYJ,aAIHK,EAAuBL,QAAQE,GAAqBI,IAAI,GAGxDC,EAAsBP,SAAS,CACxCQ,SAAUR,WACV3B,SAAU0B,ICXRU,EAAuBT,SAAS,CAClCU,WAAwBV,WACxBW,cAAwBX,WACxBY,iBAAwBZ,WACxBa,oBAAwBb,WACxBc,iBAAwBd,WACxBe,UAAwBf,WACxBgB,qBAAwBhB,QAAQA,SAChCiB,uBAAwBjB,QAAQA,WAGvBkB,EAAmB,SAAwB7C,EAAkB8C,EAAgBC,UAAYpB,SAAS,CAC3GqB,QAAsB,MAAbhD,EAAmB0B,EAAgBC,UAAU3B,GACtDZ,KAAMuC,UAAUmB,GAChBC,KAAMpB,SAASoB,GACfE,cAAejB,KAGNkB,EAA6B,SAAwBlD,EAAkB8C,EAAgBC,UAAYpB,SAAS,CACrHqB,QAAsB,MAAbhD,EAAmB0B,EAAgBC,UAAU3B,GACtDZ,KAAMuC,UAAUmB,GAChBC,KAAMpB,WAAWwB,GAAGxB,SAASoB,IAC7BE,cAAejB,KAGNoB,EAAsB,SAAwBpD,EAAkB8C,EAAgBC,UAAYpB,SAAS,CAC9GqB,QAASrB,UAAU,YACnBvC,KAAMuC,UAAU,QAChBoB,KAAMpB,SAAS,CACXqB,QAAStB,EACT2B,IAAK1B,SAAS,CACV0B,IAAK1B,QAAQA,WAAWwB,GAAGxB,SAAS,CAChC2B,QAAS3B,WACT4B,SAAU5B,eAEd6B,cAAe7B,WACf8B,KAAM9B,aAEV+B,MAAO/B,WACPgC,YAAa3B,EACb4B,UAAWjC,SAAS,CAChBkC,UAAWlC,WACXmC,YAAanC,WACbiC,UAAWjC,aAEfoC,IAAK3B,EAAqB4B,MACtBrC,SAAS,CACLsC,QAAStC,QACLuB,EAA2BlD,EAAU8C,EAAQC,IAC/C/B,OAAO,QAIrBiC,cAAejB,KAGNkC,EAAgC,SAAwBlE,EAAkB8C,EAAgBC,OAC7FoB,EAAatB,EAAiB7C,EAAU8C,EAAQC,GAChDqB,EAAgBhB,EAAoBpD,EAAU8C,EAAQC,UAErDX,EAAqB4B,MAAMrC,SAAS,CACvCsC,QAAStC,QAAQwC,EAAWhB,GAAGiB,IAAgBpD,OAAO,0NC/DlDqD,ECICC,EAA2B,SAACtE,EAAkB8C,EAAgBC,UAChEpB,SAAS,CACZ4C,OAAa1C,EACb2C,WAAa7C,QAAQA,YAAYX,OAAO,GACxCyD,YAAaP,EAA8BlE,EAAU8C,EAAQC,MAWxD2B,EAAqBJ,ECnBL,cACG,eDWP,CACrBK,KAAMhD,WACNiD,cAAejD,aEZNkD,EAAgBlD,SAAS,CAClCmD,MAAcnD,WACdqB,QAActB,EACd9B,MAAc+B,WACdoD,QAAcpD,WACdqD,aAAcrD,aAILsD,EAA4BtD,SAAS,CAC9CtC,KAAMsC,WACNjC,OAAQiC,aACTqC,MAAMU,GAGIQ,EAA0BvD,SAAS,CAC5CwD,GAASxD,WACToD,QAASpD,WACTtC,KAASsC,WACTjC,OAASiC,WACTyD,KAASzD,WAAW0D,aCbXC,EAAa3D,SAAS,CAC/B4D,gBAAoB5D,WACpB6D,MAAoB7D,WACpB8D,mBAAoB9D,WACpB+D,UAAoB/D,WACpBgE,OAAoBhE,WACpBiE,UAAoBjE,aAIXkE,EAAqBlE,SAAS,CACvC3B,SAAU2B,WACVhC,OAAUgC,WACVmE,KAAUnE,WACVoE,MAAUpE,QAAQ2D,KAITU,EAAsBrE,QAAQkE,IJ3B/BxB,EAAAA,eAAAA,oCAERA,kBKDQ4B,ELICC,EAAoBvE,SAAS,CACtCwD,GAAYxD,WACZwE,KAAYxE,aAAa0C,cACzB+B,KAAYzE,WACZtC,KAAYsC,WACZjC,OAAYiC,aAIH0E,EAAoB1E,SAAS,CACtCwD,GAAgBxD,WAChBjC,OAAgBiC,WAChB2E,MAAgB3E,WAChB4E,YAAgB5E,WAChBoD,QAAgBpD,WAChBwE,KAAgBxE,aAAa0C,cAC7BmC,MAAgB7E,WAChB8E,cAAgB9E,WAChByE,KAAgBzE,WAChB+E,UAAgB/E,WAAW0D,WAAWsB,WACtCC,YAAgBjF,WAAW0D,WAAWsB,aMzB7BE,EAAyBlF,SAAS,CAC3CmF,QAAgBnF,YAChBoF,eAAgBpF,WAChBqF,SAAgBrF,WAAW0D,aAIlB4B,EAAqBtF,SAAS,CACvCuF,WAAavF,WACbwF,WAAaxF,WACbyF,YAAazF,aAIJ0F,EAAyB1F,SAAS,CAC3CmF,QAAUnF,YACV2F,MAAU3F,WACV4F,IAAU5F,WACVqF,SAAUrF,WAAW0D,aCdnBmC,EAAe,CACjBC,KAAM9F,WAAW+F,QAAO,SAACC,SLLA,gBKKQA,IAAuB,CACpDC,QAAYC,iCAEhBC,GAAInG,ULRqB,eKSzBQ,SAAUR,WACVyD,KAAMzD,YAKGoG,EAAqBpG,SAAS,CACvC4C,OAAa1C,EACb2C,WAAa7C,QAAQA,YAAYX,OAAO,GACxCyD,YAAaP,EAA8B,IAAK,WAAYsD,GAC5DQ,QAASrG,WACTsG,SAAUtG,WAAW0D,aAIZ6C,EAA8BvG,SAAS,CAChDmF,QAASnF,YACTwD,GAASxD,aAIAwG,EAA2BxG,SAAS,CAC7CqG,QAAcrG,WACdyG,aAAczG,WACd0G,SAAc1G,WACd9B,QAAc8B,aClCL2G,EAAiC3G,SAAS,CACnDwD,GAAmBxD,WACnB4G,OAAmB5G,WACnB6G,OAAmB7G,WACnB0G,SAAmB1G,WACnB9B,QAAmB8B,WACnB8G,QAAmB9G,WACnB+G,kBAAmB/G,WACnBgH,eAAmBhH,WAAW0D,aAIrBuD,EAAqCjH,SAAS,CACvDkH,MAAkBlH,QAAQ2G,GAC1BQ,KAAkBnH,WAClBoH,SAAkBpH,WAClBqH,iBAAkBrH,WAClBsH,WAAkBtH,WAClBuH,cAAkBvH,cHjBVsE,EAAAA,iBAAAA,sCAERA,oBACAA,cACAA,8BAGSkD,EAAkBxH,SAAS,CACpCyH,QAAiBlH,EACjBiD,GAAiBxD,WACjBnE,KAAiBmE,WACjB/B,MAAiB+B,WACjB0H,gBAAiB1H,WACjB8E,cAAiB9E,aAKR2H,EAAoB3H,SAAS,CACtC4H,UAAe5H,WACf8E,cAAe9E,aAIN6H,EAAa7H,SAAS,CAC/BmD,MAAiBnD,WACjB8H,eAAiB9H,WACjByH,QAAiBlH,EACjBiD,GAAiBxD,WACjBnE,KAAiBmE,WACjB/B,MAAiB+B,WACjB0H,gBAAiB1H,WACjB4G,OAAiB5G,aAAasE,gBAC9ByD,YAAiB/H,WACjB4H,UAAiB5H,WACjB8E,cAAiB9E,oEHnCW,qCADH,4eAGM,SAAC/B,SACiEjB,EAAgBiB,GAE3G+J,EAAY,CACdC,cAAe,eACfC,WAAY,IACZC,gBAAiB,0CACjBC,SAAoB,WAAVnK,EACJ,6BACA,kCACNoK,gBAA2B,WAAVpK,EACX,+CACA,uDACNiI,cAhBqB,cAiBrBoC,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,iBA5CwB,eA8CxBC,eAA0B,WAAV3L,EACV,8BACA,kCAEN4L,sBAAiC,WAAV5L,EACjB,8BACA,kCAEN6L,iBAA4B,WAAV7L,EACZ,CAAC,8BAA+B,kCAAmC,gCAAiC,8BACpG,CAAC,mCAEP8L,SAAoB,WAAV9L,EACJ,mEACA,mEAEN+L,MAAO/L,EAEPgM,aA7DIzK,UA8DJ0K,eA9DexK,YA+DfyK,oBA/D4BrK,gBAgE5BsK,aAhEuDzK,UAiEvD0K,eAjEkEzK,YAkElE0K,aAlE+EzK,UAmE/E0K,YAnE6ChL,SAqE7CiL,8CAAsC7M,EAAsBM,OAClDwM,EAAazC,EAAUkC,aAAalL,MAAK,SAACyL,UAAqBA,EAAW9M,eAAiBA,QAC5F8M,OACCC,EAAeD,EAAW3M,QAAQkB,MAAK,SAAC0L,UAAyBA,EAAazM,QAAUA,QACzFyM,cAGED,EACAC,KAIXC,8BAAsBjN,EAAcK,OAC1B0M,EAAazC,EAAUkC,aAAalL,MAAK,SAACyL,UAAqBA,EAAW/M,OAASA,QACpF+M,OAECC,EAAeD,EAAW3M,QAAQkB,MAAK,SAAC0L,UAAyBA,EAAa3M,SAAWA,QAC1F2M,cAGED,EACAC,KAIXE,+BAAuBlN,EAAcQ,OAC3BuM,EAAazC,EAAUkC,aAAalL,MAAK,SAACyL,UAAqBA,EAAW/M,OAASA,QACpF+M,OACCC,EAAeD,EAAW3M,QAAQkB,MAAK,SAAC0L,UAAyBA,EAAaxM,UAAYA,QAC3FwM,cAGED,EACAC,aAKR1C,uBO3GgB,SAAC6C,EAAqBC,UACtCD,EAAOlN,eAAiBmN,EAAOnN,cAC/BkN,EAAOjN,kBAAoBkN,EAAOlN,iBAClCiN,EAAOhN,iBAAmBiN,EAAOjN"}
1
+ {"version":3,"file":"wrap-constants.cjs.production.min.js","sources":["../src/coins.ts","../src/parsers/base.ts","../src/parsers/actions.ts","../src/parsers/deposit.ts","../src/parsers/auth.ts","../src/constants.ts","../src/parsers/address.ts","../src/parsers/currency.ts","../src/parsers/wrap.ts","../src/parsers/otc.ts","../src/parsers/withdraw.ts","../src/parsers/withdrawalHistory.ts","../src/utils.ts"],"sourcesContent":["import { Asset } from '@bloks/numbers'\n\nexport enum Chains {\n BitcoinMainnet = 'Bitcoin',\n BitcoinTestnet = 'Bitcoin (Testnet)',\n EthereumMainnet = 'Ethereum',\n EthereumRopsten = 'Ethereum (Ropsten)',\n LitecoinMainnet = 'Litecoin',\n LitecoinTestnet = 'Litecoin (Testnet)',\n BitcoinCashMainnet = 'Bitcoin Cash',\n BitcoinCashTestnet = 'Bitcoin Cash (Testnet)',\n StellarMainnet = 'Stellar',\n StellarTestnet = 'Stellar (Testnet)',\n ProtonMainnet = 'Proton',\n ProtonTestnet = 'Proton (Testnet)',\n PolkadotMainnet = 'Polkadot',\n BinanceBEP2 = 'Binance (BEP2)',\n BinanceBEP20 = 'Binance (BEP20)',\n EosMainnet = 'EOS',\n EosTestnet = 'EOS (Jungle Testnet)',\n HederaMainnet = 'Hedera (Mainnet)',\n HederaTestnet = 'Hedera (Testnet)',\n DogeMainnet = 'Dogecoin',\n CardanoMainnet = 'Cardano',\n}\n\nexport enum Networks {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Ropsten = 'ropsten',\n ERC20 = 'erc20',\n BEP20 = 'bep20',\n XLM = 'xlm',\n}\n\nexport const similarChains = {\n [Chains.EthereumMainnet]: [Chains.BinanceBEP20],\n [Chains.BinanceBEP20]: [Chains.EthereumMainnet],\n}\n\nexport interface Coin {\n allowSwap : boolean;\n allowBridge : boolean;\n allowLend : boolean;\n allowBorrow : boolean;\n name : string;\n coin : string;\n xtokenSymbol : string;\n xtokenPrecision: number;\n xtokenContract : string;\n wallets : Wallet[];\n image : string;\n coingeckoId : string;\n balance? : Asset;\n}\n \nexport interface Wallet {\n wallet : string;\n symbol : string;\n chain : Chains;\n network : Networks;\n precision : number;\n contract : string | undefined;\n hasWithdrawMemo: boolean;\n}\n\nexport type CoinWallet = Exclude<Coin, 'wallets'> & Wallet\n\nexport const explorerLinkByChain = {\n [Chains.BitcoinMainnet] : (txid: string) => `https://blockchain.com/btc/tx/${txid}`,\n [Chains.BitcoinTestnet] : (txid: string) => `https://blockstream.info/testnet/tx/${txid}`,\n [Chains.EthereumMainnet] : (txid: string) => `https://etherscan.io/tx/${txid}`,\n [Chains.EthereumRopsten] : (txid: string) => `https://ropsten.etherscan.io/tx/${txid}`,\n [Chains.LitecoinMainnet] : (txid: string) => `https://blockchair.com/litecoin/transaction/${txid}`,\n [Chains.LitecoinTestnet] : (txid: string) => `https://blockexplorer.one/litecoin/testnet/blockHash/${txid}`,\n [Chains.BitcoinCashMainnet]: (txid: string) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,\n [Chains.BitcoinCashTestnet]: (txid: string) => `https://blockexplorer.one/bitcoin-cash/testnet/blockHash/${txid}`,\n [Chains.StellarMainnet] : (txid: string) => `https://blockchair.com/stellar/transaction/${txid}`,\n [Chains.StellarTestnet] : (txid: string) => `https://testnet.steexp.com/tx/${txid}`,\n [Chains.ProtonMainnet] : (txid: string) => `https://proton.bloks.io/transaction/${txid}`,\n [Chains.ProtonTestnet] : (txid: string) => `https://proton-test.bloks.io/transaction/${txid}`,\n [Chains.PolkadotMainnet] : (txid: string) => `https://polkadot.subscan.io/extrinsic/${txid}`,\n [Chains.BinanceBEP2] : (txid: string) => `https://binance.mintscan.io/txs/${txid}`,\n [Chains.BinanceBEP20] : (txid: string) => `https://bscscan.com/tx/${txid}`,\n [Chains.EosMainnet] : (txid: string) => `https://bloks.io/transaction/${txid}`,\n [Chains.EosTestnet] : (txid: string) => `https://jungle.bloks.io/transaction/${txid}`,\n [Chains.HederaMainnet] : (txid: string) => `https://app.dragonglass.me/transactions/${txid}`,\n [Chains.HederaTestnet] : (txid: string) => `https://testnet.dragonglass.me/transactions/${txid}`,\n [Chains.DogeMainnet] : (txid: string) => `https://blockchair.com/dogecoin/transaction/${txid}`,\n [Chains.CardanoMainnet] : (txid: string) => `https://explorer.cardano.org/en/transaction?id=${txid}`,\n}\n\nexport const initializeCoins = (protonChain: string): {\n allCoins : Coin[];\n swapCoins : Coin[];\n bridgeCoins : Coin[];\n lendCoins : Coin[];\n borrowCoins : Coin[];\n loanCoins : Coin[];\n allEnabledCoins: Coin[];\n} => {\n const IS_MAINNET = protonChain === 'proton'\n const IS_TESTNET = protonChain === 'proton-test'\n \n const coins: Coin[] = [\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Proton',\n coin: 'XPR',\n xtokenSymbol: 'XPR',\n xtokenPrecision: 4,\n xtokenContract: 'eosio.token',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'XPR-ERC20',\n symbol: 'XPR',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 4,\n contract: '0xD7EFB00D12C2C13131FD319336FDF952525DA2AF',\n hasWithdrawMemo: false\n },\n {\n wallet: 'XPR-BEP20',\n symbol: 'XPR',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 4,\n contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',\n hasWithdrawMemo: false\n }\n ]: []),\n ],\n image: '/img/tokens/xpr.png',\n coingeckoId: 'proton'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'USD Coin',\n coin: 'USDC',\n xtokenSymbol: 'XUSDC',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-BEP20',\n symbol: 'USDC',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-XLM',\n symbol: 'USDC',\n chain: Chains.StellarMainnet,\n network: Networks.XLM,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n },\n ]: []),\n ...(IS_TESTNET ? [ {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdc.png',\n coingeckoId: 'usd-coin'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Metal',\n coin: 'MTL',\n xtokenSymbol: 'XMT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MTL',\n symbol: 'MTL',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 8,\n contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xmt.png',\n coingeckoId: 'metal'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Bitcoin',\n coin: 'BTC',\n xtokenSymbol: 'XBTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbtc.png',\n coingeckoId: 'bitcoin'\n },\n {\n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Ethereum',\n coin: 'ETH',\n xtokenSymbol: 'XETH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xeth.png',\n coingeckoId: 'ethereum'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: true,\n name: 'Loan',\n coin: 'LOAN',\n xtokenSymbol: 'LOAN',\n xtokenPrecision: 4,\n xtokenContract: 'loan.token',\n wallets: [],\n image: '/img/tokens/loan.svg',\n coingeckoId: ''\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Tether',\n coin: 'USDT',\n xtokenSymbol: 'XUSDT',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xusdt.png',\n coingeckoId: 'tether'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TrueUSD',\n coin: 'TUSD',\n xtokenSymbol: 'XTUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'TUSD',\n symbol: 'TUSD',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x0000000000085D4780B73119B644AE5ECD22B376',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xtusd.png',\n coingeckoId: 'true-usd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Standard',\n coin: 'PAX',\n xtokenSymbol: 'XPAX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAX',\n symbol: 'PAX',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpax.png',\n coingeckoId: 'usdp'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Gold',\n coin: 'PAXG',\n xtokenSymbol: 'XPAXG',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xpaxg.png',\n coingeckoId: 'pax-gold'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Uniswap',\n coin: 'UNI',\n xtokenSymbol: 'XUNI',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xuni.png',\n coingeckoId: 'uniswap'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: '1INCH',\n coin: '1INCH',\n xtokenSymbol: 'XINCH',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: '1INCH',\n symbol: '1INCH',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x111111111117DC0AA78B770FA6A738034120C302',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xinch.png',\n coingeckoId: '1inch'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Chainlink',\n coin: 'LINK',\n xtokenSymbol: 'XLINK',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LINK',\n symbol: 'LINK',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xlink.png',\n coingeckoId: 'chainlink'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Litecoin',\n coin: 'LTC',\n xtokenSymbol: 'XLTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xltc.png',\n coingeckoId: 'litecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Bitcoin Cash',\n coin: 'BCH',\n xtokenSymbol: 'XBCH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbch.png',\n coingeckoId: 'bitcoin-cash'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Stellar',\n coin: 'XLM',\n xtokenSymbol: 'XXLM',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarMainnet,\n network: Networks.Mainnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarTestnet,\n network: Networks.Testnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xxlm.png',\n coingeckoId: 'stellar'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Sense',\n coin: 'SENSE',\n xtokenSymbol: 'XSENSE',\n xtokenPrecision: 4,\n xtokenContract: 'sense',\n wallets: [],\n image: '/img/tokens/xsense.png',\n coingeckoId: 'sense'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polkadot',\n coin: 'DOT',\n xtokenSymbol: 'XDOT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOT',\n symbol: 'DOT',\n chain: Chains.PolkadotMainnet,\n network: Networks.Mainnet,\n precision: 10,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xdot.png',\n coingeckoId: 'polkadot'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Binance Coin',\n coin: 'BNB',\n xtokenSymbol: 'XBNB',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BNB',\n symbol: 'BNB',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbnb.png',\n coingeckoId: 'binancecoin'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'EOS',\n coin: 'EOS',\n xtokenSymbol: 'XEOS',\n xtokenPrecision: 4,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosMainnet,\n network: Networks.Mainnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosTestnet,\n network: Networks.Testnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: '/img/tokens/xeos.png',\n coingeckoId: 'eos'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: false,\n name: 'Dogecoin',\n coin: 'DOGE',\n xtokenSymbol: 'XDOGE',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOGE',\n symbol: 'DOGE',\n chain: Chains.DogeMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ],\n image: '/img/tokens/xdoge.png',\n coingeckoId: 'dogecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Cardano',\n coin: 'ADA',\n xtokenSymbol: 'XADA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ADA',\n symbol: 'ADA',\n chain: Chains.CardanoMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xada.png',\n coingeckoId: 'cardano'\n },\n\n // Synthethic\n { \n allowSwap: false,\n allowBridge: IS_TESTNET,\n allowLend: false,\n allowBorrow: false,\n name: 'HBAR',\n coin: 'HBAR',\n xtokenSymbol: 'XHBAR',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_TESTNET ? [{\n wallet: 'HBAR',\n symbol: 'HBAR',\n chain: Chains.HederaTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xhbar.png',\n coingeckoId: 'hedera-hashgraph'\n },\n\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Theta',\n coin: 'THETA',\n xtokenSymbol: 'XTHETA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtheta.png',\n coingeckoId: 'theta-token'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Filecoin',\n coin: 'FIL',\n xtokenSymbol: 'XFIL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xfil.png',\n coingeckoId: 'filecoin'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'TRON',\n coin: 'TRX',\n xtokenSymbol: 'XTRX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtrx.png',\n coingeckoId: 'tron'\n },\n // End synthetic\n ]\n\n // Validation\n const walletWithDuplicateChains = coins.find(coin => {\n const chains = coin.wallets.map(wallet => wallet.chain)\n return new Set(chains).size !== chains.length\n })\n if (walletWithDuplicateChains) {\n throw new Error(`Coin ${walletWithDuplicateChains.coin} has duplicate chains in wallet`)\n }\n\n return {\n allCoins: coins,\n swapCoins: coins.filter(coin => coin.allowSwap),\n bridgeCoins: coins.filter(coin => coin.allowBridge),\n lendCoins: coins.filter(coin => coin.allowLend),\n borrowCoins: coins.filter(coin => coin.allowBorrow),\n loanCoins: coins.filter(coin => coin.allowLend || coin.allowBorrow),\n allEnabledCoins: coins.filter(coin => coin.allowSwap || coin.allowBridge)\n }\n}","import * as z from 'zod'\n\nexport const accountParser = z.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/)\n\nexport const authorizationParser = z.object({\n actor : accountParser,\n permission: z.string()\n})\nexport type Authorization = z.infer<typeof authorizationParser>\n\nexport const authorizationsParser = z.array(authorizationParser).min(1)\nexport type Authorizations = z.infer<typeof authorizationsParser>\n\nexport const ExtendedAssetParser = z.object({\n quantity: z.string(),\n contract: accountParser\n})\nexport type ExtendedAsset = z.infer<typeof ExtendedAssetParser>","import * as z from 'zod'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\nimport { accountParser, authorizationsParser } from './base'\n\nconst rawTransactionParser = z.object({\n expiration : z.string(),\n ref_block_num : z.number(),\n ref_block_prefix : z.number(),\n max_net_usage_words : z.number(),\n max_cpu_usage_ms : z.number(),\n delay_sec : z.number(),\n context_free_actions : z.array(z.any()),\n transaction_extensions: z.array(z.any())\n})\n\nexport const baseActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.object(data),\n authorization: authorizationsParser\n})\n\nexport const baseActionSerializedParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.string().or(z.object(data)),\n authorization: authorizationsParser\n})\n\nexport const webauthActionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: z.literal('webauthn'),\n name: z.literal('exec'),\n data: z.object({\n account: accountParser,\n key: z.object({\n key: z.array(z.string().or(z.object({\n modulus: z.string(),\n exponent: z.string()\n }))),\n user_presence: z.number(),\n rpid: z.string()\n }),\n nonce: z.number(),\n permissions: authorizationsParser,\n signature: z.object({\n auth_data: z.string(),\n client_json: z.string(),\n signature: z.string()\n }),\n trx: rawTransactionParser.merge(\n z.object({\n actions: z.array(\n baseActionSerializedParser(contract, action, data)\n ).length(1)\n })\n )\n }),\n authorization: authorizationsParser\n})\n\nexport const singleActionTransactionParser = <T extends ZodRawShape>(contract: string, action: string, data: T) => {\n const baseAction = baseActionParser(contract, action, data)\n const webauthAction = webauthActionParser(contract, action, data)\n\n return rawTransactionParser.merge(z.object({\n actions: z.array(baseAction.or(webauthAction)).length(1)\n }))\n}","import * as z from 'zod'\n\nexport enum Type {\n RECEIVE = 'receive',\n SEND = 'send'\n}\n\nexport const depositBodyParser = z.object({\n id : z.string(), // \"0x000010203121388fac991\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n hash : z.string(), // \"0x000010203121388fac991\"\n coin : z.string(), // \"ETH\" or \"XPR\"\n wallet : z.string(), // \"ETH-ROPSTEN\" or \"XPR-MAINNET\"\n})\nexport type DepositBody = z.infer<typeof depositBodyParser>\n\nexport const transactionParser = z.object({\n id : z.string(), // \"2629304740076324677\"\n wallet : z.string(), // \"ETH\"\n value : z.number(), // 10000000000000000\n valueString : z.string(), // \"10000000000000000\"\n address : z.string(), // \"0x0000\"\n type : z.nativeEnum(Type), // \"receive\" or \"send\"\n state : z.string(), // \"confirmed\"\n confirmations : z.number(), // 1\n hash : z.string(), // \"b4781422be95fee8fbbf720e3e0fa9705ae834474ef25f5724cdd0f5d23211ed\"\n blockHash : z.string().optional().nullable(), // \"000000000000000000089b270eb99f75107d6a9cde37ec944cb80a2998df7b43\"\n blockHeight : z.number().optional().nullable(), // 643159\n})\nexport type Transaction = z.infer<typeof transactionParser>","import * as z from 'zod'\nimport { baseActionParser, singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT, WRAP_AUTH_ACTION } from '../constants'\nimport { ZodRawShape } from 'zod/lib/src/types/base'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: ZodRawShape) => {\n return z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser(contract, action, data)\n })\n}\n\nconst generateAuthData = {\n time: z.string(),\n protonAccount: z.string()\n}\nconst generateAuthActionsBaseParser = baseActionParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuthBaseAction = z.infer<typeof generateAuthActionsBaseParser>\n\nexport const generateAuthParser = createAbstractAuthParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuth = z.infer<typeof generateAuthParser>","import { Coin, CoinWallet, initializeCoins, Wallet } from './coins'\n\nexport const WRAP_CONTRACT = 'proton.wrap'\nexport const WRAP_AUTH_ACTION = 'generateauth'\n\nexport const initializeConstants = (chain: string) => {\n const { swapCoins, bridgeCoins, allEnabledCoins, allCoins, lendCoins, borrowCoins, loanCoins } = initializeCoins(chain)\n\n const constants = {\n SWAP_CONTRACT: 'proton.swaps',\n FEE_FACTOR: 10000,\n GOOGLE_MAPS_KEY: 'AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs',\n SWAP_URL: chain === 'proton'\n ? 'https://otc.protonswap.com'\n : 'https://otc-test.protonswap.com',\n WRAP_SERVER_URL: chain === 'proton'\n ? 'https://www.api.bloks.io/proton-wrap-public2'\n : 'https://www.api.bloks.io/proton-wrap-testnet-public2',\n WRAP_CONTRACT,\n WRAP_ACTIONS: {\n SAVE_ADDRESS: 'saveaddress2',\n DELETE_ADDRESS: 'deladdress2',\n WRAP_START: 'wrapstart2',\n WRAP_FINISH: 'wrapfinish2',\n WRAP_PROCESS: 'wrapprocess2',\n WRAP_SET_CONF: 'wrapsetconf2',\n },\n WRAP_TABLES: {\n ADDRESSES: 'addresses2',\n WRAPS: 'wraps2'\n },\n ADDRESSES_INDEXES: {\n BY_ACCOUNT: 2,\n BY_ADDR_HASH: 3\n },\n WRAPS_INDEXES: {\n BY_ACCOUNT: 2,\n BY_STATUS: 3,\n BY_WRAP_HASH: 4\n },\n WRAP_PROCESS_TIMER: 5000,\n\n FARM_CONTRACT: 'yield.farms',\n\n WEBHOOK_PERMISSION: 'webhook',\n PUBLIC_PERMISSION: 'public',\n LIGHT_PERMISSION: 'light',\n WRAP_AUTH_ACTION: WRAP_AUTH_ACTION,\n\n METAL_ENDPOINT: chain === 'proton'\n ? 'https://cirrus.metalpay.com'\n : 'https://cirrus-dev.metalpay.com',\n\n METAL_PROTON_ENDPOINT: chain === 'proton'\n ? 'https://api.protonchain.com'\n : 'https://api-dev.protonchain.com',\n\n PROTON_ENDPOINTS: chain === 'proton'\n ? ['https://proton.greymass.com', 'https://proton.eoscafeblock.com', 'https://proton.cryptolions.io', 'https://proton.eosusa.news']\n : ['https://testnet.protonchain.com'],\n\n CHAIN_ID: chain === 'proton'\n ? '384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0'\n : '71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd',\n\n CHAIN: chain,\n\n SWAP_COINS: swapCoins,\n BRIDGE_COINS: bridgeCoins,\n ALL_ENABLED_COINS: allEnabledCoins,\n LEND_COINS: lendCoins,\n BORROW_COINS: borrowCoins,\n LOAN_COINS: loanCoins,\n ALL_COINS: allCoins,\n\n findBridgeCoinWalletByXtokenAndChain (xtokenSymbol: string, chain: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.xtokenSymbol === xtokenSymbol)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.chain === chain)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinWallet (coin: string, wallet: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.wallet === wallet)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n },\n\n findBridgeCoinNetwork (coin: string, network: string): CoinWallet | undefined {\n const bridgeCoin = constants.BRIDGE_COINS.find((bridgeCoin: Coin) => bridgeCoin.coin === coin)\n if (!bridgeCoin) return undefined\n const bridgeWallet = bridgeCoin.wallets.find((bridgeWallet: Wallet) => bridgeWallet.network === network)\n if (!bridgeWallet) return undefined\n\n return {\n ...bridgeCoin,\n ...bridgeWallet\n }\n }\n }\n\n return constants\n}","import * as z from 'zod'\nimport { accountParser } from './base'\nimport { generateAuthParser } from './auth'\n\nexport const addressParser = z.object({\n index : z.number(),\n account : accountParser,\n chain : z.string(),\n address : z.string(),\n address_hash: z.string(),\n})\nexport type Address = z.infer<typeof addressParser>\n\nexport const generateAddressBodyParser = z.object({\n coin: z.string(),\n wallet: z.string(),\n}).merge(generateAuthParser)\nexport type GenerateAddressBody = z.infer<typeof generateAddressBodyParser>\n\nexport const generateAddressResponse = z.object({\n id : z.string(), // \"2448834505708930950\",\n address: z.string(), // \"0x617C03C1E2Bf81C062A4CEfbE312c070E1d86d18\",\n coin : z.string(), // \"ETH\",\n wallet : z.string(), // \"ETH\",\n memo : z.string().optional()\n})\nexport type GenerateAddressResponse = z.infer<typeof generateAddressResponse>\n","import * as z from 'zod'\n\nexport interface CurrencyStat {\n supply : string;\n max_supply: string;\n issuer : string;\n}\nexport interface CurrencyStats {\n [key: string]: CurrencyStat;\n}\n\nexport const rateParser = z.object({\n counterCurrency : z.string(),\n price : z.number(),\n priceChangePercent: z.number(),\n marketCap : z.number(),\n volume : z.number(),\n timestamp : z.number()\n})\nexport type Rate = z.infer<typeof rateParser>\n\nexport const exchangeRateParser = z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n})\nexport type ExchangeRate = z.infer<typeof exchangeRateParser>\n\nexport const exchangeRatesParser = z.array(exchangeRateParser)\nexport type ExchangeRates = z.infer<typeof exchangeRatesParser>","import * as z from 'zod'\nimport { ExtendedAssetParser } from './base'\n\nexport enum Status {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAIL = 'fail',\n PROCESSING = 'processing'\n}\n\nexport const wrapStartParser = z.object({\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n confirmations : z.number()\n})\n\nexport type WrapStart = z.infer<typeof wrapStartParser>\n\nexport const wrapSetConfParser = z.object({\n wrap_hash : z.string(),\n confirmations: z.number()\n})\nexport type WrapSetConf = z.infer<typeof wrapSetConfParser>\n\nexport const wrapParser = z.object({\n index : z.number(),\n proton_account : z.string(),\n balance : ExtendedAssetParser,\n id : z.string(),\n txid : z.string(),\n chain : z.string(),\n deposit_address: z.string(),\n status : z.nativeEnum(Status),\n finish_txid : z.string(),\n wrap_hash : z.string(),\n confirmations : z.number(),\n})\nexport type Wrap = z.infer<typeof wrapParser>","import * as z from 'zod'\n\nexport const otcOrderResponseParser = z.object({\n success : z.boolean(),\n transaction_id: z.string(),\n errormsg : z.string().optional()\n})\nexport type OtcOrderResponse = z.infer<typeof otcOrderResponseParser>\n\nexport const otcQuoteBodyParser = z.object({\n baseAmount : z.number(),\n baseSymbol : z.string(),\n quoteSymbol: z.string()\n})\nexport type OtcQuoteBody = z.infer<typeof otcQuoteBodyParser>\n\nexport const otcQuoteResponseParser = z.object({\n success : z.boolean(),\n token : z.string(),\n qty : z.number(),\n errormsg: z.string().optional()\n})\nexport type OtcQuoteResponse = z.infer<typeof otcQuoteResponseParser>","import * as z from 'zod'\nimport { singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT } from '../constants'\nimport { baseActionParser } from './actions'\n\nconst withdrawData = {\n from: z.string().refine((val) => val !== WRAP_CONTRACT, {\n message: `${WRAP_CONTRACT} must be receiver`,\n }),\n to: z.literal(WRAP_CONTRACT),\n quantity: z.string(),\n memo: z.string()\n}\nconst withdrawBodyBaseAction = baseActionParser('*', 'transfer', withdrawData)\nexport type WithdrawBodyBaseAction = z.infer<typeof withdrawBodyBaseAction>\n\nexport const withdrawBodyParser = z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser('*', 'transfer', withdrawData),\n quoteId: z.string(),\n provider: z.string().optional()\n})\nexport type WithdrawBody = z.infer<typeof withdrawBodyParser>\n\nexport const withdrawMetalResponseParser = z.object({\n success: z.boolean(),\n id : z.string(),\n})\nexport type WithdrawMetalResponse = z.infer<typeof withdrawMetalResponseParser>\n\nexport const withdrawalFeeQuoteParser = z.object({\n quoteId : z.string(),\n estimatedFee: z.string(),\n currency : z.string(),\n network : z.string(),\n})\nexport type WithdrawalFeeQuote = z.infer<typeof withdrawalFeeQuoteParser>","import * as z from 'zod'\n\nexport const withdrawHistoryMetalSwapParser = z.object({\n id : z.string(),\n status : z.string(),\n amount : z.string(),\n currency : z.string(),\n network : z.string(),\n created : z.string(),\n withdrawalAddress: z.string(),\n withdrawalHash : z.string().optional()\n})\nexport type WithdrawHistoryMetalSwap = z.infer<typeof withdrawHistoryMetalSwapParser>\n\nexport const withdrawHistoryMetalResponseParser = z.object({\n swaps : z.array(withdrawHistoryMetalSwapParser),\n page : z.number(),\n pageSize : z.number(),\n numberOfElements: z.number(),\n totalPages : z.number(),\n totalElements : z.number()\n})\nexport type WithdrawHistoryMetalResponse = z.infer<typeof withdrawHistoryMetalResponseParser>\n","interface PartialCoin {\n xtokenSymbol: string;\n xtokenPrecision: number;\n xtokenContract: string;\n}\n\nexport const isSameToken = (token1: PartialCoin, token2: PartialCoin) => {\n return token1.xtokenSymbol === token2.xtokenSymbol &&\n token1.xtokenPrecision === token2.xtokenPrecision &&\n token1.xtokenContract === token2.xtokenContract\n}"],"names":["Chains","Networks","similarChains","EthereumMainnet","BinanceBEP20","explorerLinkByChain","BitcoinMainnet","txid","BitcoinTestnet","EthereumRopsten","LitecoinMainnet","LitecoinTestnet","BitcoinCashMainnet","BitcoinCashTestnet","StellarMainnet","StellarTestnet","ProtonMainnet","ProtonTestnet","PolkadotMainnet","BinanceBEP2","EosMainnet","EosTestnet","HederaMainnet","HederaTestnet","DogeMainnet","CardanoMainnet","initializeCoins","protonChain","IS_MAINNET","IS_TESTNET","coins","allowSwap","allowBridge","allowLend","allowBorrow","name","coin","xtokenSymbol","xtokenPrecision","xtokenContract","wallets","wallet","symbol","chain","network","ERC20","precision","contract","hasWithdrawMemo","BEP20","image","coingeckoId","XLM","undefined","Ropsten","Mainnet","Testnet","walletWithDuplicateChains","find","chains","map","Set","size","length","Error","allCoins","swapCoins","filter","bridgeCoins","lendCoins","borrowCoins","loanCoins","allEnabledCoins","accountParser","z","regex","authorizationParser","actor","permission","authorizationsParser","min","ExtendedAssetParser","quantity","rawTransactionParser","expiration","ref_block_num","ref_block_prefix","max_net_usage_words","max_cpu_usage_ms","delay_sec","context_free_actions","transaction_extensions","baseActionParser","action","data","account","authorization","baseActionSerializedParser","or","webauthActionParser","key","modulus","exponent","user_presence","rpid","nonce","permissions","signature","auth_data","client_json","trx","merge","actions","singleActionTransactionParser","baseAction","webauthAction","Type","createAbstractAuthParser","signer","signatures","transaction","generateAuthParser","time","protonAccount","addressParser","index","address","address_hash","generateAddressBodyParser","generateAddressResponse","id","memo","optional","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","Status","depositBodyParser","type","hash","transactionParser","value","valueString","state","confirmations","blockHash","nullable","blockHeight","otcOrderResponseParser","success","transaction_id","errormsg","otcQuoteBodyParser","baseAmount","baseSymbol","quoteSymbol","otcQuoteResponseParser","token","qty","withdrawData","from","refine","val","message","WRAP_CONTRACT","to","withdrawBodyParser","quoteId","provider","withdrawMetalResponseParser","withdrawalFeeQuoteParser","estimatedFee","currency","withdrawHistoryMetalSwapParser","status","amount","created","withdrawalAddress","withdrawalHash","withdrawHistoryMetalResponseParser","swaps","page","pageSize","numberOfElements","totalPages","totalElements","wrapStartParser","balance","deposit_address","wrapSetConfParser","wrap_hash","wrapParser","proton_account","finish_txid","constants","SWAP_CONTRACT","FEE_FACTOR","GOOGLE_MAPS_KEY","SWAP_URL","WRAP_SERVER_URL","WRAP_ACTIONS","SAVE_ADDRESS","DELETE_ADDRESS","WRAP_START","WRAP_FINISH","WRAP_PROCESS","WRAP_SET_CONF","WRAP_TABLES","ADDRESSES","WRAPS","ADDRESSES_INDEXES","BY_ACCOUNT","BY_ADDR_HASH","WRAPS_INDEXES","BY_STATUS","BY_WRAP_HASH","WRAP_PROCESS_TIMER","FARM_CONTRACT","WEBHOOK_PERMISSION","PUBLIC_PERMISSION","LIGHT_PERMISSION","WRAP_AUTH_ACTION","METAL_ENDPOINT","METAL_PROTON_ENDPOINT","PROTON_ENDPOINTS","CHAIN_ID","CHAIN","SWAP_COINS","BRIDGE_COINS","ALL_ENABLED_COINS","LEND_COINS","BORROW_COINS","LOAN_COINS","ALL_COINS","findBridgeCoinWalletByXtokenAndChain","bridgeCoin","bridgeWallet","findBridgeCoinWallet","findBridgeCoinNetwork","token1","token2"],"mappings":"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"}
@@ -239,6 +239,19 @@ var initializeCoins = function initializeCoins(protonChain) {
239
239
  }] : []),
240
240
  image: '/img/tokens/xeth.png',
241
241
  coingeckoId: 'ethereum'
242
+ }, {
243
+ allowSwap: IS_MAINNET,
244
+ allowBridge: false,
245
+ allowLend: false,
246
+ allowBorrow: true,
247
+ name: 'Loan',
248
+ coin: 'LOAN',
249
+ xtokenSymbol: 'LOAN',
250
+ xtokenPrecision: 4,
251
+ xtokenContract: 'loan.token',
252
+ wallets: [],
253
+ image: '/img/tokens/loan.svg',
254
+ coingeckoId: ''
242
255
  }, {
243
256
  allowSwap: IS_MAINNET,
244
257
  allowBridge: true,
@@ -582,31 +595,9 @@ var initializeCoins = function initializeCoins(protonChain) {
582
595
  image: '/img/tokens/xeos.png',
583
596
  coingeckoId: 'eos'
584
597
  }, {
585
- allowSwap: false,
586
- allowBridge: IS_TESTNET,
587
- allowLend: false,
588
- allowBorrow: false,
589
- name: 'HBAR',
590
- coin: 'HBAR',
591
- xtokenSymbol: 'XHBAR',
592
- xtokenPrecision: 6,
593
- xtokenContract: 'xtokens',
594
- wallets: [].concat(IS_TESTNET ? [{
595
- wallet: 'HBAR',
596
- symbol: 'HBAR',
597
- chain: Chains.HederaTestnet,
598
- network: Networks.Testnet,
599
- precision: 8,
600
- contract: undefined,
601
- hasWithdrawMemo: false
602
- }] : []),
603
- image: '/img/tokens/xhbar.png',
604
- coingeckoId: 'hedera-hashgraph'
605
- }, // Synthethic
606
- {
607
598
  allowSwap: IS_MAINNET,
608
599
  allowBridge: IS_MAINNET,
609
- allowLend: false,
600
+ allowLend: true,
610
601
  allowBorrow: false,
611
602
  name: 'Dogecoin',
612
603
  coin: 'DOGE',
@@ -645,6 +636,28 @@ var initializeCoins = function initializeCoins(protonChain) {
645
636
  }] : []),
646
637
  image: '/img/tokens/xada.png',
647
638
  coingeckoId: 'cardano'
639
+ }, // Synthethic
640
+ {
641
+ allowSwap: false,
642
+ allowBridge: IS_TESTNET,
643
+ allowLend: false,
644
+ allowBorrow: false,
645
+ name: 'HBAR',
646
+ coin: 'HBAR',
647
+ xtokenSymbol: 'XHBAR',
648
+ xtokenPrecision: 6,
649
+ xtokenContract: 'xtokens',
650
+ wallets: [].concat(IS_TESTNET ? [{
651
+ wallet: 'HBAR',
652
+ symbol: 'HBAR',
653
+ chain: Chains.HederaTestnet,
654
+ network: Networks.Testnet,
655
+ precision: 8,
656
+ contract: undefined,
657
+ hasWithdrawMemo: false
658
+ }] : []),
659
+ image: '/img/tokens/xhbar.png',
660
+ coingeckoId: 'hedera-hashgraph'
648
661
  }, {
649
662
  allowSwap: false,
650
663
  allowBridge: false,