@proton/wrap-constants 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/coins.d.ts +42 -9
- package/dist/constants.d.ts +10 -0
- package/dist/graph.d.ts +30 -0
- package/dist/index.d.ts +2 -0
- package/dist/math.d.ts +17 -0
- package/dist/parsers/actions.d.ts +1323 -0
- package/dist/parsers/address.d.ts +932 -0
- package/dist/parsers/auth.d.ts +1816 -0
- package/dist/parsers/base.d.ts +35 -0
- package/dist/parsers/currency.d.ts +236 -0
- package/dist/parsers/deposit.d.ts +63 -0
- package/dist/parsers/dex.d.ts +508 -0
- package/dist/parsers/index.d.ts +12 -0
- package/dist/parsers/otc.d.ts +46 -0
- package/dist/parsers/pool.d.ts +51 -0
- package/dist/parsers/withdraw.d.ts +1053 -0
- package/dist/parsers/withdrawalHistory.d.ts +98 -0
- package/dist/parsers/wrap.d.ts +109 -0
- package/dist/utils.d.ts +1 -0
- package/dist/wrap-constants.cjs.development.js +1325 -310
- package/dist/wrap-constants.cjs.development.js.map +1 -1
- package/dist/wrap-constants.cjs.production.min.js +1 -1
- package/dist/wrap-constants.cjs.production.min.js.map +1 -1
- package/dist/wrap-constants.esm.js +1303 -311
- package/dist/wrap-constants.esm.js.map +1 -1
- package/package.json +14 -8
- package/src/coins.ts +563 -149
- package/src/constants.ts +41 -14
- package/src/graph.ts +126 -0
- package/src/index.ts +3 -1
- package/src/math.ts +112 -0
- package/src/parsers/actions.ts +82 -0
- package/src/parsers/address.ts +27 -0
- package/src/parsers/auth.ts +22 -0
- package/src/parsers/base.ts +18 -0
- package/src/parsers/currency.ts +89 -0
- package/src/parsers/deposit.ts +30 -0
- package/src/parsers/dex.ts +167 -0
- package/src/parsers/index.ts +12 -0
- package/src/parsers/otc.ts +23 -0
- package/src/parsers/pool.ts +51 -0
- package/src/parsers/withdraw.ts +39 -0
- package/src/parsers/withdrawalHistory.ts +23 -0
- package/src/parsers/wrap.ts +41 -0
- package/src/utils.ts +12 -1
- package/dist/parsers.d.ts +0 -849
- package/dist/pools.d.ts +0 -31
- package/src/parsers.ts +0 -258
- package/src/pools.ts +0 -26
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,o,e,n=require("zod");(o=exports.Chains||(exports.Chains={})).BitcoinMainnet="Bitcoin",o.BitcoinTestnet="Bitcoin (Testnet)",o.EthereumMainnet="Ethereum",o.EthereumRopsten="Ethereum (Ropsten)",o.LitecoinMainnet="Litecoin",o.BitcoinCashMainnet="Bitcoin Cash",o.StellarMainnet="Stellar",o.ProtonMainnet="Proton",o.ProtonTestnet="Proton (Testnet)",o.PolkadotMainnet="Polkadot",o.BinanceBEP2="Binance (BEP2)",o.BinanceBEP20="Binance (BEP20)",o.EosMainnet="EOS",(e=exports.Networks||(exports.Networks={})).Mainnet="mainnet",e.Testnet="testnet",e.Ropsten="ropsten",e.ERC20="erc20",e.BEP20="bep20";var r,a=((t={})[exports.Chains.BitcoinMainnet]=function(t){return"https://blockchain.com/btc/tx/"+t},t[exports.Chains.BitcoinTestnet]=function(t){return"https://blockstream.info/testnet/tx/"+t},t[exports.Chains.EthereumMainnet]=function(t){return"https://etherscan.io/tx/"+t},t[exports.Chains.EthereumRopsten]=function(t){return"https://ropsten.etherscan.io/tx/"+t},t[exports.Chains.LitecoinMainnet]=function(t){return"https://blockchair.com/litecoin/transaction/"+t},t[exports.Chains.BitcoinCashMainnet]=function(t){return"https://blockchair.com/bitcoin-cash/transaction/"+t},t[exports.Chains.StellarMainnet]=function(t){return"https://blockchair.com/stellar/transaction/"+t},t[exports.Chains.ProtonMainnet]=function(t){return"https://proton.bloks.io/transaction/"+t},t[exports.Chains.ProtonTestnet]=function(t){return"https://proton-test.bloks.io/transaction/"+t},t[exports.Chains.PolkadotMainnet]=function(t){return"https://polkadot.subscan.io/extrinsic/"+t},t[exports.Chains.EosMainnet]=function(t){return"https://bloks.io/transaction/"+t},t[exports.Chains.BinanceBEP2]=function(t){return"https://binance.mintscan.io/txs/"+t},t[exports.Chains.BinanceBEP20]=function(t){return"https://bscscan.com/tx/"+t},t),i=function(t){var o="proton"===t,e="proton-test"===t,n=[{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Proton",coin:"XPR",xtokenSymbol:"XPR",xtokenPrecision:4,xtokenContract:"eosio.token",wallets:[{wallet:"XPR-ERC20",symbol:"XPR",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:4,contract:"0xD7EFB00D12C2C13131FD319336FDF952525DA2AF",hasWithdrawMemo:!1}].concat(e?[{wallet:"XPR-BEP20",symbol:"XPR",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:4,contract:"0x5DE3939B2F811A61D830E6F52D13B066881412AB",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xpr.png"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"USD Coin",coin:"USDC",xtokenSymbol:"XUSDC",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1}],image:"/img/tokens/xusdc.png"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Metal",coin:"MTL",xtokenSymbol:"XMT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"MTL",symbol:"MTL",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:8,contract:"0xF433089366899D83A9F26A773D59EC7ECF30355E",hasWithdrawMemo:!1}],image:"/img/tokens/xmt.png"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Bitcoin",coin:"BTC",xtokenSymbol:"XBTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}].concat(e?[{wallet:"BTC-TESTNET",symbol:"BTC",chain:exports.Chains.BitcoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xbtc.png"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Ethereum",coin:"ETH",xtokenSymbol:"XETH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}].concat(e?[{wallet:"ETH-ROPSTEN",symbol:"ETH",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"/img/tokens/xeth.png"},{allowSwap:o,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Tether",coin:"USDT",xtokenSymbol:"XUSDT",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}],image:"/img/tokens/xusdt.png"},{allowSwap:!1,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"TrueUSD",coin:"TUSD",xtokenSymbol:"XTUSD",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"TUSD",symbol:"TUSD",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x0000000000085D4780B73119B644AE5ECD22B376",hasWithdrawMemo:!1}],image:"/img/tokens/xtusd.png"},{allowSwap:!1,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Paxos Standard",coin:"PAX",xtokenSymbol:"XPAX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"PAX",symbol:"PAX",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x8E870D67F660D95D5BE530380D0EC0BD388289E1",hasWithdrawMemo:!1}],image:"/img/tokens/xpax.png"},{allowSwap:!1,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Paxos Gold",coin:"PAXG",xtokenSymbol:"XPAXG",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}],image:"/img/tokens/xpaxg.png"},{allowSwap:o,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Uniswap",coin:"UNI",xtokenSymbol:"XUNI",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"UNI",symbol:"UNI",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984",hasWithdrawMemo:!1}],image:"/img/tokens/xuni.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"1INCH",coin:"1INCH",xtokenSymbol:"XINCH",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"1INCH",symbol:"1INCH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x111111111117DC0AA78B770FA6A738034120C302",hasWithdrawMemo:!1}],image:"/img/tokens/xinch.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Chainlink",coin:"LINK",xtokenSymbol:"XLINK",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"LINK",symbol:"LINK",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x514910771AF9CA656AF840DFF83E8264ECF986CA",hasWithdrawMemo:!1}],image:"/img/tokens/xlink.png"},{allowSwap:o,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Litecoin",coin:"LTC",xtokenSymbol:"XLTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}],image:"/img/tokens/xltc.png"},{allowSwap:o,allowBridge:o,allowLend:!1,allowBorrow:!1,name:"Bitcoin Cash",coin:"BCH",xtokenSymbol:"XBCH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}],image:"/img/tokens/xbch.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Stellar",coin:"XLM",xtokenSymbol:"XXLM",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[{wallet:"XLM",symbol:"XLM",chain:exports.Chains.StellarMainnet,network:exports.Networks.Mainnet,precision:7,contract:void 0,hasWithdrawMemo:!1}],image:"/img/tokens/xxlm.png"},{allowSwap:o,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Sense",coin:"SENSE",xtokenSymbol:"XSENSE",xtokenPrecision:4,xtokenContract:"sense",wallets:[],image:"/img/tokens/xsense.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polkadot",coin:"DOT",xtokenSymbol:"XDOT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"DOT",symbol:"DOT",chain:exports.Chains.PolkadotMainnet,network:exports.Networks.Mainnet,precision:10,contract:void 0,hasWithdrawMemo:!1}],image:"/img/tokens/xdot.png"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Binance Coin",coin:"BNB",xtokenSymbol:"XBNB",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[{wallet:"BNB",symbol:"BNB",chain:exports.Chains.BinanceBEP2,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!0}],image:"/img/tokens/xbnb.png"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"EOS",coin:"EOS",xtokenSymbol:"XEOS",xtokenPrecision:4,xtokenContract:"xtokens",wallets:[{wallet:"EOS",symbol:"EOS",chain:exports.Chains.EosMainnet,network:exports.Networks.Mainnet,precision:4,contract:void 0,hasWithdrawMemo:!0}],image:"/img/tokens/xeos.png"},{allowSwap:o,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Dogecoin",coin:"DOGE",xtokenSymbol:"XDOGE",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xdoge.png"},{allowSwap:o,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Cardano",coin:"ADA",xtokenSymbol:"XADA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xada.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Theta",coin:"THETA",xtokenSymbol:"XTHETA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xtheta.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Filecoin",coin:"FIL",xtokenSymbol:"XFIL",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xfil.png"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"TRON",coin:"TRX",xtokenSymbol:"XTRX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[],image:"/img/tokens/xtrx.png"}];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}))}};function s(){return(s=Object.assign||function(t){for(var o=1;o<arguments.length;o++){var e=arguments[o];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t}).apply(this,arguments)}(r=exports.Status||(exports.Status={})).PENDING="pending",r.SUCCESS="success",r.FAIL="fail",r.PROCESSING="processing";var l=n.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/),c=n.object({actor:l,permission:n.string()}),w=n.object({expiration:n.string(),ref_block_num:n.number(),ref_block_prefix:n.number(),max_net_usage_words:n.number(),max_cpu_usage_ms:n.number(),delay_sec:n.number(),context_free_actions:n.array(n.any()),transaction_extensions:n.array(n.any())}),p=n.object({signer:c,signatures:n.array(n.string()),transaction:w.merge(n.object({actions:n.array(n.object({account:l,name:n.string(),data:n.object({time:n.string(),protonAccount:n.string()}),authorization:n.array(c).min(1)}))}))}),x=n.object({coin:n.string(),wallet:n.string()}).merge(p),m=n.object({id:n.string(),address:n.string(),coin:n.string(),wallet:n.string(),memo:n.string().optional()}),g=n.object({id:n.string(),externalId:n.string().optional(),type:n.string(),hash:n.string(),coin:n.string(),wallet:n.string()}),k=n.object({signer:c,signatures:n.array(n.string()).min(1),transaction:w.merge(n.object({actions:n.array(n.object({account:l,name:n.literal("transfer"),data:n.object({from:n.string().refine((function(t){return"proton.wrap"!==t}),{message:"proton.wrap must be receiver"}),to:n.literal("proton.wrap"),quantity:n.string(),memo:n.string()}),authorization:n.array(c).min(1)})).min(1)})),quoteId:n.string()}),h=n.object({success:n.boolean(),id:n.string()}),d=n.object({id:n.string(),status:n.string(),amount:n.string(),currency:n.string(),network:n.string(),created:n.string(),withdrawalAddress:n.string(),withdrawalHash:n.string().optional()}),u=n.object({swaps:n.array(d),page:n.number(),pageSize:n.number(),numberOfElements:n.number(),totalPages:n.number(),totalElements:n.number()}),C=n.object({quantity:n.string(),contract:l}),b=n.object({balance:C,txid:n.string(),coin:n.string(),wallet:n.string(),deposit_address:n.string(),confirmations:n.number()}),S=n.object({wrap_hash:n.string(),confirmations:n.number()}),B=n.object({index:n.number(),proton_account:n.string(),balance:C,txid:n.string(),coin:n.string(),wallet:n.string(),deposit_address:n.string(),status:n.nativeEnum(exports.Status),finish_txid:n.string(),wrap_hash:n.string(),confirmations:n.number()}),E=n.object({coin:n.string(),wallet:n.string(),blockhash:n.string().optional().nullable(),txid:n.string(),type:n.string(),height:n.number().optional().nullable(),confirmations:n.number(),state:n.string(),entries:n.array(n.object({address:n.string(),wallet:n.string(),value:n.number(),valueString:n.string(),isChange:n.boolean()})),outputs:n.array(n.object({address:n.string(),wallet:n.string(),fromWallet:n.string(),value:n.number(),valueString:n.string(),coinbase:n.boolean()})),value:n.number(),valueString:n.string(),pending:n.boolean(),instant:n.boolean()}),P=n.object({index:n.number(),account:l,coin:n.string(),address:n.string(),wallet:n.string(),address_hash:n.string()}),A=n.object({success:n.boolean(),transaction_id:n.string(),errormsg:n.string().optional()}),y=n.object({baseAmount:n.number(),baseSymbol:n.string(),quoteSymbol:n.string()}),T=n.object({success:n.boolean(),token:n.string(),qty:n.number(),errormsg:n.string().optional()}),M=n.object({counterCurrency:n.string(),price:n.number(),priceChangePercent:n.number(),marketCap:n.number(),volume:n.number(),timestamp:n.number()}),f=n.object({contract:n.string(),symbol:n.string(),rank:n.number(),rates:n.array(M)}),N=n.array(f),R=n.object({quoteId:n.string(),estimatedFee:n.string(),currency:n.string(),network:n.string()});exports.WRAP_CONTRACT="proton.wrap",exports.accountParser=l,exports.addressParser=P,exports.authorizationParser=c,exports.depositBodyParser=g,exports.exchangeRateParser=f,exports.exchangeRatesParser=N,exports.explorerLinkByChain=a,exports.generateAddressBodyParser=x,exports.generateAddressResponse=m,exports.generateAuthParser=p,exports.initializeCoins=i,exports.initializeConstants=function(t){var o=i(t),e={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-public":"https://www.api.bloks.io/proton-wrap-testnet-public",WRAP_CONTRACT:"proton.wrap",WRAP_ACTIONS:{SAVE_ADDRESS:"saveaddress",WRAP_START:"wrapstart",WRAP_FINISH:"wrapfinish",WRAP_PROCESS:"wrapprocess",WRAP_SET_CONF:"wrapsetconf"},WRAP_TABLES:{ADDRESSES:"addresses",WRAPS:"wraps"},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",WRAP_AUTH_ACTION:"generateauth",METAL_ENDPOINT:"proton"===t?"https://cirrus.metalpay.com":"https://cirrus-dev.metalpay.com",METAL_PROTON_ENDPOINT:"proton"===t?"https://api.protonchain.com":"https://api-dev.protonchain.com",PROTON_ENDPOINTS:"proton"===t?["https://proton.greymass.com","https://proton.eoscafeblock.com","https://proton.cryptolions.io","https://proton.eosusa.news"]:["https://testnet.protonchain.com"],CHAIN_ID:"proton"===t?"384da888112027f0321850a169f737c33e53b388aad48b5adace4bab97f437e0":"71ee83bcf52142d61019d95f9cc5427ba6a0d7ff8accd9e2088ae2abeaf3d3dd",CHAIN:t,SWAP_COINS:o.swapCoins,BRIDGE_COINS:o.bridgeCoins,ALL_ENABLED_COINS:o.allEnabledCoins,ALL_COINS:o.allCoins,findBridgeCoinWallet:function(t,o){var n=e.BRIDGE_COINS.find((function(o){return o.coin===t}));if(n){var r=n.wallets.find((function(t){return t.wallet===o}));if(r)return s({},n,r)}},findBridgeCoinNetwork:function(t,o){var n=e.BRIDGE_COINS.find((function(o){return o.coin===t}));if(n){var r=n.wallets.find((function(t){return t.network===o}));if(r)return s({},n,r)}}};return e},exports.isSameToken=function(t,o){return t.xtokenSymbol===o.xtokenSymbol&&t.xtokenPrecision===o.xtokenPrecision&&t.xtokenContract===o.xtokenContract},exports.otcOrderResponseParser=A,exports.otcQuoteBodyParser=y,exports.otcQuoteResponseParser=T,exports.rateParser=M,exports.rawTransactionParser=w,exports.transactionParser=E,exports.withdrawBodyParser=k,exports.withdrawHistoryMetalResponseParser=u,exports.withdrawHistoryMetalSwapParser=d,exports.withdrawMetalResponseParser=h,exports.withdrawalFeeQuoteParser=R,exports.wrapParser=B,exports.wrapSetConfParser=S,exports.wrapStartParser=b;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t,e,o,n,r,a=require("nestjs-zod/z"),i=require("nestjs-zod"),s=(t=require("lodash.clonedeep"))&&"object"==typeof t&&"default"in t?t.default:t,c=require("bignumber.js");(n=exports.Chains||(exports.Chains={})).BitcoinMainnet="Bitcoin",n.BitcoinTestnet="Bitcoin (Testnet)",n.EthereumMainnet="Ethereum",n.EthereumRopsten="Ethereum (Ropsten)",n.LitecoinMainnet="Litecoin",n.LitecoinTestnet="Litecoin (Testnet)",n.BitcoinCashMainnet="Bitcoin Cash",n.BitcoinCashTestnet="Bitcoin Cash (Testnet)",n.StellarMainnet="Stellar",n.StellarTestnet="Stellar (Testnet)",n.ProtonMainnet="Proton",n.ProtonTestnet="Proton (Testnet)",n.PolkadotMainnet="Polkadot",n.BinanceBEP2="Binance (BEP2)",n.BinanceBEP20="Binance (BEP20)",n.EosMainnet="EOS",n.EosTestnet="EOS (Jungle Testnet)",n.HederaMainnet="Hedera (Mainnet)",n.HederaTestnet="Hedera (Testnet)",n.DogeMainnet="Dogecoin",n.CardanoMainnet="Cardano",n.AvalancheXChain="Avalanche X-Chain",n.AvalancheCChain="Avalanche C-Chain",n.PolygonMainnet="Polygon",n.TerraMainnet="Terra",n.RippleMainnet="Ripple",n.SolanaMainnet="Solana",(r=exports.Networks||(exports.Networks={})).Mainnet="mainnet",r.Testnet="testnet",r.Ropsten="ropsten",r.ERC20="erc20",r.BEP20="bep20",r.XLM="xlm";var l=((e={})[exports.Chains.EthereumMainnet]=[exports.Chains.BinanceBEP20],e[exports.Chains.BinanceBEP20]=[exports.Chains.EthereumMainnet],e),p=((o={})[exports.Chains.BitcoinMainnet]=function(t){return"https://blockchain.com/btc/tx/"+t},o[exports.Chains.BitcoinTestnet]=function(t){return"https://blockstream.info/testnet/tx/"+t},o[exports.Chains.EthereumMainnet]=function(t){return"https://etherscan.io/tx/"+t},o[exports.Chains.EthereumRopsten]=function(t){return"https://ropsten.etherscan.io/tx/"+t},o[exports.Chains.LitecoinMainnet]=function(t){return"https://blockchair.com/litecoin/transaction/"+t},o[exports.Chains.LitecoinTestnet]=function(t){return"https://blockexplorer.one/litecoin/testnet/blockHash/"+t},o[exports.Chains.BitcoinCashMainnet]=function(t){return"https://blockchair.com/bitcoin-cash/transaction/"+t},o[exports.Chains.BitcoinCashTestnet]=function(t){return"https://blockexplorer.one/bitcoin-cash/testnet/blockHash/"+t},o[exports.Chains.StellarMainnet]=function(t){return"https://blockchair.com/stellar/transaction/"+t},o[exports.Chains.StellarTestnet]=function(t){return"https://testnet.steexp.com/tx/"+t},o[exports.Chains.ProtonMainnet]=function(t,e){return"https://proton.bloks.io/transaction/"+t+(e?"?tab=traces":"")},o[exports.Chains.ProtonTestnet]=function(t,e){return"https://proton-test.bloks.io/transaction/"+t+(e?"?tab=traces":"")},o[exports.Chains.PolkadotMainnet]=function(t){return"https://polkadot.subscan.io/extrinsic/"+t},o[exports.Chains.BinanceBEP2]=function(t){return"https://binance.mintscan.io/txs/"+t},o[exports.Chains.BinanceBEP20]=function(t){return"https://bscscan.com/tx/"+t},o[exports.Chains.EosMainnet]=function(t){return"https://bloks.io/transaction/"+t},o[exports.Chains.EosTestnet]=function(t){return"https://jungle.bloks.io/transaction/"+t},o[exports.Chains.HederaMainnet]=function(t){return"https://app.dragonglass.me/transactions/"+t},o[exports.Chains.HederaTestnet]=function(t){return"https://testnet.dragonglass.me/transactions/"+t},o[exports.Chains.DogeMainnet]=function(t){return"https://blockchair.com/dogecoin/transaction/"+t},o[exports.Chains.CardanoMainnet]=function(t){return"https://explorer.cardano.org/en/transaction?id="+t},o[exports.Chains.AvalancheXChain]=function(t){return"https://avascan.info/blockchain/x/tx/"+t},o[exports.Chains.AvalancheCChain]=function(t){return"https://snowtrace.io/tx/"+t},o[exports.Chains.PolygonMainnet]=function(t){return"https://polygonscan.com/tx/"+t},o[exports.Chains.TerraMainnet]=function(t){return"https://terra.stake.id/?#/tx/"+t},o[exports.Chains.RippleMainnet]=function(t){return"https://xrpscan.com/tx/"+t},o[exports.Chains.SolanaMainnet]=function(t){return"https://explorer.solana.com/tx/"+t},o),w=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:"https://www.proton.org/images/tokens/eosio-tokenXPR.png",coingeckoId:"proton"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"USD Coin",coin:"USDC",xtokenSymbol:"XUSDC",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1},{wallet:"USDC-BEP20",symbol:"USDC",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:"0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D",hasWithdrawMemo:!1},{wallet:"USDC-XLM",symbol:"USDC",chain:exports.Chains.StellarMainnet,network:exports.Networks.XLM,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[],o?[{wallet:"USDC",symbol:"USDC",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48",hasWithdrawMemo:!1},{wallet:"USDC-XLM",symbol:"USDC",chain:exports.Chains.StellarTestnet,network:exports.Networks.XLM,precision:7,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.proton.org/images/tokens/xtokensXUSDC.png",coingeckoId:"usd-coin"},{allowSwap:!0,allowBridge:e,allowLend:!0,allowBorrow:!0,name:"Metal",coin:"MTL",xtokenSymbol:"XMT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"MTL",symbol:"MTL",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:8,contract:"0xF433089366899D83A9F26A773D59EC7ECF30355E",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXMT.png",coingeckoId:"metal"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"Bitcoin",coin:"BTC",xtokenSymbol:"XBTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],o?[{wallet:"BTC",symbol:"BTC",chain:exports.Chains.BitcoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXBTC.png",coingeckoId:"bitcoin"},{allowSwap:!0,allowBridge:!0,allowLend:!0,allowBorrow:!0,name:"Ethereum",coin:"ETH",xtokenSymbol:"XETH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[],o?[{wallet:"ETH",symbol:"ETH",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXETH.png",coingeckoId:"ethereum"},{allowSwap:!0,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Loan",coin:"LOAN",xtokenSymbol:"LOAN",xtokenPrecision:4,xtokenContract:"loan.token",wallets:[],image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/loan.png",coingeckoId:"proton-loan"},{allowSwap:!0,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Tether",coin:"USDT",xtokenSymbol:"XUSDT",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[],e?[{wallet:"USDT-BEP20",symbol:"USDT",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:"0x55d398326f99059fF775485246999027B3197955",hasWithdrawMemo:!1}]:[],o?[{wallet:"USDT",symbol:"USDT",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:6,contract:"0xDAC17F958D2EE523A2206206994597C13D831EC7",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXUSDT.png",coingeckoId:"tether"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"TrueUSD",coin:"TUSD",xtokenSymbol:"XTUSD",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"TUSD",symbol:"TUSD",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x0000000000085D4780B73119B644AE5ECD22B376",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXTUSD.png",coingeckoId:"true-usd"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Paxos Standard",coin:"PAX",xtokenSymbol:"XPAX",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"PAX",symbol:"PAX",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x8E870D67F660D95D5BE530380D0EC0BD388289E1",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXPAX.png",coingeckoId:"paxos-standard"},{allowSwap:!1,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Paxos Gold",coin:"PAXG",xtokenSymbol:"XPAXG",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[],o?[{wallet:"PAXG",symbol:"PAXG",chain:exports.Chains.EthereumRopsten,network:exports.Networks.Ropsten,precision:18,contract:"0x45804880DE22913DAFE09F4980848ECE6ECBAF78",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXPAXG.png",coingeckoId:"pax-gold"},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Storex",coin:"STRX",xtokenSymbol:"STRX",xtokenPrecision:4,xtokenContract:"storex",wallets:[],image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/strx.png",coingeckoId:""},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Mint",coin:"MINT",xtokenSymbol:"MINT",xtokenPrecision:4,xtokenContract:"protonmint",wallets:[],image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/PMLogo-04.png",coingeckoId:""},{allowSwap:e,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Snipcoins",coin:"SNIPS",xtokenSymbol:"SNIPS",xtokenPrecision:4,xtokenContract:"snipcoins",wallets:[],image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/snips.png",coingeckoId:""},{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:"https://www.proton.org/images/tokens/xtokensXUNI.png",coingeckoId:"uniswap"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"1INCH",coin:"1INCH",xtokenSymbol:"XINCH",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"1INCH",symbol:"1INCH",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x111111111117DC0AA78B770FA6A738034120C302",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXINCH.png",coingeckoId:"1inch"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Chainlink",coin:"LINK",xtokenSymbol:"XLINK",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"LINK",symbol:"LINK",chain:exports.Chains.EthereumMainnet,network:exports.Networks.ERC20,precision:18,contract:"0x514910771AF9CA656AF840DFF83E8264ECF986CA",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXLINK.png",coingeckoId:"chainlink"},{allowSwap:e,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Litecoin",coin:"LTC",xtokenSymbol:"XLTC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],o?[{wallet:"LTC",symbol:"LTC",chain:exports.Chains.LitecoinTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXLTC.png",coingeckoId:"litecoin"},{allowSwap:e,allowBridge:!0,allowLend:!1,allowBorrow:!1,name:"Bitcoin Cash",coin:"BCH",xtokenSymbol:"XBCH",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[],o?[{wallet:"BCH",symbol:"BCH",chain:exports.Chains.BitcoinCashTestnet,network:exports.Networks.Testnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXBCH.png",coingeckoId:"bitcoin-cash"},{allowSwap:!1,allowBridge:o,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:"https://www.proton.org/images/tokens/xtokensXXLM.png",coingeckoId:"stellar"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Sense",coin:"SENSE",xtokenSymbol:"XSENSE",xtokenPrecision:4,xtokenContract:"sense",wallets:[],image:"https://www.proton.org/images/tokens/senseXSENSE.png",coingeckoId:"sense"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polkadot",coin:"DOT",xtokenSymbol:"XDOT",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"DOT",symbol:"DOT",chain:exports.Chains.PolkadotMainnet,network:exports.Networks.Mainnet,precision:10,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXDOT.png",coingeckoId:"polkadot"},{allowSwap:!0,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Binance Coin",coin:"BNB",xtokenSymbol:"XBNB",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BNB",symbol:"BNB",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXBNB.png",coingeckoId:"binancecoin"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Binance USD",coin:"BUSD",xtokenSymbol:"XBUSD",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"BUSD-BEP20",symbol:"BUSD",chain:exports.Chains.BinanceBEP20,network:exports.Networks.BEP20,precision:18,contract:"0xe9e7cea3dedca5984780bafc599bd69add087d56",hasWithdrawMemo:!1}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xbusd.png",coingeckoId:"binance-usd"},{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:"https://www.proton.org/images/tokens/xtokensXEOS.png",coingeckoId:"eos"},{allowSwap:e,allowBridge:e,allowLend:!0,allowBorrow:!0,name:"Dogecoin",coin:"DOGE",xtokenSymbol:"XDOGE",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"DOGE",symbol:"DOGE",chain:exports.Chains.DogeMainnet,network:exports.Networks.Mainnet,precision:8,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXDOGE.png",coingeckoId:"dogecoin"},{allowSwap:e,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Cardano",coin:"ADA",xtokenSymbol:"XADA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"ADA",symbol:"ADA",chain:exports.Chains.CardanoMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXADA.png",coingeckoId:"cardano"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Terra",coin:"LUNA",xtokenSymbol:"XLUNA",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"LUNA",symbol:"LUNA",chain:exports.Chains.TerraMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.proton.org/images/tokens/xtokensXLUNA.png",coingeckoId:"terra-luna"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"TerraUSD",coin:"UST",xtokenSymbol:"XUST",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"UST",symbol:"UST",chain:exports.Chains.TerraMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://www.proton.org/images/tokens/xtokensXUST.png",coingeckoId:"terrausd"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Solana",coin:"SOL",xtokenSymbol:"XSOL",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"SOL",symbol:"SOL",chain:exports.Chains.SolanaMainnet,network:exports.Networks.Mainnet,precision:9,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png",coingeckoId:"solana"},{allowSwap:!1,allowBridge:e,allowLend:!1,allowBorrow:!1,name:"Ripple",coin:"XRP",xtokenSymbol:"XXRP",xtokenPrecision:6,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"XRP",symbol:"XRP",chain:exports.Chains.RippleMainnet,network:exports.Networks.Mainnet,precision:6,contract:void 0,hasWithdrawMemo:!0}]:[]),image:"https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png",coingeckoId:"ripple"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Avalanche",coin:"AVAX",xtokenSymbol:"XAVAX",xtokenPrecision:9,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"AVAX",symbol:"AVAX",chain:exports.Chains.AvalancheCChain,network:exports.Networks.Mainnet,precision:9,contract:void 0,hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXAVAX.png",coingeckoId:"avalanche-2"},{allowSwap:!1,allowBridge:!1,allowLend:!1,allowBorrow:!1,name:"Polygon",coin:"MATIC",xtokenSymbol:"XMATIC",xtokenPrecision:8,xtokenContract:"xtokens",wallets:[].concat(e?[{wallet:"MATIC",symbol:"MATIC",chain:exports.Chains.PolygonMainnet,network:exports.Networks.Mainnet,precision:18,contract:"0x0000000000000000000000000000000000000000",hasWithdrawMemo:!1}]:[]),image:"https://www.proton.org/images/tokens/xtokensXMATIC.png",coingeckoId:"matic-network"},{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:!0}]:[]),image:"https://www.proton.org/images/tokens/xtokensXHBAR.png",coingeckoId:"hedera-hashgraph"}],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}))}},u=a.z.string().regex(/^[.1-5a-z]{0,12}[.1-5a-j]?$/),h=a.z.object({actor:u,permission:a.z.string()}),d=a.z.array(h).min(1),m=a.z.object({quantity:a.z.string(),contract:u}),x=a.z.object({account:a.z.string(),name:a.z.string(),authorization:a.z.array(a.z.object({actor:a.z.string(),permission:a.z.string()})),data:a.z.any(),hex_data:a.z.string().optional()}),g=a.z.array(a.z.number().or(a.z.string())).optional(),k=a.z.object({expiration:a.z.string(),ref_block_num:a.z.number(),ref_block_prefix:a.z.number(),max_net_usage_words:a.z.number(),max_cpu_usage_ms:a.z.number(),delay_sec:a.z.number(),context_free_actions:a.z.array(x),transaction_extensions:a.z.array(g)}),b=function(t,e,o){return a.z.object({account:"*"===t?u:a.z.literal(t),name:a.z.literal(e),data:a.z.object(o),authorization:d})},C=function(t,e,o){return a.z.object({account:"*"===t?u:a.z.literal(t),name:a.z.literal(e),data:a.z.string().or(a.z.object(o)),authorization:d})},z=function(t,e,o){return a.z.object({account:a.z.literal("webauthn"),name:a.z.literal("exec"),data:a.z.object({account:u,key:a.z.object({key:a.z.array(a.z.string().or(a.z.object({modulus:a.z.string(),exponent:a.z.string()}))),user_presence:a.z.number(),rpid:a.z.string()}),nonce:a.z.number(),permissions:d,signature:a.z.object({auth_data:a.z.string(),client_json:a.z.string(),signature:a.z.string()}),trx:k.merge(a.z.object({actions:a.z.array(C(t,e,o)).length(1)}))}),authorization:d})},f=function(t,e,o){var n=b(t,e,o),r=z(t,e,o);return k.merge(a.z.object({actions:a.z.array(n.or(r)).length(1)}))};function S(){return(S=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)}function B(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,(Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function E(t,e){(null==e||e>t.length)&&(e=t.length);for(var o=0,n=new Array(e);o<e;o++)n[o]=t[o];return n}function y(t,e){var o="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(o)return(o=o.call(t)).next.bind(o);if(Array.isArray(t)||(o=function(t,e){if(t){if("string"==typeof t)return E(t,void 0);var o=Object.prototype.toString.call(t).slice(8,-1);return"Object"===o&&t.constructor&&(o=t.constructor.name),"Map"===o||"Set"===o?Array.from(t):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?E(t,void 0):void 0}}(t))||e&&t&&"number"==typeof t.length){o&&(t=o);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var A,P=function(t,e,o){return a.z.object({signer:h,signatures:a.z.array(a.z.string()).length(1),transaction:f(t,e,o)})},N=P("proton.wrap","generateauth",{time:a.z.string(),protonAccount:a.z.string()}),T=a.z.object({index:a.z.number(),account:u,chain:a.z.string(),address:a.z.string(),address_hash:a.z.string()}),D=a.z.object({coin:a.z.string(),wallet:a.z.string()}).merge(N),M=a.z.object({id:a.z.string(),address:a.z.string(),coin:a.z.string(),wallet:a.z.string(),memo:a.z.string().optional()}),_=a.z.object({counterCurrency:a.z.string(),price:a.z.number(),priceChangePercent:a.z.number(),marketCap:a.z.number(),volume:a.z.number(),timestamp:a.z.number()}),I=a.z.object({contract:a.z.string(),symbol:a.z.string(),rank:a.z.number(),rates:a.z.array(_)}),L=a.z.array(I),R=a.z.array(a.z.object({contract:a.z.string(),symbol:a.z.string(),rank:a.z.number(),rates:a.z.array(_)}));(A=exports.Type||(exports.Type={})).RECEIVE="receive",A.SEND="send";var O,v=a.z.object({id:a.z.string(),type:a.z.nativeEnum(exports.Type),hash:a.z.string(),coin:a.z.string(),wallet:a.z.string()}),X=a.z.object({id:a.z.string(),wallet:a.z.string(),value:a.z.number(),valueString:a.z.string(),address:a.z.string(),type:a.z.nativeEnum(exports.Type),state:a.z.string(),confirmations:a.z.number(),hash:a.z.string(),blockHash:a.z.string().optional().nullable(),blockHeight:a.z.number().optional().nullable()}),U=a.z.object({success:a.z.boolean(),transaction_id:a.z.string(),errormsg:a.z.string().optional()}),W=a.z.object({baseAmount:a.z.number(),baseSymbol:a.z.string(),quoteSymbol:a.z.string()}),j=a.z.object({success:a.z.boolean(),token:a.z.string(),qty:a.z.number(),errormsg:a.z.string().optional()}),F={from:a.z.string().refine((function(t){return"proton.wrap"!==t}),{message:"proton.wrap must be receiver"}),to:a.z.literal("proton.wrap"),quantity:a.z.string(),memo:a.z.string()},H=a.z.object({signer:h,signatures:a.z.array(a.z.string()).length(1),transaction:f("*","transfer",F),quoteId:a.z.string(),provider:a.z.string().optional()}),G=a.z.object({success:a.z.boolean(),id:a.z.string()}),q=a.z.object({quoteId:a.z.string(),estimatedFee:a.z.string(),currency:a.z.string(),network:a.z.string()}),V=a.z.object({id:a.z.string(),status:a.z.string(),amount:a.z.string(),currency:a.z.string(),network:a.z.string(),created:a.z.string(),withdrawalAddress:a.z.string(),withdrawalHash:a.z.string().optional()}),K=a.z.object({swaps:a.z.array(V),page:a.z.number(),pageSize:a.z.number(),numberOfElements:a.z.number(),totalPages:a.z.number(),totalElements:a.z.number()});(O=exports.Status||(exports.Status={})).PENDING="pending",O.SUCCESS="success",O.FAIL="fail",O.PROCESSING="processing";var Y,Z,Q,$=a.z.object({balance:m,id:a.z.string(),txid:a.z.string(),chain:a.z.string(),deposit_address:a.z.string(),confirmations:a.z.number()}),J=a.z.object({wrap_hash:a.z.string(),confirmations:a.z.number()}),tt=a.z.object({index:a.z.number(),proton_account:a.z.string(),balance:m,id:a.z.string(),txid:a.z.string(),chain:a.z.string(),deposit_address:a.z.string(),status:a.z.nativeEnum(exports.Status),finish_txid:a.z.string(),wrap_hash:a.z.string(),confirmations:a.z.number()}),et=a.z.string().regex(/\d+/).transform(Number),ot=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({time:a.z.number(),open:a.z.number(),high:a.z.number(),low:a.z.number(),close:a.z.number(),volume:a.z.number(),volume_bid:a.z.number(),count:a.z.number()}))),nt=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({interval:a.z.string(),dateFrom:a.z.string(),dateTo:a.z.string(),marketId:a.z.number().or(et),limit:a.z.number().or(et).default(500).refine((function(t){return t<=1e3}),"Max limit is 1000")}))),rt=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({seq:a.z.number(),block_num:a.z.number(),block_time:a.z.string(),order_id:a.z.number(),market_id:a.z.number(),quantity_init:a.z.number().optional(),quantity_curr:a.z.number(),price:a.z.number(),account_name:a.z.string(),order_side:a.z.number(),order_type:a.z.number(),status:a.z.string(),quantity_change:a.z.number(),trx_id:a.z.string()}))),at=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({account:a.z.string(),offset:a.z.number().or(et).default(0),limit:a.z.number().or(et).default(100).refine((function(t){return t<=250}),"Max limit is 250")}))),it=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({level:a.z.number(),ask:a.z.number(),bid:a.z.number(),count:a.z.number()}))),st=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({marketId:a.z.number(),step:a.z.string(),side:a.z.string(),limit:a.z.number().or(et).default(100).refine((function(t){return t<=250}),"Max limit is 250")}))),ct=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({block_num:a.z.number(),block_time:a.z.string(),trade_id:a.z.number(),market_id:a.z.number(),price:a.z.number(),bid_user:a.z.string(),bid_user_order_id:a.z.number(),bid_amount:a.z.number(),bid_fee:a.z.number(),ask_user:a.z.string(),ask_user_order_id:a.z.number(),ask_amount:a.z.number(),ask_fee:a.z.number(),order_side:a.z.number(),trx_id:a.z.string()}))),lt=function(t){function e(){return t.apply(this,arguments)||this}return B(e,t),e}(i.createZodDto(a.z.object({marketId:a.z.number().or(et),offset:a.z.number().or(et).default(0),limit:a.z.number().or(et).default(100).refine((function(t){return t<=250}),"Max limit is 250")})));(Y=exports.orderType||(exports.orderType={}))[Y.INVALID=0]="INVALID",Y[Y.MARKET=1]="MARKET",Y[Y.LIMIT=2]="LIMIT",Y[Y.STOPLOSS=3]="STOPLOSS",Y[Y.TAKEPROFIT=4]="TAKEPROFIT",(Z=exports.orderSide||(exports.orderSide={}))[Z.INVALID=0]="INVALID",Z[Z.BUY=1]="BUY",Z[Z.SELL=2]="SELL",(Q=exports.logStatus||(exports.logStatus={})).CREATE="create",Q.UPDATE="update",Q.TRANSFER="transfer",Q.CANCEL="cancel",Q.DELETE="delete";var pt=function(t,e){this.key=void 0,this.data={},this.key=t,e&&(this.data=e)},wt=function(t,e,o){this.from=void 0,this.to=void 0,this.data={},this.from=t,this.to=e,o&&(this.data=o)},ut=function(){function t(){this.nodes=[],this.links=[],this.lastPathFound=[],this.isEquals=function(t,e){return t.key===e.key}}var e=t.prototype;return e.addNode=function(t,e){this.findNode(t)||this.nodes.push(new pt(t,e))},e.addNodes=function(){for(var t=this,e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];o.forEach((function(e){return"string"==typeof e?t.addNode(e):t.addNode(e[0],e[1])}))},e.findNode=function(t){var e=this,o=new pt(t);return this.nodes.find((function(t){return e.isEquals(t,o)}))},e.findNodes=function(){for(var t=this,e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];return o.map((function(e){return t.findNode(e)}))},e.requireFindNodes=function(){var t=this.findNodes.apply(this,arguments);if(t.some((function(t){return void 0===t})))throw new Error("One of the nodes does not exist");return t},e.addLink=function(t,e,o){var n=this.requireFindNodes(t,e);this.links.push(new wt(n[0],n[1],o))},e.addLinks=function(){for(var t=this,e=arguments.length,o=new Array(e),n=0;n<e;n++)o[n]=arguments[n];o.forEach((function(e){return t.addLink.apply(t,e)}))},e.findLinkedNodes=function(t){var e=this;return this.links.reduce((function(o,n){return e.isEquals(n.from,t)&&o.push(n.to),o}),[])},e.findAllPaths=function(t,e){var o=this,n=[],r=this.requireFindNodes(t,e),a=r[0],i=r[1],c=[a],l=new Set;return function t(e){if(o.isEquals(e,i))n.push(s(c));else if(l=new Set(c.map((function(t){return t.key}))),!function t(e){if(o.isEquals(e,i))return!1;for(var n,r=y(o.findLinkedNodes(e));!(n=r()).done;){var a=n.value;if(!l.has(a.key)&&(l.add(a.key),!t(a)))return!1}return!0}(e))for(var r,a=y(o.findLinkedNodes(e));!(r=a()).done;){var p=r.value;c.includes(p)||(c.push(p),t(p),c.pop())}}(a),n},t}(),ht=function(t,e,o,n,r){var a=e,i=t.multipliedBy(e),s=t.plus(o),l=i.dividedBy(s).integerValue(c.BigNumber.ROUND_DOWN),p=a.minus(l),w=new c.BigNumber(n).dividedBy(1e4);return p.minus(p.multipliedBy(w)).integerValue(c.BigNumber.ROUND_DOWN).shiftedBy(-r)};exports.Depth_DTO=it,exports.ExtendedAssetParser=m,exports.FEE_FACTOR=1e4,exports.GetDepth_DTO=st,exports.GetOHLCV_DTO=nt,exports.GetOrderHistory_DTO=at,exports.GetTrades_DTO=lt,exports.Graph=ut,exports.ILink=wt,exports.INode=pt,exports.OHLCV_DTO=ot,exports.OrderHistory_DTO=rt,exports.Trade_DTO=ct,exports.WRAP_AUTH_ACTION="generateauth",exports.WRAP_CONTRACT="proton.wrap",exports.accountParser=u,exports.addressParser=T,exports.applyDiscountToFee=function(t,e){return e>=1e7?0*t:e>=1e6?.33*t:e>=1e5?.66*t:t},exports.authorizationParser=h,exports.authorizationsParser=d,exports.baseActionParser=b,exports.baseActionSerializedParser=C,exports.bloksRatesParser=R,exports.compute_liquidity=function(t,e,o,n){return+t.multipliedBy(e).dividedBy(o).integerValue(c.BigNumber.ROUND_DOWN).shiftedBy(-n).toFixed(n,c.BigNumber.ROUND_DOWN)},exports.compute_transfer=ht,exports.compute_transfer_curve=function(t,e,o,n,r,a){if(0===a)return ht(new c.BigNumber(t),new c.BigNumber(e),new c.BigNumber(o),n,r);for(var i=t+e,s=i,l=0,p=function(t){return(t>=0?1:-1)*Math.floor(Math.abs(t))},w=10;s!=l&&w--;){var u=p(p(s*s/(2*t))*s/(2*e));l=s,s=p(2*s*(a*i+u)/((2*a-1)*s+3*u))}var h=t+o+p(s/(2*a))-s,d=p(p(s*s/(2*(t+o)))*s/(4*a)),m=s,x=0;for(w=10;m!=x&&w--;)x=p(m),m=+new c.BigNumber(m*m+d).dividedBy(2*m+h).toFixed(0,c.BigNumber.ROUND_DOWN);if(e<=m)throw new Error("curve: insufficient reserve out");var g=new c.BigNumber(e-m),k=g.multipliedBy(n).dividedBy(1e4).plus(1).toFixed(0,c.BigNumber.ROUND_DOWN);return g.minus(k).integerValue(c.BigNumber.ROUND_DOWN).shiftedBy(-r)},exports.createAbstractAuthParser=P,exports.depositBodyParser=v,exports.exchangeRateParser=I,exports.exchangeRatesParser=L,exports.explorerLinkByChain=p,exports.generateAddressBodyParser=D,exports.generateAddressResponse=M,exports.generateAuthParser=N,exports.initializeCoins=w,exports.initializeConstants=function(t){var e=w(t),o={SWAP_CONTRACT:"proton.swaps",DEX_CONTRACT:"proton"===t?"dextest21":"dex",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",METAL_DEX_ENDPOINT:"https://metallicus-dbapi-dev01.binfra.one",PROTON_ENDPOINTS:"proton"===t?["https://metal-proton-rpc.global.binfra.one","https://proton.greymass.com","https://proton.eoscafeblock.com","https://proton.cryptolions.io","https://proton.eosusa.news"]:["https://metal-protontest-rpc.global.binfra.one","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 S({},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 S({},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 S({},n,r)}}};return o},exports.isInputInvalid=function(t,e,o){e=String(e);var n=null===t,r=!/[0-9]|\./.test(t),a="."===t&&e.indexOf(".")!==e.length-1,i=e&&-1!==e.indexOf(".")&&e.split(".")[1].length>o.xtokenPrecision;return!n&&Boolean(r||a||i)},exports.isSameToken=function(t,e){return t.xtokenSymbol===e.xtokenSymbol&&t.xtokenPrecision===e.xtokenPrecision&&t.xtokenContract===e.xtokenContract},exports.median=function(t){var e=t.slice().sort((function(t,e){return t-e})),o=Math.floor(e.length/2);return e.length%2==0?(e[o-1]+e[o])/2:e[o]},exports.otcOrderResponseParser=U,exports.otcQuoteBodyParser=W,exports.otcQuoteResponseParser=j,exports.protonExplorerTxUrl=function(t,e,o){return"proton"===t?p[exports.Chains.ProtonMainnet](e,o):p[exports.Chains.ProtonTestnet](e,o)},exports.rateParser=_,exports.similarChains=l,exports.singleActionTransactionParser=f,exports.transactionParser=X,exports.webauthActionParser=z,exports.withdrawBodyParser=H,exports.withdrawHistoryMetalResponseParser=K,exports.withdrawHistoryMetalSwapParser=V,exports.withdrawMetalResponseParser=G,exports.withdrawalFeeQuoteParser=q,exports.wrapParser=tt,exports.wrapSetConfParser=J,exports.wrapStartParser=$;
|
|
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.ts","../src/constants.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 BitcoinCashMainnet = 'Bitcoin Cash',\n StellarMainnet = 'Stellar',\n ProtonMainnet = 'Proton',\n ProtonTestnet = 'Proton (Testnet)',\n PolkadotMainnet = 'Polkadot',\n BinanceBEP2 = 'Binance (BEP2)',\n BinanceBEP20 = 'Binance (BEP20)',\n EosMainnet = 'EOS',\n}\n\nexport enum Networks {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Ropsten = 'ropsten',\n ERC20 = 'erc20',\n BEP20 = 'bep20',\n}\n\nexport interface Coin {\n allowSwap : boolean;\n allowBridge : boolean;\n allowLend : boolean;\n allowBorrow : boolean;\n name : string;\n coin : string;\n xtokenSymbol : string;\n xtokenPrecision: number;\n xtokenContract : string;\n wallets : Wallet[];\n image : string;\n balance? : Asset;\n}\n \nexport interface Wallet {\n wallet : string;\n symbol : string;\n chain : Chains;\n network : Networks;\n precision : number;\n contract : string | undefined;\n hasWithdrawMemo: boolean;\n}\n\nexport type CoinWallet = Exclude<Coin, 'wallets'> & Wallet\n\nexport const explorerLinkByChain = {\n [Chains.BitcoinMainnet] : (txid: string) => `https://blockchain.com/btc/tx/${txid}`,\n [Chains.BitcoinTestnet] : (txid: string) => `https://blockstream.info/testnet/tx/${txid}`,\n [Chains.EthereumMainnet] : (txid: string) => `https://etherscan.io/tx/${txid}`,\n [Chains.EthereumRopsten] : (txid: string) => `https://ropsten.etherscan.io/tx/${txid}`,\n [Chains.LitecoinMainnet] : (txid: string) => `https://blockchair.com/litecoin/transaction/${txid}`,\n [Chains.BitcoinCashMainnet]: (txid: string) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,\n [Chains.StellarMainnet] : (txid: string) => `https://blockchair.com/stellar/transaction/${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.EosMainnet] : (txid: string) => `https://bloks.io/transaction/${txid}`,\n [Chains.BinanceBEP2] : (txid: string) => `https://binance.mintscan.io/txs/${txid}`,\n [Chains.BinanceBEP20] : (txid: string) => `https://bscscan.com/tx/${txid}`\n}\n\ninterface InitializeReturn {\n allCoins: Coin[];\n swapCoins: Coin[];\n bridgeCoins: Coin[];\n lendCoins: Coin[];\n borrowCoins: Coin[];\n loanCoins: Coin[];\n allEnabledCoins: Coin[];\n}\n\nexport const initializeCoins = (protonChain: string): InitializeReturn => {\n const IS_MAINNET = protonChain === 'proton'\n const IS_TESTNET = protonChain === 'proton-test'\n \n const coins: Coin[] = [\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Proton',\n coin: 'XPR',\n xtokenSymbol: 'XPR',\n xtokenPrecision: 4,\n xtokenContract: 'eosio.token',\n wallets: [\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 ...(IS_TESTNET ? [{\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 image: '/img/tokens/xpr.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'USD Coin',\n coin: 'USDC',\n xtokenSymbol: 'XUSDC',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\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 image: '/img/tokens/xusdc.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Metal',\n coin: 'MTL',\n xtokenSymbol: 'XMT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n {\n wallet: 'MTL',\n symbol: 'MTL',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 8,\n contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xmt.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Bitcoin',\n coin: 'BTC',\n xtokenSymbol: 'XBTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n {\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-TESTNET',\n symbol: 'BTC',\n chain: Chains.BitcoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xbtc.png'\n },\n {\n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Ethereum',\n coin: 'ETH',\n xtokenSymbol: 'XETH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n {\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-ROPSTEN',\n symbol: 'ETH',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: '/img/tokens/xeth.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Tether',\n coin: 'USDT',\n xtokenSymbol: 'XUSDT',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n {\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 ],\n image: '/img/tokens/xusdt.png'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'TrueUSD',\n coin: 'TUSD',\n xtokenSymbol: 'XTUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n {\n wallet: 'TUSD',\n symbol: 'TUSD',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x0000000000085D4780B73119B644AE5ECD22B376',\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xtusd.png'\n },\n { \n allowSwap: false,\n allowBridge: true,\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 {\n wallet: 'PAX',\n symbol: 'PAX',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xpax.png'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Gold',\n coin: 'PAXG',\n xtokenSymbol: 'XPAXG',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n {\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 ],\n image: '/img/tokens/xpaxg.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Uniswap',\n coin: 'UNI',\n xtokenSymbol: 'XUNI',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n {\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 ],\n image: '/img/tokens/xuni.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: '1INCH',\n coin: '1INCH',\n xtokenSymbol: 'XINCH',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n {\n wallet: '1INCH',\n symbol: '1INCH',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x111111111117DC0AA78B770FA6A738034120C302',\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xinch.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Chainlink',\n coin: 'LINK',\n xtokenSymbol: 'XLINK',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n {\n wallet: 'LINK',\n symbol: 'LINK',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xlink.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Litecoin',\n coin: 'LTC',\n xtokenSymbol: 'XLTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n {\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 ],\n image: '/img/tokens/xltc.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\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 {\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 ],\n image: '/img/tokens/xbch.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Stellar',\n coin: 'XLM',\n xtokenSymbol: 'XXLM',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n {\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarMainnet,\n network: Networks.Mainnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xxlm.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Sense',\n coin: 'SENSE',\n xtokenSymbol: 'XSENSE',\n xtokenPrecision: 4,\n xtokenContract: 'sense',\n wallets: [],\n image: '/img/tokens/xsense.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polkadot',\n coin: 'DOT',\n xtokenSymbol: 'XDOT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n {\n wallet: 'DOT',\n symbol: 'DOT',\n chain: Chains.PolkadotMainnet,\n network: Networks.Mainnet,\n precision: 10,\n contract: undefined,\n hasWithdrawMemo: false\n }\n ],\n image: '/img/tokens/xdot.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\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 {\n wallet: 'BNB',\n symbol: 'BNB',\n chain: Chains.BinanceBEP2,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: true\n }\n ],\n image: '/img/tokens/xbnb.png'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'EOS',\n coin: 'EOS',\n xtokenSymbol: 'XEOS',\n xtokenPrecision: 4,\n xtokenContract: 'xtokens',\n wallets: [\n {\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 ],\n image: '/img/tokens/xeos.png'\n },\n\n // Synthethic\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Dogecoin',\n coin: 'DOGE',\n xtokenSymbol: 'XDOGE',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xdoge.png'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Cardano',\n coin: 'ADA',\n xtokenSymbol: 'XADA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xada.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Theta',\n coin: 'THETA',\n xtokenSymbol: 'XTHETA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtheta.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Filecoin',\n coin: 'FIL',\n xtokenSymbol: 'XFIL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xfil.png'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'TRON',\n coin: 'TRX',\n xtokenSymbol: 'XTRX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [],\n image: '/img/tokens/xtrx.png'\n },\n // End synthetic\n ]\n\n 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'\nimport { WRAP_CONTRACT } from './constants'\n\nexport enum Status {\n PENDING = 'pending',\n SUCCESS = 'success',\n FAIL = 'fail',\n PROCESSING = 'processing'\n}\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 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 generateAuthParser = z.object({\n signer: authorizationParser,\n signatures: z.array(z.string()),\n transaction: rawTransactionParser.merge(z.object({\n actions: z.array(z.object({\n account: accountParser,\n name: z.string(),\n data: z.object({\n time: z.string(),\n protonAccount: z.string()\n }),\n authorization: z.array(authorizationParser).min(1)\n }))\n }))\n})\nexport type GenerateAuth = z.infer<typeof generateAuthParser>\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\nexport const depositBodyParser = z.object({\n id: z.string(), // \"0x000010203121388fac991\"\n externalId: z.string().optional(), // \"2510473254188091220\"\n type: z.string(), // \"transfer\"\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 withdrawBodyParser = z.object({\n signer: authorizationParser,\n signatures: z.array(z.string()).min(1),\n transaction: rawTransactionParser.merge(z.object({\n actions: z.array(z.object({\n account: accountParser,\n name: z.literal('transfer'),\n data: z.object({\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 }),\n authorization: z.array(authorizationParser).min(1)\n })).min(1)\n })),\n quoteId: z.string()\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 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\nconst ExtendedAssetParser = z.object({\n quantity: z.string(),\n contract: accountParser\n})\nexport type ExtendedAsset = z.infer<typeof ExtendedAssetParser>\n\nexport const wrapStartParser = z.object({\n balance: ExtendedAssetParser,\n txid: z.string(),\n coin: z.string(),\n wallet: z.string(),\n deposit_address: z.string(),\n confirmations: z.number()\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 txid: z.string(),\n coin: z.string(),\n wallet: 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>\n\nexport const transactionParser = z.object({\n coin: z.string(), // \"BTC\"\n wallet: z.string(), // \"BTC\"\n blockhash: z.string().optional().nullable(), // \"000000000000000000089b270eb99f75107d6a9cde37ec944cb80a2998df7b43\"\n txid: z.string(), // \"b4781422be95fee8fbbf720e3e0fa9705ae834474ef25f5724cdd0f5d23211ed\"\n type: z.string(), // \"receive\" or \"send\"\n height: z.number().optional().nullable(), // 643159\n confirmations: z.number(), // 18369\n state: z.string(), // \"confirmed\"\n entries: z.array(z.object({\n address: z.string(), // \"1CgGHR9bUakXhLz1eBapvP4PDDtta5pHx1\"\n wallet: z.string(), // \"BTC\"\n value: z.number(), // 84456\n valueString: z.string(), // \"84456\"\n isChange: z.boolean(), // false\n })),\n outputs: z.array(z.object({\n address: z.string(), // \"1CgGHR9bUakXhLz1eBapvP4PDDtta5pHx1\"\n wallet: z.string(), // \"BTC\"\n fromWallet: z.string(), // \"BTC\"\n value: z.number(), // 84456\n valueString: z.string(), // \"84456\"\n coinbase: z.boolean(), // false\n })),\n value: z.number(), // 84456\n valueString: z.string(), // \"84456\"\n pending: z.boolean(), // false\n instant: z.boolean(), // false\n})\nexport type Transaction = z.infer<typeof transactionParser>\n\nexport const addressParser = z.object({\n index: z.number(),\n account: accountParser,\n coin: z.string(),\n address: z.string(),\n wallet: z.string(),\n address_hash: z.string(),\n})\nexport type Address = z.infer<typeof addressParser>\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>\n\nexport const rateParser = z.object({\n counterCurrency: z.string(),\n price: z.number(),\n priceChangePercent: z.number(),\n marketCap: z.number(),\n volume: z.number(),\n timestamp: z.number()\n})\nexport type Rate = z.infer<typeof rateParser>\n\nexport const exchangeRateParser = z.object({\n contract: z.string(),\n symbol: z.string(),\n rank: z.number(),\n rates: z.array(rateParser)\n})\nexport type ExchangeRate = z.infer<typeof exchangeRateParser>\n\nexport const exchangeRatesParser = z.array(exchangeRateParser)\nexport type ExchangeRates = z.infer<typeof exchangeRatesParser>\n\nexport const 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>\n\nexport interface CurrencyStat {\n supply: string;\n max_supply: string;\n issuer: string;\n}\nexport interface CurrencyStats {\n [key: string]: CurrencyStat;\n}","import { Coin, CoinWallet, initializeCoins, Wallet } from './coins'\n\nexport const WRAP_CONTRACT = 'proton.wrap'\n\nexport const initializeConstants = (chain: string) => {\n const { swapCoins, bridgeCoins, allEnabledCoins, allCoins } = 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-public'\n : 'https://www.api.bloks.io/proton-wrap-testnet-public',\n WRAP_CONTRACT,\n WRAP_ACTIONS: {\n SAVE_ADDRESS: 'saveaddress',\n WRAP_START: 'wrapstart',\n WRAP_FINISH: 'wrapfinish',\n WRAP_PROCESS: 'wrapprocess',\n WRAP_SET_CONF: 'wrapsetconf'\n },\n WRAP_TABLES: {\n ADDRESSES: 'addresses',\n WRAPS: 'wraps'\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 WRAP_AUTH_ACTION: 'generateauth',\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 ALL_COINS: allCoins,\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 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}","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","Status","explorerLinkByChain","BitcoinMainnet","txid","BitcoinTestnet","EthereumMainnet","EthereumRopsten","LitecoinMainnet","BitcoinCashMainnet","StellarMainnet","ProtonMainnet","ProtonTestnet","PolkadotMainnet","EosMainnet","BinanceBEP2","BinanceBEP20","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","Mainnet","undefined","Testnet","Ropsten","allCoins","swapCoins","filter","bridgeCoins","lendCoins","borrowCoins","loanCoins","allEnabledCoins","accountParser","z","regex","authorizationParser","actor","permission","rawTransactionParser","expiration","ref_block_num","ref_block_prefix","max_net_usage_words","max_cpu_usage_ms","delay_sec","context_free_actions","transaction_extensions","generateAuthParser","signer","signatures","transaction","merge","actions","account","data","time","protonAccount","authorization","min","generateAddressBodyParser","generateAddressResponse","id","address","memo","optional","depositBodyParser","externalId","type","hash","withdrawBodyParser","from","refine","val","message","WRAP_CONTRACT","to","quantity","quoteId","withdrawMetalResponseParser","success","withdrawHistoryMetalSwapParser","status","amount","currency","created","withdrawalAddress","withdrawalHash","withdrawHistoryMetalResponseParser","swaps","page","pageSize","numberOfElements","totalPages","totalElements","ExtendedAssetParser","wrapStartParser","balance","deposit_address","confirmations","wrapSetConfParser","wrap_hash","wrapParser","index","proton_account","finish_txid","transactionParser","blockhash","nullable","height","state","entries","value","valueString","isChange","outputs","fromWallet","coinbase","pending","instant","addressParser","address_hash","otcOrderResponseParser","transaction_id","errormsg","otcQuoteBodyParser","baseAmount","baseSymbol","quoteSymbol","otcQuoteResponseParser","token","qty","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","withdrawalFeeQuoteParser","estimatedFee","constants","SWAP_CONTRACT","FEE_FACTOR","GOOGLE_MAPS_KEY","SWAP_URL","WRAP_SERVER_URL","WRAP_ACTIONS","SAVE_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","WRAP_AUTH_ACTION","METAL_ENDPOINT","METAL_PROTON_ENDPOINT","PROTON_ENDPOINTS","CHAIN_ID","CHAIN","SWAP_COINS","BRIDGE_COINS","ALL_ENABLED_COINS","ALL_COINS","findBridgeCoinWallet","bridgeCoin","find","bridgeWallet","findBridgeCoinNetwork","token1","token2"],"mappings":"0EAEYA,EAgBAC,oBAhBAD,EAAAA,iBAAAA,6CAERA,qCACAA,6BACAA,uCACAA,6BACAA,oCACAA,2BACAA,yBACAA,mCACAA,6BACAA,+BACAA,iCACAA,oBAGQC,EAAAA,mBAAAA,wCAERA,oBACAA,oBACAA,gBACAA,oBCpBQC,EDkDCC,UACRH,eAAOI,gBAAqB,SAACC,0CAAkDA,KAC/EL,eAAOM,gBAAqB,SAACD,gDAAwDA,KACrFL,eAAOO,iBAAqB,SAACF,oCAA4CA,KACzEL,eAAOQ,iBAAqB,SAACH,4CAAoDA,KACjFL,eAAOS,iBAAqB,SAACJ,wDAAgEA,KAC7FL,eAAOU,oBAAqB,SAACL,4DAAoEA,KACjGL,eAAOW,gBAAqB,SAACN,uDAA+DA,KAC5FL,eAAOY,eAAqB,SAACP,gDAAwDA,KACrFL,eAAOa,eAAqB,SAACR,qDAA6DA,KAC1FL,eAAOc,iBAAqB,SAACT,kDAA0DA,KACvFL,eAAOe,YAAqB,SAACV,yCAAiDA,KAC9EL,eAAOgB,aAAqB,SAACX,4CAAoDA,KACjFL,eAAOiB,cAAqB,SAACZ,mCAA2CA,MAahEa,EAAkB,SAACC,OACtBC,EAA6B,WAAhBD,EACbE,EAA6B,gBAAhBF,EAEbG,EAAgB,CAClB,CACIC,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,MACNC,aAAc,MACdC,gBAAiB,EACjBC,eAAgB,cAChBC,SACI,CACIC,OAAQ,YACRC,OAAQ,MACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,WAEjBnB,EAAa,CAAC,CACdY,OAAQ,YACRC,OAAQ,MACRC,MAAOnC,eAAOiB,aACdmB,QAASnC,iBAASwC,MAClBH,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,uBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,OACRC,OAAQ,OACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,yBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,MACNC,aAAc,MACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,uBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,SACI,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOI,eACdgC,QAASnC,iBAAS0C,QAClBL,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,WAEjBnB,EAAa,CAAC,CACdY,OAAQ,cACRC,OAAQ,MACRC,MAAOnC,eAAOM,eACd8B,QAASnC,iBAAS4C,QAClBP,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,IACjB,IAERE,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,SACI,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAAS0C,QAClBL,UAAW,GACXC,SAAU,6CACVC,iBAAiB,WAEjBnB,EAAa,CAAC,CACdY,OAAQ,cACRC,OAAQ,MACRC,MAAOnC,eAAOQ,gBACd4B,QAASnC,iBAAS6C,QAClBR,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IACjB,IAERE,MAAO,wBAEX,CACInB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,SACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,OACRC,OAAQ,OACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,EACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,yBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,OACRC,OAAQ,OACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,yBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,iBACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,aACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,OACRC,OAAQ,OACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,yBAEX,CACInB,UAAWH,EACXI,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,QACRC,OAAQ,QACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,yBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,YACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,OACRC,OAAQ,OACRC,MAAOnC,eAAOO,gBACd6B,QAASnC,iBAASoC,MAClBC,UAAW,GACXC,SAAU,6CACVC,iBAAiB,IAGzBE,MAAO,yBAEX,CACInB,UAAWH,EACXI,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOS,gBACd2B,QAASnC,iBAAS0C,QAClBL,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,UAAWH,EACXI,YAAaJ,EACbK,WAAW,EACXC,aAAa,EACbC,KAAM,eACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOU,mBACd0B,QAASnC,iBAAS0C,QAClBL,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOW,eACdyB,QAASnC,iBAAS0C,QAClBL,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,SACdC,gBAAiB,EACjBC,eAAgB,QAChBC,QAAS,GACTU,MAAO,0BAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOc,gBACdsB,QAASnC,iBAAS0C,QAClBL,UAAW,GACXC,cAAUK,EACVJ,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,eACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOgB,YACdoB,QAASnC,iBAAS0C,QAClBL,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,IAGzBE,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,MACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,CACL,CACIC,OAAQ,MACRC,OAAQ,MACRC,MAAOnC,eAAOe,WACdqB,QAASnC,iBAAS0C,QAClBL,UAAW,EACXC,cAAUK,EACVJ,iBAAiB,IAGzBE,MAAO,yBAKPnB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,OACNC,aAAc,QACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,yBAEX,CACInB,UAAWH,EACXI,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,UACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,QACNC,KAAM,QACNC,aAAc,SACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,0BAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,WACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,wBAEX,CACInB,WAAW,EACXC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,KAAM,OACNC,KAAM,MACNC,aAAc,OACdC,gBAAiB,EACjBC,eAAgB,UAChBC,QAAS,GACTU,MAAO,+BAKR,CACHK,SAAUzB,EACV0B,UAAW1B,EAAM2B,QAAO,SAAArB,UAAQA,EAAKL,aACrC2B,YAAa5B,EAAM2B,QAAO,SAAArB,UAAQA,EAAKJ,eACvC2B,UAAW7B,EAAM2B,QAAO,SAAArB,UAAQA,EAAKH,aACrC2B,YAAa9B,EAAM2B,QAAO,SAAArB,UAAQA,EAAKF,eACvC2B,UAAW/B,EAAM2B,QAAO,SAAArB,UAAQA,EAAKH,WAAaG,EAAKF,eACvD4B,gBAAiBhC,EAAM2B,QAAO,SAAArB,UAAQA,EAAKL,WAAaK,EAAKJ,iOCpmBzDtB,EAAAA,iBAAAA,sCAERA,oBACAA,cACAA,0BAGJ,IAAaqD,EAAgBC,WAAWC,MAAM,+BAEjCC,EAAsBF,SAAS,CACxCG,MAAOJ,EACPK,WAAYJ,aAIHK,EAAuBL,SAAS,CACzCM,WAAYN,WACZO,cAAeP,WACfQ,iBAAkBR,WAClBS,oBAAqBT,WACrBU,iBAAkBV,WAClBW,UAAWX,WACXY,qBAAsBZ,QAAQA,SAC9Ba,uBAAwBb,QAAQA,WAGvBc,EAAqBd,SAAS,CACvCe,OAAQb,EACRc,WAAYhB,QAAQA,YACpBiB,YAAaZ,EAAqBa,MAAMlB,SAAS,CAC7CmB,QAASnB,QAAQA,SAAS,CACtBoB,QAASrB,EACT5B,KAAM6B,WACNqB,KAAMrB,SAAS,CACbsB,KAAMtB,WACNuB,cAAevB,aAEjBwB,cAAexB,QAAQE,GAAqBuB,IAAI,WAM/CC,EAA4B1B,SAAS,CAC9C5B,KAAM4B,WACNvB,OAAQuB,aACTkB,MAAMJ,GAGIa,EAA0B3B,SAAS,CAC5C4B,GAAS5B,WACT6B,QAAS7B,WACT5B,KAAS4B,WACTvB,OAASuB,WACT8B,KAAS9B,WAAW+B,aAIXC,EAAoBhC,SAAS,CACtC4B,GAAQ5B,WACRiC,WAAYjC,WAAW+B,WACvBG,KAAQlC,WACRmC,KAAQnC,WACR5B,KAAQ4B,WACRvB,OAAQuB,aAICoC,EAAqBpC,SAAS,CACvCe,OAAQb,EACRc,WAAYhB,QAAQA,YAAYyB,IAAI,GACpCR,YAAaZ,EAAqBa,MAAMlB,SAAS,CAC7CmB,QAASnB,QAAQA,SAAS,CACtBoB,QAASrB,EACT5B,KAAM6B,UAAU,YAChBqB,KAAMrB,SAAS,CACXqC,KAAMrC,WAAWsC,QAAO,SAACC,SC7EZ,gBD6EoBA,IAAuB,CACpDC,QAAYC,iCAEhBC,GAAI1C,UChFS,eDiFb2C,SAAU3C,WACV8B,KAAM9B,aAEVwB,cAAexB,QAAQE,GAAqBuB,IAAI,MAChDA,IAAI,MAEZmB,QAAS5C,aAIA6C,EAA8B7C,SAAS,CAChD8C,QAAS9C,YACT4B,GAAI5B,aAIK+C,EAAiC/C,SAAS,CACnD4B,GAAI5B,WACJgD,OAAQhD,WACRiD,OAAQjD,WACRkD,SAAUlD,WACVpB,QAASoB,WACTmD,QAASnD,WACToD,kBAAmBpD,WACnBqD,eAAgBrD,WAAW+B,aAIlBuB,EAAqCtD,SAAS,CACvDuD,MAAOvD,QAAQ+C,GACfS,KAAMxD,WACNyD,SAAUzD,WACV0D,iBAAkB1D,WAClB2D,WAAY3D,WACZ4D,cAAe5D,aAIb6D,EAAsB7D,SAAS,CACjC2C,SAAU3C,WACVjB,SAAUgB,IAID+D,EAAkB9D,SAAS,CACpC+D,QAAiBF,EACjBhH,KAAiBmD,WACjB5B,KAAiB4B,WACjBvB,OAAiBuB,WACjBgE,gBAAiBhE,WACjBiE,cAAiBjE,aAIRkE,EAAoBlE,SAAS,CACtCmE,UAAiBnE,WACjBiE,cAAiBjE,aAIRoE,EAAapE,SAAS,CAC/BqE,MAAiBrE,WACjBsE,eAAiBtE,WACjB+D,QAAiBF,EACjBhH,KAAiBmD,WACjB5B,KAAiB4B,WACjBvB,OAAiBuB,WACjBgE,gBAAiBhE,WACjBgD,OAAiBhD,aAAatD,gBAC9B6H,YAAiBvE,WACjBmE,UAAiBnE,WACjBiE,cAAiBjE,aAIRwE,EAAoBxE,SAAS,CACtC5B,KAAe4B,WACfvB,OAAeuB,WACfyE,UAAezE,WAAW+B,WAAW2C,WACrC7H,KAAemD,WACfkC,KAAelC,WACf2E,OAAe3E,WAAW+B,WAAW2C,WACrCT,cAAejE,WACf4E,MAAe5E,WACf6E,QAAS7E,QAAQA,SAAS,CACtB6B,QAAa7B,WACbvB,OAAauB,WACb8E,MAAa9E,WACb+E,YAAa/E,WACbgF,SAAahF,eAEjBiF,QAASjF,QAAQA,SAAS,CACtB6B,QAAa7B,WACbvB,OAAauB,WACbkF,WAAalF,WACb8E,MAAa9E,WACb+E,YAAa/E,WACbmF,SAAanF,eAEjB8E,MAAa9E,WACb+E,YAAa/E,WACboF,QAAapF,YACbqF,QAAarF,cAIJsF,EAAgBtF,SAAS,CAClCqE,MAAcrE,WACdoB,QAAcrB,EACd3B,KAAc4B,WACd6B,QAAc7B,WACdvB,OAAcuB,WACduF,aAAcvF,aAILwF,EAAyBxF,SAAS,CAC3C8C,QAAS9C,YACTyF,eAAgBzF,WAChB0F,SAAU1F,WAAW+B,aAIZ4D,EAAqB3F,SAAS,CACvC4F,WAAY5F,WACZ6F,WAAY7F,WACZ8F,YAAa9F,aAIJ+F,EAAyB/F,SAAS,CAC3C8C,QAAS9C,YACTgG,MAAOhG,WACPiG,IAAKjG,WACL0F,SAAU1F,WAAW+B,aAIZmE,EAAalG,SAAS,CAC/BmG,gBAAiBnG,WACjBoG,MAAOpG,WACPqG,mBAAoBrG,WACpBsG,UAAWtG,WACXuG,OAAQvG,WACRwG,UAAWxG,aAIFyG,EAAqBzG,SAAS,CACvCjB,SAAUiB,WACVtB,OAAQsB,WACR0G,KAAM1G,WACN2G,MAAO3G,QAAQkG,KAINU,EAAsB5G,QAAQyG,GAG9BI,EAA2B7G,SAAS,CAC7C4C,QAAS5C,WACT8G,aAAc9G,WACdkD,SAAUlD,WACVpB,QAASoB,mCCpPgB,0WAEM,SAACrB,SAC8BjB,EAAgBiB,GAExEoI,EAAY,CACdC,cAAe,eACfC,WAAY,IACZC,gBAAiB,0CACjBC,SAAoB,WAAVxI,EACJ,6BACA,kCACNyI,gBAA2B,WAAVzI,EACX,8CACA,sDACN8D,cAfqB,cAgBrB4E,aAAc,CACVC,aAAc,cACdC,WAAY,YACZC,YAAa,aACbC,aAAc,cACdC,cAAe,eAEnBC,YAAa,CACTC,UAAW,YACXC,MAAO,SAEXC,kBAAmB,CACfC,WAAY,EACZC,aAAc,GAElBC,cAAe,CACXF,WAAY,EACZG,UAAW,EACXC,aAAc,GAElBC,mBAAoB,IAEpBC,cAAe,cAEfC,mBAAoB,UACpBC,kBAAmB,SACnBC,iBAAkB,eAElBC,eAA0B,WAAV9J,EACV,8BACA,kCAEN+J,sBAAiC,WAAV/J,EACjB,8BACA,kCAENgK,iBAA4B,WAAVhK,EACZ,CAAC,8BAA+B,kCAAmC,gCAAiC,8BACpG,CAAC,mCAEPiK,SAAoB,WAAVjK,EACJ,mEACA,mEAENkK,MAAOlK,EAEPmK,aA3DItJ,UA4DJuJ,eA5DerJ,YA6DfsJ,oBA7D4BlJ,gBA8D5BmJ,YA9D6C1J,SAgE7C2J,8BAAsB9K,EAAcK,OAC1B0K,EAAapC,EAAUgC,aAAaK,MAAK,SAACD,UAAqBA,EAAW/K,OAASA,QACpF+K,OACCE,EAAeF,EAAW3K,QAAQ4K,MAAK,SAACC,UAAyBA,EAAa5K,SAAWA,QAC1F4K,cAGEF,EACAE,KAIXC,+BAAuBlL,EAAcQ,OAC3BuK,EAAapC,EAAUgC,aAAaK,MAAK,SAACD,UAAqBA,EAAW/K,OAASA,QACpF+K,OACCE,EAAeF,EAAW3K,QAAQ4K,MAAK,SAACC,UAAyBA,EAAazK,UAAYA,QAC3FyK,cAGEF,EACAE,aAKRtC,uBCxFgB,SAACwC,EAAqBC,UACtCD,EAAOlL,eAAiBmL,EAAOnL,cAC/BkL,EAAOjL,kBAAoBkL,EAAOlL,iBAClCiL,EAAOhL,iBAAmBiL,EAAOjL"}
|
|
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/parsers/dex.ts","../src/graph.ts","../src/math.ts","../src/utils.ts"],"sourcesContent":["import { Asset } from '@bloks/numbers'\n\nexport enum Chains {\n BitcoinMainnet = 'Bitcoin',\n BitcoinTestnet = 'Bitcoin (Testnet)',\n EthereumMainnet = 'Ethereum',\n EthereumRopsten = 'Ethereum (Ropsten)',\n LitecoinMainnet = 'Litecoin',\n LitecoinTestnet = 'Litecoin (Testnet)',\n BitcoinCashMainnet = 'Bitcoin Cash',\n BitcoinCashTestnet = 'Bitcoin Cash (Testnet)',\n StellarMainnet = 'Stellar',\n StellarTestnet = 'Stellar (Testnet)',\n ProtonMainnet = 'Proton',\n ProtonTestnet = 'Proton (Testnet)',\n PolkadotMainnet = 'Polkadot',\n BinanceBEP2 = 'Binance (BEP2)',\n BinanceBEP20 = 'Binance (BEP20)',\n EosMainnet = 'EOS',\n EosTestnet = 'EOS (Jungle Testnet)',\n HederaMainnet = 'Hedera (Mainnet)',\n HederaTestnet = 'Hedera (Testnet)',\n DogeMainnet = 'Dogecoin',\n CardanoMainnet = 'Cardano',\n AvalancheXChain = 'Avalanche X-Chain',\n AvalancheCChain = 'Avalanche C-Chain',\n PolygonMainnet = 'Polygon',\n TerraMainnet = 'Terra',\n RippleMainnet = 'Ripple',\n SolanaMainnet = 'Solana'\n}\n\nexport enum Networks {\n Mainnet = 'mainnet',\n Testnet = 'testnet',\n Ropsten = 'ropsten',\n ERC20 = 'erc20',\n BEP20 = 'bep20',\n XLM = 'xlm',\n}\n\nexport const similarChains = {\n [Chains.EthereumMainnet]: [Chains.BinanceBEP20],\n [Chains.BinanceBEP20]: [Chains.EthereumMainnet],\n}\n\nexport interface Coin {\n allowSwap : boolean;\n allowBridge : boolean;\n allowLend : boolean;\n allowBorrow : boolean;\n name : string;\n coin : string;\n xtokenSymbol : string;\n xtokenPrecision: number;\n xtokenContract : string;\n wallets : Wallet[];\n image : string;\n coingeckoId : string;\n balance? : Asset;\n}\n \nexport interface Wallet {\n wallet : string;\n symbol : string;\n chain : Chains;\n network : Networks;\n precision : number;\n contract : string | undefined;\n hasWithdrawMemo: boolean;\n}\n\nexport type CoinWallet = Exclude<Coin, 'wallets'> & Wallet\n\nexport const explorerLinkByChain = {\n [Chains.BitcoinMainnet] : (txid: string) => `https://blockchain.com/btc/tx/${txid}`,\n [Chains.BitcoinTestnet] : (txid: string) => `https://blockstream.info/testnet/tx/${txid}`,\n [Chains.EthereumMainnet] : (txid: string) => `https://etherscan.io/tx/${txid}`,\n [Chains.EthereumRopsten] : (txid: string) => `https://ropsten.etherscan.io/tx/${txid}`,\n [Chains.LitecoinMainnet] : (txid: string) => `https://blockchair.com/litecoin/transaction/${txid}`,\n [Chains.LitecoinTestnet] : (txid: string) => `https://blockexplorer.one/litecoin/testnet/blockHash/${txid}`,\n [Chains.BitcoinCashMainnet]: (txid: string) => `https://blockchair.com/bitcoin-cash/transaction/${txid}`,\n [Chains.BitcoinCashTestnet]: (txid: string) => `https://blockexplorer.one/bitcoin-cash/testnet/blockHash/${txid}`,\n [Chains.StellarMainnet] : (txid: string) => `https://blockchair.com/stellar/transaction/${txid}`,\n [Chains.StellarTestnet] : (txid: string) => `https://testnet.steexp.com/tx/${txid}`,\n [Chains.ProtonMainnet] : (txid: string, traces?: boolean) => `https://proton.bloks.io/transaction/${txid}${traces ? '?tab=traces' : ''}`,\n [Chains.ProtonTestnet] : (txid: string, traces?: boolean) => `https://proton-test.bloks.io/transaction/${txid}${traces ? '?tab=traces' : ''}`,\n [Chains.PolkadotMainnet] : (txid: string) => `https://polkadot.subscan.io/extrinsic/${txid}`,\n [Chains.BinanceBEP2] : (txid: string) => `https://binance.mintscan.io/txs/${txid}`,\n [Chains.BinanceBEP20] : (txid: string) => `https://bscscan.com/tx/${txid}`,\n [Chains.EosMainnet] : (txid: string) => `https://bloks.io/transaction/${txid}`,\n [Chains.EosTestnet] : (txid: string) => `https://jungle.bloks.io/transaction/${txid}`,\n [Chains.HederaMainnet] : (txid: string) => `https://app.dragonglass.me/transactions/${txid}`,\n [Chains.HederaTestnet] : (txid: string) => `https://testnet.dragonglass.me/transactions/${txid}`,\n [Chains.DogeMainnet] : (txid: string) => `https://blockchair.com/dogecoin/transaction/${txid}`,\n [Chains.CardanoMainnet] : (txid: string) => `https://explorer.cardano.org/en/transaction?id=${txid}`,\n [Chains.AvalancheXChain] : (txid: string) => `https://avascan.info/blockchain/x/tx/${txid}`,\n [Chains.AvalancheCChain] : (txid: string) => `https://snowtrace.io/tx/${txid}`,\n [Chains.PolygonMainnet] : (txid: string) => `https://polygonscan.com/tx/${txid}`,\n [Chains.TerraMainnet] : (txid: string) => `https://terra.stake.id/?#/tx/${txid}`,\n [Chains.RippleMainnet] : (txid: string) => `https://xrpscan.com/tx/${txid}`,\n [Chains.SolanaMainnet] : (txid: string) => `https://explorer.solana.com/tx/${txid}`,\n}\n\nexport const protonExplorerTxUrl = (chain: string, txId: string, traces?: boolean) => chain === 'proton'\n ? explorerLinkByChain[Chains.ProtonMainnet](txId, traces)\n : explorerLinkByChain[Chains.ProtonTestnet](txId, traces)\n\n// Initialize\nexport const initializeCoins = (protonChain: string): {\n allCoins : Coin[];\n swapCoins : Coin[];\n bridgeCoins : Coin[];\n lendCoins : Coin[];\n borrowCoins : Coin[];\n loanCoins : Coin[];\n allEnabledCoins: Coin[];\n} => {\n const IS_MAINNET = protonChain === 'proton'\n const IS_TESTNET = protonChain === 'proton-test'\n \n const coins: Coin[] = [\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Proton',\n coin: 'XPR',\n xtokenSymbol: 'XPR',\n xtokenPrecision: 4,\n xtokenContract: 'eosio.token',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'XPR-ERC20',\n symbol: 'XPR',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 4,\n contract: '0xD7EFB00D12C2C13131FD319336FDF952525DA2AF',\n hasWithdrawMemo: false\n },\n {\n wallet: 'XPR-BEP20',\n symbol: 'XPR',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 4,\n contract: '0x5DE3939B2F811A61D830E6F52D13B066881412AB',\n hasWithdrawMemo: false\n }\n ]: []),\n ],\n image: 'https://www.proton.org/images/tokens/eosio-tokenXPR.png',\n coingeckoId: 'proton'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'USD Coin',\n coin: 'USDC',\n xtokenSymbol: 'XUSDC',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'USDC',\n symbol: 'USDC',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-BEP20',\n symbol: 'USDC',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0x8AC76A51CC950D9822D68B83FE1AD97B32CD580D',\n hasWithdrawMemo: false\n },\n {\n wallet: 'USDC-XLM',\n symbol: 'USDC',\n chain: Chains.StellarMainnet,\n network: Networks.XLM,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n },\n ]: []),\n ...(IS_TESTNET ? [\n {\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 wallet: 'USDC-XLM',\n symbol: 'USDC',\n chain: Chains.StellarTestnet,\n network: Networks.XLM,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n },\n ]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXUSDC.png',\n coingeckoId: 'usd-coin'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Metal',\n coin: 'MTL',\n xtokenSymbol: 'XMT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MTL',\n symbol: 'MTL',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 8,\n contract: '0xF433089366899D83A9F26A773D59EC7ECF30355E',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXMT.png',\n coingeckoId: 'metal'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Bitcoin',\n coin: 'BTC',\n xtokenSymbol: 'XBTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BTC',\n symbol: 'BTC',\n chain: Chains.BitcoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXBTC.png',\n coingeckoId: 'bitcoin'\n },\n {\n allowSwap: true,\n allowBridge: true,\n allowLend: true,\n allowBorrow: true,\n name: 'Ethereum',\n coin: 'ETH',\n xtokenSymbol: 'XETH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'ETH',\n symbol: 'ETH',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXETH.png',\n coingeckoId: 'ethereum'\n },\n { \n allowSwap: true,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Loan',\n coin: 'LOAN',\n xtokenSymbol: 'LOAN',\n xtokenPrecision: 4,\n xtokenContract: 'loan.token',\n wallets: [],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/loan.png',\n coingeckoId: 'proton-loan'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Tether',\n coin: 'USDT',\n xtokenSymbol: 'XUSDT',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_MAINNET ? [{\n wallet: 'USDT-BEP20',\n symbol: 'USDT',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0x55d398326f99059fF775485246999027B3197955',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'USDT',\n symbol: 'USDT',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 6,\n contract: '0xDAC17F958D2EE523A2206206994597C13D831EC7',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXUSDT.png',\n coingeckoId: 'tether'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TrueUSD',\n coin: 'TUSD',\n xtokenSymbol: 'XTUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'TUSD',\n symbol: 'TUSD',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x0000000000085D4780B73119B644AE5ECD22B376',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXTUSD.png',\n coingeckoId: 'true-usd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Standard',\n coin: 'PAX',\n xtokenSymbol: 'XPAX',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAX',\n symbol: 'PAX',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x8E870D67F660D95D5BE530380D0EC0BD388289E1',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXPAX.png',\n coingeckoId: 'paxos-standard'\n },\n { \n allowSwap: false,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Paxos Gold',\n coin: 'PAXG',\n xtokenSymbol: 'XPAXG',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'PAXG',\n symbol: 'PAXG',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x45804880DE22913DAFE09F4980848ECE6ECBAF78',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXPAXG.png',\n coingeckoId: 'pax-gold'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Storex',\n coin: 'STRX',\n xtokenSymbol: 'STRX',\n xtokenPrecision: 4,\n xtokenContract: 'storex',\n wallets: [],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/strx.png',\n coingeckoId: ''\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Mint',\n coin: 'MINT',\n xtokenSymbol: 'MINT',\n xtokenPrecision: 4,\n xtokenContract: 'protonmint',\n wallets: [],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/PMLogo-04.png',\n coingeckoId: ''\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Snipcoins',\n coin: 'SNIPS',\n xtokenSymbol: 'SNIPS',\n xtokenPrecision: 4,\n xtokenContract: 'snipcoins',\n wallets: [],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/snips.png',\n coingeckoId: ''\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Uniswap',\n coin: 'UNI',\n xtokenSymbol: 'XUNI',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'UNI',\n symbol: 'UNI',\n chain: Chains.EthereumRopsten,\n network: Networks.Ropsten,\n precision: 18,\n contract: '0x1F9840A85D5AF5BF1D1762F925BDADDC4201F984',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXUNI.png',\n coingeckoId: 'uniswap'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: '1INCH',\n coin: '1INCH',\n xtokenSymbol: 'XINCH',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: '1INCH',\n symbol: '1INCH',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x111111111117DC0AA78B770FA6A738034120C302',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXINCH.png',\n coingeckoId: '1inch'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Chainlink',\n coin: 'LINK',\n xtokenSymbol: 'XLINK',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LINK',\n symbol: 'LINK',\n chain: Chains.EthereumMainnet,\n network: Networks.ERC20,\n precision: 18,\n contract: '0x514910771AF9CA656AF840DFF83E8264ECF986CA',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXLINK.png',\n coingeckoId: 'chainlink'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Litecoin',\n coin: 'LTC',\n xtokenSymbol: 'XLTC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'LTC',\n symbol: 'LTC',\n chain: Chains.LitecoinTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXLTC.png',\n coingeckoId: 'litecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'Bitcoin Cash',\n coin: 'BCH',\n xtokenSymbol: 'XBCH',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'BCH',\n symbol: 'BCH',\n chain: Chains.BitcoinCashTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXBCH.png',\n coingeckoId: 'bitcoin-cash'\n },\n { \n allowSwap: false,\n allowBridge: IS_TESTNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Stellar',\n coin: 'XLM',\n xtokenSymbol: 'XXLM',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarMainnet,\n network: Networks.Mainnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'XLM',\n symbol: 'XLM',\n chain: Chains.StellarTestnet,\n network: Networks.Testnet,\n precision: 7,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXXLM.png',\n coingeckoId: 'stellar'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Sense',\n coin: 'SENSE',\n xtokenSymbol: 'XSENSE',\n xtokenPrecision: 4,\n xtokenContract: 'sense',\n wallets: [],\n image: 'https://www.proton.org/images/tokens/senseXSENSE.png',\n coingeckoId: 'sense'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polkadot',\n coin: 'DOT',\n xtokenSymbol: 'XDOT',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOT',\n symbol: 'DOT',\n chain: Chains.PolkadotMainnet,\n network: Networks.Mainnet,\n precision: 10,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXDOT.png',\n coingeckoId: 'polkadot'\n },\n { \n allowSwap: true,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Binance Coin',\n coin: 'BNB',\n xtokenSymbol: 'XBNB',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BNB',\n symbol: 'BNB',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXBNB.png',\n coingeckoId: 'binancecoin'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Binance USD',\n coin: 'BUSD',\n xtokenSymbol: 'XBUSD',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'BUSD-BEP20',\n symbol: 'BUSD',\n chain: Chains.BinanceBEP20,\n network: Networks.BEP20,\n precision: 18,\n contract: '0xe9e7cea3dedca5984780bafc599bd69add087d56',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xbusd.png',\n coingeckoId: 'binance-usd'\n },\n { \n allowSwap: true,\n allowBridge: true,\n allowLend: false,\n allowBorrow: false,\n name: 'EOS',\n coin: 'EOS',\n xtokenSymbol: 'XEOS',\n xtokenPrecision: 4,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosMainnet,\n network: Networks.Mainnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: []),\n ...(IS_TESTNET ? [{\n wallet: 'EOS',\n symbol: 'EOS',\n chain: Chains.EosTestnet,\n network: Networks.Testnet,\n precision: 4,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXEOS.png',\n coingeckoId: 'eos'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: true,\n allowBorrow: true,\n name: 'Dogecoin',\n coin: 'DOGE',\n xtokenSymbol: 'XDOGE',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'DOGE',\n symbol: 'DOGE',\n chain: Chains.DogeMainnet,\n network: Networks.Mainnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: false\n }]: []),\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXDOGE.png',\n coingeckoId: 'dogecoin'\n },\n { \n allowSwap: IS_MAINNET,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Cardano',\n coin: 'ADA',\n xtokenSymbol: 'XADA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'ADA',\n symbol: 'ADA',\n chain: Chains.CardanoMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXADA.png',\n coingeckoId: 'cardano'\n },\n\n // Adding\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Terra',\n coin: 'LUNA',\n xtokenSymbol: 'XLUNA',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'LUNA',\n symbol: 'LUNA',\n chain: Chains.TerraMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXLUNA.png',\n coingeckoId: 'terra-luna'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'TerraUSD',\n coin: 'UST',\n xtokenSymbol: 'XUST',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'UST',\n symbol: 'UST',\n chain: Chains.TerraMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXUST.png',\n coingeckoId: 'terrausd'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Solana',\n coin: 'SOL',\n xtokenSymbol: 'XSOL',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'SOL',\n symbol: 'SOL',\n chain: Chains.SolanaMainnet,\n network: Networks.Mainnet,\n precision: 9,\n contract: undefined,\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xsol.png',\n coingeckoId: 'solana'\n },\n { \n allowSwap: false,\n allowBridge: IS_MAINNET,\n allowLend: false,\n allowBorrow: false,\n name: 'Ripple',\n coin: 'XRP',\n xtokenSymbol: 'XXRP',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'XRP',\n symbol: 'XRP',\n chain: Chains.RippleMainnet,\n network: Networks.Mainnet,\n precision: 6,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://raw.githubusercontent.com/eoscafe/eos-airdrops/master/logos/xxrp.png',\n coingeckoId: 'ripple'\n },\n\n // Future\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Avalanche',\n coin: 'AVAX',\n xtokenSymbol: 'XAVAX',\n xtokenPrecision: 9,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [\n {\n wallet: 'AVAX',\n symbol: 'AVAX',\n chain: Chains.AvalancheCChain,\n network: Networks.Mainnet,\n precision: 9,\n contract: undefined,\n hasWithdrawMemo: false\n }\n ]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXAVAX.png',\n coingeckoId: 'avalanche-2'\n },\n { \n allowSwap: false,\n allowBridge: false,\n allowLend: false,\n allowBorrow: false,\n name: 'Polygon',\n coin: 'MATIC',\n xtokenSymbol: 'XMATIC',\n xtokenPrecision: 8,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_MAINNET ? [{\n wallet: 'MATIC',\n symbol: 'MATIC',\n chain: Chains.PolygonMainnet,\n network: Networks.Mainnet,\n precision: 18,\n contract: '0x0000000000000000000000000000000000000000',\n hasWithdrawMemo: false\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXMATIC.png',\n coingeckoId: 'matic-network'\n },\n { \n allowSwap: false,\n allowBridge: IS_TESTNET,\n allowLend: false,\n allowBorrow: false,\n name: 'HBAR',\n coin: 'HBAR',\n xtokenSymbol: 'XHBAR',\n xtokenPrecision: 6,\n xtokenContract: 'xtokens',\n wallets: [\n ...(IS_TESTNET ? [{\n wallet: 'HBAR',\n symbol: 'HBAR',\n chain: Chains.HederaTestnet,\n network: Networks.Testnet,\n precision: 8,\n contract: undefined,\n hasWithdrawMemo: true\n }]: [])\n ],\n image: 'https://www.proton.org/images/tokens/xtokensXHBAR.png',\n coingeckoId: 'hedera-hashgraph'\n }\n ]\n\n // Validation\n const walletWithDuplicateChains = coins.find(coin => {\n const chains = coin.wallets.map(wallet => wallet.chain)\n return new Set(chains).size !== chains.length\n })\n if (walletWithDuplicateChains) {\n throw new Error(`Coin ${walletWithDuplicateChains.coin} has duplicate chains in wallet`)\n }\n\n return {\n allCoins: coins,\n swapCoins: coins.filter(coin => coin.allowSwap),\n bridgeCoins: coins.filter(coin => coin.allowBridge),\n lendCoins: coins.filter(coin => coin.allowLend),\n borrowCoins: coins.filter(coin => coin.allowBorrow),\n loanCoins: coins.filter(coin => coin.allowLend || coin.allowBorrow),\n allEnabledCoins: coins.filter(coin => coin.allowSwap || coin.allowBridge)\n }\n}","import { z } from 'nestjs-zod/z'\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 { z } from 'nestjs-zod/z';\nimport { accountParser, authorizationsParser } from './base'\n\nconst actionParser = z.object({\n account: z.string(),\n name: z.string(),\n authorization: z.array(\n z.object({\n actor: z.string(),\n permission: z.string(),\n })\n ),\n data: z.any(),\n hex_data: z.string().optional()\n})\n\nconst transactionExtensionsParser = z.array(z.number().or(z.string())).optional()\n\nconst rawTransactionParser = z.object({\n expiration : z.string(),\n ref_block_num : z.number(),\n ref_block_prefix : z.number(),\n max_net_usage_words : z.number(),\n max_cpu_usage_ms : z.number(),\n delay_sec : z.number(),\n context_free_actions : z.array(actionParser),\n transaction_extensions: z.array(transactionExtensionsParser)\n})\n\nexport const baseActionParser = <T extends z.ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.object(data),\n authorization: authorizationsParser\n})\n\nexport const baseActionSerializedParser = <T extends z.ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: contract === '*' ? accountParser : z.literal(contract),\n name: z.literal(action),\n data: z.string().or(z.object(data)),\n authorization: authorizationsParser\n})\n\nexport const webauthActionParser = <T extends z.ZodRawShape>(contract: string, action: string, data: T) => z.object({\n account: z.literal('webauthn'),\n name: z.literal('exec'),\n data: z.object({\n account: accountParser,\n key: z.object({\n key: z.array(z.string().or(z.object({\n modulus: z.string(),\n exponent: z.string()\n }))),\n user_presence: z.number(),\n rpid: z.string()\n }),\n nonce: z.number(),\n permissions: authorizationsParser,\n signature: z.object({\n auth_data: z.string(),\n client_json: z.string(),\n signature: z.string()\n }),\n trx: rawTransactionParser.merge(\n z.object({\n actions: z.array(\n baseActionSerializedParser(contract, action, data)\n ).length(1)\n })\n )\n }),\n authorization: authorizationsParser\n})\n\nexport const singleActionTransactionParser = <T extends z.ZodRawShape>(contract: string, action: string, data: T) => {\n const baseAction = baseActionParser(contract, action, data)\n const webauthAction = webauthActionParser(contract, action, data)\n\n return rawTransactionParser.merge(z.object({\n actions: z.array(baseAction.or(webauthAction)).length(1)\n }))\n}","import { z } from 'nestjs-zod/z'\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 { z } from 'nestjs-zod/z';\nimport { baseActionParser, singleActionTransactionParser } from './actions'\nimport { authorizationParser } from './base'\nimport { WRAP_CONTRACT, WRAP_AUTH_ACTION } from '../constants'\n\nexport const createAbstractAuthParser = (contract: string, action: string, data: z.ZodRawShape) => {\n return z.object({\n signer : authorizationParser,\n signatures : z.array(z.string()).length(1),\n transaction: singleActionTransactionParser(contract, action, data)\n })\n}\n\nconst generateAuthData = {\n time: z.string(),\n protonAccount: z.string()\n}\nconst generateAuthActionsBaseParser = baseActionParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuthBaseAction = z.infer<typeof generateAuthActionsBaseParser>\n\nexport const generateAuthParser = createAbstractAuthParser(WRAP_CONTRACT, WRAP_AUTH_ACTION, generateAuthData)\nexport type GenerateAuth = z.infer<typeof generateAuthParser>","import { Coin, CoinWallet, initializeCoins, Wallet } from './coins'\n\nexport const WRAP_CONTRACT = 'proton.wrap'\nexport const WRAP_AUTH_ACTION = 'generateauth'\nexport const FEE_FACTOR = 10000\n\nexport const initializeConstants = (chain: string) => {\n const { swapCoins, bridgeCoins, allEnabledCoins, allCoins, lendCoins, borrowCoins, loanCoins } = initializeCoins(chain)\n\n const constants = {\n SWAP_CONTRACT: 'proton.swaps',\n DEX_CONTRACT: chain === 'proton'\n ? 'dextest21'\n : 'dex', \n FEE_FACTOR,\n GOOGLE_MAPS_KEY: 'AIzaSyDb2_CrK032kSIqBXbkdwmaLKWELl0SxVs',\n SWAP_URL: chain === 'proton'\n ? 'https://otc.protonswap.com'\n : 'https://otc-test.protonswap.com',\n WRAP_SERVER_URL: chain === 'proton'\n ? 'https://www.api.bloks.io/proton-wrap-public2'\n : 'https://www.api.bloks.io/proton-wrap-testnet-public2',\n WRAP_CONTRACT,\n WRAP_ACTIONS: {\n SAVE_ADDRESS: 'saveaddress2',\n DELETE_ADDRESS: 'deladdress2',\n WRAP_START: 'wrapstart2',\n WRAP_FINISH: 'wrapfinish2',\n WRAP_PROCESS: 'wrapprocess2',\n WRAP_SET_CONF: 'wrapsetconf2',\n },\n WRAP_TABLES: {\n ADDRESSES: 'addresses2',\n WRAPS: 'wraps2'\n },\n ADDRESSES_INDEXES: {\n BY_ACCOUNT: 2,\n BY_ADDR_HASH: 3\n },\n WRAPS_INDEXES: {\n BY_ACCOUNT: 2,\n BY_STATUS: 3,\n BY_WRAP_HASH: 4\n },\n WRAP_PROCESS_TIMER: 5000,\n\n FARM_CONTRACT: 'yield.farms',\n\n WEBHOOK_PERMISSION: 'webhook',\n PUBLIC_PERMISSION: 'public',\n LIGHT_PERMISSION: 'light',\n WRAP_AUTH_ACTION: WRAP_AUTH_ACTION,\n\n METAL_ENDPOINT: chain === 'proton'\n ? 'https://cirrus.metalpay.com'\n : 'https://cirrus-dev.metalpay.com',\n\n METAL_PROTON_ENDPOINT: chain === 'proton'\n ? 'https://api.protonchain.com'\n : 'https://api-dev.protonchain.com',\n\n METAL_DEX_ENDPOINT: chain === 'proton'\n ? 'https://metallicus-dbapi-dev01.binfra.one'\n : 'https://metallicus-dbapi-dev01.binfra.one',\n\n PROTON_ENDPOINTS: chain === 'proton'\n ? ['https://metal-proton-rpc.global.binfra.one', 'https://proton.greymass.com', 'https://proton.eoscafeblock.com', 'https://proton.cryptolions.io', 'https://proton.eosusa.news']\n : ['https://metal-protontest-rpc.global.binfra.one', '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 { z } from 'nestjs-zod/z';\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 { z } from 'nestjs-zod/z'\n\nexport interface CurrencyStat {\n supply : string;\n max_supply: string;\n issuer : string;\n}\nexport interface CurrencyStats {\n [key: string]: CurrencyStat;\n}\n\nexport const rateParser = z.object({\n counterCurrency : z.string(),\n price : z.number(),\n priceChangePercent: z.number(),\n marketCap : z.number(),\n volume : z.number(),\n timestamp : z.number()\n})\nexport type Rate = z.infer<typeof rateParser>\n\nexport const exchangeRateParser = z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n})\nexport type ExchangeRate = z.infer<typeof exchangeRateParser>\n\nexport const exchangeRatesParser = z.array(exchangeRateParser)\nexport type ExchangeRates = z.infer<typeof exchangeRatesParser>\n\nexport const bloksRatesParser = z.array(z.object({\n contract: z.string(),\n symbol : z.string(),\n rank : z.number(),\n rates : z.array(rateParser)\n}))\n\nexport type BloksRate = {\n key: string;\n symbol: string;\n account: string;\n chain: string;\n supply: {\n circulating: number;\n max: number;\n precision: number;\n last_update: string;\n };\n metadata: {\n name: string;\n website: string;\n logo: string;\n created_at: string;\n desc: string;\n };\n pairs: [\n {\n id: string;\n pair_base: string;\n pair_quote: string;\n exchange: string;\n quote:{\n price: number\n volume_base_24h: number\n volume_quote_24h: number\n market_cap: number\n price_usd: number\n volume_usd_24h: number\n },\n percentage_daily_volume: number\n },\n ];\n price: {\n quotes: {\n [key: string]: number\n },\n usd: number;\n volume_base_24h: number;\n volume_usd_24h: number;\n marketcap_usd: number;\n change_24hr: number;\n },\n rank: number;\n chain_rank: number;\n}\n\nexport type BloksRates = BloksRate[]","import { z } from 'nestjs-zod/z'\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 { z } from 'nestjs-zod/z'\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 { z } from 'nestjs-zod/z'\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 { z } from 'nestjs-zod/z'\n\nexport const withdrawHistoryMetalSwapParser = z.object({\n id : z.string(),\n status : z.string(),\n amount : z.string(),\n currency : z.string(),\n network : z.string(),\n created : z.string(),\n withdrawalAddress: z.string(),\n withdrawalHash : z.string().optional()\n})\nexport type WithdrawHistoryMetalSwap = z.infer<typeof withdrawHistoryMetalSwapParser>\n\nexport const withdrawHistoryMetalResponseParser = z.object({\n swaps : z.array(withdrawHistoryMetalSwapParser),\n page : z.number(),\n pageSize : z.number(),\n numberOfElements: z.number(),\n totalPages : z.number(),\n totalElements : z.number()\n})\nexport type WithdrawHistoryMetalResponse = z.infer<typeof withdrawHistoryMetalResponseParser>\n","import { ExtendedAsset, ExtendedSymbol } from '@bloks/numbers';\nimport { createZodDto } from 'nestjs-zod';\nimport { z } from 'nestjs-zod/z';\n\nconst numTransform = z.string().regex(/\\d+/).transform(Number)\n\nconst ohlcvParser = z.object({\n time: z.number(),\n open: z.number(),\n high: z.number(),\n low: z.number(),\n close: z.number(),\n volume: z.number(),\n volume_bid: z.number(),\n count: z.number()\n})\nexport type OHLCV = z.infer<typeof ohlcvParser>\nexport class OHLCV_DTO extends createZodDto(ohlcvParser) {}\n\nconst getOhlcvParser = z.object({\n interval: z.string(),\n dateFrom: z.string(),\n dateTo: z.string(),\n marketId: z.number().or(numTransform),\n limit: z.number().or(numTransform).default(500).refine(n => n <= 1000, 'Max limit is 1000'),\n})\nexport type GetOHLCV = z.infer<typeof getOhlcvParser>\nexport class GetOHLCV_DTO extends createZodDto(getOhlcvParser) {}\n\nconst orderHistoryParser = z.object({\n seq: z.number(),\n block_num: z.number(),\n block_time: z.string(),\n order_id: z.number(),\n market_id: z.number(),\n quantity_init: z.number().optional(),\n quantity_curr: z.number(),\n price: z.number(),\n account_name: z.string(),\n order_side: z.number(),\n order_type: z.number(),\n status: z.string(),\n quantity_change: z.number(),\n trx_id: z.string(),\n})\nexport type OrderHistory = z.infer<typeof orderHistoryParser>\nexport class OrderHistory_DTO extends createZodDto(orderHistoryParser) {}\n\nconst getOrderHistoryParser = z.object({\n account: z.string(),\n offset: z.number().or(numTransform).default(0),\n limit: z.number().or(numTransform).default(100).refine(n => n <= 250, 'Max limit is 250'),\n})\nexport type GetOrderHistory = z.infer<typeof getOrderHistoryParser>\nexport class GetOrderHistory_DTO extends createZodDto(getOrderHistoryParser) {}\n\n\nconst depthParser = z.object({\n level: z.number(),\n ask: z.number(),\n bid: z.number(),\n count: z.number(),\n})\nexport type Depth = z.infer<typeof depthParser>\nexport class Depth_DTO extends createZodDto(depthParser) {}\n\nconst getDepthParser = z.object({\n marketId: z.number(),\n step: z.string(),\n side: z.string(),\n limit: z.number().or(numTransform).default(100).refine(n => n <= 250, 'Max limit is 250'),\n})\nexport type GetDepth = z.infer<typeof getDepthParser>\nexport class GetDepth_DTO extends createZodDto(getDepthParser) {}\n\nconst tradeParser = z.object({\n block_num: z.number(),\n block_time: z.string(),\n trade_id: z.number(),\n market_id: z.number(),\n price: z.number(),\n bid_user: z.string(),\n bid_user_order_id: z.number(),\n bid_amount: z.number(),\n bid_fee: z.number(),\n ask_user: z.string(),\n ask_user_order_id: z.number(),\n ask_amount: z.number(),\n ask_fee: z.number(),\n order_side: z.number(),\n trx_id: z.string(),\n})\nexport type Trade = z.infer<typeof tradeParser>\nexport class Trade_DTO extends createZodDto(tradeParser) {}\n\nconst getTradesParser = z.object({\n marketId: z.number().or(numTransform),\n offset: z.number().or(numTransform).default(0),\n limit: z.number().or(numTransform).default(100).refine(n => n <= 250, 'Max limit is 250'),\n})\n\nexport type GetTrades = z.infer<typeof getTradesParser>\nexport class GetTrades_DTO extends createZodDto(getTradesParser) {}\n\nconst syncParser = z.object({\n sourceid: z.number(),\n block_num: z.string(),\n block_time: z.string(),\n irreversible: z.string(),\n is_master: z.number(),\n last_updated: z.string(),\n})\nexport type Sync = z.infer<typeof syncParser>\n\nexport enum orderType { INVALID = 0, MARKET = 1, LIMIT = 2, STOPLOSS = 3, TAKEPROFIT = 4 }\n\nexport enum orderSide { INVALID = 0, BUY = 1, SELL = 2 }\n\nexport enum logStatus {\n CREATE = \"create\",\n UPDATE = \"update\",\n TRANSFER = \"transfer\",\n CANCEL = \"cancel\",\n DELETE = \"delete\",\n}\n\nexport interface CurrentOrder {\n order_id: number\n market_id: number\n quantity_init: number\n quantity_curr: number\n price: number\n account_name: string\n order_side: number\n order_type: number\n status: string\n created_at: string\n updated_at: string\n}\n\nexport interface RawMarket {\n market_id: number\n order_min: number\n status_code: number\n maker_fee: number\n taker_fee: number\n bid_token: {\n sym: string\n contract: string\n }\n ask_token: {\n quantity: string\n contract: string\n }\n}\n\nexport interface Market {\n market_id: number\n order_min: number\n status_code: number\n maker_fee: number\n taker_fee: number\n bid_token: ExtendedSymbol\n ask_token: ExtendedAsset\n bid_multiplier: number\n ask_multiplier: number\n}","import cloneDeep from 'lodash.clonedeep'\n\nexport class INode <T> {\n data: T = {} as T\n constructor (public key: string, data?: T) {\n if (data) {\n this.data = data\n }\n }\n}\n\nexport class ILink <T> {\n data: T = {} as T\n constructor (public from: INode<T>, public to: INode<T>, data?: T) {\n if (data) {\n this.data = data\n }\n }\n}\n\nexport class Graph <T> {\n nodes: INode<T>[] = []\n links: ILink<T>[] = []\n lastPathFound: INode<T>[] = []\n\n isEquals = (a: INode<T>, b: INode<T>) => a.key === b.key\n\n addNode (k: string, v?: T): void {\n const node = this.findNode(k)\n if (!node) {\n this.nodes.push(new INode(k, v))\n }\n }\n\n addNodes (...nodes: (string | [string, T?])[]): void {\n nodes.forEach(node => typeof node === \"string\" ? this.addNode(node) : this.addNode(node[0], node[1]))\n }\n\n findNode (k: string): INode<T> | undefined {\n const inode = new INode<T>(k)\n return this.nodes.find(node => this.isEquals(node, inode))\n }\n\n findNodes (...keys: string[]): (INode<T> | undefined)[] {\n return keys.map(k => this.findNode(k))\n }\n\n requireFindNodes (...keys: string[]): INode<T>[] {\n const nodes = this.findNodes(...keys)\n if (nodes.some(n => n === undefined)) {\n throw new Error('One of the nodes does not exist')\n }\n return nodes as INode<T>[]\n }\n\n addLink (nodeA: string, nodeB: string, data?: T): void {\n const [inodeA, inodeB] = this.requireFindNodes(nodeA, nodeB)\n this.links.push(new ILink<T>(inodeA, inodeB, data))\n }\n\n addLinks (...links: [nodeA: string, nodeB: string, data?: T][]): void {\n links.forEach(link => this.addLink(...link))\n }\n \n /** \n * Get all nodes linked \n * to from `node`.\n */\n findLinkedNodes (node: INode<T>) {\n return this.links.reduce((acc, link) => {\n if (this.isEquals(link.from, node)) {\n acc.push(link.to)\n }\n return acc;\n }, [] as INode<T>[]);\n }\n\n findAllPaths(from: string, to: string) {\n const allPaths: INode<T>[][] = []\n\n const [fromNode, toNode] = this.requireFindNodes(from, to)\n\n const path: INode<T>[] = [fromNode]\n let seen = new Set()\n\n const stuck = (x: INode<T>) => {\n if (this.isEquals(x, toNode)) {\n return false\n }\n\n for (const y of this.findLinkedNodes(x)) {\n if (!seen.has(y.key)) {\n seen.add(y.key)\n if (!stuck(y)) {\n return false\n }\n }\n }\n\n return true\n }\n\n const search = (x: INode<T>) => {\n if (this.isEquals(x, toNode)) {\n allPaths.push(cloneDeep(path))\n return\n }\n seen = new Set(path.map(p => p.key))\n if (stuck(x)) {\n return\n }\n\n for (const y of this.findLinkedNodes(x)) {\n if (!path.includes(y)) {\n path.push(y)\n search(y)\n path.pop()\n }\n }\n }\n\n search(fromNode)\n\n return allPaths\n }\n}","import { BigNumber as BN } from 'bignumber.js'\nimport { FEE_FACTOR } from './constants'\n\n/**\n * XPR<>XUSDT (XPR -> XUSDT)\n *\n * pool1 * pool2\n * term = pool2 - --------------\n * pool1 + swap\n *\n * result = term - (term * fee)\n */\nexport const compute_transfer = (pool1: BN.Instance, pool2: BN.Instance, swap: BN.Instance, exchange_fee: number, precision: number): BN => {\n const term1 = pool2\n const term2over = pool1.multipliedBy(pool2)\n const term2under = pool1.plus(swap)\n const term2 = term2over.dividedBy(term2under).integerValue(BN.ROUND_DOWN)\n const term = term1.minus(term2)\n const fee = new BN(exchange_fee).dividedBy(FEE_FACTOR)\n const result = term.minus(term.multipliedBy(fee))\n \n return result.integerValue(BN.ROUND_DOWN).shiftedBy(-precision)\n}\n\nexport const compute_transfer_curve = (\n reserve_in: number,\n reserve_out: number,\n amount_in: number,\n exchange_fee: number,\n precision: number,\n amplifier: number\n): BN => {\n if (amplifier === 0) {\n return compute_transfer(new BN(reserve_in), new BN(reserve_out), new BN(amount_in), exchange_fee, precision)\n }\n\n const MAX_ITERATIONS = 10\n\n const sum = reserve_in + reserve_out\n let D = sum;\n let D_prev = 0\n\n const F = (v: number) => {\n return (v >= 0 ? 1 : -1) * Math.floor(Math.abs(v));\n }\n\n let i = MAX_ITERATIONS\n while (D != D_prev && i--) {\n const prod1 = F((F((D * D) / (reserve_in * 2)) * D) / (reserve_out * 2));\n D_prev = D\n D = F((2 * D * ((amplifier * sum) + prod1)) / ((2 * amplifier - 1) * D + 3 * prod1));\n }\n\n const b = ((reserve_in + amount_in) + F(D / (amplifier * 2))) - D;\n\n const c = F(F((D * D) / ((reserve_in + amount_in) * 2)) * D / (amplifier * 4));\n\n let x = D, x_prev = 0;\n i = MAX_ITERATIONS;\n while ( x != x_prev && i--) {\n x_prev = F(x);\n x = +new BN(x * x + c).dividedBy(2 * x + b).toFixed(0, BN.ROUND_DOWN)\n }\n\n if (reserve_out <= x) {\n throw new Error(\"curve: insufficient reserve out\")\n }\n\n // Amount out + Fee + 1\n const amount_out_with_fee = new BN(reserve_out - x);\n\n // Fee + 1\n // +1 covers small precision issues\n const fee = amount_out_with_fee.multipliedBy(exchange_fee).dividedBy(FEE_FACTOR).plus(1).toFixed(0, BN.ROUND_DOWN);\n \n // Amount out\n const amount_out = amount_out_with_fee.minus(fee)\n\n return amount_out.integerValue(BN.ROUND_DOWN).shiftedBy(-precision)\n}\n\nexport const compute_liquidity = (amount_lt: BN.Instance, pool: BN.Instance, lt_supply: BN.Instance, precision: number): number => {\n const over = amount_lt.multipliedBy(pool)\n const under = lt_supply\n const result = over.dividedBy(under).integerValue(BN.ROUND_DOWN)\n\n return +(result.shiftedBy(-precision).toFixed(precision, BN.ROUND_DOWN))\n}\n\nexport const isInputInvalid = (data: string, value: string | number, pool: { xtokenPrecision: number }): boolean => {\n value = String(value)\n \n const isBackspace = data === null\n const isNumber = !/[0-9]|\\./.test(data)\n const isDoubleDot = data === '.' && value.indexOf('.') !== value.length - 1\n const isPrecisionTooHigh = value && value.indexOf('.') !== -1 && value.split('.')[1].length > pool.xtokenPrecision\n const isInvalid = !isBackspace && Boolean(isNumber || isDoubleDot || isPrecisionTooHigh)\n\n return isInvalid\n}\n\nexport const applyDiscountToFee = (fee: number, staked: number): number => {\n if (staked >= 10000000) {\n return fee * 0\n } else if (staked >= 1000000) {\n return fee * 0.33\n } else if (staked >= 100000) {\n return fee * 0.66\n } else {\n return fee\n }\n}","interface PartialCoin {\n xtokenSymbol: string;\n xtokenPrecision: number;\n xtokenContract: string;\n}\n\nexport const isSameToken = (token1: PartialCoin, token2: PartialCoin) => {\n return token1.xtokenSymbol === token2.xtokenSymbol &&\n token1.xtokenPrecision === token2.xtokenPrecision &&\n token1.xtokenContract === token2.xtokenContract\n}\n\nexport const median = (numbers: number[]) => {\n const sorted = numbers.slice().sort((a, b) => a - b);\n const middle = Math.floor(sorted.length / 2);\n\n if (sorted.length % 2 === 0) {\n return (sorted[middle - 1] + sorted[middle]) / 2;\n }\n\n return sorted[middle];\n}\n"],"names":["Chains","Networks","similarChains","EthereumMainnet","BinanceBEP20","explorerLinkByChain","BitcoinMainnet","txid","BitcoinTestnet","EthereumRopsten","LitecoinMainnet","LitecoinTestnet","BitcoinCashMainnet","BitcoinCashTestnet","StellarMainnet","StellarTestnet","ProtonMainnet","traces","ProtonTestnet","PolkadotMainnet","BinanceBEP2","EosMainnet","EosTestnet","HederaMainnet","HederaTestnet","DogeMainnet","CardanoMainnet","AvalancheXChain","AvalancheCChain","PolygonMainnet","TerraMainnet","RippleMainnet","SolanaMainnet","initializeCoins","protonChain","IS_MAINNET","IS_TESTNET","coins","allowSwap","allowBridge","allowLend","allowBorrow","name","coin","xtokenSymbol","xtokenPrecision","xtokenContract","wallets","wallet","symbol","chain","network","ERC20","precision","contract","hasWithdrawMemo","BEP20","image","coingeckoId","XLM","undefined","Ropsten","Mainnet","Testnet","walletWithDuplicateChains","find","chains","map","Set","size","length","Error","allCoins","swapCoins","filter","bridgeCoins","lendCoins","borrowCoins","loanCoins","allEnabledCoins","accountParser","z","string","regex","authorizationParser","object","actor","permission","authorizationsParser","array","min","ExtendedAssetParser","quantity","actionParser","account","authorization","data","any","hex_data","optional","transactionExtensionsParser","number","or","rawTransactionParser","expiration","ref_block_num","ref_block_prefix","max_net_usage_words","max_cpu_usage_ms","delay_sec","context_free_actions","transaction_extensions","baseActionParser","action","literal","baseActionSerializedParser","webauthActionParser","key","modulus","exponent","user_presence","rpid","nonce","permissions","signature","auth_data","client_json","trx","merge","actions","singleActionTransactionParser","baseAction","webauthAction","Type","createAbstractAuthParser","signer","signatures","transaction","generateAuthParser","time","protonAccount","addressParser","index","address","address_hash","generateAddressBodyParser","generateAddressResponse","id","memo","rateParser","counterCurrency","price","priceChangePercent","marketCap","volume","timestamp","exchangeRateParser","rank","rates","exchangeRatesParser","bloksRatesParser","Status","depositBodyParser","type","nativeEnum","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","orderType","orderSide","logStatus","wrapStartParser","balance","deposit_address","wrapSetConfParser","wrap_hash","wrapParser","proton_account","finish_txid","numTransform","transform","Number","OHLCV_DTO","createZodDto","open","high","low","close","volume_bid","count","GetOHLCV_DTO","interval","dateFrom","dateTo","marketId","limit","n","OrderHistory_DTO","seq","block_num","block_time","order_id","market_id","quantity_init","quantity_curr","account_name","order_side","order_type","quantity_change","trx_id","GetOrderHistory_DTO","offset","Depth_DTO","level","ask","bid","GetDepth_DTO","step","side","Trade_DTO","trade_id","bid_user","bid_user_order_id","bid_amount","bid_fee","ask_user","ask_user_order_id","ask_amount","ask_fee","GetTrades_DTO","INode","ILink","Graph","nodes","links","lastPathFound","isEquals","a","b","addNode","k","v","this","findNode","push","addNodes","forEach","node","_this","inode","_this2","findNodes","keys","_this3","requireFindNodes","some","addLink","nodeA","nodeB","addLinks","link","_this4","findLinkedNodes","reduce","acc","_this5","findAllPaths","allPaths","fromNode","toNode","path","seen","search","x","_this6","cloneDeep","p","stuck","y","has","add","includes","pop","compute_transfer","pool1","pool2","swap","exchange_fee","term1","term2over","multipliedBy","term2under","plus","term2","dividedBy","integerValue","BN","ROUND_DOWN","term","minus","fee","shiftedBy","staked","amount_lt","pool","lt_supply","toFixed","reserve_in","reserve_out","amount_in","amplifier","sum","D","D_prev","F","Math","floor","abs","i","prod1","c","x_prev","amount_out_with_fee","constants","SWAP_CONTRACT","DEX_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","METAL_DEX_ENDPOINT","PROTON_ENDPOINTS","CHAIN_ID","CHAIN","SWAP_COINS","BRIDGE_COINS","ALL_ENABLED_COINS","LEND_COINS","BORROW_COINS","LOAN_COINS","ALL_COINS","findBridgeCoinWalletByXtokenAndChain","bridgeCoin","bridgeWallet","findBridgeCoinWallet","findBridgeCoinNetwork","String","isBackspace","isNumber","test","isDoubleDot","indexOf","isPrecisionTooHigh","split","Boolean","token1","token2","numbers","sorted","slice","sort","middle","txId"],"mappings":"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"}
|