@gardenfi/core 0.2.0-beta.43 → 0.2.0-beta.44

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
@@ -1,7 +1,7 @@
1
1
  "use strict";var Ls=Object.defineProperty;var Os=(e,t,r)=>t in e?Ls(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var pt=(e,t,r)=>Os(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("@catalogfi/utils"),J=require("@gardenfi/orderbook"),_e=require("@gardenfi/utils"),He=require("viem"),Fs=require("varuint-bitcoin"),Us=require("tiny-secp256k1"),Bn=require("@catalogfi/wallets"),bi=require("bitcoinjs-lib"),Ms=require("bignumber.js");function an(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Sn=an(Fs),_t=an(Us),be=an(bi);var Yr=(e=>(e[e.evm=14400]="evm",e[e.btc=288]="btc",e))(Yr||{}),ye=(e=>(e.Idle="Idle",e.Initiate="Initiate",e.Redeem="Redeem",e.Refund="Refund",e))(ye||{});function Gt(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const yi="2.21.30";let kt={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${yi}`};class Q extends Error{constructor(t,r={}){var f;const n=(()=>{var l;return r.cause instanceof Q?r.cause.details:(l=r.cause)!=null&&l.message?r.cause.message:r.details})(),i=r.cause instanceof Q&&r.cause.docsPath||r.docsPath,a=(f=kt.getDocsUrl)==null?void 0:f.call(kt,{...r,docsPath:i}),u=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...a?[`Docs: ${a}`]:[],...n?[`Details: ${n}`]:[],...kt.version?[`Version: ${kt.version}`]:[]].join(`
2
2
  `);super(u,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=yi}walk(t){return gi(this,t)}}function gi(e,t){return t!=null&&t(e)?e:e&&typeof e=="object"&&"cause"in e?gi(e.cause,t):t?null:e}class Ns extends Q{constructor({max:t,min:r,signed:n,size:i,value:a}){super(`Number "${a}" is not in safe ${i?`${i*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}}class Ds extends Q{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function qt(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function xt(e){return qt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function sr(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 $s extends Q{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 mi extends Q{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 St(e,{dir:t,size:r=32}={}){return typeof e=="string"?Hs(e,{dir:t,size:r}):zs(e,{dir:t,size:r})}function Hs(e,{dir:t,size:r=32}={}){if(r===null)return e;const n=e.replace("0x","");if(n.length>r*2)throw new mi({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function zs(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new mi({size:e.length,targetSize:r,type:"bytes"});const n=new Uint8Array(r);for(let i=0;i<r;i++){const a=t==="right";n[a?i:r-i-1]=e[a?i:e.length-i-1]}return n}const js=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function q(e,t={}){return typeof e=="number"||typeof e=="bigint"?wi(e,t):typeof e=="string"?Ws(e,t):typeof e=="boolean"?Gs(e,t):Ze(e,t)}function Gs(e,t={}){const r=`0x${Number(e)}`;return typeof t.size=="number"?(It(r,{size:t.size}),St(r,{size:t.size})):r}function Ze(e,t={}){let r="";for(let i=0;i<e.length;i++)r+=js[e[i]];const n=`0x${r}`;return typeof t.size=="number"?(It(n,{size:t.size}),St(n,{dir:"right",size:t.size})):n}function wi(e,t={}){const{signed:r,size:n}=t,i=BigInt(e);let a;n?r?a=(1n<<BigInt(n)*8n-1n)-1n:a=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(a=BigInt(Number.MAX_SAFE_INTEGER));const u=typeof a=="bigint"&&r?-a-1n:0;if(a&&i>a||i<u){const l=typeof e=="bigint"?"n":"";throw new Ns({max:a?`${a}${l}`:void 0,min:`${u}${l}`,signed:r,size:n,value:`${e}${l}`})}const f=`0x${(r&&i<0?(1n<<BigInt(n*8))+BigInt(i):i).toString(16)}`;return n?St(f,{size:n}):f}const qs=new TextEncoder;function Ws(e,t={}){const r=qs.encode(e);return Ze(r,t)}const Vs=new TextEncoder;function _i(e,t={}){return typeof e=="number"||typeof e=="bigint"?Ys(e,t):typeof e=="boolean"?Ks(e,t):qt(e)?st(e,t):xi(e,t)}function Ks(e,t={}){const r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(It(r,{size:t.size}),St(r,{size:t.size})):r}const Ne={zero:48,nine:57,A:65,F:70,a:97,f:102};function In(e){if(e>=Ne.zero&&e<=Ne.nine)return e-Ne.zero;if(e>=Ne.A&&e<=Ne.F)return e-(Ne.A-10);if(e>=Ne.a&&e<=Ne.f)return e-(Ne.a-10)}function st(e,t={}){let r=e;t.size&&(It(r,{size:t.size}),r=St(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);const i=n.length/2,a=new Uint8Array(i);for(let u=0,f=0;u<i;u++){const l=In(n.charCodeAt(f++)),y=In(n.charCodeAt(f++));if(l===void 0||y===void 0)throw new Q(`Invalid byte sequence ("${n[f-2]}${n[f-1]}" in "${n}").`);a[u]=l*16+y}return a}function Ys(e,t){const r=wi(e,t);return st(r)}function xi(e,t={}){const r=Vs.encode(e);return typeof t.size=="number"?(It(r,{size:t.size}),St(r,{dir:"right",size:t.size})):r}function It(e,{size:t}){if(xt(e)>t)throw new Ds({givenSize:xt(e),maxSize:t})}function gt(e,t={}){const{signed:r}=t;t.size&&It(e,{size:t.size});const n=BigInt(e);if(!r)return n;const i=(e.length-2)/2,a=(1n<<BigInt(i)*8n-1n)-1n;return n<=a?n:n-BigInt(`0x${"f".padStart(i*2,"f")}`)-1n}function or(e,t={}){return Number(gt(e,t))}function fn(e,t){return({exclude:r,format:n})=>({exclude:r,format:i=>{const a=t(i);if(r)for(const u of r)delete a[u];return{...a,...n(i)}},type:e})}const vi={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function un(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?or(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?or(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?vi[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=Xs(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 Js=fn("transaction",un);function Xs(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 Qs(e){var r;const t=(r=e.transactions)==null?void 0:r.map(n=>typeof n=="string"?n:un(n));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 Zs=fn("block",Qs);function eo(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 to={"0x0":"reverted","0x1":"success"};function ro(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=>eo(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?or(e.transactionIndex):null,status:e.status?to[e.status]:null,type:e.type?vi[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const no=fn("transactionReceipt",ro),cn=2n**256n-1n;function Wt(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}class An extends Q{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class io extends Q{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class so extends Q{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const oo={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 so({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new io({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new An({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 An({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 Ei(e,{recursiveReadLimit:t=8192}={}){const r=Object.create(oo);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}function ot(e,t="hex"){const r=Bi(e),n=Ei(new Uint8Array(r.length));return r.encode(n),t==="hex"?Ze(n.bytes):n.bytes}function Bi(e){return Array.isArray(e)?ao(e.map(t=>Bi(t))):fo(e)}function ao(e){const t=e.reduce((i,a)=>i+a.length,0),r=Si(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:a}of e)a(i)}}}function fo(e){const t=typeof e=="string"?st(e):e,r=Si(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 Si(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 Q("Length is too large.")}const uo={ether:-9,wei:9};function co(e,t){let r=e.toString();const n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[i,a]=[r.slice(0,r.length-t),r.slice(r.length-t)];return a=a.replace(/(0+)$/,""),`${n?"-":""}${i||"0"}${a?`.${a}`:""}`}function Jr(e,t="wei"){return co(e,uo[t])}function lo(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(`
3
3
  `)}class ho extends Q{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class po extends Q{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",lo(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 bo extends Q{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 Ii(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(a=>st(a)):e.blobs,i=[];for(const a of n)i.push(Uint8Array.from(t.blobToKzgCommitment(a)));return r==="bytes"?i:i.map(a=>Ze(a))}function Ai(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(u=>st(u)):e.blobs,i=typeof e.commitments[0]=="string"?e.commitments.map(u=>st(u)):e.commitments,a=[];for(let u=0;u<n.length;u++){const f=n[u],l=i[u];a.push(Uint8Array.from(t.computeBlobKzgProof(f,l)))}return r==="bytes"?a:a.map(u=>Ze(u))}function Rn(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function yo(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function ln(e,...t){if(!yo(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${e.length}`)}function ar(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 Ri(e,t){ln(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) */const go=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),Pr=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Oe=(e,t)=>e<<32-t|e>>>t,Tn=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,mo=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;function Pn(e){for(let t=0;t<e.length;t++)e[t]=mo(e[t])}function wo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function hn(e){return typeof e=="string"&&(e=wo(e)),ln(e),e}let Ti=class{clone(){return this._cloneInto()}};function Pi(e){const t=n=>e().update(hn(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function _o(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const i=BigInt(32),a=BigInt(4294967295),u=Number(r>>i&a),f=Number(r&a),l=n?4:0,y=n?0:4;e.setUint32(t+l,u,n),e.setUint32(t+y,f,n)}const xo=(e,t,r)=>e&t^~e&r,vo=(e,t,r)=>e&t^e&r^t&r;class Eo extends Ti{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=Pr(this.buffer)}update(t){ar(this);const{view:r,buffer:n,blockLen:i}=this;t=hn(t);const a=t.length;for(let u=0;u<a;){const f=Math.min(i-this.pos,a-u);if(f===i){const l=Pr(t);for(;i<=a-u;u+=i)this.process(l,u);continue}n.set(t.subarray(u,u+f),this.pos),this.pos+=f,u+=f,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){ar(this),Ri(t,this),this.finished=!0;const{buffer:r,view:n,blockLen:i,isLE:a}=this;let{pos:u}=this;r[u++]=128,this.buffer.subarray(u).fill(0),this.padOffset>i-u&&(this.process(n,0),u=0);for(let m=u;m<i;m++)r[m]=0;_o(n,i-8,BigInt(this.length*8),a),this.process(n,0);const f=Pr(t),l=this.outputLen;if(l%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const y=l/4,g=this.get();if(y>g.length)throw new Error("_sha2: outputLen bigger than state");for(let m=0;m<y;m++)f.setUint32(4*m,g[m],a)}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:a,destroyed:u,pos:f}=this;return t.length=i,t.pos=f,t.finished=a,t.destroyed=u,i%r&&t.buffer.set(n),t}}const Bo=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]),Ye=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Je=new Uint32Array(64);class So extends Eo{constructor(){super(64,32,8,!1),this.A=Ye[0]|0,this.B=Ye[1]|0,this.C=Ye[2]|0,this.D=Ye[3]|0,this.E=Ye[4]|0,this.F=Ye[5]|0,this.G=Ye[6]|0,this.H=Ye[7]|0}get(){const{A:t,B:r,C:n,D:i,E:a,F:u,G:f,H:l}=this;return[t,r,n,i,a,u,f,l]}set(t,r,n,i,a,u,f,l){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=a|0,this.F=u|0,this.G=f|0,this.H=l|0}process(t,r){for(let m=0;m<16;m++,r+=4)Je[m]=t.getUint32(r,!1);for(let m=16;m<64;m++){const B=Je[m-15],I=Je[m-2],S=Oe(B,7)^Oe(B,18)^B>>>3,P=Oe(I,17)^Oe(I,19)^I>>>10;Je[m]=P+Je[m-7]+S+Je[m-16]|0}let{A:n,B:i,C:a,D:u,E:f,F:l,G:y,H:g}=this;for(let m=0;m<64;m++){const B=Oe(f,6)^Oe(f,11)^Oe(f,25),I=g+B+xo(f,l,y)+Bo[m]+Je[m]|0,P=(Oe(n,2)^Oe(n,13)^Oe(n,22))+vo(n,i,a)|0;g=y,y=l,l=f,f=u+I|0,u=a,a=i,i=n,n=I+P|0}n=n+this.A|0,i=i+this.B|0,a=a+this.C|0,u=u+this.D|0,f=f+this.E|0,l=l+this.F|0,y=y+this.G|0,g=g+this.H|0,this.set(n,i,a,u,f,l,y,g)}roundClean(){Je.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Io=Pi(()=>new So);function Ao(e,t){return Io(qt(e,{strict:!1})?_i(e):e)}function Ro(e){const{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),i=Ao(t);return i.set([r],0),n==="bytes"?i:Ze(i)}function To(e){const{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),i=[];for(const a of t)i.push(Ro({commitment:a,to:n,version:r}));return i}const kn=6,ki=32,dn=4096,Ci=ki*dn,Cn=Ci*kn-1-1*dn*kn,Li=1;class Po extends Q{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class Oi extends Q{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class ko extends Q{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class Co extends Q{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${Li}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function Lo(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?st(e.data):e.data,n=xt(r);if(!n)throw new Oi;if(n>Cn)throw new Po({maxSize:Cn,size:n});const i=[];let a=!0,u=0;for(;a;){const f=Ei(new Uint8Array(Ci));let l=0;for(;l<dn;){const y=r.slice(u,u+(ki-1));if(f.pushByte(0),f.pushBytes(y),y.length<31){f.pushByte(128),a=!1;break}l++,u+=31}i.push(f)}return t==="bytes"?i.map(f=>f.bytes):i.map(f=>Ze(f.bytes))}function Oo(e){const{data:t,kzg:r,to:n}=e,i=e.blobs??Lo({data:t,to:n}),a=e.commitments??Ii({blobs:i,kzg:r,to:n}),u=e.proofs??Ai({blobs:i,commitments:a,kzg:r,to:n}),f=[];for(let l=0;l<i.length;l++)f.push({blob:i[l],commitment:a[l],proof:u[l]});return f}function Fo(e){if(!e||e.length===0)return[];const t=[];for(const r of e){const{contractAddress:n,chainId:i,nonce:a,...u}=r;t.push([q(i),n,a?q(a):"0x",...Vt({},u)])}return t}class at extends Q{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 br extends Q{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class yr extends Q{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${Jr(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(yr,"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 Fi extends Q{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${Jr(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${Jr(n)} gwei`:""}).`].join(`
4
- `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Fi,"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 Ui 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 er=BigInt(2**32-1),Ln=BigInt(32);function Uo(e,t=!1){return t?{h:Number(e&er),l:Number(e>>Ln&er)}:{h:Number(e>>Ln&er)|0,l:Number(e&er)|0}}function Mo(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:a,l:u}=Uo(e[i],t);[r[i],n[i]]=[a,u]}return[r,n]}const No=(e,t,r)=>e<<r|t>>>32-r,Do=(e,t,r)=>t<<r|e>>>32-r,$o=(e,t,r)=>t<<r-32|e>>>64-r,Ho=(e,t,r)=>e<<r-32|t>>>64-r,Mi=[],Ni=[],Di=[],zo=BigInt(0),Ct=BigInt(1),jo=BigInt(2),Go=BigInt(7),qo=BigInt(256),Wo=BigInt(113);for(let e=0,t=Ct,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Mi.push(2*(5*n+r)),Ni.push((e+1)*(e+2)/2%64);let i=zo;for(let a=0;a<7;a++)t=(t<<Ct^(t>>Go)*Wo)%qo,t&jo&&(i^=Ct<<(Ct<<BigInt(a))-Ct);Di.push(i)}const[Vo,Ko]=Mo(Di,!0),On=(e,t,r)=>r>32?$o(e,t,r):No(e,t,r),Fn=(e,t,r)=>r>32?Ho(e,t,r):Do(e,t,r);function Yo(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let u=0;u<10;u++)r[u]=e[u]^e[u+10]^e[u+20]^e[u+30]^e[u+40];for(let u=0;u<10;u+=2){const f=(u+8)%10,l=(u+2)%10,y=r[l],g=r[l+1],m=On(y,g,1)^r[f],B=Fn(y,g,1)^r[f+1];for(let I=0;I<50;I+=10)e[u+I]^=m,e[u+I+1]^=B}let i=e[2],a=e[3];for(let u=0;u<24;u++){const f=Ni[u],l=On(i,a,f),y=Fn(i,a,f),g=Mi[u];i=e[g],a=e[g+1],e[g]=l,e[g+1]=y}for(let u=0;u<50;u+=10){for(let f=0;f<10;f++)r[f]=e[u+f];for(let f=0;f<10;f++)e[u+f]^=~r[(f+2)%10]&r[(f+4)%10]}e[0]^=Vo[n],e[1]^=Ko[n]}r.fill(0)}class pn extends Ti{constructor(t,r,n,i=!1,a=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Rn(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=go(this.state)}keccak(){Tn||Pn(this.state32),Yo(this.state32,this.rounds),Tn||Pn(this.state32),this.posOut=0,this.pos=0}update(t){ar(this);const{blockLen:r,state:n}=this;t=hn(t);const i=t.length;for(let a=0;a<i;){const u=Math.min(r-this.pos,i-a);for(let f=0;f<u;f++)n[this.pos++]^=t[a++];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){ar(this,!1),ln(t),this.finish();const r=this.state,{blockLen:n}=this;for(let i=0,a=t.length;i<a;){this.posOut>=n&&this.keccak();const u=Math.min(n-this.posOut,a-i);t.set(r.subarray(this.posOut,this.posOut+u),i),this.posOut+=u,i+=u}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Rn(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Ri(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:a,enableXOF:u}=this;return t||(t=new pn(r,n,i,u,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=n,t.outputLen=i,t.enableXOF=u,t.destroyed=this.destroyed,t}}const Jo=(e,t,r)=>Pi(()=>new pn(t,e,r)),Xo=Jo(1,136,256/8);function Qo(e,t){return Xo(qt(e,{strict:!1})?_i(e):e)}const kr=new Ui(8192);function Zo(e,t){if(kr.has(`${e}.${t}`))return kr.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),n=Qo(xi(r)),i=r.split("");for(let u=0;u<40;u+=2)n[u>>1]>>4>=8&&i[u]&&(i[u]=i[u].toUpperCase()),(n[u>>1]&15)>=8&&i[u+1]&&(i[u+1]=i[u+1].toUpperCase());const a=`0x${i.join("")}`;return kr.set(`${e}.${t}`,a),a}const ea=/^0x[a-fA-F0-9]{40}$/,Cr=new Ui(8192);function ft(e,t){const{strict:r=!0}=t??{},n=`${e}.${r}`;if(Cr.has(n))return Cr.get(n);const i=ea.test(e)?e.toLowerCase()===e?!0:r?Zo(e)===e:!0:!1;return Cr.set(n,i),i}function ta(e,t,r,{strict:n}={}){return qt(e,{strict:!1})?na(e,t,r,{strict:n}):ra(e,t,r,{strict:n})}function $i(e,t,r){if(xt(e)!==r-t)throw new $s({offset:r,position:"end",size:xt(e)})}function ra(e,t,r,{strict:n}={}){const i=e.slice(t,r);return n&&$i(i,t,r),i}function na(e,t,r,{strict:n}={}){const i=`0x${e.replace("0x","").slice(t*2,r*2)}`;return n&&$i(i,t,r),i}function ia(e){const{authorizationList:t}=e;if(t)for(const r of t){const{contractAddress:n,chainId:i}=r;if(!ft(n))throw new at({address:n});if(i<=0)throw new br({chainId:i})}bn(e)}function sa(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Oi;for(const r of t){const n=xt(r),i=or(ta(r,0,1));if(n!==32)throw new ko({hash:r,size:n});if(i!==Li)throw new Co({hash:r,version:i})}}bn(e)}function bn(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:i}=e;if(t<=0)throw new br({chainId:t});if(i&&!ft(i))throw new at({address:i});if(n&&n>cn)throw new yr({maxFeePerGas:n});if(r&&n&&r>n)throw new Fi({maxFeePerGas:n,maxPriorityFeePerGas:r})}function oa(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:a}=e;if(t<=0)throw new br({chainId:t});if(a&&!ft(a))throw new at({address:a});if(r||i)throw new Q("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>cn)throw new yr({maxFeePerGas:n})}function aa(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:a}=e;if(a&&!ft(a))throw new at({address:a});if(typeof t<"u"&&t<=0)throw new br({chainId:t});if(r||i)throw new Q("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>cn)throw new yr({maxFeePerGas:n})}function fa(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 po({transaction:e})}function gr(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 a=0;a<i.length;a++)if(i[a].length-2!==64)throw new bo({storageKey:i[a]});if(!ft(n,{strict:!1}))throw new at({address:n});t.push([n,i])}return t}function ua(e,t){const r=fa(e);return r==="eip1559"?ha(e,t):r==="eip2930"?da(e,t):r==="eip4844"?la(e,t):r==="eip7702"?ca(e,t):pa(e,t)}function ca(e,t){const{authorizationList:r,chainId:n,gas:i,nonce:a,to:u,value:f,maxFeePerGas:l,maxPriorityFeePerGas:y,accessList:g,data:m}=e;ia(e);const B=gr(g),I=Fo(r);return Wt(["0x04",ot([q(n),a?q(a):"0x",y?q(y):"0x",l?q(l):"0x",i?q(i):"0x",u??"0x",f?q(f):"0x",m??"0x",B,I,...Vt(e,t)])])}function la(e,t){const{chainId:r,gas:n,nonce:i,to:a,value:u,maxFeePerBlobGas:f,maxFeePerGas:l,maxPriorityFeePerGas:y,accessList:g,data:m}=e;sa(e);let B=e.blobVersionedHashes,I=e.sidecars;if(e.blobs&&(typeof B>"u"||typeof I>"u")){const O=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(E=>Ze(E)),C=e.kzg,U=Ii({blobs:O,kzg:C});if(typeof B>"u"&&(B=To({commitments:U})),typeof I>"u"){const E=Ai({blobs:O,commitments:U,kzg:C});I=Oo({blobs:O,commitments:U,proofs:E})}}const S=gr(g),P=[q(r),i?q(i):"0x",y?q(y):"0x",l?q(l):"0x",n?q(n):"0x",a??"0x",u?q(u):"0x",m??"0x",S,f?q(f):"0x",B??[],...Vt(e,t)],T=[],k=[],F=[];if(I)for(let O=0;O<I.length;O++){const{blob:C,commitment:U,proof:E}=I[O];T.push(C),k.push(U),F.push(E)}return Wt(["0x03",ot(I?[P,T,k,F]:P)])}function ha(e,t){const{chainId:r,gas:n,nonce:i,to:a,value:u,maxFeePerGas:f,maxPriorityFeePerGas:l,accessList:y,data:g}=e;bn(e);const m=gr(y),B=[q(r),i?q(i):"0x",l?q(l):"0x",f?q(f):"0x",n?q(n):"0x",a??"0x",u?q(u):"0x",g??"0x",m,...Vt(e,t)];return Wt(["0x02",ot(B)])}function da(e,t){const{chainId:r,gas:n,data:i,nonce:a,to:u,value:f,accessList:l,gasPrice:y}=e;oa(e);const g=gr(l),m=[q(r),a?q(a):"0x",y?q(y):"0x",n?q(n):"0x",u??"0x",f?q(f):"0x",i??"0x",g,...Vt(e,t)];return Wt(["0x01",ot(m)])}function pa(e,t){const{chainId:r=0,gas:n,data:i,nonce:a,to:u,value:f,gasPrice:l}=e;aa(e);let y=[a?q(a):"0x",l?q(l):"0x",n?q(n):"0x",u??"0x",f?q(f):"0x",i??"0x"];if(t){const g=(()=>{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 I=27n+(t.v===27n?0n:1n);if(t.v!==I)throw new ho({v:t.v});return I})(),m=sr(t.r),B=sr(t.s);y=[...y,q(g),m==="0x00"?"0x":m,B==="0x00"?"0x":B]}else r>0&&(y=[...y,q(r),"0x","0x"]);return ot(y)}function Vt(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 a=sr(r.r),u=sr(r.s);return[typeof i=="number"?i?q(1):"0x":n===0n?"0x":n===1n?q(1):n===27n?"0x":q(1),a==="0x00"?"0x":a,u==="0x00"?"0x":u]}const ba={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},ya={block:Zs({format(e){var r;return{transactions:(r=e.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const i=un(n);return i.typeHex==="0x7e"&&(i.isSystemTx=n.isSystemTx,i.mint=n.mint?gt(n.mint):void 0,i.sourceHash=n.sourceHash,i.type="deposit"),i}),stateRoot:e.stateRoot}}}),transaction:Js({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?gt(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:no({format(e){return{l1GasPrice:e.l1GasPrice?gt(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?gt(e.l1GasUsed):null,l1Fee:e.l1Fee?gt(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function ga(e,t){return _a(e)?wa(e):ua(e,t)}const ma={transaction:ga};function wa(e){xa(e);const{sourceHash:t,data:r,from:n,gas:i,isSystemTx:a,mint:u,to:f,value:l}=e,y=[t,n,f??"0x",u?q(u):"0x",l?q(l):"0x",i?q(i):"0x",a?"0x1":"0x",r??"0x"];return Wt(["0x7e",ot(y)])}function _a(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function xa(e){const{from:t,to:r}=e;if(t&&!ft(t))throw new at({address:t});if(r&&!ft(r))throw new at({address:r})}const Un={contracts:ba,formatters:ya,serializers:ma},va=Gt({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}}}),Ea=Gt({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}),Lt=11155111,Ba=Gt({...Un,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:{...Un.contracts,disputeGameFactory:{[Lt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[Lt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[Lt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[Lt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:Lt}),Sa=Gt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://cloudflare-eth.com"]}},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}}}),Ia=Gt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc2.sepolia.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});function Xr(e){return typeof e=="string"&&(e=Buffer.from(e,"hex")),e.length===32?e:e.subarray(1,33)}function bt(e,t){if(!e)throw new Error(t)}function Aa(e){return Buffer.concat([Uint8Array.from([192]),Ra(e)])}function Ra(e){const t=Sn.encodingLength(e.length),r=Buffer.allocUnsafe(t);return Sn.encode(e.length,r),Buffer.concat([r,e])}function Ta(e,t){if(e.compare(t)>0){const r=e;e=t,t=r}return[e,t]}const Ot=e=>e.length===64?e:e.slice(2),Pa=e=>{if(!e)return!1;try{const t=Buffer.from(e,"hex");return _t.isPoint(t)}catch{return!1}},ka={ethereum:Sa,ethereum_arbitrum:va,ethereum_sepolia:Ia,arbitrum_sepolia:Ea,ethereum_localnet:J.EthereumLocalnet,arbitrum_localnet:J.ArbitrumLocalnet,base_sepolia:Ba},Ca=async(e,t)=>{var n;const r=ka[e];if(r)try{if(r.id===((n=t.chain)==null?void 0:n.id))return L.Ok({message:"Already on the network",walletClient:t});await t.switchChain({id:r.id});const i=He.createWalletClient({account:t.account,chain:r,transport:He.custom(window.ethereum)});return L.Ok({message:"Switched chain",walletClient:i})}catch(i){if(La(i))try{await t.addChain({chain:r});const a=He.createWalletClient({account:t.account,chain:r,transport:He.custom(window.ethereum)});return L.Ok({message:"Added network",walletClient:a})}catch{return L.Err("Failed to add network")}else return L.Err("Failed to switch network")}else return L.Err("Chain not supported")},La=e=>typeof e=="object"&&e!==null&&"code"in e&&e.code===4902;var se=(e=>(e.Created="Created",e.Matched="Matched",e.InitiateDetected="InitiateDetected",e.Initiated="Initiated",e.CounterPartyInitiateDetected="CounterPartyInitiateDetected",e.CounterPartyInitiated="CounterPartyInitiated",e.RedeemDetected="RedeemDetected",e.Redeemed="Redeemed",e.CounterPartyRedeemDetected="CounterPartyRedeemDetected",e.CounterPartyRedeemed="CounterPartyRedeemed",e.Completed="Completed",e.CounterPartySwapExpired="CounterPartySwapExpired",e.Expired="Expired",e.RefundDetected="RefundDetected",e.Refunded="Refunded",e.CounterPartyRefundDetected="CounterPartyRefundDetected",e.CounterPartyRefunded="CounterPartyRefunded",e.Cancelled="Cancelled",e.DeadLineExceeded="DeadLineExceeded",e))(se||{}),re=(e=>(e.Idle="Idle",e.InitiateDetected="InitiateDetected",e.Initiated="Initiated",e.RedeemDetected="RedeemDetected",e.Redeemed="Redeemed",e.RefundDetected="RefundDetected",e.Refunded="Refunded",e.Expired="Expired",e))(re||{});const Hi=(e,t,r)=>{const n=fr(e.source_swap,t),i=fr(e.destination_swap,r);if(n===re.Redeemed)return se.CounterPartyRedeemed;if(n===re.RedeemDetected)return se.CounterPartyRedeemDetected;if(i===re.Redeemed)return se.Redeemed;if(i===re.RedeemDetected)return se.RedeemDetected;if(n===re.Refunded)return se.Refunded;if(n===re.RefundDetected)return se.RefundDetected;if(i===re.Refunded)return se.CounterPartyRefunded;if(i===re.RefundDetected)return se.CounterPartyRefundDetected;if(i===re.Expired)return se.CounterPartySwapExpired;if(n===re.Expired)return se.Expired;const a=Number(e.create_order.additional_data.deadline);return i===re.Initiated?se.CounterPartyInitiated:i===re.InitiateDetected?se.CounterPartyInitiateDetected:Mn(a,12)?se.DeadLineExceeded:n===re.Initiated?se.Initiated:Mn(a,1)?se.DeadLineExceeded:n===re.InitiateDetected?se.InitiateDetected:se.Matched},fr=(e,t)=>{if(e.redeem_tx_hash)return Number(e.redeem_block_number)?re.Redeemed:re.RedeemDetected;if(e.refund_tx_hash)return Number(e.refund_block_number)?re.Refunded:re.RefundDetected;if(Number(e.initiate_block_number)){const r=Number(e.initiate_block_number)+e.timelock;if(t>r)return re.Expired}return e.initiate_tx_hash?Number(e.initiate_block_number)?re.Initiated:re.InitiateDetected:re.Idle},zi=(e,t,r)=>{const n=Hi(e,t,r);switch(console.log("orderId :",e.create_order.create_id,"orderStatus :",n),n){case se.Matched:return ye.Initiate;case se.CounterPartyInitiated:case se.CounterPartyInitiateDetected:return ye.Redeem;case se.Expired:return ye.Refund;default:return ye.Idle}},Mn=(e,t=0)=>{const r=Date.now(),n=e*1e3+t*36e5;return r>=n},Oa=[{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"}];class ji{constructor(t,r,n){this.url=new _e.Url("/relayer",r),this.auth=n,this.order=t}async init(t,r){if(!t.account)return L.Err("No account found");if(t.account.address.toLowerCase()!==this.order.source_swap.initiator.toLowerCase())return L.Err("Account address and order initiator mismatch");if(!r){const g=await _e.fetchEVMBlockNumber(t);if(g.error)return L.Err(g.error);r=g.val}if(fr(this.order.source_swap,r)!==re.Idle)return L.Err("Invalid swap status");const{create_order:i,source_swap:a}=this.order;if(!a.amount||!a.redeemer||!i.timelock||!i.secret_hash)return L.Err("Invalid order");const u=_e.with0x(i.secret_hash),f=BigInt(i.timelock),l=_e.with0x(a.redeemer),y=BigInt(a.amount);try{const g=await this.auth.getToken();if(g.error)return L.Err(g.error);const m=He.getContract({address:_e.with0x(this.order.source_swap.asset),abi:Oa,client:t}),B=await m.read.token(),I=await _e.checkAllowanceAndApprove(Number(y),B,this.order.source_swap.asset,t);if(I.error)return L.Err(I.error);const S=await m.read.eip712Domain(),P=await t.signTypedData({account:t.account,domain:{name:S[1],version:S[2],chainId:Number(S[3]),verifyingContract:S[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:l,timelock:f,amount:y,secretHash:u}}),T=await L.Fetcher.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:i.create_id,signature:P,perform_on:"Source"}),headers:{Authorization:_e.Authorization(g.val),"Content-Type":"application/json"}});return T.error?L.Err(T.error):T.result?L.Ok(T.result):L.Err("Init: No result found")}catch(g){return console.log("init error :",g),L.Err(String(g))}}async redeem(t,r){try{const n=await this.auth.getToken();if(n.error)return L.Err(n.error);const i=await L.Fetcher.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t,secret:L.trim0x(r),perform_on:"Destination"}),headers:{Authorization:_e.Authorization(n.val),"Content-Type":"application/json"}});return i.error?L.Err(i.error):i.result?L.Ok(i.result):L.Err("Redeem: No result found")}catch(n){return L.Err(String(n))}}}const Fa=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),Ua=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),Ma=Buffer.concat([Fa,Ua]),Na=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),Nn={failedToCreateInternalPubkey:"failed to create internal pubkey",failedToTweakPubkey:"failed to tweak pubkey"};function Da(){const e=bi.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),t=_t.pointMultiply(Buffer.concat([Buffer.from("04","hex"),Ma]),e);if(!t)throw new Error(Nn.failedToCreateInternalPubkey);const r=_t.pointAdd(Na,t);if(!r)throw new Error(Nn.failedToCreateInternalPubkey);return Xr(Buffer.from(r))}const me={secretMismatch:"invalid secret",secretHashLenMismatch:"secret hash should be 32 bytes",pubkeyLenMismatch:"pubkey should be 32 bytes",zeroOrNegativeExpiry:"expiry should be greater than 0",htlcAddressGenerationFailed:"failed to generate htlc address",notFunded:"address not funded",noCounterpartySigs:"counterparty signatures are required",counterPartySigNotFound:e=>"counterparty signature not found for utxo "+e,invalidCounterpartySigForUTXO:e=>"invalid counterparty signature for utxo "+e,htlcNotExpired:e=>`HTLC not expired, need more ${e} blocks`,controlBlockGenerationFailed:"failed to generate control block",invalidLeaf:"invalid leaf"},tr=192;be.initEccLib(_t);class ur{constructor(t,r,n,i,a,u,f,l){this.secretHash=n,this.redeemerPubkey=i,this.initiatorPubkey=a,this.expiry=u,this.signer=t,this.network=f,this.internalPubkey=Da(),this.initiateAmount=r,this.utxoHashes=l}static async from(t,r,n,i,a,u,f){n=n.startsWith("0x")?n.slice(2):n,bt(n.length===64,me.secretHashLenMismatch),bt(i.length===64||i.length===66,`initiator ${me.pubkeyLenMismatch}`),bt(a.length===64||a.length===66,`redeemer ${me.pubkeyLenMismatch}`),bt(u>0,me.zeroOrNegativeExpiry);const l=await t.getNetwork();return new ur(t,r,n,Xr(a).toString("hex"),Xr(i).toString("hex"),u,l,f)}address(){const{address:t}=be.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves()});if(!t)throw new Error(me.htlcAddressGenerationFailed);return t}id(){return this.address()}async _buildRawTx(t,r){const n=new be.Transaction;n.version=2;const i=this.address(),a=await this.signer.getProvider();let u=[];if(this.utxoHashes&&this.utxoHashes.length>0)for(const l of this.utxoHashes){const y=await a.getTransaction(l);for(let g=0;g<y.vout.length;g++){const m=y.vout[g];m.scriptpubkey_address===i&&u.push({txid:y.txid,vout:g,value:m.value,status:{confirmed:!1}})}}else u=await a.getUTXOs(i);const f=u.reduce((l,y)=>l+y.value,0);if(f===0)throw new Error(`${i} ${me.notFunded}`);for(let l=0;l<u.length;l++)n.addInput(Buffer.from(u[l].txid,"hex").reverse(),u[l].vout);return r??(r=await a.suggestFee(i,f,Bn.Urgency.MEDIUM)),n.addOutput(be.address.toOutputScript(t,this.network),f-r),{tx:n,usedUtxos:u}}async buildRawTx(t){return await this._buildRawTx(await this.signer.getAddress(),t)}getOutputScript(){return be.address.toOutputScript(this.address(),this.network)}async init(t){return t??(t=await(await this.signer.getProvider()).suggestFee(await this.signer.getAddress(),this.initiateAmount,Bn.Urgency.MEDIUM)),await this.signer.send(this.address(),this.initiateAmount,t)}async instantRefund(t,r){bt(t.length>0,me.noCounterpartySigs);const{tx:n,usedUtxos:i}=await this.buildRawTx(r);for(const m of i)if(!t.find(B=>B.utxo===m.txid))throw new Error(me.counterPartySigNotFound(m.txid));const a=this.getOutputScript(),u=be.Transaction.SIGHASH_DEFAULT,f=this.leafHash(2),l=i.map(m=>m.value),y=Lr(a,i.length);for(let m=0;m<n.ins.length;m++){const B=n.hashForWitnessV1(m,y,l,u,f);if(!_t.verifySchnorr(B,Buffer.from(this.redeemerPubkey,"hex"),Buffer.from(t[m].sig,"hex")))throw new Error(me.invalidCounterpartySigForUTXO(t[m].utxo));const I=await this.signer.signSchnorr(B),S=Buffer.from(n.ins[m].hash).reverse().toString("hex"),P=t.find(T=>T.utxo===S);if(!P)throw new Error(me.counterPartySigNotFound(S));n.setWitness(m,[Buffer.from(P.sig,"hex"),I,this.instantRefundLeaf(),this.generateControlBlockFor(2)])}return await(await this.signer.getProvider()).broadcast(n.toHex())}async redeem(t,r,n){bt(be.crypto.sha256(Buffer.from(t,"hex")).toString("hex")===this.secretHash,me.secretMismatch);const{tx:i,usedUtxos:a}=await this._buildRawTx(r??await this.signer.getAddress(),n),u=this.leafHash(1),f=a.map(m=>m.value),l=Lr(this.getOutputScript(),a.length),y=be.Transaction.SIGHASH_DEFAULT;for(let m=0;m<i.ins.length;m++){const B=i.hashForWitnessV1(m,l,f,y,u),I=await this.signer.signSchnorr(B);i.setWitness(m,[I,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return await(await this.signer.getProvider()).broadcast(i.toHex())}async refund(t,r){const{tx:n,usedUtxos:i}=await this._buildRawTx(t??await this.signer.getAddress(),r),[a,u]=await this.canRefund(i);if(!a)throw new Error(me.htlcNotExpired(u));const f=this.leafHash(0),l=i.map(B=>B.value),y=Lr(this.getOutputScript(),i.length),g=be.Transaction.SIGHASH_DEFAULT;for(let B=0;B<n.ins.length;B++){n.ins[B].sequence=this.expiry;const I=n.hashForWitnessV1(B,y,l,g,f),S=await this.signer.signSchnorr(I);n.setWitness(B,[S,this.refundLeaf(),this.generateControlBlockFor(0)])}return await(await this.signer.getProvider()).broadcast(n.toHex())}async canRefund(t){const n=await(await this.signer.getProvider()).getLatestTip();for(const i of t){let a=0;if(i.status.confirmed&&i.status.block_height+this.expiry>n?a=i.status.block_height+this.expiry-n+1:i.status.confirmed||(a=this.expiry+1),a>0)return[!1,a]}return[!0,0]}generateControlBlockFor(t){let r;switch(t){case 1:r=this.redeemLeaf();break;case 0:r=this.refundLeaf();break;case 2:r=this.instantRefundLeaf();break;default:throw new Error(me.invalidLeaf)}const n=be.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves(),redeem:{output:r,redeemVersion:tr}});if(!n.witness)throw new Error(me.controlBlockGenerationFailed);return n.witness[n.witness.length-1]}leafHash(t){let r=this.redeemLeaf();return t===0&&(r=this.refundLeaf()),t===2&&(r=this.instantRefundLeaf()),be.crypto.taggedHash("TapLeaf",Aa(r))}refundLeaf(){return be.script.fromASM(`
4
+ `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Fi,"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 Ui 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 er=BigInt(2**32-1),Ln=BigInt(32);function Uo(e,t=!1){return t?{h:Number(e&er),l:Number(e>>Ln&er)}:{h:Number(e>>Ln&er)|0,l:Number(e&er)|0}}function Mo(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:a,l:u}=Uo(e[i],t);[r[i],n[i]]=[a,u]}return[r,n]}const No=(e,t,r)=>e<<r|t>>>32-r,Do=(e,t,r)=>t<<r|e>>>32-r,$o=(e,t,r)=>t<<r-32|e>>>64-r,Ho=(e,t,r)=>e<<r-32|t>>>64-r,Mi=[],Ni=[],Di=[],zo=BigInt(0),Ct=BigInt(1),jo=BigInt(2),Go=BigInt(7),qo=BigInt(256),Wo=BigInt(113);for(let e=0,t=Ct,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Mi.push(2*(5*n+r)),Ni.push((e+1)*(e+2)/2%64);let i=zo;for(let a=0;a<7;a++)t=(t<<Ct^(t>>Go)*Wo)%qo,t&jo&&(i^=Ct<<(Ct<<BigInt(a))-Ct);Di.push(i)}const[Vo,Ko]=Mo(Di,!0),On=(e,t,r)=>r>32?$o(e,t,r):No(e,t,r),Fn=(e,t,r)=>r>32?Ho(e,t,r):Do(e,t,r);function Yo(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let u=0;u<10;u++)r[u]=e[u]^e[u+10]^e[u+20]^e[u+30]^e[u+40];for(let u=0;u<10;u+=2){const f=(u+8)%10,l=(u+2)%10,y=r[l],g=r[l+1],m=On(y,g,1)^r[f],B=Fn(y,g,1)^r[f+1];for(let I=0;I<50;I+=10)e[u+I]^=m,e[u+I+1]^=B}let i=e[2],a=e[3];for(let u=0;u<24;u++){const f=Ni[u],l=On(i,a,f),y=Fn(i,a,f),g=Mi[u];i=e[g],a=e[g+1],e[g]=l,e[g+1]=y}for(let u=0;u<50;u+=10){for(let f=0;f<10;f++)r[f]=e[u+f];for(let f=0;f<10;f++)e[u+f]^=~r[(f+2)%10]&r[(f+4)%10]}e[0]^=Vo[n],e[1]^=Ko[n]}r.fill(0)}class pn extends Ti{constructor(t,r,n,i=!1,a=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Rn(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=go(this.state)}keccak(){Tn||Pn(this.state32),Yo(this.state32,this.rounds),Tn||Pn(this.state32),this.posOut=0,this.pos=0}update(t){ar(this);const{blockLen:r,state:n}=this;t=hn(t);const i=t.length;for(let a=0;a<i;){const u=Math.min(r-this.pos,i-a);for(let f=0;f<u;f++)n[this.pos++]^=t[a++];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){ar(this,!1),ln(t),this.finish();const r=this.state,{blockLen:n}=this;for(let i=0,a=t.length;i<a;){this.posOut>=n&&this.keccak();const u=Math.min(n-this.posOut,a-i);t.set(r.subarray(this.posOut,this.posOut+u),i),this.posOut+=u,i+=u}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Rn(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Ri(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:a,enableXOF:u}=this;return t||(t=new pn(r,n,i,u,a)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=n,t.outputLen=i,t.enableXOF=u,t.destroyed=this.destroyed,t}}const Jo=(e,t,r)=>Pi(()=>new pn(t,e,r)),Xo=Jo(1,136,256/8);function Qo(e,t){return Xo(qt(e,{strict:!1})?_i(e):e)}const kr=new Ui(8192);function Zo(e,t){if(kr.has(`${e}.${t}`))return kr.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),n=Qo(xi(r)),i=r.split("");for(let u=0;u<40;u+=2)n[u>>1]>>4>=8&&i[u]&&(i[u]=i[u].toUpperCase()),(n[u>>1]&15)>=8&&i[u+1]&&(i[u+1]=i[u+1].toUpperCase());const a=`0x${i.join("")}`;return kr.set(`${e}.${t}`,a),a}const ea=/^0x[a-fA-F0-9]{40}$/,Cr=new Ui(8192);function ft(e,t){const{strict:r=!0}=t??{},n=`${e}.${r}`;if(Cr.has(n))return Cr.get(n);const i=ea.test(e)?e.toLowerCase()===e?!0:r?Zo(e)===e:!0:!1;return Cr.set(n,i),i}function ta(e,t,r,{strict:n}={}){return qt(e,{strict:!1})?na(e,t,r,{strict:n}):ra(e,t,r,{strict:n})}function $i(e,t,r){if(xt(e)!==r-t)throw new $s({offset:r,position:"end",size:xt(e)})}function ra(e,t,r,{strict:n}={}){const i=e.slice(t,r);return n&&$i(i,t,r),i}function na(e,t,r,{strict:n}={}){const i=`0x${e.replace("0x","").slice(t*2,r*2)}`;return n&&$i(i,t,r),i}function ia(e){const{authorizationList:t}=e;if(t)for(const r of t){const{contractAddress:n,chainId:i}=r;if(!ft(n))throw new at({address:n});if(i<=0)throw new br({chainId:i})}bn(e)}function sa(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Oi;for(const r of t){const n=xt(r),i=or(ta(r,0,1));if(n!==32)throw new ko({hash:r,size:n});if(i!==Li)throw new Co({hash:r,version:i})}}bn(e)}function bn(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:i}=e;if(t<=0)throw new br({chainId:t});if(i&&!ft(i))throw new at({address:i});if(n&&n>cn)throw new yr({maxFeePerGas:n});if(r&&n&&r>n)throw new Fi({maxFeePerGas:n,maxPriorityFeePerGas:r})}function oa(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:a}=e;if(t<=0)throw new br({chainId:t});if(a&&!ft(a))throw new at({address:a});if(r||i)throw new Q("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>cn)throw new yr({maxFeePerGas:n})}function aa(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:a}=e;if(a&&!ft(a))throw new at({address:a});if(typeof t<"u"&&t<=0)throw new br({chainId:t});if(r||i)throw new Q("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>cn)throw new yr({maxFeePerGas:n})}function fa(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 po({transaction:e})}function gr(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 a=0;a<i.length;a++)if(i[a].length-2!==64)throw new bo({storageKey:i[a]});if(!ft(n,{strict:!1}))throw new at({address:n});t.push([n,i])}return t}function ua(e,t){const r=fa(e);return r==="eip1559"?ha(e,t):r==="eip2930"?da(e,t):r==="eip4844"?la(e,t):r==="eip7702"?ca(e,t):pa(e,t)}function ca(e,t){const{authorizationList:r,chainId:n,gas:i,nonce:a,to:u,value:f,maxFeePerGas:l,maxPriorityFeePerGas:y,accessList:g,data:m}=e;ia(e);const B=gr(g),I=Fo(r);return Wt(["0x04",ot([q(n),a?q(a):"0x",y?q(y):"0x",l?q(l):"0x",i?q(i):"0x",u??"0x",f?q(f):"0x",m??"0x",B,I,...Vt(e,t)])])}function la(e,t){const{chainId:r,gas:n,nonce:i,to:a,value:u,maxFeePerBlobGas:f,maxFeePerGas:l,maxPriorityFeePerGas:y,accessList:g,data:m}=e;sa(e);let B=e.blobVersionedHashes,I=e.sidecars;if(e.blobs&&(typeof B>"u"||typeof I>"u")){const O=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(E=>Ze(E)),C=e.kzg,U=Ii({blobs:O,kzg:C});if(typeof B>"u"&&(B=To({commitments:U})),typeof I>"u"){const E=Ai({blobs:O,commitments:U,kzg:C});I=Oo({blobs:O,commitments:U,proofs:E})}}const S=gr(g),P=[q(r),i?q(i):"0x",y?q(y):"0x",l?q(l):"0x",n?q(n):"0x",a??"0x",u?q(u):"0x",m??"0x",S,f?q(f):"0x",B??[],...Vt(e,t)],T=[],k=[],F=[];if(I)for(let O=0;O<I.length;O++){const{blob:C,commitment:U,proof:E}=I[O];T.push(C),k.push(U),F.push(E)}return Wt(["0x03",ot(I?[P,T,k,F]:P)])}function ha(e,t){const{chainId:r,gas:n,nonce:i,to:a,value:u,maxFeePerGas:f,maxPriorityFeePerGas:l,accessList:y,data:g}=e;bn(e);const m=gr(y),B=[q(r),i?q(i):"0x",l?q(l):"0x",f?q(f):"0x",n?q(n):"0x",a??"0x",u?q(u):"0x",g??"0x",m,...Vt(e,t)];return Wt(["0x02",ot(B)])}function da(e,t){const{chainId:r,gas:n,data:i,nonce:a,to:u,value:f,accessList:l,gasPrice:y}=e;oa(e);const g=gr(l),m=[q(r),a?q(a):"0x",y?q(y):"0x",n?q(n):"0x",u??"0x",f?q(f):"0x",i??"0x",g,...Vt(e,t)];return Wt(["0x01",ot(m)])}function pa(e,t){const{chainId:r=0,gas:n,data:i,nonce:a,to:u,value:f,gasPrice:l}=e;aa(e);let y=[a?q(a):"0x",l?q(l):"0x",n?q(n):"0x",u??"0x",f?q(f):"0x",i??"0x"];if(t){const g=(()=>{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 I=27n+(t.v===27n?0n:1n);if(t.v!==I)throw new ho({v:t.v});return I})(),m=sr(t.r),B=sr(t.s);y=[...y,q(g),m==="0x00"?"0x":m,B==="0x00"?"0x":B]}else r>0&&(y=[...y,q(r),"0x","0x"]);return ot(y)}function Vt(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 a=sr(r.r),u=sr(r.s);return[typeof i=="number"?i?q(1):"0x":n===0n?"0x":n===1n?q(1):n===27n?"0x":q(1),a==="0x00"?"0x":a,u==="0x00"?"0x":u]}const ba={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},ya={block:Zs({format(e){var r;return{transactions:(r=e.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const i=un(n);return i.typeHex==="0x7e"&&(i.isSystemTx=n.isSystemTx,i.mint=n.mint?gt(n.mint):void 0,i.sourceHash=n.sourceHash,i.type="deposit"),i}),stateRoot:e.stateRoot}}}),transaction:Js({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?gt(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:no({format(e){return{l1GasPrice:e.l1GasPrice?gt(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?gt(e.l1GasUsed):null,l1Fee:e.l1Fee?gt(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function ga(e,t){return _a(e)?wa(e):ua(e,t)}const ma={transaction:ga};function wa(e){xa(e);const{sourceHash:t,data:r,from:n,gas:i,isSystemTx:a,mint:u,to:f,value:l}=e,y=[t,n,f??"0x",u?q(u):"0x",l?q(l):"0x",i?q(i):"0x",a?"0x1":"0x",r??"0x"];return Wt(["0x7e",ot(y)])}function _a(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function xa(e){const{from:t,to:r}=e;if(t&&!ft(t))throw new at({address:t});if(r&&!ft(r))throw new at({address:r})}const Un={contracts:ba,formatters:ya,serializers:ma},va=Gt({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}}}),Ea=Gt({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}),Lt=11155111,Ba=Gt({...Un,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:{...Un.contracts,disputeGameFactory:{[Lt]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[Lt]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[Lt]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[Lt]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:Lt}),Sa=Gt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://cloudflare-eth.com"]}},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}}}),Ia=Gt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://rpc2.sepolia.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});function Xr(e){return typeof e=="string"&&(e=Buffer.from(e,"hex")),e.length===32?e:e.subarray(1,33)}function bt(e,t){if(!e)throw new Error(t)}function Aa(e){return Buffer.concat([Uint8Array.from([192]),Ra(e)])}function Ra(e){const t=Sn.encodingLength(e.length),r=Buffer.allocUnsafe(t);return Sn.encode(e.length,r),Buffer.concat([r,e])}function Ta(e,t){if(e.compare(t)>0){const r=e;e=t,t=r}return[e,t]}const Ot=e=>e.length===64?e:e.slice(2),Pa=e=>{if(!e)return!1;try{const t=Buffer.from(e,"hex");return _t.isPoint(t)}catch{return!1}},ka={ethereum:Sa,ethereum_arbitrum:va,ethereum_sepolia:Ia,arbitrum_sepolia:Ea,ethereum_localnet:J.EthereumLocalnet,arbitrum_localnet:J.ArbitrumLocalnet,base_sepolia:Ba},Ca=async(e,t)=>{var n;const r=ka[e];if(r)try{if(r.id===((n=t.chain)==null?void 0:n.id))return L.Ok({message:"Already on the network",walletClient:t});await t.switchChain({id:r.id});const i=He.createWalletClient({account:t.account,chain:r,transport:He.custom(window.ethereum)});return L.Ok({message:"Switched chain",walletClient:i})}catch(i){if(La(i))try{await t.addChain({chain:r});const a=He.createWalletClient({account:t.account,chain:r,transport:He.custom(window.ethereum)});return L.Ok({message:"Added network",walletClient:a})}catch{return L.Err("Failed to add network")}else return L.Err("Failed to switch network")}else return L.Err("Chain not supported")},La=e=>typeof e=="object"&&e!==null&&"code"in e&&e.code===4902;var se=(e=>(e.Created="Created",e.Matched="Matched",e.InitiateDetected="InitiateDetected",e.Initiated="Initiated",e.CounterPartyInitiateDetected="CounterPartyInitiateDetected",e.CounterPartyInitiated="CounterPartyInitiated",e.RedeemDetected="RedeemDetected",e.Redeemed="Redeemed",e.CounterPartyRedeemDetected="CounterPartyRedeemDetected",e.CounterPartyRedeemed="CounterPartyRedeemed",e.Completed="Completed",e.CounterPartySwapExpired="CounterPartySwapExpired",e.Expired="Expired",e.RefundDetected="RefundDetected",e.Refunded="Refunded",e.CounterPartyRefundDetected="CounterPartyRefundDetected",e.CounterPartyRefunded="CounterPartyRefunded",e.Cancelled="Cancelled",e.DeadLineExceeded="DeadLineExceeded",e))(se||{}),re=(e=>(e.Idle="Idle",e.InitiateDetected="InitiateDetected",e.Initiated="Initiated",e.RedeemDetected="RedeemDetected",e.Redeemed="Redeemed",e.RefundDetected="RefundDetected",e.Refunded="Refunded",e.Expired="Expired",e))(re||{});const Hi=(e,t,r)=>{const n=fr(e.source_swap,t),i=fr(e.destination_swap,r);if(n===re.Redeemed)return se.CounterPartyRedeemed;if(n===re.RedeemDetected)return se.CounterPartyRedeemDetected;if(i===re.Redeemed)return se.Redeemed;if(i===re.RedeemDetected)return se.RedeemDetected;if(n===re.Refunded)return se.Refunded;if(n===re.RefundDetected)return se.RefundDetected;if(i===re.Refunded)return se.CounterPartyRefunded;if(i===re.RefundDetected)return se.CounterPartyRefundDetected;if(i===re.Expired)return se.CounterPartySwapExpired;if(n===re.Expired)return se.Expired;const a=Number(e.create_order.additional_data.deadline);return i===re.Initiated?se.CounterPartyInitiated:i===re.InitiateDetected?se.CounterPartyInitiateDetected:Mn(a,12)?se.DeadLineExceeded:n===re.Initiated?se.Initiated:Mn(a,1)?se.DeadLineExceeded:n===re.InitiateDetected?se.InitiateDetected:se.Matched},fr=(e,t)=>{if(e.redeem_tx_hash)return Number(e.redeem_block_number)?re.Redeemed:re.RedeemDetected;if(e.refund_tx_hash)return Number(e.refund_block_number)?re.Refunded:re.RefundDetected;if(Number(e.initiate_block_number)){const r=Number(e.initiate_block_number)+e.timelock;if(t>r)return re.Expired}return e.initiate_tx_hash?Number(e.initiate_block_number)?re.Initiated:re.InitiateDetected:re.Idle},zi=(e,t,r)=>{switch(Hi(e,t,r)){case se.Matched:return ye.Initiate;case se.CounterPartyInitiated:case se.CounterPartyInitiateDetected:return ye.Redeem;case se.Expired:return ye.Refund;default:return ye.Idle}},Mn=(e,t=0)=>{const r=Date.now(),n=e*1e3+t*36e5;return r>=n},Oa=[{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"}];class ji{constructor(t,r,n){this.url=new _e.Url("/relayer",r),this.auth=n,this.order=t}async init(t,r){if(!t.account)return L.Err("No account found");if(t.account.address.toLowerCase()!==this.order.source_swap.initiator.toLowerCase())return L.Err("Account address and order initiator mismatch");if(!r){const g=await _e.fetchEVMBlockNumber(t);if(g.error)return L.Err(g.error);r=g.val}if(fr(this.order.source_swap,r)!==re.Idle)return L.Err("Invalid swap status");const{create_order:i,source_swap:a}=this.order;if(!a.amount||!a.redeemer||!i.timelock||!i.secret_hash)return L.Err("Invalid order");const u=_e.with0x(i.secret_hash),f=BigInt(i.timelock),l=_e.with0x(a.redeemer),y=BigInt(a.amount);try{const g=await this.auth.getToken();if(g.error)return L.Err(g.error);const m=He.getContract({address:_e.with0x(this.order.source_swap.asset),abi:Oa,client:t}),B=await m.read.token(),I=await _e.checkAllowanceAndApprove(Number(y),B,this.order.source_swap.asset,t);if(I.error)return L.Err(I.error);const S=await m.read.eip712Domain(),P=await t.signTypedData({account:t.account,domain:{name:S[1],version:S[2],chainId:Number(S[3]),verifyingContract:S[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:l,timelock:f,amount:y,secretHash:u}}),T=await L.Fetcher.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:i.create_id,signature:P,perform_on:"Source"}),headers:{Authorization:_e.Authorization(g.val),"Content-Type":"application/json"}});return T.error?L.Err(T.error):T.result?L.Ok(T.result):L.Err("Init: No result found")}catch(g){return console.log("init error :",g),L.Err(String(g))}}async redeem(t,r){try{const n=await this.auth.getToken();if(n.error)return L.Err(n.error);const i=await L.Fetcher.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t,secret:L.trim0x(r),perform_on:"Destination"}),headers:{Authorization:_e.Authorization(n.val),"Content-Type":"application/json"}});return i.error?L.Err(i.error):i.result?L.Ok(i.result):L.Err("Redeem: No result found")}catch(n){return L.Err(String(n))}}}const Fa=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),Ua=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),Ma=Buffer.concat([Fa,Ua]),Na=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),Nn={failedToCreateInternalPubkey:"failed to create internal pubkey",failedToTweakPubkey:"failed to tweak pubkey"};function Da(){const e=bi.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),t=_t.pointMultiply(Buffer.concat([Buffer.from("04","hex"),Ma]),e);if(!t)throw new Error(Nn.failedToCreateInternalPubkey);const r=_t.pointAdd(Na,t);if(!r)throw new Error(Nn.failedToCreateInternalPubkey);return Xr(Buffer.from(r))}const me={secretMismatch:"invalid secret",secretHashLenMismatch:"secret hash should be 32 bytes",pubkeyLenMismatch:"pubkey should be 32 bytes",zeroOrNegativeExpiry:"expiry should be greater than 0",htlcAddressGenerationFailed:"failed to generate htlc address",notFunded:"address not funded",noCounterpartySigs:"counterparty signatures are required",counterPartySigNotFound:e=>"counterparty signature not found for utxo "+e,invalidCounterpartySigForUTXO:e=>"invalid counterparty signature for utxo "+e,htlcNotExpired:e=>`HTLC not expired, need more ${e} blocks`,controlBlockGenerationFailed:"failed to generate control block",invalidLeaf:"invalid leaf"},tr=192;be.initEccLib(_t);class ur{constructor(t,r,n,i,a,u,f,l){this.secretHash=n,this.redeemerPubkey=i,this.initiatorPubkey=a,this.expiry=u,this.signer=t,this.network=f,this.internalPubkey=Da(),this.initiateAmount=r,this.utxoHashes=l}static async from(t,r,n,i,a,u,f){n=n.startsWith("0x")?n.slice(2):n,bt(n.length===64,me.secretHashLenMismatch),bt(i.length===64||i.length===66,`initiator ${me.pubkeyLenMismatch}`),bt(a.length===64||a.length===66,`redeemer ${me.pubkeyLenMismatch}`),bt(u>0,me.zeroOrNegativeExpiry);const l=await t.getNetwork();return new ur(t,r,n,Xr(a).toString("hex"),Xr(i).toString("hex"),u,l,f)}address(){const{address:t}=be.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves()});if(!t)throw new Error(me.htlcAddressGenerationFailed);return t}id(){return this.address()}async _buildRawTx(t,r){const n=new be.Transaction;n.version=2;const i=this.address(),a=await this.signer.getProvider();let u=[];if(this.utxoHashes&&this.utxoHashes.length>0)for(const l of this.utxoHashes){const y=await a.getTransaction(l);for(let g=0;g<y.vout.length;g++){const m=y.vout[g];m.scriptpubkey_address===i&&u.push({txid:y.txid,vout:g,value:m.value,status:{confirmed:!1}})}}else u=await a.getUTXOs(i);const f=u.reduce((l,y)=>l+y.value,0);if(f===0)throw new Error(`${i} ${me.notFunded}`);for(let l=0;l<u.length;l++)n.addInput(Buffer.from(u[l].txid,"hex").reverse(),u[l].vout);return r??(r=await a.suggestFee(i,f,Bn.Urgency.MEDIUM)),n.addOutput(be.address.toOutputScript(t,this.network),f-r),{tx:n,usedUtxos:u}}async buildRawTx(t){return await this._buildRawTx(await this.signer.getAddress(),t)}getOutputScript(){return be.address.toOutputScript(this.address(),this.network)}async init(t){return t??(t=await(await this.signer.getProvider()).suggestFee(await this.signer.getAddress(),this.initiateAmount,Bn.Urgency.MEDIUM)),await this.signer.send(this.address(),this.initiateAmount,t)}async instantRefund(t,r){bt(t.length>0,me.noCounterpartySigs);const{tx:n,usedUtxos:i}=await this.buildRawTx(r);for(const m of i)if(!t.find(B=>B.utxo===m.txid))throw new Error(me.counterPartySigNotFound(m.txid));const a=this.getOutputScript(),u=be.Transaction.SIGHASH_DEFAULT,f=this.leafHash(2),l=i.map(m=>m.value),y=Lr(a,i.length);for(let m=0;m<n.ins.length;m++){const B=n.hashForWitnessV1(m,y,l,u,f);if(!_t.verifySchnorr(B,Buffer.from(this.redeemerPubkey,"hex"),Buffer.from(t[m].sig,"hex")))throw new Error(me.invalidCounterpartySigForUTXO(t[m].utxo));const I=await this.signer.signSchnorr(B),S=Buffer.from(n.ins[m].hash).reverse().toString("hex"),P=t.find(T=>T.utxo===S);if(!P)throw new Error(me.counterPartySigNotFound(S));n.setWitness(m,[Buffer.from(P.sig,"hex"),I,this.instantRefundLeaf(),this.generateControlBlockFor(2)])}return await(await this.signer.getProvider()).broadcast(n.toHex())}async redeem(t,r,n){bt(be.crypto.sha256(Buffer.from(t,"hex")).toString("hex")===this.secretHash,me.secretMismatch);const{tx:i,usedUtxos:a}=await this._buildRawTx(r??await this.signer.getAddress(),n),u=this.leafHash(1),f=a.map(m=>m.value),l=Lr(this.getOutputScript(),a.length),y=be.Transaction.SIGHASH_DEFAULT;for(let m=0;m<i.ins.length;m++){const B=i.hashForWitnessV1(m,l,f,y,u),I=await this.signer.signSchnorr(B);i.setWitness(m,[I,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return await(await this.signer.getProvider()).broadcast(i.toHex())}async refund(t,r){const{tx:n,usedUtxos:i}=await this._buildRawTx(t??await this.signer.getAddress(),r),[a,u]=await this.canRefund(i);if(!a)throw new Error(me.htlcNotExpired(u));const f=this.leafHash(0),l=i.map(B=>B.value),y=Lr(this.getOutputScript(),i.length),g=be.Transaction.SIGHASH_DEFAULT;for(let B=0;B<n.ins.length;B++){n.ins[B].sequence=this.expiry;const I=n.hashForWitnessV1(B,y,l,g,f),S=await this.signer.signSchnorr(I);n.setWitness(B,[S,this.refundLeaf(),this.generateControlBlockFor(0)])}return await(await this.signer.getProvider()).broadcast(n.toHex())}async canRefund(t){const n=await(await this.signer.getProvider()).getLatestTip();for(const i of t){let a=0;if(i.status.confirmed&&i.status.block_height+this.expiry>n?a=i.status.block_height+this.expiry-n+1:i.status.confirmed||(a=this.expiry+1),a>0)return[!1,a]}return[!0,0]}generateControlBlockFor(t){let r;switch(t){case 1:r=this.redeemLeaf();break;case 0:r=this.refundLeaf();break;case 2:r=this.instantRefundLeaf();break;default:throw new Error(me.invalidLeaf)}const n=be.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves(),redeem:{output:r,redeemVersion:tr}});if(!n.witness)throw new Error(me.controlBlockGenerationFailed);return n.witness[n.witness.length-1]}leafHash(t){let r=this.redeemLeaf();return t===0&&(r=this.refundLeaf()),t===2&&(r=this.instantRefundLeaf()),be.crypto.taggedHash("TapLeaf",Aa(r))}refundLeaf(){return be.script.fromASM(`
5
5
  ${be.script.number.encode(this.expiry).toString("hex")}
6
6
  OP_CHECKSEQUENCEVERIFY
7
7
  OP_DROP
@@ -20,7 +20,7 @@
20
20
  OP_CHECKSIGADD
21
21
  OP_2
22
22
  OP_NUMEQUAL
23
- `.trim().replace(/\s+/g," "))}leaves(){return[{version:tr,output:this.redeemLeaf()},[{version:tr,output:this.refundLeaf()},{version:tr,output:this.instantRefundLeaf()}]]}generateMerkleProofFor(t){const r=this.leafHash(1),n=this.leafHash(2),i=this.leafHash(0);switch(t){case 1:{const a=Ta(i,n);return[be.crypto.taggedHash("TapBranch",Buffer.concat(a))]}case 0:return[n,r];case 2:return[i,r];default:throw new Error(me.invalidLeaf)}}}function Lr(e,t){const r=[];for(let n=0;n<t;n++)r.push(e);return r}class $a{constructor(){this.cache={}}set(t,r,n,i){const a={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:i};this.cache[`${r}_${t.create_order.create_id}`]=a}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 Ha{constructor(t){if(this.eventListeners=new Map,this.getOrderThreshold=20,this.pendingOrdersCount=0,this.useRelay=!0,this.orderBook=new J.Orderbook({url:t.orderbookURl,walletClient:t.wallets.evmWallet,auth:t.auth}),this.quote=t.quote,this.secretManager=t.secretManager,this.wallets=t.wallets,this.orderbookUrl=t.orderbookURl,this.auth=t.auth,this.orderExecutorCache=new $a,!t.wallets.evmWallet.account)throw new Error("Account not found in evmWallet");this.evmAddress=t.wallets.evmWallet.account.address}getPendingOrderCount(){return this.pendingOrdersCount}setUseRelay(t){this.useRelay=t}async swap(t){const r=await this.validateAndFillParams(t);if(r.error)return L.Err(r.error);const{sendAddress:n,receiveAddress:i,timelock:a}=r.val,u=await this.orderBook.getOrdersCount(this.evmAddress);if(u.error)return L.Err(u.error);const f=u.val+1,l=this.secretManager.generateSecret(f);if(l.error)return L.Err(l.error);const{strategyId:y,btcAddress:g}=t.additionalData,m={strategy_id:y,...g&&{bitcoin_optional_recipient:g}},B={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:f.toString(),timelock:a,secret_hash:L.trim0x(l.val.secretHash),min_destination_confirmations:t.minDestinationConfirmations??0,additional_data:m},I=await this.quote.getAttestedQuote(B);if(I.error)return L.Err(I.error);const S=await this.orderBook.createOrder(I.val);if(S.error)return L.Err(S.error);const P=await this.pollOrder(S.val);return P.error?L.Err(P.error):L.Ok(P.val)}async validateAndFillParams(t){if(t.fromAsset.chain===t.toAsset.chain&&t.fromAsset.atomicSwapAddress===t.toAsset.atomicSwapAddress)return L.Err("Source and destination assets cannot be the same");if(J.isMainnet(t.fromAsset.chain)&&!J.isMainnet(t.toAsset.chain)||!J.isMainnet(t.fromAsset.chain)&&J.isMainnet(t.toAsset.chain))return L.Err("Both assets should be on the same network (either mainnet or testnet)");if(J.isBitcoin(t.fromAsset.chain)||J.isBitcoin(t.toAsset.chain)){if(!this.wallets.btcWallet)return L.Err("btcWallet is required for bitcoin chain. Please provide btcWallet in the constructor");if(!t.additionalData.btcAddress)return L.Err("btcAddress in additionalData is required for bitcoin chain")}const r=await this.getAddresses(t.fromAsset.chain);if(r.error)return L.Err(r.error);const n=await this.getAddresses(t.toAsset.chain);if(n.error)return L.Err(n.error);const i=this.validateAmount(t.sendAmount);if(i.error)return L.Err(i.error);const a=this.validateAmount(t.receiveAmount);if(a.error)return L.Err(a.error);if(i<a)return L.Err("Send amount should be greater than receive amount");const u=this.getTimelock(t.fromAsset.chain);return u?L.Ok({sendAddress:r.val,receiveAddress:n.val,timelock:t.timelock??u}):L.Err("Unsupported chain for timelock")}async getAddresses(t){var n;switch(J.getBlockchainType(t)){case J.BlockchainType.EVM:return this.wallets.evmWallet.account?L.Ok(this.wallets.evmWallet.account.address):L.Err("EVM Wallet not found");case J.BlockchainType.Bitcoin:{const i=await((n=this.wallets.btcWallet)==null?void 0:n.getPublicKey());return!i||!Pa(i)?L.Err("Invalid btc public key"):L.Ok(Ot(i))}default:return L.Err("Unsupported chain")}}validateAmount(t){if(t==null||t.includes("."))return L.Err("Invalid amount ",t);const r=new Ms(t);return!r.isInteger()||r.isNaN()||r.lt(0)||r.isLessThanOrEqualTo(0)?L.Err("Invalid amount ",t):L.Ok(r)}getTimelock(t){switch(J.getBlockchainType(t)){case J.BlockchainType.EVM:return Yr.evm;case J.BlockchainType.Bitcoin:return Yr.btc;default:return}}async pollOrder(t){let r=await this.orderBook.getOrder(t,!0),n=0;for(;n<this.getOrderThreshold;){if(await _e.sleep(1e3),n++,r.error){if(!r.error.includes("result is undefined"))return L.Err(r.error)}else if(r.val&&r.val.create_order.create_id.toLowerCase()===t.toLowerCase())return L.Ok(r.val);r=await this.orderBook.getOrder(t,!0)}return L.Err(`Order not found, createOrder id: ${t}`)}emit(t,...r){(this.eventListeners.get(t)??[]).forEach(i=>{i(...r)})}async execute(t=5e3){return await this.orderBook.subscribeToOrders(!0,t,async r=>{this.pendingOrdersCount=r.data.length,this.emit("onPendingOrdersChanged",r.data);for(let n=0;n<r.data.length;n++){const i=r.data[n],a=i.source_swap.chain,u=i.destination_swap.chain,f=this.getWallet(a),l=this.getWallet(u);if(f.error||l.error||!f.val||!l.val){this.emit("error",i,"Source or Destination Wallet not found while executing order");return}const y=await this.fetchCurrentBlockNumbers(i,{source:f.val,destination:l.val});if(y.error){this.emit("error",i,"Error while fetching CurrentBlockNumbers: "+y.error);return}const g=zi(i,y.val.source,y.val.destination);switch(console.log("orderAction :",g),this.emit("log",i.create_order.create_id,g),g){case ye.Redeem:{const m=this.secretManager.generateSecret(Number(i.create_order.nonce));if(m.error){this.emit("error",i,m.error);return}switch(J.getBlockchainType(i.destination_swap.chain)){case J.BlockchainType.EVM:{await this.evmRedeem(i,m.val.secret);break}case J.BlockchainType.Bitcoin:{await this.btcRedeem(l.val,i,m.val.secret);break}default:this.emit("error",i,"Unsupported chain: "+i.destination_swap.chain)}break}case ye.Refund:{switch(J.getBlockchainType(i.source_swap.chain)){case J.BlockchainType.EVM:{this.emit("error",i,"EVM refund is automatically done by relay service");break}case J.BlockchainType.Bitcoin:{await this.btcRefund(f.val,i);break}default:this.emit("error",i,"Unsupported chain: "+i.source_swap.chain)}break}}}},{per_page:500},!0)}async evmRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing evm redeem"),this.orderExecutorCache.get(t,ye.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}const a=await new ji(t,this.orderbookUrl,this.auth).redeem(t.create_order.create_id,r);if(a.error){this.emit("error",t,a.error);return}this.emit("success",t,ye.Redeem,a.val),this.orderExecutorCache.set(t,ye.Redeem,a.val)}async btcRedeem(t,r,n){var u;const i=this.orderExecutorCache.get(r,ye.Redeem);let a=!1;if(i)if(i.btcRedeemUTXO&&i.btcRedeemUTXO!==r.destination_swap.initiate_tx_hash)a=!0,this.emit("log",r.create_order.create_id,"rbf btc redeem");else{this.emit("log",r.create_order.create_id,"btcRedeem: already redeemed");return}this.emit("log",r.create_order.create_id,"executing btc redeem");try{const l=await(await ur.from(t,Number(r.destination_swap.amount),r.create_order.secret_hash,Ot(r.destination_swap.initiator),Ot(r.destination_swap.redeemer),r.destination_swap.timelock,a?[r.destination_swap.initiate_tx_hash]:[])).redeem(L.trim0x(n),(u=r.create_order.additional_data)==null?void 0:u.bitcoin_optional_recipient);this.emit("success",r,ye.Redeem,l),this.orderExecutorCache.set(r,ye.Redeem,l,r.destination_swap.initiate_tx_hash)}catch(f){this.emit("error",r,"Failed btc redeem: "+f)}}async btcRefund(t,r){var n;if(!this.orderExecutorCache.get(r,ye.Refund)){this.emit("log",r.create_order.create_id,"executing btc refund");try{const a=await(await ur.from(t,Number(r.source_swap.amount),r.create_order.secret_hash,Ot(r.source_swap.initiator),Ot(r.source_swap.redeemer),r.source_swap.timelock)).refund((n=r.create_order.additional_data)==null?void 0:n.bitcoin_optional_recipient);this.emit("success",r,ye.Refund,a),this.orderExecutorCache.set(r,ye.Refund,a)}catch(i){this.emit("error",r,"Failed btc refund: "+i)}}}getWallet(t){switch(J.getBlockchainType(t)){case J.BlockchainType.EVM:return L.Ok(this.wallets.evmWallet);case J.BlockchainType.Bitcoin:return L.Ok(this.wallets.btcWallet);default:return L.Err("Unsupported chain for wallet")}}on(t,r){const n=this.eventListeners.get(t)??[];n.push(r),this.eventListeners.set(t,n)}off(t,r){const n=this.eventListeners.get(t)??[],i=n.indexOf(r);i!==-1&&n.splice(i,1)}async fetchCurrentBlockNumbers(t,r){if(!r||!r.source||!r.destination)return L.Err("Provide wallets to fetch the current block number");const n=J.isBitcoin(t.source_swap.chain)?await _e.fetchBitcoinBlockNumber(await r.source.getProvider()):await _e.fetchEVMBlockNumber(r.source);if(n.error)return L.Err(n.error);const i=J.isBitcoin(t.destination_swap.chain)?await _e.fetchBitcoinBlockNumber(await r.destination.getProvider()):await _e.fetchEVMBlockNumber(r.destination);return i.error?L.Err(i.error):L.Ok({source:n.val,destination:i.val})}}var Qe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function za(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}),r}var Gi={},vt={},Et={};Object.defineProperty(Et,"__esModule",{value:!0});Et.testnet=Et.bitcoin=void 0;Et.bitcoin={messagePrefix:`Bitcoin Signed Message:
23
+ `.trim().replace(/\s+/g," "))}leaves(){return[{version:tr,output:this.redeemLeaf()},[{version:tr,output:this.refundLeaf()},{version:tr,output:this.instantRefundLeaf()}]]}generateMerkleProofFor(t){const r=this.leafHash(1),n=this.leafHash(2),i=this.leafHash(0);switch(t){case 1:{const a=Ta(i,n);return[be.crypto.taggedHash("TapBranch",Buffer.concat(a))]}case 0:return[n,r];case 2:return[i,r];default:throw new Error(me.invalidLeaf)}}}function Lr(e,t){const r=[];for(let n=0;n<t;n++)r.push(e);return r}class $a{constructor(){this.cache={}}set(t,r,n,i){const a={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:i};this.cache[`${r}_${t.create_order.create_id}`]=a}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 Ha{constructor(t){if(this.eventListeners=new Map,this.getOrderThreshold=20,this.pendingOrdersCount=0,this.useRelay=!0,this.orderBook=new J.Orderbook({url:t.orderbookURl,walletClient:t.wallets.evmWallet,auth:t.auth}),this.quote=t.quote,this.secretManager=t.secretManager,this.wallets=t.wallets,this.orderbookUrl=t.orderbookURl,this.auth=t.auth,this.orderExecutorCache=new $a,!t.wallets.evmWallet.account)throw new Error("Account not found in evmWallet");this.evmAddress=t.wallets.evmWallet.account.address}getPendingOrderCount(){return this.pendingOrdersCount}setUseRelay(t){this.useRelay=t}async swap(t){const r=await this.validateAndFillParams(t);if(r.error)return L.Err(r.error);const{sendAddress:n,receiveAddress:i,timelock:a}=r.val,u=await this.orderBook.getOrdersCount(this.evmAddress);if(u.error)return L.Err(u.error);const f=u.val+1,l=this.secretManager.generateSecret(f);if(l.error)return L.Err(l.error);const{strategyId:y,btcAddress:g}=t.additionalData,m={strategy_id:y,...g&&{bitcoin_optional_recipient:g}},B={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:f.toString(),timelock:a,secret_hash:L.trim0x(l.val.secretHash),min_destination_confirmations:t.minDestinationConfirmations??0,additional_data:m},I=await this.quote.getAttestedQuote(B);if(I.error)return L.Err(I.error);const S=await this.orderBook.createOrder(I.val);if(S.error)return L.Err(S.error);const P=await this.pollOrder(S.val);return P.error?L.Err(P.error):L.Ok(P.val)}async validateAndFillParams(t){if(t.fromAsset.chain===t.toAsset.chain&&t.fromAsset.atomicSwapAddress===t.toAsset.atomicSwapAddress)return L.Err("Source and destination assets cannot be the same");if(J.isMainnet(t.fromAsset.chain)&&!J.isMainnet(t.toAsset.chain)||!J.isMainnet(t.fromAsset.chain)&&J.isMainnet(t.toAsset.chain))return L.Err("Both assets should be on the same network (either mainnet or testnet)");if(J.isBitcoin(t.fromAsset.chain)||J.isBitcoin(t.toAsset.chain)){if(!this.wallets.btcWallet)return L.Err("btcWallet is required for bitcoin chain. Please provide btcWallet in the constructor");if(!t.additionalData.btcAddress)return L.Err("btcAddress in additionalData is required for bitcoin chain")}const r=await this.getAddresses(t.fromAsset.chain);if(r.error)return L.Err(r.error);const n=await this.getAddresses(t.toAsset.chain);if(n.error)return L.Err(n.error);const i=this.validateAmount(t.sendAmount);if(i.error)return L.Err(i.error);const a=this.validateAmount(t.receiveAmount);if(a.error)return L.Err(a.error);if(i<a)return L.Err("Send amount should be greater than receive amount");const u=this.getTimelock(t.fromAsset.chain);return u?L.Ok({sendAddress:r.val,receiveAddress:n.val,timelock:t.timelock??u}):L.Err("Unsupported chain for timelock")}async getAddresses(t){var n;switch(J.getBlockchainType(t)){case J.BlockchainType.EVM:return this.wallets.evmWallet.account?L.Ok(this.wallets.evmWallet.account.address):L.Err("EVM Wallet not found");case J.BlockchainType.Bitcoin:{const i=await((n=this.wallets.btcWallet)==null?void 0:n.getPublicKey());return!i||!Pa(i)?L.Err("Invalid btc public key"):L.Ok(Ot(i))}default:return L.Err("Unsupported chain")}}validateAmount(t){if(t==null||t.includes("."))return L.Err("Invalid amount ",t);const r=new Ms(t);return!r.isInteger()||r.isNaN()||r.lt(0)||r.isLessThanOrEqualTo(0)?L.Err("Invalid amount ",t):L.Ok(r)}getTimelock(t){switch(J.getBlockchainType(t)){case J.BlockchainType.EVM:return Yr.evm;case J.BlockchainType.Bitcoin:return Yr.btc;default:return}}async pollOrder(t){let r=await this.orderBook.getOrder(t,!0),n=0;for(;n<this.getOrderThreshold;){if(await _e.sleep(1e3),n++,r.error){if(!r.error.includes("result is undefined"))return L.Err(r.error)}else if(r.val&&r.val.create_order.create_id.toLowerCase()===t.toLowerCase())return L.Ok(r.val);r=await this.orderBook.getOrder(t,!0)}return L.Err(`Order not found, createOrder id: ${t}`)}emit(t,...r){(this.eventListeners.get(t)??[]).forEach(i=>{i(...r)})}async execute(t=5e3){return await this.orderBook.subscribeToOrders(!0,t,async r=>{this.pendingOrdersCount=r.data.length,this.emit("onPendingOrdersChanged",r.data);for(let n=0;n<r.data.length;n++){const i=r.data[n],a=i.source_swap.chain,u=i.destination_swap.chain,f=this.getWallet(a),l=this.getWallet(u);if(f.error||l.error||!f.val||!l.val){this.emit("error",i,"Source or Destination Wallet not found while executing order");return}const y=await this.fetchCurrentBlockNumbers(i,{source:f.val,destination:l.val});if(y.error){this.emit("error",i,"Error while fetching CurrentBlockNumbers: "+y.error);return}switch(zi(i,y.val.source,y.val.destination)){case ye.Redeem:{const m=this.secretManager.generateSecret(Number(i.create_order.nonce));if(m.error){this.emit("error",i,m.error);return}switch(J.getBlockchainType(i.destination_swap.chain)){case J.BlockchainType.EVM:{await this.evmRedeem(i,m.val.secret);break}case J.BlockchainType.Bitcoin:{await this.btcRedeem(l.val,i,m.val.secret);break}default:this.emit("error",i,"Unsupported chain: "+i.destination_swap.chain)}break}case ye.Refund:{switch(J.getBlockchainType(i.source_swap.chain)){case J.BlockchainType.EVM:{this.emit("error",i,"EVM refund is automatically done by relay service");break}case J.BlockchainType.Bitcoin:{await this.btcRefund(f.val,i);break}default:this.emit("error",i,"Unsupported chain: "+i.source_swap.chain)}break}}}},{per_page:500},!0)}async evmRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing evm redeem"),this.orderExecutorCache.get(t,ye.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}const a=await new ji(t,this.orderbookUrl,this.auth).redeem(t.create_order.create_id,r);if(a.error){this.emit("error",t,a.error);return}this.emit("success",t,ye.Redeem,a.val),this.orderExecutorCache.set(t,ye.Redeem,a.val)}async btcRedeem(t,r,n){var u;const i=this.orderExecutorCache.get(r,ye.Redeem);let a=!1;if(i)if(i.btcRedeemUTXO&&i.btcRedeemUTXO!==r.destination_swap.initiate_tx_hash)a=!0,this.emit("log",r.create_order.create_id,"rbf btc redeem");else{this.emit("log",r.create_order.create_id,"btcRedeem: already redeemed");return}this.emit("log",r.create_order.create_id,"executing btc redeem");try{const l=await(await ur.from(t,Number(r.destination_swap.amount),r.create_order.secret_hash,Ot(r.destination_swap.initiator),Ot(r.destination_swap.redeemer),r.destination_swap.timelock,a?[r.destination_swap.initiate_tx_hash]:[])).redeem(L.trim0x(n),(u=r.create_order.additional_data)==null?void 0:u.bitcoin_optional_recipient);this.emit("success",r,ye.Redeem,l),this.orderExecutorCache.set(r,ye.Redeem,l,r.destination_swap.initiate_tx_hash)}catch(f){this.emit("error",r,"Failed btc redeem: "+f)}}async btcRefund(t,r){var n;if(!this.orderExecutorCache.get(r,ye.Refund)){this.emit("log",r.create_order.create_id,"executing btc refund");try{const a=await(await ur.from(t,Number(r.source_swap.amount),r.create_order.secret_hash,Ot(r.source_swap.initiator),Ot(r.source_swap.redeemer),r.source_swap.timelock)).refund((n=r.create_order.additional_data)==null?void 0:n.bitcoin_optional_recipient);this.emit("success",r,ye.Refund,a),this.orderExecutorCache.set(r,ye.Refund,a)}catch(i){this.emit("error",r,"Failed btc refund: "+i)}}}getWallet(t){switch(J.getBlockchainType(t)){case J.BlockchainType.EVM:return L.Ok(this.wallets.evmWallet);case J.BlockchainType.Bitcoin:return L.Ok(this.wallets.btcWallet);default:return L.Err("Unsupported chain for wallet")}}on(t,r){const n=this.eventListeners.get(t)??[];n.push(r),this.eventListeners.set(t,n)}off(t,r){const n=this.eventListeners.get(t)??[],i=n.indexOf(r);i!==-1&&n.splice(i,1)}async fetchCurrentBlockNumbers(t,r){if(!r||!r.source||!r.destination)return L.Err("Provide wallets to fetch the current block number");const n=J.isBitcoin(t.source_swap.chain)?await _e.fetchBitcoinBlockNumber(await r.source.getProvider()):await _e.fetchEVMBlockNumber(r.source);if(n.error)return L.Err(n.error);const i=J.isBitcoin(t.destination_swap.chain)?await _e.fetchBitcoinBlockNumber(await r.destination.getProvider()):await _e.fetchEVMBlockNumber(r.destination);return i.error?L.Err(i.error):L.Ok({source:n.val,destination:i.val})}}var Qe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function za(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var r=function n(){return this instanceof n?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}),r}var Gi={},vt={},Et={};Object.defineProperty(Et,"__esModule",{value:!0});Et.testnet=Et.bitcoin=void 0;Et.bitcoin={messagePrefix:`Bitcoin Signed Message:
24
24
  `,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};Et.testnet={messagePrefix:`Bitcoin Signed Message:
25
25
  `,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var qi={},zt={Array:function(e){return e!=null&&e.constructor===Array},Boolean:function(e){return typeof e=="boolean"},Function:function(e){return typeof e=="function"},Nil:function(e){return e==null},Number:function(e){return typeof e=="number"},Object:function(e){return typeof e=="object"},String:function(e){return typeof e=="string"},"":function(){return!0}};zt.Null=zt.Nil;for(var Dn in zt)zt[Dn].toJSON=(function(e){return e}).bind(null,Dn);var yn=zt,it=yn;function Wi(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function gn(e){return it.Nil(e)?"":Wi(e.constructor)}function ja(e){return it.Function(e)?"":it.String(e)?JSON.stringify(e):e&&it.Object(e)?"":e}function mn(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function cr(e){return it.Function(e)?e.toJSON?e.toJSON():Wi(e):it.Array(e)?"Array":e&&it.Object(e)?"Object":e!==void 0?e:""}function Vi(e,t,r){var n=ja(t);return"Expected "+cr(e)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function ze(e,t,r){r=r||gn(t),this.message=Vi(e,t,r),mn(this,ze),this.__type=e,this.__value=t,this.__valueTypeName=r}ze.prototype=Object.create(Error.prototype);ze.prototype.constructor=ze;function Ga(e,t,r,n,i){var a='" of type ';return t==="key"&&(a='" with key type '),Vi('property "'+cr(r)+a+cr(e),n,i)}function mt(e,t,r,n,i){e?(i=i||gn(n),this.message=Ga(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',mn(this,ze),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}mt.prototype=Object.create(Error.prototype);mt.prototype.constructor=ze;function qa(e,t){return new ze(e,{},t)}function Wa(e,t,r){return e instanceof mt?(t=t+"."+e.__property,e=new mt(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof ze&&(e=new mt(e.__type,t,r,e.__value,e.__valueTypeName)),mn(e),e}var Ki={TfTypeError:ze,TfPropertyTypeError:mt,tfCustomError:qa,tfSubError:Wa,tfJSON:cr,getValueTypeName:gn},Or,$n;function Va(){if($n)return Or;$n=1;var e=yn,t=Ki;function r(E){return Buffer.isBuffer(E)}function n(E){return typeof E=="string"&&/^([0-9a-f]{2})+$/i.test(E)}function i(E,z){var N=E.toJSON();function $(oe){if(!E(oe))return!1;if(oe.length===z)return!0;throw t.tfCustomError(N+"(Length: "+z+")",N+"(Length: "+oe.length+")")}return $.toJSON=function(){return N},$}var a=i.bind(null,e.Array),u=i.bind(null,r),f=i.bind(null,n),l=i.bind(null,e.String);function y(E,z,N){N=N||e.Number;function $(oe,Pe){return N(oe,Pe)&&oe>E&&oe<z}return $.toJSON=function(){return`${N.toJSON()} between [${E}, ${z}]`},$}var g=Math.pow(2,53)-1;function m(E){return typeof E=="number"&&isFinite(E)}function B(E){return E<<24>>24===E}function I(E){return E<<16>>16===E}function S(E){return(E|0)===E}function P(E){return typeof E=="number"&&E>=-g&&E<=g&&Math.floor(E)===E}function T(E){return(E&255)===E}function k(E){return(E&65535)===E}function F(E){return E>>>0===E}function O(E){return typeof E=="number"&&E>=0&&E<=g&&Math.floor(E)===E}var C={ArrayN:a,Buffer:r,BufferN:u,Finite:m,Hex:n,HexN:f,Int8:B,Int16:I,Int32:S,Int53:P,Range:y,StringN:l,UInt8:T,UInt16:k,UInt32:F,UInt53:O};for(var U in C)C[U].toJSON=(function(E){return E}).bind(null,U);return Or=C,Or}var Kt=Ki,ce=yn,De=Kt.tfJSON,Yi=Kt.TfTypeError,Ji=Kt.TfPropertyTypeError,Ft=Kt.tfSubError,Ka=Kt.getValueTypeName,$e={arrayOf:function(t,r){t=Fe(t),r=r||{};function n(i,a){return!ce.Array(i)||ce.Nil(i)||r.minLength!==void 0&&i.length<r.minLength||r.maxLength!==void 0&&i.length>r.maxLength||r.length!==void 0&&i.length!==r.length?!1:i.every(function(u,f){try{return xe(t,u,a)}catch(l){throw Ft(l,f)}})}return n.toJSON=function(){var i="["+De(t)+"]";return r.length!==void 0?i+="{"+r.length+"}":(r.minLength!==void 0||r.maxLength!==void 0)&&(i+="{"+(r.minLength===void 0?0:r.minLength)+","+(r.maxLength===void 0?1/0:r.maxLength)+"}"),i},n},maybe:function e(t){t=Fe(t);function r(n,i){return ce.Nil(n)||t(n,i,e)}return r.toJSON=function(){return"?"+De(t)},r},map:function(t,r){t=Fe(t),r&&(r=Fe(r));function n(i,a){if(!ce.Object(i)||ce.Nil(i))return!1;for(var u in i){try{r&&xe(r,u,a)}catch(l){throw Ft(l,u,"key")}try{var f=i[u];xe(t,f,a)}catch(l){throw Ft(l,u)}}return!0}return r?n.toJSON=function(){return"{"+De(r)+": "+De(t)+"}"}:n.toJSON=function(){return"{"+De(t)+"}"},n},object:function(t){var r={};for(var n in t)r[n]=Fe(t[n]);function i(a,u){if(!ce.Object(a)||ce.Nil(a))return!1;var f;try{for(f in r){var l=r[f],y=a[f];xe(l,y,u)}}catch(g){throw Ft(g,f)}if(u){for(f in a)if(!r[f])throw new Ji(void 0,f)}return!0}return i.toJSON=function(){return De(r)},i},anyOf:function(){var t=[].slice.call(arguments).map(Fe);function r(n,i){return t.some(function(a){try{return xe(a,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(De).join("|")},r},allOf:function(){var t=[].slice.call(arguments).map(Fe);function r(n,i){return t.every(function(a){try{return xe(a,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(De).join(" & ")},r},quacksLike:function(t){function r(n){return t===Ka(n)}return r.toJSON=function(){return t},r},tuple:function(){var t=[].slice.call(arguments).map(Fe);function r(n,i){return ce.Nil(n)||ce.Nil(n.length)||i&&n.length!==t.length?!1:t.every(function(a,u){try{return xe(a,n[u],i)}catch(f){throw Ft(f,u)}})}return r.toJSON=function(){return"("+t.map(De).join(", ")+")"},r},value:function(t){function r(n){return n===t}return r.toJSON=function(){return t},r}};$e.oneOf=$e.anyOf;function Fe(e){if(ce.String(e))return e[0]==="?"?$e.maybe(e.slice(1)):ce[e]||$e.quacksLike(e);if(e&&ce.Object(e)){if(ce.Array(e)){if(e.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return $e.arrayOf(e[0])}return $e.object(e)}else if(ce.Function(e))return e;return $e.value(e)}function xe(e,t,r,n){if(ce.Function(e)){if(e(t,r))return!0;throw new Yi(n||e,t)}return xe(Fe(e),t,r)}for(var Xe in ce)xe[Xe]=ce[Xe];for(Xe in $e)xe[Xe]=$e[Xe];var Hn=Va();for(Xe in Hn)xe[Xe]=Hn[Xe];xe.compile=Fe;xe.TfTypeError=Yi;xe.TfPropertyTypeError=Ji;var Ya=xe;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.maybe=e.Boolean=e.Array=e.Buffer256bit=e.Network=e.typeforce=void 0,e.typeforce=Ya,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})(qi);var Qr={exports:{}},Zr={exports:{}},At={},mr={};mr.byteLength=Qa;mr.toByteArray=ef;mr.fromByteArray=nf;var Ue=[],Re=[],Ja=typeof Uint8Array<"u"?Uint8Array:Array,Fr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var yt=0,Xa=Fr.length;yt<Xa;++yt)Ue[yt]=Fr[yt],Re[Fr.charCodeAt(yt)]=yt;Re[45]=62;Re[95]=63;function Xi(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function Qa(e){var t=Xi(e),r=t[0],n=t[1];return(r+n)*3/4-n}function Za(e,t,r){return(t+r)*3/4-r}function ef(e){var t,r=Xi(e),n=r[0],i=r[1],a=new Ja(Za(e,n,i)),u=0,f=i>0?n-4:n,l;for(l=0;l<f;l+=4)t=Re[e.charCodeAt(l)]<<18|Re[e.charCodeAt(l+1)]<<12|Re[e.charCodeAt(l+2)]<<6|Re[e.charCodeAt(l+3)],a[u++]=t>>16&255,a[u++]=t>>8&255,a[u++]=t&255;return i===2&&(t=Re[e.charCodeAt(l)]<<2|Re[e.charCodeAt(l+1)]>>4,a[u++]=t&255),i===1&&(t=Re[e.charCodeAt(l)]<<10|Re[e.charCodeAt(l+1)]<<4|Re[e.charCodeAt(l+2)]>>2,a[u++]=t>>8&255,a[u++]=t&255),a}function tf(e){return Ue[e>>18&63]+Ue[e>>12&63]+Ue[e>>6&63]+Ue[e&63]}function rf(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(e[a+2]&255),i.push(tf(n));return i.join("")}function nf(e){for(var t,r=e.length,n=r%3,i=[],a=16383,u=0,f=r-n;u<f;u+=a)i.push(rf(e,u,u+a>f?f:u+a));return n===1?(t=e[r-1],i.push(Ue[t>>2]+Ue[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(Ue[t>>10]+Ue[t>>4&63]+Ue[t<<2&63]+"=")),i.join("")}var wn={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */wn.read=function(e,t,r,n,i){var a,u,f=i*8-n-1,l=(1<<f)-1,y=l>>1,g=-7,m=r?i-1:0,B=r?-1:1,I=e[t+m];for(m+=B,a=I&(1<<-g)-1,I>>=-g,g+=f;g>0;a=a*256+e[t+m],m+=B,g-=8);for(u=a&(1<<-g)-1,a>>=-g,g+=n;g>0;u=u*256+e[t+m],m+=B,g-=8);if(a===0)a=1-y;else{if(a===l)return u?NaN:(I?-1:1)*(1/0);u=u+Math.pow(2,n),a=a-y}return(I?-1:1)*u*Math.pow(2,a-n)};wn.write=function(e,t,r,n,i,a){var u,f,l,y=a*8-i-1,g=(1<<y)-1,m=g>>1,B=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,I=n?0:a-1,S=n?1:-1,P=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(f=isNaN(t)?1:0,u=g):(u=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-u))<1&&(u--,l*=2),u+m>=1?t+=B/l:t+=B*Math.pow(2,1-m),t*l>=2&&(u++,l/=2),u+m>=g?(f=0,u=g):u+m>=1?(f=(t*l-1)*Math.pow(2,i),u=u+m):(f=t*Math.pow(2,m-1)*Math.pow(2,i),u=0));i>=8;e[r+I]=f&255,I+=S,f/=256,i-=8);for(u=u<<i|f,y+=i;y>0;e[r+I]=u&255,I+=S,u/=256,y-=8);e[r+I-S]|=P*128};/*!
26
26
  * The buffer module from node.js, for the browser.
package/dist/index.js CHANGED
@@ -1757,17 +1757,11 @@ const Wa = (e, t, r) => {
1757
1757
  }
1758
1758
  return e.initiate_tx_hash ? Number(e.initiate_block_number) ? te.Initiated : te.InitiateDetected : te.Idle;
1759
1759
  }, qa = (e, t, r) => {
1760
- const n = Wa(
1760
+ switch (Wa(
1761
1761
  e,
1762
1762
  t,
1763
1763
  r
1764
- );
1765
- switch (console.log(
1766
- "orderId :",
1767
- e.create_order.create_id,
1768
- "orderStatus :",
1769
- n
1770
- ), n) {
1764
+ )) {
1771
1765
  case ie.Matched:
1772
1766
  return ye.Initiate;
1773
1767
  case ie.CounterPartyInitiated:
@@ -2860,12 +2854,11 @@ class u0 {
2860
2854
  );
2861
2855
  return;
2862
2856
  }
2863
- const g = qa(
2857
+ switch (qa(
2864
2858
  i,
2865
2859
  y.val.source,
2866
2860
  y.val.destination
2867
- );
2868
- switch (console.log("orderAction :", g), this.emit("log", i.create_order.create_id, g), g) {
2861
+ )) {
2869
2862
  case ye.Redeem: {
2870
2863
  const m = this.secretManager.generateSecret(
2871
2864
  Number(i.create_order.nonce)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gardenfi/core",
3
- "version": "0.2.0-beta.43",
3
+ "version": "0.2.0-beta.44",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"