eulith-web3js
Version:
Official Eulith Typescript client library
1 lines • 200 kB
JavaScript
(()=>{var e={3361:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Aave=void 0;class n{}t.Aave=n,n.LoanRequest=class{constructor({tokens:e}){this.tokens=e}generateLoanRequest(){let e=[];return this.tokens.forEach((t=>e.push({token_address:t.token.address,amount:t.amount}))),{method:"eulith_start_aavev2_loan",params:[{tokens:e}]}}get tokenValues(){let e=[];return this.tokens.forEach((t=>e.push(t.token.asTokenValue(t.amount)))),e}}},7887:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.AtomicTx=void 0;const u=o(n(3991)),d=n(6982),l=r(n(8156));!function(e){function t(e){return{types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],AceImmediateTx:[{name:"chainId",type:"int64"},{name:"nonce",type:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256"},{name:"maxFeePerGas",type:"uint256"},{name:"gasLimit",type:"uint256"},{name:"data",type:"bytes"}]},primaryType:"AceImmediateTx",domain:{name:"EulithAceImmediateTx",version:"1"},message:{chainId:e.chain_id,nonce:e.nonce,maxPriorityFeePerGas:e.max_priority_fee_per_gas,maxFeePerGas:e.max_fee_per_gas,gasLimit:e.gas_limit,data:e.data}}}e.Transaction=class{constructor({provider:e,signer:t,tradingKeyAddress:n,safeAddress:i}){let a=l.Provider.ProviderOrWeb3(e);if(!a)throw new Error("Need provider or web3");if(this.inTransaction_=!0,void 0===n){if(void 0===t)throw new Error("AtomicTx.Transaction constructor needs either accountAddress or signer");n=t.address}if(d.randomUUID)this.transactionId_=d.randomUUID();else{const e=new BigUint64Array(1);window.crypto.getRandomValues(e),this.transactionId_=e[0].toString()}this.hasGnosis=!!i,a.setAtomicTxParams(n,this.transactionId_,i),t&&a.setSigner(t),this.web3_=new l.Web3({provider:a}),this.logger_=null==e?void 0:e.logger}addTransaction(e){return s(this,void 0,void 0,(function*(){this.web3_.atomicTx=this;const t=this.web3_.eulithSendUnsignedTransaction(e);return yield t}))}addTransactions(e){return s(this,void 0,void 0,(function*(){let t=[];for(const n of e){const e=yield this.addTransaction(n);t.push(e)}return t}))}get provider(){return this.web3_.provider}get atomicTxID(){return this.transactionId_}commit(){return s(this,void 0,void 0,(function*(){if(!this.inTransaction_)throw new Error("Cannot call commit on transaction that is already committed");return this.inTransaction_=!1,this.web3_.atomicTx=this,yield this.provider.request({method:"eulith_commit",params:[]})}))}commitForEOAProxy(e,t){return s(this,void 0,void 0,(function*(){if(!this.inTransaction_)throw new Error("Cannot call commit on transaction that is already committed");this.inTransaction_=!1,this.web3_.atomicTx=this;const n=yield this.provider.request({method:"eulith_commit",params:[]});return new l.Contracts.EOAProxyContract(this.provider,e).getProxyTransaction(n,t)}))}commitForAce(){return s(this,void 0,void 0,(function*(){if(!this.inTransaction_)throw new Error("Cannot call commit_for_ace on transaction that is already committed");this.inTransaction_=!1,this.web3_.atomicTx=null;const e=yield this.provider.request({method:"eulith_commit_for_ace",params:[]}),n=t(e),i=yield this.web3_.signer.signTypedData(n);return yield this.provider.request({method:"eulith_send_ace_transaction",params:[{signature:i.rsv,immediate_tx:e}]})}))}commitAndSendAndWait(e){return s(this,void 0,void 0,(function*(){const t=null==e?void 0:e.timeoutMS,n=null==e?void 0:e.extraTXParams2Merge;null==this.web3_.signer&&l.Exceptions.API.Throw(this.logger_,{message:"Cannot AtomicTx.commitAndSendAndWait without an associated signer"});let i=yield this.commit();n&&(i=Object.assign(Object.assign({},i),n));const a=yield this.provider.signAndSendTransaction(i,this.web3_.signer);return yield l.Utils.waitForTxReceipt({logger:this.logger_,provider:this.provider,txHash:a,timeoutInMS:t})}))}rollback(){return s(this,void 0,void 0,(function*(){if(this.inTransaction_)return this.inTransaction_=!1,this.web3_.atomicTx=this,yield this.provider.request({method:"eulith_discard_atomic_transactions",params:[]})}))}getProviderAuthAddress(){return this.web3_.provider.tradingKeyAddress}},e.NestedTransaction=class{constructor({parentTx:e}){this.web3_=new l.Web3({provider:e.provider})}get provider(){return this.web3_.provider}addTransaction(e){return s(this,void 0,void 0,(function*(){const t=this.web3_.eulithSendUnsignedTransaction(e);return yield t}))}addTransactions(e){return s(this,void 0,void 0,(function*(){let t=[];for(const n of e){const e=yield this.addTransaction(n);t.push(e)}return t}))}commit(){return s(this,void 0,void 0,(function*(){const e=yield this.provider.request({method:"eulith_finish_inner",params:[]});return u.default.utils.toNumber(e)}))}},e.bundleAndCommit=function(e,t,n,i){return s(this,void 0,void 0,(function*(){return yield e.request({method:"eulith_tx_bundle",params:[{auth_address:t,transactions:n,commit_options:i}]})}))},e.getAceImmediateTxTypedData=t}(t.AtomicTx||(t.AtomicTx={}))},6688:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Auth=void 0;const u=n(6094),d=o(n(8938));!function(e){function t(e,t){return s(this,void 0,void 0,(function*(){return yield(0,u.ensureWasmLoaded)(),(yield Promise.resolve().then((()=>r(n(7383))))).generate_keypair(e,t)}))}e.fromCredentials=function(e,n,i,a,r){return s(this,void 0,void 0,(function*(){return yield(0,u.ensureWasmLoaded)(),function(e,t){return s(this,void 0,void 0,(function*(){const n={otp:e.otp,sub:e.sub,now:e.now,signature:e.signature,expire_in_secs:e.expire_in_secs},i=d.default.create({}),a=(yield i.post(`${t}/v0/user/login`,n)).data.token;return Promise.resolve({token:a})}))}((yield t(e,n)).generate_login(i,e,r),a)}))},e.fromToken=function(e){return{token:e}},e.generateKeyPair=t}(t.Auth||(t.Auth={}))},5335:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Contracts=void 0;const u=o(n(3991)),d=r(n(8156)),l=o(n(3303)),p=o(n(6345)),y=o(n(3792)),c=o(n(6111)),m=o(n(4227));!function(e){class t{constructor(e){if(null==e)throw new Error("Illegal null nativeContract argument to Eulith.Contract");this._contract=e}get native(){return this._contract}get options(){return this._contract.options}get address(){return this._contract.options.address}}e.Contract=t;class n extends t{static new({provider:e,contractAddress:t,decimals:i,symbol:a}){return s(this,void 0,void 0,(function*(){const r=new(new d.Web3({provider:e}).eth.Contract)(l.default,t);if(void 0===i&&(i=u.default.utils.toNumber(yield r.methods.decimals().call())),"number"!=typeof i||i<1)throw new Error("Invalid number of decimals specified in ERC20TokenContract::mk");if(void 0===a&&(a=yield r.methods.symbol().call()),"string"!=typeof a)throw new Error("Invalid symbol specified in ERC20TokenContract::mk");return new n(e,r,i,a)}))}constructor(e,t,n,i){if(super(t),n<=0)throw new Error("Illegal number of decimals for ERC20Token contract");this.provider_=e,this.decimals_=n,this.symbol_=i}get nativeERC20(){return this._contract}get decimals(){return this.decimals_}get provider(){return this.provider_}get symbol(){return this.symbol_}asTokenValue(e){return new d.Tokens.Value.ERC20({v:e,decimals:this.decimals,symbol:this.symbol})}approve(e,t,n){let i=Object.assign({to:this.address,data:this.nativeERC20.methods.approve(e,t.asWire).encodeABI()},n);return new d.Signing.UnsignedTransaction(i)}transfer(e,t,n){let i=Object.assign({to:this.address,data:this.nativeERC20.methods.transfer(e,t.asWire).encodeABI()},n);return new d.Signing.UnsignedTransaction(i)}transferFrom(e,t,n,i){let a=Object.assign({data:this.nativeERC20.methods.transferFrom(e,t,n.asWire).encodeABI()},i);return new d.Signing.UnsignedTransaction(a)}balanceOf(e){return s(this,void 0,void 0,(function*(){return this.asTokenValue(yield this.nativeERC20.methods.balanceOf(e).call())}))}allowance(e,t){return s(this,void 0,void 0,(function*(){return this.asTokenValue(yield this.nativeERC20.methods.allowance(e,t).call())}))}}e.ERC20TokenContract=n;class i extends n{static new({provider:e,contractAddress:t}){return s(this,void 0,void 0,(function*(){const n=new d.Web3({provider:e});return new i(e,new n.eth.Contract(p.default,t))}))}constructor(e,t){super(e,t,18,"WETH")}nativeWETH(){return this._contract}balanceOf(e){return s(this,void 0,void 0,(function*(){return this.asTokenValue(yield this.nativeWETH().methods.balanceOf(e).call())}))}deposit(e,t){let n=null!=t?t:{};return n.value=Math.round(1e18*e.asFloat),n.gas||(n.gas=6e4),n.to||(n.to=this.address),n.data=this.native.methods.deposit().encodeABI(),new d.Signing.UnsignedTransaction(n)}withdraw(e,t){let n=null!=t?t:{};return n.gas||(n.gas=6e4),n.to||(n.to=this.address),n.data=this.native.methods.withdraw(u.default.utils.toBN(1e18*e.asFloat)).encodeABI(),new d.Signing.UnsignedTransaction(n)}}e.WethTokenContract=i,e.EOAProxyContract=class extends t{constructor(e,t){super(new(new d.Web3({provider:e}).eth.Contract)(y.default,t))}getProxyTransaction(e,t){e.to=this.address,e.from=t;const n=this.native;return e.data=n.methods.forward(e.data).encodeABI(),e}getReimburseTransaction(e){const t=this.native.methods.reimburse().encodeABI();return{from:e,to:this.address,data:t}}},e.AaveLendingPoolV2=class extends t{constructor(e,t){super(new(new d.Web3({provider:e}).eth.Contract)(c.default,t))}deposit(e,t,n,i){const a=this.native.methods.deposit(e,t,n,i).encodeABI();return{to:this.address,data:a}}withdraw(e,t,n){const i=this.native.methods.withdraw(e,t,n).encodeABI();return{to:this.address,data:i}}borrow(e,t,n,i,a){const r=this.native.methods.borrow(e,t,n,i,a).encodeABI();return{to:this.address,data:r}}repay(e,t,n,i){const a=this.native.methods.repay(e,t,n,i).encodeABI();return{to:this.address,data:a}}},e.Safe=class extends t{constructor(e,t){super(new(new d.Web3({provider:e}).eth.Contract)(m.default,t))}getOwners(){return s(this,void 0,void 0,(function*(){return this.native.methods.getOwners().call()}))}getThreshold(){return s(this,void 0,void 0,(function*(){const e=this.native;return parseInt(yield e.methods.getThreshold().call(),10)}))}}}(t.Contracts||(t.Contracts={}))},5784:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.RPC=t.Timeout=t.API=void 0;const s=r(n(8156));class o extends Error{static Throw(e,t){throw t instanceof o||(t=new o({message:t.message})),null==e||e.log(s.Logging.LogLevel.ERROR,`${t.message}`),t}constructor({message:e}){super(e)}}t.API=o;class u extends Error{static Throw(e,t){throw t instanceof u||(t=new u({message:t.message})),null==e||e.log(s.Logging.LogLevel.ERROR,`${t.message}`),t}constructor({message:e}){super(e)}}t.Timeout=u;class d extends Error{constructor({message:e,data:t}){super(t?`RPC request failed with message: ${e} and data: \n ${JSON.stringify(t)}`:`RPC request failed with message: ${e}`),this.data=t}}t.RPC=d},2056:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FlashLiquidity=void 0;const u=o(n(3991)),d=r(n(8156));class l extends d.AtomicTx.NestedTransaction{constructor({parentTx:e}){super({parentTx:e})}get feePct(){return this.feePct_}get feeAmt(){return this.feeAmt_}get price(){return this.price_}static start({parentTx:e,loan:t,takePay:n}){return s(this,void 0,void 0,(function*(){if(t){const n=new l({parentTx:e}),i=yield n.provider.request(t.generateLoanRequest());return n.feePct_=u.default.utils.toNumber(i)/1e6,n.feeAmt_=t.tokenValues.map((e=>e.cloneWithNewValue(100*e.asFloat*n.feePct_))),n}if(n){const t=new l({parentTx:e});if(n.take.options.address==n.pay.options.address){const i=yield d.FlashLiquidity.start({parentTx:e,loan:new d.Uniswap.LoanRequest({borrowTokenA:n.take,borrowAmountA:n.takeAmount,borrowTokenB:null,borrowAmountB:null,payTransferFrom:n.payTransferFrom,recipient:n.recipient})});t.feePct_=i.feePct,t.feeAmt_=i.feeAmt,t.price_=1}else{const i=yield d.Uniswap.getBestPriceQuote({swapQuoteRequest:{sellToken:n.pay,buyToken:n.take,amount:n.takeAmount,trueForAmountIn:!1},recipient:n.recipient,fillOrKill:!0,payTransferFrom:n.payTransferFrom,provider:t.provider});yield d.Uniswap.startSwap({request:i.swapRequest,parentTx:e}),t.feePct_=i.feePct,t.feeAmt_=[i.feeAmt],t.price_=i.price}return t}}))}}t.FlashLiquidity=l},7724:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Gmx=void 0;const u=r(n(8156)),d=o(n(4824)),l=o(n(6601)),p=o(n(4092)),y=o(n(3117)),c=o(n(8456)),m=o(n(1138)),f=o(n(89));!function(e){function t(e){return s(this,void 0,void 0,(function*(){const t=yield e.request({method:"eulith_gmx_address_lookup",params:[]});return{router:t.router,reader:t.reader,vault:t.vault,rewardRouter:t.reward_router,glpManager:t.glp_manager,positionRouter:t.position_router,rewardTracker:t.reward_tracker,orderbook:t.orderbook}}))}function n(t,n,i,a){return s(this,void 0,void 0,(function*(){const r=new t.eth.Contract(f.default,n.vault),s=BigInt(a*Math.pow(10,i.decimals)),o=yield r.methods.tokenToUsdMin(i.address,s.toString()).call();return parseInt(o)/Math.pow(10,e.PRICE_PRECISION_DECIMALS)}))}function i(t,n,i){return s(this,void 0,void 0,(function*(){const a=new t.eth.Contract(f.default,n.vault),r=yield a.methods.getMaxPrice(i.address).call();return parseInt(r)/Math.pow(10,e.PRICE_PRECISION_DECIMALS)}))}function a(t,n,i){return s(this,void 0,void 0,(function*(){const a=new t.eth.Contract(f.default,n.vault),r=yield a.methods.getMinPrice(i.address).call();return parseInt(r)/Math.pow(10,e.PRICE_PRECISION_DECIMALS)}))}function r(e,t,n,i,a){return s(this,void 0,void 0,(function*(){const r=a.approve(n.router,a.asTokenValue(i),{from:t.address,gas:2e6});yield _(e,t,r)}))}function o(e,t,n,i){return s(this,void 0,void 0,(function*(){const a=new e.eth.Contract(m.default,n.router);if(!(yield a.methods.approvedPlugins(t.address,i).call())){const r=a.methods.approvePlugin(i).encodeABI(),s={from:t.address,to:n.router,data:r,gas:5e6};e.inAtomicTx?yield e.provider.signAndSendTransaction(s,t):yield e.provider.signAndSendTransactionAndWait(s,t)}}))}function h(e){if(e.atomicTx&&!e.atomicTx.hasGnosis)throw new Error("calling this method in an atomic transaction without a Safe exposes you to leaving funds in your toolkit contract accidentally")}function _(e,t,n){return s(this,void 0,void 0,(function*(){return e.inAtomicTx?yield e.provider.signAndSendTransaction(n,t):(yield e.provider.signAndSendTransactionAndWait(n,t)).transactionHash}))}e.GLP_DECIMALS=18,e.PRICE_PRECISION_DECIMALS=30,e.getPositions=function(e,t,n){return s(this,void 0,void 0,(function*(){const i=[],a=[],r=[];for(const e of n)i.push(e.collateralToken),a.push(e.indexToken),r.push(e.isLong);const s={wallet_address:t,collateral_addresses:i,index_addresses:a,is_long:r},o=yield e.request({method:"eulith_gmx_position_lookup",params:[s]}),u=[];for(const e of o.positions)u.push({collateralTokenAddress:e.collateral_token_address,indexTokenAddress:e.index_token_address,isLong:e.is_long,positionSizeDenomUsd:e.position_size_denom_usd,collateralSizeDenomUsd:e.collateral_size_denom_usd,entryPriceDenomUsd:e.entry_price_denom_usd,realizedPnL:e.realized_pnl,hasProfit:e.has_profit,liquidationPriceDenomUsd:e.liquidation_price_denom_usd,currentDeltaDenomUsd:e.current_delta_denom_usd});return u}))},e.swap=function(e,n,i,a){var o;return s(this,void 0,void 0,(function*(){const s=e.provider;a||(a=yield t(s));const d=n.address,l=yield u.Tokens.getTokenContract({provider:s,address:i.sellToken}),y=yield u.Tokens.getTokenContract({provider:s,address:i.buyToken}),c=yield l.allowance(d,a.router);i.approveErc&&c.asFloat<i.amountIn&&(yield r(e,n,a,i.amountIn-c.asFloat,l));const f=BigInt(i.amountIn*Math.pow(10,l.decimals)),h=new e.eth.Contract(p.default,a.reader),_=yield h.methods.getAmountOut(a.vault,i.sellToken,i.buyToken,f.toString()).call(),T=_[0],v=_[1],b=parseInt(T)*(1-i.slippage),g=null!==(o=i.recipient)&&void 0!==o?o:d,w=new e.eth.Contract(m.default,a.router).methods.swap([i.sellToken,i.buyToken],f.toString(),b.toString(),g),x={from:d,to:a.router,data:w.encodeABI(),gas:2e6},k=parseInt(T)/Math.pow(10,y.decimals);return{price:i.amountIn/k,fee:parseInt(v)/Math.pow(10,y.decimals),tx:x}}))},e.getStakedGlpBalance=function(n,i,a){return s(this,void 0,void 0,(function*(){const r=n.provider;a||(a=yield t(r));const s=new n.eth.Contract(c.default,a.rewardTracker),o=yield s.methods.balanceOf(i).call();return parseInt(o)/Math.pow(10,e.GLP_DECIMALS)}))},e.mintGlp=function(e,t,n,i,a){return s(this,void 0,void 0,(function*(){const r=yield e.provider.request({method:"eulith_mint_and_stake_glp",params:[{pay_token_address:n.address,pay_amount:i,slippage:a}]});if(0===r.length)throw new Error("mint and stake glp returned empty list response");const s=r[0],o=s.txs;for(const e of o)e.from=t.address;return{minGlp:s.min_glp,minUsdValue:s.min_usd_value,txs:o}}))},e.redeemGlp=function(n,i,a,r){var o;return s(this,void 0,void 0,(function*(){const s=n.provider;r||(r=yield t(s));const u=new n.eth.Contract(y.default,r.rewardRouter),d=a.glpAmount*BigInt(Math.pow(10,e.GLP_DECIMALS)),l=BigInt(a.minReceiveToken*Math.pow(10,a.receiveToken.decimals)),p=null!==(o=a.recipient)&&void 0!==o?o:i.address,c=u.methods.unstakeAndRedeemGlp(a.receiveToken.address,d.toString(),l.toString(),p).encodeABI();return{from:i.address,to:r.rewardRouter,data:c,gas:15e5}}))},e.increasePosition=function(u,d,p,y){var c,m;return s(this,void 0,void 0,(function*(){const s=null!==(c=p.leverage)&&void 0!==c?c:1,f=null===(m=p.approveErc)||void 0===m||m,h=u.provider;y||(y=yield t(h)),yield o(u,d,y,y.positionRouter);const T=yield n(u,y,p.collateralToken,p.collateralAmountIn),v=BigInt(Math.floor(T*Math.pow(10,e.PRICE_PRECISION_DECIMALS)*s)),b=BigInt(p.collateralAmountIn*Math.pow(10,p.collateralToken.decimals)),g=new u.eth.Contract(l.default,y.positionRouter),w=BigInt(yield g.methods.minExecutionFee().call());f&&(yield r(u,d,y,p.collateralAmountIn,p.collateralToken));const x=p.trueForLong?yield i(u,y,p.positionToken):yield a(u,y,p.positionToken),k=BigInt(x*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),A=g.methods.createIncreasePosition([p.collateralToken.address],p.positionToken.address,b.toString(),0,v.toString(),p.trueForLong,k.toString(),w.toString(),"0x00000000000000000000000000000000","0x0000000000000000000000000000000000000000").encodeABI(),P={from:d.address,to:y.positionRouter,data:A,gas:5e6,value:w.toString()};return _(u,d,P)}))},e.decreasePosition=function(r,u,d,p){var y;return s(this,void 0,void 0,(function*(){const s=r.provider;p||(p=yield t(s)),yield o(r,u,p,p.positionRouter);const c=yield n(r,p,d.collateralToken,d.decreaseCollateral),m=BigInt(c*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),f=yield n(r,p,d.positionToken,d.decreaseExposure),h=BigInt(f*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),T=new r.eth.Contract(l.default,p.positionRouter),v=BigInt(yield T.methods.minExecutionFee().call()),b=d.trueForLong?yield i(r,p,d.positionToken):yield a(r,p,d.positionToken),g=BigInt(b*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),w=null!==(y=d.recipient)&&void 0!==y?y:u.address,x=T.methods.createDecreasePosition([d.collateralToken.address],d.positionToken.address,m.toString(),h.toString(),d.trueForLong,w,g.toString(),0,v.toString(),!1,"0x0000000000000000000000000000000000000000").encodeABI(),k={from:u.address,to:p.positionRouter,data:x,gas:5e6,value:v.toString()};return _(r,u,k)}))},e.createIncreaseOrder=function(n,i,a,u){return s(this,void 0,void 0,(function*(){h(n);const s=n.provider;u||(u=yield t(s)),yield o(n,i,u,u.orderbook);const p=new n.eth.Contract(d.default,u.orderbook),y=BigInt(a.amountIn*Math.pow(10,a.payToken.decimals)),c=BigInt(a.sizeDeltaUsd*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),m=BigInt(a.limitPriceUsd*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),f=new n.eth.Contract(l.default,u.positionRouter),T=BigInt(yield f.methods.minExecutionFee().call());a.approveErc&&(yield r(n,i,u,y.toString(),a.payToken));const v=!a.trueForLong,b=p.methods.createIncreaseOrder([a.payToken.address],y.toString(),a.positionToken.address,0,c.toString(),a.positionToken.address,a.trueForLong,m.toString(),v,T.toString(),!1).encodeABI(),g={from:i.address,to:u.orderbook,data:b,gas:2e7,value:T.toString()};return yield _(n,i,g)}))},e.createDecreaseOrder=function(n,i,a,r){return s(this,void 0,void 0,(function*(){h(n);const s=n.provider;r||(r=yield t(s)),yield o(n,i,r,r.orderbook);const u=new n.eth.Contract(d.default,r.orderbook),p=BigInt(a.collateralDeltaUsd*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),y=BigInt(a.sizeDeltaUsd*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),c=BigInt(a.limitPriceUsd*Math.pow(10,e.PRICE_PRECISION_DECIMALS)),m=new n.eth.Contract(l.default,r.positionRouter),f=BigInt(yield m.methods.minExecutionFee().call()),T=a.trueForLong,v=u.methods.createDecreaseOrder(a.positionToken.address,y.toString(),a.collateralToken.address,p.toString(),a.trueForLong,c.toString(),T).encodeABI(),b={from:i.address,to:r.orderbook,data:v,gas:5e6,value:f.toString()};return yield _(n,i,b)}))}}(t.Gmx||(t.Gmx={}))},8156:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.LightSimulation=t.Gmx=t.Pendle=t.WhitelistsV2=t.Whitelists=t.Auth=t.KMSSigner=t.Utils=t.Uniswap=t.Tokens=t.Swaps=t.Signing=t.Shorts=t.Provider=t.OnChainAgents=t.Networks=t.Logging=t.FlashLiquidity=t.Exceptions=t.Web3=t.Contracts=t.AtomicTx=t.Aave=void 0;var s=n(3361);Object.defineProperty(t,"Aave",{enumerable:!0,get:function(){return s.Aave}});var o=n(7887);Object.defineProperty(t,"AtomicTx",{enumerable:!0,get:function(){return o.AtomicTx}});var u=n(5335);Object.defineProperty(t,"Contracts",{enumerable:!0,get:function(){return u.Contracts}});var d=n(37);Object.defineProperty(t,"Web3",{enumerable:!0,get:function(){return d.EulithWeb3}}),t.Exceptions=r(n(5784));var l=n(2056);Object.defineProperty(t,"FlashLiquidity",{enumerable:!0,get:function(){return l.FlashLiquidity}});var p=n(8833);Object.defineProperty(t,"Logging",{enumerable:!0,get:function(){return p.Logging}});var y=n(8973);Object.defineProperty(t,"Networks",{enumerable:!0,get:function(){return y.Networks}});var c=n(2244);Object.defineProperty(t,"OnChainAgents",{enumerable:!0,get:function(){return c.OnChainAgents}});var m=n(6983);Object.defineProperty(t,"Provider",{enumerable:!0,get:function(){return m.Provider}});var f=n(5213);Object.defineProperty(t,"Shorts",{enumerable:!0,get:function(){return f.Shorts}});var h=n(1247);Object.defineProperty(t,"Signing",{enumerable:!0,get:function(){return h.Signing}}),t.Swaps=r(n(1417));var _=n(8892);Object.defineProperty(t,"Tokens",{enumerable:!0,get:function(){return _.Tokens}});var T=n(285);Object.defineProperty(t,"Uniswap",{enumerable:!0,get:function(){return T.Uniswap}});var v=n(6185);Object.defineProperty(t,"Utils",{enumerable:!0,get:function(){return v.Utils}});var b=n(8977);Object.defineProperty(t,"KMSSigner",{enumerable:!0,get:function(){return b.KMSSigner}});var g=n(6688);Object.defineProperty(t,"Auth",{enumerable:!0,get:function(){return g.Auth}});var w=n(9872);Object.defineProperty(t,"Whitelists",{enumerable:!0,get:function(){return w.Whitelists}});var x=n(1268);Object.defineProperty(t,"WhitelistsV2",{enumerable:!0,get:function(){return x.WhitelistsV2}});var k=n(8132);Object.defineProperty(t,"Pendle",{enumerable:!0,get:function(){return k.Pendle}});var A=n(7724);Object.defineProperty(t,"Gmx",{enumerable:!0,get:function(){return A.Gmx}});var P=n(5145);Object.defineProperty(t,"LightSimulation",{enumerable:!0,get:function(){return P.LightSimulation}})},8977:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.KMSSigner=void 0;const u=o(n(3991)),d=n(7718),l=n(6353),p=r(n(8797)),y=r(n(3238)),c=o(n(3649)),m=r(n(8156));class f{constructor(e,t,n,i){this.AWSKMSClient_=e,this.AWSKMSID_=t,this.publicKey_=n.toLowerCase(),this.EthereumAddress_=i}static mk(e,t,n){return s(this,void 0,void 0,(function*(){const n=new d.GetPublicKeyCommand({KeyId:t}),i=yield e.send(n),a=Buffer.from(i.PublicKey).toString("hex"),r=u.default.utils.toChecksumAddress(T(Buffer.from(a,"hex")));return new f(e,t,a,r)}))}signHash(e){return s(this,void 0,void 0,(function*(){let t=T(Buffer.from(yield this.publicKey_,"hex")),n=yield function(e,t,n){return s(this,void 0,void 0,(function*(){let i=yield function(e,t,n){return s(this,void 0,void 0,(function*(){const i=new d.SignCommand({KeyId:n,Message:t,SigningAlgorithm:"ECDSA_SHA_256",MessageType:"DIGEST"});return(yield e.send(i)).Signature}))}(e,n,t);if(null==i)throw new Error("Signature is undefined.");let a=h.decode(Buffer.from(i),"der"),r=a.r,o=a.s,u=(r.toString(16),o.toString(16),new c.default("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",16)),l=u.div(new c.default(2));return o.gt(l)?(o=u.sub(o),{r,s:o}):{r,s:o}}))}(this.AWSKMSClient_,this.AWSKMSID_,e),i=function(e,t,n,i){let a=0,r=v(e,t,n,a);if(r!=i&&(a=1,r=v(e,t,n,a)),r!=i)throw new Error("findRightKey failed to find the right ETH address");return a}(e,n.r,n.s,t);return i+=27,new m.Signing.ECDSASignature({r:"0x"+n.r.toString("hex"),s:"0x"+n.s.toString("hex"),v:"0x"+i.toString(16)})}))}get address(){return this.EthereumAddress_}get publicKey(){return this.publicKey_}}t.KMSSigner=f;const h=y.define("EcdsaSig",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())})),_=y.define("EcdsaPubKey",(function(){this.seq().obj(this.key("algo").seq().obj(this.key("a").objid(),this.key("b").objid()),this.key("pubKey").bitstr())}));function T(e){let t=_.decode(e,"der").pubKey.data;t=t.slice(1,t.length);const n=(0,l.keccak256)(t);return"0x"+Buffer.from(n,"hex").slice(-20).toString("hex")}function v(e,t,n,i){if(0!=i&&1!=i)throw"only 0/1 for rawV";let a=t.toBuffer(),r=n.toBuffer(),s=p.ecrecover(e,i,a,r),o=p.pubToAddress(s);return p.bufferToHex(o)}},5145:function(e,t,n){"use strict";var i=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.LightSimulation=void 0;const a=n(780);!function(e){function t(e){return{proposalId:e.proposal_id,toEnable:e.to_enable,safeAddress:e.safe_address,networkId:e.network_id,proposerSub:e.proposer_sub,safeOwnerSub:e.safe_owner_sub,status:e.status}}let n;e.createProposal=function(e,n,a,r){return i(this,void 0,void 0,(function*(){return t((yield e.request({method:"eulith_propose_light_simulation",params:[{safe_address:n,chain_id:a,to_enable:r}]})).proposal)}))},e.submitSignature=function(e,a,r){return i(this,void 0,void 0,(function*(){const i=yield e.request({method:"eulith_get_light_simulation_proposal_hash",params:[{proposal_id:r}]}),s=i.hash_input,o=n.getTypedData(s),u=yield a.signTypedData(o),d=yield e.request({method:"eulith_submit_light_simulation_proposal_signature",params:[{proposal_id:s.proposal_id,owner_address:a.address,signature:u.rsv,signed_hash:i.hash}]});return{proposal:t(d.proposal),approved:d.approved}}))},e.getActiveProposals=function(e){return i(this,void 0,void 0,(function*(){const n=yield e.request({method:"eulith_get_active_light_simulation_proposals",params:[]}),i=[];for(const e of n.proposals)i.push(t(e));return i}))},e.deleteProposal=function(e,n){return i(this,void 0,void 0,(function*(){return t((yield e.request({method:"eulith_delete_light_simulation_proposal",params:[{proposal_id:n}]})).proposal)}))},e.STATUS_ACTIVE="active",e.STATUS_DELETED="deleted",e.STATUS_APPROVED="approved",function(e){function t(e){return{types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],LightSimulationProposalHashInput:[{name:"safeAddress",type:"string"},{name:"chainId",type:"int32"},{name:"proposerId",type:"int32"},{name:"safeOwnerId",type:"int32"},{name:"toEnable",type:"bool"},{name:"proposalId",type:"int32"}]},primaryType:"LightSimulationProposalHashInput",domain:{name:"EulithLightSimulationProposal",version:"1"},message:{safeAddress:e.safe_address,chainId:e.chain_id,proposerId:e.proposer_id,safeOwnerId:e.safe_owner_id,toEnable:e.to_enable,proposalId:e.proposal_id}}}e.getTypedDataHash=function(e){const n=t(e);return a.TypedDataUtils.eip712Hash(n,a.SignTypedDataVersion.V4)},e.getTypedData=t}(n=e.Eip712||(e.Eip712={}))}(t.LightSimulation||(t.LightSimulation={}))},6094:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ensureWasmLoaded=void 0;let o=!1;t.ensureWasmLoaded=function(){return s(this,void 0,void 0,(function*(){if(!o&&"undefined"!=typeof window&&void 0!==window.document){const e=yield Promise.resolve().then((()=>r(n(7383))));yield e.default(),o=!0}}))}},8833:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Logging=void 0;const s=r(n(4552));!function(e){let t;!function(e){e[e.TRACE=1]="TRACE",e[e.INFO=2]="INFO",e[e.WARNING=3]="WARNING",e[e.ERROR=4]="ERROR"}(t=e.LogLevel||(e.LogLevel={})),e.ConsoleLogger=class{constructor(e){this.minLogLevel_=null!=e?e:t.INFO}log(e,n){if(e>=this.minLogLevel_)switch(e){case t.INFO:console.info(n);break;case t.WARNING:console.warn(n);break;case t.ERROR:console.error(n);break;case t.TRACE:console.log(`TRACE: ${n}`);break;default:console.error(n)}}},e.PinoLogger=class{constructor(e){this.pinoInstance_=null!=e?e:s.pino()}log(t,n){switch(t){case e.LogLevel.INFO:this.pinoInstance_.info(n);break;case e.LogLevel.WARNING:this.pinoInstance_.warn(n);break;case e.LogLevel.ERROR:this.pinoInstance_.error(n);break;case e.LogLevel.TRACE:this.pinoInstance_.trace(n);break;default:this.pinoInstance_.error(n)}}}}(t.Logging||(t.Logging={}))},8973:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Networks=void 0,function(e){class t{constructor({chainId:e,name:t,eulithURL:n}){this.chainId=e,this.name=t,this.eulithURL=n}with({chainId:e,name:n,eulithURL:i}){return new t({chainId:null!=e?e:this.chainId,name:null!=n?n:this.name,eulithURL:null!=i?i:this.eulithURL})}}e.Network=t;class n{static get all(){return[n.mainnet,n.goerli,n.arbitrum,n.arbitrumGoerli,n.polygon,n.polygonMumbai,n.optimism,n.optimismGoerli,n.base,n.avax,n.celo,n.celoAlfajores]}static get({chainId:e,eulithURL:t,name:i}){const a=n.all.find((n=>n.chainId===e||n.eulithURL===t||n.name===i));if(void 0===a)throw new Error(`No predefined network with chainId == ${e}, or eulithUrl=${t} or name=${i} found`);return a}}n.mainnet=new t({chainId:1,name:"mainnet",eulithURL:"https://eth-main.eulithrpc.com"}),n.goerli=new t({chainId:5,name:"goerli",eulithURL:"https://eth-goerli.eulithrpc.com"}),n.polygon=new t({chainId:137,name:"polygon",eulithURL:"https://poly-main.eulithrpc.com"}),n.polygonMumbai=new t({chainId:80001,name:"polygon-mumbai",eulithURL:"https://poly-mumbai.eulithrpc.com"}),n.arbitrum=new t({chainId:42161,name:"arbitrum",eulithURL:"https://arb-main.eulithrpc.com/"}),n.arbitrumGoerli=new t({chainId:421613,name:"arbitrum-goerli",eulithURL:"https://arb-goerli.eulithrpc.com"}),n.optimism=new t({chainId:10,name:"optimism",eulithURL:"https://opt-main.eulithrpc.com/"}),n.optimismGoerli=new t({chainId:420,name:"optimism-goerli",eulithURL:"https://opt-goerli.eulithrpc.com"}),n.avax=new t({chainId:43114,name:"avax",eulithURL:"https://avax-main.eulithrpc.com"}),n.celo=new t({chainId:42220,name:"celo",eulithURL:"https://celo-main.eulithrpc.com"}),n.base=new t({chainId:8453,name:"base",eulithURL:"https://base-main.eulithrpc.com"}),n.celoAlfajores=new t({chainId:44787,name:"celo-alfajores",eulithURL:"https://celo-alfajores.eulithrpc.com"}),e.Predefined=n}(t.Networks||(t.Networks={}))},2244:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var a=Object.getOwnPropertyDescriptor(t,n);a&&!("get"in a?!t.__esModule:a.writable||a.configurable)||(a={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,a)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return a(t,e),t},s=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))((function(a,r){function s(e){try{u(i.next(e))}catch(e){r(e)}}function o(e){try{u(i.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,o)}u((i=i.apply(e,t||[])).next())}))},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.OnChainAgents=void 0;const u=n(8225),d=n(4770),l=o(n(2694)),p=r(n(8156));function y(e,t){return s(this,void 0,void 0,(function*(){const n=t.toLowerCase(),i=yield c(e),a=new p.Web3({provider:e}),r=yield a.eth.getChainId(),s=i.find((e=>e.authorized_address.toLowerCase()===n&&e.chain_id==r));if(s)return{contract_address:null==s?void 0:s.contract_address,authorized_address:null==s?void 0:s.authorized_address,safe_address:null==s?void 0:s.safe_address,has_ace:null==s?void 0:s.has_ace,contract_type:null==s?void 0:s.contract_type,network_name:null==s?void 0:s.network_name,chain_id:null==s?void 0:s.chain_id,is_enabled:null==s?void 0:s.is_enabled,whitelist_id:null==s?void 0:s.whitelist_id,deployed_contract_id:null==s?void 0:s.deployed_contract_id,name:null==s?void 0:s.name,description:null==s?void 0:s.description};throw new Error(`No agent found for the authorized address: ${t}; did you call Eulith.OnChainAgents.createUncheckedAgent, or Eulith.OnChainAgents.createArmorAgent, or Eulith.OnChainAgents.getAgent(createUncheckedAgentIfNoneExists)?`)}))}function c(e){return s(this,void 0,void 0,(function*(){const t=yield e.request({method:"eulith_get_contracts",params:[]});if(null===t)throw new Error("unable to fetch all contracts, came back null");return t.contracts}))}!function(e){let t;function n({provider:e,tradingKeyAddress:t,tradingKeySigner:n,createUncheckedAgentIfNoneExists:a,armorContractAddress:u}){return s(this,void 0,void 0,(function*(){const d=p.Provider.ProviderOrWeb3(e);try{let e;if(void 0!==u)e=yield function(e,t){return s(this,void 0,void 0,(function*(){const n=t.toLowerCase(),i=yield c(e),a=new p.Web3({provider:e}),r=yield a.eth.getChainId(),s=i.find((e=>e.contract_address.toLowerCase()===n&&e.chain_id==r));if(s)return{contract_address:null==s?void 0:s.contract_address,authorized_address:null==s?void 0:s.authorized_address,safe_address:null==s?void 0:s.safe_address,has_ace:null==s?void 0:s.has_ace,contract_type:null==s?void 0:s.contract_type,network_name:null==s?void 0:s.network_name,chain_id:null==s?void 0:s.chain_id,is_enabled:null==s?void 0:s.is_enabled,whitelist_id:null==s?void 0:s.whitelist_id,deployed_contract_id:null==s?void 0:s.deployed_contract_id,name:null==s?void 0:s.name,description:null==s?void 0:s.description};throw new Error(`No agent found for the armor_contract address: ${n}; did you call Eulith.OnChainAgents.createUncheckedAgent, or Eulith.OnChainAgents.createArmorAgent, or Eulith.OnChainAgents.getAgent(createUncheckedAgentIfNoneExists)?`)}))}(d,u);else{const i=null!=t?t:n.address;e=yield y(d,i)}switch(e.contract_type){case"call":return new r(e.contract_address,e.authorized_address,e.chain_id,e.network_name,e.deployed_contract_id,e.name,e.description);case"armor":return new o(e.contract_address,e.authorized_address,e.safe_address,e.has_ace,e.chain_id,e.network_name,e.is_enabled,e.whitelist_id,e.deployed_contract_id,e.description,e.name)}}catch(e){if((null==a||a)&&void 0===u)return yield i({provider:d,authorizedAddress:null!=t?t:n.address})}return null}))}function i({provider:e,authorizedAddress:t}){return s(this,void 0,void 0,(function*(){const n=p.Provider.ProviderOrWeb3(e);yield function(e,t){return s(this,void 0,void 0,(function*(){const n=yield e.request({method:"eulith_new_contract",params:[{authorized_address:t}]});return null==n?void 0:n.contract_address}))}(n,t);const i=yield y(n,t);return new r(i.contract_address,i.authorized_address,i.chain_id,i.network_name,i.deployed_contract_id,i.name,i.description)}))}function a(e){return s(this,void 0,void 0,(function*(){const t=[];return e.forEach((e=>{t.push(e.safe_address?new o(e.contract_address,e.authorized_address,e.safe_address,e.has_ace,e.chain_id,e.network_name,e.is_enabled,e.whitelist_id,e.deployed_contract_id,e.description,e.name):new r(e.contract_address,e.authorized_address,e.chain_id,e.network_name,e.deployed_contract_id,e.name,e.description))})),t}))}!function(e){e.Unchecked="call",e.Armor="armor"}(t=e.Type||(e.Type={})),e.getAgent=n,e.getAll=function(e){return s(this,void 0,void 0,(function*(){const t=p.Provider.ProviderOrWeb3(e);return a(yield c(t))}))},e.createUncheckedAgent=i,e.createArmorAgent=function({provider:e,tradingKeyAddress:i,safeAddress:a,hasAce:r,setupSigner:o,name:u,description:l}){return s(this,void 0,void 0,(function*(){const y=p.Provider.ProviderOrWeb3(e);d.strict.notEqual(e,null,"provider is required for Eulith.OnChainAgents.createArmorAgent"),d.strict.notEqual(i,null,"authorizedAddress is required for Eulith.OnChainAgents.createArmorAgent"),d.strict.notEqual(o,null,"setupSigner is required for Eulith.OnChainAgents.createArmorAgent");const c=a,m=yield function(e,t,n,i,a){return s(this,void 0,void 0,(function*(){let r={authorized_address:t,contract_type:"armor",safe_already_exists:null!=n};null!==i&&(r.name=i),null!==a&&(r.description=a);const s=yield e.request({method:"eulith_new_contract",params:[r]});return new p.Signing.UnsignedTransaction(s)}))}(y,i,c,u,l),f=(yield o.sendTransactionAndWait(m)).transactionHash;yield function(e,t,n,i){return s(this,void 0,void 0,(function*(){if(1!=(yield e.request({method:"eulith_submit_armor_hash",params:[{tx_hash:t,safe_address:n,has_ace:i}]})))throw new Error("eulith_submit_armor_hash failed")}))}(y,f,c,r);const h=yield n({provider:e,tradingKeyAddress:i});return d.strict.equal(h.type,t.Armor,"internal error: agent associated with this address is not an armor agent"),h}))},e.contractAddress=function({provider:e,tradingKeyAddress:t,authorizedSigner:i,createUncheckedAgentIfNoneExists:a}){return s(this,void 0,void 0,(function*(){return(yield n({provider:e,tradingKeyAddress:t,tradingKeySigner:i,createUncheckedAgentIfNoneExists:a})).contractAddress}))},e.updateContractNameAndDescription=function({deployedContractId:e,name:t,description:n,provider:i}){return s(this,void 0,void 0,(function*(){const r=p.Provider.ProviderOrWeb3(i);let s={deployed_contract_id:e};return null!==t&&(s.name=t),null!==n&&(s.description=n),a((yield r.request({method:"eulith_update_contract",params:[s]})).contracts)}))},e.getArmorAgent=function({provider:e,tradingKeyAddress:i,tradingKeySigner:a,armorContractAddress:r}){return s(this,void 0,void 0,(function*(){const s=yield n({provider:e,tradingKeyAddress:i,tradingKeySigner:a,createUncheckedAgentIfNoneExists:!1,armorContractAddress:r});return d.strict.equal(s.type,t.Armor,"Eulith.OnChainAgents.armorAgent found agent but not armor agent"),s}))};class r{constructor(e,t,n,i,a,r,s){this.contractAddress=e,this.tradingKeyAddress=t,this.chainId=n,this.networkName=i,this.deployedContractId=a,this.name=r,this.description=s}get type(){return t.Unchecked}}class o{constructor(e,t,n,i,a,r,s,o,u,d,l){this.contractAddress=e,this.tradingKeyAddress=t,this.safeAddress=n,this.hasAce=i,this.chainId=a,this.networkName=r,this.isEnabled=s,this.whitelistId=o,this.deployedContractId=u,this.name=l,this.description=d}getAuthorizingOwnerSignatures(e,t){return s(this,void 0,void 0,(function*(){const n=p.Provider.ProviderOrWeb3(e),i=yield function(e,t){return s(this,void 0,void 0,(function*(){const n=yield e.request({method:"eulith_get_enable_module_sigs",params:[{auth_address:t}]});if(null===n)throw new Error("unable to fetch enable armor signatures, result came back null");return n}))}(n,t);let a=[];for(const e of i)a.push({signature:e.signature,ownerAddress:e.owner_address});return a}))}authorizeForOwner(e,t){var n;return s(this,void 0,void 0,(function*(){this.tradingKeyAddress==t.address&&(null===(n=e.logger)||void 0===n||n.log(p.Logging.LogLevel.WARNING,"Generally ill-advised, having the same owner be authorized address and owner"));const i=p.Provider.ProviderOrWeb3(e);i.setSigner(t);const a=new u.Web3Adapter({web3:new p.Web3({provider:i}),signerAddress:t.address}),r=yield y(i,this.tradingKeyAddress);if("armor"!=r.contract_type)throw new Error(`No armor contract found for the authorized address: ${this.tradingKeyAddress}; did you call createArmor?`);let o=r.safe_address,d=r.contract_address;const c=yield l.default.create({ethAdapter:a,safeAddress:o});let m=[];try{m=yield c.getOwners()}catch(e){}if(m=m.map((e=>e.toLowerCase())),m.length>0&&!m.includes(t.address.toLowerCase()))throw new Error(`${t.address} is not an owner of the Safe.`);const f=yield c.createEnableModuleTx(d),h=