@gardenfi/core 2.0.25-beta.13 → 2.0.25-beta.15
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/index.cjs
CHANGED
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
OP_CHECKSIGADD
|
|
26
26
|
OP_2
|
|
27
27
|
OP_NUMEQUAL
|
|
28
|
-
`.trim().replace(/\s+/g," "))}leaves(){return[{version:$n,output:this.redeemLeaf()},[{version:$n,output:this.refundLeaf()},{version:$n,output:this.instantRefundLeaf()}]]}generateMerkleProofFor(t){const r=this.leafHash(1),n=this.leafHash(2),i=this.leafHash(0);switch(t){case 1:{const s=Af(i,n);return[ie.crypto.taggedHash("TapBranch",Buffer.concat(s))]}case 0:return[n,r];case 2:return[i,r];default:throw new Error(Ie.invalidLeaf)}}}function Sr(e,t){const r=[];for(let n=0;n<t;n++)r.push(e);return r}class Dl{constructor(){this.cache={}}set(t,r,n,i){const s={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:i};this.cache[`${r}_${t.create_order.create_id}`]=s}get(t,r){return this.cache[`${r}_${t.create_order.create_id}`]||null}remove(t,r){delete this.cache[`${r}_${t.create_order.create_id}`]}}class $l{constructor(){this.cache={}}set(t,r){this.cache[t]=r}get(t){return this.cache[t]||null}}class Xa{constructor(t,r){this.url=new q.Url("/blocknumber/"+r,t)}async fetchBlockNumbers(){try{const t=await kt.get(this.url);return re(t)}catch(t){return D("Failed to fetch block numbers",t)}}}const Ir={mainnet:{orderbook:"https://orderbookv2.garden.finance",quote:"https://pricev2.garden.finance",info:"https://infov2.garden.finance",evmRelay:"",starknetRelay:""},testnet:{orderbook:"https://orderbook.garden.finance",quote:"https://price.garden.finance",info:"https://info.garden.finance",evmRelay:"https://orderbook.garden.finance",starknetRelay:"https://starknet-relay.garden.finance"},localnet:{orderbook:"",quote:"",info:"",evmRelay:"",strkRelay:""}};class Ja{constructor(t){this.quoteUrl=new q.Url("/quote",t)}async getQuote(t,r,n=!1,i){try{const s=this.quoteUrl.addSearchParams({order_pair:t,amount:r.toString(),exact_out:n.toString()}),o=await kt.get(s,{retryCount:0,...i});return o.error?D(o.error):o.result?re(o.result):D("GetQuote: Unexpected error, result is undefined")}catch(s){return D("GetQuote:",String(s))}}async getAttestedQuote(t){try{const r=await kt.post(this.quoteUrl.endpoint("/attested").toString(),{body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return r.error?D(r.error):r.result?re(r.result):D("GetAttestedQuote: Unexpected error, result is undefined")}catch(r){return console.log("error :",r),D("GetAttestedQuote:",String(r))}}async getStrategies(){try{const t=await kt.get(this.quoteUrl.endpoint("/strategies"));if(t.error)return D(t.error);if(!t.result)return D("GetStrategies: Unexpected error, result is undefined");const r={};for(const n of Object.values(t.result)){const i=_a(n.source_chain,n.source_asset.asset,n.dest_chain,n.dest_asset.asset);r[i]={id:n.id,minAmount:n.min_amount,maxAmount:n.max_amount,fee:n.fee}}return re(r)}catch(t){return D("GetStrategies:",String(t))}}}var Qa={},Mr={},Dr={};Object.defineProperty(Dr,"__esModule",{value:!0});Dr.testnet=Dr.bitcoin=void 0;Dr.bitcoin={messagePrefix:`Bitcoin Signed Message:
|
|
28
|
+
`.trim().replace(/\s+/g," "))}leaves(){return[{version:$n,output:this.redeemLeaf()},[{version:$n,output:this.refundLeaf()},{version:$n,output:this.instantRefundLeaf()}]]}generateMerkleProofFor(t){const r=this.leafHash(1),n=this.leafHash(2),i=this.leafHash(0);switch(t){case 1:{const s=Af(i,n);return[ie.crypto.taggedHash("TapBranch",Buffer.concat(s))]}case 0:return[n,r];case 2:return[i,r];default:throw new Error(Ie.invalidLeaf)}}}function Sr(e,t){const r=[];for(let n=0;n<t;n++)r.push(e);return r}class Dl{constructor(){this.cache={}}set(t,r,n,i){const s={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:i};this.cache[`${r}_${t.create_order.create_id}`]=s}get(t,r){return this.cache[`${r}_${t.create_order.create_id}`]||null}remove(t,r){delete this.cache[`${r}_${t.create_order.create_id}`]}}class $l{constructor(){this.cache={}}set(t,r){this.cache[t]=r}get(t){return this.cache[t]||null}}class Xa{constructor(t,r){this.url=new q.Url("/blocknumber/"+r,t)}async fetchBlockNumbers(){try{const t=await kt.get(this.url);return re(t)}catch(t){return D("Failed to fetch block numbers",t)}}}const Ir={mainnet:{orderbook:"https://orderbookv2.garden.finance",quote:"https://pricev2.garden.finance",info:"https://infov2.garden.finance",evmRelay:"https://orderbookv2.garden.finance",starknetRelay:""},testnet:{orderbook:"https://orderbook.garden.finance",quote:"https://price.garden.finance",info:"https://info.garden.finance",evmRelay:"https://orderbook.garden.finance",starknetRelay:"https://starknet-relay.garden.finance"},localnet:{orderbook:"",quote:"",info:"",evmRelay:"",strkRelay:""}};class Ja{constructor(t){this.quoteUrl=new q.Url("/quote",t)}async getQuote(t,r,n=!1,i){try{const s=this.quoteUrl.addSearchParams({order_pair:t,amount:r.toString(),exact_out:n.toString()}),o=await kt.get(s,{retryCount:0,...i});return o.error?D(o.error):o.result?re(o.result):D("GetQuote: Unexpected error, result is undefined")}catch(s){return D("GetQuote:",String(s))}}async getAttestedQuote(t){try{const r=await kt.post(this.quoteUrl.endpoint("/attested").toString(),{body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return r.error?D(r.error):r.result?re(r.result):D("GetAttestedQuote: Unexpected error, result is undefined")}catch(r){return console.log("error :",r),D("GetAttestedQuote:",String(r))}}async getStrategies(){try{const t=await kt.get(this.quoteUrl.endpoint("/strategies"));if(t.error)return D(t.error);if(!t.result)return D("GetStrategies: Unexpected error, result is undefined");const r={};for(const n of Object.values(t.result)){const i=_a(n.source_chain,n.source_asset.asset,n.dest_chain,n.dest_asset.asset);r[i]={id:n.id,minAmount:n.min_amount,maxAmount:n.max_amount,fee:n.fee}}return re(r)}catch(t){return D("GetStrategies:",String(t))}}}var Qa={},Mr={},Dr={};Object.defineProperty(Dr,"__esModule",{value:!0});Dr.testnet=Dr.bitcoin=void 0;Dr.bitcoin={messagePrefix:`Bitcoin Signed Message:
|
|
29
29
|
`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};Dr.testnet={messagePrefix:`Bitcoin Signed Message:
|
|
30
30
|
`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var Za={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.maybe=e.Boolean=e.Array=e.Buffer256bit=e.Network=e.typeforce=void 0,e.typeforce=Ba,e.Network=e.typeforce.compile({messagePrefix:e.typeforce.oneOf(e.typeforce.Buffer,e.typeforce.String),bip32:{public:e.typeforce.UInt32,private:e.typeforce.UInt32},pubKeyHash:e.typeforce.UInt8,scriptHash:e.typeforce.UInt8,wif:e.typeforce.UInt8}),e.Buffer256bit=e.typeforce.BufferN(32),e.Array=e.typeforce.Array,e.Boolean=e.typeforce.Boolean,e.maybe=e.typeforce.maybe})(Za);var _s={exports:{}},vs={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=Rt,n=r.Buffer;function i(o,a){for(var u in o)a[u]=o[u]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=s);function s(o,a,u){return n(o,a,u)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,u)},s.alloc=function(o,a,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var h=n(o);return a!==void 0?typeof u=="string"?h.fill(a,u):h.fill(a):h.fill(0),h},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}})(vs,vs.exports);var We=vs.exports,Qi=65536,jl=4294967295;function Gl(){throw new Error(`Secure random number generation is not supported by this browser.
|
|
31
31
|
Use Chrome, Firefox or Internet Explorer 11`)}var Vl=We.Buffer,ii=qt.crypto||qt.msCrypto;ii&&ii.getRandomValues?_s.exports=Wl:_s.exports=Gl;function Wl(e,t){if(e>jl)throw new RangeError("requested too many random bytes");var r=Vl.allocUnsafe(e);if(e>0)if(e>Qi)for(var n=0;n<e;n+=Qi)ii.getRandomValues(r.slice(n,n+Qi));else ii.getRandomValues(r);return typeof t=="function"?process.nextTick(function(){t(null,r)}):r}var zl=_s.exports,Es={exports:{}};typeof Object.create=="function"?Es.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Es.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}};var Re=Es.exports,xs={exports:{}},qs={exports:{}},Ur=typeof Reflect=="object"?Reflect:null,Uo=Ur&&typeof Ur.apply=="function"?Ur.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},Zn;Ur&&typeof Ur.ownKeys=="function"?Zn=Ur.ownKeys:Object.getOwnPropertySymbols?Zn=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Zn=function(t){return Object.getOwnPropertyNames(t)};function ql(e){console&&console.warn&&console.warn(e)}var ec=Number.isNaN||function(t){return t!==t};function se(){se.init.call(this)}qs.exports=se;qs.exports.once=Jl;se.EventEmitter=se;se.prototype._events=void 0;se.prototype._eventsCount=0;se.prototype._maxListeners=void 0;var Lo=10;function Ei(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(se,"defaultMaxListeners",{enumerable:!0,get:function(){return Lo},set:function(e){if(typeof e!="number"||e<0||ec(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Lo=e}});se.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};se.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||ec(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function tc(e){return e._maxListeners===void 0?se.defaultMaxListeners:e._maxListeners}se.prototype.getMaxListeners=function(){return tc(this)};se.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=t==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var u=s[t];if(u===void 0)return!1;if(typeof u=="function")Uo(u,this,r);else for(var h=u.length,d=oc(u,h),n=0;n<h;++n)Uo(d[n],this,r);return!0};function rc(e,t,r,n){var i,s,o;if(Ei(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),o=s[t]),o===void 0)o=s[t]=r,++e._eventsCount;else if(typeof o=="function"?o=s[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=tc(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=o.length,ql(a)}return e}se.prototype.addListener=function(t,r){return rc(this,t,r,!1)};se.prototype.on=se.prototype.addListener;se.prototype.prependListener=function(t,r){return rc(this,t,r,!0)};function Kl(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function nc(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=Kl.bind(n);return i.listener=r,n.wrapFn=i,i}se.prototype.once=function(t,r){return Ei(r),this.on(t,nc(this,t,r)),this};se.prototype.prependOnceListener=function(t,r){return Ei(r),this.prependListener(t,nc(this,t,r)),this};se.prototype.removeListener=function(t,r){var n,i,s,o,a;if(Ei(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():Yl(n,s),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||r)}return this};se.prototype.off=se.prototype.removeListener;se.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(t,r[i]);return this};function ic(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?Xl(i):oc(i,i.length)}se.prototype.listeners=function(t){return ic(this,t,!0)};se.prototype.rawListeners=function(t){return ic(this,t,!1)};se.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):sc.call(e,t)};se.prototype.listenerCount=sc;function sc(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}se.prototype.eventNames=function(){return this._eventsCount>0?Zn(this._events):[]};function oc(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function Yl(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Xl(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function Jl(e,t){return new Promise(function(r,n){function i(o){e.removeListener(t,s),n(o)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",i),r([].slice.call(arguments))}ac(e,t,s,{once:!0}),t!=="error"&&Ql(e,i,{once:!0})})}function Ql(e,t,r){typeof e.on=="function"&&ac(e,"error",t,r)}function ac(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(s){n.once&&e.removeEventListener(t,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var cc=qs.exports,fc=cc.EventEmitter;const Zl={},eh=Object.freeze(Object.defineProperty({__proto__:null,default:Zl},Symbol.toStringTag,{value:"Module"})),Ks=Ff(eh);var Zi,No;function th(){if(No)return Zi;No=1;function e(I,A){var B=Object.keys(I);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(I);A&&(O=O.filter(function(C){return Object.getOwnPropertyDescriptor(I,C).enumerable})),B.push.apply(B,O)}return B}function t(I){for(var A=1;A<arguments.length;A++){var B=arguments[A]!=null?arguments[A]:{};A%2?e(Object(B),!0).forEach(function(O){r(I,O,B[O])}):Object.getOwnPropertyDescriptors?Object.defineProperties(I,Object.getOwnPropertyDescriptors(B)):e(Object(B)).forEach(function(O){Object.defineProperty(I,O,Object.getOwnPropertyDescriptor(B,O))})}return I}function r(I,A,B){return A=o(A),A in I?Object.defineProperty(I,A,{value:B,enumerable:!0,configurable:!0,writable:!0}):I[A]=B,I}function n(I,A){if(!(I instanceof A))throw new TypeError("Cannot call a class as a function")}function i(I,A){for(var B=0;B<A.length;B++){var O=A[B];O.enumerable=O.enumerable||!1,O.configurable=!0,"value"in O&&(O.writable=!0),Object.defineProperty(I,o(O.key),O)}}function s(I,A,B){return A&&i(I.prototype,A),Object.defineProperty(I,"prototype",{writable:!1}),I}function o(I){var A=a(I,"string");return typeof A=="symbol"?A:String(A)}function a(I,A){if(typeof I!="object"||I===null)return I;var B=I[Symbol.toPrimitive];if(B!==void 0){var O=B.call(I,A||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(A==="string"?String:Number)(I)}var u=Rt,h=u.Buffer,d=Ks,p=d.inspect,_=p&&p.custom||"inspect";function y(I,A,B){h.prototype.copy.call(I,A,B)}return Zi=function(){function I(){n(this,I),this.head=null,this.tail=null,this.length=0}return s(I,[{key:"push",value:function(B){var O={data:B,next:null};this.length>0?this.tail.next=O:this.head=O,this.tail=O,++this.length}},{key:"unshift",value:function(B){var O={data:B,next:this.head};this.length===0&&(this.tail=O),this.head=O,++this.length}},{key:"shift",value:function(){if(this.length!==0){var B=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,B}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(B){if(this.length===0)return"";for(var O=this.head,C=""+O.data;O=O.next;)C+=B+O.data;return C}},{key:"concat",value:function(B){if(this.length===0)return h.alloc(0);for(var O=h.allocUnsafe(B>>>0),C=this.head,v=0;C;)y(C.data,O,v),v+=C.data.length,C=C.next;return O}},{key:"consume",value:function(B,O){var C;return B<this.head.data.length?(C=this.head.data.slice(0,B),this.head.data=this.head.data.slice(B)):B===this.head.data.length?C=this.shift():C=O?this._getString(B):this._getBuffer(B),C}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(B){var O=this.head,C=1,v=O.data;for(B-=v.length;O=O.next;){var g=O.data,S=B>g.length?g.length:B;if(S===g.length?v+=g:v+=g.slice(0,B),B-=S,B===0){S===g.length?(++C,O.next?this.head=O.next:this.head=this.tail=null):(this.head=O,O.data=g.slice(S));break}++C}return this.length-=C,v}},{key:"_getBuffer",value:function(B){var O=h.allocUnsafe(B),C=this.head,v=1;for(C.data.copy(O),B-=C.data.length;C=C.next;){var g=C.data,S=B>g.length?g.length:B;if(g.copy(O,O.length-B,0,S),B-=S,B===0){S===g.length?(++v,C.next?this.head=C.next:this.head=this.tail=null):(this.head=C,C.data=g.slice(S));break}++v}return this.length-=v,O}},{key:_,value:function(B,O){return p(this,t(t({},O),{},{depth:0,customInspect:!1}))}}]),I}(),Zi}function rh(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Ss,this,e)):process.nextTick(Ss,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(ei,r):(r._writableState.errorEmitted=!0,process.nextTick(Fo,r,s)):process.nextTick(Fo,r,s):t?(process.nextTick(ei,r),t(s)):process.nextTick(ei,r)}),this)}function Fo(e,t){Ss(e,t),ei(e)}function ei(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function nh(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Ss(e,t){e.emit("error",t)}function ih(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}var uc={destroy:rh,undestroy:nh,errorOrDestroy:ih},br={};function sh(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var lc={};function tt(e,t,r){r||(r=Error);function n(s,o,a){return typeof t=="string"?t:t(s,o,a)}var i=function(s){sh(o,s);function o(a,u,h){return s.call(this,n(a,u,h))||this}return o}(r);i.prototype.name=r.name,i.prototype.code=e,lc[e]=i}function Ho(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(n){return String(n)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function oh(e,t,r){return e.substr(0,t.length)===t}function ah(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function ch(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}tt("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);tt("ERR_INVALID_ARG_TYPE",function(e,t,r){var n;typeof t=="string"&&oh(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var i;if(ah(e," argument"))i="The ".concat(e," ").concat(n," ").concat(Ho(t,"type"));else{var s=ch(e,".")?"property":"argument";i='The "'.concat(e,'" ').concat(s," ").concat(n," ").concat(Ho(t,"type"))}return i+=". Received type ".concat(typeof r),i},TypeError);tt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");tt("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});tt("ERR_STREAM_PREMATURE_CLOSE","Premature close");tt("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});tt("ERR_MULTIPLE_CALLBACK","Callback called multiple times");tt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");tt("ERR_STREAM_WRITE_AFTER_END","write after end");tt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);tt("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);tt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");br.codes=lc;var fh=br.codes.ERR_INVALID_OPT_VALUE;function uh(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function lh(e,t,r,n){var i=uh(t,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=n?r:"highWaterMark";throw new fh(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}var hc={getHighWaterMark:lh},hh=dh;function dh(e,t){if(es("noDeprecation"))return e;var r=!1;function n(){if(!r){if(es("throwDeprecation"))throw new Error(t);es("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return n}function es(e){try{if(!qt.localStorage)return!1}catch{return!1}var t=qt.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var ts,Mo;function dc(){if(Mo)return ts;Mo=1,ts=j;function e(T){var k=this;this.next=null,this.entry=null,this.finish=function(){bt(k,T)}}var t;j.WritableState=x;var r={deprecate:hh},n=fc,i=Rt.Buffer,s=(typeof qt<"u"?qt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(T){return i.from(T)}function a(T){return i.isBuffer(T)||T instanceof s}var u=uc,h=hc,d=h.getHighWaterMark,p=br.codes,_=p.ERR_INVALID_ARG_TYPE,y=p.ERR_METHOD_NOT_IMPLEMENTED,I=p.ERR_MULTIPLE_CALLBACK,A=p.ERR_STREAM_CANNOT_PIPE,B=p.ERR_STREAM_DESTROYED,O=p.ERR_STREAM_NULL_VALUES,C=p.ERR_STREAM_WRITE_AFTER_END,v=p.ERR_UNKNOWN_ENCODING,g=u.errorOrDestroy;Re(j,n);function S(){}function x(T,k,F){t=t||$r(),T=T||{},typeof F!="boolean"&&(F=k instanceof t),this.objectMode=!!T.objectMode,F&&(this.objectMode=this.objectMode||!!T.writableObjectMode),this.highWaterMark=d(this,T,"writableHighWaterMark",F),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var G=T.decodeStrings===!1;this.decodeStrings=!G,this.defaultEncoding=T.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){fe(k,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=T.emitClose!==!1,this.autoDestroy=!!T.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}x.prototype.getBuffer=function(){for(var k=this.bufferedRequest,F=[];k;)F.push(k),k=k.next;return F},function(){try{Object.defineProperty(x.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(j,Symbol.hasInstance,{value:function(k){return M.call(this,k)?!0:this!==j?!1:k&&k._writableState instanceof x}})):M=function(k){return k instanceof this};function j(T){t=t||$r();var k=this instanceof t;if(!k&&!M.call(j,this))return new j(T);this._writableState=new x(T,this,k),this.writable=!0,T&&(typeof T.write=="function"&&(this._write=T.write),typeof T.writev=="function"&&(this._writev=T.writev),typeof T.destroy=="function"&&(this._destroy=T.destroy),typeof T.final=="function"&&(this._final=T.final)),n.call(this)}j.prototype.pipe=function(){g(this,new A)};function R(T,k){var F=new C;g(T,F),process.nextTick(k,F)}function z(T,k,F,G){var Y;return F===null?Y=new O:typeof F!="string"&&!k.objectMode&&(Y=new _("chunk",["string","Buffer"],F)),Y?(g(T,Y),process.nextTick(G,Y),!1):!0}j.prototype.write=function(T,k,F){var G=this._writableState,Y=!1,b=!G.objectMode&&a(T);return b&&!i.isBuffer(T)&&(T=o(T)),typeof k=="function"&&(F=k,k=null),b?k="buffer":k||(k=G.defaultEncoding),typeof F!="function"&&(F=S),G.ending?R(this,F):(b||z(this,G,T,F))&&(G.pendingcb++,Y=U(this,G,b,T,k,F)),Y},j.prototype.cork=function(){this._writableState.corked++},j.prototype.uncork=function(){var T=this._writableState;T.corked&&(T.corked--,!T.writing&&!T.corked&&!T.bufferProcessing&&T.bufferedRequest&&ze(this,T))},j.prototype.setDefaultEncoding=function(k){if(typeof k=="string"&&(k=k.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((k+"").toLowerCase())>-1))throw new v(k);return this._writableState.defaultEncoding=k,this},Object.defineProperty(j.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function ee(T,k,F){return!T.objectMode&&T.decodeStrings!==!1&&typeof k=="string"&&(k=i.from(k,F)),k}Object.defineProperty(j.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function U(T,k,F,G,Y,b){if(!F){var w=ee(k,G,Y);G!==w&&(F=!0,Y="buffer",G=w)}var N=k.objectMode?1:G.length;k.length+=N;var $=k.length<k.highWaterMark;if($||(k.needDrain=!0),k.writing||k.corked){var me=k.lastBufferedRequest;k.lastBufferedRequest={chunk:G,encoding:Y,isBuf:F,callback:b,next:null},me?me.next=k.lastBufferedRequest:k.bufferedRequest=k.lastBufferedRequest,k.bufferedRequestCount+=1}else H(T,k,!1,N,G,Y,b);return $}function H(T,k,F,G,Y,b,w){k.writelen=G,k.writecb=w,k.writing=!0,k.sync=!0,k.destroyed?k.onwrite(new B("write")):F?T._writev(Y,k.onwrite):T._write(Y,b,k.onwrite),k.sync=!1}function V(T,k,F,G,Y){--k.pendingcb,F?(process.nextTick(Y,G),process.nextTick(qe,T,k),T._writableState.errorEmitted=!0,g(T,G)):(Y(G),T._writableState.errorEmitted=!0,g(T,G),qe(T,k))}function K(T){T.writing=!1,T.writecb=null,T.length-=T.writelen,T.writelen=0}function fe(T,k){var F=T._writableState,G=F.sync,Y=F.writecb;if(typeof Y!="function")throw new I;if(K(F),k)V(T,F,G,k,Y);else{var b=ot(F)||T.destroyed;!b&&!F.corked&&!F.bufferProcessing&&F.bufferedRequest&&ze(T,F),G?process.nextTick(ue,T,F,b,Y):ue(T,F,b,Y)}}function ue(T,k,F,G){F||rt(T,k),k.pendingcb--,G(),qe(T,k)}function rt(T,k){k.length===0&&k.needDrain&&(k.needDrain=!1,T.emit("drain"))}function ze(T,k){k.bufferProcessing=!0;var F=k.bufferedRequest;if(T._writev&&F&&F.next){var G=k.bufferedRequestCount,Y=new Array(G),b=k.corkedRequestsFree;b.entry=F;for(var w=0,N=!0;F;)Y[w]=F,F.isBuf||(N=!1),F=F.next,w+=1;Y.allBuffers=N,H(T,k,!0,k.length,Y,"",b.finish),k.pendingcb++,k.lastBufferedRequest=null,b.next?(k.corkedRequestsFree=b.next,b.next=null):k.corkedRequestsFree=new e(k),k.bufferedRequestCount=0}else{for(;F;){var $=F.chunk,me=F.encoding,X=F.callback,ne=k.objectMode?1:$.length;if(H(T,k,!1,ne,$,me,X),F=F.next,k.bufferedRequestCount--,k.writing)break}F===null&&(k.lastBufferedRequest=null)}k.bufferedRequest=F,k.bufferProcessing=!1}j.prototype._write=function(T,k,F){F(new y("_write()"))},j.prototype._writev=null,j.prototype.end=function(T,k,F){var G=this._writableState;return typeof T=="function"?(F=T,T=null,k=null):typeof k=="function"&&(F=k,k=null),T!=null&&this.write(T,k),G.corked&&(G.corked=1,this.uncork()),G.ending||Ct(this,G,F),this},Object.defineProperty(j.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function ot(T){return T.ending&&T.length===0&&T.bufferedRequest===null&&!T.finished&&!T.writing}function ye(T,k){T._final(function(F){k.pendingcb--,F&&g(T,F),k.prefinished=!0,T.emit("prefinish"),qe(T,k)})}function xe(T,k){!k.prefinished&&!k.finalCalled&&(typeof T._final=="function"&&!k.destroyed?(k.pendingcb++,k.finalCalled=!0,process.nextTick(ye,T,k)):(k.prefinished=!0,T.emit("prefinish")))}function qe(T,k){var F=ot(k);if(F&&(xe(T,k),k.pendingcb===0&&(k.finished=!0,T.emit("finish"),k.autoDestroy))){var G=T._readableState;(!G||G.autoDestroy&&G.endEmitted)&&T.destroy()}return F}function Ct(T,k,F){k.ending=!0,qe(T,k),F&&(k.finished?process.nextTick(F):T.once("finish",F)),k.ended=!0,T.writable=!1}function bt(T,k,F){var G=T.entry;for(T.entry=null;G;){var Y=G.callback;k.pendingcb--,Y(F),G=G.next}k.corkedRequestsFree.next=T}return Object.defineProperty(j.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(k){this._writableState&&(this._writableState.destroyed=k)}}),j.prototype.destroy=u.destroy,j.prototype._undestroy=u.undestroy,j.prototype._destroy=function(T,k){k(T)},ts}var rs,Do;function $r(){if(Do)return rs;Do=1;var e=Object.keys||function(h){var d=[];for(var p in h)d.push(p);return d};rs=o;var t=yc(),r=dc();Re(o,t);for(var n=e(r.prototype),i=0;i<n.length;i++){var s=n[i];o.prototype[s]||(o.prototype[s]=r.prototype[s])}function o(h){if(!(this instanceof o))return new o(h);t.call(this,h),r.call(this,h),this.allowHalfOpen=!0,h&&(h.readable===!1&&(this.readable=!1),h.writable===!1&&(this.writable=!1),h.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",a)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function a(){this._writableState.ended||process.nextTick(u,this)}function u(h){h.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(d){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=d,this._writableState.destroyed=d)}}),rs}var si={},Ys=We.Buffer,$o=Ys.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function ph(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function yh(e){var t=ph(e);if(typeof t!="string"&&(Ys.isEncoding===$o||!$o(e)))throw new Error("Unknown encoding: "+e);return t||e}si.StringDecoder=An;function An(e){this.encoding=yh(e);var t;switch(this.encoding){case"utf16le":this.text=vh,this.end=Eh,t=4;break;case"utf8":this.fillLast=wh,t=4;break;case"base64":this.text=xh,this.end=Sh,t=3;break;default:this.write=Ah,this.end=kh;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Ys.allocUnsafe(t)}An.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};An.prototype.end=_h;An.prototype.text=gh;An.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function ns(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function mh(e,t,r){var n=t.length-1;if(n<r)return 0;var i=ns(t[n]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--n<r||i===-2?0:(i=ns(t[n]),i>=0?(i>0&&(e.lastNeed=i-2),i):--n<r||i===-2?0:(i=ns(t[n]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function bh(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function wh(e){var t=this.lastTotal-this.lastNeed,r=bh(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function gh(e,t){var r=mh(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function _h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function vh(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function Eh(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function xh(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function Sh(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Ah(e){return e.toString(this.encoding)}function kh(e){return e&&e.length?this.write(e):""}var jo=br.codes.ERR_STREAM_PREMATURE_CLOSE;function Th(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];e.apply(this,n)}}}function Bh(){}function Ih(e){return e.setHeader&&typeof e.abort=="function"}function pc(e,t,r){if(typeof t=="function")return pc(e,null,t);t||(t={}),r=Th(r||Bh);var n=t.readable||t.readable!==!1&&e.readable,i=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||a()},o=e._writableState&&e._writableState.finished,a=function(){i=!1,o=!0,n||r.call(e)},u=e._readableState&&e._readableState.endEmitted,h=function(){n=!1,u=!0,i||r.call(e)},d=function(I){r.call(e,I)},p=function(){var I;if(n&&!u)return(!e._readableState||!e._readableState.ended)&&(I=new jo),r.call(e,I);if(i&&!o)return(!e._writableState||!e._writableState.ended)&&(I=new jo),r.call(e,I)},_=function(){e.req.on("finish",a)};return Ih(e)?(e.on("complete",a),e.on("abort",p),e.req?_():e.on("request",_)):i&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",h),e.on("finish",a),t.error!==!1&&e.on("error",d),e.on("close",p),function(){e.removeListener("complete",a),e.removeListener("abort",p),e.removeListener("request",_),e.req&&e.req.removeListener("finish",a),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",a),e.removeListener("end",h),e.removeListener("error",d),e.removeListener("close",p)}}var Xs=pc,is,Go;function Ph(){if(Go)return is;Go=1;var e;function t(v,g,S){return g=r(g),g in v?Object.defineProperty(v,g,{value:S,enumerable:!0,configurable:!0,writable:!0}):v[g]=S,v}function r(v){var g=n(v,"string");return typeof g=="symbol"?g:String(g)}function n(v,g){if(typeof v!="object"||v===null)return v;var S=v[Symbol.toPrimitive];if(S!==void 0){var x=S.call(v,g||"default");if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(v)}var i=Xs,s=Symbol("lastResolve"),o=Symbol("lastReject"),a=Symbol("error"),u=Symbol("ended"),h=Symbol("lastPromise"),d=Symbol("handlePromise"),p=Symbol("stream");function _(v,g){return{value:v,done:g}}function y(v){var g=v[s];if(g!==null){var S=v[p].read();S!==null&&(v[h]=null,v[s]=null,v[o]=null,g(_(S,!1)))}}function I(v){process.nextTick(y,v)}function A(v,g){return function(S,x){v.then(function(){if(g[u]){S(_(void 0,!0));return}g[d](S,x)},x)}}var B=Object.getPrototypeOf(function(){}),O=Object.setPrototypeOf((e={get stream(){return this[p]},next:function(){var g=this,S=this[a];if(S!==null)return Promise.reject(S);if(this[u])return Promise.resolve(_(void 0,!0));if(this[p].destroyed)return new Promise(function(R,z){process.nextTick(function(){g[a]?z(g[a]):R(_(void 0,!0))})});var x=this[h],M;if(x)M=new Promise(A(x,this));else{var j=this[p].read();if(j!==null)return Promise.resolve(_(j,!1));M=new Promise(this[d])}return this[h]=M,M}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var g=this;return new Promise(function(S,x){g[p].destroy(null,function(M){if(M){x(M);return}S(_(void 0,!0))})})}),e),B),C=function(g){var S,x=Object.create(O,(S={},t(S,p,{value:g,writable:!0}),t(S,s,{value:null,writable:!0}),t(S,o,{value:null,writable:!0}),t(S,a,{value:null,writable:!0}),t(S,u,{value:g._readableState.endEmitted,writable:!0}),t(S,d,{value:function(j,R){var z=x[p].read();z?(x[h]=null,x[s]=null,x[o]=null,j(_(z,!1))):(x[s]=j,x[o]=R)},writable:!0}),S));return x[h]=null,i(g,function(M){if(M&&M.code!=="ERR_STREAM_PREMATURE_CLOSE"){var j=x[o];j!==null&&(x[h]=null,x[s]=null,x[o]=null,j(M)),x[a]=M;return}var R=x[s];R!==null&&(x[h]=null,x[s]=null,x[o]=null,R(_(void 0,!0))),x[u]=!0}),g.on("readable",I.bind(null,x)),x};return is=C,is}var ss,Vo;function Oh(){return Vo||(Vo=1,ss=function(){throw new Error("Readable.from is not available in the browser")}),ss}var os,Wo;function yc(){if(Wo)return os;Wo=1,os=R;var e;R.ReadableState=j,cc.EventEmitter;var t=function(w,N){return w.listeners(N).length},r=fc,n=Rt.Buffer,i=(typeof qt<"u"?qt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(b){return n.from(b)}function o(b){return n.isBuffer(b)||b instanceof i}var a=Ks,u;a&&a.debuglog?u=a.debuglog("stream"):u=function(){};var h=th(),d=uc,p=hc,_=p.getHighWaterMark,y=br.codes,I=y.ERR_INVALID_ARG_TYPE,A=y.ERR_STREAM_PUSH_AFTER_EOF,B=y.ERR_METHOD_NOT_IMPLEMENTED,O=y.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,C,v,g;Re(R,r);var S=d.errorOrDestroy,x=["error","close","destroy","pause","resume"];function M(b,w,N){if(typeof b.prependListener=="function")return b.prependListener(w,N);!b._events||!b._events[w]?b.on(w,N):Array.isArray(b._events[w])?b._events[w].unshift(N):b._events[w]=[N,b._events[w]]}function j(b,w,N){e=e||$r(),b=b||{},typeof N!="boolean"&&(N=w instanceof e),this.objectMode=!!b.objectMode,N&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=_(this,b,"readableHighWaterMark",N),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(C||(C=si.StringDecoder),this.decoder=new C(b.encoding),this.encoding=b.encoding)}function R(b){if(e=e||$r(),!(this instanceof R))return new R(b);var w=this instanceof e;this._readableState=new j(b,this,w),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(w){this._readableState&&(this._readableState.destroyed=w)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(b,w){w(b)},R.prototype.push=function(b,w){var N=this._readableState,$;return N.objectMode?$=!0:typeof b=="string"&&(w=w||N.defaultEncoding,w!==N.encoding&&(b=n.from(b,w),w=""),$=!0),z(this,b,w,!1,$)},R.prototype.unshift=function(b){return z(this,b,null,!0,!1)};function z(b,w,N,$,me){u("readableAddChunk",w);var X=b._readableState;if(w===null)X.reading=!1,fe(b,X);else{var ne;if(me||(ne=U(X,w)),ne)S(b,ne);else if(X.objectMode||w&&w.length>0)if(typeof w!="string"&&!X.objectMode&&Object.getPrototypeOf(w)!==n.prototype&&(w=s(w)),$)X.endEmitted?S(b,new O):ee(b,X,w,!0);else if(X.ended)S(b,new A);else{if(X.destroyed)return!1;X.reading=!1,X.decoder&&!N?(w=X.decoder.write(w),X.objectMode||w.length!==0?ee(b,X,w,!1):ze(b,X)):ee(b,X,w,!1)}else $||(X.reading=!1,ze(b,X))}return!X.ended&&(X.length<X.highWaterMark||X.length===0)}function ee(b,w,N,$){w.flowing&&w.length===0&&!w.sync?(w.awaitDrain=0,b.emit("data",N)):(w.length+=w.objectMode?1:N.length,$?w.buffer.unshift(N):w.buffer.push(N),w.needReadable&&ue(b)),ze(b,w)}function U(b,w){var N;return!o(w)&&typeof w!="string"&&w!==void 0&&!b.objectMode&&(N=new I("chunk",["string","Buffer","Uint8Array"],w)),N}R.prototype.isPaused=function(){return this._readableState.flowing===!1},R.prototype.setEncoding=function(b){C||(C=si.StringDecoder);var w=new C(b);this._readableState.decoder=w,this._readableState.encoding=this._readableState.decoder.encoding;for(var N=this._readableState.buffer.head,$="";N!==null;)$+=w.write(N.data),N=N.next;return this._readableState.buffer.clear(),$!==""&&this._readableState.buffer.push($),this._readableState.length=$.length,this};var H=1073741824;function V(b){return b>=H?b=H:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function K(b,w){return b<=0||w.length===0&&w.ended?0:w.objectMode?1:b!==b?w.flowing&&w.length?w.buffer.head.data.length:w.length:(b>w.highWaterMark&&(w.highWaterMark=V(b)),b<=w.length?b:w.ended?w.length:(w.needReadable=!0,0))}R.prototype.read=function(b){u("read",b),b=parseInt(b,10);var w=this._readableState,N=b;if(b!==0&&(w.emittedReadable=!1),b===0&&w.needReadable&&((w.highWaterMark!==0?w.length>=w.highWaterMark:w.length>0)||w.ended))return u("read: emitReadable",w.length,w.ended),w.length===0&&w.ended?F(this):ue(this),null;if(b=K(b,w),b===0&&w.ended)return w.length===0&&F(this),null;var $=w.needReadable;u("need readable",$),(w.length===0||w.length-b<w.highWaterMark)&&($=!0,u("length less than watermark",$)),w.ended||w.reading?($=!1,u("reading or ended",$)):$&&(u("do read"),w.reading=!0,w.sync=!0,w.length===0&&(w.needReadable=!0),this._read(w.highWaterMark),w.sync=!1,w.reading||(b=K(N,w)));var me;return b>0?me=k(b,w):me=null,me===null?(w.needReadable=w.length<=w.highWaterMark,b=0):(w.length-=b,w.awaitDrain=0),w.length===0&&(w.ended||(w.needReadable=!0),N!==b&&w.ended&&F(this)),me!==null&&this.emit("data",me),me};function fe(b,w){if(u("onEofChunk"),!w.ended){if(w.decoder){var N=w.decoder.end();N&&N.length&&(w.buffer.push(N),w.length+=w.objectMode?1:N.length)}w.ended=!0,w.sync?ue(b):(w.needReadable=!1,w.emittedReadable||(w.emittedReadable=!0,rt(b)))}}function ue(b){var w=b._readableState;u("emitReadable",w.needReadable,w.emittedReadable),w.needReadable=!1,w.emittedReadable||(u("emitReadable",w.flowing),w.emittedReadable=!0,process.nextTick(rt,b))}function rt(b){var w=b._readableState;u("emitReadable_",w.destroyed,w.length,w.ended),!w.destroyed&&(w.length||w.ended)&&(b.emit("readable"),w.emittedReadable=!1),w.needReadable=!w.flowing&&!w.ended&&w.length<=w.highWaterMark,T(b)}function ze(b,w){w.readingMore||(w.readingMore=!0,process.nextTick(ot,b,w))}function ot(b,w){for(;!w.reading&&!w.ended&&(w.length<w.highWaterMark||w.flowing&&w.length===0);){var N=w.length;if(u("maybeReadMore read 0"),b.read(0),N===w.length)break}w.readingMore=!1}R.prototype._read=function(b){S(this,new B("_read()"))},R.prototype.pipe=function(b,w){var N=this,$=this._readableState;switch($.pipesCount){case 0:$.pipes=b;break;case 1:$.pipes=[$.pipes,b];break;default:$.pipes.push(b);break}$.pipesCount+=1,u("pipe count=%d opts=%j",$.pipesCount,w);var me=(!w||w.end!==!1)&&b!==process.stdout&&b!==process.stderr,X=me?Ut:er;$.endEmitted?process.nextTick(X):N.once("end",X),b.on("unpipe",ne);function ne(l,c){u("onunpipe"),l===N&&c&&c.hasUnpiped===!1&&(c.hasUnpiped=!0,_r())}function Ut(){u("onend"),b.end()}var gr=ye(N);b.on("drain",gr);var zr=!1;function _r(){u("cleanup"),b.removeListener("close",qr),b.removeListener("finish",Je),b.removeListener("drain",gr),b.removeListener("error",Zt),b.removeListener("unpipe",ne),N.removeListener("end",Ut),N.removeListener("end",er),N.removeListener("data",Ke),zr=!0,$.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&gr()}N.on("data",Ke);function Ke(l){u("ondata");var c=b.write(l);u("dest.write",c),c===!1&&(($.pipesCount===1&&$.pipes===b||$.pipesCount>1&&Y($.pipes,b)!==-1)&&!zr&&(u("false write response, pause",$.awaitDrain),$.awaitDrain++),N.pause())}function Zt(l){u("onerror",l),er(),b.removeListener("error",Zt),t(b,"error")===0&&S(b,l)}M(b,"error",Zt);function qr(){b.removeListener("finish",Je),er()}b.once("close",qr);function Je(){u("onfinish"),b.removeListener("close",qr),er()}b.once("finish",Je);function er(){u("unpipe"),N.unpipe(b)}return b.emit("pipe",N),$.flowing||(u("pipe resume"),N.resume()),b};function ye(b){return function(){var N=b._readableState;u("pipeOnDrain",N.awaitDrain),N.awaitDrain&&N.awaitDrain--,N.awaitDrain===0&&t(b,"data")&&(N.flowing=!0,T(b))}}R.prototype.unpipe=function(b){var w=this._readableState,N={hasUnpiped:!1};if(w.pipesCount===0)return this;if(w.pipesCount===1)return b&&b!==w.pipes?this:(b||(b=w.pipes),w.pipes=null,w.pipesCount=0,w.flowing=!1,b&&b.emit("unpipe",this,N),this);if(!b){var $=w.pipes,me=w.pipesCount;w.pipes=null,w.pipesCount=0,w.flowing=!1;for(var X=0;X<me;X++)$[X].emit("unpipe",this,{hasUnpiped:!1});return this}var ne=Y(w.pipes,b);return ne===-1?this:(w.pipes.splice(ne,1),w.pipesCount-=1,w.pipesCount===1&&(w.pipes=w.pipes[0]),b.emit("unpipe",this,N),this)},R.prototype.on=function(b,w){var N=r.prototype.on.call(this,b,w),$=this._readableState;return b==="data"?($.readableListening=this.listenerCount("readable")>0,$.flowing!==!1&&this.resume()):b==="readable"&&!$.endEmitted&&!$.readableListening&&($.readableListening=$.needReadable=!0,$.flowing=!1,$.emittedReadable=!1,u("on readable",$.length,$.reading),$.length?ue(this):$.reading||process.nextTick(qe,this)),N},R.prototype.addListener=R.prototype.on,R.prototype.removeListener=function(b,w){var N=r.prototype.removeListener.call(this,b,w);return b==="readable"&&process.nextTick(xe,this),N},R.prototype.removeAllListeners=function(b){var w=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&process.nextTick(xe,this),w};function xe(b){var w=b._readableState;w.readableListening=b.listenerCount("readable")>0,w.resumeScheduled&&!w.paused?w.flowing=!0:b.listenerCount("data")>0&&b.resume()}function qe(b){u("readable nexttick read 0"),b.read(0)}R.prototype.resume=function(){var b=this._readableState;return b.flowing||(u("resume"),b.flowing=!b.readableListening,Ct(this,b)),b.paused=!1,this};function Ct(b,w){w.resumeScheduled||(w.resumeScheduled=!0,process.nextTick(bt,b,w))}function bt(b,w){u("resume",w.reading),w.reading||b.read(0),w.resumeScheduled=!1,b.emit("resume"),T(b),w.flowing&&!w.reading&&b.read(0)}R.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function T(b){var w=b._readableState;for(u("flow",w.flowing);w.flowing&&b.read()!==null;);}R.prototype.wrap=function(b){var w=this,N=this._readableState,$=!1;b.on("end",function(){if(u("wrapped end"),N.decoder&&!N.ended){var ne=N.decoder.end();ne&&ne.length&&w.push(ne)}w.push(null)}),b.on("data",function(ne){if(u("wrapped data"),N.decoder&&(ne=N.decoder.write(ne)),!(N.objectMode&&ne==null)&&!(!N.objectMode&&(!ne||!ne.length))){var Ut=w.push(ne);Ut||($=!0,b.pause())}});for(var me in b)this[me]===void 0&&typeof b[me]=="function"&&(this[me]=function(Ut){return function(){return b[Ut].apply(b,arguments)}}(me));for(var X=0;X<x.length;X++)b.on(x[X],this.emit.bind(this,x[X]));return this._read=function(ne){u("wrapped _read",ne),$&&($=!1,b.resume())},this},typeof Symbol=="function"&&(R.prototype[Symbol.asyncIterator]=function(){return v===void 0&&(v=Ph()),v(this)}),Object.defineProperty(R.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(R.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(R.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(w){this._readableState&&(this._readableState.flowing=w)}}),R._fromList=k,Object.defineProperty(R.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function k(b,w){if(w.length===0)return null;var N;return w.objectMode?N=w.buffer.shift():!b||b>=w.length?(w.decoder?N=w.buffer.join(""):w.buffer.length===1?N=w.buffer.first():N=w.buffer.concat(w.length),w.buffer.clear()):N=w.buffer.consume(b,w.decoder),N}function F(b){var w=b._readableState;u("endReadable",w.endEmitted),w.endEmitted||(w.ended=!0,process.nextTick(G,w,b))}function G(b,w){if(u("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,w.readable=!1,w.emit("end"),b.autoDestroy)){var N=w._writableState;(!N||N.autoDestroy&&N.finished)&&w.destroy()}}typeof Symbol=="function"&&(R.from=function(b,w){return g===void 0&&(g=Oh()),g(R,b,w)});function Y(b,w){for(var N=0,$=b.length;N<$;N++)if(b[N]===w)return N;return-1}return os}var mc=Ot,xi=br.codes,Rh=xi.ERR_METHOD_NOT_IMPLEMENTED,Ch=xi.ERR_MULTIPLE_CALLBACK,Uh=xi.ERR_TRANSFORM_ALREADY_TRANSFORMING,Lh=xi.ERR_TRANSFORM_WITH_LENGTH_0,Si=$r();Re(Ot,Si);function Nh(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new Ch);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function Ot(e){if(!(this instanceof Ot))return new Ot(e);Si.call(this,e),this._transformState={afterTransform:Nh.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Fh)}function Fh(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){zo(e,t,r)}):zo(this,null,null)}Ot.prototype.push=function(e,t){return this._transformState.needTransform=!1,Si.prototype.push.call(this,e,t)};Ot.prototype._transform=function(e,t,r){r(new Rh("_transform()"))};Ot.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}};Ot.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Ot.prototype._destroy=function(e,t){Si.prototype._destroy.call(this,e,function(r){t(r)})};function zo(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new Lh;if(e._transformState.transforming)throw new Uh;return e.push(null)}var Hh=gn,bc=mc;Re(gn,bc);function gn(e){if(!(this instanceof gn))return new gn(e);bc.call(this,e)}gn.prototype._transform=function(e,t,r){r(null,e)};var as;function Mh(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var wc=br.codes,Dh=wc.ERR_MISSING_ARGS,$h=wc.ERR_STREAM_DESTROYED;function qo(e){if(e)throw e}function jh(e){return e.setHeader&&typeof e.abort=="function"}function Gh(e,t,r,n){n=Mh(n);var i=!1;e.on("close",function(){i=!0}),as===void 0&&(as=Xs),as(e,{readable:t,writable:r},function(o){if(o)return n(o);i=!0,n()});var s=!1;return function(o){if(!i&&!s){if(s=!0,jh(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(o||new $h("pipe"))}}}function Ko(e){e()}function Vh(e,t){return e.pipe(t)}function Wh(e){return!e.length||typeof e[e.length-1]!="function"?qo:e.pop()}function zh(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=Wh(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Dh("streams");var i,s=t.map(function(o,a){var u=a<t.length-1,h=a>0;return Gh(o,u,h,function(d){i||(i=d),d&&s.forEach(Ko),!u&&(s.forEach(Ko),n(i))})});return t.reduce(Vh)}var qh=zh;(function(e,t){t=e.exports=yc(),t.Stream=t,t.Readable=t,t.Writable=dc(),t.Duplex=$r(),t.Transform=mc,t.PassThrough=Hh,t.finished=Xs,t.pipeline=qh})(xs,xs.exports);var gc=xs.exports,oi=We.Buffer,_c=gc.Transform,Kh=Re;function Yh(e,t){if(!oi.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function Xt(e){_c.call(this),this._block=oi.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}Kh(Xt,_c);Xt.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};Xt.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};Xt.prototype.update=function(e,t){if(Yh(e,"Data"),this._finalized)throw new Error("Digest already called");oi.isBuffer(e)||(e=oi.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)r[i++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s)this._length[s]+=o,o=this._length[s]/4294967296|0,o>0&&(this._length[s]-=4294967296*o);return this};Xt.prototype._update=function(){throw new Error("_update is not implemented")};Xt.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};Xt.prototype._digest=function(){throw new Error("_digest is not implemented")};var Xh=Xt,Jh=Re,vc=Xh,Qh=We.Buffer,Zh=new Array(16);function Ai(){vc.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Jh(Ai,vc);Ai.prototype._update=function(){for(var e=Zh,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a,n=this._b,i=this._c,s=this._d;r=Ce(r,n,i,s,e[0],3614090360,7),s=Ce(s,r,n,i,e[1],3905402710,12),i=Ce(i,s,r,n,e[2],606105819,17),n=Ce(n,i,s,r,e[3],3250441966,22),r=Ce(r,n,i,s,e[4],4118548399,7),s=Ce(s,r,n,i,e[5],1200080426,12),i=Ce(i,s,r,n,e[6],2821735955,17),n=Ce(n,i,s,r,e[7],4249261313,22),r=Ce(r,n,i,s,e[8],1770035416,7),s=Ce(s,r,n,i,e[9],2336552879,12),i=Ce(i,s,r,n,e[10],4294925233,17),n=Ce(n,i,s,r,e[11],2304563134,22),r=Ce(r,n,i,s,e[12],1804603682,7),s=Ce(s,r,n,i,e[13],4254626195,12),i=Ce(i,s,r,n,e[14],2792965006,17),n=Ce(n,i,s,r,e[15],1236535329,22),r=Ue(r,n,i,s,e[1],4129170786,5),s=Ue(s,r,n,i,e[6],3225465664,9),i=Ue(i,s,r,n,e[11],643717713,14),n=Ue(n,i,s,r,e[0],3921069994,20),r=Ue(r,n,i,s,e[5],3593408605,5),s=Ue(s,r,n,i,e[10],38016083,9),i=Ue(i,s,r,n,e[15],3634488961,14),n=Ue(n,i,s,r,e[4],3889429448,20),r=Ue(r,n,i,s,e[9],568446438,5),s=Ue(s,r,n,i,e[14],3275163606,9),i=Ue(i,s,r,n,e[3],4107603335,14),n=Ue(n,i,s,r,e[8],1163531501,20),r=Ue(r,n,i,s,e[13],2850285829,5),s=Ue(s,r,n,i,e[2],4243563512,9),i=Ue(i,s,r,n,e[7],1735328473,14),n=Ue(n,i,s,r,e[12],2368359562,20),r=Le(r,n,i,s,e[5],4294588738,4),s=Le(s,r,n,i,e[8],2272392833,11),i=Le(i,s,r,n,e[11],1839030562,16),n=Le(n,i,s,r,e[14],4259657740,23),r=Le(r,n,i,s,e[1],2763975236,4),s=Le(s,r,n,i,e[4],1272893353,11),i=Le(i,s,r,n,e[7],4139469664,16),n=Le(n,i,s,r,e[10],3200236656,23),r=Le(r,n,i,s,e[13],681279174,4),s=Le(s,r,n,i,e[0],3936430074,11),i=Le(i,s,r,n,e[3],3572445317,16),n=Le(n,i,s,r,e[6],76029189,23),r=Le(r,n,i,s,e[9],3654602809,4),s=Le(s,r,n,i,e[12],3873151461,11),i=Le(i,s,r,n,e[15],530742520,16),n=Le(n,i,s,r,e[2],3299628645,23),r=Ne(r,n,i,s,e[0],4096336452,6),s=Ne(s,r,n,i,e[7],1126891415,10),i=Ne(i,s,r,n,e[14],2878612391,15),n=Ne(n,i,s,r,e[5],4237533241,21),r=Ne(r,n,i,s,e[12],1700485571,6),s=Ne(s,r,n,i,e[3],2399980690,10),i=Ne(i,s,r,n,e[10],4293915773,15),n=Ne(n,i,s,r,e[1],2240044497,21),r=Ne(r,n,i,s,e[8],1873313359,6),s=Ne(s,r,n,i,e[15],4264355552,10),i=Ne(i,s,r,n,e[6],2734768916,15),n=Ne(n,i,s,r,e[13],1309151649,21),r=Ne(r,n,i,s,e[4],4149444226,6),s=Ne(s,r,n,i,e[11],3174756917,10),i=Ne(i,s,r,n,e[2],718787259,15),n=Ne(n,i,s,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0};Ai.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=Qh.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e};function ki(e,t){return e<<t|e>>>32-t}function Ce(e,t,r,n,i,s,o){return ki(e+(t&r|~t&n)+i+s|0,o)+t|0}function Ue(e,t,r,n,i,s,o){return ki(e+(t&n|r&~n)+i+s|0,o)+t|0}function Le(e,t,r,n,i,s,o){return ki(e+(t^r^n)+i+s|0,o)+t|0}function Ne(e,t,r,n,i,s,o){return ki(e+(r^(t|~n))+i+s|0,o)+t|0}var ed=Ai,ai=We.Buffer,Ec=gc.Transform,td=Re;function rd(e,t){if(!ai.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function Jt(e){Ec.call(this),this._block=ai.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}td(Jt,Ec);Jt.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};Jt.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};Jt.prototype.update=function(e,t){if(rd(e,"Data"),this._finalized)throw new Error("Digest already called");ai.isBuffer(e)||(e=ai.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)r[i++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s)this._length[s]+=o,o=this._length[s]/4294967296|0,o>0&&(this._length[s]-=4294967296*o);return this};Jt.prototype._update=function(){throw new Error("_update is not implemented")};Jt.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};Jt.prototype._digest=function(){throw new Error("_digest is not implemented")};var nd=Jt,cs=Rt.Buffer,id=Re,xc=nd,sd=new Array(16),Zr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],en=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],tn=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],rn=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],nn=[0,1518500249,1859775393,2400959708,2840853838],sn=[1352829926,1548603684,1836072691,2053994217,0];function Ti(){xc.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}id(Ti,xc);Ti.prototype._update=function(){for(var e=sd,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);for(var r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._a|0,u=this._b|0,h=this._c|0,d=this._d|0,p=this._e|0,_=0;_<80;_+=1){var y,I;_<16?(y=Yo(r,n,i,s,o,e[Zr[_]],nn[0],tn[_]),I=Zo(a,u,h,d,p,e[en[_]],sn[0],rn[_])):_<32?(y=Xo(r,n,i,s,o,e[Zr[_]],nn[1],tn[_]),I=Qo(a,u,h,d,p,e[en[_]],sn[1],rn[_])):_<48?(y=Jo(r,n,i,s,o,e[Zr[_]],nn[2],tn[_]),I=Jo(a,u,h,d,p,e[en[_]],sn[2],rn[_])):_<64?(y=Qo(r,n,i,s,o,e[Zr[_]],nn[3],tn[_]),I=Xo(a,u,h,d,p,e[en[_]],sn[3],rn[_])):(y=Zo(r,n,i,s,o,e[Zr[_]],nn[4],tn[_]),I=Yo(a,u,h,d,p,e[en[_]],sn[4],rn[_])),r=o,o=s,s=ur(i,10),i=n,n=y,a=p,p=d,d=ur(h,10),h=u,u=I}var A=this._b+i+d|0;this._b=this._c+s+p|0,this._c=this._d+o+a|0,this._d=this._e+r+u|0,this._e=this._a+n+h|0,this._a=A};Ti.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=cs.alloc?cs.alloc(20):new cs(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function ur(e,t){return e<<t|e>>>32-t}function Yo(e,t,r,n,i,s,o,a){return ur(e+(t^r^n)+s+o|0,a)+i|0}function Xo(e,t,r,n,i,s,o,a){return ur(e+(t&r|~t&n)+s+o|0,a)+i|0}function Jo(e,t,r,n,i,s,o,a){return ur(e+((t|~r)^n)+s+o|0,a)+i|0}function Qo(e,t,r,n,i,s,o,a){return ur(e+(t&n|r&~n)+s+o|0,a)+i|0}function Zo(e,t,r,n,i,s,o,a){return ur(e+(t^(r|~n))+s+o|0,a)+i|0}var od=Ti,Sc={exports:{}},Ac=We.Buffer;function Bi(e,t){this._block=Ac.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Bi.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=Ac.from(e,t));for(var r=this._block,n=this._blockSize,i=e.length,s=this._len,o=0;o<i;){for(var a=s%n,u=Math.min(i-o,n-a),h=0;h<u;h++)r[a+h]=e[o+h];s+=u,o+=u,s%n===0&&this._update(r)}return this._len+=i,this};Bi.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s};Bi.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var Gr=Bi,ad=Re,kc=Gr,cd=We.Buffer,fd=[1518500249,1859775393,-1894007588,-899497514],ud=new Array(80);function kn(){this.init(),this._w=ud,kc.call(this,64,56)}ad(kn,kc);kn.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function ld(e){return e<<5|e>>>27}function hd(e){return e<<30|e>>>2}function dd(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}kn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)t[a]=e.readInt32BE(a*4);for(;a<80;++a)t[a]=t[a-3]^t[a-8]^t[a-14]^t[a-16];for(var u=0;u<80;++u){var h=~~(u/20),d=ld(r)+dd(h,n,i,s)+o+t[u]+fd[h]|0;o=s,s=i,i=hd(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};kn.prototype._hash=function(){var e=cd.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var pd=kn,yd=Re,Tc=Gr,md=We.Buffer,bd=[1518500249,1859775393,-1894007588,-899497514],wd=new Array(80);function Tn(){this.init(),this._w=wd,Tc.call(this,64,56)}yd(Tn,Tc);Tn.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function gd(e){return e<<1|e>>>31}function _d(e){return e<<5|e>>>27}function vd(e){return e<<30|e>>>2}function Ed(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}Tn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)t[a]=e.readInt32BE(a*4);for(;a<80;++a)t[a]=gd(t[a-3]^t[a-8]^t[a-14]^t[a-16]);for(var u=0;u<80;++u){var h=~~(u/20),d=_d(r)+Ed(h,n,i,s)+o+t[u]+bd[h]|0;o=s,s=i,i=vd(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};Tn.prototype._hash=function(){var e=md.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var xd=Tn,Sd=Re,Bc=Gr,Ad=We.Buffer,kd=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Td=new Array(64);function Bn(){this.init(),this._w=Td,Bc.call(this,64,56)}Sd(Bn,Bc);Bn.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function Bd(e,t,r){return r^e&(t^r)}function Id(e,t,r){return e&t|r&(e|t)}function Pd(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function Od(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function Rd(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function Cd(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}Bn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._f|0,u=this._g|0,h=this._h|0,d=0;d<16;++d)t[d]=e.readInt32BE(d*4);for(;d<64;++d)t[d]=Cd(t[d-2])+t[d-7]+Rd(t[d-15])+t[d-16]|0;for(var p=0;p<64;++p){var _=h+Od(o)+Bd(o,a,u)+kd[p]+t[p]|0,y=Pd(r)+Id(r,n,i)|0;h=u,u=a,a=o,o=s+_|0,s=i,i=n,n=r,r=_+y|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0,this._f=a+this._f|0,this._g=u+this._g|0,this._h=h+this._h|0};Bn.prototype._hash=function(){var e=Ad.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};var Ic=Bn,Ud=Re,Ld=Ic,Nd=Gr,Fd=We.Buffer,Hd=new Array(64);function Ii(){this.init(),this._w=Hd,Nd.call(this,64,56)}Ud(Ii,Ld);Ii.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Ii.prototype._hash=function(){var e=Fd.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};var Md=Ii,Dd=Re,Pc=Gr,$d=We.Buffer,ea=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],jd=new Array(160);function In(){this.init(),this._w=jd,Pc.call(this,128,112)}Dd(In,Pc);In.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function ta(e,t,r){return r^e&(t^r)}function ra(e,t,r){return e&t|r&(e|t)}function na(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function ia(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function Gd(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function Vd(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function Wd(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function zd(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function Be(e,t){return e>>>0<t>>>0?1:0}In.prototype._update=function(e){for(var t=this._w,r=this._ah|0,n=this._bh|0,i=this._ch|0,s=this._dh|0,o=this._eh|0,a=this._fh|0,u=this._gh|0,h=this._hh|0,d=this._al|0,p=this._bl|0,_=this._cl|0,y=this._dl|0,I=this._el|0,A=this._fl|0,B=this._gl|0,O=this._hl|0,C=0;C<32;C+=2)t[C]=e.readInt32BE(C*4),t[C+1]=e.readInt32BE(C*4+4);for(;C<160;C+=2){var v=t[C-30],g=t[C-15*2+1],S=Gd(v,g),x=Vd(g,v);v=t[C-2*2],g=t[C-2*2+1];var M=Wd(v,g),j=zd(g,v),R=t[C-7*2],z=t[C-7*2+1],ee=t[C-16*2],U=t[C-16*2+1],H=x+z|0,V=S+R+Be(H,x)|0;H=H+j|0,V=V+M+Be(H,j)|0,H=H+U|0,V=V+ee+Be(H,U)|0,t[C]=V,t[C+1]=H}for(var K=0;K<160;K+=2){V=t[K],H=t[K+1];var fe=ra(r,n,i),ue=ra(d,p,_),rt=na(r,d),ze=na(d,r),ot=ia(o,I),ye=ia(I,o),xe=ea[K],qe=ea[K+1],Ct=ta(o,a,u),bt=ta(I,A,B),T=O+ye|0,k=h+ot+Be(T,O)|0;T=T+bt|0,k=k+Ct+Be(T,bt)|0,T=T+qe|0,k=k+xe+Be(T,qe)|0,T=T+H|0,k=k+V+Be(T,H)|0;var F=ze+ue|0,G=rt+fe+Be(F,ze)|0;h=u,O=B,u=a,B=A,a=o,A=I,I=y+T|0,o=s+k+Be(I,y)|0,s=i,y=_,i=n,_=p,n=r,p=d,d=T+F|0,r=k+G+Be(d,T)|0}this._al=this._al+d|0,this._bl=this._bl+p|0,this._cl=this._cl+_|0,this._dl=this._dl+y|0,this._el=this._el+I|0,this._fl=this._fl+A|0,this._gl=this._gl+B|0,this._hl=this._hl+O|0,this._ah=this._ah+r+Be(this._al,d)|0,this._bh=this._bh+n+Be(this._bl,p)|0,this._ch=this._ch+i+Be(this._cl,_)|0,this._dh=this._dh+s+Be(this._dl,y)|0,this._eh=this._eh+o+Be(this._el,I)|0,this._fh=this._fh+a+Be(this._fl,A)|0,this._gh=this._gh+u+Be(this._gl,B)|0,this._hh=this._hh+h+Be(this._hl,O)|0};In.prototype._hash=function(){var e=$d.allocUnsafe(64);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e};var Oc=In,qd=Re,Kd=Oc,Yd=Gr,Xd=We.Buffer,Jd=new Array(160);function Pi(){this.init(),this._w=Jd,Yd.call(this,128,112)}qd(Pi,Kd);Pi.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Pi.prototype._hash=function(){var e=Xd.allocUnsafe(48);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e};var Qd=Pi,wr=Sc.exports=function(t){t=t.toLowerCase();var r=wr[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};wr.sha=pd;wr.sha1=xd;wr.sha224=Md;wr.sha256=Ic;wr.sha384=Qd;wr.sha512=Oc;var Zd=Sc.exports,Rc=We.Buffer,Cc=Ks.Transform,e0=si.StringDecoder,t0=Re;function st(e){Cc.call(this),this.hashMode=typeof e=="string",this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}t0(st,Cc);st.prototype.update=function(e,t,r){typeof e=="string"&&(e=Rc.from(e,t));var n=this._update(e);return this.hashMode?this:(r&&(n=this._toString(n,r)),n)};st.prototype.setAutoPadding=function(){};st.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};st.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};st.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};st.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(i){n=i}finally{r(n)}};st.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(r){t=r}e(t)};st.prototype._finalOrDigest=function(e){var t=this.__final()||Rc.alloc(0);return e&&(t=this._toString(t,e,!0)),t};st.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new e0(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n};var r0=st,n0=Re,i0=ed,s0=od,o0=Zd,Uc=r0;function Oi(e){Uc.call(this,"digest"),this._hash=e}n0(Oi,Uc);Oi.prototype._update=function(e){this._hash.update(e)};Oi.prototype._final=function(){return this._hash.digest()};var a0=function(t){return t=t.toLowerCase(),t==="md5"?new i0:t==="rmd160"||t==="ripemd160"?new s0:new Oi(o0(t))},jn=We.Buffer;function c0(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var n=0;n<e.length;n++){var i=e.charAt(n),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=n}var o=e.length,a=e.charAt(0),u=Math.log(o)/Math.log(256),h=Math.log(256)/Math.log(o);function d(y){if((Array.isArray(y)||y instanceof Uint8Array)&&(y=jn.from(y)),!jn.isBuffer(y))throw new TypeError("Expected Buffer");if(y.length===0)return"";for(var I=0,A=0,B=0,O=y.length;B!==O&&y[B]===0;)B++,I++;for(var C=(O-B)*h+1>>>0,v=new Uint8Array(C);B!==O;){for(var g=y[B],S=0,x=C-1;(g!==0||S<A)&&x!==-1;x--,S++)g+=256*v[x]>>>0,v[x]=g%o>>>0,g=g/o>>>0;if(g!==0)throw new Error("Non-zero carry");A=S,B++}for(var M=C-A;M!==C&&v[M]===0;)M++;for(var j=a.repeat(I);M<C;++M)j+=e.charAt(v[M]);return j}function p(y){if(typeof y!="string")throw new TypeError("Expected String");if(y.length===0)return jn.alloc(0);for(var I=0,A=0,B=0;y[I]===a;)A++,I++;for(var O=(y.length-I)*u+1>>>0,C=new Uint8Array(O);I<y.length;){var v=t[y.charCodeAt(I)];if(v===255)return;for(var g=0,S=O-1;(v!==0||g<B)&&S!==-1;S--,g++)v+=o*C[S]>>>0,C[S]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");B=g,I++}for(var x=O-B;x!==O&&C[x]===0;)x++;var M=jn.allocUnsafe(A+(O-x));M.fill(0,0,A);for(var j=A;x!==O;)M[j++]=C[x++];return M}function _(y){var I=p(y);if(I)return I;throw new Error("Non-base"+o+" character")}return{encode:d,decodeUnsafe:p,decode:_}}var f0=c0,u0=f0,l0="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",h0=u0(l0),fs=h0,d0=We.Buffer,p0=function(e){function t(s){var o=e(s);return fs.encode(d0.concat([s,o],s.length+4))}function r(s){var o=s.slice(0,-4),a=s.slice(-4),u=e(o);if(!(a[0]^u[0]|a[1]^u[1]|a[2]^u[2]|a[3]^u[3]))return o}function n(s){var o=fs.decodeUnsafe(s);if(o)return r(o)}function i(s){var o=fs.decode(s),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:t,decode:i,decodeUnsafe:n}},sa=a0,y0=p0;function m0(e){var t=sa("sha256").update(e).digest();return sa("sha256").update(t).digest()}var b0=y0(m0),As=b0;function Lc(e,t){if(t!==void 0&&e[0]!==t)throw new Error("Invalid network version");if(e.length===33)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(e.length!==34)throw new Error("Invalid WIF length");if(e[33]!==1)throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function ks(e,t,r){var n=new Buffer(r?34:33);return n.writeUInt8(e,0),t.copy(n,1),r&&(n[33]=1),n}function w0(e,t){return Lc(As.decode(e),t)}function g0(e,t,r){return typeof e=="number"?As.encode(ks(e,t,r)):As.encode(ks(e.version,e.privateKey,e.compressed))}var _0={decode:w0,decodeRaw:Lc,encode:g0,encodeRaw:ks},Ri={};Object.defineProperty(Ri,"__esModule",{value:!0});Ri.testEcc=void 0;const W=e=>Buffer.from(e,"hex");function v0(e){he(e.isPoint(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(!e.isPoint(W("030000000000000000000000000000000000000000000000000000000000000005"))),he(e.isPrivate(W("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))),he(!e.isPrivate(W("0000000000000000000000000000000000000000000000000000000000000000"))),he(!e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"))),he(!e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142"))),he(Buffer.from(e.privateAdd(W("0000000000000000000000000000000000000000000000000000000000000001"),W("0000000000000000000000000000000000000000000000000000000000000000"))).equals(W("0000000000000000000000000000000000000000000000000000000000000001"))),he(e.privateAdd(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e"),W("0000000000000000000000000000000000000000000000000000000000000003"))===null),he(Buffer.from(e.privateAdd(W("e211078564db65c3ce7704f08262b1f38f1ef412ad15b5ac2d76657a63b2c500"),W("b51fbb69051255d1becbd683de5848242a89c229348dd72896a87ada94ae8665"))).equals(W("9730c2ee69edbb958d42db7460bafa18fef9d955325aec99044c81c8282b0a24"))),he(Buffer.from(e.privateNegate(W("0000000000000000000000000000000000000000000000000000000000000001"))).equals(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))),he(Buffer.from(e.privateNegate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e"))).equals(W("0000000000000000000000000000000000000000000000000000000000000003"))),he(Buffer.from(e.privateNegate(W("b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af"))).equals(W("4eede1bf775995d70a494f0a7bb6bc11e0b8cccd41cce8009ab1132c8b0a3792"))),he(Buffer.from(e.pointCompress(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),!0)).equals(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(Buffer.from(e.pointCompress(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),!1)).equals(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"))),he(Buffer.from(e.pointCompress(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),!0)).equals(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(Buffer.from(e.pointCompress(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),!1)).equals(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"))),he(Buffer.from(e.pointFromScalar(W("b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af"))).equals(W("02b07ba9dca9523b7ef4bd97703d43d20399eb698e194704791a25ce77a400df99"))),he(e.xOnlyPointAddTweak(W("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))===null);let t=e.xOnlyPointAddTweak(W("1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b"),W("a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac"));he(Buffer.from(t.xOnlyPubkey).equals(W("e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"))&&t.parity===1),t=e.xOnlyPointAddTweak(W("2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991"),W("823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47")),he(Buffer.from(t.xOnlyPubkey).equals(W("9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"))&&t.parity===0),he(Buffer.from(e.sign(W("5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed"),W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))).equals(W("54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5"))),he(e.verify(W("5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed"),W("0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),W("54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5"))),e.signSchnorr&&he(Buffer.from(e.signSchnorr(W("7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c"),W("c90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b14e5c9"),W("c87aa53824b4d7ae2eb035a2b5bbbccc080e76cdc6d1692c4b0b62d798e6d906"))).equals(W("5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7"))),e.verifySchnorr&&he(e.verifySchnorr(W("7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c"),W("dd308afec5777e13121fa72b9cc1b7cc0139715309b086c960e18fd969774eb8"),W("5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7")))}Ri.testEcc=v0;function he(e){if(!e)throw new Error("ecc library invalid")}Object.defineProperty(Mr,"__esModule",{value:!0});Mr.ECPairFactory=Mr.networks=void 0;const Ts=Dr;Mr.networks=Ts;const je=Za,E0=zl,oa=_0,x0=Ri,us=je.typeforce.maybe(je.typeforce.compile({compressed:je.maybe(je.Boolean),network:je.maybe(je.Network)})),S0=e=>e.length===32?e:e.slice(1,33);function A0(e){(0,x0.testEcc)(e);function t(a){return e.isPoint(a)}function r(a,u){if(je.typeforce(je.Buffer256bit,a),!e.isPrivate(a))throw new TypeError("Private key not in range [1, n)");return je.typeforce(us,u),new o(a,void 0,u)}function n(a,u){return je.typeforce(e.isPoint,a),je.typeforce(us,u),new o(void 0,a,u)}function i(a,u){const h=oa.decode(a),d=h.version;if(je.Array(u)){if(u=u.filter(p=>d===p.wif).pop(),!u)throw new Error("Unknown network version")}else if(u=u||Ts.bitcoin,d!==u.wif)throw new Error("Invalid network version");return r(h.privateKey,{compressed:h.compressed,network:u})}function s(a){je.typeforce(us,a),a===void 0&&(a={});const u=a.rng||E0;let h;do h=u(32),je.typeforce(je.Buffer256bit,h);while(!e.isPrivate(h));return r(h,a)}class o{constructor(u,h,d){vr(this,"__D");vr(this,"__Q");vr(this,"compressed");vr(this,"network");vr(this,"lowR");this.__D=u,this.__Q=h,this.lowR=!1,d===void 0&&(d={}),this.compressed=d.compressed===void 0?!0:d.compressed,this.network=d.network||Ts.bitcoin,h!==void 0&&(this.__Q=Buffer.from(e.pointCompress(h,this.compressed)))}get privateKey(){return this.__D}get publicKey(){if(!this.__Q){const u=e.pointFromScalar(this.__D,this.compressed);this.__Q=Buffer.from(u)}return this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return oa.encode(this.network.wif,this.__D,this.compressed)}tweak(u){return this.privateKey?this.tweakFromPrivateKey(u):this.tweakFromPublicKey(u)}sign(u,h){if(!this.__D)throw new Error("Missing private key");if(h===void 0&&(h=this.lowR),h===!1)return Buffer.from(e.sign(u,this.__D));{let d=e.sign(u,this.__D);const p=Buffer.alloc(32,0);let _=0;for(;d[0]>127;)_++,p.writeUIntLE(_,0,6),d=e.sign(u,this.__D,p);return Buffer.from(d)}}signSchnorr(u){if(!this.privateKey)throw new Error("Missing private key");if(!e.signSchnorr)throw new Error("signSchnorr not supported by ecc library");return Buffer.from(e.signSchnorr(u,this.privateKey))}verify(u,h){return e.verify(u,this.publicKey,h)}verifySchnorr(u,h){if(!e.verifySchnorr)throw new Error("verifySchnorr not supported by ecc library");return e.verifySchnorr(u,this.publicKey.subarray(1,33),h)}tweakFromPublicKey(u){const h=S0(this.publicKey),d=e.xOnlyPointAddTweak(h,u);if(!d||d.xOnlyPubkey===null)throw new Error("Cannot tweak public key!");const p=Buffer.from([d.parity===0?2:3]);return n(Buffer.concat([p,d.xOnlyPubkey]),{network:this.network,compressed:this.compressed})}tweakFromPrivateKey(u){const d=this.publicKey[0]===3||this.publicKey[0]===4&&(this.publicKey[64]&1)===1?e.privateNegate(this.privateKey):this.privateKey,p=e.privateAdd(d,u);if(!p)throw new Error("Invalid tweaked private key!");return r(Buffer.from(p),{network:this.network,compressed:this.compressed})}}return{isPoint:t,fromPrivateKey:r,fromPublicKey:n,fromWIF:i,makeRandom:s}}Mr.ECPairFactory=A0;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.networks=e.ECPairFactory=e.default=void 0;var t=Mr;Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.ECPairFactory}}),Object.defineProperty(e,"ECPairFactory",{enumerable:!0,get:function(){return t.ECPairFactory}}),Object.defineProperty(e,"networks",{enumerable:!0,get:function(){return t.networks}})})(Qa);const k0=Nf(Qa);class _n extends q.EventBroker{get isInitialized(){return!!this.digestKey}constructor(t,r){super(),this.digestKey=t,this.walletClient=r}static fromDigestKey(t){return new _n(ir(t))}static fromWalletClient(t){return new _n(void 0,t)}async initialize(){if(this.digestKey)return re("Already initialized");const t=await this.deriveDigestKeyFromWalletClient();return t.error?D(t.error):(this.emit("initialized",!0),re("Initialized"))}async deriveDigestKeyFromWalletClient(){if(!this.walletClient)return D("No walletClient found");if(!this.walletClient.account)return D("No account found");try{const t=await this.walletClient.signTypedData({account:this.walletClient.account,types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],Data:[{name:"Message",type:"string"},{name:"Version",type:"string"},{name:"Nonce",type:"uint256"}]},domain:{name:"GARDEN FINANCE",version:"1"},primaryType:"Data",message:{Message:"Initialize your account",Version:"1.0.2",Nonce:1n}});return this.digestKey=ir(At.sha256(t)),this.emit("initialized",!0),re(this.digestKey)}catch(t){return D("Failed to initialize: "+t)}}async getDigestKey(){if(!this.digestKey&&!this.walletClient)return D("No private key or wallet client found");if(!this.digestKey&&this.walletClient){const t=await this.deriveDigestKeyFromWalletClient();if(t.error)return D(t.error)}return this.digestKey?re(this.digestKey):D("No private key found")}async generateSecret(t){const r=await this.signMessage(t);if(r.error)return D(r.error);const n=At.sha256(q.with0x(r.val)),i=At.sha256(n);return re({secret:n,secretHash:i})}async signMessage(t){if(!this.digestKey){const h=await this.getDigestKey();if(h.error)return D(h.error);this.digestKey=h.val}const r=k0(ar),n="Garden.fi"+t.toString(),i=Buffer.from(n,"utf8"),s=At.sha256(i),o=Buffer.from(ir(this.digestKey),"hex");if(o.length!==32)return D("Invalid private key length. Expected 32 bytes.");const u=r.fromPrivateKey(o).sign(Buffer.from(ir(s),"hex"));return re(u.toString("hex"))}}const T0=[{inputs:[{internalType:"address",name:"token_",type:"address"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"initiateWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct HTLC.InitWithSig[]",name:"inits",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],internalType:"struct HTLC.Redeem[]",name:"redeems",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],internalType:"struct HTLC.Refund[]",name:"refunds",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"bool[]",name:"results",type:"bool[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address",name:"initiator",type:"address"},{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"}];function mt(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const Nc="2.22.23";let on={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Nc}`};class pe extends Error{constructor(t,r={}){var a;const n=(()=>{var u;return r.cause instanceof pe?r.cause.details:(u=r.cause)!=null&&u.message?r.cause.message:r.details})(),i=r.cause instanceof pe&&r.cause.docsPath||r.docsPath,s=(a=on.getDocsUrl)==null?void 0:a.call(on,{...r,docsPath:i}),o=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...on.version?[`Version: ${on.version}`]:[]].join(`
|
|
32
32
|
`);super(o,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=i,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Nc}walk(t){return Fc(this,t)}}function Fc(e,t){return t!=null&&t(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Fc(e.cause,t):t?null:e}class B0 extends pe{constructor({max:t,min:r,signed:n,size:i,value:s}){super(`Number "${s}" is not in safe ${i?`${i*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}}class I0 extends pe{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function Pn(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function jr(e){return Pn(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function ci(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,n=0;for(let i=0;i<r.length-1&&r[t==="left"?i:r.length-i-1].toString()==="0";i++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),typeof e=="string"?(r.length===1&&t==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}class P0 extends pe{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class Hc extends pe{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}}function Vr(e,{dir:t,size:r=32}={}){return typeof e=="string"?O0(e,{dir:t,size:r}):R0(e,{dir:t,size:r})}function O0(e,{dir:t,size:r=32}={}){if(r===null)return e;const n=e.replace("0x","");if(n.length>r*2)throw new Hc({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function R0(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Hc({size:e.length,targetSize:r,type:"bytes"});const n=new Uint8Array(r);for(let i=0;i<r;i++){const s=t==="right";n[s?i:r-i-1]=e[s?i:e.length-i-1]}return n}const C0=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Q(e,t={}){return typeof e=="number"||typeof e=="bigint"?Mc(e,t):typeof e=="string"?N0(e,t):typeof e=="boolean"?U0(e,t):Qt(e,t)}function U0(e,t={}){const r=`0x${Number(e)}`;return typeof t.size=="number"?(Wr(r,{size:t.size}),Vr(r,{size:t.size})):r}function Qt(e,t={}){let r="";for(let i=0;i<e.length;i++)r+=C0[e[i]];const n=`0x${r}`;return typeof t.size=="number"?(Wr(n,{size:t.size}),Vr(n,{dir:"right",size:t.size})):n}function Mc(e,t={}){const{signed:r,size:n}=t,i=BigInt(e);let s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof s=="bigint"&&r?-s-1n:0;if(s&&i>s||i<o){const u=typeof e=="bigint"?"n":"";throw new B0({max:s?`${s}${u}`:void 0,min:`${o}${u}`,signed:r,size:n,value:`${e}${u}`})}const a=`0x${(r&&i<0?(1n<<BigInt(n*8))+BigInt(i):i).toString(16)}`;return n?Vr(a,{size:n}):a}const L0=new TextEncoder;function N0(e,t={}){const r=L0.encode(e);return Qt(r,t)}const F0=new TextEncoder;function Dc(e,t={}){return typeof e=="number"||typeof e=="bigint"?M0(e,t):typeof e=="boolean"?H0(e,t):Pn(e)?lr(e,t):$c(e,t)}function H0(e,t={}){const r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Wr(r,{size:t.size}),Vr(r,{size:t.size})):r}const Et={zero:48,nine:57,A:65,F:70,a:97,f:102};function aa(e){if(e>=Et.zero&&e<=Et.nine)return e-Et.zero;if(e>=Et.A&&e<=Et.F)return e-(Et.A-10);if(e>=Et.a&&e<=Et.f)return e-(Et.a-10)}function lr(e,t={}){let r=e;t.size&&(Wr(r,{size:t.size}),r=Vr(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);const i=n.length/2,s=new Uint8Array(i);for(let o=0,a=0;o<i;o++){const u=aa(n.charCodeAt(a++)),h=aa(n.charCodeAt(a++));if(u===void 0||h===void 0)throw new pe(`Invalid byte sequence ("${n[a-2]}${n[a-1]}" in "${n}").`);s[o]=u*16+h}return s}function M0(e,t){const r=Mc(e,t);return lr(r)}function $c(e,t={}){const r=F0.encode(e);return typeof t.size=="number"?(Wr(r,{size:t.size}),Vr(r,{dir:"right",size:t.size})):r}function Wr(e,{size:t}){if(jr(e)>t)throw new I0({givenSize:jr(e),maxSize:t})}function Pr(e,t={}){const{signed:r}=t;t.size&&Wr(e,{size:t.size});const n=BigInt(e);if(!r)return n;const i=(e.length-2)/2,s=(1n<<BigInt(i)*8n-1n)-1n;return n<=s?n:n-BigInt(`0x${"f".padStart(i*2,"f")}`)-1n}function fi(e,t={}){return Number(Pr(e,t))}function Js(e,t){return({exclude:r,format:n})=>({exclude:r,format:i=>{const s=t(i);if(r)for(const o of r)delete s[o];return{...s,...n(i)}},type:e})}const jc={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Qs(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?fi(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?fi(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?jc[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=$0(e.authorizationList)),t.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof t.v=="bigint"){if(t.v===0n||t.v===27n)return 0;if(t.v===1n||t.v===28n)return 1;if(t.v>=35n)return t.v%2n===0n?1:0}})(),t.type==="legacy"&&(delete t.accessList,delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas,delete t.yParity),t.type==="eip2930"&&(delete t.maxFeePerBlobGas,delete t.maxFeePerGas,delete t.maxPriorityFeePerGas),t.type==="eip1559"&&delete t.maxFeePerBlobGas,t}const D0=Js("transaction",Qs);function $0(e){return e.map(t=>({contractAddress:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function j0(e){const t=(e.transactions??[]).map(r=>typeof r=="string"?r:Qs(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const G0=Js("block",j0);function V0(e,{args:t,eventName:r}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...r?{args:t,eventName:r}:{}}}const W0={"0x0":"reverted","0x1":"success"};function z0(e){const t={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(r=>V0(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?fi(e.transactionIndex):null,status:e.status?W0[e.status]:null,type:e.type?jc[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const q0=Js("transactionReceipt",z0),Zs=2n**256n-1n;function On(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}class ca extends pe{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class K0 extends pe{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class Y0 extends pe{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const X0={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new Y0({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new K0({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new ca({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new ca({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function Gc(e,{recursiveReadLimit:t=8192}={}){const r=Object.create(X0);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}function hr(e,t="hex"){const r=Vc(e),n=Gc(new Uint8Array(r.length));return r.encode(n),t==="hex"?Qt(n.bytes):n.bytes}function Vc(e){return Array.isArray(e)?J0(e.map(t=>Vc(t))):Q0(e)}function J0(e){const t=e.reduce((i,s)=>i+s.length,0),r=Wc(t);return{length:t<=55?1+t:1+r+t,encode(i){t<=55?i.pushByte(192+t):(i.pushByte(247+r),r===1?i.pushUint8(t):r===2?i.pushUint16(t):r===3?i.pushUint24(t):i.pushUint32(t));for(const{encode:s}of e)s(i)}}}function Q0(e){const t=typeof e=="string"?lr(e):e,r=Wc(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(i){t.length===1&&t[0]<128?i.pushBytes(t):t.length<=55?(i.pushByte(128+t.length),i.pushBytes(t)):(i.pushByte(183+r),r===1?i.pushUint8(t.length):r===2?i.pushUint16(t.length):r===3?i.pushUint24(t.length):i.pushUint32(t.length),i.pushBytes(t))}}}function Wc(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new pe("Length is too large.")}const Z0={ether:-9,wei:9};function ep(e,t){let r=e.toString();const n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[i,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${i||"0"}${s?`.${s}`:""}`}function Bs(e,t="wei"){return ep(e,Z0[t])}function tp(e){const t=Object.entries(e).map(([n,i])=>i===void 0||i===!1?null:[n,i]).filter(Boolean),r=t.reduce((n,[i])=>Math.max(n,i.length),0);return t.map(([n,i])=>` ${`${n}:`.padEnd(r+1)} ${i}`).join(`
|
|
33
33
|
`)}class rp extends pe{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class np extends pe{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",tp(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class ip extends pe{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}function zc(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(s=>lr(s)):e.blobs,i=[];for(const s of n)i.push(Uint8Array.from(t.blobToKzgCommitment(s)));return r==="bytes"?i:i.map(s=>Qt(s))}function qc(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(o=>lr(o)):e.blobs,i=typeof e.commitments[0]=="string"?e.commitments.map(o=>lr(o)):e.commitments,s=[];for(let o=0;o<n.length;o++){const a=n[o],u=i[o];s.push(Uint8Array.from(t.computeBlobKzgProof(a,u)))}return r==="bytes"?s:s.map(o=>Qt(o))}function fa(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function sp(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function eo(e,...t){if(!sp(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function ui(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Kc(e,t){eo(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function op(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ls(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function ut(e,t){return e<<32-t|e>>>t}const ua=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ap(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function la(e){for(let t=0;t<e.length;t++)e[t]=ap(e[t])}function cp(e){if(typeof e!="string")throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array(new TextEncoder().encode(e))}function to(e){return typeof e=="string"&&(e=cp(e)),eo(e),e}class Yc{clone(){return this._cloneInto()}}function Xc(e){const t=n=>e().update(to(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function fp(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),u=n?4:0,h=n?0:4;e.setUint32(t+u,o,n),e.setUint32(t+h,a,n)}function up(e,t,r){return e&t^~e&r}function lp(e,t,r){return e&t^e&r^t&r}class hp extends Yc{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ls(this.buffer)}update(t){ui(this);const{view:r,buffer:n,blockLen:i}=this;t=to(t);const s=t.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const u=ls(t);for(;i<=s-o;o+=i)this.process(u,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){ui(this),Kc(t,this),this.finished=!0;const{buffer:r,view:n,blockLen:i,isLE:s}=this;let{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let p=o;p<i;p++)r[p]=0;fp(n,i-8,BigInt(this.length*8),s),this.process(n,0);const a=ls(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const h=u/4,d=this.get();if(h>d.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<h;p++)a.setUint32(4*p,d[p],s)}digest(){const{buffer:t,outputLen:r}=this;this.digestInto(t);const n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}}const dp=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),$t=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),jt=new Uint32Array(64);class pp extends hp{constructor(){super(64,32,8,!1),this.A=$t[0]|0,this.B=$t[1]|0,this.C=$t[2]|0,this.D=$t[3]|0,this.E=$t[4]|0,this.F=$t[5]|0,this.G=$t[6]|0,this.H=$t[7]|0}get(){const{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:u}=this;return[t,r,n,i,s,o,a,u]}set(t,r,n,i,s,o,a,u){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=u|0}process(t,r){for(let p=0;p<16;p++,r+=4)jt[p]=t.getUint32(r,!1);for(let p=16;p<64;p++){const _=jt[p-15],y=jt[p-2],I=ut(_,7)^ut(_,18)^_>>>3,A=ut(y,17)^ut(y,19)^y>>>10;jt[p]=A+jt[p-7]+I+jt[p-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:u,G:h,H:d}=this;for(let p=0;p<64;p++){const _=ut(a,6)^ut(a,11)^ut(a,25),y=d+_+up(a,u,h)+dp[p]+jt[p]|0,A=(ut(n,2)^ut(n,13)^ut(n,22))+lp(n,i,s)|0;d=h,h=u,u=a,a=o+y|0,o=s,s=i,i=n,n=y+A|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,u=u+this.F|0,h=h+this.G|0,d=d+this.H|0,this.set(n,i,s,o,a,u,h,d)}roundClean(){jt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const yp=Xc(()=>new pp);function mp(e,t){return yp(Pn(e,{strict:!1})?Dc(e):e)}function bp(e){const{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),i=mp(t);return i.set([r],0),n==="bytes"?i:Qt(i)}function wp(e){const{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),i=[];for(const s of t)i.push(bp({commitment:s,to:n,version:r}));return i}const ha=6,Jc=32,ro=4096,Qc=Jc*ro,da=Qc*ha-1-1*ro*ha,Zc=1;class gp extends pe{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class ef extends pe{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class _p extends pe{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class vp extends pe{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Zc}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function Ep(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?lr(e.data):e.data,n=jr(r);if(!n)throw new ef;if(n>da)throw new gp({maxSize:da,size:n});const i=[];let s=!0,o=0;for(;s;){const a=Gc(new Uint8Array(Qc));let u=0;for(;u<ro;){const h=r.slice(o,o+(Jc-1));if(a.pushByte(0),a.pushBytes(h),h.length<31){a.pushByte(128),s=!1;break}u++,o+=31}i.push(a)}return t==="bytes"?i.map(a=>a.bytes):i.map(a=>Qt(a.bytes))}function xp(e){const{data:t,kzg:r,to:n}=e,i=e.blobs??Ep({data:t,to:n}),s=e.commitments??zc({blobs:i,kzg:r,to:n}),o=e.proofs??qc({blobs:i,commitments:s,kzg:r,to:n}),a=[];for(let u=0;u<i.length;u++)a.push({blob:i[u],commitment:s[u],proof:o[u]});return a}function Sp(e){if(!e||e.length===0)return[];const t=[];for(const r of e){const{contractAddress:n,chainId:i,nonce:s,...o}=r;t.push([i?Q(i):"0x",n,s?Q(s):"0x",...Rn({},o)])}return t}class dr extends pe{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}class Ci extends pe{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Ui extends pe{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Bs(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Ui,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class tf extends pe{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${Bs(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Bs(n)} gwei`:""}).`].join(`
|
|
34
|
-
`),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(tf,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class rf extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}}const Gn=BigInt(2**32-1),pa=BigInt(32);function Ap(e,t=!1){return t?{h:Number(e&Gn),l:Number(e>>pa&Gn)}:{h:Number(e>>pa&Gn)|0,l:Number(e&Gn)|0}}function kp(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:s,l:o}=Ap(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}const Tp=(e,t,r)=>e<<r|t>>>32-r,Bp=(e,t,r)=>t<<r|e>>>32-r,Ip=(e,t,r)=>t<<r-32|e>>>64-r,Pp=(e,t,r)=>e<<r-32|t>>>64-r,nf=[],sf=[],of=[],Op=BigInt(0),an=BigInt(1),Rp=BigInt(2),Cp=BigInt(7),Up=BigInt(256),Lp=BigInt(113);for(let e=0,t=an,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],nf.push(2*(5*n+r)),sf.push((e+1)*(e+2)/2%64);let i=Op;for(let s=0;s<7;s++)t=(t<<an^(t>>Cp)*Lp)%Up,t&Rp&&(i^=an<<(an<<BigInt(s))-an);of.push(i)}const[Np,Fp]=kp(of,!0),ya=(e,t,r)=>r>32?Ip(e,t,r):Tp(e,t,r),ma=(e,t,r)=>r>32?Pp(e,t,r):Bp(e,t,r);function Hp(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let o=0;o<10;o++)r[o]=e[o]^e[o+10]^e[o+20]^e[o+30]^e[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,u=(o+2)%10,h=r[u],d=r[u+1],p=ya(h,d,1)^r[a],_=ma(h,d,1)^r[a+1];for(let y=0;y<50;y+=10)e[o+y]^=p,e[o+y+1]^=_}let i=e[2],s=e[3];for(let o=0;o<24;o++){const a=sf[o],u=ya(i,s,a),h=ma(i,s,a),d=nf[o];i=e[d],s=e[d+1],e[d]=u,e[d+1]=h}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)r[a]=e[o+a];for(let a=0;a<10;a++)e[o+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=Np[n],e[1]^=Fp[n]}r.fill(0)}class no extends Yc{constructor(t,r,n,i=!1,s=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,fa(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=op(this.state)}keccak(){ua||la(this.state32),Hp(this.state32,this.rounds),ua||la(this.state32),this.posOut=0,this.pos=0}update(t){ui(this);const{blockLen:r,state:n}=this;t=to(t);const i=t.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);for(let a=0;a<o;a++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:r,pos:n,blockLen:i}=this;t[n]^=r,r&128&&n===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){ui(this,!1),eo(t),this.finish();const r=this.state,{blockLen:n}=this;for(let i=0,s=t.length;i<s;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,s-i);t.set(r.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return fa(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Kc(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:r,suffix:n,outputLen:i,rounds:s,enableXOF:o}=this;return t||(t=new no(r,n,i,o,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}}const Mp=(e,t,r)=>Xc(()=>new no(t,e,r)),Dp=Mp(1,136,256/8);function $p(e,t){return Dp(Pn(e,{strict:!1})?Dc(e):e)}const hs=new rf(8192);function jp(e,t){if(hs.has(`${e}.${t}`))return hs.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),n=$p($c(r)),i=r.split("");for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&i[o]&&(i[o]=i[o].toUpperCase()),(n[o>>1]&15)>=8&&i[o+1]&&(i[o+1]=i[o+1].toUpperCase());const s=`0x${i.join("")}`;return hs.set(`${e}.${t}`,s),s}const Gp=/^0x[a-fA-F0-9]{40}$/,ds=new rf(8192);function pr(e,t){const{strict:r=!0}=t??{},n=`${e}.${r}`;if(ds.has(n))return ds.get(n);const i=Gp.test(e)?e.toLowerCase()===e?!0:r?jp(e)===e:!0:!1;return ds.set(n,i),i}function Vp(e,t,r,{strict:n}={}){return Pn(e,{strict:!1})?zp(e,t,r,{strict:n}):Wp(e,t,r,{strict:n})}function af(e,t,r){if(jr(e)!==r-t)throw new P0({offset:r,position:"end",size:jr(e)})}function Wp(e,t,r,{strict:n}={}){const i=e.slice(t,r);return n&&af(i,t,r),i}function zp(e,t,r,{strict:n}={}){const i=`0x${e.replace("0x","").slice(t*2,r*2)}`;return n&&af(i,t,r),i}function qp(e){const{authorizationList:t}=e;if(t)for(const r of t){const{contractAddress:n,chainId:i}=r;if(!pr(n))throw new dr({address:n});if(i<0)throw new Ci({chainId:i})}io(e)}function Kp(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new ef;for(const r of t){const n=jr(r),i=fi(Vp(r,0,1));if(n!==32)throw new _p({hash:r,size:n});if(i!==Zc)throw new vp({hash:r,version:i})}}io(e)}function io(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:i}=e;if(t<=0)throw new Ci({chainId:t});if(i&&!pr(i))throw new dr({address:i});if(n&&n>Zs)throw new Ui({maxFeePerGas:n});if(r&&n&&r>n)throw new tf({maxFeePerGas:n,maxPriorityFeePerGas:r})}function Yp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(t<=0)throw new Ci({chainId:t});if(s&&!pr(s))throw new dr({address:s});if(r||i)throw new pe("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>Zs)throw new Ui({maxFeePerGas:n})}function Xp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(s&&!pr(s))throw new dr({address:s});if(typeof t<"u"&&t<=0)throw new Ci({chainId:t});if(r||i)throw new pe("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>Zs)throw new Ui({maxFeePerGas:n})}function Jp(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new np({transaction:e})}function Li(e){if(!e||e.length===0)return[];const t=[];for(let r=0;r<e.length;r++){const{address:n,storageKeys:i}=e[r];for(let s=0;s<i.length;s++)if(i[s].length-2!==64)throw new ip({storageKey:i[s]});if(!pr(n,{strict:!1}))throw new dr({address:n});t.push([n,i])}return t}function Qp(e,t){const r=Jp(e);return r==="eip1559"?ty(e,t):r==="eip2930"?ry(e,t):r==="eip4844"?ey(e,t):r==="eip7702"?Zp(e,t):ny(e,t)}function Zp(e,t){const{authorizationList:r,chainId:n,gas:i,nonce:s,to:o,value:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:p}=e;qp(e);const _=Li(d),y=Sp(r);return On(["0x04",hr([Q(n),s?Q(s):"0x",h?Q(h):"0x",u?Q(u):"0x",i?Q(i):"0x",o??"0x",a?Q(a):"0x",p??"0x",_,y,...Rn(e,t)])])}function ey(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerBlobGas:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:p}=e;Kp(e);let _=e.blobVersionedHashes,y=e.sidecars;if(e.blobs&&(typeof _>"u"||typeof y>"u")){const v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(x=>Qt(x)),g=e.kzg,S=zc({blobs:v,kzg:g});if(typeof _>"u"&&(_=wp({commitments:S})),typeof y>"u"){const x=qc({blobs:v,commitments:S,kzg:g});y=xp({blobs:v,commitments:S,proofs:x})}}const I=Li(d),A=[Q(r),i?Q(i):"0x",h?Q(h):"0x",u?Q(u):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",p??"0x",I,a?Q(a):"0x",_??[],...Rn(e,t)],B=[],O=[],C=[];if(y)for(let v=0;v<y.length;v++){const{blob:g,commitment:S,proof:x}=y[v];B.push(g),O.push(S),C.push(x)}return On(["0x03",hr(y?[A,B,O,C]:A)])}function ty(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerGas:a,maxPriorityFeePerGas:u,accessList:h,data:d}=e;io(e);const p=Li(h),_=[Q(r),i?Q(i):"0x",u?Q(u):"0x",a?Q(a):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",d??"0x",p,...Rn(e,t)];return On(["0x02",hr(_)])}function ry(e,t){const{chainId:r,gas:n,data:i,nonce:s,to:o,value:a,accessList:u,gasPrice:h}=e;Yp(e);const d=Li(u),p=[Q(r),s?Q(s):"0x",h?Q(h):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x",d,...Rn(e,t)];return On(["0x01",hr(p)])}function ny(e,t){const{chainId:r=0,gas:n,data:i,nonce:s,to:o,value:a,gasPrice:u}=e;Xp(e);let h=[s?Q(s):"0x",u?Q(u):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x"];if(t){const d=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);const y=27n+(t.v===27n?0n:1n);if(t.v!==y)throw new rp({v:t.v});return y})(),p=ci(t.r),_=ci(t.s);h=[...h,Q(d),p==="0x00"?"0x":p,_==="0x00"?"0x":_]}else r>0&&(h=[...h,Q(r),"0x","0x"]);return hr(h)}function Rn(e,t){const r=t??e,{v:n,yParity:i}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof i>"u")return[];const s=ci(r.r),o=ci(r.s);return[typeof i=="number"?i?Q(1):"0x":n===0n?"0x":n===1n?Q(1):n===27n?"0x":Q(1),s==="0x00"?"0x":s,o==="0x00"?"0x":o]}const iy={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},sy={block:G0({format(e){var r;return{transactions:(r=e.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const i=Qs(n);return i.typeHex==="0x7e"&&(i.isSystemTx=n.isSystemTx,i.mint=n.mint?Pr(n.mint):void 0,i.sourceHash=n.sourceHash,i.type="deposit"),i}),stateRoot:e.stateRoot}}}),transaction:D0({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Pr(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:q0({format(e){return{l1GasPrice:e.l1GasPrice?Pr(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Pr(e.l1GasUsed):null,l1Fee:e.l1Fee?Pr(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function oy(e,t){return fy(e)?cy(e):Qp(e,t)}const ay={transaction:oy};function cy(e){uy(e);const{sourceHash:t,data:r,from:n,gas:i,isSystemTx:s,mint:o,to:a,value:u}=e,h=[t,n,a??"0x",o?Q(o):"0x",u?Q(u):"0x",i?Q(i):"0x",s?"0x1":"0x",r??"0x"];return On(["0x7e",hr(h)])}function fy(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function uy(e){const{from:t,to:r}=e;if(t&&!pr(t))throw new dr({address:t});if(r&&!pr(r))throw new dr({address:r})}const li={contracts:iy,formatters:sy,serializers:ay},ly=mt({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),hy=mt({id:421614,name:"Arbitrum Sepolia",nativeCurrency:{name:"Arbitrum Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia-rollup.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://sepolia.arbiscan.io",apiUrl:"https://api-sepolia.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:81930}},testnet:!0}),cn=1,dy=mt({...li,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...li.contracts,disputeGameFactory:{[cn]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[cn]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[cn]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[cn]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:cn}),fn=11155111,py=mt({...li,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...li.contracts,disputeGameFactory:{[fn]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[fn]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[fn]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[fn]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:fn}),yy=mt({id:80094,name:"Berachain",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},testnet:!1}),my=mt({id:80084,name:"Berachain bArtio",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:109269},ensRegistry:{address:"0xB0eef18971290b333450586D33dcA6cE122651D2",blockCreated:7736794},ensUniversalResolver:{address:"0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057",blockCreated:7736795}},rpcUrls:{default:{http:["https://bartio.rpc.berachain.com"]}},blockExplorers:{default:{name:"Berachain bArtio Beratrail",url:"https://bartio.beratrail.io"}},testnet:!0}),by=mt({id:5115,name:"Citrea Testnet",nativeCurrency:{name:"cBTC",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.testnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.testnet.citrea.xyz",apiUrl:"https://explorer.testnet.citrea.xyz/api"}},testnet:!0}),wy=mt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),gy=mt({id:10143,name:"Monad Testnet",nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),_y=mt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},testnet:!0}),vy={..._y,rpcUrls:{default:{http:["https://ethereum-sepolia-rpc.publicnode.com"]}}},cf={id:998,name:"Hyperliquid EVM Testnet",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://testnet.purrsec.com/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid-testnet.xyz/evm"]}}},ff={ethereum:wy,arbitrum:ly,ethereum_sepolia:vy,arbitrum_sepolia:hy,ethereum_localnet:ge.EthereumLocalnet,arbitrum_localnet:ge.ArbitrumLocalnet,base_sepolia:py,base:dy,bera_testnet:my,citrea_testnet:by,bera:yy,monad_testnet:gy,hyperliquid_testnet:cf},uf=async(e,t)=>{var n;const r=ff[e];if(r)try{if(r.id===((n=t.chain)==null?void 0:n.id))return re({message:"Already on the network",walletClient:t});await t.switchChain({id:r.id});const i=At.createWalletClient({account:t.account,chain:r,transport:At.custom(window.ethereum)});return re({message:"Switched chain",walletClient:i})}catch(i){if(Ey(i))try{await t.addChain({chain:r});const s=At.createWalletClient({account:t.account,chain:r,transport:At.custom(window.ethereum)});return re({message:"Added network",walletClient:s})}catch{return D("Failed to add network")}else return D("Failed to switch network")}else return D("Chain not supported")},Ey=e=>typeof e=="object"&&e!==null&&"code"in e&&e.code===4902;class lf{constructor(t,r,n){this.url=new q.Url("/relayer",t),this.auth=n,this.wallet=r}get htlcActorAddress(){if(!this.wallet.account)throw new Error("No account found");return this.wallet.account.address}async initiate(t){if(!this.wallet.account)return q.Err("No account found");if(this.wallet.account.address.toLowerCase()!==t.source_swap.initiator.toLowerCase())return q.Err("Account address and order initiator mismatch");const r=await uf(t.source_swap.chain,this.wallet);if(r.error)return q.Err(r.error);if(this.wallet=r.val.walletClient,!this.wallet.account)return q.Err("No account found");const{create_order:n,source_swap:i}=t;if(!i.amount||!i.redeemer||!n.timelock||!n.secret_hash)return q.Err("Invalid order");const s=q.with0x(n.secret_hash),o=BigInt(n.timelock),a=q.with0x(i.redeemer),u=BigInt(i.amount);try{const h=await this.auth.getAuthHeaders();if(h.error)return q.Err(h.error);const d=At.getContract({address:q.with0x(t.source_swap.asset),abi:T0,client:this.wallet}),p=await d.read.token(),_=await q.checkAllowanceAndApprove(Number(u),p,t.source_swap.asset,this.wallet);if(_.error)return q.Err(_.error);const y=await d.read.eip712Domain(),I=await this.wallet.signTypedData({account:this.wallet.account,domain:{name:y[1],version:y[2],chainId:Number(y[3]),verifyingContract:y[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:a,timelock:o,amount:u,secretHash:s}}),A={...h.val,"Content-Type":"application/json"},B=await kt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:n.create_id,signature:I,perform_on:"Source"}),headers:A});return B.error?q.Err(B.error):B.result?q.Ok(B.result):q.Err("Init: No result found")}catch(h){return console.log("init error :",h),q.Err(String(h))}}async redeem(t,r){try{const n=await this.auth.getAuthHeaders();if(n.error)return q.Err(n.error);const i=await kt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:ir(r),perform_on:"Destination"}),headers:{...n.val,"Content-Type":"application/json"}});return i.error?q.Err(i.error):i.result?q.Ok(i.result):q.Err("Redeem: No result found")}catch(n){return q.Err(String(n))}}async refund(){return q.Err("Refund not supported")}}const hf=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],df=async(e,t,r,n,i)=>{try{const s=new Ve.RpcProvider({nodeUrl:i}),a=await new Ve.Contract(hf,Un(t),s).call("allowance",[Un(e.address),Un(r)]),u=BigInt((a==null?void 0:a.toString())||"0"),h=Ve.cairo.uint256(BigInt(Ve.uint256.UINT_256_MAX));if(u<n){const d=await e.execute([{contractAddress:Un(t),entrypoint:"approve",calldata:[r,h.low,h.high]}]);return await s.waitForTransaction(d.transaction_hash,{retryInterval:3e3,successStates:[Ve.TransactionExecutionStatus.SUCCEEDED]}),re(d.transaction_hash)}return re("Allowance already approved")}catch(s){return D(`Failed to check or approve allowance: ${s instanceof Error?s.message:String(s)}`)}},pf=[{name:"HTLC",type:"impl",interface_name:"starknet_htlc::interface::IHTLC"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"starknet_htlc::interface::IHTLC",type:"interface",items:[{name:"token",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"initiate",type:"function",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_on_behalf",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_with_signature",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{name:"redeem",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"secret",type:"core::array::Array::<core::integer::u32>"}],outputs:[],state_mutability:"external"},{name:"refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"instant_refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"token",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starknet_htlc::interface::events::Initiated",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"amount",type:"core::integer::u256"}]},{kind:"struct",name:"starknet_htlc::interface::events::Redeemed",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"secret",type:"core::array::Array::<core::integer::u32>"}]},{kind:"struct",name:"starknet_htlc::interface::events::Refunded",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"}]},{kind:"enum",name:"starknet_htlc::htlc::HTLC::Event",type:"event",variants:[{kind:"nested",name:"Initiated",type:"starknet_htlc::interface::events::Initiated"},{kind:"nested",name:"Redeemed",type:"starknet_htlc::interface::events::Redeemed"},{kind:"nested",name:"Refunded",type:"starknet_htlc::interface::events::Refunded"}]}],xy={name:"HTLC",version:Ve.shortString.encodeShortString("1"),chainId:"0x534e5f5345504f4c4941",revision:Ve.TypedDataRevision.ACTIVE},Sy={StarknetDomain:[{name:"name",type:"shortstring"},{name:"version",type:"shortstring"},{name:"chainId",type:"shortstring"},{name:"revision",type:"shortstring"}],Initiate:[{name:"redeemer",type:"ContractAddress"},{name:"amount",type:"u256"},{name:"timelock",type:"u128"},{name:"secretHash",type:"u128*"}]},Ay="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class yf{constructor(t,r,n){this.nodeUrl=n||Ay,this.url=new q.Url("/",t),this.account=r}get htlcActorAddress(){if(!this.account.address)throw new Error("No account found");return this.account.address}async initiate(t){if(!this.account.address)return D("No account address");const{create_order:r,source_swap:n}=t,{redeemer:i,amount:s}=n;if(!s||!i||!r.secret_hash||!r.timelock)return D("Invalid order");try{const o=new Ve.Contract(pf,t.source_swap.asset,this.account),a=await(o==null?void 0:o.token()),u=Ve.num.toHex(a),h=await df(this.account,u,n.asset,BigInt(s),this.nodeUrl);if(h.error)return D(h.error);const d={domain:xy,primaryType:"Initiate",types:Sy,message:{redeemer:i,amount:Ve.cairo.uint256(s),timelock:r.timelock,secretHash:q.hexToU32Array(r.secret_hash)}},p=await this.account.signMessage(d),{r:_,s:y}=p,I=await kt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:r.create_id,signature:{r:_.toString(),s:y.toString()},perform_on:"Source"}),headers:{"Content-Type":"application/json"}});return I.error?D(I.error):I.result?re(I.result):D("Init: No result found")}catch(o){return D(String(o))}}async redeem(t,r){try{const n=await kt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:r,perform_on:"Destination"}),headers:{"Content-Type":"application/json"}});return n.error?D(n.error):n.result?re(n.result):D("Redeem: No result found")}catch(n){return D(String(n))}}async refund(){return D("Refund is taken care of by the relayer")}}class so extends q.EventBroker{constructor(t){if(super(),this.getOrderThreshold=20,this.refundSacpCache=new Map,this.bitcoinRedeemCache=new $l,typeof t.digestKey=="string"){const n=q.DigestKey.from(t.digestKey);if(n.error)throw new Error(n.error);this._digestKey=n.val}else this._digestKey=t.digestKey;this.environment=t.environment;const r=t.environment===q.Environment.MAINNET?Ir.mainnet:t.environment===q.Environment.TESTNET?Ir.testnet:Ir.localnet;if(!r)throw new Error("API not found, invalid environment "+t.environment);this._orderbookUrl=new q.Url(t.api??r.orderbook),this._quote=t.quote??new Ja(r.quote),this._auth=q.Siwe.fromDigestKey(new q.Url(t.api??r.orderbook),this._digestKey,t.siweOpts),this._orderbook=new ge.Orderbook(new q.Url(t.api??r.orderbook)),this._evmHTLC=t.htlc.evm,this._starknetHTLC=t.htlc.starknet,this._secretManager=t.secretManager??_n.fromDigestKey(this._digestKey.digestKey),this.orderExecutorCache=new Dl,this._blockNumberFetcher=t.blockNumberFetcher??new Xa(r.info,t.environment)}static from(t){let r;if(typeof t.digestKey=="string"){const s=q.DigestKey.from(t.digestKey);if(s.error)throw new Error(s.error);r=s.val}else r=t.digestKey;const n=t.environment===q.Environment.MAINNET?Ir.mainnet:t.environment===q.Environment.TESTNET?Ir.testnet:void 0;if(!n)throw new Error("API not found, invalid environment "+t.environment);const i={evm:t.wallets.evm?new lf(n.evmRelay,t.wallets.evm,q.Siwe.fromDigestKey(new q.Url(n.orderbook),r)):void 0,starknet:t.wallets.starknet?new yf(n.starknetRelay,t.wallets.starknet):void 0};return new so({environment:t.environment,digestKey:t.digestKey,htlc:i,siweOpts:t.siweOpts})}get orderbookUrl(){return this._orderbookUrl.toString()}get evmHTLC(){return this._evmHTLC}get starknetHTLC(){return this._starknetHTLC}get quote(){return this._quote}get btcWallet(){return this._btcWallet}get orderbook(){return this._orderbook}get blockNumberFetcher(){return this._blockNumberFetcher}get secretManager(){return this._secretManager}get auth(){return this._auth}get digestKey(){return this._digestKey}async initializeSMandBTCWallet(){if(this._secretManager.isInitialized&&this._btcWallet)return re(this._btcWallet);const t=await this._secretManager.getDigestKey();if(t.error)return D(t.error);const r=new Lr.BitcoinProvider(Bf(this.environment));return this._btcWallet=Lr.BitcoinWallet.fromPrivateKey(t.val,r),re(this._btcWallet)}async swap(t){const r=await this.validateAndFillParams(t);if(r.error)return D(r.error);const{sendAddress:n,receiveAddress:i,timelock:s}=r.val,o=Date.now().toString(),a=await this._secretManager.generateSecret(o);if(a.error)return D(a.error);const{strategyId:u,btcAddress:h}=t.additionalData,d={strategy_id:u,...h&&{bitcoin_optional_recipient:h}},p={source_chain:t.fromAsset.chain,destination_chain:t.toAsset.chain,source_asset:t.fromAsset.atomicSwapAddress,destination_asset:t.toAsset.atomicSwapAddress,initiator_source_address:n,initiator_destination_address:i,source_amount:t.sendAmount,destination_amount:t.receiveAmount,fee:"1",nonce:o,timelock:s,secret_hash:ir(a.val.secretHash),min_destination_confirmations:t.minDestinationConfirmations??0,additional_data:d},_=await this._quote.getAttestedQuote(p);if(_.error)return D(_.error);const y=await this._orderbook.createOrder(_.val,this.auth);if(y.error)return D(y.error);const I=await this.pollOrder(y.val);return I.error?D(I.error):re(I.val)}async validateAndFillParams(t){if(!t.additionalData.strategyId)return D("StrategyId is required");if(!t.fromAsset||!t.toAsset)return D("Source and destination assets are required for swap");if(t.fromAsset.chain===t.toAsset.chain&&t.fromAsset.atomicSwapAddress===t.toAsset.atomicSwapAddress)return D("Source and destination assets cannot be the same");if(ge.isMainnet(t.fromAsset.chain)&&!ge.isMainnet(t.toAsset.chain)||!ge.isMainnet(t.fromAsset.chain)&&ge.isMainnet(t.toAsset.chain))return D("Both assets should be on the same network (either mainnet or testnet)");const r=this.validateAmount(t.sendAmount);if(r.error)return D(r.error);const n=this.validateAmount(t.receiveAmount);if(n.error)return D(n.error);if(r<n)return D("Send amount should be greater than receive amount");const i=ge.getTimeLock(t.fromAsset.chain);if(!i)return D("Unsupported chain for timelock");if(ge.isBitcoin(t.fromAsset.chain)||ge.isBitcoin(t.toAsset.chain)){if(!t.additionalData.btcAddress)return D("btcAddress in additionalData is required if source or destination chain is bitcoin, it is used as refund or redeem address.");const a=await this.initializeSMandBTCWallet();if(a.error)return D(a.error);if(!this._btcWallet)return D("btcWallet is required for bitcoin chain. Please provide btcWallet in the constructor")}const s=await this.getAddresses(t.fromAsset.chain);if(s.error)return D(s.error);const o=await this.getAddresses(t.toAsset.chain);return o.error?D(o.error):re({sendAddress:s.val,receiveAddress:o.val,timelock:t.timelock??i})}async getAddresses(t){var n;switch(ge.getBlockchainType(t)){case ge.BlockchainType.EVM:return this._evmHTLC?re(this._evmHTLC.htlcActorAddress):D("Please provide evmHTLC when initializing garden");case ge.BlockchainType.Bitcoin:{const i=await((n=this._btcWallet)==null?void 0:n.getPublicKey());return!i||!kf(i)?D("Invalid btc public key"):re(rr(i))}case ge.BlockchainType.Starknet:return this._starknetHTLC?re(this._starknetHTLC.htlcActorAddress):D("Please provide starknetHTLC when initializing garden");default:return D("Unsupported chain")}}validateAmount(t){if(t==null||t.includes("."))return D("Invalid amount ",t);const r=new gf(t);return!r.isInteger()||r.isNaN()||r.lt(0)||r.isLessThanOrEqualTo(0)?D("Invalid amount ",t):re(r)}async pollOrder(t){let r=await this._orderbook.getOrder(t,!0),n=0;for(;n<this.getOrderThreshold;){if(await q.sleep(1e3),n++,r.error){if(!r.error.includes("result is undefined"))return D(r.error)}else if(r.val&&r.val.create_order.create_id.toLowerCase()===t.toLowerCase())return re(r.val);r=await this._orderbook.getOrder(t,!0)}return D(`Order not found, createOrder id: ${t}`)}async execute(t=5e3){return await this.initializeSMandBTCWallet(),await this._orderbook.subscribeOrders(this._digestKey.userId,!0,t,async r=>{if(r.data.length===0)return;const n=await this.filterExpiredAndAssignStatus(r.data);if(!n.error){this.emit("onPendingOrdersChanged",n.val);for(let i=0;i<n.val.length;i++){const s=n.val[i],o=Os(s.status);if(ge.isBitcoin(s.source_swap.chain)&&s.status===de.InitiateDetected){const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");continue}await this.postRefundSACP(s,a)}switch(o){case ke.Redeem:{const a=await this._secretManager.generateSecret(s.create_order.nonce);if(a.error){this.emit("error",s,a.error);return}switch(ge.getBlockchainType(s.destination_swap.chain)){case ge.BlockchainType.EVM:{await this.evmRedeem(s,a.val.secret);break}case ge.BlockchainType.Bitcoin:{const u=this.btcWallet;if(!u){this.emit("error",s,"BTC wallet not found");return}await this.btcRedeem(u,s,a.val.secret);break}case ge.BlockchainType.Starknet:{await this.starknetRedeem(s,a.val.secret);break}default:this.emit("error",s,"Unsupported chain: "+s.destination_swap.chain)}break}case ke.Refund:{switch(ge.getBlockchainType(s.source_swap.chain)){case ge.BlockchainType.EVM:{this.emit("error",s,"EVM refund is automatically done by relay service");break}case ge.BlockchainType.Bitcoin:{const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");return}await this.btcRefund(a,s);break}case ge.BlockchainType.Starknet:{this.emit("error",s,"Starknet refund is automatically done by relay service");break}default:this.emit("error",s,"Unsupported chain: "+s.source_swap.chain)}break}}}}},!0,{per_page:500})}async evmRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing evm redeem"),this.orderExecutorCache.get(t,ke.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._evmHTLC){this.emit("error",t,"EVMHTLC is required");return}const i=await this._evmHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,ke.Redeem,t.destination_swap.redeem_tx_hash);return}this.orderExecutorCache.set(t,ke.Redeem,i.val),this.emit("success",t,ke.Redeem,i.val)}async starknetRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing starknet redeem"),this.orderExecutorCache.get(t,ke.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._starknetHTLC){this.emit("error",t,"StarknetHTLC is required");return}const i=await this._starknetHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,ke.Redeem,t.destination_swap.redeem_tx_hash);return}i.val&&(this.orderExecutorCache.set(t,ke.Redeem,i.val),this.emit("success",t,ke.Redeem,i.val))}async btcRedeem(t,r,n){var a,u;const i=this.bitcoinRedeemCache.get(r.create_order.create_id),s=(a=r.destination_swap.initiate_tx_hash.split(",").at(-1))==null?void 0:a.split(":").at(0);if(!s){this.emit("error",r,"Failed to get initiate_tx_hash");return}let o=!1;if(i)if(i.redeemedFromUTXO&&i.redeemedFromUTXO!==s)o=!0,this.emit("log",r.create_order.create_id,"rbf btc redeem");else if(i.redeemedAt&&Date.now()-i.redeemedAt>1e3*60*15)this.emit("log",r.create_order.create_id,"redeem not confirmed in last 15 minutes"),o=!0;else{this.emit("log",r.create_order.create_id,"btcRedeem: already redeemed");return}else if(r.destination_swap.redeem_tx_hash&&!Number(r.destination_swap.redeem_block_number))try{const h=await(await t.getProvider()).getTransaction(r.destination_swap.redeem_tx_hash);let d=!1;for(const p of h.vin)if(p.txid===s){d=!0;break}if(d){this.emit("log",r.create_order.create_id,"already a valid redeem");let p=0;try{const[_]=await(await t.getProvider()).getTransactionTimes([r.destination_swap.redeem_tx_hash]);_!==0&&(p=_)}catch{p=Date.now()}this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:p,redeemTxHash:r.destination_swap.redeem_tx_hash});return}o=!0}catch(h){if(h.message.includes("Transaction not found"))o=!0;else{this.emit("error",r,"Failed to get redeem tx: "+h);return}}this.emit("log",r.create_order.create_id,"executing btc redeem");try{const d=await(await yn.from(t,Number(r.destination_swap.amount),r.create_order.secret_hash,rr(r.destination_swap.initiator),rr(r.destination_swap.redeemer),r.destination_swap.timelock,o?[s]:[])).getRedeemHex(ir(n),(u=r.create_order.additional_data)==null?void 0:u.bitcoin_optional_recipient),p=await this.broadcastRedeemTx(d,r.create_order.create_id);if(p.error||!p.val){this.emit("error",r,p.error||"Failed to broadcast redeem tx");return}o?(this.emit("log",r.create_order.create_id,"rbf: btc redeem success"),this.emit("rbf",r,p.val)):this.emit("success",r,ke.Redeem,p.val),this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:Date.now(),redeemTxHash:p.val})}catch(h){console.log("error",h),this.emit("error",r,"Failed btc redeem: "+h)}}async btcRefund(t,r){var n;if(!this.orderExecutorCache.get(r,ke.Refund)){this.emit("log",r.create_order.create_id,"executing btc refund");try{const s=await(await yn.from(t,Number(r.source_swap.amount),r.create_order.secret_hash,rr(r.source_swap.initiator),rr(r.source_swap.redeemer),r.source_swap.timelock)).refund((n=r.create_order.additional_data)==null?void 0:n.bitcoin_optional_recipient);this.orderExecutorCache.set(r,ke.Refund,s),this.emit("success",r,ke.Refund,s)}catch(i){this.emit("error",r,"Failed btc refund: "+i)}}}async postRefundSACP(t,r){const n=this.refundSacpCache.get(t.create_order.create_id);if((n==null?void 0:n.initTxHash)===t.source_swap.initiate_tx_hash)return;const i=await yn.from(r,Number(t.source_swap.amount),t.create_order.secret_hash,rr(t.source_swap.initiator),rr(t.source_swap.redeemer),t.source_swap.timelock),s=t.create_order.additional_data.bitcoin_optional_recipient;if(s)try{const o=await i.generateInstantRefundSACP(s),a=this._orderbookUrl.endpoint("orders/add-instant-refund-sacp");(await kt.post(a,{headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:t.create_order.create_id,instant_refund_tx_bytes:o})})).status==="Ok"&&this.refundSacpCache.set(t.create_order.create_id,{initTxHash:t.source_swap.initiate_tx_hash})}catch(o){this.emit("error",t,"Failed to generate and post SACP: "+o);return}}async filterExpiredAndAssignStatus(t){var i;if(t.length===0)return re([]);const r=await((i=this._blockNumberFetcher)==null?void 0:i.fetchBlockNumbers());if(r.error)return D(r.error);const n=[];for(let s=0;s<t.length;s++){const o=t[s];if(va(o))continue;const a=o.source_swap.chain,u=o.destination_swap.chain,h=r==null?void 0:r.val[a],d=r==null?void 0:r.val[u];if(!h||!d){this.emit("error",o,"Error while fetching CurrentBlockNumbers");continue}const p=Ps(o,h,d);n.push({...o,status:p})}return re(n)}async broadcastRedeemTx(t,r){try{const n=this._orderbookUrl.endpoint("gasless/order/bitcoin/redeem"),i=await this._auth.getAuthHeaders(),o=await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...i.val},body:JSON.stringify({redeem_tx_bytes:t,order_id:r})})).json();return o.status==="Ok"&&o.result?re(o.result):D(o.error)}catch(n){return D("Failed to broadcast redeem tx: "+n)}}}const ky="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class Ty{constructor(t,r){this.callData=new Ve.CallData(hf),this.nodeUrl=r||ky,this.account=t}get htlcActorAddress(){return this.account.address}async getHTLCContract(t,r=!1){const n=r?t.destination_swap.asset:t.source_swap.asset;return new Ve.Contract(pf,n,this.account)}async initiate(t){try{const n=await(await this.getHTLCContract(t)).token();if(!n)throw new Error("Token address retrieval failed");const i=Ve.num.toHex(n),s=Ve.cairo.uint256(BigInt(t.source_swap.amount));try{const a=await df(this.account,i,t.source_swap.asset,BigInt(t.source_swap.amount),this.nodeUrl);if(a.error)return D(a.error)}catch(a){return D(`Allowance check failed: ${a}`)}const o=await this.account.execute({contractAddress:t.source_swap.asset,entrypoint:"initiate",calldata:[t.source_swap.redeemer,BigInt(t.source_swap.timelock),s.low,s.high,...q.hexToU32Array(t.create_order.secret_hash)]});if(!o.transaction_hash)throw new Error("Failed to initiate HTLC transaction");return re(o.transaction_hash)}catch(r){return D(`HTLC Initiation Error: ${r}`)}}async redeem(t,r){try{const n=await this.getHTLCContract(t,!0),i=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,s=await this.account.execute({contractAddress:n.address,entrypoint:"redeem",calldata:Ve.CallData.compile({swap_id:i,secret:q.hexToU32Array(r)})});return s.transaction_hash?re(s.transaction_hash):D("Failed to redeem HTLC transaction")}catch{return D("HTLC Redeem Error")}}async refund(t){try{const r=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,n=await this.getHTLCContract(t),i=await this.account.execute({contractAddress:n.address,entrypoint:"refund",calldata:{orderId:r}});return i.transaction_hash?re(i.transaction_hash):D("Failed to refund HTLC transaction")}catch{return D("HTLC Refund Error")}}}exports.API=Ir;exports.BlockNumberFetcher=Xa;exports.EvmRelay=lf;exports.Garden=so;exports.OrderActions=ke;exports.OrderStatus=de;exports.ParseOrderStatus=Ps;exports.ParseSwapStatus=ms;exports.Quote=Ja;exports.SecretManager=_n;exports.StarknetHTLC=Ty;exports.StarknetRelay=yf;exports.SwapStatus=we;exports.constructOrderPair=_a;exports.evmToViemChainMap=ff;exports.filterDeadlineExpiredOrders=Pf;exports.hyperliquidTestnet=cf;exports.isExpired=mn;exports.parseAction=If;exports.parseActionFromStatus=Os;exports.switchOrAddNetwork=uf;exports.validateBTCAddress=Tf;
|
|
34
|
+
`),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(tf,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class rf extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}}const Gn=BigInt(2**32-1),pa=BigInt(32);function Ap(e,t=!1){return t?{h:Number(e&Gn),l:Number(e>>pa&Gn)}:{h:Number(e>>pa&Gn)|0,l:Number(e&Gn)|0}}function kp(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:s,l:o}=Ap(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}const Tp=(e,t,r)=>e<<r|t>>>32-r,Bp=(e,t,r)=>t<<r|e>>>32-r,Ip=(e,t,r)=>t<<r-32|e>>>64-r,Pp=(e,t,r)=>e<<r-32|t>>>64-r,nf=[],sf=[],of=[],Op=BigInt(0),an=BigInt(1),Rp=BigInt(2),Cp=BigInt(7),Up=BigInt(256),Lp=BigInt(113);for(let e=0,t=an,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],nf.push(2*(5*n+r)),sf.push((e+1)*(e+2)/2%64);let i=Op;for(let s=0;s<7;s++)t=(t<<an^(t>>Cp)*Lp)%Up,t&Rp&&(i^=an<<(an<<BigInt(s))-an);of.push(i)}const[Np,Fp]=kp(of,!0),ya=(e,t,r)=>r>32?Ip(e,t,r):Tp(e,t,r),ma=(e,t,r)=>r>32?Pp(e,t,r):Bp(e,t,r);function Hp(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let o=0;o<10;o++)r[o]=e[o]^e[o+10]^e[o+20]^e[o+30]^e[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,u=(o+2)%10,h=r[u],d=r[u+1],p=ya(h,d,1)^r[a],_=ma(h,d,1)^r[a+1];for(let y=0;y<50;y+=10)e[o+y]^=p,e[o+y+1]^=_}let i=e[2],s=e[3];for(let o=0;o<24;o++){const a=sf[o],u=ya(i,s,a),h=ma(i,s,a),d=nf[o];i=e[d],s=e[d+1],e[d]=u,e[d+1]=h}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)r[a]=e[o+a];for(let a=0;a<10;a++)e[o+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=Np[n],e[1]^=Fp[n]}r.fill(0)}class no extends Yc{constructor(t,r,n,i=!1,s=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,fa(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=op(this.state)}keccak(){ua||la(this.state32),Hp(this.state32,this.rounds),ua||la(this.state32),this.posOut=0,this.pos=0}update(t){ui(this);const{blockLen:r,state:n}=this;t=to(t);const i=t.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);for(let a=0;a<o;a++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:r,pos:n,blockLen:i}=this;t[n]^=r,r&128&&n===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){ui(this,!1),eo(t),this.finish();const r=this.state,{blockLen:n}=this;for(let i=0,s=t.length;i<s;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,s-i);t.set(r.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return fa(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Kc(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:r,suffix:n,outputLen:i,rounds:s,enableXOF:o}=this;return t||(t=new no(r,n,i,o,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}}const Mp=(e,t,r)=>Xc(()=>new no(t,e,r)),Dp=Mp(1,136,256/8);function $p(e,t){return Dp(Pn(e,{strict:!1})?Dc(e):e)}const hs=new rf(8192);function jp(e,t){if(hs.has(`${e}.${t}`))return hs.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),n=$p($c(r)),i=r.split("");for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&i[o]&&(i[o]=i[o].toUpperCase()),(n[o>>1]&15)>=8&&i[o+1]&&(i[o+1]=i[o+1].toUpperCase());const s=`0x${i.join("")}`;return hs.set(`${e}.${t}`,s),s}const Gp=/^0x[a-fA-F0-9]{40}$/,ds=new rf(8192);function pr(e,t){const{strict:r=!0}=t??{},n=`${e}.${r}`;if(ds.has(n))return ds.get(n);const i=Gp.test(e)?e.toLowerCase()===e?!0:r?jp(e)===e:!0:!1;return ds.set(n,i),i}function Vp(e,t,r,{strict:n}={}){return Pn(e,{strict:!1})?zp(e,t,r,{strict:n}):Wp(e,t,r,{strict:n})}function af(e,t,r){if(jr(e)!==r-t)throw new P0({offset:r,position:"end",size:jr(e)})}function Wp(e,t,r,{strict:n}={}){const i=e.slice(t,r);return n&&af(i,t,r),i}function zp(e,t,r,{strict:n}={}){const i=`0x${e.replace("0x","").slice(t*2,r*2)}`;return n&&af(i,t,r),i}function qp(e){const{authorizationList:t}=e;if(t)for(const r of t){const{contractAddress:n,chainId:i}=r;if(!pr(n))throw new dr({address:n});if(i<0)throw new Ci({chainId:i})}io(e)}function Kp(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new ef;for(const r of t){const n=jr(r),i=fi(Vp(r,0,1));if(n!==32)throw new _p({hash:r,size:n});if(i!==Zc)throw new vp({hash:r,version:i})}}io(e)}function io(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:i}=e;if(t<=0)throw new Ci({chainId:t});if(i&&!pr(i))throw new dr({address:i});if(n&&n>Zs)throw new Ui({maxFeePerGas:n});if(r&&n&&r>n)throw new tf({maxFeePerGas:n,maxPriorityFeePerGas:r})}function Yp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(t<=0)throw new Ci({chainId:t});if(s&&!pr(s))throw new dr({address:s});if(r||i)throw new pe("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>Zs)throw new Ui({maxFeePerGas:n})}function Xp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(s&&!pr(s))throw new dr({address:s});if(typeof t<"u"&&t<=0)throw new Ci({chainId:t});if(r||i)throw new pe("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>Zs)throw new Ui({maxFeePerGas:n})}function Jp(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new np({transaction:e})}function Li(e){if(!e||e.length===0)return[];const t=[];for(let r=0;r<e.length;r++){const{address:n,storageKeys:i}=e[r];for(let s=0;s<i.length;s++)if(i[s].length-2!==64)throw new ip({storageKey:i[s]});if(!pr(n,{strict:!1}))throw new dr({address:n});t.push([n,i])}return t}function Qp(e,t){const r=Jp(e);return r==="eip1559"?ty(e,t):r==="eip2930"?ry(e,t):r==="eip4844"?ey(e,t):r==="eip7702"?Zp(e,t):ny(e,t)}function Zp(e,t){const{authorizationList:r,chainId:n,gas:i,nonce:s,to:o,value:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:p}=e;qp(e);const _=Li(d),y=Sp(r);return On(["0x04",hr([Q(n),s?Q(s):"0x",h?Q(h):"0x",u?Q(u):"0x",i?Q(i):"0x",o??"0x",a?Q(a):"0x",p??"0x",_,y,...Rn(e,t)])])}function ey(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerBlobGas:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:p}=e;Kp(e);let _=e.blobVersionedHashes,y=e.sidecars;if(e.blobs&&(typeof _>"u"||typeof y>"u")){const v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(x=>Qt(x)),g=e.kzg,S=zc({blobs:v,kzg:g});if(typeof _>"u"&&(_=wp({commitments:S})),typeof y>"u"){const x=qc({blobs:v,commitments:S,kzg:g});y=xp({blobs:v,commitments:S,proofs:x})}}const I=Li(d),A=[Q(r),i?Q(i):"0x",h?Q(h):"0x",u?Q(u):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",p??"0x",I,a?Q(a):"0x",_??[],...Rn(e,t)],B=[],O=[],C=[];if(y)for(let v=0;v<y.length;v++){const{blob:g,commitment:S,proof:x}=y[v];B.push(g),O.push(S),C.push(x)}return On(["0x03",hr(y?[A,B,O,C]:A)])}function ty(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerGas:a,maxPriorityFeePerGas:u,accessList:h,data:d}=e;io(e);const p=Li(h),_=[Q(r),i?Q(i):"0x",u?Q(u):"0x",a?Q(a):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",d??"0x",p,...Rn(e,t)];return On(["0x02",hr(_)])}function ry(e,t){const{chainId:r,gas:n,data:i,nonce:s,to:o,value:a,accessList:u,gasPrice:h}=e;Yp(e);const d=Li(u),p=[Q(r),s?Q(s):"0x",h?Q(h):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x",d,...Rn(e,t)];return On(["0x01",hr(p)])}function ny(e,t){const{chainId:r=0,gas:n,data:i,nonce:s,to:o,value:a,gasPrice:u}=e;Xp(e);let h=[s?Q(s):"0x",u?Q(u):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x"];if(t){const d=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);const y=27n+(t.v===27n?0n:1n);if(t.v!==y)throw new rp({v:t.v});return y})(),p=ci(t.r),_=ci(t.s);h=[...h,Q(d),p==="0x00"?"0x":p,_==="0x00"?"0x":_]}else r>0&&(h=[...h,Q(r),"0x","0x"]);return hr(h)}function Rn(e,t){const r=t??e,{v:n,yParity:i}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof i>"u")return[];const s=ci(r.r),o=ci(r.s);return[typeof i=="number"?i?Q(1):"0x":n===0n?"0x":n===1n?Q(1):n===27n?"0x":Q(1),s==="0x00"?"0x":s,o==="0x00"?"0x":o]}const iy={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},sy={block:G0({format(e){var r;return{transactions:(r=e.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const i=Qs(n);return i.typeHex==="0x7e"&&(i.isSystemTx=n.isSystemTx,i.mint=n.mint?Pr(n.mint):void 0,i.sourceHash=n.sourceHash,i.type="deposit"),i}),stateRoot:e.stateRoot}}}),transaction:D0({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Pr(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:q0({format(e){return{l1GasPrice:e.l1GasPrice?Pr(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Pr(e.l1GasUsed):null,l1Fee:e.l1Fee?Pr(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function oy(e,t){return fy(e)?cy(e):Qp(e,t)}const ay={transaction:oy};function cy(e){uy(e);const{sourceHash:t,data:r,from:n,gas:i,isSystemTx:s,mint:o,to:a,value:u}=e,h=[t,n,a??"0x",o?Q(o):"0x",u?Q(u):"0x",i?Q(i):"0x",s?"0x1":"0x",r??"0x"];return On(["0x7e",hr(h)])}function fy(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function uy(e){const{from:t,to:r}=e;if(t&&!pr(t))throw new dr({address:t});if(r&&!pr(r))throw new dr({address:r})}const li={contracts:iy,formatters:sy,serializers:ay},ly=mt({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),hy=mt({id:421614,name:"Arbitrum Sepolia",nativeCurrency:{name:"Arbitrum Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia-rollup.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://sepolia.arbiscan.io",apiUrl:"https://api-sepolia.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:81930}},testnet:!0}),cn=1,dy=mt({...li,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...li.contracts,disputeGameFactory:{[cn]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[cn]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[cn]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[cn]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:cn}),fn=11155111,py=mt({...li,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...li.contracts,disputeGameFactory:{[fn]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[fn]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[fn]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[fn]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:fn}),yy=mt({id:80094,name:"Berachain",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},testnet:!1}),my=mt({id:80084,name:"Berachain bArtio",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:109269},ensRegistry:{address:"0xB0eef18971290b333450586D33dcA6cE122651D2",blockCreated:7736794},ensUniversalResolver:{address:"0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057",blockCreated:7736795}},rpcUrls:{default:{http:["https://bartio.rpc.berachain.com"]}},blockExplorers:{default:{name:"Berachain bArtio Beratrail",url:"https://bartio.beratrail.io"}},testnet:!0}),by=mt({id:5115,name:"Citrea Testnet",nativeCurrency:{name:"cBTC",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.testnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.testnet.citrea.xyz",apiUrl:"https://explorer.testnet.citrea.xyz/api"}},testnet:!0}),wy=mt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),gy=mt({id:10143,name:"Monad Testnet",nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),_y=mt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},testnet:!0}),vy={..._y,rpcUrls:{default:{http:["https://ethereum-sepolia-rpc.publicnode.com"]}}},cf={id:998,name:"Hyperliquid EVM Testnet",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://testnet.purrsec.com/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid-testnet.xyz/evm"]}}},ff={ethereum:wy,arbitrum:ly,ethereum_sepolia:vy,arbitrum_sepolia:hy,ethereum_localnet:ge.EthereumLocalnet,arbitrum_localnet:ge.ArbitrumLocalnet,base_sepolia:py,base:dy,bera_testnet:my,citrea_testnet:by,bera:yy,monad_testnet:gy,hyperliquid_testnet:cf},uf=async(e,t)=>{var n;const r=ff[e];if(r)try{if(r.id===((n=t.chain)==null?void 0:n.id))return re({message:"Already on the network",walletClient:t});await t.switchChain({id:r.id});const i=At.createWalletClient({account:t.account,chain:r,transport:At.custom(window.ethereum)});return re({message:"Switched chain",walletClient:i})}catch(i){if(Ey(i))try{await t.addChain({chain:r});const s=At.createWalletClient({account:t.account,chain:r,transport:At.custom(window.ethereum)});return re({message:"Added network",walletClient:s})}catch{return D("Failed to add network")}else return D("Failed to switch network")}else return D("Chain not supported")},Ey=e=>typeof e=="object"&&e!==null&&"code"in e&&e.code===4902;class lf{constructor(t,r,n){this.url=new q.Url("/relayer",t),this.auth=n,this.wallet=r}get htlcActorAddress(){if(!this.wallet.account)throw new Error("No account found");return this.wallet.account.address}async initiate(t){if(!this.wallet.account)return q.Err("No account found");if(this.wallet.account.address.toLowerCase()!==t.source_swap.initiator.toLowerCase())return q.Err("Account address and order initiator mismatch");const r=await uf(t.source_swap.chain,this.wallet);if(r.error)return q.Err(r.error);if(this.wallet=r.val.walletClient,!this.wallet.account)return q.Err("No account found");const{create_order:n,source_swap:i}=t;if(!i.amount||!i.redeemer||!n.timelock||!n.secret_hash)return q.Err("Invalid order");const s=q.with0x(n.secret_hash),o=BigInt(n.timelock),a=q.with0x(i.redeemer),u=BigInt(i.amount);try{const h=await this.auth.getAuthHeaders();if(h.error)return q.Err(h.error);const d=At.getContract({address:q.with0x(t.source_swap.asset),abi:T0,client:this.wallet}),p=await d.read.token(),_=await q.checkAllowanceAndApprove(Number(u),p,t.source_swap.asset,this.wallet);if(_.error)return q.Err(_.error);const y=await d.read.eip712Domain(),I=await this.wallet.signTypedData({account:this.wallet.account,domain:{name:y[1],version:y[2],chainId:Number(y[3]),verifyingContract:y[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:a,timelock:o,amount:u,secretHash:s}}),A={...h.val,"Content-Type":"application/json"},B=await kt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:n.create_id,signature:I,perform_on:"Source"}),headers:A});return B.error?q.Err(B.error):B.result?q.Ok(B.result):q.Err("Init: No result found")}catch(h){return console.log("init error :",h),q.Err(String(h))}}async redeem(t,r){try{const n=await this.auth.getAuthHeaders();if(n.error)return q.Err(n.error);const i=await kt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:ir(r),perform_on:"Destination"}),headers:{...n.val,"Content-Type":"application/json"}});return i.error?q.Err(i.error):i.result?q.Ok(i.result):q.Err("Redeem: No result found")}catch(n){return q.Err(String(n))}}async refund(){return q.Err("Refund not supported")}}const hf=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],df=async(e,t,r,n,i)=>{try{const s=new Ve.RpcProvider({nodeUrl:i}),a=await new Ve.Contract(hf,Un(t),s).call("allowance",[Un(e.address),Un(r)]),u=BigInt((a==null?void 0:a.toString())||"0"),h=Ve.cairo.uint256(BigInt(Ve.uint256.UINT_256_MAX));if(u<n){const d=await e.execute([{contractAddress:Un(t),entrypoint:"approve",calldata:[r,h.low,h.high]}]);return await s.waitForTransaction(d.transaction_hash,{retryInterval:3e3,successStates:[Ve.TransactionExecutionStatus.SUCCEEDED]}),re(d.transaction_hash)}return re("Allowance already approved")}catch(s){return D(`Failed to check or approve allowance: ${s instanceof Error?s.message:String(s)}`)}},pf=[{name:"HTLC",type:"impl",interface_name:"starknet_htlc::interface::IHTLC"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"starknet_htlc::interface::IHTLC",type:"interface",items:[{name:"token",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"initiate",type:"function",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_on_behalf",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_with_signature",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{name:"redeem",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"secret",type:"core::array::Array::<core::integer::u32>"}],outputs:[],state_mutability:"external"},{name:"refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"instant_refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"token",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starknet_htlc::interface::events::Initiated",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"amount",type:"core::integer::u256"}]},{kind:"struct",name:"starknet_htlc::interface::events::Redeemed",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"secret",type:"core::array::Array::<core::integer::u32>"}]},{kind:"struct",name:"starknet_htlc::interface::events::Refunded",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"}]},{kind:"enum",name:"starknet_htlc::htlc::HTLC::Event",type:"event",variants:[{kind:"nested",name:"Initiated",type:"starknet_htlc::interface::events::Initiated"},{kind:"nested",name:"Redeemed",type:"starknet_htlc::interface::events::Redeemed"},{kind:"nested",name:"Refunded",type:"starknet_htlc::interface::events::Refunded"}]}],xy={name:"HTLC",version:Ve.shortString.encodeShortString("1"),chainId:"0x534e5f5345504f4c4941",revision:Ve.TypedDataRevision.ACTIVE},Sy={StarknetDomain:[{name:"name",type:"shortstring"},{name:"version",type:"shortstring"},{name:"chainId",type:"shortstring"},{name:"revision",type:"shortstring"}],Initiate:[{name:"redeemer",type:"ContractAddress"},{name:"amount",type:"u256"},{name:"timelock",type:"u128"},{name:"secretHash",type:"u128*"}]},Ay="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class yf{constructor(t,r,n){this.nodeUrl=n||Ay,this.url=new q.Url("/",t),this.account=r}get htlcActorAddress(){if(!this.account.address)throw new Error("No account found");return this.account.address}async initiate(t){if(!this.account.address)return D("No account address");const{create_order:r,source_swap:n}=t,{redeemer:i,amount:s}=n;if(!s||!i||!r.secret_hash||!r.timelock)return D("Invalid order");try{const o=new Ve.Contract(pf,t.source_swap.asset,this.account),a=await(o==null?void 0:o.token()),u=Ve.num.toHex(a),h=await df(this.account,u,n.asset,BigInt(s),this.nodeUrl);if(h.error)return D(h.error);const d={domain:xy,primaryType:"Initiate",types:Sy,message:{redeemer:i,amount:Ve.cairo.uint256(s),timelock:r.timelock,secretHash:q.hexToU32Array(r.secret_hash)}},p=await this.account.signMessage(d),_=p[1],y=p[2],I=await kt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:r.create_id,signature:{r:_.toString(),s:y.toString()},perform_on:"Source"}),headers:{"Content-Type":"application/json"}});return I.error?D(I.error):I.result?re(I.result):D("Init: No result found")}catch(o){return D(String(o))}}async redeem(t,r){try{const n=await kt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:r,perform_on:"Destination"}),headers:{"Content-Type":"application/json"}});return n.error?D(n.error):n.result?re(n.result):D("Redeem: No result found")}catch(n){return D(String(n))}}async refund(){return D("Refund is taken care of by the relayer")}}class so extends q.EventBroker{constructor(t){if(super(),this.getOrderThreshold=20,this.refundSacpCache=new Map,this.bitcoinRedeemCache=new $l,typeof t.digestKey=="string"){const n=q.DigestKey.from(t.digestKey);if(n.error)throw new Error(n.error);this._digestKey=n.val}else this._digestKey=t.digestKey;this.environment=t.environment;const r=t.environment===q.Environment.MAINNET?Ir.mainnet:t.environment===q.Environment.TESTNET?Ir.testnet:Ir.localnet;if(!r)throw new Error("API not found, invalid environment "+t.environment);this._orderbookUrl=new q.Url(t.api??r.orderbook),this._quote=t.quote??new Ja(r.quote),this._auth=q.Siwe.fromDigestKey(new q.Url(t.api??r.orderbook),this._digestKey,t.siweOpts),this._orderbook=new ge.Orderbook(new q.Url(t.api??r.orderbook)),this._evmHTLC=t.htlc.evm,this._starknetHTLC=t.htlc.starknet,this._secretManager=t.secretManager??_n.fromDigestKey(this._digestKey.digestKey),this.orderExecutorCache=new Dl,this._blockNumberFetcher=t.blockNumberFetcher??new Xa(r.info,t.environment)}static from(t){let r;if(typeof t.digestKey=="string"){const s=q.DigestKey.from(t.digestKey);if(s.error)throw new Error(s.error);r=s.val}else r=t.digestKey;const n=t.environment===q.Environment.MAINNET?Ir.mainnet:t.environment===q.Environment.TESTNET?Ir.testnet:void 0;if(!n)throw new Error("API not found, invalid environment "+t.environment);const i={evm:t.wallets.evm?new lf(n.evmRelay,t.wallets.evm,q.Siwe.fromDigestKey(new q.Url(n.orderbook),r)):void 0,starknet:t.wallets.starknet?new yf(n.starknetRelay,t.wallets.starknet):void 0};return new so({environment:t.environment,digestKey:t.digestKey,htlc:i,siweOpts:t.siweOpts})}get orderbookUrl(){return this._orderbookUrl.toString()}get evmHTLC(){return this._evmHTLC}get starknetHTLC(){return this._starknetHTLC}get quote(){return this._quote}get btcWallet(){return this._btcWallet}get orderbook(){return this._orderbook}get blockNumberFetcher(){return this._blockNumberFetcher}get secretManager(){return this._secretManager}get auth(){return this._auth}get digestKey(){return this._digestKey}async initializeSMandBTCWallet(){if(this._secretManager.isInitialized&&this._btcWallet)return re(this._btcWallet);const t=await this._secretManager.getDigestKey();if(t.error)return D(t.error);const r=new Lr.BitcoinProvider(Bf(this.environment));return this._btcWallet=Lr.BitcoinWallet.fromPrivateKey(t.val,r),re(this._btcWallet)}async swap(t){const r=await this.validateAndFillParams(t);if(r.error)return D(r.error);const{sendAddress:n,receiveAddress:i,timelock:s}=r.val,o=Date.now().toString(),a=await this._secretManager.generateSecret(o);if(a.error)return D(a.error);const{strategyId:u,btcAddress:h}=t.additionalData,d={strategy_id:u,...h&&{bitcoin_optional_recipient:h}},p={source_chain:t.fromAsset.chain,destination_chain:t.toAsset.chain,source_asset:t.fromAsset.atomicSwapAddress,destination_asset:t.toAsset.atomicSwapAddress,initiator_source_address:n,initiator_destination_address:i,source_amount:t.sendAmount,destination_amount:t.receiveAmount,fee:"1",nonce:o,timelock:s,secret_hash:ir(a.val.secretHash),min_destination_confirmations:t.minDestinationConfirmations??0,additional_data:d},_=await this._quote.getAttestedQuote(p);if(_.error)return D(_.error);const y=await this._orderbook.createOrder(_.val,this.auth);if(y.error)return D(y.error);const I=await this.pollOrder(y.val);return I.error?D(I.error):re(I.val)}async validateAndFillParams(t){if(!t.additionalData.strategyId)return D("StrategyId is required");if(!t.fromAsset||!t.toAsset)return D("Source and destination assets are required for swap");if(t.fromAsset.chain===t.toAsset.chain&&t.fromAsset.atomicSwapAddress===t.toAsset.atomicSwapAddress)return D("Source and destination assets cannot be the same");if(ge.isMainnet(t.fromAsset.chain)&&!ge.isMainnet(t.toAsset.chain)||!ge.isMainnet(t.fromAsset.chain)&&ge.isMainnet(t.toAsset.chain))return D("Both assets should be on the same network (either mainnet or testnet)");const r=this.validateAmount(t.sendAmount);if(r.error)return D(r.error);const n=this.validateAmount(t.receiveAmount);if(n.error)return D(n.error);if(r<n)return D("Send amount should be greater than receive amount");const i=ge.getTimeLock(t.fromAsset.chain);if(!i)return D("Unsupported chain for timelock");if(ge.isBitcoin(t.fromAsset.chain)||ge.isBitcoin(t.toAsset.chain)){if(!t.additionalData.btcAddress)return D("btcAddress in additionalData is required if source or destination chain is bitcoin, it is used as refund or redeem address.");const a=await this.initializeSMandBTCWallet();if(a.error)return D(a.error);if(!this._btcWallet)return D("btcWallet is required for bitcoin chain. Please provide btcWallet in the constructor")}const s=await this.getAddresses(t.fromAsset.chain);if(s.error)return D(s.error);const o=await this.getAddresses(t.toAsset.chain);return o.error?D(o.error):re({sendAddress:s.val,receiveAddress:o.val,timelock:t.timelock??i})}async getAddresses(t){var n;switch(ge.getBlockchainType(t)){case ge.BlockchainType.EVM:return this._evmHTLC?re(this._evmHTLC.htlcActorAddress):D("Please provide evmHTLC when initializing garden");case ge.BlockchainType.Bitcoin:{const i=await((n=this._btcWallet)==null?void 0:n.getPublicKey());return!i||!kf(i)?D("Invalid btc public key"):re(rr(i))}case ge.BlockchainType.Starknet:return this._starknetHTLC?re(this._starknetHTLC.htlcActorAddress):D("Please provide starknetHTLC when initializing garden");default:return D("Unsupported chain")}}validateAmount(t){if(t==null||t.includes("."))return D("Invalid amount ",t);const r=new gf(t);return!r.isInteger()||r.isNaN()||r.lt(0)||r.isLessThanOrEqualTo(0)?D("Invalid amount ",t):re(r)}async pollOrder(t){let r=await this._orderbook.getOrder(t,!0),n=0;for(;n<this.getOrderThreshold;){if(await q.sleep(1e3),n++,r.error){if(!r.error.includes("result is undefined"))return D(r.error)}else if(r.val&&r.val.create_order.create_id.toLowerCase()===t.toLowerCase())return re(r.val);r=await this._orderbook.getOrder(t,!0)}return D(`Order not found, createOrder id: ${t}`)}async execute(t=5e3){return await this.initializeSMandBTCWallet(),await this._orderbook.subscribeOrders(this._digestKey.userId,!0,t,async r=>{if(r.data.length===0)return;const n=await this.filterExpiredAndAssignStatus(r.data);if(!n.error){this.emit("onPendingOrdersChanged",n.val);for(let i=0;i<n.val.length;i++){const s=n.val[i],o=Os(s.status);if(ge.isBitcoin(s.source_swap.chain)&&s.status===de.InitiateDetected){const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");continue}await this.postRefundSACP(s,a)}switch(o){case ke.Redeem:{const a=await this._secretManager.generateSecret(s.create_order.nonce);if(a.error){this.emit("error",s,a.error);return}switch(ge.getBlockchainType(s.destination_swap.chain)){case ge.BlockchainType.EVM:{await this.evmRedeem(s,a.val.secret);break}case ge.BlockchainType.Bitcoin:{const u=this.btcWallet;if(!u){this.emit("error",s,"BTC wallet not found");return}await this.btcRedeem(u,s,a.val.secret);break}case ge.BlockchainType.Starknet:{await this.starknetRedeem(s,a.val.secret);break}default:this.emit("error",s,"Unsupported chain: "+s.destination_swap.chain)}break}case ke.Refund:{switch(ge.getBlockchainType(s.source_swap.chain)){case ge.BlockchainType.EVM:{this.emit("error",s,"EVM refund is automatically done by relay service");break}case ge.BlockchainType.Bitcoin:{const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");return}await this.btcRefund(a,s);break}case ge.BlockchainType.Starknet:{this.emit("error",s,"Starknet refund is automatically done by relay service");break}default:this.emit("error",s,"Unsupported chain: "+s.source_swap.chain)}break}}}}},!0,{per_page:500})}async evmRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing evm redeem"),this.orderExecutorCache.get(t,ke.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._evmHTLC){this.emit("error",t,"EVMHTLC is required");return}const i=await this._evmHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,ke.Redeem,t.destination_swap.redeem_tx_hash);return}this.orderExecutorCache.set(t,ke.Redeem,i.val),this.emit("success",t,ke.Redeem,i.val)}async starknetRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing starknet redeem"),this.orderExecutorCache.get(t,ke.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._starknetHTLC){this.emit("error",t,"StarknetHTLC is required");return}const i=await this._starknetHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,ke.Redeem,t.destination_swap.redeem_tx_hash);return}i.val&&(this.orderExecutorCache.set(t,ke.Redeem,i.val),this.emit("success",t,ke.Redeem,i.val))}async btcRedeem(t,r,n){var a,u;const i=this.bitcoinRedeemCache.get(r.create_order.create_id),s=(a=r.destination_swap.initiate_tx_hash.split(",").at(-1))==null?void 0:a.split(":").at(0);if(!s){this.emit("error",r,"Failed to get initiate_tx_hash");return}let o=!1;if(i)if(i.redeemedFromUTXO&&i.redeemedFromUTXO!==s)o=!0,this.emit("log",r.create_order.create_id,"rbf btc redeem");else if(i.redeemedAt&&Date.now()-i.redeemedAt>1e3*60*15)this.emit("log",r.create_order.create_id,"redeem not confirmed in last 15 minutes"),o=!0;else{this.emit("log",r.create_order.create_id,"btcRedeem: already redeemed");return}else if(r.destination_swap.redeem_tx_hash&&!Number(r.destination_swap.redeem_block_number))try{const h=await(await t.getProvider()).getTransaction(r.destination_swap.redeem_tx_hash);let d=!1;for(const p of h.vin)if(p.txid===s){d=!0;break}if(d){this.emit("log",r.create_order.create_id,"already a valid redeem");let p=0;try{const[_]=await(await t.getProvider()).getTransactionTimes([r.destination_swap.redeem_tx_hash]);_!==0&&(p=_)}catch{p=Date.now()}this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:p,redeemTxHash:r.destination_swap.redeem_tx_hash});return}o=!0}catch(h){if(h.message.includes("Transaction not found"))o=!0;else{this.emit("error",r,"Failed to get redeem tx: "+h);return}}this.emit("log",r.create_order.create_id,"executing btc redeem");try{const d=await(await yn.from(t,Number(r.destination_swap.amount),r.create_order.secret_hash,rr(r.destination_swap.initiator),rr(r.destination_swap.redeemer),r.destination_swap.timelock,o?[s]:[])).getRedeemHex(ir(n),(u=r.create_order.additional_data)==null?void 0:u.bitcoin_optional_recipient),p=await this.broadcastRedeemTx(d,r.create_order.create_id);if(p.error||!p.val){this.emit("error",r,p.error||"Failed to broadcast redeem tx");return}o?(this.emit("log",r.create_order.create_id,"rbf: btc redeem success"),this.emit("rbf",r,p.val)):this.emit("success",r,ke.Redeem,p.val),this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:Date.now(),redeemTxHash:p.val})}catch(h){console.log("error",h),this.emit("error",r,"Failed btc redeem: "+h)}}async btcRefund(t,r){var n;if(!this.orderExecutorCache.get(r,ke.Refund)){this.emit("log",r.create_order.create_id,"executing btc refund");try{const s=await(await yn.from(t,Number(r.source_swap.amount),r.create_order.secret_hash,rr(r.source_swap.initiator),rr(r.source_swap.redeemer),r.source_swap.timelock)).refund((n=r.create_order.additional_data)==null?void 0:n.bitcoin_optional_recipient);this.orderExecutorCache.set(r,ke.Refund,s),this.emit("success",r,ke.Refund,s)}catch(i){this.emit("error",r,"Failed btc refund: "+i)}}}async postRefundSACP(t,r){const n=this.refundSacpCache.get(t.create_order.create_id);if((n==null?void 0:n.initTxHash)===t.source_swap.initiate_tx_hash)return;const i=await yn.from(r,Number(t.source_swap.amount),t.create_order.secret_hash,rr(t.source_swap.initiator),rr(t.source_swap.redeemer),t.source_swap.timelock),s=t.create_order.additional_data.bitcoin_optional_recipient;if(s)try{const o=await i.generateInstantRefundSACP(s),a=this._orderbookUrl.endpoint("orders/add-instant-refund-sacp");(await kt.post(a,{headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:t.create_order.create_id,instant_refund_tx_bytes:o})})).status==="Ok"&&this.refundSacpCache.set(t.create_order.create_id,{initTxHash:t.source_swap.initiate_tx_hash})}catch(o){this.emit("error",t,"Failed to generate and post SACP: "+o);return}}async filterExpiredAndAssignStatus(t){var i;if(t.length===0)return re([]);const r=await((i=this._blockNumberFetcher)==null?void 0:i.fetchBlockNumbers());if(r.error)return D(r.error);const n=[];for(let s=0;s<t.length;s++){const o=t[s];if(va(o))continue;const a=o.source_swap.chain,u=o.destination_swap.chain,h=r==null?void 0:r.val[a],d=r==null?void 0:r.val[u];if(!h||!d){this.emit("error",o,"Error while fetching CurrentBlockNumbers");continue}const p=Ps(o,h,d);n.push({...o,status:p})}return re(n)}async broadcastRedeemTx(t,r){try{const n=this._orderbookUrl.endpoint("gasless/order/bitcoin/redeem"),i=await this._auth.getAuthHeaders(),o=await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...i.val},body:JSON.stringify({redeem_tx_bytes:t,order_id:r})})).json();return o.status==="Ok"&&o.result?re(o.result):D(o.error)}catch(n){return D("Failed to broadcast redeem tx: "+n)}}}const ky="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class Ty{constructor(t,r){this.callData=new Ve.CallData(hf),this.nodeUrl=r||ky,this.account=t}get htlcActorAddress(){return this.account.address}async getHTLCContract(t,r=!1){const n=r?t.destination_swap.asset:t.source_swap.asset;return new Ve.Contract(pf,n,this.account)}async initiate(t){try{const n=await(await this.getHTLCContract(t)).token();if(!n)throw new Error("Token address retrieval failed");const i=Ve.num.toHex(n),s=Ve.cairo.uint256(BigInt(t.source_swap.amount));try{const a=await df(this.account,i,t.source_swap.asset,BigInt(t.source_swap.amount),this.nodeUrl);if(a.error)return D(a.error)}catch(a){return D(`Allowance check failed: ${a}`)}const o=await this.account.execute({contractAddress:t.source_swap.asset,entrypoint:"initiate",calldata:[t.source_swap.redeemer,BigInt(t.source_swap.timelock),s.low,s.high,...q.hexToU32Array(t.create_order.secret_hash)]});if(!o.transaction_hash)throw new Error("Failed to initiate HTLC transaction");return re(o.transaction_hash)}catch(r){return D(`HTLC Initiation Error: ${r}`)}}async redeem(t,r){try{const n=await this.getHTLCContract(t,!0),i=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,s=await this.account.execute({contractAddress:n.address,entrypoint:"redeem",calldata:Ve.CallData.compile({swap_id:i,secret:q.hexToU32Array(r)})});return s.transaction_hash?re(s.transaction_hash):D("Failed to redeem HTLC transaction")}catch{return D("HTLC Redeem Error")}}async refund(t){try{const r=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,n=await this.getHTLCContract(t),i=await this.account.execute({contractAddress:n.address,entrypoint:"refund",calldata:{orderId:r}});return i.transaction_hash?re(i.transaction_hash):D("Failed to refund HTLC transaction")}catch{return D("HTLC Refund Error")}}}exports.API=Ir;exports.BlockNumberFetcher=Xa;exports.EvmRelay=lf;exports.Garden=so;exports.OrderActions=ke;exports.OrderStatus=de;exports.ParseOrderStatus=Ps;exports.ParseSwapStatus=ms;exports.Quote=Ja;exports.SecretManager=_n;exports.StarknetHTLC=Ty;exports.StarknetRelay=yf;exports.SwapStatus=we;exports.constructOrderPair=_a;exports.evmToViemChainMap=ff;exports.filterDeadlineExpiredOrders=Pf;exports.hyperliquidTestnet=cf;exports.isExpired=mn;exports.parseAction=If;exports.parseActionFromStatus=Os;exports.switchOrAddNetwork=uf;exports.validateBTCAddress=Tf;
|
package/dist/index.js
CHANGED
|
@@ -6136,7 +6136,7 @@ const Jr = {
|
|
|
6136
6136
|
orderbook: "https://orderbookv2.garden.finance",
|
|
6137
6137
|
quote: "https://pricev2.garden.finance",
|
|
6138
6138
|
info: "https://infov2.garden.finance",
|
|
6139
|
-
evmRelay: "",
|
|
6139
|
+
evmRelay: "https://orderbookv2.garden.finance",
|
|
6140
6140
|
starknetRelay: ""
|
|
6141
6141
|
},
|
|
6142
6142
|
testnet: {
|
|
@@ -13359,9 +13359,7 @@ class Jy {
|
|
|
13359
13359
|
timelock: r.timelock,
|
|
13360
13360
|
secretHash: ws(r.secret_hash)
|
|
13361
13361
|
}
|
|
13362
|
-
}, p = await this.account.signMessage(
|
|
13363
|
-
d
|
|
13364
|
-
), { r: _, s: y } = p, I = await St.post(
|
|
13362
|
+
}, p = await this.account.signMessage(d), _ = p[1], y = p[2], I = await St.post(
|
|
13365
13363
|
this.url.endpoint("initiate"),
|
|
13366
13364
|
{
|
|
13367
13365
|
body: JSON.stringify({
|
|
@@ -3,7 +3,7 @@ export declare const API: {
|
|
|
3
3
|
readonly orderbook: "https://orderbookv2.garden.finance";
|
|
4
4
|
readonly quote: "https://pricev2.garden.finance";
|
|
5
5
|
readonly info: "https://infov2.garden.finance";
|
|
6
|
-
readonly evmRelay: "";
|
|
6
|
+
readonly evmRelay: "https://orderbookv2.garden.finance";
|
|
7
7
|
readonly starknetRelay: "";
|
|
8
8
|
};
|
|
9
9
|
readonly testnet: {
|
|
@@ -9,7 +9,7 @@ import { IBlockNumberFetcher } from '../blockNumberFetcher/blockNumber';
|
|
|
9
9
|
import { IEVMHTLC } from '../evm/htlc.types';
|
|
10
10
|
import { WalletClient } from 'viem';
|
|
11
11
|
import { IStarknetHTLC } from '../starknet/starknetHTLC.types';
|
|
12
|
-
import {
|
|
12
|
+
import { AccountInterface } from 'starknet';
|
|
13
13
|
|
|
14
14
|
export declare class Garden extends EventBroker<GardenEvents> implements IGardenJS {
|
|
15
15
|
private environment;
|
|
@@ -34,7 +34,7 @@ export declare class Garden extends EventBroker<GardenEvents> implements IGarden
|
|
|
34
34
|
siweOpts?: SiweOpts;
|
|
35
35
|
wallets: {
|
|
36
36
|
evm?: WalletClient;
|
|
37
|
-
starknet?:
|
|
37
|
+
starknet?: AccountInterface;
|
|
38
38
|
};
|
|
39
39
|
}): Garden;
|
|
40
40
|
get orderbookUrl(): string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AccountInterface } from 'starknet';
|
|
2
2
|
import { AsyncResult } from '@catalogfi/utils';
|
|
3
3
|
|
|
4
|
-
export declare const checkAllowanceAndApprove: (account:
|
|
4
|
+
export declare const checkAllowanceAndApprove: (account: AccountInterface, tokenAddress: string, htlcAddress: string, amount: bigint, nodeUrl: string) => AsyncResult<string, string>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AccountInterface } from 'starknet';
|
|
2
2
|
import { MatchedOrder } from '@gardenfi/orderbook';
|
|
3
3
|
import { AsyncResult } from '@catalogfi/utils';
|
|
4
4
|
import { Url } from '@gardenfi/utils';
|
|
@@ -8,7 +8,7 @@ export declare class StarknetRelay implements IStarknetHTLC {
|
|
|
8
8
|
private url;
|
|
9
9
|
private nodeUrl;
|
|
10
10
|
private account;
|
|
11
|
-
constructor(relayerUrl: string | Url, account:
|
|
11
|
+
constructor(relayerUrl: string | Url, account: AccountInterface, nodeUrl?: string);
|
|
12
12
|
get htlcActorAddress(): string;
|
|
13
13
|
initiate(order: MatchedOrder): AsyncResult<string, string>;
|
|
14
14
|
redeem(order: MatchedOrder, secret: string): AsyncResult<string, string>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gardenfi/core",
|
|
3
|
-
"version": "2.0.25-beta.
|
|
3
|
+
"version": "2.0.25-beta.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "vite build",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@catalogfi/wallets": "^0.2.59",
|
|
30
|
-
"@gardenfi/orderbook": "2.0.9-beta.
|
|
31
|
-
"@gardenfi/utils": "2.0.6-beta.
|
|
30
|
+
"@gardenfi/orderbook": "2.0.9-beta.13",
|
|
31
|
+
"@gardenfi/utils": "2.0.6-beta.9",
|
|
32
32
|
"bignumber.js": "^9.1.2",
|
|
33
33
|
"bitcoinjs-lib": "^6.1.6",
|
|
34
34
|
"starknet": "6.23.1",
|