/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/orbiter-bridge-sdk@1.1.42/dist/orbiter-bridge-SDK.cjs.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var e,t=require("ethers-6"),n=require("starknet"),r=require("bignumber.js"),a=require("@truffle/hdwallet-provider"),s=require("web3"),i=require("axios"),o=require("axios-retry"),c=require("lodash"),u=require("loopring-fix-web-sdk"),d=require("ethers"),p=require("@imtbl/imx-sdk"),l=require("rlp");exports.SIGNER_TYPES=void 0,(e=exports.SIGNER_TYPES||(exports.SIGNER_TYPES={})).EVM="EVM",e.Loopring="Loopring",e.Starknet="Starknet";const y={mainnetId:"SN_MAIN",testnetId:"SN_GOERLI"};var f;exports.StarknetChainId=void 0,(f=exports.StarknetChainId||(exports.StarknetChainId={})).SN_MAIN="0x534e5f4d41494e",f.SN_GOERLI="0x534e5f474f45524c49",f.SN_GOERLI2="0x534e5f474f45524c4932";const h=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],g=[{inputs:[{internalType:"address payable",name:"_to",type:"address"},{internalType:"bytes",name:"_ext",type:"bytes"}],name:"transfer",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"address",name:"_to",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"},{internalType:"bytes",name:"_ext",type:"bytes"}],name:"transferERC20",outputs:[],stateMutability:"nonpayable",type:"function"}],m=[{members:[{name:"low",offset:0,type:"felt"},{name:"high",offset:1,type:"felt"}],name:"Uint256",size:2,type:"struct"},{inputs:[{name:"name",type:"felt"},{name:"symbol",type:"felt"},{name:"recipient",type:"felt"}],name:"constructor",outputs:[],type:"constructor"},{inputs:[],name:"name",outputs:[{name:"name",type:"felt"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{name:"symbol",type:"felt"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{name:"totalSupply",type:"Uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{name:"decimals",type:"felt"}],stateMutability:"view",type:"function"},{inputs:[{name:"account",type:"felt"}],name:"balanceOf",outputs:[{name:"balance",type:"Uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"owner",type:"felt"},{name:"spender",type:"felt"}],name:"allowance",outputs:[{name:"remaining",type:"Uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"recipient",type:"felt"},{name:"amount",type:"Uint256"}],name:"transfer",outputs:[{name:"success",type:"felt"}],type:"function"},{inputs:[{name:"sender",type:"felt"},{name:"recipient",type:"felt"},{name:"amount",type:"Uint256"}],name:"transferFrom",outputs:[{name:"success",type:"felt"}],type:"function"},{inputs:[{name:"spender",type:"felt"},{name:"amount",type:"Uint256"}],name:"approve",outputs:[{name:"success",type:"felt"}],type:"function"},{inputs:[{name:"spender",type:"felt"},{name:"added_value",type:"Uint256"}],name:"increaseAllowance",outputs:[{name:"success",type:"felt"}],type:"function"},{inputs:[{name:"spender",type:"felt"},{name:"subtracted_value",type:"Uint256"}],name:"decreaseAllowance",outputs:[{name:"success",type:"felt"}],type:"function"},{inputs:[{name:"recipient",type:"felt"},{name:"amount",type:"Uint256"}],name:"mint",outputs:[],type:"function"},{inputs:[{name:"user",type:"felt"},{name:"amount",type:"Uint256"}],name:"burn",outputs:[],type:"function"}],k=[{members:[{name:"low",offset:0,type:"felt"},{name:"high",offset:1,type:"felt"}],name:"Uint256",size:2,type:"struct"},{inputs:[{name:"_token",type:"felt"},{name:"_to",type:"felt"},{name:"_amount",type:"Uint256"},{name:"_ext",type:"felt"}],name:"transferERC20",outputs:[],type:"function"}],w=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"transfer",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"transferToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"},{internalType:"address[]",name:"tos",type:"address[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"transferTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address[]",name:"tos",type:"address[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"}],name:"transfers",outputs:[],stateMutability:"payable",type:"function"}],I={zksync:"zksync",starknet:"SN_MAIN",loopring:"loopring",zkspace:"ZKSpace",dydx:"dydx",imx:"immutableX",mainnet:"1",ar:"42161",po:"137",op:"10",zksync2:"324",nova:"42170",base:"8453",zora:"7777777",metis:"1088",boba:"288",linea:"59144",pozkevm:"1101",bsc:"56",opbnb:"204",manta:"169",scroll:"534352"},C={zksync_test:"zksync_test",starknet_test:"SN_GOERLI",loopring_test:"loopring_test",zkspace_test:"ZKSpace_test",dydx_test:"dydx_test",imx_test:"immutableX_test",goerli:"5",ar_test:"421613",po_test:"80001",op_test:"420",zksync2_test:"280",base_test:"84531",zora_test:"999",linea_test:"59140",pozkevm_test:"1442",bsc_test:"97",opbnb_test:"5611",manta_test:"3441005",scroll_test:"534353"},S={P_NUMBER:4},b={[I.zksync]:35,[I.imx]:28,[I.dydx]:28,[I.zkspace]:35,[C.zksync_test]:35,[C.imx_test]:28,[C.dydx_test]:28,[C.zkspace_test]:35},T={ropsten:{starkContractAddress:"0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623",registrationContractAddress:"0x1C97Ada273C9A52253f463042f29117090Cd7D83"},mainnet:{starkContractAddress:"0x5FDCCA53617f4d2b9134B29090C87D01058e27e9",registrationContractAddress:"0x72a06bf2a1CE5e39cBA06c0CAb824960B587d64c"}},v=(1n<<256n)-1n,A="OBSource",x="OrbiterRouterV3",E=1e6;let _={isMainnet:!0,dealerId:"",activeSignerType:exports.SIGNER_TYPES.EVM,evmSigner:{},starknetSigner:{},loopringSigner:{}};function R(e={}){const t=Object.keys(e);t.length&&t.forEach((t=>{_[t]=e[t]??_[t]}))}function M(){return _}const N=async e=>{const{contractInstance:t,account:n,contractAddress:r,targetValue:a}=e,s=await t.allowance(n,r);if(a>s){await t.approve(r,a);for(let e=0;e<5e3;e++){const e=await t.allowance(n,r);if(s!==e){a>e&&U("Approval amount is insufficient");break}await O(2e3)}}};function q(e,t){return"string"==typeof e&&"string"==typeof t&&e.toUpperCase()===t.toUpperCase()}function L(e){const{localChainID:n,ABI:r,signer:a,contractAddress:s}=e;if(3!==n&&33!==n&&4!==n&&44!==n)return new t.ethers.Contract(s,r||h,a)}function O(e){return new Promise((t=>{setTimeout((()=>{t(null)}),e)}))}const U=(e,t)=>{throw new Error(t?`${e} => ${t?.message||t||""}`:e)},D=(e,t)=>{if(!Object.keys(e).length||!t)return U("get contract by type error.");let n="";for(const r in e){if(e[r]===t){n=r;break}}return n},P=()=>{const{activeSignerType:e,evmSigner:t,loopringSigner:n,starknetSigner:r}=M();switch(e){case"EVM":return Object.keys(t).length?t:U("Evm signer is empty by getActiveSigner.");case"Loopring":return Object.keys(n).length?n:U("Loopring signer is empty.");case"Starknet":return Object.keys(r).length?r:U("Starknet signer is empty.");default:return U("Can not find signer, please check it!")}},B=async()=>{const{activeSignerType:e,evmSigner:t,loopringSigner:n,starknetSigner:r}=M();switch(e){case"EVM":return Object.keys(t).length?await t.getAddress():U("Evm signer is empty by getActiveAccount.");case"Loopring":if(!Object.keys(n).length)return U("Loopring signer is empty.");const e=await n.eth.getAccounts();return e.length?e[0]:U("Loopring`s accounts is empty.");case"Starknet":return Object.keys(r).length?r.address:U("Starknet signer is empty.");default:return U("Can not find signer, please check it!")}},z=e=>{const t=String(e),{activeSignerType:n}=M();switch(t){case I.loopring:case C.loopring_test:n!==exports.SIGNER_TYPES.Loopring&&R({activeSignerType:exports.SIGNER_TYPES.Loopring});break;case I.starknet:case C.starknet_test:n!==exports.SIGNER_TYPES.Starknet&&R({activeSignerType:exports.SIGNER_TYPES.Starknet});break;default:n!==exports.SIGNER_TYPES.EVM&&R({activeSignerType:exports.SIGNER_TYPES.EVM})}},F=1e4,V=3,G=!0,$=100,j=i.create({timeout:F,headers:{"Content-Type":"application/json"}});o(j,{retries:V,shouldResetTimeout:G,retryDelay:e=>e*$,retryCondition:e=>o.isNetworkOrIdempotentRequestError(e)||e.message.includes("timeout")}),j.interceptors.request.use((e=>(e.headers={...e.headers},e)),(e=>H(e))),j.interceptors.response.use((e=>{if(e)return e}),(e=>H(e)));const H=e=>U(e.message),Y={openApi:{mainnet:"https://openapi.orbiter.finance/explore/v3/yj6toqvwh1177e1sexfy0u1pxx5j8o47",testnet:"https://openapi2.orbiter.finance/v3/yj6toqvwh1177e1sexfy0u1pxx5j8o47"},openApiSdk:{mainnet:"https://api.orbiter.finance/sdk",testnet:"https://openapi2.orbiter.finance/sdk"}},K=e=>{const t=M(),n="openApi"===e?Y.openApi:Y.openApiSdk;return t.isMainnet?n.mainnet:n.testnet};class X{static instance;chains=[];async loadAvailableChains(){try{this.chains=await async function(){try{const e=await j.get(`${K("openApiSdk")}/chains`);return 200===e.status&&"success"===e.data?.status?e.data?.result??[]:[]}catch(e){return U("queryChains error.",e.message)}}()}catch(e){U("chainsService init failed.",e)}}async checkLoading(){this.chains.length||await this.loadAvailableChains()}static getInstance(){return this.instance||(this.instance=new X),this.instance}updateConfig(){this.chains=[]}async queryChainInfo(e){await this.checkLoading();const t=e.toString();return this.chains.find((e=>e.chainId===t||e.internalId===t||e.networkId===t))??{}}async queryChains(){return await this.checkLoading(),this.chains}}class W{static instance;dealerId;crossRouters=[];constructor(){this.dealerId=M().dealerId}async loadRoutersRule(){try{this.crossRouters=await async function(e){try{const t=await j.get(`${K("openApiSdk")}/routers${e?`/${e}`:""}`);return 200===t.status&&"success"===t.data?.status?t.data?.result??[]:[]}catch(e){return U("queryChains error.",e.message)}}(this.dealerId)}catch(e){U("crossRouters init failed.",e.message)}}async checkLoading(){this.crossRouters.length||await this.loadRoutersRule()}updateConfig(){this.crossRouters=[],this.dealerId=M().dealerId}static getInstance(){return this.instance||(this.instance=new W),this.instance}async queryRouters(){return await this.checkLoading(),this.crossRouters}async queryRouter(e){await this.checkLoading();const{fromChainInfo:t,toChainInfo:n,fromCurrency:r,toCurrency:a}=e;if(!(t&&n&&r&&a))return{};const s=`${t.chainId}/${n.chainId}-${r}/${a}`;return this.crossRouters.find((e=>e.line===s))||{}}}class Z{static instance;tokens={};static getInstance(){return this.instance||(this.instance=new Z),this.instance}async loadTokens(){try{this.tokens=await async function(){try{const e=await j.get(`${K("openApiSdk")}/tokens`);return 200===e.status&&"success"===e.data?.status?e.data?.result??{}:{}}catch(e){return U("queryChains error.",e.message)}}()||{}}catch(e){U("TokensService init failed.",e)}}async checkLoading(){Object.keys(this.tokens).length||await this.loadTokens()}updateConfig(){this.tokens={}}async queryTokensAllChain(){return await this.checkLoading(),this.tokens}async queryTokensByChainId(e){return await this.checkLoading(),this.tokens[String(e)]||[]}async queryTokensDecimals(e,t){await this.checkLoading();const n=this.tokens[String(e)]||[];if(!n.length)return;const r=e=>n.find((t=>t.name===e||t.symbol===e||t.address===e))?.decimals||void 0;if(c.isArray(t)){const e={};return t.forEach((t=>{e[t]=r(t)})),e}return r(t)}async queryToken(e,t){await this.checkLoading();const n=this.tokens[String(e)]||[];if(!n.length)return U("queryToken tokens is empry.");return(e=>n.find((t=>t.name===e||t.symbol===e||t.address===e)))(t)||{}}}class J{static instance;static getInstance(){return this.instance||(this.instance=new J),this.instance}async queryHistoryList(e){const{pageNum:t,pageSize:n,account:r}=e;return t&&n&&r?await async function(e,t,n){try{const r=await j.post(K("openApi"),{id:1,jsonrpc:"2.0",method:"orbiter_getTransactionByAddress",params:[e,t,n]}),a=r?.data?.result;return console.log(a),a&&Object.keys(a).length>0?{transactions:a.list??[],count:a.count??0}:U("queryTransactionByAddress error.")}catch(e){return U(e.message)}}(r,t,n):U("queryHistoryList params error.")}async searchTransaction(e){try{return e?await async function(e){try{const t=await j.get(`${K("openApiSdk")}/transaction/cross-chain/${e}`),n=t?.data?.result;return n&&Object.keys(n).length>0?n:{}}catch(e){return U(e.message)}}(e):U("searchTransaction param no [txHash].")}catch(e){return U(e.message)}}}var Q={Mainnet:"https://api3.loopring.io",Rinkeby:"https://uat2.loopring.io"},ee={Mainnet:"https://api.x.immutable.com/v1",Rinkeby:"https://api.sandbox.x.immutable.com/v1"};const te=e=>e===I.loopring?u.ChainId.MAINNET:u.ChainId.GOERLI;var ne={getUserAPI:function(e){return new u.UserAPI({chainId:te(e)})},getExchangeAPI:function(e){return new u.ExchangeAPI({chainId:te(e)})},getLpTokenInfoOnce:async function(e,t){const n=`${e===I.loopring?Q.Mainnet:Q.Rinkeby}/api/v3/exchange/tokens`;try{const e=await j.get(n);if(200===e.status&&e?.data)return e.data.find((e=>e.address==t));throw new Error("Loopring transfer is failed by getLpTokenInfo function.")}catch(e){throw new Error(`Loopring transfer is error by getLpTokenInfo function. = ${e.message}`)}},getLpTokenInfo:async function(e,t,n=10){const r=await this.getLpTokenInfoOnce(e,t);return r||(await O(100),--n>0?void await this.getLpTokenInfo(e,t,n):0)},accountInfo:async function(e,t){try{const n=this.getExchangeAPI(t),r=await n.getAccount({owner:e});if(r.accInfo&&r.raw_data){return{accountInfo:r.accInfo,code:0}}return{code:r?.code,errorMessage:101002==r?.code?"noAccount":r?.message}}catch(e){throw new Error(`get lp accountInfo error:${e.message}`)}},sendTransfer:async function(e,t,n,r,a,s,i){const o=e,c=te(n),d=this.getExchangeAPI(n),p=this.getUserAPI(n),l=await this.accountInfo(t,n);if(!l)throw Error("loopring get account error");let y;if(l.code)throw Error("Get loopring account error");y=l?.accountInfo;const f=y?.accountId,h=await(p?.getCounterFactualInfo({accountId:f})),g=!!h?.counterFactualInfo?.walletOwner;if(0==y.nonce&&0==y.keyNonce&&""==y.publicKey.x&&""==y.publicKey.y&&""==y.keySeed)throw Error("account is not activated");if(y.frozen)throw Error("User account is frozen");const{exchangeInfo:m}=await d.getExchangeInfo(),k={web3:o,address:y.owner,keySeed:y.keySeed&&""!==y.keySeed?y.keySeed:u.GlobalAPI.KEY_MESSAGE.replace("${exchangeAddress}",m.exchangeAddress).replace("${nonce}",(y.nonce-1).toString()),walletType:u.ConnectorNames.Unknown,chainId:c};g&&Object.assign(k,{accountId:f});const w=await u.generateKeyPair(k),I={accountId:f},{apiKey:C}=await p.getUserApiKey(I,w.sk);if(!C)throw Error("Get Loopring ApiKey Error");const S=await this.getLpTokenInfo(n,a),b={accountId:f,sellTokenId:S.tokenId},T=await p.getNextStorageId(b,C),v={exchange:m.exchangeAddress,payerAddr:t,payerId:f,payeeAddr:r,payeeId:0,storageId:T.offchainId,token:{tokenId:S.tokenId,volume:s+""},maxFee:{tokenId:0,volume:"94000000000000000"},validUntil:Math.round(Date.now()/1e3)+2592e3,memo:i};return g?await p.submitInternalTransfer({request:v,web3:o,chainId:c,walletType:u.ConnectorNames.Unknown,eddsaKey:w.sk,apiKey:C},{accountId:f,counterFactualInfo:h.counterFactualInfo}):await p.submitInternalTransfer({request:v,web3:o,chainId:c,walletType:u.ConnectorNames.Unknown,eddsaKey:w.sk,apiKey:C})}};class re{chainsService;tokensService;static instance;constructor(){this.chainsService=X.getInstance(),this.tokensService=Z.getInstance()}static getInstance(){return this.instance||(this.instance=new re),this.instance}async toSend(e){const{to:t,amount:n,token:r,fromChainId:a}=e;if(!t||!n||!r)return U("toSend params error.");const s=await this.tokensService.queryToken(a,r);if(!s)return U("Without tokenInfo.");const i=await this.chainsService.queryChainInfo(a),o=await B();if((e=>{const t=String(e);return t===I.loopring||t===C.loopring_test})(a)){if(!o)return U("loopring refund`s account is error.");const e={to:t,amount:n,token:r,account:o,fromChainId:a,tokenInfo:s,fromChainInfo:i};return await this.sendToLoopring(e)}return(e=>{const t=String(e);return t===I.starknet||t===C.starknet_test})(a)?await this.sendToStarknet({to:t,amount:n,token:r,account:o}):await this.sendToEvm({to:t,amount:n,token:r,account:o,fromChainId:a,tokenInfo:s,fromChainInfo:i})}async sendToLoopring(e){const{account:n,to:r,amount:a,token:s,fromChainInfo:i}=e,o=M().loopringSigner;if(!Object.keys(o).length)return U("should update loopringSigner by updateConfig function.");try{return await ne.sendTransfer(o,n,String(i.chainId),r,s,t.ethers.parseUnits(String(a)),"")}catch(e){const t={"account is not activated":"This Loopring account is not yet activated, please activate it before transferring.","User account is frozen":"Your Loopring account is frozen, please check your Loopring account status on Loopring website. Get more details here: https://docs.loopring.io/en/basics/key_mgmt.html?h=frozen",default:e.message};return U(t[e.message]||t.default||"Something was wrong by loopring transfer. please check it all",e)}}async sendToStarknet(e){const r=P(),{account:a,to:s,amount:i,token:o}=e,c=new n.Contract(m,o,r);if(!a)return U("starknet account error");try{const e=c.populate("transfer",[s,{type:"struct",...n.uint256.bnToUint256(t.ethers.parseUnits(String(i)))}]);return await r.execute(e)}catch(e){return console.log(e),U("starknet refund error",e)}}async sendToEvm(e){const n=P(),{account:r,to:a,amount:s,token:i,fromChainId:o,fromChainInfo:c,tokenInfo:u}=e;let d;const p=t.ethers.parseUnits(String(s),u.decimals);if(q(c.nativeCurrency.address,u.address))return d=await P().estimateGas({from:r,to:a,value:p}),"2"===String(o)&&d<21000n&&(d=21000n),await n.sendTransaction({from:r,to:a,value:p,gasLimit:d});{const e=L({contractAddress:u.address,localChainID:o,signer:n});return e?(d=await e.transfer.estimateGas(a,p),"42161"===String(o)&&d<21000n&&(d=21000n),await e.transfer(a,p,{gasLimit:d})):U("Failed to obtain contract information, please try again.")}}}function ae(e){let n="0x";return e.forEach((e=>{n+=t.hexlify(e).substring(2)})),n}function se(e,n,r){return"string"!=typeof e?e=t.hexlify(e):(!t.isHexString(e)||e.length%2)&&U("hexDataSlice error: invalid hexData"),n=2+2*n,null!=r?"0x"+e.substring(n,2+2*r):"0x"+e.substring(n)}const ie={"0x01":"Cross Ethereum Address","0x02":"Cross Dydx Address","0x03":"Cross Stark Address"};class oe{contractAddress;provider;signer;networkId;providerNetworkId;constructor(e,t,n){this.contractAddress=n||"",this.contractAddress||U("CrossAddress class init error: Sorry, miss param [contractAddress]"),this.provider=e.provider,this.signer=e,this.networkId=t.networkId}async checkNetworkId(){if(this.providerNetworkId||(this.providerNetworkId=this.provider&&(await this.provider.getNetwork()).chainId),this.providerNetworkId!=BigInt(this.networkId))throw new Error(`Sorry, currentNetworkId: ${this.providerNetworkId} no equal networkId: ${this.networkId}`)}async getAllowance(e,t=this.contractAddress){const n=await this.signer.getAddress();return await e.allowance(n,t)}async approveERC20(e,n,r=this.contractAddress){await this.checkNetworkId();const a=new t.ethers.Contract(e,h,this.signer);await N({contractInstance:a,account:await this.signer.getAddress(),contractAddress:e,targetValue:n});const s=await this.getAllowance(a,r);await a.approve(r,n);try{for(let e=0;e<5e3;e++){const e=await this.getAllowance(a,r);if(s!==e){if(n>e)throw new Error("Approval amount is insufficient");break}await O(2e3)}}catch(e){U(e.message)}}async transfer(e,n,r){if(await this.checkNetworkId(),r&&!ie[r?.contractType])throw new Error(`Invalid crossAddressType : ${r.contractType}`);const a=new t.ethers.Contract(this.contractAddress,g,this.signer),s=oe.encodeExt(r),i={value:t.toBigInt(n)};return await a.transfer(e,s,i)}async transferERC20(e,n,r,a){if(await this.checkNetworkId(),a&&!ie?.[a.contractType])throw new Error(`Invalid crossAddressType : ${a.contractType}`);const s=new t.ethers.Contract(e,h,this.provider);r>await this.getAllowance(s)&&await this.approveERC20(e,r);const i=new t.ethers.Contract(this.contractAddress,g,this.signer),o=oe.encodeExt(a);return await i.transferERC20(e,n,r,o)}async contractApprove(e,n,r){if(!r)return U("contract approve address is empty!");const a=new t.ethers.Contract(e,h,this.provider);n>await this.getAllowance(a,r)&&await this.approveERC20(e,n,r)}static encodeExt(e){return e&&t.isHexString(e.contractType)?e.receiveStarknetAddress?"0x03"==e.contractType&&t.isHexString(e.receiveStarknetAddress)?ae([e.contractType,oe.fix0xPadStartAddress(e.receiveStarknetAddress,66)]):ae([e.contractType,e.receiveStarknetAddress]):e.contractType:"0x"}static fix0xPadStartAddress(e,t){return e?0!==String(e).indexOf("0x")?"":(e=e.replace("0x","")).length<t?`0x${c.padStart(e,t-2,"0")}`:e:""}static decodeExt(e){if(!t.isHexString(e))return;return{type:se(e,0,1),value:se(e,1)}}static parseTransferInput(e){const[n,r]=t.ethers.AbiCoder.defaultAbiCoder().decode(["address","bytes"],se(e,4));return{to:n,ext:oe.decodeExt(r)}}}const ce=e=>{const{fromChainID:t,fromChainInfo:n,toChainID:r}=e;return!ue(t,r)&&!!Object.values(n?.contract||{}).find((e=>"OrbiterRouterV3"===e))},ue=(e,t)=>e===I.starknet||e===C.starknet_test||t===I.starknet||t===C.starknet_test,de=e=>{const{transferValue:t,decimals:n,selectMakerConfig:a}=e;return function(e,t,n){if(BigInt(t)<1)throw new Error("the token doesn't support that many decimal digits");if(n.length>S.P_NUMBER)throw new Error("the pText size invalid");let r=function(e,t){let n=function(e){let t=pe(e);return t.max.toFixed().length}(e),r=pe(e),a=function(e){if("string"!=typeof e)return"param must be string";return e.replace(/^0+(\d)|(\d)0+$/gm,"$1$2")}(t.toString());if(a.length>n)throw new Error("amount is inValid");return a>r.max.toFixed()?n-1:n}(e,t);var a=t.toString().length;if(a<S.P_NUMBER)throw new Error("Amount size must be greater than pNumberSize");if(function(e){if(e===I.zksync||e===C.zksync_test||"zksync"===e)return!0;if(e===I.imx||e===C.imx_test||"immutablex"===e)return!0;if(e===I.dydx||e===C.dydx_test||"dydx"===e)return!0;if(e===I.zkspace||e===C.zkspace_test||"zkspace"===e)return!0;return!1}(e)&&a>r){return{state:!0,tAmount:BigInt(t.toString().slice(0,r-n.length)+n+t.toString().slice(r))}}if(function(e){if(e===I.loopring||e===C.loopring_test||"loopring"===e)return!0}(e))return{state:!0,tAmount:BigInt(t)};return{state:!0,tAmount:BigInt(t.toString().slice(0,a-n.length)+n)}}(a.srcChain,new r(t).plus(new r(a.withholdingFee)).multipliedBy(new r(10**n)).toFixed(),a.vc)};function pe(e){if("number"==typeof e){let t=r(2**(b[e]||256)-1);return{min:r(0),max:t}}let t=r(2**(b[e]||256)-1);return{min:r(0),max:t}}async function le(e,t,n,a){const s=new r(e),i=s.multipliedBy(new r(a)).decimalPlaces(18===t.decimals?5:2,r.ROUND_UP),o=s.minus(i).multipliedBy(10**n.decimals);return t.symbol!==n.symbol?(await async function(e,t="ETH",n,a){e instanceof r||(e=new r(e));const s=a??await async function(e){try{const t=await async function(e){return await j.get(`https://api.coinbase.com/v2/exchange-rates?currency=${e}`)}(e),n=t?.data?.data;return n&&q(n.currency,e)&&n.rates?n.rates:{}}catch(e){return U(e)}}(t),i=c.isObject(s)?s[t]:s,o=c.isObject(s)?s[n]:s;if(!i||!o)return new r(0);return e.dividedBy(i).multipliedBy(o)}(o,t.symbol,n.symbol)).toFixed(0):o.toFixed(0)}async function ye(e){const t=e.chainId,n=e.networkId,r=(await(async()=>{const{activeSignerType:e,evmSigner:t,loopringSigner:n,isMainnet:r}=M();switch(e){case"EVM":if(!Object.keys(t).length)return U("Evm signer is empty by getActiveChainId.");const e=await(t.provider?.getNetwork());return e?.chainId||0n;case"Loopring":return Object.keys(n).length?BigInt(await n.eth.net.getId()):U("Loopring signer is empty.");case"Starknet":return r?y.mainnetId:y.testnetId;default:return U("Can not find signer, please check it!")}})()).toString();if(r!==n&&r!==t)return U("current signer is not match with the source chain.")}const fe={};class he{publicApiUrl="";starkContractAddress="";registrationContractAddress="";constructor(e){const t=e===I.imx;this.publicApiUrl=t?ee.Mainnet:ee.Rinkeby,this.starkContractAddress=t?T.mainnet.starkContractAddress:T.ropsten.starkContractAddress,this.registrationContractAddress=t?T.mainnet.registrationContractAddress:T.ropsten.registrationContractAddress}async getImmutableXClient(e,t,n){const r=String(t);if(fe[r]&&!n)return fe[r];if(!this.starkContractAddress)throw new Error("Sorry, miss param [starkContractAddress]");if(!this.registrationContractAddress)throw new Error("Sorry, miss param [registrationContractAddress]");const a=await p.ImmutableXClient.build({publicApiUrl:this.publicApiUrl,signer:e,starkContractAddress:this.starkContractAddress,registrationContractAddress:this.registrationContractAddress});return fe[r]=a}}async function ge(e,t,r,a,s,i){t=t.toLowerCase(),r=r.toLowerCase(),a=a.toLowerCase();const o=i.contract&&D(i.contract,A);if(!i.contract||!o)return U("Contract not in fromChainInfo.");const c=new n.Contract(m,r,e),u=await async function(e,t,n){if(!n)return U("starknet get address error");const r=await e.allowance(n,t);return r.remaining.low}(c,o,e.address),d=new n.Contract(k,o,e),p=a;try{let n;if(s.gt(u)){const a=c.populate("approve",[o,me(String(v))]),i=d.populate("transferERC20",[r,p,me(String(s)),t]);n=await e.execute([a,i])}else{const a=d.populate("transferERC20",[r,p,me(String(s)),t]);n=await e.execute(a)}return n}catch(e){return console.log(e),U("starknet transfer error",e)}}function me(e){return{type:"struct",...n.uint256.bnToUint256(e)}}function ke(e){if(e.length<66){const t=e.substring(2,e.length),n=64-t.length;let r="";for(let e=0;e<n;e++)r+="0";e="0x"+r+t}return e}const we="0x01",Ie="0x02";async function Ce(e){const{type:n,toWalletAddress:r,value:a,selectMakerConfig:i,fromChainInfo:o,transferValue:c,signer:u,isETH:d,fromTokenInfo:p,toTokenInfo:y,tradeFee:f}=e,g=await u.getAddress(),m=String(o.chainId),k=i.endpoint,I=i.srcToken,C=i.tgtChain,S=i.tgtToken;if(!r)return U("xvm transfer toWalletAddress is empty.");const b=await le(c,p,y,f),T=new s;let v=[];switch(n){case we:v=[n,C,r];break;case Ie:v=g.toLowerCase()===r?.toLowerCase()?[n,C,S,T.utils.toHex(b),"200"]:[n,C,S,T.utils.toHex(b),"200",r]}const A=l.encode(v);return await async function(e,n,r,a,s,i,o,c,u){const d=s.contract&&D(s.contract,x);if(!d)return U(`Network ${n} does not support contract sending`);const p=new t.Contract(d,w,e);if(u)return p.transfer(a,o,{from:r,value:c});{const n=new t.Contract(i,h,e),s=await e.getAddress();await N({contractInstance:n,targetValue:c,account:s,contractAddress:i});const u=await p.transferToken.estimateGas(i,a,c,o);return await p.transferToken(i,a,c,o,{from:r,gas:u})}}(u,m,g,k,o,I,A,a,d)}class Se{static instance;crossConfig={};signer=null;constructor(){}static getInstance(){return this.instance||(this.instance=new Se),this.instance}async initCrossFunctionConfig(e,t){this.signer=e;const{fromChainID:n,toChainID:r,selectMakerConfig:a,fromChainInfo:s,transferValue:i}=t,o=a.srcToken,c=a.endpoint,u=await Z.getInstance().queryTokensByChainId(n),d=await Z.getInstance().queryTokensByChainId(r),p=u.find((e=>e.address===a.srcToken)),l=d.find((e=>e.address===a.tgtToken));if(!p||!l)return U("fromToken or toToken is empty.");const y=function(e,t,n){if(t){if(q(t.nativeCurrency?.address,e))return!0;if(n.find((t=>q(t.address,e))))return!1}return/^0x0+$/i.test(e)}(o,s,u),f=(BigInt(a.tradeFee)/1000000n).toString();try{const e=de({transferValue:i,decimals:p.decimals,selectMakerConfig:a});e.state||U("get transfer value error."),this.crossConfig={...t,tokenAddress:o,isETH:y,fromChainTokens:u,fromTokenInfo:p,toTokenInfo:l,to:c,tradeFee:f,tValue:e,account:await B()}}catch(e){U("init cross config error.",e)}}async getCrossFunction(e,t){await this.initCrossFunctionConfig(e,t);const{fromChainID:n,toChainID:r,fromChainInfo:a,fromCurrency:s,toCurrency:i,crossAddressReceipt:o,selectMakerConfig:c}=this.crossConfig;if((e=>{const{fromCurrency:t,toCurrency:n,fromChainID:r,crossAddressReceipt:a,selectMakerConfig:s,fromChainInfo:i,toChainID:o}=e;return!(!ce({fromChainID:r,selectMakerConfig:s,fromChainInfo:i,toChainID:o})||t===n&&!a)})({fromChainID:n,fromChainInfo:a,toChainID:r,fromCurrency:s,toCurrency:i,crossAddressReceipt:o,selectMakerConfig:c}))return await this.xvmTransfer();switch(n){case I.zksync:case C.zksync_test:return U("zksync lite has some questions to be resolved and will be opened after they are fixed");case I.loopring:case C.loopring_test:return await this.loopringTransfer();case I.starknet:case C.starknet_test:return await this.starknetTransfer();case I.imx:case C.imx_test:return await this.imxTransfer();default:return r===I.starknet||r===C.starknet_test?await this.transferToStarkNet():await this.evmTransfer()}}async xvmTransfer(){const{fromChainInfo:e,crossAddressReceipt:t,transferValue:n,selectMakerConfig:a,account:s,isETH:i,fromTokenInfo:o,toTokenInfo:c,tradeFee:u}=this.crossConfig,d=function(e,t,n){if(!Object.keys(e).length)throw new Error("get real transfer value failed, selectMakerConfig can not be empty!");return BigInt(new r(t).plus(new r(e.withholdingFee)).multipliedBy(new r(10**n)).toFixed())}(a,n,o.decimals),p=e.contract&&D(e.contract,x),l=a.srcToken;if(!p||!l)return U("xvmTransfer error [contractAddress or tokenAddress] is empty.");if(!i){const t=new oe(this.signer,e,p);await t.contractApprove(l,d,p)}try{const r=o.symbol===c.symbol?we:Ie;return await Ce({signer:this.signer,type:r,value:d,transferValue:n,fromChainInfo:e,toWalletAddress:t??s,selectMakerConfig:a,isETH:i,fromTokenInfo:o,toTokenInfo:c,tradeFee:u})}catch(e){return U("XVM transfer error",e)}}async evmTransfer(){const{fromChainID:e,selectMakerConfig:t,tokenAddress:n,account:r,tValue:a,isETH:s}=this.crossConfig;if(s){return await this.signer.sendTransaction({from:r,to:t.endpoint,value:a?.tAmount})}{const r=L({contractAddress:n,localChainID:e,signer:this.signer});if(!r)return U("Failed to obtain contract information, please refresh and try again.");try{return await r.transfer(t.endpoint,a?.tAmount)}catch(e){return U("evm transfer error",e)}}}async loopringTransfer(){const{selectMakerConfig:e,crossAddressReceipt:t,fromChainID:n,tValue:r,tokenAddress:a,toChainInfo:s,account:i}=this.crossConfig,o=9e3+Number(s.internalId)+"",c=r.tAmount,u=t?`${o}_${t}`:o;if(u.length>128)return U("The sending address is too long");const d=M().loopringSigner;if(!Object.keys(d).length)return U("should update loopringSigner by [updateConfig] function.");try{return await ne.sendTransfer(d,i,n,e.endpoint,a,c,u)}catch(e){const t={"account is not activated":"This Loopring account is not yet activated, please activate it before transferring.","User account is frozen":"Your Loopring account is frozen, please check your Loopring account status on Loopring website. Get more details here: https://docs.loopring.io/en/basics/key_mgmt.html?h=frozen",default:e.message};return U(t[e.message]||t.default||"Something was wrong by loopring transfer. please check it all",e)}}async starknetTransfer(){const{selectMakerConfig:e,account:t,crossAddressReceipt:n,fromChainInfo:a,tValue:s}=this.crossConfig;if(!t||!new RegExp(/^0x[a-fA-F0-9]{64}$/).test(t))return U("Please check your starknet address.");if(!n)return U("crossAddressReceipt can not be empty.");if(e.endpoint.length<60)return U("crossAddressReceipt iserror.");try{const t=e.srcToken;return await ge(this.signer,n,t,e.endpoint,new r(s.tAmount.toString()),a)}catch(e){return U("starknet transfer error",e)}}async transferToStarkNet(){const{selectMakerConfig:e,tValue:t,crossAddressReceipt:r,fromChainInfo:a,isETH:s,transferValue:i,fromTokenInfo:o,toTokenInfo:c,tradeFee:u}=this.crossConfig;if(!r||66!==ke(r).length||"0x0000000000000000000000000000000000000000000000000000000000000000"===ke(r))return U("please use correct starknet address");const d=function(e,t){if("starknet"!==t)return new RegExp(/^0x[a-fA-F0-9]{40}$/).test(e)?null:"Invalid evm address";try{return n.validateAndParseAddress(ke(e)),null}catch(e){return e.message}}(r,"starknet");if(d)return U(`starknet get account address error: ${d}`);const p=a.contract&&D(a.contract,A);if(!a.contract||!p)return U("Contract not in fromChainInfo.");try{return await Ce({signer:this.signer,type:we,value:t.tAmount,transferValue:i,fromChainInfo:a,toWalletAddress:r,selectMakerConfig:e,isETH:s,fromTokenInfo:o,toTokenInfo:c,tradeFee:u})}catch(e){return U("transfer to starknet error",e)}}async imxTransfer(){const{selectMakerConfig:e,fromChainID:t,account:n,tValue:r,isETH:a,fromTokenInfo:s}=this.crossConfig;try{const i=e.srcToken,o=new he(t),c=await o.getImmutableXClient(this.signer,n,!0);let u={type:p.ETHTokenType.ETH,data:{decimals:s.decimals}};return a||(u={type:p.ERC20TokenType.ERC20,data:{symbol:s.symbol,decimals:s.decimals,tokenAddress:i}}),await c.transfer({sender:n,token:u,quantity:d.ethers.BigNumber.from(r.tAmount.toString()),receiver:e.endpoint})}catch(e){return U("Imx transfer error",e)}}}class be{static instance;chainsService;tokensService;crossRulesService;historyService;refundService;crossControl;constructor(e){R({isMainnet:e?.isMainnet??!0,dealerId:e?.dealerId||"",evmSigner:this.generateSigner(exports.SIGNER_TYPES.EVM,e?.evmConfig),loopringSigner:this.generateSigner(exports.SIGNER_TYPES.Loopring,e?.loopringConfig),starknetSigner:this.generateSigner(exports.SIGNER_TYPES.Starknet,e?.starknetConfig)}),this.chainsService=X.getInstance(),this.tokensService=Z.getInstance(),this.historyService=J.getInstance(),this.crossControl=Se.getInstance(),this.crossRulesService=W.getInstance(),this.refundService=re.getInstance()}generateSigner=(e,r)=>{if(!r||!Object.keys(r).length)return{};const{signer:i,privateKey:o,providerUrl:c,starknetAddress:u}=r;if(i&&Object.keys(i).length)return i;switch(e){case exports.SIGNER_TYPES.EVM:return o&&c?new t.Wallet(o,new t.ethers.JsonRpcProvider(c)):{};case exports.SIGNER_TYPES.Loopring:s.providers.HttpProvider.prototype.sendAsync=s.providers.HttpProvider.prototype.send;const e=o&&c&&new a({privateKeys:[o],providerOrUrl:c});return new s(e);case exports.SIGNER_TYPES.Starknet:const r=new n.RpcProvider({nodeUrl:c||""});return o&&u?new n.Account(r,u,o):{};default:return{}}};static getInstance(){return this.instance||(this.instance=new be),this.instance}updateConfig=e=>{const{isMainnet:t,dealerId:n,evmSigner:r,starknetSigner:a,loopringSigner:s}=M();R({isMainnet:e.isMainnet??t,dealerId:e?.dealerId||n,evmSigner:e?.evmConfig?this.generateSigner(exports.SIGNER_TYPES.EVM,e?.evmConfig):r,loopringSigner:e?.loopringConfig?this.generateSigner(exports.SIGNER_TYPES.Loopring,e?.loopringConfig):s,starknetSigner:e?.starknetConfig?this.generateSigner(exports.SIGNER_TYPES.Starknet,e?.starknetConfig):a}),this.chainsService.updateConfig(),this.tokensService.updateConfig(),this.crossRulesService.updateConfig()};getGlobalState=()=>M();setGlobalState=e=>R(e);queryChains=async()=>await this.chainsService.queryChains();queryChainInfo=async e=>await this.chainsService.queryChainInfo(e);queryTokensDecimals=async(e,t)=>await this.tokensService.queryTokensDecimals(e,t);queryToken=async(e,t)=>await this.tokensService.queryToken(e,t);queryTokensAllChain=async()=>await this.tokensService.queryTokensAllChain();queryTokensByChainId=async e=>await this.tokensService.queryTokensByChainId(e);queryRouters=async()=>await this.crossRulesService.queryRouters();queryRouter=async e=>await this.crossRulesService.queryRouter(e);queryHistoryList=async e=>await this.historyService.queryHistoryList(e);searchTransaction=async e=>await this.historyService.searchTransaction(e);queryRealSendAmount=async e=>{const{ruleConfig:n,transferValue:r}=e;if(!Object.keys(n).length||!r)return U("queryRealSendAmount params error, please check it!");const{srcChain:a,srcToken:s}=n,i=await this.tokensService.queryToken(a,s),o=de({transferValue:r,decimals:i.decimals,selectMakerConfig:n});return o.state?{sendAmount:o.tAmount,decimals:i.decimals,formatSendAmount:t.formatUnits(o.tAmount,i.decimals)}:U("queryRealSendAmount error.")};queryReceiveAmount=async(e,t)=>{const{srcChain:n,tgtChain:a,srcToken:s,tgtToken:i,tradeFee:o}=t,c=await this.tokensService.queryToken(n,s),u=await this.tokensService.queryToken(a,i),d=c.symbol,p=u.symbol;if(d===p){const t=18===c.decimals?8:5,n=new r(e).multipliedBy(o).dividedBy(E).decimalPlaces(t,r.ROUND_UP);return new r(e).minus(n).toString()}{const e=await async function(e){try{const t=(await j.get(`https://api.coinbase.com/v2/exchange-rates?currency=${e}`)).data;return t&&!q(t.currency,e)&&t.rates?t.rates:U("can`t search rates, please retry.")}catch(e){U(e.message)}}("ETH");if(!e)return U("get rate fail");const n=e[d],r=e[p];return n&&r&&(t?.slippage||0)?0:U("get rate fail")}};toRefund=async e=>{z(e.fromChainId);try{const t=await this.queryChainInfo(e.fromChainId);return await ye(t),await this.refundService.toSend(e)}catch(e){return console.log(e),U(e.message)}};toBridge=async e=>{const{fromChainID:t,fromCurrency:n,toChainID:a,toCurrency:s,transferValue:i}=e;if(z(t),!P())throw new Error("Can not find signer, please check it!");const o=await this.queryChainInfo(t);await ye(o);const c=await this.queryChainInfo(a);if(!o||!c)throw new Error("Cant get ChainInfo by fromChainId or to toChainId.");const u=await this.queryRouter({fromChainInfo:o,toChainInfo:c,fromCurrency:n,toCurrency:s});if(u&&!Object.keys(u).length)throw new Error("has no rule match, pls check your params!");if(new r(i).gt(u.maxAmt)||new r(i).lt(u.minAmt))throw new Error("Not in the correct price range, please check your value");try{return await this.crossControl.getCrossFunction(P(),{...e,fromChainInfo:o,toChainInfo:c,selectMakerConfig:u})}catch(e){return U("Bridge getCrossFunction error",e)}}}exports.BASE_TRADE_FEE=E,exports.CHAIN_ID_MAINNET=I,exports.CHAIN_ID_TESTNET=C,exports.CONTRACT_TYPE_ROUTER_V3=x,exports.CONTRACT_TYPE_SOURCE=A,exports.CROSS_ADDRESS_ABI=g,exports.Coin_ABI=h,exports.DYDX_MAKERS={"0x694434EC84b7A8Ad8eFc57327ddD0A428e23f8D5":{starkKey:"04e69175389829db733f41ae75e7ba59ea2b2849690c734fcd291c94d6ec6017",positionId:"60620"}},exports.GAS_ADDRESS={"mainnet-alpha":{address:"0x07a4ef69a3d7c647d8d99da0aa0f296c84a22148fa8665e9a52179418b8de54e",privateKey:"0x53ea9a5da3c9c1232dddf771b4660d07ebea36bfba1ce3619f3e867cb1c49b0"},"goerli-alpha":{address:"0x07a4ef69a3d7c647d8d99da0aa0f296c84a22148fa8665e9a52179418b8de54e",privateKey:"0x53ea9a5da3c9c1232dddf771b4660d07ebea36bfba1ce3619f3e867cb1c49b0"}},exports.IMX_CONTRACTS=T,exports.L1_TO_L2_ADDRESSES={"0x095d2918b03b2e86d68551dcf11302121fb626c9":{"mainnet-alpha":"0x0411c2a2a4dc7b4d3a33424af3ede7e2e3b66691e22632803e37e2e0de450940","goerli-alpha":"0x050e5ba067562e87b47d87542159e16a627e85b00de331a53b471cee1a4e5a4f"},"0x0043d60e87c5dd08c86c3123340705a1556c4719":{"mainnet-alpha":"","goerli-alpha":"0x050e5ba067562e87b47d87542159e16a627e85b00de331a53b471cee1a4e5a4f"},"0x80c67432656d59144ceff962e8faf8926599bcf8":{"mainnet-alpha":"0x07b393627bd514d2aa4c83e9f0c468939df15ea3c29980cd8e7be3ec847795f0","goerli-alpha":"0x050e5ba067562e87b47d87542159e16a627e85b00de331a53b471cee1a4e5a4f"}},exports.MAX_BITS=b,exports.ORBITER_ROUTER_V3_ABI=w,exports.Orbiter=be,exports.SIZE_OP=S,exports.STARKNET_CHAIN_ID=y,exports.STARKNET_ERC20_ABI=m,exports.STARKNET_OB_SOURCE_ABI=k,exports.UINT_256_MAX=v;
