@gardenfi/core 2.0.25-beta.9 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +12 -12
- package/dist/index.js +3709 -3740
- package/dist/src/index.d.ts +2 -2
- package/dist/src/lib/bitcoin/internalKey.d.ts +1 -1
- package/dist/src/lib/constants.d.ts +10 -22
- package/dist/src/lib/evm/htlc/evmHTLC.d.ts +36 -36
- package/dist/src/lib/garden/garden.d.ts +5 -16
- package/dist/src/lib/garden/garden.types.d.ts +17 -10
- package/dist/src/lib/starknet/checkAllowanceAndApprove.d.ts +2 -2
- package/dist/src/lib/starknet/relay/starknetRelay.d.ts +2 -2
- package/dist/src/lib/switchOrAddNetwork.d.ts +2 -0
- package/dist/src/lib/utils.d.ts +2 -2
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";var yf=Object.defineProperty;var mf=(e,t,r)=>t in e?yf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var vr=(e,t,r)=>mf(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ge=require("@gardenfi/orderbook"),q=require("@gardenfi/utils"),Lr=require("@catalogfi/wallets"),At=require("viem"),ba=require("varuint-bitcoin"),bf=require("tiny-secp256k1"),wa=require("bitcoinjs-lib"),wf=require("bignumber.js"),Ve=require("starknet");function Is(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 oo=Is(ba),ar=Is(bf),ie=Is(wa);var ga=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},Ni=(e,t,r)=>(ga(e,t,"read from private field"),r?r.call(e):t.get(e)),Fi=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},Hi=(e,t,r,n)=>(ga(e,t,"write to private field"),t.set(e,r),r);const gf=e=>new Promise(t=>setTimeout(t,e));class _f{constructor(t,r){this.maxRetries=Math.max(t,0),this.delay=r}async retry(t){let r=0,n;for(;r<this.maxRetries+1;)try{return await t()}catch(i){r++,n=i,await gf(this.delay*r)}throw n}}const vf=e=>{try{return JSON.parse(e)}catch{return e}};class kt{static async _postWithFallback(t,r){let n="";for(const i of t)try{const s=await fetch(i,{method:"POST",...r});if(s.status>=500){n=await(s.text()||s.json());continue}return await this.parse(s)}catch(s){n=ao(s);continue}throw new Error(n||"All APIs failed")}static async postWithFallback(t,r){return await Cn(r).retry(()=>this._postWithFallback(t,r))}static async _getWithFallback(t,r){let n="";for(const i of t)try{const s=await fetch(i,r);if(s.status>=500){n=await(s.text()||s.json());continue}return await this.parse(s)}catch(s){n=ao(s);continue}throw new Error(n||"All APIs failed")}static async getWithFallback(t,r){return await Cn(r).retry(()=>this._getWithFallback(t,r))}static async _get(t,r){return await this.parse(await fetch(t,r))}static async get(t,r){return await Cn(r).retry(()=>this._get(t,r))}static async _post(t,r){return await this.parse(await fetch(t,{method:"POST",...r}))}static async post(t,r){return await Cn(r).retry(()=>this._post(t,r))}static async parse(t){const r=await t.text();if(t.status>=200&&t.status<300)return vf(r);throw new Error(r)}}function ao(e){return(e==null?void 0:e.message)||(e==null?void 0:e.toString())||"unknown error"}const Cn=e=>new _f((e==null?void 0:e.retryCount)??2,(e==null?void 0:e.retryDelay)??1e3),Un=e=>e.startsWith("0x")?e:`0x${e}`,ir=e=>e.startsWith("0x")?e.slice(2):e;var Vn,Wn,zn;let ps=class{constructor(t,r,n=void 0){Fi(this,Vn,void 0),Fi(this,Wn,void 0),Fi(this,zn,void 0),Hi(this,Vn,t),Hi(this,zn,n),Hi(this,Wn,r)}get ok(){return Ni(this,Vn)}get error(){return Ni(this,zn)}get val(){return Ni(this,Wn)}};Vn=new WeakMap,Wn=new WeakMap,zn=new WeakMap;const re=e=>new ps(!0,e),D=(e,...t)=>{if(typeof e=="string"&&t&&t.length>0){let r=[e,...t].map(n=>{if(n){if(n instanceof Error)return n.message;if(typeof n=="string")return n;if(n!=null&&n.toString)return n.toString()}});return new ps(!1,null,r.filter(n=>n!==void 0).join(" "))}return new ps(!1,null,e)};var ke=(e=>(e.Idle="Idle",e.Initiate="Initiate",e.Redeem="Redeem",e.Refund="Refund",e))(ke||{});function ys(e){return typeof e=="string"&&(e=Buffer.from(e,"hex")),e.length===32?e:e.subarray(1,33)}function tr(e,t){if(!e)throw new Error(t)}function Ef(e){return Buffer.concat([Uint8Array.from([192]),xf(e)])}function xf(e){const t=oo.encodingLength(e.length),r=Buffer.allocUnsafe(t);return oo.encode(e.length,r),Buffer.concat([r,e])}function Sf(e,t){if(e.compare(t)>0){const r=e;e=t,t=r}return[e,t]}const rr=e=>e.length===64?e:e.slice(2),Af=e=>{if(!e)return!1;try{const t=Buffer.from(e,"hex");return ar.isPoint(t)}catch{return!1}},_a=(e,t,r,n)=>e+":"+t.toLowerCase()+"::"+r+":"+n.toLowerCase();function kf(e,t){if(!e)return!1;const r=t===q.Environment.MAINNET?ie.networks.bitcoin:t===q.Environment.TESTNET?ie.networks.testnet:ie.networks.regtest;if(!r)return!1;ie.initEccLib(ar);try{return ie.address.toOutputScript(e,r),!0}catch{return!1}}const Tf=e=>{switch(e){case q.Environment.MAINNET:return Lr.BitcoinNetwork.Mainnet;case q.Environment.TESTNET:return Lr.BitcoinNetwork.Testnet;default:throw new Error(`Invalid bitcoin network ${e}`)}};var de=(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))(de||{}),we=(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))(we||{});const Ps=(e,t,r)=>{const n=ms(e.source_swap,t),i=ms(e.destination_swap,r);if(i===we.RedeemDetected)return de.RedeemDetected;if(i===we.Redeemed)return de.Redeemed;if(n===we.Refunded)return de.Refunded;if(n===we.RefundDetected)return de.RefundDetected;if(i===we.Expired)return de.CounterPartySwapExpired;if(n===we.Expired)return de.Expired;if(i===we.Refunded)return de.CounterPartyRefunded;if(i===we.RefundDetected)return de.CounterPartyRefundDetected;const s=Number(e.create_order.additional_data.deadline);return i===we.Initiated?de.CounterPartyInitiated:i===we.InitiateDetected?de.CounterPartyInitiateDetected:mn(s,12)?de.DeadLineExceeded:n===we.Initiated?de.Initiated:mn(s,1)?de.DeadLineExceeded:n===we.InitiateDetected?de.InitiateDetected:n===we.Redeemed?de.CounterPartyRedeemed:n===we.RedeemDetected?de.CounterPartyRedeemDetected:de.Matched},ms=(e,t)=>{if(e.redeem_tx_hash)return Number(e.redeem_block_number)?we.Redeemed:we.RedeemDetected;if(e.refund_tx_hash)return Number(e.refund_block_number)?we.Refunded:we.RefundDetected;if(Number(e.initiate_block_number)){const r=Number(e.initiate_block_number)+e.timelock;if(t>r)return we.Expired}return e.initiate_tx_hash?Number(e.initiate_block_number)?we.Initiated:we.InitiateDetected:we.Idle},Bf=(e,t,r)=>{const n=Ps(e,t,r);return Os(n)},Os=e=>{switch(e){case de.Matched:return ke.Initiate;case de.CounterPartyInitiated:case de.CounterPartyInitiateDetected:case de.RedeemDetected:return ke.Redeem;case de.Expired:return ke.Refund;default:return ke.Idle}},mn=(e,t=0)=>{const r=Date.now(),n=e*1e3+t*36e5;return r>=n},If=e=>e.filter(t=>!va(t)),va=e=>{const{source_swap:t,create_order:r}=e,{initiate_tx_hash:n,initiate_block_number:i}=t,{deadline:s}=r.additional_data;return n&&Number(i)?!1:n&&!Number(i)?mn(Number(s),12):n?!1:mn(Number(s),1)},Pf=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),Of=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),Rf=Buffer.concat([Pf,Of]),Cf=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),co={failedToCreateInternalPubkey:"failed to create internal pubkey",failedToTweakPubkey:"failed to tweak pubkey"};function Uf(){const e=wa.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),t=ar.pointMultiply(Buffer.concat([Buffer.from("04","hex"),Rf]),e);if(!t)throw new Error(co.failedToCreateInternalPubkey);const r=ar.pointAdd(Cf,t);if(!r)throw new Error(co.failedToCreateInternalPubkey);return ys(Buffer.from(r))}var qt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Lf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Nf(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 _e={},He={},Rt={},hi={};hi.byteLength=Mf;hi.toByteArray=$f;hi.fromByteArray=Vf;var pt=[],et=[],Ff=typeof Uint8Array<"u"?Uint8Array:Array,Mi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Er=0,Hf=Mi.length;Er<Hf;++Er)pt[Er]=Mi[Er],et[Mi.charCodeAt(Er)]=Er;et[45]=62;et[95]=63;function Ea(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 Mf(e){var t=Ea(e),r=t[0],n=t[1];return(r+n)*3/4-n}function Df(e,t,r){return(t+r)*3/4-r}function $f(e){var t,r=Ea(e),n=r[0],i=r[1],s=new Ff(Df(e,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)t=et[e.charCodeAt(u)]<<18|et[e.charCodeAt(u+1)]<<12|et[e.charCodeAt(u+2)]<<6|et[e.charCodeAt(u+3)],s[o++]=t>>16&255,s[o++]=t>>8&255,s[o++]=t&255;return i===2&&(t=et[e.charCodeAt(u)]<<2|et[e.charCodeAt(u+1)]>>4,s[o++]=t&255),i===1&&(t=et[e.charCodeAt(u)]<<10|et[e.charCodeAt(u+1)]<<4|et[e.charCodeAt(u+2)]>>2,s[o++]=t>>8&255,s[o++]=t&255),s}function jf(e){return pt[e>>18&63]+pt[e>>12&63]+pt[e>>6&63]+pt[e&63]}function Gf(e,t,r){for(var n,i=[],s=t;s<r;s+=3)n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),i.push(jf(n));return i.join("")}function Vf(e){for(var t,r=e.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(Gf(e,o,o+s>a?a:o+s));return n===1?(t=e[r-1],i.push(pt[t>>2]+pt[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(pt[t>>10]+pt[t>>4&63]+pt[t<<2&63]+"=")),i.join("")}var Rs={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Rs.read=function(e,t,r,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,h=u>>1,d=-7,p=r?i-1:0,_=r?-1:1,y=e[t+p];for(p+=_,s=y&(1<<-d)-1,y>>=-d,d+=a;d>0;s=s*256+e[t+p],p+=_,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+e[t+p],p+=_,d-=8);if(s===0)s=1-h;else{if(s===u)return o?NaN:(y?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-h}return(y?-1:1)*o*Math.pow(2,s-n)};Rs.write=function(e,t,r,n,i,s){var o,a,u,h=s*8-i-1,d=(1<<h)-1,p=d>>1,_=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,y=n?0:s-1,I=n?1:-1,A=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=d):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+p>=1?t+=_/u:t+=_*Math.pow(2,1-p),t*u>=2&&(o++,u/=2),o+p>=d?(a=0,o=d):o+p>=1?(a=(t*u-1)*Math.pow(2,i),o=o+p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[r+y]=a&255,y+=I,a/=256,i-=8);for(o=o<<i|a,h+=i;h>0;e[r+y]=o&255,y+=I,o/=256,h-=8);e[r+y-I]|=A*128};/*!
|
|
1
|
+
"use strict";var lf=Object.defineProperty;var hf=(e,t,r)=>t in e?lf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var wr=(e,t,r)=>hf(e,typeof t!="symbol"?t+"":t,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const be=require("@gardenfi/orderbook"),K=require("@gardenfi/utils"),Or=require("@catalogfi/wallets"),Et=require("viem"),da=require("varuint-bitcoin"),df=require("tiny-secp256k1"),pa=require("bitcoinjs-lib"),pf=require("bignumber.js"),Ge=require("starknet");function ks(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 no=ks(da),ir=ks(df),ie=ks(pa);var ya=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},Ri=(e,t,r)=>(ya(e,t,"read from private field"),r?r.call(e):t.get(e)),Ci=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},Ui=(e,t,r,n)=>(ya(e,t,"write to private field"),t.set(e,r),r);const yf=e=>new Promise(t=>setTimeout(t,e));class mf{constructor(t,r){this.maxRetries=Math.max(t,0),this.delay=r}async retry(t){let r=0,n;for(;r<this.maxRetries+1;)try{return await t()}catch(i){r++,n=i,await yf(this.delay*r)}throw n}}const bf=e=>{try{return JSON.parse(e)}catch{return e}};class xt{static async _postWithFallback(t,r){let n="";for(const i of t)try{const s=await fetch(i,{method:"POST",...r});if(s.status>=500){n=await(s.text()||s.json());continue}return await this.parse(s)}catch(s){n=io(s);continue}throw new Error(n||"All APIs failed")}static async postWithFallback(t,r){return await In(r).retry(()=>this._postWithFallback(t,r))}static async _getWithFallback(t,r){let n="";for(const i of t)try{const s=await fetch(i,r);if(s.status>=500){n=await(s.text()||s.json());continue}return await this.parse(s)}catch(s){n=io(s);continue}throw new Error(n||"All APIs failed")}static async getWithFallback(t,r){return await In(r).retry(()=>this._getWithFallback(t,r))}static async _get(t,r){return await this.parse(await fetch(t,r))}static async get(t,r){return await In(r).retry(()=>this._get(t,r))}static async _post(t,r){return await this.parse(await fetch(t,{method:"POST",...r}))}static async post(t,r){return await In(r).retry(()=>this._post(t,r))}static async parse(t){const r=await t.text();if(t.status>=200&&t.status<300)return bf(r);throw new Error(r)}}function io(e){return(e==null?void 0:e.message)||(e==null?void 0:e.toString())||"unknown error"}const In=e=>new mf((e==null?void 0:e.retryCount)??2,(e==null?void 0:e.retryDelay)??1e3),Pn=e=>e.startsWith("0x")?e:`0x${e}`,tr=e=>e.startsWith("0x")?e.slice(2):e;var Dn,$n,jn;let us=class{constructor(t,r,n=void 0){Ci(this,Dn,void 0),Ci(this,$n,void 0),Ci(this,jn,void 0),Ui(this,Dn,t),Ui(this,jn,n),Ui(this,$n,r)}get ok(){return Ri(this,Dn)}get error(){return Ri(this,jn)}get val(){return Ri(this,$n)}};Dn=new WeakMap,$n=new WeakMap,jn=new WeakMap;const re=e=>new us(!0,e),D=(e,...t)=>{if(typeof e=="string"&&t&&t.length>0){let r=[e,...t].map(n=>{if(n){if(n instanceof Error)return n.message;if(typeof n=="string")return n;if(n!=null&&n.toString)return n.toString()}});return new us(!1,null,r.filter(n=>n!==void 0).join(" "))}return new us(!1,null,e)};var Ae=(e=>(e.Idle="Idle",e.Initiate="Initiate",e.Redeem="Redeem",e.Refund="Refund",e))(Ae||{});function ls(e){return typeof e=="string"&&(e=Buffer.from(e,"hex")),e.length===32?e:e.subarray(1,33)}function Qt(e,t){if(!e)throw new Error(t)}function wf(e){return Buffer.concat([Uint8Array.from([192]),gf(e)])}function gf(e){const t=no.encodingLength(e.length),r=Buffer.allocUnsafe(t);return no.encode(e.length,r),Buffer.concat([r,e])}function _f(e,t){if(e.compare(t)>0){const r=e;e=t,t=r}return[e,t]}const Zt=e=>e.length===64?e:e.slice(2),vf=e=>{if(!e)return!1;try{const t=Buffer.from(e,"hex");return ir.isPoint(t)}catch{return!1}},ma=(e,t,r,n)=>e+":"+t.toLowerCase()+"::"+r+":"+n.toLowerCase();function Ef(e,t){if(!e)return!1;const r=t===K.Environment.MAINNET?ie.networks.bitcoin:t===K.Environment.TESTNET?ie.networks.testnet:ie.networks.regtest;if(!r)return!1;ie.initEccLib(ir);try{return ie.address.toOutputScript(e,r),!0}catch{return!1}}const xf=e=>{switch(e){case K.Environment.MAINNET:return Or.BitcoinNetwork.Mainnet;case K.Environment.TESTNET:return Or.BitcoinNetwork.Testnet;default:throw new Error(`Invalid bitcoin network ${e}`)}};var le=(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))(le||{}),me=(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))(me||{});const Ts=(e,t,r)=>{const n=hs(e.source_swap,t),i=hs(e.destination_swap,r);if(i===me.RedeemDetected)return le.RedeemDetected;if(i===me.Redeemed)return le.Redeemed;if(n===me.Refunded)return le.Refunded;if(n===me.RefundDetected)return le.RefundDetected;if(i===me.Expired)return le.CounterPartySwapExpired;if(n===me.Expired)return le.Expired;if(i===me.Refunded)return le.CounterPartyRefunded;if(i===me.RefundDetected)return le.CounterPartyRefundDetected;const s=Number(e.create_order.additional_data.deadline);return i===me.Initiated?le.CounterPartyInitiated:i===me.InitiateDetected?le.CounterPartyInitiateDetected:dn(s,12)?le.DeadLineExceeded:n===me.Initiated?le.Initiated:dn(s,1)?le.DeadLineExceeded:n===me.InitiateDetected?le.InitiateDetected:n===me.Redeemed?le.CounterPartyRedeemed:n===me.RedeemDetected?le.CounterPartyRedeemDetected:le.Matched},hs=(e,t)=>{if(e.redeem_tx_hash)return Number(e.redeem_block_number)?me.Redeemed:me.RedeemDetected;if(e.refund_tx_hash)return Number(e.refund_block_number)?me.Refunded:me.RefundDetected;if(Number(e.initiate_block_number)){const r=Number(e.initiate_block_number)+e.timelock;if(t>r)return me.Expired}return e.initiate_tx_hash?Number(e.initiate_block_number)?me.Initiated:me.InitiateDetected:me.Idle},Sf=(e,t,r)=>{const n=Ts(e,t,r);return Bs(n)},Bs=e=>{switch(e){case le.Matched:return Ae.Initiate;case le.CounterPartyInitiated:case le.CounterPartyInitiateDetected:case le.RedeemDetected:return Ae.Redeem;case le.Expired:return Ae.Refund;default:return Ae.Idle}},dn=(e,t=0)=>{const r=Date.now(),n=e*1e3+t*36e5;return r>=n},Af=e=>e.filter(t=>!ba(t)),ba=e=>{const{source_swap:t,create_order:r}=e,{initiate_tx_hash:n,initiate_block_number:i}=t,{deadline:s}=r.additional_data;return n&&Number(i)?!1:n&&!Number(i)?dn(Number(s),12):n?!1:dn(Number(s),1)},kf=Buffer.from("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","hex"),Tf=Buffer.from("483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8","hex"),Bf=Buffer.concat([kf,Tf]),If=Buffer.from("0250929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0","hex"),so={failedToCreateInternalPubkey:"failed to create internal pubkey"};function Pf(){const e=pa.crypto.sha256(Buffer.from("GardenHTLC","utf-8")),t=ir.pointMultiply(Buffer.concat([Buffer.from("04","hex"),Bf]),e);if(!t)throw new Error(so.failedToCreateInternalPubkey);const r=ir.pointAdd(If,t);if(!r)throw new Error(so.failedToCreateInternalPubkey);return ls(Buffer.from(r))}var jt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Of(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function wa(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 we={},Fe={},Bt={},ai={};ai.byteLength=Uf;ai.toByteArray=Nf;ai.fromByteArray=Mf;var ht=[],Ze=[],Rf=typeof Uint8Array<"u"?Uint8Array:Array,Li="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var gr=0,Cf=Li.length;gr<Cf;++gr)ht[gr]=Li[gr],Ze[Li.charCodeAt(gr)]=gr;Ze[45]=62;Ze[95]=63;function ga(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 Uf(e){var t=ga(e),r=t[0],n=t[1];return(r+n)*3/4-n}function Lf(e,t,r){return(t+r)*3/4-r}function Nf(e){var t,r=ga(e),n=r[0],i=r[1],s=new Rf(Lf(e,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)t=Ze[e.charCodeAt(u)]<<18|Ze[e.charCodeAt(u+1)]<<12|Ze[e.charCodeAt(u+2)]<<6|Ze[e.charCodeAt(u+3)],s[o++]=t>>16&255,s[o++]=t>>8&255,s[o++]=t&255;return i===2&&(t=Ze[e.charCodeAt(u)]<<2|Ze[e.charCodeAt(u+1)]>>4,s[o++]=t&255),i===1&&(t=Ze[e.charCodeAt(u)]<<10|Ze[e.charCodeAt(u+1)]<<4|Ze[e.charCodeAt(u+2)]>>2,s[o++]=t>>8&255,s[o++]=t&255),s}function Ff(e){return ht[e>>18&63]+ht[e>>12&63]+ht[e>>6&63]+ht[e&63]}function Hf(e,t,r){for(var n,i=[],s=t;s<r;s+=3)n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),i.push(Ff(n));return i.join("")}function Mf(e){for(var t,r=e.length,n=r%3,i=[],s=16383,o=0,a=r-n;o<a;o+=s)i.push(Hf(e,o,o+s>a?a:o+s));return n===1?(t=e[r-1],i.push(ht[t>>2]+ht[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(ht[t>>10]+ht[t>>4&63]+ht[t<<2&63]+"=")),i.join("")}var Is={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Is.read=function(e,t,r,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,h=u>>1,d=-7,y=r?i-1:0,v=r?-1:1,p=e[t+y];for(y+=v,s=p&(1<<-d)-1,p>>=-d,d+=a;d>0;s=s*256+e[t+y],y+=v,d-=8);for(o=s&(1<<-d)-1,s>>=-d,d+=n;d>0;o=o*256+e[t+y],y+=v,d-=8);if(s===0)s=1-h;else{if(s===u)return o?NaN:(p?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-h}return(p?-1:1)*o*Math.pow(2,s-n)};Is.write=function(e,t,r,n,i,s){var o,a,u,h=s*8-i-1,d=(1<<h)-1,y=d>>1,v=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,I=n?1:-1,B=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=d):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+y>=1?t+=v/u:t+=v*Math.pow(2,1-y),t*u>=2&&(o++,u/=2),o+y>=d?(a=0,o=d):o+y>=1?(a=(t*u-1)*Math.pow(2,i),o=o+y):(a=t*Math.pow(2,y-1)*Math.pow(2,i),o=0));i>=8;e[r+p]=a&255,p+=I,a/=256,i-=8);for(o=o<<i|a,h+=i;h>0;e[r+p]=o&255,p+=I,o/=256,h-=8);e[r+p-I]|=B*128};/*!
|
|
2
2
|
* The buffer module from node.js, for the browser.
|
|
3
3
|
*
|
|
4
4
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
5
5
|
* @license MIT
|
|
6
|
-
*/(function(e){const t=hi,r=Rs,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=C,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const l=new Uint8Array(1),c={foo:function(){return 42}};return Object.setPrototypeOf(c,Uint8Array.prototype),Object.setPrototypeOf(l,c),l.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function o(l){if(l>i)throw new RangeError('The value "'+l+'" is invalid for option "size"');const c=new Uint8Array(l);return Object.setPrototypeOf(c,a.prototype),c}function a(l,c,f){if(typeof l=="number"){if(typeof c=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return p(l)}return u(l,c,f)}a.poolSize=8192;function u(l,c,f){if(typeof l=="string")return _(l,c);if(ArrayBuffer.isView(l))return I(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(Ke(l,ArrayBuffer)||l&&Ke(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ke(l,SharedArrayBuffer)||l&&Ke(l.buffer,SharedArrayBuffer)))return A(l,c,f);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const m=l.valueOf&&l.valueOf();if(m!=null&&m!==l)return a.from(m,c,f);const E=B(l);if(E)return E;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return a.from(l[Symbol.toPrimitive]("string"),c,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}a.from=function(l,c,f){return u(l,c,f)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function h(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function d(l,c,f){return h(l),l<=0?o(l):c!==void 0?typeof f=="string"?o(l).fill(c,f):o(l).fill(c):o(l)}a.alloc=function(l,c,f){return d(l,c,f)};function p(l){return h(l),o(l<0?0:O(l)|0)}a.allocUnsafe=function(l){return p(l)},a.allocUnsafeSlow=function(l){return p(l)};function _(l,c){if((typeof c!="string"||c==="")&&(c="utf8"),!a.isEncoding(c))throw new TypeError("Unknown encoding: "+c);const f=v(l,c)|0;let m=o(f);const E=m.write(l,c);return E!==f&&(m=m.slice(0,E)),m}function y(l){const c=l.length<0?0:O(l.length)|0,f=o(c);for(let m=0;m<c;m+=1)f[m]=l[m]&255;return f}function I(l){if(Ke(l,Uint8Array)){const c=new Uint8Array(l);return A(c.buffer,c.byteOffset,c.byteLength)}return y(l)}function A(l,c,f){if(c<0||l.byteLength<c)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<c+(f||0))throw new RangeError('"length" is outside of buffer bounds');let m;return c===void 0&&f===void 0?m=new Uint8Array(l):f===void 0?m=new Uint8Array(l,c):m=new Uint8Array(l,c,f),Object.setPrototypeOf(m,a.prototype),m}function B(l){if(a.isBuffer(l)){const c=O(l.length)|0,f=o(c);return f.length===0||l.copy(f,0,0,c),f}if(l.length!==void 0)return typeof l.length!="number"||Zt(l.length)?o(0):y(l);if(l.type==="Buffer"&&Array.isArray(l.data))return y(l.data)}function O(l){if(l>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return l|0}function C(l){return+l!=l&&(l=0),a.alloc(+l)}a.isBuffer=function(c){return c!=null&&c._isBuffer===!0&&c!==a.prototype},a.compare=function(c,f){if(Ke(c,Uint8Array)&&(c=a.from(c,c.offset,c.byteLength)),Ke(f,Uint8Array)&&(f=a.from(f,f.offset,f.byteLength)),!a.isBuffer(c)||!a.isBuffer(f))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(c===f)return 0;let m=c.length,E=f.length;for(let P=0,L=Math.min(m,E);P<L;++P)if(c[P]!==f[P]){m=c[P],E=f[P];break}return m<E?-1:E<m?1:0},a.isEncoding=function(c){switch(String(c).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(c,f){if(!Array.isArray(c))throw new TypeError('"list" argument must be an Array of Buffers');if(c.length===0)return a.alloc(0);let m;if(f===void 0)for(f=0,m=0;m<c.length;++m)f+=c[m].length;const E=a.allocUnsafe(f);let P=0;for(m=0;m<c.length;++m){let L=c[m];if(Ke(L,Uint8Array))P+L.length>E.length?(a.isBuffer(L)||(L=a.from(L)),L.copy(E,P)):Uint8Array.prototype.set.call(E,L,P);else if(a.isBuffer(L))L.copy(E,P);else throw new TypeError('"list" argument must be an Array of Buffers');P+=L.length}return E};function v(l,c){if(a.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||Ke(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);const f=l.length,m=arguments.length>2&&arguments[2]===!0;if(!m&&f===0)return 0;let E=!1;for(;;)switch(c){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return ne(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return f*2;case"hex":return f>>>1;case"base64":return zr(l).length;default:if(E)return m?-1:ne(l).length;c=(""+c).toLowerCase(),E=!0}}a.byteLength=v;function g(l,c,f){let m=!1;if((c===void 0||c<0)&&(c=0),c>this.length||((f===void 0||f>this.length)&&(f=this.length),f<=0)||(f>>>=0,c>>>=0,f<=c))return"";for(l||(l="utf8");;)switch(l){case"hex":return ze(this,c,f);case"utf8":case"utf-8":return V(this,c,f);case"ascii":return ue(this,c,f);case"latin1":case"binary":return rt(this,c,f);case"base64":return H(this,c,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ot(this,c,f);default:if(m)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),m=!0}}a.prototype._isBuffer=!0;function S(l,c,f){const m=l[c];l[c]=l[f],l[f]=m}a.prototype.swap16=function(){const c=this.length;if(c%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let f=0;f<c;f+=2)S(this,f,f+1);return this},a.prototype.swap32=function(){const c=this.length;if(c%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let f=0;f<c;f+=4)S(this,f,f+3),S(this,f+1,f+2);return this},a.prototype.swap64=function(){const c=this.length;if(c%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let f=0;f<c;f+=8)S(this,f,f+7),S(this,f+1,f+6),S(this,f+2,f+5),S(this,f+3,f+4);return this},a.prototype.toString=function(){const c=this.length;return c===0?"":arguments.length===0?V(this,0,c):g.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(c){if(!a.isBuffer(c))throw new TypeError("Argument must be a Buffer");return this===c?!0:a.compare(this,c)===0},a.prototype.inspect=function(){let c="";const f=e.INSPECT_MAX_BYTES;return c=this.toString("hex",0,f).replace(/(.{2})/g,"$1 ").trim(),this.length>f&&(c+=" ... "),"<Buffer "+c+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(c,f,m,E,P){if(Ke(c,Uint8Array)&&(c=a.from(c,c.offset,c.byteLength)),!a.isBuffer(c))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof c);if(f===void 0&&(f=0),m===void 0&&(m=c?c.length:0),E===void 0&&(E=0),P===void 0&&(P=this.length),f<0||m>c.length||E<0||P>this.length)throw new RangeError("out of range index");if(E>=P&&f>=m)return 0;if(E>=P)return-1;if(f>=m)return 1;if(f>>>=0,m>>>=0,E>>>=0,P>>>=0,this===c)return 0;let L=P-E,Z=m-f;const ve=Math.min(L,Z),be=this.slice(E,P),Ee=c.slice(f,m);for(let oe=0;oe<ve;++oe)if(be[oe]!==Ee[oe]){L=be[oe],Z=Ee[oe];break}return L<Z?-1:Z<L?1:0};function x(l,c,f,m,E){if(l.length===0)return-1;if(typeof f=="string"?(m=f,f=0):f>2147483647?f=2147483647:f<-2147483648&&(f=-2147483648),f=+f,Zt(f)&&(f=E?0:l.length-1),f<0&&(f=l.length+f),f>=l.length){if(E)return-1;f=l.length-1}else if(f<0)if(E)f=0;else return-1;if(typeof c=="string"&&(c=a.from(c,m)),a.isBuffer(c))return c.length===0?-1:M(l,c,f,m,E);if(typeof c=="number")return c=c&255,typeof Uint8Array.prototype.indexOf=="function"?E?Uint8Array.prototype.indexOf.call(l,c,f):Uint8Array.prototype.lastIndexOf.call(l,c,f):M(l,[c],f,m,E);throw new TypeError("val must be string, number or Buffer")}function M(l,c,f,m,E){let P=1,L=l.length,Z=c.length;if(m!==void 0&&(m=String(m).toLowerCase(),m==="ucs2"||m==="ucs-2"||m==="utf16le"||m==="utf-16le")){if(l.length<2||c.length<2)return-1;P=2,L/=2,Z/=2,f/=2}function ve(Ee,oe){return P===1?Ee[oe]:Ee.readUInt16BE(oe*P)}let be;if(E){let Ee=-1;for(be=f;be<L;be++)if(ve(l,be)===ve(c,Ee===-1?0:be-Ee)){if(Ee===-1&&(Ee=be),be-Ee+1===Z)return Ee*P}else Ee!==-1&&(be-=be-Ee),Ee=-1}else for(f+Z>L&&(f=L-Z),be=f;be>=0;be--){let Ee=!0;for(let oe=0;oe<Z;oe++)if(ve(l,be+oe)!==ve(c,oe)){Ee=!1;break}if(Ee)return be}return-1}a.prototype.includes=function(c,f,m){return this.indexOf(c,f,m)!==-1},a.prototype.indexOf=function(c,f,m){return x(this,c,f,m,!0)},a.prototype.lastIndexOf=function(c,f,m){return x(this,c,f,m,!1)};function j(l,c,f,m){f=Number(f)||0;const E=l.length-f;m?(m=Number(m),m>E&&(m=E)):m=E;const P=c.length;m>P/2&&(m=P/2);let L;for(L=0;L<m;++L){const Z=parseInt(c.substr(L*2,2),16);if(Zt(Z))return L;l[f+L]=Z}return L}function R(l,c,f,m){return _r(ne(c,l.length-f),l,f,m)}function z(l,c,f,m){return _r(Ut(c),l,f,m)}function ee(l,c,f,m){return _r(zr(c),l,f,m)}function U(l,c,f,m){return _r(gr(c,l.length-f),l,f,m)}a.prototype.write=function(c,f,m,E){if(f===void 0)E="utf8",m=this.length,f=0;else if(m===void 0&&typeof f=="string")E=f,m=this.length,f=0;else if(isFinite(f))f=f>>>0,isFinite(m)?(m=m>>>0,E===void 0&&(E="utf8")):(E=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const P=this.length-f;if((m===void 0||m>P)&&(m=P),c.length>0&&(m<0||f<0)||f>this.length)throw new RangeError("Attempt to write outside buffer bounds");E||(E="utf8");let L=!1;for(;;)switch(E){case"hex":return j(this,c,f,m);case"utf8":case"utf-8":return R(this,c,f,m);case"ascii":case"latin1":case"binary":return z(this,c,f,m);case"base64":return ee(this,c,f,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,c,f,m);default:if(L)throw new TypeError("Unknown encoding: "+E);E=(""+E).toLowerCase(),L=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function H(l,c,f){return c===0&&f===l.length?t.fromByteArray(l):t.fromByteArray(l.slice(c,f))}function V(l,c,f){f=Math.min(l.length,f);const m=[];let E=c;for(;E<f;){const P=l[E];let L=null,Z=P>239?4:P>223?3:P>191?2:1;if(E+Z<=f){let ve,be,Ee,oe;switch(Z){case 1:P<128&&(L=P);break;case 2:ve=l[E+1],(ve&192)===128&&(oe=(P&31)<<6|ve&63,oe>127&&(L=oe));break;case 3:ve=l[E+1],be=l[E+2],(ve&192)===128&&(be&192)===128&&(oe=(P&15)<<12|(ve&63)<<6|be&63,oe>2047&&(oe<55296||oe>57343)&&(L=oe));break;case 4:ve=l[E+1],be=l[E+2],Ee=l[E+3],(ve&192)===128&&(be&192)===128&&(Ee&192)===128&&(oe=(P&15)<<18|(ve&63)<<12|(be&63)<<6|Ee&63,oe>65535&&oe<1114112&&(L=oe))}}L===null?(L=65533,Z=1):L>65535&&(L-=65536,m.push(L>>>10&1023|55296),L=56320|L&1023),m.push(L),E+=Z}return fe(m)}const K=4096;function fe(l){const c=l.length;if(c<=K)return String.fromCharCode.apply(String,l);let f="",m=0;for(;m<c;)f+=String.fromCharCode.apply(String,l.slice(m,m+=K));return f}function ue(l,c,f){let m="";f=Math.min(l.length,f);for(let E=c;E<f;++E)m+=String.fromCharCode(l[E]&127);return m}function rt(l,c,f){let m="";f=Math.min(l.length,f);for(let E=c;E<f;++E)m+=String.fromCharCode(l[E]);return m}function ze(l,c,f){const m=l.length;(!c||c<0)&&(c=0),(!f||f<0||f>m)&&(f=m);let E="";for(let P=c;P<f;++P)E+=qr[l[P]];return E}function ot(l,c,f){const m=l.slice(c,f);let E="";for(let P=0;P<m.length-1;P+=2)E+=String.fromCharCode(m[P]+m[P+1]*256);return E}a.prototype.slice=function(c,f){const m=this.length;c=~~c,f=f===void 0?m:~~f,c<0?(c+=m,c<0&&(c=0)):c>m&&(c=m),f<0?(f+=m,f<0&&(f=0)):f>m&&(f=m),f<c&&(f=c);const E=this.subarray(c,f);return Object.setPrototypeOf(E,a.prototype),E};function ye(l,c,f){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+c>f)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(c,f,m){c=c>>>0,f=f>>>0,m||ye(c,f,this.length);let E=this[c],P=1,L=0;for(;++L<f&&(P*=256);)E+=this[c+L]*P;return E},a.prototype.readUintBE=a.prototype.readUIntBE=function(c,f,m){c=c>>>0,f=f>>>0,m||ye(c,f,this.length);let E=this[c+--f],P=1;for(;f>0&&(P*=256);)E+=this[c+--f]*P;return E},a.prototype.readUint8=a.prototype.readUInt8=function(c,f){return c=c>>>0,f||ye(c,1,this.length),this[c]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(c,f){return c=c>>>0,f||ye(c,2,this.length),this[c]|this[c+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(c,f){return c=c>>>0,f||ye(c,2,this.length),this[c]<<8|this[c+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(c,f){return c=c>>>0,f||ye(c,4,this.length),(this[c]|this[c+1]<<8|this[c+2]<<16)+this[c+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(c,f){return c=c>>>0,f||ye(c,4,this.length),this[c]*16777216+(this[c+1]<<16|this[c+2]<<8|this[c+3])},a.prototype.readBigUInt64LE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const E=f+this[++c]*2**8+this[++c]*2**16+this[++c]*2**24,P=this[++c]+this[++c]*2**8+this[++c]*2**16+m*2**24;return BigInt(E)+(BigInt(P)<<BigInt(32))}),a.prototype.readBigUInt64BE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const E=f*2**24+this[++c]*2**16+this[++c]*2**8+this[++c],P=this[++c]*2**24+this[++c]*2**16+this[++c]*2**8+m;return(BigInt(E)<<BigInt(32))+BigInt(P)}),a.prototype.readIntLE=function(c,f,m){c=c>>>0,f=f>>>0,m||ye(c,f,this.length);let E=this[c],P=1,L=0;for(;++L<f&&(P*=256);)E+=this[c+L]*P;return P*=128,E>=P&&(E-=Math.pow(2,8*f)),E},a.prototype.readIntBE=function(c,f,m){c=c>>>0,f=f>>>0,m||ye(c,f,this.length);let E=f,P=1,L=this[c+--E];for(;E>0&&(P*=256);)L+=this[c+--E]*P;return P*=128,L>=P&&(L-=Math.pow(2,8*f)),L},a.prototype.readInt8=function(c,f){return c=c>>>0,f||ye(c,1,this.length),this[c]&128?(255-this[c]+1)*-1:this[c]},a.prototype.readInt16LE=function(c,f){c=c>>>0,f||ye(c,2,this.length);const m=this[c]|this[c+1]<<8;return m&32768?m|4294901760:m},a.prototype.readInt16BE=function(c,f){c=c>>>0,f||ye(c,2,this.length);const m=this[c+1]|this[c]<<8;return m&32768?m|4294901760:m},a.prototype.readInt32LE=function(c,f){return c=c>>>0,f||ye(c,4,this.length),this[c]|this[c+1]<<8|this[c+2]<<16|this[c+3]<<24},a.prototype.readInt32BE=function(c,f){return c=c>>>0,f||ye(c,4,this.length),this[c]<<24|this[c+1]<<16|this[c+2]<<8|this[c+3]},a.prototype.readBigInt64LE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const E=this[c+4]+this[c+5]*2**8+this[c+6]*2**16+(m<<24);return(BigInt(E)<<BigInt(32))+BigInt(f+this[++c]*2**8+this[++c]*2**16+this[++c]*2**24)}),a.prototype.readBigInt64BE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const E=(f<<24)+this[++c]*2**16+this[++c]*2**8+this[++c];return(BigInt(E)<<BigInt(32))+BigInt(this[++c]*2**24+this[++c]*2**16+this[++c]*2**8+m)}),a.prototype.readFloatLE=function(c,f){return c=c>>>0,f||ye(c,4,this.length),r.read(this,c,!0,23,4)},a.prototype.readFloatBE=function(c,f){return c=c>>>0,f||ye(c,4,this.length),r.read(this,c,!1,23,4)},a.prototype.readDoubleLE=function(c,f){return c=c>>>0,f||ye(c,8,this.length),r.read(this,c,!0,52,8)},a.prototype.readDoubleBE=function(c,f){return c=c>>>0,f||ye(c,8,this.length),r.read(this,c,!1,52,8)};function xe(l,c,f,m,E,P){if(!a.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(c>E||c<P)throw new RangeError('"value" argument is out of bounds');if(f+m>l.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(c,f,m,E){if(c=+c,f=f>>>0,m=m>>>0,!E){const Z=Math.pow(2,8*m)-1;xe(this,c,f,m,Z,0)}let P=1,L=0;for(this[f]=c&255;++L<m&&(P*=256);)this[f+L]=c/P&255;return f+m},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(c,f,m,E){if(c=+c,f=f>>>0,m=m>>>0,!E){const Z=Math.pow(2,8*m)-1;xe(this,c,f,m,Z,0)}let P=m-1,L=1;for(this[f+P]=c&255;--P>=0&&(L*=256);)this[f+P]=c/L&255;return f+m},a.prototype.writeUint8=a.prototype.writeUInt8=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,1,255,0),this[f]=c&255,f+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,2,65535,0),this[f]=c&255,this[f+1]=c>>>8,f+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,2,65535,0),this[f]=c>>>8,this[f+1]=c&255,f+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,4,4294967295,0),this[f+3]=c>>>24,this[f+2]=c>>>16,this[f+1]=c>>>8,this[f]=c&255,f+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,4,4294967295,0),this[f]=c>>>24,this[f+1]=c>>>16,this[f+2]=c>>>8,this[f+3]=c&255,f+4};function qe(l,c,f,m,E){w(c,m,E,l,f,7);let P=Number(c&BigInt(4294967295));l[f++]=P,P=P>>8,l[f++]=P,P=P>>8,l[f++]=P,P=P>>8,l[f++]=P;let L=Number(c>>BigInt(32)&BigInt(4294967295));return l[f++]=L,L=L>>8,l[f++]=L,L=L>>8,l[f++]=L,L=L>>8,l[f++]=L,f}function Ct(l,c,f,m,E){w(c,m,E,l,f,7);let P=Number(c&BigInt(4294967295));l[f+7]=P,P=P>>8,l[f+6]=P,P=P>>8,l[f+5]=P,P=P>>8,l[f+4]=P;let L=Number(c>>BigInt(32)&BigInt(4294967295));return l[f+3]=L,L=L>>8,l[f+2]=L,L=L>>8,l[f+1]=L,L=L>>8,l[f]=L,f+8}a.prototype.writeBigUInt64LE=Je(function(c,f=0){return qe(this,c,f,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=Je(function(c,f=0){return Ct(this,c,f,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(c,f,m,E){if(c=+c,f=f>>>0,!E){const ve=Math.pow(2,8*m-1);xe(this,c,f,m,ve-1,-ve)}let P=0,L=1,Z=0;for(this[f]=c&255;++P<m&&(L*=256);)c<0&&Z===0&&this[f+P-1]!==0&&(Z=1),this[f+P]=(c/L>>0)-Z&255;return f+m},a.prototype.writeIntBE=function(c,f,m,E){if(c=+c,f=f>>>0,!E){const ve=Math.pow(2,8*m-1);xe(this,c,f,m,ve-1,-ve)}let P=m-1,L=1,Z=0;for(this[f+P]=c&255;--P>=0&&(L*=256);)c<0&&Z===0&&this[f+P+1]!==0&&(Z=1),this[f+P]=(c/L>>0)-Z&255;return f+m},a.prototype.writeInt8=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,1,127,-128),c<0&&(c=255+c+1),this[f]=c&255,f+1},a.prototype.writeInt16LE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,2,32767,-32768),this[f]=c&255,this[f+1]=c>>>8,f+2},a.prototype.writeInt16BE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,2,32767,-32768),this[f]=c>>>8,this[f+1]=c&255,f+2},a.prototype.writeInt32LE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,4,2147483647,-2147483648),this[f]=c&255,this[f+1]=c>>>8,this[f+2]=c>>>16,this[f+3]=c>>>24,f+4},a.prototype.writeInt32BE=function(c,f,m){return c=+c,f=f>>>0,m||xe(this,c,f,4,2147483647,-2147483648),c<0&&(c=4294967295+c+1),this[f]=c>>>24,this[f+1]=c>>>16,this[f+2]=c>>>8,this[f+3]=c&255,f+4},a.prototype.writeBigInt64LE=Je(function(c,f=0){return qe(this,c,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=Je(function(c,f=0){return Ct(this,c,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function bt(l,c,f,m,E,P){if(f+m>l.length)throw new RangeError("Index out of range");if(f<0)throw new RangeError("Index out of range")}function T(l,c,f,m,E){return c=+c,f=f>>>0,E||bt(l,c,f,4),r.write(l,c,f,m,23,4),f+4}a.prototype.writeFloatLE=function(c,f,m){return T(this,c,f,!0,m)},a.prototype.writeFloatBE=function(c,f,m){return T(this,c,f,!1,m)};function k(l,c,f,m,E){return c=+c,f=f>>>0,E||bt(l,c,f,8),r.write(l,c,f,m,52,8),f+8}a.prototype.writeDoubleLE=function(c,f,m){return k(this,c,f,!0,m)},a.prototype.writeDoubleBE=function(c,f,m){return k(this,c,f,!1,m)},a.prototype.copy=function(c,f,m,E){if(!a.isBuffer(c))throw new TypeError("argument should be a Buffer");if(m||(m=0),!E&&E!==0&&(E=this.length),f>=c.length&&(f=c.length),f||(f=0),E>0&&E<m&&(E=m),E===m||c.length===0||this.length===0)return 0;if(f<0)throw new RangeError("targetStart out of bounds");if(m<0||m>=this.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("sourceEnd out of bounds");E>this.length&&(E=this.length),c.length-f<E-m&&(E=c.length-f+m);const P=E-m;return this===c&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(f,m,E):Uint8Array.prototype.set.call(c,this.subarray(m,E),f),P},a.prototype.fill=function(c,f,m,E){if(typeof c=="string"){if(typeof f=="string"?(E=f,f=0,m=this.length):typeof m=="string"&&(E=m,m=this.length),E!==void 0&&typeof E!="string")throw new TypeError("encoding must be a string");if(typeof E=="string"&&!a.isEncoding(E))throw new TypeError("Unknown encoding: "+E);if(c.length===1){const L=c.charCodeAt(0);(E==="utf8"&&L<128||E==="latin1")&&(c=L)}}else typeof c=="number"?c=c&255:typeof c=="boolean"&&(c=Number(c));if(f<0||this.length<f||this.length<m)throw new RangeError("Out of range index");if(m<=f)return this;f=f>>>0,m=m===void 0?this.length:m>>>0,c||(c=0);let P;if(typeof c=="number")for(P=f;P<m;++P)this[P]=c;else{const L=a.isBuffer(c)?c:a.from(c,E),Z=L.length;if(Z===0)throw new TypeError('The value "'+c+'" is invalid for argument "value"');for(P=0;P<m-f;++P)this[P+f]=L[P%Z]}return this};const F={};function G(l,c,f){F[l]=class extends f{constructor(){super(),Object.defineProperty(this,"message",{value:c.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(E){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:E,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}G("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),G("ERR_INVALID_ARG_TYPE",function(l,c){return`The "${l}" argument must be of type number. Received type ${typeof c}`},TypeError),G("ERR_OUT_OF_RANGE",function(l,c,f){let m=`The value of "${l}" is out of range.`,E=f;return Number.isInteger(f)&&Math.abs(f)>2**32?E=Y(String(f)):typeof f=="bigint"&&(E=String(f),(f>BigInt(2)**BigInt(32)||f<-(BigInt(2)**BigInt(32)))&&(E=Y(E)),E+="n"),m+=` It must be ${c}. Received ${E}`,m},RangeError);function Y(l){let c="",f=l.length;const m=l[0]==="-"?1:0;for(;f>=m+4;f-=3)c=`_${l.slice(f-3,f)}${c}`;return`${l.slice(0,f)}${c}`}function b(l,c,f){N(c,"offset"),(l[c]===void 0||l[c+f]===void 0)&&$(c,l.length-(f+1))}function w(l,c,f,m,E,P){if(l>f||l<c){const L=typeof c=="bigint"?"n":"";let Z;throw c===0||c===BigInt(0)?Z=`>= 0${L} and < 2${L} ** ${(P+1)*8}${L}`:Z=`>= -(2${L} ** ${(P+1)*8-1}${L}) and < 2 ** ${(P+1)*8-1}${L}`,new F.ERR_OUT_OF_RANGE("value",Z,l)}b(m,E,P)}function N(l,c){if(typeof l!="number")throw new F.ERR_INVALID_ARG_TYPE(c,"number",l)}function $(l,c,f){throw Math.floor(l)!==l?(N(l,f),new F.ERR_OUT_OF_RANGE("offset","an integer",l)):c<0?new F.ERR_BUFFER_OUT_OF_BOUNDS:new F.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${c}`,l)}const me=/[^+/0-9A-Za-z-_]/g;function X(l){if(l=l.split("=")[0],l=l.trim().replace(me,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function ne(l,c){c=c||1/0;let f;const m=l.length;let E=null;const P=[];for(let L=0;L<m;++L){if(f=l.charCodeAt(L),f>55295&&f<57344){if(!E){if(f>56319){(c-=3)>-1&&P.push(239,191,189);continue}else if(L+1===m){(c-=3)>-1&&P.push(239,191,189);continue}E=f;continue}if(f<56320){(c-=3)>-1&&P.push(239,191,189),E=f;continue}f=(E-55296<<10|f-56320)+65536}else E&&(c-=3)>-1&&P.push(239,191,189);if(E=null,f<128){if((c-=1)<0)break;P.push(f)}else if(f<2048){if((c-=2)<0)break;P.push(f>>6|192,f&63|128)}else if(f<65536){if((c-=3)<0)break;P.push(f>>12|224,f>>6&63|128,f&63|128)}else if(f<1114112){if((c-=4)<0)break;P.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}else throw new Error("Invalid code point")}return P}function Ut(l){const c=[];for(let f=0;f<l.length;++f)c.push(l.charCodeAt(f)&255);return c}function gr(l,c){let f,m,E;const P=[];for(let L=0;L<l.length&&!((c-=2)<0);++L)f=l.charCodeAt(L),m=f>>8,E=f%256,P.push(E),P.push(m);return P}function zr(l){return t.toByteArray(X(l))}function _r(l,c,f,m){let E;for(E=0;E<m&&!(E+f>=c.length||E>=l.length);++E)c[E+f]=l[E];return E}function Ke(l,c){return l instanceof c||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===c.name}function Zt(l){return l!==l}const qr=function(){const l="0123456789abcdef",c=new Array(256);for(let f=0;f<16;++f){const m=f*16;for(let E=0;E<16;++E)c[m+E]=l[f]+l[E]}return c}();function Je(l){return typeof BigInt>"u"?er:l}function er(){throw new Error("BigInt not supported")}})(Rt);var bn={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}};bn.Null=bn.Nil;for(var fo in bn)bn[fo].toJSON=(function(e){return e}).bind(null,fo);var Cs=bn,sr=Cs;function xa(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function Us(e){return sr.Nil(e)?"":xa(e.constructor)}function Wf(e){return sr.Function(e)?"":sr.String(e)?JSON.stringify(e):e&&sr.Object(e)?"":e}function Ls(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function ti(e){return sr.Function(e)?e.toJSON?e.toJSON():xa(e):sr.Array(e)?"Array":e&&sr.Object(e)?"Object":e!==void 0?e:""}function Sa(e,t,r){var n=Wf(t);return"Expected "+ti(e)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function It(e,t,r){r=r||Us(t),this.message=Sa(e,t,r),Ls(this,It),this.__type=e,this.__value=t,this.__valueTypeName=r}It.prototype=Object.create(Error.prototype);It.prototype.constructor=It;function zf(e,t,r,n,i){var s='" of type ';return t==="key"&&(s='" with key type '),Sa('property "'+ti(r)+s+ti(e),n,i)}function Or(e,t,r,n,i){e?(i=i||Us(n),this.message=zf(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',Ls(this,It),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}Or.prototype=Object.create(Error.prototype);Or.prototype.constructor=It;function qf(e,t){return new It(e,{},t)}function Kf(e,t,r){return e instanceof Or?(t=t+"."+e.__property,e=new Or(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof It&&(e=new Or(e.__type,t,r,e.__value,e.__valueTypeName)),Ls(e),e}var Aa={TfTypeError:It,TfPropertyTypeError:Or,tfCustomError:qf,tfSubError:Kf,tfJSON:ti,getValueTypeName:Us},Di,uo;function Yf(){if(uo)return Di;uo=1;var e=Cs,t=Aa;function r(x){return Buffer.isBuffer(x)}function n(x){return typeof x=="string"&&/^([0-9a-f]{2})+$/i.test(x)}function i(x,M){var j=x.toJSON();function R(z){if(!x(z))return!1;if(z.length===M)return!0;throw t.tfCustomError(j+"(Length: "+M+")",j+"(Length: "+z.length+")")}return R.toJSON=function(){return j},R}var s=i.bind(null,e.Array),o=i.bind(null,r),a=i.bind(null,n),u=i.bind(null,e.String);function h(x,M,j){j=j||e.Number;function R(z,ee){return j(z,ee)&&z>x&&z<M}return R.toJSON=function(){return`${j.toJSON()} between [${x}, ${M}]`},R}var d=Math.pow(2,53)-1;function p(x){return typeof x=="number"&&isFinite(x)}function _(x){return x<<24>>24===x}function y(x){return x<<16>>16===x}function I(x){return(x|0)===x}function A(x){return typeof x=="number"&&x>=-d&&x<=d&&Math.floor(x)===x}function B(x){return(x&255)===x}function O(x){return(x&65535)===x}function C(x){return x>>>0===x}function v(x){return typeof x=="number"&&x>=0&&x<=d&&Math.floor(x)===x}var g={ArrayN:s,Buffer:r,BufferN:o,Finite:p,Hex:n,HexN:a,Int8:_,Int16:y,Int32:I,Int53:A,Range:h,StringN:u,UInt8:B,UInt16:O,UInt32:C,UInt53:v};for(var S in g)g[S].toJSON=(function(x){return x}).bind(null,S);return Di=g,Di}var vn=Aa,Pe=Cs,wt=vn.tfJSON,ka=vn.TfTypeError,Ta=vn.TfPropertyTypeError,Kr=vn.tfSubError,Xf=vn.getValueTypeName,St={arrayOf:function(t,r){t=dt(t),r=r||{};function n(i,s){return!Pe.Array(i)||Pe.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(o,a){try{return Ge(t,o,s)}catch(u){throw Kr(u,a)}})}return n.toJSON=function(){var i="["+wt(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=dt(t);function r(n,i){return Pe.Nil(n)||t(n,i,e)}return r.toJSON=function(){return"?"+wt(t)},r},map:function(t,r){t=dt(t),r&&(r=dt(r));function n(i,s){if(!Pe.Object(i)||Pe.Nil(i))return!1;for(var o in i){try{r&&Ge(r,o,s)}catch(u){throw Kr(u,o,"key")}try{var a=i[o];Ge(t,a,s)}catch(u){throw Kr(u,o)}}return!0}return r?n.toJSON=function(){return"{"+wt(r)+": "+wt(t)+"}"}:n.toJSON=function(){return"{"+wt(t)+"}"},n},object:function(t){var r={};for(var n in t)r[n]=dt(t[n]);function i(s,o){if(!Pe.Object(s)||Pe.Nil(s))return!1;var a;try{for(a in r){var u=r[a],h=s[a];Ge(u,h,o)}}catch(d){throw Kr(d,a)}if(o){for(a in s)if(!r[a])throw new Ta(void 0,a)}return!0}return i.toJSON=function(){return wt(r)},i},anyOf:function(){var t=[].slice.call(arguments).map(dt);function r(n,i){return t.some(function(s){try{return Ge(s,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(wt).join("|")},r},allOf:function(){var t=[].slice.call(arguments).map(dt);function r(n,i){return t.every(function(s){try{return Ge(s,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(wt).join(" & ")},r},quacksLike:function(t){function r(n){return t===Xf(n)}return r.toJSON=function(){return t},r},tuple:function(){var t=[].slice.call(arguments).map(dt);function r(n,i){return Pe.Nil(n)||Pe.Nil(n.length)||i&&n.length!==t.length?!1:t.every(function(s,o){try{return Ge(s,n[o],i)}catch(a){throw Kr(a,o)}})}return r.toJSON=function(){return"("+t.map(wt).join(", ")+")"},r},value:function(t){function r(n){return n===t}return r.toJSON=function(){return t},r}};St.oneOf=St.anyOf;function dt(e){if(Pe.String(e))return e[0]==="?"?St.maybe(e.slice(1)):Pe[e]||St.quacksLike(e);if(e&&Pe.Object(e)){if(Pe.Array(e)){if(e.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return St.arrayOf(e[0])}return St.object(e)}else if(Pe.Function(e))return e;return St.value(e)}function Ge(e,t,r,n){if(Pe.Function(e)){if(e(t,r))return!0;throw new ka(n||e,t)}return Ge(dt(e),t,r)}for(var Wt in Pe)Ge[Wt]=Pe[Wt];for(Wt in St)Ge[Wt]=St[Wt];var lo=Yf();for(Wt in lo)Ge[Wt]=lo[Wt];Ge.compile=dt;Ge.TfTypeError=ka;Ge.TfPropertyTypeError=Ta;var Ba=Ge;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.oneOf=e.Null=e.BufferN=e.Function=e.UInt32=e.UInt8=e.tuple=e.maybe=e.Hex=e.Buffer=e.String=e.Boolean=e.Array=e.Number=e.Hash256bit=e.Hash160bit=e.Buffer256bit=e.isTaptree=e.isTapleaf=e.TAPLEAF_VERSION_MASK=e.Satoshi=e.isPoint=e.stacksEqual=e.typeforce=void 0;const t=Rt;e.typeforce=Ba;const r=t.Buffer.alloc(32,0),n=t.Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex");function i(d,p){return d.length!==p.length?!1:d.every((_,y)=>_.equals(p[y]))}e.stacksEqual=i;function s(d){if(!t.Buffer.isBuffer(d)||d.length<33)return!1;const p=d[0],_=d.slice(1,33);if(_.compare(r)===0||_.compare(n)>=0)return!1;if((p===2||p===3)&&d.length===33)return!0;const y=d.slice(33);return y.compare(r)===0||y.compare(n)>=0?!1:p===4&&d.length===65}e.isPoint=s;const o=21*1e14;function a(d){return e.typeforce.UInt53(d)&&d<=o}e.Satoshi=a,e.TAPLEAF_VERSION_MASK=254;function u(d){return!d||!("output"in d)||!t.Buffer.isBuffer(d.output)?!1:d.version!==void 0?(d.version&e.TAPLEAF_VERSION_MASK)===d.version:!0}e.isTapleaf=u;function h(d){return(0,e.Array)(d)?d.length!==2?!1:d.every(p=>h(p)):u(d)}e.isTaptree=h,e.Buffer256bit=e.typeforce.BufferN(32),e.Hash160bit=e.typeforce.BufferN(20),e.Hash256bit=e.typeforce.BufferN(32),e.Number=e.typeforce.Number,e.Array=e.typeforce.Array,e.Boolean=e.typeforce.Boolean,e.String=e.typeforce.String,e.Buffer=e.typeforce.Buffer,e.Hex=e.typeforce.Hex,e.maybe=e.typeforce.maybe,e.tuple=e.typeforce.tuple,e.UInt8=e.typeforce.UInt8,e.UInt32=e.typeforce.UInt32,e.Function=e.typeforce.Function,e.BufferN=e.typeforce.BufferN,e.Null=e.typeforce.Null,e.oneOf=e.typeforce.oneOf})(He);var En={},Oe={};Object.defineProperty(Oe,"__esModule",{value:!0});Oe.BufferReader=Oe.BufferWriter=Oe.cloneBuffer=Oe.reverseBuffer=Oe.writeUInt64LE=Oe.readUInt64LE=Oe.varuint=void 0;const or=He,{typeforce:Ia}=or,wn=ba;Oe.varuint=wn;function Pa(e,t){if(typeof e!="number")throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}function Oa(e,t){const r=e.readUInt32LE(t);let n=e.readUInt32LE(t+4);return n*=4294967296,Pa(n+r,9007199254740991),n+r}Oe.readUInt64LE=Oa;function Ra(e,t,r){return Pa(t,9007199254740991),e.writeInt32LE(t&-1,r),e.writeUInt32LE(Math.floor(t/4294967296),r+4),r+8}Oe.writeUInt64LE=Ra;function Jf(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;n<e.length/2;n++)r=e[n],e[n]=e[t],e[t]=r,t--;return e}Oe.reverseBuffer=Jf;function Qf(e){const t=Buffer.allocUnsafe(e.length);return e.copy(t),t}Oe.cloneBuffer=Qf;class Ns{static withCapacity(t){return new Ns(Buffer.alloc(t))}constructor(t,r=0){this.buffer=t,this.offset=r,Ia(or.tuple(or.Buffer,or.UInt32),[t,r])}writeUInt8(t){this.offset=this.buffer.writeUInt8(t,this.offset)}writeInt32(t){this.offset=this.buffer.writeInt32LE(t,this.offset)}writeUInt32(t){this.offset=this.buffer.writeUInt32LE(t,this.offset)}writeUInt64(t){this.offset=Ra(this.buffer,t,this.offset)}writeVarInt(t){wn.encode(t,this.buffer,this.offset),this.offset+=wn.encode.bytes}writeSlice(t){if(this.buffer.length<this.offset+t.length)throw new Error("Cannot write slice out of bounds");this.offset+=t.copy(this.buffer,this.offset)}writeVarSlice(t){this.writeVarInt(t.length),this.writeSlice(t)}writeVector(t){this.writeVarInt(t.length),t.forEach(r=>this.writeVarSlice(r))}end(){if(this.buffer.length===this.offset)return this.buffer;throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`)}}Oe.BufferWriter=Ns;class Zf{constructor(t,r=0){this.buffer=t,this.offset=r,Ia(or.tuple(or.Buffer,or.UInt32),[t,r])}readUInt8(){const t=this.buffer.readUInt8(this.offset);return this.offset++,t}readInt32(){const t=this.buffer.readInt32LE(this.offset);return this.offset+=4,t}readUInt32(){const t=this.buffer.readUInt32LE(this.offset);return this.offset+=4,t}readUInt64(){const t=Oa(this.buffer,this.offset);return this.offset+=8,t}readVarInt(){const t=wn.decode(this.buffer,this.offset);return this.offset+=wn.decode.bytes,t}readSlice(t){if(this.buffer.length<this.offset+t)throw new Error("Cannot read slice out of bounds");const r=this.buffer.slice(this.offset,this.offset+t);return this.offset+=t,r}readVarSlice(){return this.readSlice(this.readVarInt())}readVector(){const t=this.readVarInt(),r=[];for(let n=0;n<t;n++)r.push(this.readVarSlice());return r}}Oe.BufferReader=Zf;var Yt={},Nr={},yt={},it={};Object.defineProperty(it,"__esModule",{value:!0});it.isBytes=Ua;it.number=ri;it.bool=Ca;it.bytes=Fs;it.hash=La;it.exists=Na;it.output=Fa;function ri(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`positive integer expected, not ${e}`)}function Ca(e){if(typeof e!="boolean")throw new Error(`boolean expected, not ${e}`)}function Ua(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Fs(e,...t){if(!Ua(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 La(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ri(e.outputLen),ri(e.blockLen)}function Na(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 Fa(e,t){Fs(e);const r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}const eu={number:ri,bool:Ca,bytes:Fs,hash:La,exists:Na,output:Fa};it.default=eu;var xn={},di={};Object.defineProperty(di,"__esModule",{value:!0});di.crypto=void 0;di.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;(function(e){/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Object.defineProperty(e,"__esModule",{value:!0}),e.Hash=e.nextTick=e.byteSwapIfBE=e.byteSwap=e.isLE=e.rotl=e.rotr=e.createView=e.u32=e.u8=void 0,e.isBytes=n,e.byteSwap32=d,e.bytesToHex=_,e.hexToBytes=A,e.asyncLoop=O,e.utf8ToBytes=C,e.toBytes=v,e.concatBytes=g,e.checkOpts=M,e.wrapConstructor=j,e.wrapConstructorWithOpts=R,e.wrapXOFConstructorWithOpts=z,e.randomBytes=ee;const t=di,r=it;function n(U){return U instanceof Uint8Array||U!=null&&typeof U=="object"&&U.constructor.name==="Uint8Array"}const i=U=>new Uint8Array(U.buffer,U.byteOffset,U.byteLength);e.u8=i;const s=U=>new Uint32Array(U.buffer,U.byteOffset,Math.floor(U.byteLength/4));e.u32=s;const o=U=>new DataView(U.buffer,U.byteOffset,U.byteLength);e.createView=o;const a=(U,H)=>U<<32-H|U>>>H;e.rotr=a;const u=(U,H)=>U<<H|U>>>32-H>>>0;e.rotl=u,e.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;const h=U=>U<<24&4278190080|U<<8&16711680|U>>>8&65280|U>>>24&255;e.byteSwap=h,e.byteSwapIfBE=e.isLE?U=>U:U=>(0,e.byteSwap)(U);function d(U){for(let H=0;H<U.length;H++)U[H]=(0,e.byteSwap)(U[H])}const p=Array.from({length:256},(U,H)=>H.toString(16).padStart(2,"0"));function _(U){(0,r.bytes)(U);let H="";for(let V=0;V<U.length;V++)H+=p[U[V]];return H}const y={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function I(U){if(U>=y._0&&U<=y._9)return U-y._0;if(U>=y._A&&U<=y._F)return U-(y._A-10);if(U>=y._a&&U<=y._f)return U-(y._a-10)}function A(U){if(typeof U!="string")throw new Error("hex string expected, got "+typeof U);const H=U.length,V=H/2;if(H%2)throw new Error("padded hex string expected, got unpadded hex of length "+H);const K=new Uint8Array(V);for(let fe=0,ue=0;fe<V;fe++,ue+=2){const rt=I(U.charCodeAt(ue)),ze=I(U.charCodeAt(ue+1));if(rt===void 0||ze===void 0){const ot=U[ue]+U[ue+1];throw new Error('hex string expected, got non-hex character "'+ot+'" at index '+ue)}K[fe]=rt*16+ze}return K}const B=async()=>{};e.nextTick=B;async function O(U,H,V){let K=Date.now();for(let fe=0;fe<U;fe++){V(fe);const ue=Date.now()-K;ue>=0&&ue<H||(await(0,e.nextTick)(),K+=ue)}}function C(U){if(typeof U!="string")throw new Error(`utf8ToBytes expected string, got ${typeof U}`);return new Uint8Array(new TextEncoder().encode(U))}function v(U){return typeof U=="string"&&(U=C(U)),(0,r.bytes)(U),U}function g(...U){let H=0;for(let K=0;K<U.length;K++){const fe=U[K];(0,r.bytes)(fe),H+=fe.length}const V=new Uint8Array(H);for(let K=0,fe=0;K<U.length;K++){const ue=U[K];V.set(ue,fe),fe+=ue.length}return V}class S{clone(){return this._cloneInto()}}e.Hash=S;const x={}.toString;function M(U,H){if(H!==void 0&&x.call(H)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(U,H)}function j(U){const H=K=>U().update(v(K)).digest(),V=U();return H.outputLen=V.outputLen,H.blockLen=V.blockLen,H.create=()=>U(),H}function R(U){const H=(K,fe)=>U(fe).update(v(K)).digest(),V=U({});return H.outputLen=V.outputLen,H.blockLen=V.blockLen,H.create=K=>U(K),H}function z(U){const H=(K,fe)=>U(fe).update(v(K)).digest(),V=U({});return H.outputLen=V.outputLen,H.blockLen=V.blockLen,H.create=K=>U(K),H}function ee(U=32){if(t.crypto&&typeof t.crypto.getRandomValues=="function")return t.crypto.getRandomValues(new Uint8Array(U));if(t.crypto&&typeof t.crypto.randomBytes=="function")return t.crypto.randomBytes(U);throw new Error("crypto.getRandomValues must be defined")}})(xn);Object.defineProperty(yt,"__esModule",{value:!0});yt.HashMD=yt.Maj=yt.Chi=void 0;const $i=it,Yr=xn;function tu(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),u=n?4:0,h=n?0:4;e.setUint32(t+u,o,n),e.setUint32(t+h,a,n)}const ru=(e,t,r)=>e&t^~e&r;yt.Chi=ru;const nu=(e,t,r)=>e&t^e&r^t&r;yt.Maj=nu;let iu=class extends Yr.Hash{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=(0,Yr.createView)(this.buffer)}update(t){(0,$i.exists)(this);const{view:r,buffer:n,blockLen:i}=this;t=(0,Yr.toBytes)(t);const s=t.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const u=(0,Yr.createView)(t);for(;i<=s-o;o+=i)this.process(u,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){(0,$i.exists)(this),(0,$i.output)(t,this),this.finished=!0;const{buffer:r,view:n,blockLen:i,isLE:s}=this;let{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let p=o;p<i;p++)r[p]=0;tu(n,i-8,BigInt(this.length*8),s),this.process(n,0);const a=(0,Yr.createView)(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const h=u/4,d=this.get();if(h>d.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<h;p++)a.setUint32(4*p,d[p],s)}digest(){const{buffer:t,outputLen:r}=this;this.digestInto(t);const n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};yt.HashMD=iu;Object.defineProperty(Nr,"__esModule",{value:!0});Nr.ripemd160=Nr.RIPEMD160=void 0;const su=yt,un=xn,ou=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Ha=new Uint8Array(new Array(16).fill(0).map((e,t)=>t)),au=Ha.map(e=>(9*e+5)%16);let Hs=[Ha],Ms=[au];for(let e=0;e<4;e++)for(let t of[Hs,Ms])t.push(t[e].map(r=>ou[r]));const Ma=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),cu=Hs.map((e,t)=>e.map(r=>Ma[t][r])),fu=Ms.map((e,t)=>e.map(r=>Ma[t][r])),uu=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),lu=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]);function ho(e,t,r,n){return e===0?t^r^n:e===1?t&r|~t&n:e===2?(t|~r)^n:e===3?t&n|r&~n:t^(r|~n)}const Ln=new Uint32Array(16);let Da=class extends su.HashMD{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:r,h2:n,h3:i,h4:s}=this;return[t,r,n,i,s]}set(t,r,n,i,s){this.h0=t|0,this.h1=r|0,this.h2=n|0,this.h3=i|0,this.h4=s|0}process(t,r){for(let y=0;y<16;y++,r+=4)Ln[y]=t.getUint32(r,!0);let n=this.h0|0,i=n,s=this.h1|0,o=s,a=this.h2|0,u=a,h=this.h3|0,d=h,p=this.h4|0,_=p;for(let y=0;y<5;y++){const I=4-y,A=uu[y],B=lu[y],O=Hs[y],C=Ms[y],v=cu[y],g=fu[y];for(let S=0;S<16;S++){const x=(0,un.rotl)(n+ho(y,s,a,h)+Ln[O[S]]+A,v[S])+p|0;n=p,p=h,h=(0,un.rotl)(a,10)|0,a=s,s=x}for(let S=0;S<16;S++){const x=(0,un.rotl)(i+ho(I,o,u,d)+Ln[C[S]]+B,g[S])+_|0;i=_,_=d,d=(0,un.rotl)(u,10)|0,u=o,o=x}}this.set(this.h1+a+d|0,this.h2+h+_|0,this.h3+p+i|0,this.h4+n+o|0,this.h0+s+u|0)}roundClean(){Ln.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}};Nr.RIPEMD160=Da;Nr.ripemd160=(0,un.wrapConstructor)(()=>new Da);var Fr={};Object.defineProperty(Fr,"__esModule",{value:!0});Fr.sha1=Fr.SHA1=void 0;const ji=yt,qn=xn,Xr=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),Lt=new Uint32Array(80);class $a extends ji.HashMD{constructor(){super(64,20,8,!1),this.A=Xr[0]|0,this.B=Xr[1]|0,this.C=Xr[2]|0,this.D=Xr[3]|0,this.E=Xr[4]|0}get(){const{A:t,B:r,C:n,D:i,E:s}=this;return[t,r,n,i,s]}set(t,r,n,i,s){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0}process(t,r){for(let u=0;u<16;u++,r+=4)Lt[u]=t.getUint32(r,!1);for(let u=16;u<80;u++)Lt[u]=(0,qn.rotl)(Lt[u-3]^Lt[u-8]^Lt[u-14]^Lt[u-16],1);let{A:n,B:i,C:s,D:o,E:a}=this;for(let u=0;u<80;u++){let h,d;u<20?(h=(0,ji.Chi)(i,s,o),d=1518500249):u<40?(h=i^s^o,d=1859775393):u<60?(h=(0,ji.Maj)(i,s,o),d=2400959708):(h=i^s^o,d=3395469782);const p=(0,qn.rotl)(n,5)+h+a+d+Lt[u]|0;a=o,o=s,s=(0,qn.rotl)(i,30),i=n,n=p}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,this.set(n,i,s,o,a)}roundClean(){Lt.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}}Fr.SHA1=$a;Fr.sha1=(0,qn.wrapConstructor)(()=>new $a);var Tt={};Object.defineProperty(Tt,"__esModule",{value:!0});Tt.sha224=Tt.sha256=Tt.SHA256=void 0;const Gi=yt,Ze=xn,hu=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]),Nt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ft=new Uint32Array(64);let Ds=class extends Gi.HashMD{constructor(){super(64,32,8,!1),this.A=Nt[0]|0,this.B=Nt[1]|0,this.C=Nt[2]|0,this.D=Nt[3]|0,this.E=Nt[4]|0,this.F=Nt[5]|0,this.G=Nt[6]|0,this.H=Nt[7]|0}get(){const{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:u}=this;return[t,r,n,i,s,o,a,u]}set(t,r,n,i,s,o,a,u){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=u|0}process(t,r){for(let p=0;p<16;p++,r+=4)Ft[p]=t.getUint32(r,!1);for(let p=16;p<64;p++){const _=Ft[p-15],y=Ft[p-2],I=(0,Ze.rotr)(_,7)^(0,Ze.rotr)(_,18)^_>>>3,A=(0,Ze.rotr)(y,17)^(0,Ze.rotr)(y,19)^y>>>10;Ft[p]=A+Ft[p-7]+I+Ft[p-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:u,G:h,H:d}=this;for(let p=0;p<64;p++){const _=(0,Ze.rotr)(a,6)^(0,Ze.rotr)(a,11)^(0,Ze.rotr)(a,25),y=d+_+(0,Gi.Chi)(a,u,h)+hu[p]+Ft[p]|0,A=((0,Ze.rotr)(n,2)^(0,Ze.rotr)(n,13)^(0,Ze.rotr)(n,22))+(0,Gi.Maj)(n,i,s)|0;d=h,h=u,u=a,a=o+y|0,o=s,s=i,i=n,n=y+A|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,u=u+this.F|0,h=h+this.G|0,d=d+this.H|0,this.set(n,i,s,o,a,u,h,d)}roundClean(){Ft.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};Tt.SHA256=Ds;class du extends Ds{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}Tt.sha256=(0,Ze.wrapConstructor)(()=>new Ds);Tt.sha224=(0,Ze.wrapConstructor)(()=>new du);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.taggedHash=e.TAGGED_HASH_PREFIXES=e.TAGS=e.hash256=e.hash160=e.sha256=e.sha1=e.ripemd160=void 0;const t=Nr,r=Fr,n=Tt;function i(d){return Buffer.from((0,t.ripemd160)(Uint8Array.from(d)))}e.ripemd160=i;function s(d){return Buffer.from((0,r.sha1)(Uint8Array.from(d)))}e.sha1=s;function o(d){return Buffer.from((0,n.sha256)(Uint8Array.from(d)))}e.sha256=o;function a(d){return Buffer.from((0,t.ripemd160)((0,n.sha256)(Uint8Array.from(d))))}e.hash160=a;function u(d){return Buffer.from((0,n.sha256)((0,n.sha256)(Uint8Array.from(d))))}e.hash256=u,e.TAGS=["BIP0340/challenge","BIP0340/aux","BIP0340/nonce","TapLeaf","TapBranch","TapSighash","TapTweak","KeyAgg list","KeyAgg coefficient"],e.TAGGED_HASH_PREFIXES={"BIP0340/challenge":Buffer.from([123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124,123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124]),"BIP0340/aux":Buffer.from([241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144,241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144]),"BIP0340/nonce":Buffer.from([7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47,7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47]),TapLeaf:Buffer.from([174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238,174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238]),TapBranch:Buffer.from([25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21,25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21]),TapSighash:Buffer.from([244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49,244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49]),TapTweak:Buffer.from([232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233,232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233]),"KeyAgg list":Buffer.from([72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240,72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240]),"KeyAgg coefficient":Buffer.from([191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129,191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129])};function h(d,p){return o(Buffer.concat([e.TAGGED_HASH_PREFIXES[d],p]))}e.taggedHash=h})(Yt);var Vi={},Bt={};Object.defineProperty(Bt,"__esModule",{value:!0});Bt.encode=Bt.decode=Bt.check=void 0;function pu(e){if(e.length<8||e.length>72||e[0]!==48||e[1]!==e.length-2||e[2]!==2)return!1;const t=e[3];if(t===0||5+t>=e.length||e[4+t]!==2)return!1;const r=e[5+t];return!(r===0||6+t+r!==e.length||e[4]&128||t>1&&e[4]===0&&!(e[5]&128)||e[t+6]&128||r>1&&e[t+6]===0&&!(e[t+7]&128))}Bt.check=pu;function yu(e){if(e.length<8)throw new Error("DER sequence length is too short");if(e.length>72)throw new Error("DER sequence length is too long");if(e[0]!==48)throw new Error("Expected DER sequence");if(e[1]!==e.length-2)throw new Error("DER sequence length is invalid");if(e[2]!==2)throw new Error("Expected DER integer");const t=e[3];if(t===0)throw new Error("R length is zero");if(5+t>=e.length)throw new Error("R length is too long");if(e[4+t]!==2)throw new Error("Expected DER integer (2)");const r=e[5+t];if(r===0)throw new Error("S length is zero");if(6+t+r!==e.length)throw new Error("S length is invalid");if(e[4]&128)throw new Error("R value is negative");if(t>1&&e[4]===0&&!(e[5]&128))throw new Error("R value excessively padded");if(e[t+6]&128)throw new Error("S value is negative");if(r>1&&e[t+6]===0&&!(e[t+7]&128))throw new Error("S value excessively padded");return{r:e.slice(4,4+t),s:e.slice(6+t)}}Bt.decode=yu;function mu(e,t){const r=e.length,n=t.length;if(r===0)throw new Error("R length is zero");if(n===0)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(n>33)throw new Error("S length is too long");if(e[0]&128)throw new Error("R value is negative");if(t[0]&128)throw new Error("S value is negative");if(r>1&&e[0]===0&&!(e[1]&128))throw new Error("R value excessively padded");if(n>1&&t[0]===0&&!(t[1]&128))throw new Error("S value excessively padded");const i=Buffer.allocUnsafe(6+r+n);return i[0]=48,i[1]=i.length-2,i[2]=2,i[3]=e.length,e.copy(i,4),i[4+r]=2,i[5+r]=t.length,t.copy(i,6+r),i}Bt.encode=mu;var cr={};Object.defineProperty(cr,"__esModule",{value:!0});cr.REVERSE_OPS=cr.OPS=void 0;const bs={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};cr.OPS=bs;const ja={};cr.REVERSE_OPS=ja;for(const e of Object.keys(bs)){const t=bs[e];ja[t]=e}var zt={};Object.defineProperty(zt,"__esModule",{value:!0});zt.decode=zt.encode=zt.encodingLength=void 0;const Vt=cr;function Ga(e){return e<Vt.OPS.OP_PUSHDATA1?1:e<=255?2:e<=65535?3:5}zt.encodingLength=Ga;function bu(e,t,r){const n=Ga(t);return n===1?e.writeUInt8(t,r):n===2?(e.writeUInt8(Vt.OPS.OP_PUSHDATA1,r),e.writeUInt8(t,r+1)):n===3?(e.writeUInt8(Vt.OPS.OP_PUSHDATA2,r),e.writeUInt16LE(t,r+1)):(e.writeUInt8(Vt.OPS.OP_PUSHDATA4,r),e.writeUInt32LE(t,r+1)),n}zt.encode=bu;function wu(e,t){const r=e.readUInt8(t);let n,i;if(r<Vt.OPS.OP_PUSHDATA1)n=r,i=1;else if(r===Vt.OPS.OP_PUSHDATA1){if(t+2>e.length)return null;n=e.readUInt8(t+1),i=2}else if(r===Vt.OPS.OP_PUSHDATA2){if(t+3>e.length)return null;n=e.readUInt16LE(t+1),i=3}else{if(t+5>e.length)return null;if(r!==Vt.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");n=e.readUInt32LE(t+1),i=5}return{opcode:r,number:n,size:i}}zt.decode=wu;var Hr={};Object.defineProperty(Hr,"__esModule",{value:!0});Hr.encode=Hr.decode=void 0;function gu(e,t,r){t=t||4,r=r===void 0?!0:r;const n=e.length;if(n===0)return 0;if(n>t)throw new TypeError("Script number overflow");if(r&&!(e[n-1]&127)&&(n<=1||!(e[n-2]&128)))throw new Error("Non-minimally encoded script number");if(n===5){const s=e.readUInt32LE(0),o=e.readUInt8(4);return o&128?-((o&-129)*4294967296+s):o*4294967296+s}let i=0;for(let s=0;s<n;++s)i|=e[s]<<8*s;return e[n-1]&128?-(i&~(128<<8*(n-1))):i}Hr.decode=gu;function _u(e){return e>2147483647?5:e>8388607?4:e>32767?3:e>127?2:e>0?1:0}function vu(e){let t=Math.abs(e);const r=_u(t),n=Buffer.allocUnsafe(r),i=e<0;for(let s=0;s<r;++s)n.writeUInt8(t&255,s),t>>=8;return n[r-1]&128?n.writeUInt8(i?128:0,r-1):i&&(n[r-1]|=128),n}Hr.encode=vu;var nr={},po;function Eu(){if(po)return nr;po=1,Object.defineProperty(nr,"__esModule",{value:!0}),nr.encode=nr.decode=void 0;const e=Bt,t=Xe(),r=He,{typeforce:n}=r,i=Buffer.alloc(1,0);function s(h){let d=0;for(;h[d]===0;)++d;return d===h.length?i:(h=h.slice(d),h[0]&128?Buffer.concat([i,h],1+h.length):h)}function o(h){h[0]===0&&(h=h.slice(1));const d=Buffer.alloc(32,0),p=Math.max(0,32-h.length);return h.copy(d,p),d}function a(h){const d=h.readUInt8(h.length-1);if(!(0,t.isDefinedHashType)(d))throw new Error("Invalid hashType "+d);const p=e.decode(h.slice(0,-1)),_=o(p.r),y=o(p.s);return{signature:Buffer.concat([_,y],64),hashType:d}}nr.decode=a;function u(h,d){if(n({signature:r.BufferN(64),hashType:r.UInt8},{signature:h,hashType:d}),!(0,t.isDefinedHashType)(d))throw new Error("Invalid hashType "+d);const p=Buffer.allocUnsafe(1);p.writeUInt8(d,0);const _=s(h.slice(0,32)),y=s(h.slice(32,64));return Buffer.concat([e.encode(_,y),p])}return nr.encode=u,nr}var yo;function Xe(){return yo||(yo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.signature=e.number=e.isCanonicalScriptSignature=e.isDefinedHashType=e.isCanonicalPubKey=e.toStack=e.fromASM=e.toASM=e.decompile=e.compile=e.countNonPushOnlyOPs=e.isPushOnly=e.OPS=void 0;const t=Bt,r=cr;Object.defineProperty(e,"OPS",{enumerable:!0,get:function(){return r.OPS}});const n=zt,i=Hr,s=Eu(),o=He,{typeforce:a}=o,u=r.OPS.OP_RESERVED;function h(R){return o.Number(R)&&(R===r.OPS.OP_0||R>=r.OPS.OP_1&&R<=r.OPS.OP_16||R===r.OPS.OP_1NEGATE)}function d(R){return o.Buffer(R)||h(R)}function p(R){return o.Array(R)&&R.every(d)}e.isPushOnly=p;function _(R){return R.length-R.filter(d).length}e.countNonPushOnlyOPs=_;function y(R){if(R.length===0)return r.OPS.OP_0;if(R.length===1){if(R[0]>=1&&R[0]<=16)return u+R[0];if(R[0]===129)return r.OPS.OP_1NEGATE}}function I(R){return Buffer.isBuffer(R)}function A(R){return o.Array(R)}function B(R){return Buffer.isBuffer(R)}function O(R){if(I(R))return R;a(o.Array,R);const z=R.reduce((H,V)=>B(V)?V.length===1&&y(V)!==void 0?H+1:H+n.encodingLength(V.length)+V.length:H+1,0),ee=Buffer.allocUnsafe(z);let U=0;if(R.forEach(H=>{if(B(H)){const V=y(H);if(V!==void 0){ee.writeUInt8(V,U),U+=1;return}U+=n.encode(ee,H.length,U),H.copy(ee,U),U+=H.length}else ee.writeUInt8(H,U),U+=1}),U!==ee.length)throw new Error("Could not decode chunks");return ee}e.compile=O;function C(R){if(A(R))return R;a(o.Buffer,R);const z=[];let ee=0;for(;ee<R.length;){const U=R[ee];if(U>r.OPS.OP_0&&U<=r.OPS.OP_PUSHDATA4){const H=n.decode(R,ee);if(H===null||(ee+=H.size,ee+H.number>R.length))return null;const V=R.slice(ee,ee+H.number);ee+=H.number;const K=y(V);K!==void 0?z.push(K):z.push(V)}else z.push(U),ee+=1}return z}e.decompile=C;function v(R){if(I(R)&&(R=C(R)),!R)throw new Error("Could not convert invalid chunks to ASM");return R.map(z=>{if(B(z)){const ee=y(z);if(ee===void 0)return z.toString("hex");z=ee}return r.REVERSE_OPS[z]}).join(" ")}e.toASM=v;function g(R){return a(o.String,R),O(R.split(" ").map(z=>r.OPS[z]!==void 0?r.OPS[z]:(a(o.Hex,z),Buffer.from(z,"hex"))))}e.fromASM=g;function S(R){return R=C(R),a(p,R),R.map(z=>B(z)?z:z===r.OPS.OP_0?Buffer.allocUnsafe(0):i.encode(z-u))}e.toStack=S;function x(R){return o.isPoint(R)}e.isCanonicalPubKey=x;function M(R){const z=R&-129;return z>0&&z<4}e.isDefinedHashType=M;function j(R){return!Buffer.isBuffer(R)||!M(R[R.length-1])?!1:t.check(R.slice(0,-1))}e.isCanonicalScriptSignature=j,e.number=i,e.signature=s}(Vi)),Vi}Object.defineProperty(En,"__esModule",{value:!0});En.Transaction=void 0;const Ae=Oe,Me=Yt,mo=Xe(),xu=Xe(),te=He,{typeforce:at}=te;function lt(e){const t=e.length;return Ae.varuint.encodingLength(t)+t}function Su(e){const t=e.length;return Ae.varuint.encodingLength(t)+e.reduce((r,n)=>r+lt(n),0)}const Gt=Buffer.allocUnsafe(0),bo=[],Wi=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),wo=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),Au=Buffer.from("ffffffffffffffff","hex"),ku={script:Gt,valueBuffer:Au};function Tu(e){return e.value!==void 0}class J{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(t,r){const n=new Ae.BufferReader(t),i=new J;i.version=n.readInt32();const s=n.readUInt8(),o=n.readUInt8();let a=!1;s===J.ADVANCED_TRANSACTION_MARKER&&o===J.ADVANCED_TRANSACTION_FLAG?a=!0:n.offset-=2;const u=n.readVarInt();for(let d=0;d<u;++d)i.ins.push({hash:n.readSlice(32),index:n.readUInt32(),script:n.readVarSlice(),sequence:n.readUInt32(),witness:bo});const h=n.readVarInt();for(let d=0;d<h;++d)i.outs.push({value:n.readUInt64(),script:n.readVarSlice()});if(a){for(let d=0;d<u;++d)i.ins[d].witness=n.readVector();if(!i.hasWitnesses())throw new Error("Transaction has superfluous witness data")}if(i.locktime=n.readUInt32(),r)return i;if(n.offset!==t.length)throw new Error("Transaction has unexpected data");return i}static fromHex(t){return J.fromBuffer(Buffer.from(t,"hex"),!1)}static isCoinbaseHash(t){at(te.Hash256bit,t);for(let r=0;r<32;++r)if(t[r]!==0)return!1;return!0}isCoinbase(){return this.ins.length===1&&J.isCoinbaseHash(this.ins[0].hash)}addInput(t,r,n,i){return at(te.tuple(te.Hash256bit,te.UInt32,te.maybe(te.UInt32),te.maybe(te.Buffer)),arguments),te.Null(n)&&(n=J.DEFAULT_SEQUENCE),this.ins.push({hash:t,index:r,script:i||Gt,sequence:n,witness:bo})-1}addOutput(t,r){return at(te.tuple(te.Buffer,te.Satoshi),arguments),this.outs.push({script:t,value:r})-1}hasWitnesses(){return this.ins.some(t=>t.witness.length!==0)}weight(){const t=this.byteLength(!1),r=this.byteLength(!0);return t*3+r}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(t=!0){const r=t&&this.hasWitnesses();return(r?10:8)+Ae.varuint.encodingLength(this.ins.length)+Ae.varuint.encodingLength(this.outs.length)+this.ins.reduce((n,i)=>n+40+lt(i.script),0)+this.outs.reduce((n,i)=>n+8+lt(i.script),0)+(r?this.ins.reduce((n,i)=>n+Su(i.witness),0):0)}clone(){const t=new J;return t.version=this.version,t.locktime=this.locktime,t.ins=this.ins.map(r=>({hash:r.hash,index:r.index,script:r.script,sequence:r.sequence,witness:r.witness})),t.outs=this.outs.map(r=>({script:r.script,value:r.value})),t}hashForSignature(t,r,n){if(at(te.tuple(te.UInt32,te.Buffer,te.Number),arguments),t>=this.ins.length)return wo;const i=mo.compile(mo.decompile(r).filter(a=>a!==xu.OPS.OP_CODESEPARATOR)),s=this.clone();if((n&31)===J.SIGHASH_NONE)s.outs=[],s.ins.forEach((a,u)=>{u!==t&&(a.sequence=0)});else if((n&31)===J.SIGHASH_SINGLE){if(t>=this.outs.length)return wo;s.outs.length=t+1;for(let a=0;a<t;a++)s.outs[a]=ku;s.ins.forEach((a,u)=>{u!==t&&(a.sequence=0)})}n&J.SIGHASH_ANYONECANPAY?(s.ins=[s.ins[t]],s.ins[0].script=i):(s.ins.forEach(a=>{a.script=Gt}),s.ins[t].script=i);const o=Buffer.allocUnsafe(s.byteLength(!1)+4);return o.writeInt32LE(n,o.length-4),s.__toBuffer(o,0,!1),Me.hash256(o)}hashForWitnessV1(t,r,n,i,s,o){if(at(te.tuple(te.UInt32,at.arrayOf(te.Buffer),at.arrayOf(te.Satoshi),te.UInt32),arguments),n.length!==this.ins.length||r.length!==this.ins.length)throw new Error("Must supply prevout script and value for all inputs");const a=i===J.SIGHASH_DEFAULT?J.SIGHASH_ALL:i&J.SIGHASH_OUTPUT_MASK,h=(i&J.SIGHASH_INPUT_MASK)===J.SIGHASH_ANYONECANPAY,d=a===J.SIGHASH_NONE,p=a===J.SIGHASH_SINGLE;let _=Gt,y=Gt,I=Gt,A=Gt,B=Gt;if(!h){let g=Ae.BufferWriter.withCapacity(36*this.ins.length);this.ins.forEach(S=>{g.writeSlice(S.hash),g.writeUInt32(S.index)}),_=Me.sha256(g.end()),g=Ae.BufferWriter.withCapacity(8*this.ins.length),n.forEach(S=>g.writeUInt64(S)),y=Me.sha256(g.end()),g=Ae.BufferWriter.withCapacity(r.map(lt).reduce((S,x)=>S+x)),r.forEach(S=>g.writeVarSlice(S)),I=Me.sha256(g.end()),g=Ae.BufferWriter.withCapacity(4*this.ins.length),this.ins.forEach(S=>g.writeUInt32(S.sequence)),A=Me.sha256(g.end())}if(d||p){if(p&&t<this.outs.length){const g=this.outs[t],S=Ae.BufferWriter.withCapacity(8+lt(g.script));S.writeUInt64(g.value),S.writeVarSlice(g.script),B=Me.sha256(S.end())}}else{const g=this.outs.map(x=>8+lt(x.script)).reduce((x,M)=>x+M),S=Ae.BufferWriter.withCapacity(g);this.outs.forEach(x=>{S.writeUInt64(x.value),S.writeVarSlice(x.script)}),B=Me.sha256(S.end())}const O=(s?2:0)+(o?1:0),C=174-(h?49:0)-(d?32:0)+(o?32:0)+(s?37:0),v=Ae.BufferWriter.withCapacity(C);if(v.writeUInt8(i),v.writeInt32(this.version),v.writeUInt32(this.locktime),v.writeSlice(_),v.writeSlice(y),v.writeSlice(I),v.writeSlice(A),d||p||v.writeSlice(B),v.writeUInt8(O),h){const g=this.ins[t];v.writeSlice(g.hash),v.writeUInt32(g.index),v.writeUInt64(n[t]),v.writeVarSlice(r[t]),v.writeUInt32(g.sequence)}else v.writeUInt32(t);if(o){const g=Ae.BufferWriter.withCapacity(lt(o));g.writeVarSlice(o),v.writeSlice(Me.sha256(g.end()))}return p&&v.writeSlice(B),s&&(v.writeSlice(s),v.writeUInt8(0),v.writeUInt32(4294967295)),Me.taggedHash("TapSighash",Buffer.concat([Buffer.from([0]),v.end()]))}hashForWitnessV0(t,r,n,i){at(te.tuple(te.UInt32,te.Buffer,te.Satoshi,te.UInt32),arguments);let s=Buffer.from([]),o,a=Wi,u=Wi,h=Wi;if(i&J.SIGHASH_ANYONECANPAY||(s=Buffer.allocUnsafe(36*this.ins.length),o=new Ae.BufferWriter(s,0),this.ins.forEach(p=>{o.writeSlice(p.hash),o.writeUInt32(p.index)}),u=Me.hash256(s)),!(i&J.SIGHASH_ANYONECANPAY)&&(i&31)!==J.SIGHASH_SINGLE&&(i&31)!==J.SIGHASH_NONE&&(s=Buffer.allocUnsafe(4*this.ins.length),o=new Ae.BufferWriter(s,0),this.ins.forEach(p=>{o.writeUInt32(p.sequence)}),h=Me.hash256(s)),(i&31)!==J.SIGHASH_SINGLE&&(i&31)!==J.SIGHASH_NONE){const p=this.outs.reduce((_,y)=>_+8+lt(y.script),0);s=Buffer.allocUnsafe(p),o=new Ae.BufferWriter(s,0),this.outs.forEach(_=>{o.writeUInt64(_.value),o.writeVarSlice(_.script)}),a=Me.hash256(s)}else if((i&31)===J.SIGHASH_SINGLE&&t<this.outs.length){const p=this.outs[t];s=Buffer.allocUnsafe(8+lt(p.script)),o=new Ae.BufferWriter(s,0),o.writeUInt64(p.value),o.writeVarSlice(p.script),a=Me.hash256(s)}s=Buffer.allocUnsafe(156+lt(r)),o=new Ae.BufferWriter(s,0);const d=this.ins[t];return o.writeInt32(this.version),o.writeSlice(u),o.writeSlice(h),o.writeSlice(d.hash),o.writeUInt32(d.index),o.writeVarSlice(r),o.writeUInt64(n),o.writeUInt32(d.sequence),o.writeSlice(a),o.writeUInt32(this.locktime),o.writeUInt32(i),Me.hash256(s)}getHash(t){return t&&this.isCoinbase()?Buffer.alloc(32,0):Me.hash256(this.__toBuffer(void 0,void 0,t))}getId(){return(0,Ae.reverseBuffer)(this.getHash(!1)).toString("hex")}toBuffer(t,r){return this.__toBuffer(t,r,!0)}toHex(){return this.toBuffer(void 0,void 0).toString("hex")}setInputScript(t,r){at(te.tuple(te.Number,te.Buffer),arguments),this.ins[t].script=r}setWitness(t,r){at(te.tuple(te.Number,[te.Buffer]),arguments),this.ins[t].witness=r}__toBuffer(t,r,n=!1){t||(t=Buffer.allocUnsafe(this.byteLength(n)));const i=new Ae.BufferWriter(t,r||0);i.writeInt32(this.version);const s=n&&this.hasWitnesses();return s&&(i.writeUInt8(J.ADVANCED_TRANSACTION_MARKER),i.writeUInt8(J.ADVANCED_TRANSACTION_FLAG)),i.writeVarInt(this.ins.length),this.ins.forEach(o=>{i.writeSlice(o.hash),i.writeUInt32(o.index),i.writeVarSlice(o.script),i.writeUInt32(o.sequence)}),i.writeVarInt(this.outs.length),this.outs.forEach(o=>{Tu(o)?i.writeUInt64(o.value):i.writeSlice(o.valueBuffer),i.writeVarSlice(o.script)}),s&&this.ins.forEach(o=>{i.writeVector(o.witness)}),i.writeUInt32(this.locktime),r!==void 0?t.slice(r,i.offset):t}}En.Transaction=J;J.DEFAULT_SEQUENCE=4294967295;J.SIGHASH_DEFAULT=0;J.SIGHASH_ALL=1;J.SIGHASH_NONE=2;J.SIGHASH_SINGLE=3;J.SIGHASH_ANYONECANPAY=128;J.SIGHASH_OUTPUT_MASK=3;J.SIGHASH_INPUT_MASK=128;J.ADVANCED_TRANSACTION_MARKER=0;J.ADVANCED_TRANSACTION_FLAG=1;var ae={},Sn={};Object.defineProperty(Sn,"__esModule",{value:!0});const Bu=9007199254740991;function $s(e){if(e<0||e>Bu||e%1!==0)throw new RangeError("value out of range")}function ln(e,t,r){if($s(e),t||(t=Buffer.allocUnsafe(Va(e))),!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),e<253?(t.writeUInt8(e,r),Object.assign(ln,{bytes:1})):e<=65535?(t.writeUInt8(253,r),t.writeUInt16LE(e,r+1),Object.assign(ln,{bytes:3})):e<=4294967295?(t.writeUInt8(254,r),t.writeUInt32LE(e,r+1),Object.assign(ln,{bytes:5})):(t.writeUInt8(255,r),t.writeUInt32LE(e>>>0,r+1),t.writeUInt32LE(e/4294967296|0,r+5),Object.assign(ln,{bytes:9})),t}Sn.encode=ln;function hn(e,t){if(!Buffer.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");t||(t=0);const r=e.readUInt8(t);if(r<253)return Object.assign(hn,{bytes:1}),r;if(r===253)return Object.assign(hn,{bytes:3}),e.readUInt16LE(t+1);if(r===254)return Object.assign(hn,{bytes:5}),e.readUInt32LE(t+1);{Object.assign(hn,{bytes:9});const n=e.readUInt32LE(t+1),s=e.readUInt32LE(t+5)*4294967296+n;return $s(s),s}}Sn.decode=hn;function Va(e){return $s(e),e<253?1:e<=65535?3:e<=4294967295?5:9}Sn.encodingLength=Va;var zi={},pi={},Fe={};Object.defineProperty(Fe,"__esModule",{value:!0});Fe.testnet=Fe.regtest=Fe.bitcoin=void 0;Fe.bitcoin={messagePrefix:`Bitcoin Signed Message:
|
|
7
|
-
`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};
|
|
8
|
-
`,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};
|
|
9
|
-
`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0});Ye.value=Ye.prop=void 0;function Iu(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){const n=r.call(this);return this[t]=n,n},set(n){Object.defineProperty(this,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}})}Ye.prop=Iu;function Pu(e){let t;return()=>(t!==void 0||(t=e()),t)}Ye.value=Pu;Object.defineProperty(pi,"__esModule",{value:!0});pi.p2data=void 0;const Ou=Fe,Kn=Xe(),ct=He,go=Ye,_o=Kn.OPS;function Ru(e,t){if(!e.data&&!e.output)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,ct.typeforce)({network:ct.typeforce.maybe(ct.typeforce.Object),output:ct.typeforce.maybe(ct.typeforce.Buffer),data:ct.typeforce.maybe(ct.typeforce.arrayOf(ct.typeforce.Buffer))},e);const n={name:"embed",network:e.network||Ou.bitcoin};if(go.prop(n,"output",()=>{if(e.data)return Kn.compile([_o.OP_RETURN].concat(e.data))}),go.prop(n,"data",()=>{if(e.output)return Kn.decompile(e.output).slice(1)}),t.validate&&e.output){const i=Kn.decompile(e.output);if(i[0]!==_o.OP_RETURN)throw new TypeError("Output is invalid");if(!i.slice(1).every(ct.typeforce.Buffer))throw new TypeError("Output is invalid");if(e.data&&!(0,ct.stacksEqual)(e.data,n.data))throw new TypeError("Data mismatch")}return Object.assign(n,e)}pi.p2data=Ru;var yi={};Object.defineProperty(yi,"__esModule",{value:!0});yi.p2ms=void 0;const Cu=Fe,Ar=Xe(),Se=He,Ht=Ye,kr=Ar.OPS,Nn=kr.OP_RESERVED;function Uu(e,t){if(!e.input&&!e.output&&!(e.pubkeys&&e.m!==void 0)&&!e.signatures)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{});function r(u){return Ar.isCanonicalScriptSignature(u)||(t.allowIncomplete&&u===kr.OP_0)!==void 0}(0,Se.typeforce)({network:Se.typeforce.maybe(Se.typeforce.Object),m:Se.typeforce.maybe(Se.typeforce.Number),n:Se.typeforce.maybe(Se.typeforce.Number),output:Se.typeforce.maybe(Se.typeforce.Buffer),pubkeys:Se.typeforce.maybe(Se.typeforce.arrayOf(Se.isPoint)),signatures:Se.typeforce.maybe(Se.typeforce.arrayOf(r)),input:Se.typeforce.maybe(Se.typeforce.Buffer)},e);const i={network:e.network||Cu.bitcoin};let s=[],o=!1;function a(u){o||(o=!0,s=Ar.decompile(u),i.m=s[0]-Nn,i.n=s[s.length-2]-Nn,i.pubkeys=s.slice(1,-2))}if(Ht.prop(i,"output",()=>{if(e.m&&i.n&&e.pubkeys)return Ar.compile([].concat(Nn+e.m,e.pubkeys,Nn+i.n,kr.OP_CHECKMULTISIG))}),Ht.prop(i,"m",()=>{if(i.output)return a(i.output),i.m}),Ht.prop(i,"n",()=>{if(i.pubkeys)return i.pubkeys.length}),Ht.prop(i,"pubkeys",()=>{if(e.output)return a(e.output),i.pubkeys}),Ht.prop(i,"signatures",()=>{if(e.input)return Ar.decompile(e.input).slice(1)}),Ht.prop(i,"input",()=>{if(e.signatures)return Ar.compile([kr.OP_0].concat(e.signatures))}),Ht.prop(i,"witness",()=>{if(i.input)return[]}),Ht.prop(i,"name",()=>{if(!(!i.m||!i.n))return`p2ms(${i.m} of ${i.n})`}),t.validate){if(e.output){if(a(e.output),!Se.typeforce.Number(s[0]))throw new TypeError("Output is invalid");if(!Se.typeforce.Number(s[s.length-2]))throw new TypeError("Output is invalid");if(s[s.length-1]!==kr.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(i.m<=0||i.n>16||i.m>i.n||i.n!==s.length-3)throw new TypeError("Output is invalid");if(!i.pubkeys.every(u=>(0,Se.isPoint)(u)))throw new TypeError("Output is invalid");if(e.m!==void 0&&e.m!==i.m)throw new TypeError("m mismatch");if(e.n!==void 0&&e.n!==i.n)throw new TypeError("n mismatch");if(e.pubkeys&&!(0,Se.stacksEqual)(e.pubkeys,i.pubkeys))throw new TypeError("Pubkeys mismatch")}if(e.pubkeys){if(e.n!==void 0&&e.n!==e.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(i.n=e.pubkeys.length,i.n<i.m)throw new TypeError("Pubkey count cannot be less than m")}if(e.signatures){if(e.signatures.length<i.m)throw new TypeError("Not enough signatures provided");if(e.signatures.length>i.m)throw new TypeError("Too many signatures provided")}if(e.input){if(e.input[0]!==kr.OP_0)throw new TypeError("Input is invalid");if(i.signatures.length===0||!i.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(e.signatures&&!(0,Se.stacksEqual)(e.signatures,i.signatures))throw new TypeError("Signature mismatch");if(e.m!==void 0&&e.m!==e.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(i,e)}yi.p2ms=Uu;var mi={};Object.defineProperty(mi,"__esModule",{value:!0});mi.p2pk=void 0;const Lu=Fe,Tr=Xe(),nt=He,xr=Ye,vo=Tr.OPS;function Nu(e,t){if(!e.input&&!e.output&&!e.pubkey&&!e.input&&!e.signature)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,nt.typeforce)({network:nt.typeforce.maybe(nt.typeforce.Object),output:nt.typeforce.maybe(nt.typeforce.Buffer),pubkey:nt.typeforce.maybe(nt.isPoint),signature:nt.typeforce.maybe(Tr.isCanonicalScriptSignature),input:nt.typeforce.maybe(nt.typeforce.Buffer)},e);const r=xr.value(()=>Tr.decompile(e.input)),i={name:"p2pk",network:e.network||Lu.bitcoin};if(xr.prop(i,"output",()=>{if(e.pubkey)return Tr.compile([e.pubkey,vo.OP_CHECKSIG])}),xr.prop(i,"pubkey",()=>{if(e.output)return e.output.slice(1,-1)}),xr.prop(i,"signature",()=>{if(e.input)return r()[0]}),xr.prop(i,"input",()=>{if(e.signature)return Tr.compile([e.signature])}),xr.prop(i,"witness",()=>{if(i.input)return[]}),t.validate){if(e.output){if(e.output[e.output.length-1]!==vo.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!(0,nt.isPoint)(i.pubkey))throw new TypeError("Output pubkey is invalid");if(e.pubkey&&!e.pubkey.equals(i.pubkey))throw new TypeError("Pubkey mismatch")}if(e.signature&&e.input&&!e.input.equals(i.input))throw new TypeError("Signature mismatch");if(e.input){if(r().length!==1)throw new TypeError("Input is invalid");if(!Tr.isCanonicalScriptSignature(i.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(i,e)}mi.p2pk=Nu;var bi={};function Fu(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var n=0;n<e.length;n++){var i=e.charAt(n),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=n}var o=e.length,a=e.charAt(0),u=Math.log(o)/Math.log(256),h=Math.log(256)/Math.log(o);function d(y){if(y instanceof Uint8Array||(ArrayBuffer.isView(y)?y=new Uint8Array(y.buffer,y.byteOffset,y.byteLength):Array.isArray(y)&&(y=Uint8Array.from(y))),!(y instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(y.length===0)return"";for(var I=0,A=0,B=0,O=y.length;B!==O&&y[B]===0;)B++,I++;for(var C=(O-B)*h+1>>>0,v=new Uint8Array(C);B!==O;){for(var g=y[B],S=0,x=C-1;(g!==0||S<A)&&x!==-1;x--,S++)g+=256*v[x]>>>0,v[x]=g%o>>>0,g=g/o>>>0;if(g!==0)throw new Error("Non-zero carry");A=S,B++}for(var M=C-A;M!==C&&v[M]===0;)M++;for(var j=a.repeat(I);M<C;++M)j+=e.charAt(v[M]);return j}function p(y){if(typeof y!="string")throw new TypeError("Expected String");if(y.length===0)return new Uint8Array;for(var I=0,A=0,B=0;y[I]===a;)A++,I++;for(var O=(y.length-I)*u+1>>>0,C=new Uint8Array(O);y[I];){var v=t[y.charCodeAt(I)];if(v===255)return;for(var g=0,S=O-1;(v!==0||g<B)&&S!==-1;S--,g++)v+=o*C[S]>>>0,C[S]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");B=g,I++}for(var x=O-B;x!==O&&C[x]===0;)x++;for(var M=new Uint8Array(A+(O-x)),j=A;x!==O;)M[j++]=C[x++];return M}function _(y){var I=p(y);if(I)return I;throw new Error("Non-base"+o+" character")}return{encode:d,decodeUnsafe:p,decode:_}}var Hu=Fu;const Mu=Hu,Du="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var $u=Mu(Du),qi=$u,ju=function(e){function t(s){var o=Uint8Array.from(s),a=e(o),u=o.length+4,h=new Uint8Array(u);return h.set(o,0),h.set(a.subarray(0,4),o.length),qi.encode(h,u)}function r(s){var o=s.slice(0,-4),a=s.slice(-4),u=e(o);if(!(a[0]^u[0]|a[1]^u[1]|a[2]^u[2]|a[3]^u[3]))return o}function n(s){var o=qi.decodeUnsafe(s);if(o)return r(o)}function i(s){var o=qi.decode(s),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:t,decode:i,decodeUnsafe:n}},{sha256:Eo}=Tt,Gu=ju;function Vu(e){return Eo(Eo(e))}var js=Gu(Vu);Object.defineProperty(bi,"__esModule",{value:!0});bi.p2pkh=void 0;const Ki=Yt,Wu=Fe,Br=Xe(),De=He,gt=Ye,xo=js,Mt=Br.OPS;function zu(e,t){if(!e.address&&!e.hash&&!e.output&&!e.pubkey&&!e.input)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,De.typeforce)({network:De.typeforce.maybe(De.typeforce.Object),address:De.typeforce.maybe(De.typeforce.String),hash:De.typeforce.maybe(De.typeforce.BufferN(20)),output:De.typeforce.maybe(De.typeforce.BufferN(25)),pubkey:De.typeforce.maybe(De.isPoint),signature:De.typeforce.maybe(Br.isCanonicalScriptSignature),input:De.typeforce.maybe(De.typeforce.Buffer)},e);const r=gt.value(()=>{const o=Buffer.from(xo.decode(e.address)),a=o.readUInt8(0),u=o.slice(1);return{version:a,hash:u}}),n=gt.value(()=>Br.decompile(e.input)),i=e.network||Wu.bitcoin,s={name:"p2pkh",network:i};if(gt.prop(s,"address",()=>{if(!s.hash)return;const o=Buffer.allocUnsafe(21);return o.writeUInt8(i.pubKeyHash,0),s.hash.copy(o,1),xo.encode(o)}),gt.prop(s,"hash",()=>{if(e.output)return e.output.slice(3,23);if(e.address)return r().hash;if(e.pubkey||s.pubkey)return Ki.hash160(e.pubkey||s.pubkey)}),gt.prop(s,"output",()=>{if(s.hash)return Br.compile([Mt.OP_DUP,Mt.OP_HASH160,s.hash,Mt.OP_EQUALVERIFY,Mt.OP_CHECKSIG])}),gt.prop(s,"pubkey",()=>{if(e.input)return n()[1]}),gt.prop(s,"signature",()=>{if(e.input)return n()[0]}),gt.prop(s,"input",()=>{if(e.pubkey&&e.signature)return Br.compile([e.signature,e.pubkey])}),gt.prop(s,"witness",()=>{if(s.input)return[]}),t.validate){let o=Buffer.from([]);if(e.address){if(r().version!==i.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(r().hash.length!==20)throw new TypeError("Invalid address");o=r().hash}if(e.hash){if(o.length>0&&!o.equals(e.hash))throw new TypeError("Hash mismatch");o=e.hash}if(e.output){if(e.output.length!==25||e.output[0]!==Mt.OP_DUP||e.output[1]!==Mt.OP_HASH160||e.output[2]!==20||e.output[23]!==Mt.OP_EQUALVERIFY||e.output[24]!==Mt.OP_CHECKSIG)throw new TypeError("Output is invalid");const a=e.output.slice(3,23);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(e.pubkey){const a=Ki.hash160(e.pubkey);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(e.input){const a=n();if(a.length!==2)throw new TypeError("Input is invalid");if(!Br.isCanonicalScriptSignature(a[0]))throw new TypeError("Input has invalid signature");if(!(0,De.isPoint)(a[1]))throw new TypeError("Input has invalid pubkey");if(e.signature&&!e.signature.equals(a[0]))throw new TypeError("Signature mismatch");if(e.pubkey&&!e.pubkey.equals(a[1]))throw new TypeError("Pubkey mismatch");const u=Ki.hash160(a[1]);if(o.length>0&&!o.equals(u))throw new TypeError("Hash mismatch")}}return Object.assign(s,e)}bi.p2pkh=zu;var wi={};Object.defineProperty(wi,"__esModule",{value:!0});wi.p2sh=void 0;const So=Yt,qu=Fe,ht=Xe(),le=He,ft=Ye,Ao=js,Jr=ht.OPS;function Ku(e,t){if(!e.address&&!e.hash&&!e.output&&!e.redeem&&!e.input)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,le.typeforce)({network:le.typeforce.maybe(le.typeforce.Object),address:le.typeforce.maybe(le.typeforce.String),hash:le.typeforce.maybe(le.typeforce.BufferN(20)),output:le.typeforce.maybe(le.typeforce.BufferN(23)),redeem:le.typeforce.maybe({network:le.typeforce.maybe(le.typeforce.Object),output:le.typeforce.maybe(le.typeforce.Buffer),input:le.typeforce.maybe(le.typeforce.Buffer),witness:le.typeforce.maybe(le.typeforce.arrayOf(le.typeforce.Buffer))}),input:le.typeforce.maybe(le.typeforce.Buffer),witness:le.typeforce.maybe(le.typeforce.arrayOf(le.typeforce.Buffer))},e);let r=e.network;r||(r=e.redeem&&e.redeem.network||qu.bitcoin);const n={network:r},i=ft.value(()=>{const a=Buffer.from(Ao.decode(e.address)),u=a.readUInt8(0),h=a.slice(1);return{version:u,hash:h}}),s=ft.value(()=>ht.decompile(e.input)),o=ft.value(()=>{const a=s(),u=a[a.length-1];return{network:r,output:u===Jr.OP_FALSE?Buffer.from([]):u,input:ht.compile(a.slice(0,-1)),witness:e.witness||[]}});if(ft.prop(n,"address",()=>{if(!n.hash)return;const a=Buffer.allocUnsafe(21);return a.writeUInt8(n.network.scriptHash,0),n.hash.copy(a,1),Ao.encode(a)}),ft.prop(n,"hash",()=>{if(e.output)return e.output.slice(2,22);if(e.address)return i().hash;if(n.redeem&&n.redeem.output)return So.hash160(n.redeem.output)}),ft.prop(n,"output",()=>{if(n.hash)return ht.compile([Jr.OP_HASH160,n.hash,Jr.OP_EQUAL])}),ft.prop(n,"redeem",()=>{if(e.input)return o()}),ft.prop(n,"input",()=>{if(!(!e.redeem||!e.redeem.input||!e.redeem.output))return ht.compile([].concat(ht.decompile(e.redeem.input),e.redeem.output))}),ft.prop(n,"witness",()=>{if(n.redeem&&n.redeem.witness)return n.redeem.witness;if(n.input)return[]}),ft.prop(n,"name",()=>{const a=["p2sh"];return n.redeem!==void 0&&n.redeem.name!==void 0&&a.push(n.redeem.name),a.join("-")}),t.validate){let a=Buffer.from([]);if(e.address){if(i().version!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(i().hash.length!==20)throw new TypeError("Invalid address");a=i().hash}if(e.hash){if(a.length>0&&!a.equals(e.hash))throw new TypeError("Hash mismatch");a=e.hash}if(e.output){if(e.output.length!==23||e.output[0]!==Jr.OP_HASH160||e.output[1]!==20||e.output[22]!==Jr.OP_EQUAL)throw new TypeError("Output is invalid");const h=e.output.slice(2,22);if(a.length>0&&!a.equals(h))throw new TypeError("Hash mismatch");a=h}const u=h=>{if(h.output){const d=ht.decompile(h.output);if(!d||d.length<1)throw new TypeError("Redeem.output too short");if(h.output.byteLength>520)throw new TypeError("Redeem.output unspendable if larger than 520 bytes");if(ht.countNonPushOnlyOPs(d)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const p=So.hash160(h.output);if(a.length>0&&!a.equals(p))throw new TypeError("Hash mismatch");a=p}if(h.input){const d=h.input.length>0,p=h.witness&&h.witness.length>0;if(!d&&!p)throw new TypeError("Empty input");if(d&&p)throw new TypeError("Input and witness provided");if(d){const _=ht.decompile(h.input);if(!ht.isPushOnly(_))throw new TypeError("Non push-only scriptSig")}}};if(e.input){const h=s();if(!h||h.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(o().output))throw new TypeError("Input is invalid");u(o())}if(e.redeem){if(e.redeem.network&&e.redeem.network!==r)throw new TypeError("Network mismatch");if(e.input){const h=o();if(e.redeem.output&&!e.redeem.output.equals(h.output))throw new TypeError("Redeem.output mismatch");if(e.redeem.input&&!e.redeem.input.equals(h.input))throw new TypeError("Redeem.input mismatch")}u(e.redeem)}if(e.witness&&e.redeem&&e.redeem.witness&&!(0,le.stacksEqual)(e.redeem.witness,e.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(n,e)}wi.p2sh=Ku;var gi={},Pt={};Object.defineProperty(Pt,"__esModule",{value:!0});Pt.bech32m=Pt.bech32=void 0;const ni="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Wa={};for(let e=0;e<ni.length;e++){const t=ni.charAt(e);Wa[t]=e}function Rr(e){const t=e>>25;return(e&33554431)<<5^-(t>>0&1)&996825010^-(t>>1&1)&642813549^-(t>>2&1)&513874426^-(t>>3&1)&1027748829^-(t>>4&1)&705979059}function ko(e){let t=1;for(let r=0;r<e.length;++r){const n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=Rr(t)^n>>5}t=Rr(t);for(let r=0;r<e.length;++r){const n=e.charCodeAt(r);t=Rr(t)^n&31}return t}function Gs(e,t,r,n){let i=0,s=0;const o=(1<<r)-1,a=[];for(let u=0;u<e.length;++u)for(i=i<<t|e[u],s+=t;s>=r;)s-=r,a.push(i>>s&o);if(n)s>0&&a.push(i<<r-s&o);else{if(s>=t)return"Excess padding";if(i<<r-s&o)return"Non-zero padding"}return a}function Yu(e){return Gs(e,8,5,!0)}function Xu(e){const t=Gs(e,5,8,!1);if(Array.isArray(t))return t}function Ju(e){const t=Gs(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}function za(e){let t;e==="bech32"?t=1:t=734539939;function r(o,a,u){if(u=u||90,o.length+7+a.length>u)throw new TypeError("Exceeds length limit");o=o.toLowerCase();let h=ko(o);if(typeof h=="string")throw new Error(h);let d=o+"1";for(let p=0;p<a.length;++p){const _=a[p];if(_>>5)throw new Error("Non 5-bit word");h=Rr(h)^_,d+=ni.charAt(_)}for(let p=0;p<6;++p)h=Rr(h);h^=t;for(let p=0;p<6;++p){const _=h>>(5-p)*5&31;d+=ni.charAt(_)}return d}function n(o,a){if(a=a||90,o.length<8)return o+" too short";if(o.length>a)return"Exceeds length limit";const u=o.toLowerCase(),h=o.toUpperCase();if(o!==u&&o!==h)return"Mixed-case string "+o;o=u;const d=o.lastIndexOf("1");if(d===-1)return"No separator character for "+o;if(d===0)return"Missing prefix for "+o;const p=o.slice(0,d),_=o.slice(d+1);if(_.length<6)return"Data too short";let y=ko(p);if(typeof y=="string")return y;const I=[];for(let A=0;A<_.length;++A){const B=_.charAt(A),O=Wa[B];if(O===void 0)return"Unknown character "+B;y=Rr(y)^O,!(A+6>=_.length)&&I.push(O)}return y!==t?"Invalid checksum for "+o:{prefix:p,words:I}}function i(o,a){const u=n(o,a);if(typeof u=="object")return u}function s(o,a){const u=n(o,a);if(typeof u=="object")return u;throw new Error(u)}return{decodeUnsafe:i,decode:s,encode:r,toWords:Yu,fromWordsUnsafe:Xu,fromWords:Ju}}Pt.bech32=za("bech32");Pt.bech32m=za("bech32m");Object.defineProperty(gi,"__esModule",{value:!0});gi.p2wpkh=void 0;const Yi=Yt,Qu=Fe,Yn=Xe(),Te=He,Dt=Ye,Fn=Pt,To=Yn.OPS,Zu=Buffer.alloc(0);function el(e,t){if(!e.address&&!e.hash&&!e.output&&!e.pubkey&&!e.witness)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,Te.typeforce)({address:Te.typeforce.maybe(Te.typeforce.String),hash:Te.typeforce.maybe(Te.typeforce.BufferN(20)),input:Te.typeforce.maybe(Te.typeforce.BufferN(0)),network:Te.typeforce.maybe(Te.typeforce.Object),output:Te.typeforce.maybe(Te.typeforce.BufferN(22)),pubkey:Te.typeforce.maybe(Te.isPoint),signature:Te.typeforce.maybe(Yn.isCanonicalScriptSignature),witness:Te.typeforce.maybe(Te.typeforce.arrayOf(Te.typeforce.Buffer))},e);const r=Dt.value(()=>{const s=Fn.bech32.decode(e.address),o=s.words.shift(),a=Fn.bech32.fromWords(s.words);return{version:o,prefix:s.prefix,data:Buffer.from(a)}}),n=e.network||Qu.bitcoin,i={name:"p2wpkh",network:n};if(Dt.prop(i,"address",()=>{if(!i.hash)return;const s=Fn.bech32.toWords(i.hash);return s.unshift(0),Fn.bech32.encode(n.bech32,s)}),Dt.prop(i,"hash",()=>{if(e.output)return e.output.slice(2,22);if(e.address)return r().data;if(e.pubkey||i.pubkey)return Yi.hash160(e.pubkey||i.pubkey)}),Dt.prop(i,"output",()=>{if(i.hash)return Yn.compile([To.OP_0,i.hash])}),Dt.prop(i,"pubkey",()=>{if(e.pubkey)return e.pubkey;if(e.witness)return e.witness[1]}),Dt.prop(i,"signature",()=>{if(e.witness)return e.witness[0]}),Dt.prop(i,"input",()=>{if(i.witness)return Zu}),Dt.prop(i,"witness",()=>{if(e.pubkey&&e.signature)return[e.signature,e.pubkey]}),t.validate){let s=Buffer.from([]);if(e.address){if(n&&n.bech32!==r().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==20)throw new TypeError("Invalid address data");s=r().data}if(e.hash){if(s.length>0&&!s.equals(e.hash))throw new TypeError("Hash mismatch");s=e.hash}if(e.output){if(e.output.length!==22||e.output[0]!==To.OP_0||e.output[1]!==20)throw new TypeError("Output is invalid");if(s.length>0&&!s.equals(e.output.slice(2)))throw new TypeError("Hash mismatch");s=e.output.slice(2)}if(e.pubkey){const o=Yi.hash160(e.pubkey);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch");if(s=o,!(0,Te.isPoint)(e.pubkey)||e.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(e.witness){if(e.witness.length!==2)throw new TypeError("Witness is invalid");if(!Yn.isCanonicalScriptSignature(e.witness[0]))throw new TypeError("Witness has invalid signature");if(!(0,Te.isPoint)(e.witness[1])||e.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(e.signature&&!e.signature.equals(e.witness[0]))throw new TypeError("Signature mismatch");if(e.pubkey&&!e.pubkey.equals(e.witness[1]))throw new TypeError("Pubkey mismatch");const o=Yi.hash160(e.witness[1]);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch")}}return Object.assign(i,e)}gi.p2wpkh=el;var _i={};Object.defineProperty(_i,"__esModule",{value:!0});_i.p2wsh=void 0;const Bo=Yt,tl=Fe,xt=Xe(),ce=He,_t=Ye,Hn=Pt,Io=xt.OPS,Xi=Buffer.alloc(0);function Mn(e){return!!(Buffer.isBuffer(e)&&e.length===65&&e[0]===4&&(0,ce.isPoint)(e))}function rl(e,t){if(!e.address&&!e.hash&&!e.output&&!e.redeem&&!e.witness)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,ce.typeforce)({network:ce.typeforce.maybe(ce.typeforce.Object),address:ce.typeforce.maybe(ce.typeforce.String),hash:ce.typeforce.maybe(ce.typeforce.BufferN(32)),output:ce.typeforce.maybe(ce.typeforce.BufferN(34)),redeem:ce.typeforce.maybe({input:ce.typeforce.maybe(ce.typeforce.Buffer),network:ce.typeforce.maybe(ce.typeforce.Object),output:ce.typeforce.maybe(ce.typeforce.Buffer),witness:ce.typeforce.maybe(ce.typeforce.arrayOf(ce.typeforce.Buffer))}),input:ce.typeforce.maybe(ce.typeforce.BufferN(0)),witness:ce.typeforce.maybe(ce.typeforce.arrayOf(ce.typeforce.Buffer))},e);const r=_t.value(()=>{const o=Hn.bech32.decode(e.address),a=o.words.shift(),u=Hn.bech32.fromWords(o.words);return{version:a,prefix:o.prefix,data:Buffer.from(u)}}),n=_t.value(()=>xt.decompile(e.redeem.input));let i=e.network;i||(i=e.redeem&&e.redeem.network||tl.bitcoin);const s={network:i};if(_t.prop(s,"address",()=>{if(!s.hash)return;const o=Hn.bech32.toWords(s.hash);return o.unshift(0),Hn.bech32.encode(i.bech32,o)}),_t.prop(s,"hash",()=>{if(e.output)return e.output.slice(2);if(e.address)return r().data;if(s.redeem&&s.redeem.output)return Bo.sha256(s.redeem.output)}),_t.prop(s,"output",()=>{if(s.hash)return xt.compile([Io.OP_0,s.hash])}),_t.prop(s,"redeem",()=>{if(e.witness)return{output:e.witness[e.witness.length-1],input:Xi,witness:e.witness.slice(0,-1)}}),_t.prop(s,"input",()=>{if(s.witness)return Xi}),_t.prop(s,"witness",()=>{if(e.redeem&&e.redeem.input&&e.redeem.input.length>0&&e.redeem.output&&e.redeem.output.length>0){const o=xt.toStack(n());return s.redeem=Object.assign({witness:o},e.redeem),s.redeem.input=Xi,[].concat(o,e.redeem.output)}if(e.redeem&&e.redeem.output&&e.redeem.witness)return[].concat(e.redeem.witness,e.redeem.output)}),_t.prop(s,"name",()=>{const o=["p2wsh"];return s.redeem!==void 0&&s.redeem.name!==void 0&&o.push(s.redeem.name),o.join("-")}),t.validate){let o=Buffer.from([]);if(e.address){if(r().prefix!==i.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==32)throw new TypeError("Invalid address data");o=r().data}if(e.hash){if(o.length>0&&!o.equals(e.hash))throw new TypeError("Hash mismatch");o=e.hash}if(e.output){if(e.output.length!==34||e.output[0]!==Io.OP_0||e.output[1]!==32)throw new TypeError("Output is invalid");const a=e.output.slice(2);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(e.redeem){if(e.redeem.network&&e.redeem.network!==i)throw new TypeError("Network mismatch");if(e.redeem.input&&e.redeem.input.length>0&&e.redeem.witness&&e.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(e.redeem.output){const a=xt.decompile(e.redeem.output);if(!a||a.length<1)throw new TypeError("Redeem.output is invalid");if(e.redeem.output.byteLength>3600)throw new TypeError("Redeem.output unspendable if larger than 3600 bytes");if(xt.countNonPushOnlyOPs(a)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const u=Bo.sha256(e.redeem.output);if(o.length>0&&!o.equals(u))throw new TypeError("Hash mismatch");o=u}if(e.redeem.input&&!xt.isPushOnly(n()))throw new TypeError("Non push-only scriptSig");if(e.witness&&e.redeem.witness&&!(0,ce.stacksEqual)(e.witness,e.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(e.redeem.input&&n().some(Mn)||e.redeem.output&&(xt.decompile(e.redeem.output)||[]).some(Mn))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(e.witness&&e.witness.length>0){const a=e.witness[e.witness.length-1];if(e.redeem&&e.redeem.output&&!e.redeem.output.equals(a))throw new TypeError("Witness and redeem.output mismatch");if(e.witness.some(Mn)||(xt.decompile(a)||[]).some(Mn))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(s,e)}_i.p2wsh=rl;var Qr={},fr={};Object.defineProperty(fr,"__esModule",{value:!0});fr.getEccLib=fr.initEccLib=void 0;const dn={};function nl(e){e?e!==dn.eccLib&&(sl(e),dn.eccLib=e):dn.eccLib=e}fr.initEccLib=nl;function il(){if(!dn.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return dn.eccLib}fr.getEccLib=il;const vt=e=>Buffer.from(e,"hex");function sl(e){Qe(typeof e.isXOnlyPoint=="function"),Qe(e.isXOnlyPoint(vt("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),Qe(e.isXOnlyPoint(vt("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),Qe(e.isXOnlyPoint(vt("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),Qe(e.isXOnlyPoint(vt("0000000000000000000000000000000000000000000000000000000000000001"))),Qe(!e.isXOnlyPoint(vt("0000000000000000000000000000000000000000000000000000000000000000"))),Qe(!e.isXOnlyPoint(vt("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),Qe(typeof e.xOnlyPointAddTweak=="function"),ol.forEach(t=>{const r=e.xOnlyPointAddTweak(vt(t.pubkey),vt(t.tweak));t.result===null?Qe(r===null):(Qe(r!==null),Qe(r.parity===t.parity),Qe(Buffer.from(r.xOnlyPubkey).equals(vt(t.result))))})}function Qe(e){if(!e)throw new Error("ecc library invalid")}const ol=[{pubkey:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",tweak:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",parity:-1,result:null},{pubkey:"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b",tweak:"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac",parity:1,result:"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"},{pubkey:"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991",tweak:"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47",parity:0,result:"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"}];var Vs={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.tweakKey=e.tapTweakHash=e.tapleafHash=e.findScriptPath=e.toHashTree=e.rootHashFromPath=e.MAX_TAPTREE_DEPTH=e.LEAF_VERSION_TAPSCRIPT=void 0;const t=Rt,r=fr,n=Yt,i=Oe,s=He;e.LEAF_VERSION_TAPSCRIPT=192,e.MAX_TAPTREE_DEPTH=128;const o=A=>"left"in A&&"right"in A;function a(A,B){if(A.length<33)throw new TypeError(`The control-block length is too small. Got ${A.length}, expected min 33.`);const O=(A.length-33)/32;let C=B;for(let v=0;v<O;v++){const g=A.slice(33+32*v,65+32*v);C.compare(g)<0?C=y(C,g):C=y(g,C)}return C}e.rootHashFromPath=a;function u(A){if((0,s.isTapleaf)(A))return{hash:d(A)};const B=[u(A[0]),u(A[1])];B.sort((v,g)=>v.hash.compare(g.hash));const[O,C]=B;return{hash:y(O.hash,C.hash),left:O,right:C}}e.toHashTree=u;function h(A,B){if(o(A)){const O=h(A.left,B);if(O!==void 0)return[...O,A.right.hash];const C=h(A.right,B);if(C!==void 0)return[...C,A.left.hash]}else if(A.hash.equals(B))return[]}e.findScriptPath=h;function d(A){const B=A.version||e.LEAF_VERSION_TAPSCRIPT;return n.taggedHash("TapLeaf",t.Buffer.concat([t.Buffer.from([B]),I(A.output)]))}e.tapleafHash=d;function p(A,B){return n.taggedHash("TapTweak",t.Buffer.concat(B?[A,B]:[A]))}e.tapTweakHash=p;function _(A,B){if(!t.Buffer.isBuffer(A)||A.length!==32||B&&B.length!==32)return null;const O=p(A,B),C=(0,r.getEccLib)().xOnlyPointAddTweak(A,O);return!C||C.xOnlyPubkey===null?null:{parity:C.parity,x:t.Buffer.from(C.xOnlyPubkey)}}e.tweakKey=_;function y(A,B){return n.taggedHash("TapBranch",t.Buffer.concat([A,B]))}function I(A){const B=i.varuint.encodingLength(A.length),O=t.Buffer.allocUnsafe(B);return i.varuint.encode(A.length,O),t.Buffer.concat([O,A])}})(Vs);var $e={},Po;function al(){if(Po)return $e;Po=1,Object.defineProperty($e,"__esModule",{value:!0}),$e.toOutputScript=$e.fromOutputScript=$e.toBech32=$e.toBase58Check=$e.fromBech32=$e.fromBase58Check=void 0;const e=Fe,t=Ws(),r=Xe(),n=He,i=Pt,s=js,o=40,a=2,u=16,h=2,d=80,p="WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.";function _(v,g){const S=v.slice(2);if(S.length<a||S.length>o)throw new TypeError("Invalid program length for segwit address");const x=v[0]-d;if(x<h||x>u)throw new TypeError("Invalid version for segwit address");if(v[1]!==S.length)throw new TypeError("Invalid script for segwit address");return console.warn(p),B(S,x,g.bech32)}function y(v){const g=Buffer.from(s.decode(v));if(g.length<21)throw new TypeError(v+" is too short");if(g.length>21)throw new TypeError(v+" is too long");const S=g.readUInt8(0),x=g.slice(1);return{version:S,hash:x}}$e.fromBase58Check=y;function I(v){let g,S;try{g=i.bech32.decode(v)}catch{}if(g){if(S=g.words[0],S!==0)throw new TypeError(v+" uses wrong encoding")}else if(g=i.bech32m.decode(v),S=g.words[0],S===0)throw new TypeError(v+" uses wrong encoding");const x=i.bech32.fromWords(g.words.slice(1));return{version:S,prefix:g.prefix,data:Buffer.from(x)}}$e.fromBech32=I;function A(v,g){(0,n.typeforce)((0,n.tuple)(n.Hash160bit,n.UInt8),arguments);const S=Buffer.allocUnsafe(21);return S.writeUInt8(g,0),v.copy(S,1),s.encode(S)}$e.toBase58Check=A;function B(v,g,S){const x=i.bech32.toWords(v);return x.unshift(g),g===0?i.bech32.encode(S,x):i.bech32m.encode(S,x)}$e.toBech32=B;function O(v,g){g=g||e.bitcoin;try{return t.p2pkh({output:v,network:g}).address}catch{}try{return t.p2sh({output:v,network:g}).address}catch{}try{return t.p2wpkh({output:v,network:g}).address}catch{}try{return t.p2wsh({output:v,network:g}).address}catch{}try{return t.p2tr({output:v,network:g}).address}catch{}try{return _(v,g)}catch{}throw new Error(r.toASM(v)+" has no matching Address")}$e.fromOutputScript=O;function C(v,g){g=g||e.bitcoin;let S,x;try{S=y(v)}catch{}if(S){if(S.version===g.pubKeyHash)return t.p2pkh({hash:S.hash}).output;if(S.version===g.scriptHash)return t.p2sh({hash:S.hash}).output}else{try{x=I(v)}catch{}if(x){if(x.prefix!==g.bech32)throw new Error(v+" has an invalid prefix");if(x.version===0){if(x.data.length===20)return t.p2wpkh({hash:x.data}).output;if(x.data.length===32)return t.p2wsh({hash:x.data}).output}else if(x.version===1){if(x.data.length===32)return t.p2tr({pubkey:x.data}).output}else if(x.version>=h&&x.version<=u&&x.data.length>=a&&x.data.length<=o)return console.warn(p),r.compile([x.version+d,x.data])}}throw new Error(v+" has no matching Script")}return $e.toOutputScript=C,$e}var Oo;function cl(){if(Oo)return Qr;Oo=1,Object.defineProperty(Qr,"__esModule",{value:!0}),Qr.p2tr=void 0;const e=Rt,t=Fe,r=Xe(),n=He,i=fr,s=Vs,o=Ye,a=Pt,u=al(),h=r.OPS,d=1,p=80;function _(y,I){if(!y.address&&!y.output&&!y.pubkey&&!y.internalPubkey&&!(y.witness&&y.witness.length>1))throw new TypeError("Not enough data");I=Object.assign({validate:!0},I||{}),(0,n.typeforce)({address:n.typeforce.maybe(n.typeforce.String),input:n.typeforce.maybe(n.typeforce.BufferN(0)),network:n.typeforce.maybe(n.typeforce.Object),output:n.typeforce.maybe(n.typeforce.BufferN(34)),internalPubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),hash:n.typeforce.maybe(n.typeforce.BufferN(32)),pubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),signature:n.typeforce.maybe(n.typeforce.anyOf(n.typeforce.BufferN(64),n.typeforce.BufferN(65))),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer)),scriptTree:n.typeforce.maybe(n.isTaptree),redeem:n.typeforce.maybe({output:n.typeforce.maybe(n.typeforce.Buffer),redeemVersion:n.typeforce.maybe(n.typeforce.Number),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer))}),redeemVersion:n.typeforce.maybe(n.typeforce.Number)},y);const A=o.value(()=>(0,u.fromBech32)(y.address)),B=o.value(()=>{if(!(!y.witness||!y.witness.length))return y.witness.length>=2&&y.witness[y.witness.length-1][0]===p?y.witness.slice(0,-1):y.witness.slice()}),O=o.value(()=>{if(y.scriptTree)return(0,s.toHashTree)(y.scriptTree);if(y.hash)return{hash:y.hash}}),C=y.network||t.bitcoin,v={name:"p2tr",network:C};if(o.prop(v,"address",()=>{if(!v.pubkey)return;const g=a.bech32m.toWords(v.pubkey);return g.unshift(d),a.bech32m.encode(C.bech32,g)}),o.prop(v,"hash",()=>{const g=O();if(g)return g.hash;const S=B();if(S&&S.length>1){const x=S[S.length-1],M=x[0]&n.TAPLEAF_VERSION_MASK,j=S[S.length-2],R=(0,s.tapleafHash)({output:j,version:M});return(0,s.rootHashFromPath)(x,R)}return null}),o.prop(v,"output",()=>{if(v.pubkey)return r.compile([h.OP_1,v.pubkey])}),o.prop(v,"redeemVersion",()=>y.redeemVersion?y.redeemVersion:y.redeem&&y.redeem.redeemVersion!==void 0&&y.redeem.redeemVersion!==null?y.redeem.redeemVersion:s.LEAF_VERSION_TAPSCRIPT),o.prop(v,"redeem",()=>{const g=B();if(!(!g||g.length<2))return{output:g[g.length-2],witness:g.slice(0,-2),redeemVersion:g[g.length-1][0]&n.TAPLEAF_VERSION_MASK}}),o.prop(v,"pubkey",()=>{if(y.pubkey)return y.pubkey;if(y.output)return y.output.slice(2);if(y.address)return A().data;if(v.internalPubkey){const g=(0,s.tweakKey)(v.internalPubkey,v.hash);if(g)return g.x}}),o.prop(v,"internalPubkey",()=>{if(y.internalPubkey)return y.internalPubkey;const g=B();if(g&&g.length>1)return g[g.length-1].slice(1,33)}),o.prop(v,"signature",()=>{if(y.signature)return y.signature;const g=B();if(!(!g||g.length!==1))return g[0]}),o.prop(v,"witness",()=>{if(y.witness)return y.witness;const g=O();if(g&&y.redeem&&y.redeem.output&&y.internalPubkey){const S=(0,s.tapleafHash)({output:y.redeem.output,version:v.redeemVersion}),x=(0,s.findScriptPath)(g,S);if(!x)return;const M=(0,s.tweakKey)(y.internalPubkey,g.hash);if(!M)return;const j=e.Buffer.concat([e.Buffer.from([v.redeemVersion|M.parity]),y.internalPubkey].concat(x));return[y.redeem.output,j]}if(y.signature)return[y.signature]}),I.validate){let g=e.Buffer.from([]);if(y.address){if(C&&C.bech32!==A().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(A().version!==d)throw new TypeError("Invalid address version");if(A().data.length!==32)throw new TypeError("Invalid address data");g=A().data}if(y.pubkey){if(g.length>0&&!g.equals(y.pubkey))throw new TypeError("Pubkey mismatch");g=y.pubkey}if(y.output){if(y.output.length!==34||y.output[0]!==h.OP_1||y.output[1]!==32)throw new TypeError("Output is invalid");if(g.length>0&&!g.equals(y.output.slice(2)))throw new TypeError("Pubkey mismatch");g=y.output.slice(2)}if(y.internalPubkey){const M=(0,s.tweakKey)(y.internalPubkey,v.hash);if(g.length>0&&!g.equals(M.x))throw new TypeError("Pubkey mismatch");g=M.x}if(g&&g.length&&!(0,i.getEccLib)().isXOnlyPoint(g))throw new TypeError("Invalid pubkey for p2tr");const S=O();if(y.hash&&S&&!y.hash.equals(S.hash))throw new TypeError("Hash mismatch");if(y.redeem&&y.redeem.output&&S){const M=(0,s.tapleafHash)({output:y.redeem.output,version:v.redeemVersion});if(!(0,s.findScriptPath)(S,M))throw new TypeError("Redeem script not in tree")}const x=B();if(y.redeem&&v.redeem){if(y.redeem.redeemVersion&&y.redeem.redeemVersion!==v.redeem.redeemVersion)throw new TypeError("Redeem.redeemVersion and witness mismatch");if(y.redeem.output){if(r.decompile(y.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");if(v.redeem.output&&!y.redeem.output.equals(v.redeem.output))throw new TypeError("Redeem.output and witness mismatch")}if(y.redeem.witness&&v.redeem.witness&&!(0,n.stacksEqual)(y.redeem.witness,v.redeem.witness))throw new TypeError("Redeem.witness and witness mismatch")}if(x&&x.length)if(x.length===1){if(y.signature&&!y.signature.equals(x[0]))throw new TypeError("Signature mismatch")}else{const M=x[x.length-1];if(M.length<33)throw new TypeError(`The control-block length is too small. Got ${M.length}, expected min 33.`);if((M.length-33)%32!==0)throw new TypeError(`The control-block length of ${M.length} is incorrect!`);const j=(M.length-33)/32;if(j>128)throw new TypeError(`The script path is too long. Got ${j}, expected max 128.`);const R=M.slice(1,33);if(y.internalPubkey&&!y.internalPubkey.equals(R))throw new TypeError("Internal pubkey mismatch");if(!(0,i.getEccLib)().isXOnlyPoint(R))throw new TypeError("Invalid internalPubkey for p2tr witness");const z=M[0]&n.TAPLEAF_VERSION_MASK,ee=x[x.length-2],U=(0,s.tapleafHash)({output:ee,version:z}),H=(0,s.rootHashFromPath)(M,U),V=(0,s.tweakKey)(R,H);if(!V)throw new TypeError("Invalid outputKey for p2tr witness");if(g.length&&!g.equals(V.x))throw new TypeError("Pubkey mismatch for p2tr witness");if(V.parity!==(M[0]&1))throw new Error("Incorrect parity")}}return Object.assign(v,y)}return Qr.p2tr=_,Qr}var Ro;function Ws(){return Ro||(Ro=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.p2tr=e.p2wsh=e.p2wpkh=e.p2sh=e.p2pkh=e.p2pk=e.p2ms=e.embed=void 0;const t=pi;Object.defineProperty(e,"embed",{enumerable:!0,get:function(){return t.p2data}});const r=yi;Object.defineProperty(e,"p2ms",{enumerable:!0,get:function(){return r.p2ms}});const n=mi;Object.defineProperty(e,"p2pk",{enumerable:!0,get:function(){return n.p2pk}});const i=bi;Object.defineProperty(e,"p2pkh",{enumerable:!0,get:function(){return i.p2pkh}});const s=wi;Object.defineProperty(e,"p2sh",{enumerable:!0,get:function(){return s.p2sh}});const o=gi;Object.defineProperty(e,"p2wpkh",{enumerable:!0,get:function(){return o.p2wpkh}});const a=_i;Object.defineProperty(e,"p2wsh",{enumerable:!0,get:function(){return a.p2wsh}});const u=cl();Object.defineProperty(e,"p2tr",{enumerable:!0,get:function(){return u.p2tr}})}(zi)),zi}Object.defineProperty(ae,"__esModule",{value:!0});ae.signatureBlocksAction=ae.checkInputForSig=ae.pubkeyInScript=ae.pubkeyPositionInScript=ae.witnessStackToScriptWitness=ae.isP2TR=ae.isP2SHScript=ae.isP2WSHScript=ae.isP2WPKH=ae.isP2PKH=ae.isP2PK=ae.isP2MS=void 0;const Co=Sn,pn=Xe(),Dn=En,fl=Yt,yr=Ws();function mr(e){return t=>{try{return e({output:t}),!0}catch{return!1}}}ae.isP2MS=mr(yr.p2ms);ae.isP2PK=mr(yr.p2pk);ae.isP2PKH=mr(yr.p2pkh);ae.isP2WPKH=mr(yr.p2wpkh);ae.isP2WSHScript=mr(yr.p2wsh);ae.isP2SHScript=mr(yr.p2sh);ae.isP2TR=mr(yr.p2tr);function ul(e){let t=Buffer.allocUnsafe(0);function r(o){t=Buffer.concat([t,Buffer.from(o)])}function n(o){const a=t.length,u=Co.encodingLength(o);t=Buffer.concat([t,Buffer.allocUnsafe(u)]),Co.encode(o,t,a)}function i(o){n(o.length),r(o)}function s(o){n(o.length),o.forEach(i)}return s(e),t}ae.witnessStackToScriptWitness=ul;function qa(e,t){const r=(0,fl.hash160)(e),n=e.slice(1,33),i=pn.decompile(t);if(i===null)throw new Error("Unknown script error");return i.findIndex(s=>typeof s=="number"?!1:s.equals(e)||s.equals(r)||s.equals(n))}ae.pubkeyPositionInScript=qa;function ll(e,t){return qa(e,t)!==-1}ae.pubkeyInScript=ll;function hl(e,t){return dl(e).some(n=>Ka(n,pn.signature.decode,t))}ae.checkInputForSig=hl;function Ka(e,t,r){const{hashType:n}=t(e),i=[];switch(n&Dn.Transaction.SIGHASH_ANYONECANPAY&&i.push("addInput"),n&31){case Dn.Transaction.SIGHASH_ALL:break;case Dn.Transaction.SIGHASH_SINGLE:case Dn.Transaction.SIGHASH_NONE:i.push("addOutput"),i.push("setInputSequence");break}return i.indexOf(r)===-1}ae.signatureBlocksAction=Ka;function dl(e){let t=[];if((e.partialSig||[]).length===0){if(!e.finalScriptSig&&!e.finalScriptWitness)return[];t=pl(e)}else t=e.partialSig;return t.map(r=>r.signature)}function pl(e){const t=e.finalScriptSig?pn.decompile(e.finalScriptSig)||[]:[],r=e.finalScriptWitness?pn.decompile(e.finalScriptWitness)||[]:[];return t.concat(r).filter(n=>Buffer.isBuffer(n)&&pn.isCanonicalScriptSignature(n)).map(n=>({signature:n}))}Object.defineProperty(_e,"__esModule",{value:!0});_e.checkTaprootInputForSigs=_e.tapTreeFromList=_e.tapTreeToList=_e.tweakInternalPubKey=_e.checkTaprootOutputFields=_e.checkTaprootInputFields=_e.isTaprootOutput=_e.isTaprootInput=Xn=_e.serializeTaprootSignature=_e.tapScriptFinalizer=_e.toXOnly=void 0;const zs=He,yl=En,vi=ae,Kt=Vs,ml=Ws(),bl=ae,wl=e=>e.length===32?e:e.slice(1,33);_e.toXOnly=wl;function gl(e,t,r){const n=Fl(t,e,r);try{const s=Ll(t,n).concat(n.script).concat(n.controlBlock);return{finalScriptWitness:(0,vi.witnessStackToScriptWitness)(s)}}catch(i){throw new Error(`Can not finalize taproot input #${e}: ${i}`)}}_e.tapScriptFinalizer=gl;function _l(e,t){const r=t?Buffer.from([t]):Buffer.from([]);return Buffer.concat([e,r])}var Xn=_e.serializeTaprootSignature=_l;function Jn(e){return e&&!!(e.tapInternalKey||e.tapMerkleRoot||e.tapLeafScript&&e.tapLeafScript.length||e.tapBip32Derivation&&e.tapBip32Derivation.length||e.witnessUtxo&&(0,vi.isP2TR)(e.witnessUtxo.script))}_e.isTaprootInput=Jn;function Qn(e,t){return e&&!!(e.tapInternalKey||e.tapTree||e.tapBip32Derivation&&e.tapBip32Derivation.length||t&&(0,vi.isP2TR)(t))}_e.isTaprootOutput=Qn;function vl(e,t,r){Rl(e,t,r),Ul(e,t,r)}_e.checkTaprootInputFields=vl;function El(e,t,r){Cl(e,t,r),xl(e,t)}_e.checkTaprootOutputFields=El;function xl(e,t){if(!t.tapTree&&!t.tapInternalKey)return;const r=t.tapInternalKey||e.tapInternalKey,n=t.tapTree||e.tapTree;if(r){const{script:i}=e,s=Sl(r,n);if(i&&!i.equals(s))throw new Error("Error adding output. Script or address missmatch.")}}function Sl(e,t){const r=t&&Ya(t.leaves),{output:n}=(0,ml.p2tr)({internalPubkey:e,scriptTree:r});return n}function Al(e,t){const r=t.tapInternalKey,n=r&&(0,Kt.tweakKey)(r,t.tapMerkleRoot);if(!n)throw new Error(`Cannot tweak tap internal key for input #${e}. Public key: ${r&&r.toString("hex")}`);return n.x}_e.tweakInternalPubKey=Al;function kl(e){if(!(0,zs.isTaptree)(e))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return ws(e)}_e.tapTreeToList=kl;function Ya(e=[]){return e.length===1&&e[0].depth===0?{output:e[0].script,version:e[0].leafVersion}:Ol(e)}_e.tapTreeFromList=Ya;function Tl(e,t){return Il(e).some(n=>(0,bl.signatureBlocksAction)(n,Bl,t))}_e.checkTaprootInputForSigs=Tl;function Bl(e){return{signature:e.slice(0,64),hashType:e.slice(64)[0]||yl.Transaction.SIGHASH_DEFAULT}}function Il(e){const t=[];if(e.tapKeySig&&t.push(e.tapKeySig),e.tapScriptSig&&t.push(...e.tapScriptSig.map(r=>r.signature)),!t.length){const r=Pl(e.finalScriptWitness);r&&t.push(r)}return t}function Pl(e){if(!e)return;const t=e.slice(2);if(t.length===64||t.length===65)return t}function ws(e,t=[],r=0){if(r>Kt.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return e?(0,zs.isTapleaf)(e)?(t.push({depth:r,leafVersion:e.version||Kt.LEAF_VERSION_TAPSCRIPT,script:e.output}),t):(e[0]&&ws(e[0],t,r+1),e[1]&&ws(e[1],t,r+1),t):[]}function Ol(e){let t;for(const r of e)if(t=gs(r,t),!t)throw new Error("No room left to insert tapleaf in tree");return t}function gs(e,t,r=0){if(r>Kt.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");if(e.depth===r)return t?void 0:{output:e.script,version:e.leafVersion};if((0,zs.isTapleaf)(t))return;const n=gs(e,t&&t[0],r+1);if(n)return[n,t&&t[1]];const i=gs(e,t&&t[1],r+1);if(i)return[t&&t[0],i]}function Rl(e,t,r){const n=Jn(e)&&Cr(t),i=Cr(e)&&Jn(t),s=e===t&&Jn(t)&&Cr(t);if(n||i||s)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function Cl(e,t,r){const n=Qn(e)&&Cr(t),i=Cr(e)&&Qn(t),s=e===t&&Qn(t)&&Cr(t);if(n||i||s)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function Ul(e,t,r){if(t.tapMerkleRoot){const n=(t.tapLeafScript||[]).every(s=>Ji(s,t.tapMerkleRoot)),i=(e.tapLeafScript||[]).every(s=>Ji(s,t.tapMerkleRoot));if(!n||!i)throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}else if(e.tapMerkleRoot&&!(t.tapLeafScript||[]).every(i=>Ji(i,e.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}function Ji(e,t){if(!t)return!0;const r=(0,Kt.tapleafHash)({output:e.script,version:e.leafVersion});return(0,Kt.rootHashFromPath)(e.controlBlock,r).equals(t)}function Ll(e,t){const r=(0,Kt.tapleafHash)({output:t.script,version:t.leafVersion});return(e.tapScriptSig||[]).filter(n=>n.leafHash.equals(r)).map(n=>Nl(t.script,n)).sort((n,i)=>i.positionInScript-n.positionInScript).map(n=>n.signature)}function Nl(e,t){return Object.assign({positionInScript:(0,vi.pubkeyPositionInScript)(t.pubkey,e)},t)}function Fl(e,t,r){if(!e.tapScriptSig||!e.tapScriptSig.length)throw new Error(`Can not finalize taproot input #${t}. No tapleaf script signature provided.`);const n=(e.tapLeafScript||[]).sort((i,s)=>i.controlBlock.length-s.controlBlock.length).find(i=>Hl(i,e.tapScriptSig,r));if(!n)throw new Error(`Can not finalize taproot input #${t}. Signature for tapleaf script not found.`);return n}function Hl(e,t,r){const n=(0,Kt.tapleafHash)({output:e.script,version:e.leafVersion});return(!r||r.equals(n))&&t.find(s=>s.leafHash.equals(n))!==void 0}function Cr(e){return e&&!!(e.redeemScript||e.witnessScript||e.bip32Derivation&&e.bip32Derivation.length)}const Ie={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"},$n=192;ie.initEccLib(ar);class yn{constructor(t,r,n,i,s,o,a,u){this.secretHash=n,this.redeemerPubkey=i,this.initiatorPubkey=s,this.expiry=o,this.signer=t,this.network=a,this.internalPubkey=Uf(),this.initiateAmount=r,this.utxoHashes=u}static async from(t,r,n,i,s,o,a){n=n.startsWith("0x")?n.slice(2):n,tr(n.length===64,Ie.secretHashLenMismatch),tr(i.length===64||i.length===66,`initiator ${Ie.pubkeyLenMismatch}`),tr(s.length===64||s.length===66,`redeemer ${Ie.pubkeyLenMismatch}`),tr(o>0,Ie.zeroOrNegativeExpiry);const u=await t.getNetwork();return new yn(t,r,n,ys(s).toString("hex"),ys(i).toString("hex"),o,u,a)}address(){const{address:t}=ie.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves()});if(!t)throw new Error(Ie.htlcAddressGenerationFailed);return t}id(){return this.address()}async _buildRawTx(t,r){const n=new ie.Transaction;n.version=2;const i=this.address(),s=await this.signer.getProvider();let o=[];if(this.utxoHashes&&this.utxoHashes.length>0)for(const u of this.utxoHashes){const h=await s.getTransaction(u);for(let d=0;d<h.vout.length;d++){const p=h.vout[d];p.scriptpubkey_address===i&&o.push({txid:h.txid,vout:d,value:p.value,status:{confirmed:!1}})}}else o=await s.getUTXOs(i);const a=o.reduce((u,h)=>u+h.value,0);if(a===0)throw new Error(`${i} ${Ie.notFunded}`);for(let u=0;u<o.length;u++)n.addInput(Buffer.from(o[u].txid,"hex").reverse(),o[u].vout);return r??(r=await s.suggestFee(i,a,Lr.Urgency.MEDIUM)),n.addOutput(ie.address.toOutputScript(t,this.network),a-r),{tx:n,usedUtxos:o}}async _tempBuildRawTx(t,r){const n=new ie.Transaction;n.version=2;const i=this.address(),s=await this.signer.getProvider();let o=[];if(this.utxoHashes&&this.utxoHashes.length>0)for(const u of this.utxoHashes){const h=await s.getTransaction(u);for(let d=0;d<h.vout.length;d++){const p=h.vout[d];p.scriptpubkey_address===i&&o.push({txid:h.txid,vout:d,value:p.value,status:{confirmed:!1}})}}else o=await s.getUTXOs(i);const a=o.reduce((u,h)=>u+h.value,0);if(a===0)throw new Error(`${i} ${Ie.notFunded}`);for(let u=0;u<o.length;u++)n.addInput(Buffer.from(o[u].txid,"hex").reverse(),o[u].vout);if(n.addOutput(ie.address.toOutputScript(t,this.network),a),r){const u=await s.getFeeRates(),h=Math.ceil(u.hourFee*r),d=a-h;n.outs[0].value=d}return{tx:n,usedUtxos:o}}async buildRawTx(t){return await this._buildRawTx(await this.signer.getAddress(),t)}getOutputScript(){return ie.address.toOutputScript(this.address(),this.network)}async init(t){return t??(t=await(await this.signer.getProvider()).suggestFee(await this.signer.getAddress(),this.initiateAmount,Lr.Urgency.MEDIUM)),await this.signer.send(this.address(),this.initiateAmount,t)}async generateRedeemSACP(t,r,n){const{tx:i,usedUtxos:s}=await this._buildRawTx(r,n),o=this.getOutputScript(),a=ie.Transaction.SIGHASH_SINGLE|ie.Transaction.SIGHASH_ANYONECANPAY,u=this.leafHash(1),h=s.map(p=>p.value),d=Sr(o,s.length);for(let p=0;p<i.ins.length;p++){const _=i.hashForWitnessV1(p,d,h,a,u),y=await this.signer.signSchnorr(_);i.setWitness(p,[Xn(y,a),Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return i.toHex()}async generateInstantRefundSACP(t,r){const{tx:n,usedUtxos:i}=await this._buildRawTx(t,r),s=this.getOutputScript(),o=ie.Transaction.SIGHASH_SINGLE|ie.Transaction.SIGHASH_ANYONECANPAY,a=this.leafHash(2),u=i.map(d=>d.value),h=Sr(s,i.length);for(let d=0;d<n.ins.length;d++){const p=n.hashForWitnessV1(d,h,u,o,a),_=await this.signer.signSchnorr(p);n.setWitness(d,[Xn(_,o),Xn(_,o),this.instantRefundLeaf(),this.generateControlBlockFor(2)])}return n.toHex()}async instantRefund(t,r){tr(t.length>0,Ie.noCounterpartySigs);const{tx:n,usedUtxos:i}=await this.buildRawTx(r);for(const p of i)if(!t.find(_=>_.utxo===p.txid))throw new Error(Ie.counterPartySigNotFound(p.txid));const s=this.getOutputScript(),o=ie.Transaction.SIGHASH_DEFAULT,a=this.leafHash(2),u=i.map(p=>p.value),h=Sr(s,i.length);for(let p=0;p<n.ins.length;p++){const _=n.hashForWitnessV1(p,h,u,o,a);if(!ar.verifySchnorr(_,Buffer.from(this.redeemerPubkey,"hex"),Buffer.from(t[p].sig,"hex")))throw new Error(Ie.invalidCounterpartySigForUTXO(t[p].utxo));const y=await this.signer.signSchnorr(_),I=Buffer.from(n.ins[p].hash).reverse().toString("hex"),A=t.find(B=>B.utxo===I);if(!A)throw new Error(Ie.counterPartySigNotFound(I));n.setWitness(p,[Buffer.from(A.sig,"hex"),y,this.instantRefundLeaf(),this.generateControlBlockFor(2)])}return await(await this.signer.getProvider()).broadcast(n.toHex())}async redeem(t,r){tr(ie.crypto.sha256(Buffer.from(t,"hex")).toString("hex")===this.secretHash,Ie.secretMismatch);const n=r??await this.signer.getAddress(),{tx:i,usedUtxos:s}=await this._tempBuildRawTx(n),o=this.leafHash(1),a=s.map(_=>_.value),u=Sr(this.getOutputScript(),s.length),h=ie.Transaction.SIGHASH_DEFAULT;for(let _=0;_<i.ins.length;_++){const y=i.hashForWitnessV1(_,u,a,h,o),I=await this.signer.signSchnorr(y);i.setWitness(_,[I,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}const{tx:d}=await this._tempBuildRawTx(n,i.virtualSize());for(let _=0;_<d.ins.length;_++){const y=d.hashForWitnessV1(_,u,a,h,o),I=await this.signer.signSchnorr(y);d.setWitness(_,[I,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return await(await this.signer.getProvider()).broadcast(d.toHex())}async getRedeemHex(t,r){tr(ie.crypto.sha256(Buffer.from(t,"hex")).toString("hex")===this.secretHash,Ie.secretMismatch);const n=r??await this.signer.getAddress(),{tx:i,usedUtxos:s}=await this._tempBuildRawTx(n);console.log("utxos :",s);const o=this.leafHash(1),a=s.map(p=>p.value),u=Sr(this.getOutputScript(),s.length),h=ie.Transaction.SIGHASH_DEFAULT;for(let p=0;p<i.ins.length;p++){const _=i.hashForWitnessV1(p,u,a,h,o),y=await this.signer.signSchnorr(_);i.setWitness(p,[y,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}const{tx:d}=await this._tempBuildRawTx(n,i.virtualSize());for(let p=0;p<d.ins.length;p++){const _=d.hashForWitnessV1(p,u,a,h,o),y=await this.signer.signSchnorr(_);d.setWitness(p,[y,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return d.toHex()}async refund(t,r){const{tx:n,usedUtxos:i}=await this._buildRawTx(t??await this.signer.getAddress(),r),[s,o]=await this.canRefund(i);if(!s)throw new Error(Ie.htlcNotExpired(o));const a=this.leafHash(0),u=i.map(_=>_.value),h=Sr(this.getOutputScript(),i.length),d=ie.Transaction.SIGHASH_DEFAULT;for(let _=0;_<n.ins.length;_++){n.ins[_].sequence=this.expiry;const y=n.hashForWitnessV1(_,h,u,d,a),I=await this.signer.signSchnorr(y);n.setWitness(_,[I,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 s=0;if(i.status.confirmed&&i.status.block_height+this.expiry>n?s=i.status.block_height+this.expiry-n+1:i.status.confirmed||(s=this.expiry+1),s>0)return[!1,s]}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(Ie.invalidLeaf)}const n=ie.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves(),redeem:{output:r,redeemVersion:$n}});if(!n.witness)throw new Error(Ie.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()),ie.crypto.taggedHash("TapLeaf",Ef(r))}refundLeaf(){return ie.script.fromASM(`
|
|
6
|
+
*/(function(e){const t=ai,r=Is,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=a,e.SlowBuffer=U,e.INSPECT_MAX_BYTES=50;const i=2147483647;e.kMaxLength=i,a.TYPED_ARRAY_SUPPORT=s(),!a.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function s(){try{const l=new Uint8Array(1),c={foo:function(){return 42}};return Object.setPrototypeOf(c,Uint8Array.prototype),Object.setPrototypeOf(l,c),l.foo()===42}catch{return!1}}Object.defineProperty(a.prototype,"parent",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.buffer}}),Object.defineProperty(a.prototype,"offset",{enumerable:!0,get:function(){if(a.isBuffer(this))return this.byteOffset}});function o(l){if(l>i)throw new RangeError('The value "'+l+'" is invalid for option "size"');const c=new Uint8Array(l);return Object.setPrototypeOf(c,a.prototype),c}function a(l,c,f){if(typeof l=="number"){if(typeof c=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return y(l)}return u(l,c,f)}a.poolSize=8192;function u(l,c,f){if(typeof l=="string")return v(l,c);if(ArrayBuffer.isView(l))return I(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(Ke(l,ArrayBuffer)||l&&Ke(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Ke(l,SharedArrayBuffer)||l&&Ke(l.buffer,SharedArrayBuffer)))return B(l,c,f);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const m=l.valueOf&&l.valueOf();if(m!=null&&m!==l)return a.from(m,c,f);const _=T(l);if(_)return _;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return a.from(l[Symbol.toPrimitive]("string"),c,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}a.from=function(l,c,f){return u(l,c,f)},Object.setPrototypeOf(a.prototype,Uint8Array.prototype),Object.setPrototypeOf(a,Uint8Array);function h(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function d(l,c,f){return h(l),l<=0?o(l):c!==void 0?typeof f=="string"?o(l).fill(c,f):o(l).fill(c):o(l)}a.alloc=function(l,c,f){return d(l,c,f)};function y(l){return h(l),o(l<0?0:R(l)|0)}a.allocUnsafe=function(l){return y(l)},a.allocUnsafeSlow=function(l){return y(l)};function v(l,c){if((typeof c!="string"||c==="")&&(c="utf8"),!a.isEncoding(c))throw new TypeError("Unknown encoding: "+c);const f=x(l,c)|0;let m=o(f);const _=m.write(l,c);return _!==f&&(m=m.slice(0,_)),m}function p(l){const c=l.length<0?0:R(l.length)|0,f=o(c);for(let m=0;m<c;m+=1)f[m]=l[m]&255;return f}function I(l){if(Ke(l,Uint8Array)){const c=new Uint8Array(l);return B(c.buffer,c.byteOffset,c.byteLength)}return p(l)}function B(l,c,f){if(c<0||l.byteLength<c)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<c+(f||0))throw new RangeError('"length" is outside of buffer bounds');let m;return c===void 0&&f===void 0?m=new Uint8Array(l):f===void 0?m=new Uint8Array(l,c):m=new Uint8Array(l,c,f),Object.setPrototypeOf(m,a.prototype),m}function T(l){if(a.isBuffer(l)){const c=R(l.length)|0,f=o(c);return f.length===0||l.copy(f,0,0,c),f}if(l.length!==void 0)return typeof l.length!="number"||Xt(l.length)?o(0):p(l);if(l.type==="Buffer"&&Array.isArray(l.data))return p(l.data)}function R(l){if(l>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return l|0}function U(l){return+l!=l&&(l=0),a.alloc(+l)}a.isBuffer=function(c){return c!=null&&c._isBuffer===!0&&c!==a.prototype},a.compare=function(c,f){if(Ke(c,Uint8Array)&&(c=a.from(c,c.offset,c.byteLength)),Ke(f,Uint8Array)&&(f=a.from(f,f.offset,f.byteLength)),!a.isBuffer(c)||!a.isBuffer(f))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(c===f)return 0;let m=c.length,_=f.length;for(let P=0,L=Math.min(m,_);P<L;++P)if(c[P]!==f[P]){m=c[P],_=f[P];break}return m<_?-1:_<m?1:0},a.isEncoding=function(c){switch(String(c).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},a.concat=function(c,f){if(!Array.isArray(c))throw new TypeError('"list" argument must be an Array of Buffers');if(c.length===0)return a.alloc(0);let m;if(f===void 0)for(f=0,m=0;m<c.length;++m)f+=c[m].length;const _=a.allocUnsafe(f);let P=0;for(m=0;m<c.length;++m){let L=c[m];if(Ke(L,Uint8Array))P+L.length>_.length?(a.isBuffer(L)||(L=a.from(L)),L.copy(_,P)):Uint8Array.prototype.set.call(_,L,P);else if(a.isBuffer(L))L.copy(_,P);else throw new TypeError('"list" argument must be an Array of Buffers');P+=L.length}return _};function x(l,c){if(a.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||Ke(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);const f=l.length,m=arguments.length>2&&arguments[2]===!0;if(!m&&f===0)return 0;let _=!1;for(;;)switch(c){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return ne(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return f*2;case"hex":return f>>>1;case"base64":return jr(l).length;default:if(_)return m?-1:ne(l).length;c=(""+c).toLowerCase(),_=!0}}a.byteLength=x;function g(l,c,f){let m=!1;if((c===void 0||c<0)&&(c=0),c>this.length||((f===void 0||f>this.length)&&(f=this.length),f<=0)||(f>>>=0,c>>>=0,f<=c))return"";for(l||(l="utf8");;)switch(l){case"hex":return We(this,c,f);case"utf8":case"utf-8":return V(this,c,f);case"ascii":return ze(this,c,f);case"latin1":case"binary":return tt(this,c,f);case"base64":return G(this,c,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return It(this,c,f);default:if(m)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),m=!0}}a.prototype._isBuffer=!0;function S(l,c,f){const m=l[c];l[c]=l[f],l[f]=m}a.prototype.swap16=function(){const c=this.length;if(c%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let f=0;f<c;f+=2)S(this,f,f+1);return this},a.prototype.swap32=function(){const c=this.length;if(c%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let f=0;f<c;f+=4)S(this,f,f+3),S(this,f+1,f+2);return this},a.prototype.swap64=function(){const c=this.length;if(c%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let f=0;f<c;f+=8)S(this,f,f+7),S(this,f+1,f+6),S(this,f+2,f+5),S(this,f+3,f+4);return this},a.prototype.toString=function(){const c=this.length;return c===0?"":arguments.length===0?V(this,0,c):g.apply(this,arguments)},a.prototype.toLocaleString=a.prototype.toString,a.prototype.equals=function(c){if(!a.isBuffer(c))throw new TypeError("Argument must be a Buffer");return this===c?!0:a.compare(this,c)===0},a.prototype.inspect=function(){let c="";const f=e.INSPECT_MAX_BYTES;return c=this.toString("hex",0,f).replace(/(.{2})/g,"$1 ").trim(),this.length>f&&(c+=" ... "),"<Buffer "+c+">"},n&&(a.prototype[n]=a.prototype.inspect),a.prototype.compare=function(c,f,m,_,P){if(Ke(c,Uint8Array)&&(c=a.from(c,c.offset,c.byteLength)),!a.isBuffer(c))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof c);if(f===void 0&&(f=0),m===void 0&&(m=c?c.length:0),_===void 0&&(_=0),P===void 0&&(P=this.length),f<0||m>c.length||_<0||P>this.length)throw new RangeError("out of range index");if(_>=P&&f>=m)return 0;if(_>=P)return-1;if(f>=m)return 1;if(f>>>=0,m>>>=0,_>>>=0,P>>>=0,this===c)return 0;let L=P-_,Z=m-f;const ge=Math.min(L,Z),ye=this.slice(_,P),_e=c.slice(f,m);for(let oe=0;oe<ge;++oe)if(ye[oe]!==_e[oe]){L=ye[oe],Z=_e[oe];break}return L<Z?-1:Z<L?1:0};function E(l,c,f,m,_){if(l.length===0)return-1;if(typeof f=="string"?(m=f,f=0):f>2147483647?f=2147483647:f<-2147483648&&(f=-2147483648),f=+f,Xt(f)&&(f=_?0:l.length-1),f<0&&(f=l.length+f),f>=l.length){if(_)return-1;f=l.length-1}else if(f<0)if(_)f=0;else return-1;if(typeof c=="string"&&(c=a.from(c,m)),a.isBuffer(c))return c.length===0?-1:H(l,c,f,m,_);if(typeof c=="number")return c=c&255,typeof Uint8Array.prototype.indexOf=="function"?_?Uint8Array.prototype.indexOf.call(l,c,f):Uint8Array.prototype.lastIndexOf.call(l,c,f):H(l,[c],f,m,_);throw new TypeError("val must be string, number or Buffer")}function H(l,c,f,m,_){let P=1,L=l.length,Z=c.length;if(m!==void 0&&(m=String(m).toLowerCase(),m==="ucs2"||m==="ucs-2"||m==="utf16le"||m==="utf-16le")){if(l.length<2||c.length<2)return-1;P=2,L/=2,Z/=2,f/=2}function ge(_e,oe){return P===1?_e[oe]:_e.readUInt16BE(oe*P)}let ye;if(_){let _e=-1;for(ye=f;ye<L;ye++)if(ge(l,ye)===ge(c,_e===-1?0:ye-_e)){if(_e===-1&&(_e=ye),ye-_e+1===Z)return _e*P}else _e!==-1&&(ye-=ye-_e),_e=-1}else for(f+Z>L&&(f=L-Z),ye=f;ye>=0;ye--){let _e=!0;for(let oe=0;oe<Z;oe++)if(ge(l,ye+oe)!==ge(c,oe)){_e=!1;break}if(_e)return ye}return-1}a.prototype.includes=function(c,f,m){return this.indexOf(c,f,m)!==-1},a.prototype.indexOf=function(c,f,m){return E(this,c,f,m,!0)},a.prototype.lastIndexOf=function(c,f,m){return E(this,c,f,m,!1)};function M(l,c,f,m){f=Number(f)||0;const _=l.length-f;m?(m=Number(m),m>_&&(m=_)):m=_;const P=c.length;m>P/2&&(m=P/2);let L;for(L=0;L<m;++L){const Z=parseInt(c.substr(L*2,2),16);if(Xt(Z))return L;l[f+L]=Z}return L}function O(l,c,f,m){return br(ne(c,l.length-f),l,f,m)}function q(l,c,f,m){return br(Ot(c),l,f,m)}function C(l,c,f,m){return br(jr(c),l,f,m)}function j(l,c,f,m){return br(mr(c,l.length-f),l,f,m)}a.prototype.write=function(c,f,m,_){if(f===void 0)_="utf8",m=this.length,f=0;else if(m===void 0&&typeof f=="string")_=f,m=this.length,f=0;else if(isFinite(f))f=f>>>0,isFinite(m)?(m=m>>>0,_===void 0&&(_="utf8")):(_=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const P=this.length-f;if((m===void 0||m>P)&&(m=P),c.length>0&&(m<0||f<0)||f>this.length)throw new RangeError("Attempt to write outside buffer bounds");_||(_="utf8");let L=!1;for(;;)switch(_){case"hex":return M(this,c,f,m);case"utf8":case"utf-8":return O(this,c,f,m);case"ascii":case"latin1":case"binary":return q(this,c,f,m);case"base64":return C(this,c,f,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,c,f,m);default:if(L)throw new TypeError("Unknown encoding: "+_);_=(""+_).toLowerCase(),L=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function G(l,c,f){return c===0&&f===l.length?t.fromByteArray(l):t.fromByteArray(l.slice(c,f))}function V(l,c,f){f=Math.min(l.length,f);const m=[];let _=c;for(;_<f;){const P=l[_];let L=null,Z=P>239?4:P>223?3:P>191?2:1;if(_+Z<=f){let ge,ye,_e,oe;switch(Z){case 1:P<128&&(L=P);break;case 2:ge=l[_+1],(ge&192)===128&&(oe=(P&31)<<6|ge&63,oe>127&&(L=oe));break;case 3:ge=l[_+1],ye=l[_+2],(ge&192)===128&&(ye&192)===128&&(oe=(P&15)<<12|(ge&63)<<6|ye&63,oe>2047&&(oe<55296||oe>57343)&&(L=oe));break;case 4:ge=l[_+1],ye=l[_+2],_e=l[_+3],(ge&192)===128&&(ye&192)===128&&(_e&192)===128&&(oe=(P&15)<<18|(ge&63)<<12|(ye&63)<<6|_e&63,oe>65535&&oe<1114112&&(L=oe))}}L===null?(L=65533,Z=1):L>65535&&(L-=65536,m.push(L>>>10&1023|55296),L=56320|L&1023),m.push(L),_+=Z}return ve(m)}const ee=4096;function ve(l){const c=l.length;if(c<=ee)return String.fromCharCode.apply(String,l);let f="",m=0;for(;m<c;)f+=String.fromCharCode.apply(String,l.slice(m,m+=ee));return f}function ze(l,c,f){let m="";f=Math.min(l.length,f);for(let _=c;_<f;++_)m+=String.fromCharCode(l[_]&127);return m}function tt(l,c,f){let m="";f=Math.min(l.length,f);for(let _=c;_<f;++_)m+=String.fromCharCode(l[_]);return m}function We(l,c,f){const m=l.length;(!c||c<0)&&(c=0),(!f||f<0||f>m)&&(f=m);let _="";for(let P=c;P<f;++P)_+=Gr[l[P]];return _}function It(l,c,f){const m=l.slice(c,f);let _="";for(let P=0;P<m.length-1;P+=2)_+=String.fromCharCode(m[P]+m[P+1]*256);return _}a.prototype.slice=function(c,f){const m=this.length;c=~~c,f=f===void 0?m:~~f,c<0?(c+=m,c<0&&(c=0)):c>m&&(c=m),f<0?(f+=m,f<0&&(f=0)):f>m&&(f=m),f<c&&(f=c);const _=this.subarray(c,f);return Object.setPrototypeOf(_,a.prototype),_};function de(l,c,f){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+c>f)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUintLE=a.prototype.readUIntLE=function(c,f,m){c=c>>>0,f=f>>>0,m||de(c,f,this.length);let _=this[c],P=1,L=0;for(;++L<f&&(P*=256);)_+=this[c+L]*P;return _},a.prototype.readUintBE=a.prototype.readUIntBE=function(c,f,m){c=c>>>0,f=f>>>0,m||de(c,f,this.length);let _=this[c+--f],P=1;for(;f>0&&(P*=256);)_+=this[c+--f]*P;return _},a.prototype.readUint8=a.prototype.readUInt8=function(c,f){return c=c>>>0,f||de(c,1,this.length),this[c]},a.prototype.readUint16LE=a.prototype.readUInt16LE=function(c,f){return c=c>>>0,f||de(c,2,this.length),this[c]|this[c+1]<<8},a.prototype.readUint16BE=a.prototype.readUInt16BE=function(c,f){return c=c>>>0,f||de(c,2,this.length),this[c]<<8|this[c+1]},a.prototype.readUint32LE=a.prototype.readUInt32LE=function(c,f){return c=c>>>0,f||de(c,4,this.length),(this[c]|this[c+1]<<8|this[c+2]<<16)+this[c+3]*16777216},a.prototype.readUint32BE=a.prototype.readUInt32BE=function(c,f){return c=c>>>0,f||de(c,4,this.length),this[c]*16777216+(this[c+1]<<16|this[c+2]<<8|this[c+3])},a.prototype.readBigUInt64LE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const _=f+this[++c]*2**8+this[++c]*2**16+this[++c]*2**24,P=this[++c]+this[++c]*2**8+this[++c]*2**16+m*2**24;return BigInt(_)+(BigInt(P)<<BigInt(32))}),a.prototype.readBigUInt64BE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const _=f*2**24+this[++c]*2**16+this[++c]*2**8+this[++c],P=this[++c]*2**24+this[++c]*2**16+this[++c]*2**8+m;return(BigInt(_)<<BigInt(32))+BigInt(P)}),a.prototype.readIntLE=function(c,f,m){c=c>>>0,f=f>>>0,m||de(c,f,this.length);let _=this[c],P=1,L=0;for(;++L<f&&(P*=256);)_+=this[c+L]*P;return P*=128,_>=P&&(_-=Math.pow(2,8*f)),_},a.prototype.readIntBE=function(c,f,m){c=c>>>0,f=f>>>0,m||de(c,f,this.length);let _=f,P=1,L=this[c+--_];for(;_>0&&(P*=256);)L+=this[c+--_]*P;return P*=128,L>=P&&(L-=Math.pow(2,8*f)),L},a.prototype.readInt8=function(c,f){return c=c>>>0,f||de(c,1,this.length),this[c]&128?(255-this[c]+1)*-1:this[c]},a.prototype.readInt16LE=function(c,f){c=c>>>0,f||de(c,2,this.length);const m=this[c]|this[c+1]<<8;return m&32768?m|4294901760:m},a.prototype.readInt16BE=function(c,f){c=c>>>0,f||de(c,2,this.length);const m=this[c+1]|this[c]<<8;return m&32768?m|4294901760:m},a.prototype.readInt32LE=function(c,f){return c=c>>>0,f||de(c,4,this.length),this[c]|this[c+1]<<8|this[c+2]<<16|this[c+3]<<24},a.prototype.readInt32BE=function(c,f){return c=c>>>0,f||de(c,4,this.length),this[c]<<24|this[c+1]<<16|this[c+2]<<8|this[c+3]},a.prototype.readBigInt64LE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const _=this[c+4]+this[c+5]*2**8+this[c+6]*2**16+(m<<24);return(BigInt(_)<<BigInt(32))+BigInt(f+this[++c]*2**8+this[++c]*2**16+this[++c]*2**24)}),a.prototype.readBigInt64BE=Je(function(c){c=c>>>0,N(c,"offset");const f=this[c],m=this[c+7];(f===void 0||m===void 0)&&$(c,this.length-8);const _=(f<<24)+this[++c]*2**16+this[++c]*2**8+this[++c];return(BigInt(_)<<BigInt(32))+BigInt(this[++c]*2**24+this[++c]*2**16+this[++c]*2**8+m)}),a.prototype.readFloatLE=function(c,f){return c=c>>>0,f||de(c,4,this.length),r.read(this,c,!0,23,4)},a.prototype.readFloatBE=function(c,f){return c=c>>>0,f||de(c,4,this.length),r.read(this,c,!1,23,4)},a.prototype.readDoubleLE=function(c,f){return c=c>>>0,f||de(c,8,this.length),r.read(this,c,!0,52,8)},a.prototype.readDoubleBE=function(c,f){return c=c>>>0,f||de(c,8,this.length),r.read(this,c,!1,52,8)};function Ee(l,c,f,m,_,P){if(!a.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(c>_||c<P)throw new RangeError('"value" argument is out of bounds');if(f+m>l.length)throw new RangeError("Index out of range")}a.prototype.writeUintLE=a.prototype.writeUIntLE=function(c,f,m,_){if(c=+c,f=f>>>0,m=m>>>0,!_){const Z=Math.pow(2,8*m)-1;Ee(this,c,f,m,Z,0)}let P=1,L=0;for(this[f]=c&255;++L<m&&(P*=256);)this[f+L]=c/P&255;return f+m},a.prototype.writeUintBE=a.prototype.writeUIntBE=function(c,f,m,_){if(c=+c,f=f>>>0,m=m>>>0,!_){const Z=Math.pow(2,8*m)-1;Ee(this,c,f,m,Z,0)}let P=m-1,L=1;for(this[f+P]=c&255;--P>=0&&(L*=256);)this[f+P]=c/L&255;return f+m},a.prototype.writeUint8=a.prototype.writeUInt8=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,1,255,0),this[f]=c&255,f+1},a.prototype.writeUint16LE=a.prototype.writeUInt16LE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,2,65535,0),this[f]=c&255,this[f+1]=c>>>8,f+2},a.prototype.writeUint16BE=a.prototype.writeUInt16BE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,2,65535,0),this[f]=c>>>8,this[f+1]=c&255,f+2},a.prototype.writeUint32LE=a.prototype.writeUInt32LE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,4,4294967295,0),this[f+3]=c>>>24,this[f+2]=c>>>16,this[f+1]=c>>>8,this[f]=c&255,f+4},a.prototype.writeUint32BE=a.prototype.writeUInt32BE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,4,4294967295,0),this[f]=c>>>24,this[f+1]=c>>>16,this[f+2]=c>>>8,this[f+3]=c&255,f+4};function qe(l,c,f,m,_){w(c,m,_,l,f,7);let P=Number(c&BigInt(4294967295));l[f++]=P,P=P>>8,l[f++]=P,P=P>>8,l[f++]=P,P=P>>8,l[f++]=P;let L=Number(c>>BigInt(32)&BigInt(4294967295));return l[f++]=L,L=L>>8,l[f++]=L,L=L>>8,l[f++]=L,L=L>>8,l[f++]=L,f}function Pt(l,c,f,m,_){w(c,m,_,l,f,7);let P=Number(c&BigInt(4294967295));l[f+7]=P,P=P>>8,l[f+6]=P,P=P>>8,l[f+5]=P,P=P>>8,l[f+4]=P;let L=Number(c>>BigInt(32)&BigInt(4294967295));return l[f+3]=L,L=L>>8,l[f+2]=L,L=L>>8,l[f+1]=L,L=L>>8,l[f]=L,f+8}a.prototype.writeBigUInt64LE=Je(function(c,f=0){return qe(this,c,f,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeBigUInt64BE=Je(function(c,f=0){return Pt(this,c,f,BigInt(0),BigInt("0xffffffffffffffff"))}),a.prototype.writeIntLE=function(c,f,m,_){if(c=+c,f=f>>>0,!_){const ge=Math.pow(2,8*m-1);Ee(this,c,f,m,ge-1,-ge)}let P=0,L=1,Z=0;for(this[f]=c&255;++P<m&&(L*=256);)c<0&&Z===0&&this[f+P-1]!==0&&(Z=1),this[f+P]=(c/L>>0)-Z&255;return f+m},a.prototype.writeIntBE=function(c,f,m,_){if(c=+c,f=f>>>0,!_){const ge=Math.pow(2,8*m-1);Ee(this,c,f,m,ge-1,-ge)}let P=m-1,L=1,Z=0;for(this[f+P]=c&255;--P>=0&&(L*=256);)c<0&&Z===0&&this[f+P+1]!==0&&(Z=1),this[f+P]=(c/L>>0)-Z&255;return f+m},a.prototype.writeInt8=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,1,127,-128),c<0&&(c=255+c+1),this[f]=c&255,f+1},a.prototype.writeInt16LE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,2,32767,-32768),this[f]=c&255,this[f+1]=c>>>8,f+2},a.prototype.writeInt16BE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,2,32767,-32768),this[f]=c>>>8,this[f+1]=c&255,f+2},a.prototype.writeInt32LE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,4,2147483647,-2147483648),this[f]=c&255,this[f+1]=c>>>8,this[f+2]=c>>>16,this[f+3]=c>>>24,f+4},a.prototype.writeInt32BE=function(c,f,m){return c=+c,f=f>>>0,m||Ee(this,c,f,4,2147483647,-2147483648),c<0&&(c=4294967295+c+1),this[f]=c>>>24,this[f+1]=c>>>16,this[f+2]=c>>>8,this[f+3]=c&255,f+4},a.prototype.writeBigInt64LE=Je(function(c,f=0){return qe(this,c,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),a.prototype.writeBigInt64BE=Je(function(c,f=0){return Pt(this,c,f,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function pt(l,c,f,m,_,P){if(f+m>l.length)throw new RangeError("Index out of range");if(f<0)throw new RangeError("Index out of range")}function k(l,c,f,m,_){return c=+c,f=f>>>0,_||pt(l,c,f,4),r.write(l,c,f,m,23,4),f+4}a.prototype.writeFloatLE=function(c,f,m){return k(this,c,f,!0,m)},a.prototype.writeFloatBE=function(c,f,m){return k(this,c,f,!1,m)};function A(l,c,f,m,_){return c=+c,f=f>>>0,_||pt(l,c,f,8),r.write(l,c,f,m,52,8),f+8}a.prototype.writeDoubleLE=function(c,f,m){return A(this,c,f,!0,m)},a.prototype.writeDoubleBE=function(c,f,m){return A(this,c,f,!1,m)},a.prototype.copy=function(c,f,m,_){if(!a.isBuffer(c))throw new TypeError("argument should be a Buffer");if(m||(m=0),!_&&_!==0&&(_=this.length),f>=c.length&&(f=c.length),f||(f=0),_>0&&_<m&&(_=m),_===m||c.length===0||this.length===0)return 0;if(f<0)throw new RangeError("targetStart out of bounds");if(m<0||m>=this.length)throw new RangeError("Index out of range");if(_<0)throw new RangeError("sourceEnd out of bounds");_>this.length&&(_=this.length),c.length-f<_-m&&(_=c.length-f+m);const P=_-m;return this===c&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(f,m,_):Uint8Array.prototype.set.call(c,this.subarray(m,_),f),P},a.prototype.fill=function(c,f,m,_){if(typeof c=="string"){if(typeof f=="string"?(_=f,f=0,m=this.length):typeof m=="string"&&(_=m,m=this.length),_!==void 0&&typeof _!="string")throw new TypeError("encoding must be a string");if(typeof _=="string"&&!a.isEncoding(_))throw new TypeError("Unknown encoding: "+_);if(c.length===1){const L=c.charCodeAt(0);(_==="utf8"&&L<128||_==="latin1")&&(c=L)}}else typeof c=="number"?c=c&255:typeof c=="boolean"&&(c=Number(c));if(f<0||this.length<f||this.length<m)throw new RangeError("Out of range index");if(m<=f)return this;f=f>>>0,m=m===void 0?this.length:m>>>0,c||(c=0);let P;if(typeof c=="number")for(P=f;P<m;++P)this[P]=c;else{const L=a.isBuffer(c)?c:a.from(c,_),Z=L.length;if(Z===0)throw new TypeError('The value "'+c+'" is invalid for argument "value"');for(P=0;P<m-f;++P)this[P+f]=L[P%Z]}return this};const F={};function z(l,c,f){F[l]=class extends f{constructor(){super(),Object.defineProperty(this,"message",{value:c.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(_){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:_,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}z("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),z("ERR_INVALID_ARG_TYPE",function(l,c){return`The "${l}" argument must be of type number. Received type ${typeof c}`},TypeError),z("ERR_OUT_OF_RANGE",function(l,c,f){let m=`The value of "${l}" is out of range.`,_=f;return Number.isInteger(f)&&Math.abs(f)>2**32?_=Y(String(f)):typeof f=="bigint"&&(_=String(f),(f>BigInt(2)**BigInt(32)||f<-(BigInt(2)**BigInt(32)))&&(_=Y(_)),_+="n"),m+=` It must be ${c}. Received ${_}`,m},RangeError);function Y(l){let c="",f=l.length;const m=l[0]==="-"?1:0;for(;f>=m+4;f-=3)c=`_${l.slice(f-3,f)}${c}`;return`${l.slice(0,f)}${c}`}function b(l,c,f){N(c,"offset"),(l[c]===void 0||l[c+f]===void 0)&&$(c,l.length-(f+1))}function w(l,c,f,m,_,P){if(l>f||l<c){const L=typeof c=="bigint"?"n":"";let Z;throw c===0||c===BigInt(0)?Z=`>= 0${L} and < 2${L} ** ${(P+1)*8}${L}`:Z=`>= -(2${L} ** ${(P+1)*8-1}${L}) and < 2 ** ${(P+1)*8-1}${L}`,new F.ERR_OUT_OF_RANGE("value",Z,l)}b(m,_,P)}function N(l,c){if(typeof l!="number")throw new F.ERR_INVALID_ARG_TYPE(c,"number",l)}function $(l,c,f){throw Math.floor(l)!==l?(N(l,f),new F.ERR_OUT_OF_RANGE("offset","an integer",l)):c<0?new F.ERR_BUFFER_OUT_OF_BOUNDS:new F.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${c}`,l)}const pe=/[^+/0-9A-Za-z-_]/g;function X(l){if(l=l.split("=")[0],l=l.trim().replace(pe,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function ne(l,c){c=c||1/0;let f;const m=l.length;let _=null;const P=[];for(let L=0;L<m;++L){if(f=l.charCodeAt(L),f>55295&&f<57344){if(!_){if(f>56319){(c-=3)>-1&&P.push(239,191,189);continue}else if(L+1===m){(c-=3)>-1&&P.push(239,191,189);continue}_=f;continue}if(f<56320){(c-=3)>-1&&P.push(239,191,189),_=f;continue}f=(_-55296<<10|f-56320)+65536}else _&&(c-=3)>-1&&P.push(239,191,189);if(_=null,f<128){if((c-=1)<0)break;P.push(f)}else if(f<2048){if((c-=2)<0)break;P.push(f>>6|192,f&63|128)}else if(f<65536){if((c-=3)<0)break;P.push(f>>12|224,f>>6&63|128,f&63|128)}else if(f<1114112){if((c-=4)<0)break;P.push(f>>18|240,f>>12&63|128,f>>6&63|128,f&63|128)}else throw new Error("Invalid code point")}return P}function Ot(l){const c=[];for(let f=0;f<l.length;++f)c.push(l.charCodeAt(f)&255);return c}function mr(l,c){let f,m,_;const P=[];for(let L=0;L<l.length&&!((c-=2)<0);++L)f=l.charCodeAt(L),m=f>>8,_=f%256,P.push(_),P.push(m);return P}function jr(l){return t.toByteArray(X(l))}function br(l,c,f,m){let _;for(_=0;_<m&&!(_+f>=c.length||_>=l.length);++_)c[_+f]=l[_];return _}function Ke(l,c){return l instanceof c||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===c.name}function Xt(l){return l!==l}const Gr=function(){const l="0123456789abcdef",c=new Array(256);for(let f=0;f<16;++f){const m=f*16;for(let _=0;_<16;++_)c[m+_]=l[f]+l[_]}return c}();function Je(l){return typeof BigInt>"u"?Jt:l}function Jt(){throw new Error("BigInt not supported")}})(Bt);var pn={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}};pn.Null=pn.Nil;for(var oo in pn)pn[oo].toJSON=(function(e){return e}).bind(null,oo);var Ps=pn,rr=Ps;function _a(e){return e.name||e.toString().match(/function (.*?)\s*\(/)[1]}function Os(e){return rr.Nil(e)?"":_a(e.constructor)}function Df(e){return rr.Function(e)?"":rr.String(e)?JSON.stringify(e):e&&rr.Object(e)?"":e}function Rs(e,t){Error.captureStackTrace&&Error.captureStackTrace(e,t)}function Jn(e){return rr.Function(e)?e.toJSON?e.toJSON():_a(e):rr.Array(e)?"Array":e&&rr.Object(e)?"Object":e!==void 0?e:""}function va(e,t,r){var n=Df(t);return"Expected "+Jn(e)+", got"+(r!==""?" "+r:"")+(n!==""?" "+n:"")}function At(e,t,r){r=r||Os(t),this.message=va(e,t,r),Rs(this,At),this.__type=e,this.__value=t,this.__valueTypeName=r}At.prototype=Object.create(Error.prototype);At.prototype.constructor=At;function $f(e,t,r,n,i){var s='" of type ';return t==="key"&&(s='" with key type '),va('property "'+Jn(r)+s+Jn(e),n,i)}function Tr(e,t,r,n,i){e?(i=i||Os(n),this.message=$f(e,r,t,n,i)):this.message='Unexpected property "'+t+'"',Rs(this,At),this.__label=r,this.__property=t,this.__type=e,this.__value=n,this.__valueTypeName=i}Tr.prototype=Object.create(Error.prototype);Tr.prototype.constructor=At;function jf(e,t){return new At(e,{},t)}function Gf(e,t,r){return e instanceof Tr?(t=t+"."+e.__property,e=new Tr(e.__type,t,e.__label,e.__value,e.__valueTypeName)):e instanceof At&&(e=new Tr(e.__type,t,r,e.__value,e.__valueTypeName)),Rs(e),e}var Ea={TfTypeError:At,TfPropertyTypeError:Tr,tfCustomError:jf,tfSubError:Gf,tfJSON:Jn,getValueTypeName:Os},Ni,ao;function Vf(){if(ao)return Ni;ao=1;var e=Ps,t=Ea;function r(E){return Buffer.isBuffer(E)}function n(E){return typeof E=="string"&&/^([0-9a-f]{2})+$/i.test(E)}function i(E,H){var M=E.toJSON();function O(q){if(!E(q))return!1;if(q.length===H)return!0;throw t.tfCustomError(M+"(Length: "+H+")",M+"(Length: "+q.length+")")}return O.toJSON=function(){return M},O}var s=i.bind(null,e.Array),o=i.bind(null,r),a=i.bind(null,n),u=i.bind(null,e.String);function h(E,H,M){M=M||e.Number;function O(q,C){return M(q,C)&&q>E&&q<H}return O.toJSON=function(){return`${M.toJSON()} between [${E}, ${H}]`},O}var d=Math.pow(2,53)-1;function y(E){return typeof E=="number"&&isFinite(E)}function v(E){return E<<24>>24===E}function p(E){return E<<16>>16===E}function I(E){return(E|0)===E}function B(E){return typeof E=="number"&&E>=-d&&E<=d&&Math.floor(E)===E}function T(E){return(E&255)===E}function R(E){return(E&65535)===E}function U(E){return E>>>0===E}function x(E){return typeof E=="number"&&E>=0&&E<=d&&Math.floor(E)===E}var g={ArrayN:s,Buffer:r,BufferN:o,Finite:y,Hex:n,HexN:a,Int8:v,Int16:p,Int32:I,Int53:B,Range:h,StringN:u,UInt8:T,UInt16:R,UInt32:U,UInt53:x};for(var S in g)g[S].toJSON=(function(E){return E}).bind(null,S);return Ni=g,Ni}var wn=Ea,Ie=Ps,yt=wn.tfJSON,xa=wn.TfTypeError,Sa=wn.TfPropertyTypeError,Vr=wn.tfSubError,zf=wn.getValueTypeName,vt={arrayOf:function(t,r){t=ut(t),r=r||{};function n(i,s){return!Ie.Array(i)||Ie.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(o,a){try{return je(t,o,s)}catch(u){throw Vr(u,a)}})}return n.toJSON=function(){var i="["+yt(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=ut(t);function r(n,i){return Ie.Nil(n)||t(n,i,e)}return r.toJSON=function(){return"?"+yt(t)},r},map:function(t,r){t=ut(t),r&&(r=ut(r));function n(i,s){if(!Ie.Object(i)||Ie.Nil(i))return!1;for(var o in i){try{r&&je(r,o,s)}catch(u){throw Vr(u,o,"key")}try{var a=i[o];je(t,a,s)}catch(u){throw Vr(u,o)}}return!0}return r?n.toJSON=function(){return"{"+yt(r)+": "+yt(t)+"}"}:n.toJSON=function(){return"{"+yt(t)+"}"},n},object:function(t){var r={};for(var n in t)r[n]=ut(t[n]);function i(s,o){if(!Ie.Object(s)||Ie.Nil(s))return!1;var a;try{for(a in r){var u=r[a],h=s[a];je(u,h,o)}}catch(d){throw Vr(d,a)}if(o){for(a in s)if(!r[a])throw new Sa(void 0,a)}return!0}return i.toJSON=function(){return yt(r)},i},anyOf:function(){var t=[].slice.call(arguments).map(ut);function r(n,i){return t.some(function(s){try{return je(s,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(yt).join("|")},r},allOf:function(){var t=[].slice.call(arguments).map(ut);function r(n,i){return t.every(function(s){try{return je(s,n,i)}catch{return!1}})}return r.toJSON=function(){return t.map(yt).join(" & ")},r},quacksLike:function(t){function r(n){return t===zf(n)}return r.toJSON=function(){return t},r},tuple:function(){var t=[].slice.call(arguments).map(ut);function r(n,i){return Ie.Nil(n)||Ie.Nil(n.length)||i&&n.length!==t.length?!1:t.every(function(s,o){try{return je(s,n[o],i)}catch(a){throw Vr(a,o)}})}return r.toJSON=function(){return"("+t.map(yt).join(", ")+")"},r},value:function(t){function r(n){return n===t}return r.toJSON=function(){return t},r}};vt.oneOf=vt.anyOf;function ut(e){if(Ie.String(e))return e[0]==="?"?vt.maybe(e.slice(1)):Ie[e]||vt.quacksLike(e);if(e&&Ie.Object(e)){if(Ie.Array(e)){if(e.length!==1)throw new TypeError("Expected compile() parameter of type Array of length 1");return vt.arrayOf(e[0])}return vt.object(e)}else if(Ie.Function(e))return e;return vt.value(e)}function je(e,t,r,n){if(Ie.Function(e)){if(e(t,r))return!0;throw new xa(n||e,t)}return je(ut(e),t,r)}for(var Dt in Ie)je[Dt]=Ie[Dt];for(Dt in vt)je[Dt]=vt[Dt];var co=Vf();for(Dt in co)je[Dt]=co[Dt];je.compile=ut;je.TfTypeError=xa;je.TfPropertyTypeError=Sa;var Aa=je;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.oneOf=e.Null=e.BufferN=e.Function=e.UInt32=e.UInt8=e.tuple=e.maybe=e.Hex=e.Buffer=e.String=e.Boolean=e.Array=e.Number=e.Hash256bit=e.Hash160bit=e.Buffer256bit=e.isTaptree=e.isTapleaf=e.TAPLEAF_VERSION_MASK=e.Satoshi=e.isPoint=e.stacksEqual=e.typeforce=void 0;const t=Bt;e.typeforce=Aa;const r=t.Buffer.alloc(32,0),n=t.Buffer.from("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f","hex");function i(d,y){return d.length!==y.length?!1:d.every((v,p)=>v.equals(y[p]))}e.stacksEqual=i;function s(d){if(!t.Buffer.isBuffer(d)||d.length<33)return!1;const y=d[0],v=d.slice(1,33);if(v.compare(r)===0||v.compare(n)>=0)return!1;if((y===2||y===3)&&d.length===33)return!0;const p=d.slice(33);return p.compare(r)===0||p.compare(n)>=0?!1:y===4&&d.length===65}e.isPoint=s;const o=21*1e14;function a(d){return e.typeforce.UInt53(d)&&d<=o}e.Satoshi=a,e.TAPLEAF_VERSION_MASK=254;function u(d){return!d||!("output"in d)||!t.Buffer.isBuffer(d.output)?!1:d.version!==void 0?(d.version&e.TAPLEAF_VERSION_MASK)===d.version:!0}e.isTapleaf=u;function h(d){return(0,e.Array)(d)?d.length!==2?!1:d.every(y=>h(y)):u(d)}e.isTaptree=h,e.Buffer256bit=e.typeforce.BufferN(32),e.Hash160bit=e.typeforce.BufferN(20),e.Hash256bit=e.typeforce.BufferN(32),e.Number=e.typeforce.Number,e.Array=e.typeforce.Array,e.Boolean=e.typeforce.Boolean,e.String=e.typeforce.String,e.Buffer=e.typeforce.Buffer,e.Hex=e.typeforce.Hex,e.maybe=e.typeforce.maybe,e.tuple=e.typeforce.tuple,e.UInt8=e.typeforce.UInt8,e.UInt32=e.typeforce.UInt32,e.Function=e.typeforce.Function,e.BufferN=e.typeforce.BufferN,e.Null=e.typeforce.Null,e.oneOf=e.typeforce.oneOf})(Fe);var gn={},Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});Pe.BufferReader=Pe.BufferWriter=Pe.cloneBuffer=Pe.reverseBuffer=Pe.writeUInt64LE=Pe.readUInt64LE=Pe.varuint=void 0;const nr=Fe,{typeforce:ka}=nr,yn=da;Pe.varuint=yn;function Ta(e,t){if(typeof e!="number")throw new Error("cannot write a non-number as a number");if(e<0)throw new Error("specified a negative value for writing an unsigned value");if(e>t)throw new Error("RangeError: value out of range");if(Math.floor(e)!==e)throw new Error("value has a fractional component")}function Ba(e,t){const r=e.readUInt32LE(t);let n=e.readUInt32LE(t+4);return n*=4294967296,Ta(n+r,9007199254740991),n+r}Pe.readUInt64LE=Ba;function Ia(e,t,r){return Ta(t,9007199254740991),e.writeInt32LE(t&-1,r),e.writeUInt32LE(Math.floor(t/4294967296),r+4),r+8}Pe.writeUInt64LE=Ia;function Wf(e){if(e.length<1)return e;let t=e.length-1,r=0;for(let n=0;n<e.length/2;n++)r=e[n],e[n]=e[t],e[t]=r,t--;return e}Pe.reverseBuffer=Wf;function qf(e){const t=Buffer.allocUnsafe(e.length);return e.copy(t),t}Pe.cloneBuffer=qf;class Cs{static withCapacity(t){return new Cs(Buffer.alloc(t))}constructor(t,r=0){this.buffer=t,this.offset=r,ka(nr.tuple(nr.Buffer,nr.UInt32),[t,r])}writeUInt8(t){this.offset=this.buffer.writeUInt8(t,this.offset)}writeInt32(t){this.offset=this.buffer.writeInt32LE(t,this.offset)}writeUInt32(t){this.offset=this.buffer.writeUInt32LE(t,this.offset)}writeUInt64(t){this.offset=Ia(this.buffer,t,this.offset)}writeVarInt(t){yn.encode(t,this.buffer,this.offset),this.offset+=yn.encode.bytes}writeSlice(t){if(this.buffer.length<this.offset+t.length)throw new Error("Cannot write slice out of bounds");this.offset+=t.copy(this.buffer,this.offset)}writeVarSlice(t){this.writeVarInt(t.length),this.writeSlice(t)}writeVector(t){this.writeVarInt(t.length),t.forEach(r=>this.writeVarSlice(r))}end(){if(this.buffer.length===this.offset)return this.buffer;throw new Error(`buffer size ${this.buffer.length}, offset ${this.offset}`)}}Pe.BufferWriter=Cs;class Kf{constructor(t,r=0){this.buffer=t,this.offset=r,ka(nr.tuple(nr.Buffer,nr.UInt32),[t,r])}readUInt8(){const t=this.buffer.readUInt8(this.offset);return this.offset++,t}readInt32(){const t=this.buffer.readInt32LE(this.offset);return this.offset+=4,t}readUInt32(){const t=this.buffer.readUInt32LE(this.offset);return this.offset+=4,t}readUInt64(){const t=Ba(this.buffer,this.offset);return this.offset+=8,t}readVarInt(){const t=yn.decode(this.buffer,this.offset);return this.offset+=yn.decode.bytes,t}readSlice(t){if(this.buffer.length<this.offset+t)throw new Error("Cannot read slice out of bounds");const r=this.buffer.slice(this.offset,this.offset+t);return this.offset+=t,r}readVarSlice(){return this.readSlice(this.readVarInt())}readVector(){const t=this.readVarInt(),r=[];for(let n=0;n<t;n++)r.push(this.readVarSlice());return r}}Pe.BufferReader=Kf;var Vt={},Rr={},zt={},Wt={};Object.defineProperty(Wt,"__esModule",{value:!0});Wt.anumber=ds;Wt.abytes=Pa;Wt.ahash=Xf;Wt.aexists=Jf;Wt.aoutput=Qf;function ds(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Yf(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Pa(e,...t){if(!Yf(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Xf(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ds(e.outputLen),ds(e.blockLen)}function Jf(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 Qf(e,t){Pa(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}var ci={},fi={};Object.defineProperty(fi,"__esModule",{value:!0});fi.crypto=void 0;fi.crypto=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;(function(e){/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */Object.defineProperty(e,"__esModule",{value:!0}),e.Hash=e.nextTick=e.byteSwapIfBE=e.isLE=void 0,e.isBytes=n,e.u8=i,e.u32=s,e.createView=o,e.rotr=a,e.rotl=u,e.byteSwap=h,e.byteSwap32=d,e.bytesToHex=v,e.hexToBytes=B,e.asyncLoop=R,e.utf8ToBytes=U,e.toBytes=x,e.concatBytes=g,e.checkOpts=E,e.wrapConstructor=H,e.wrapConstructorWithOpts=M,e.wrapXOFConstructorWithOpts=O,e.randomBytes=q;const t=fi,r=Wt;function n(C){return C instanceof Uint8Array||ArrayBuffer.isView(C)&&C.constructor.name==="Uint8Array"}function i(C){return new Uint8Array(C.buffer,C.byteOffset,C.byteLength)}function s(C){return new Uint32Array(C.buffer,C.byteOffset,Math.floor(C.byteLength/4))}function o(C){return new DataView(C.buffer,C.byteOffset,C.byteLength)}function a(C,j){return C<<32-j|C>>>j}function u(C,j){return C<<j|C>>>32-j>>>0}e.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function h(C){return C<<24&4278190080|C<<8&16711680|C>>>8&65280|C>>>24&255}e.byteSwapIfBE=e.isLE?C=>C:C=>h(C);function d(C){for(let j=0;j<C.length;j++)C[j]=h(C[j])}const y=Array.from({length:256},(C,j)=>j.toString(16).padStart(2,"0"));function v(C){(0,r.abytes)(C);let j="";for(let G=0;G<C.length;G++)j+=y[C[G]];return j}const p={_0:48,_9:57,A:65,F:70,a:97,f:102};function I(C){if(C>=p._0&&C<=p._9)return C-p._0;if(C>=p.A&&C<=p.F)return C-(p.A-10);if(C>=p.a&&C<=p.f)return C-(p.a-10)}function B(C){if(typeof C!="string")throw new Error("hex string expected, got "+typeof C);const j=C.length,G=j/2;if(j%2)throw new Error("hex string expected, got unpadded hex of length "+j);const V=new Uint8Array(G);for(let ee=0,ve=0;ee<G;ee++,ve+=2){const ze=I(C.charCodeAt(ve)),tt=I(C.charCodeAt(ve+1));if(ze===void 0||tt===void 0){const We=C[ve]+C[ve+1];throw new Error('hex string expected, got non-hex character "'+We+'" at index '+ve)}V[ee]=ze*16+tt}return V}const T=async()=>{};e.nextTick=T;async function R(C,j,G){let V=Date.now();for(let ee=0;ee<C;ee++){G(ee);const ve=Date.now()-V;ve>=0&&ve<j||(await(0,e.nextTick)(),V+=ve)}}function U(C){if(typeof C!="string")throw new Error("utf8ToBytes expected string, got "+typeof C);return new Uint8Array(new TextEncoder().encode(C))}function x(C){return typeof C=="string"&&(C=U(C)),(0,r.abytes)(C),C}function g(...C){let j=0;for(let V=0;V<C.length;V++){const ee=C[V];(0,r.abytes)(ee),j+=ee.length}const G=new Uint8Array(j);for(let V=0,ee=0;V<C.length;V++){const ve=C[V];G.set(ve,ee),ee+=ve.length}return G}class S{clone(){return this._cloneInto()}}e.Hash=S;function E(C,j){if(j!==void 0&&{}.toString.call(j)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(C,j)}function H(C){const j=V=>C().update(x(V)).digest(),G=C();return j.outputLen=G.outputLen,j.blockLen=G.blockLen,j.create=()=>C(),j}function M(C){const j=(V,ee)=>C(ee).update(x(V)).digest(),G=C({});return j.outputLen=G.outputLen,j.blockLen=G.blockLen,j.create=V=>C(V),j}function O(C){const j=(V,ee)=>C(ee).update(x(V)).digest(),G=C({});return j.outputLen=G.outputLen,j.blockLen=G.blockLen,j.create=V=>C(V),j}function q(C=32){if(t.crypto&&typeof t.crypto.getRandomValues=="function")return t.crypto.getRandomValues(new Uint8Array(C));if(t.crypto&&typeof t.crypto.randomBytes=="function")return t.crypto.randomBytes(C);throw new Error("crypto.getRandomValues must be defined")}})(ci);Object.defineProperty(zt,"__esModule",{value:!0});zt.HashMD=void 0;zt.setBigUint64=Oa;zt.Chi=Zf;zt.Maj=eu;const Fi=Wt,zr=ci;function Oa(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),u=n?4:0,h=n?0:4;e.setUint32(t+u,o,n),e.setUint32(t+h,a,n)}function Zf(e,t,r){return e&t^~e&r}function eu(e,t,r){return e&t^e&r^t&r}let tu=class extends zr.Hash{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=(0,zr.createView)(this.buffer)}update(t){(0,Fi.aexists)(this);const{view:r,buffer:n,blockLen:i}=this;t=(0,zr.toBytes)(t);const s=t.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const u=(0,zr.createView)(t);for(;i<=s-o;o+=i)this.process(u,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){(0,Fi.aexists)(this),(0,Fi.aoutput)(t,this),this.finished=!0;const{buffer:r,view:n,blockLen:i,isLE:s}=this;let{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let y=o;y<i;y++)r[y]=0;Oa(n,i-8,BigInt(this.length*8),s),this.process(n,0);const a=(0,zr.createView)(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const h=u/4,d=this.get();if(h>d.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y<h;y++)a.setUint32(4*y,d[y],s)}digest(){const{buffer:t,outputLen:r}=this;this.digestInto(t);const n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};zt.HashMD=tu;Object.defineProperty(Rr,"__esModule",{value:!0});Rr.ripemd160=Rr.RIPEMD160=void 0;const ru=zt,on=ci,nu=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Ra=new Uint8Array(new Array(16).fill(0).map((e,t)=>t)),iu=Ra.map(e=>(9*e+5)%16);let Us=[Ra],Ls=[iu];for(let e=0;e<4;e++)for(let t of[Us,Ls])t.push(t[e].map(r=>nu[r]));const Ca=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),su=Us.map((e,t)=>e.map(r=>Ca[t][r])),ou=Ls.map((e,t)=>e.map(r=>Ca[t][r])),au=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),cu=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]);function fo(e,t,r,n){return e===0?t^r^n:e===1?t&r|~t&n:e===2?(t|~r)^n:e===3?t&n|r&~n:t^(r|~n)}const On=new Uint32Array(16);let Ua=class extends ru.HashMD{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:r,h2:n,h3:i,h4:s}=this;return[t,r,n,i,s]}set(t,r,n,i,s){this.h0=t|0,this.h1=r|0,this.h2=n|0,this.h3=i|0,this.h4=s|0}process(t,r){for(let p=0;p<16;p++,r+=4)On[p]=t.getUint32(r,!0);let n=this.h0|0,i=n,s=this.h1|0,o=s,a=this.h2|0,u=a,h=this.h3|0,d=h,y=this.h4|0,v=y;for(let p=0;p<5;p++){const I=4-p,B=au[p],T=cu[p],R=Us[p],U=Ls[p],x=su[p],g=ou[p];for(let S=0;S<16;S++){const E=(0,on.rotl)(n+fo(p,s,a,h)+On[R[S]]+B,x[S])+y|0;n=y,y=h,h=(0,on.rotl)(a,10)|0,a=s,s=E}for(let S=0;S<16;S++){const E=(0,on.rotl)(i+fo(I,o,u,d)+On[U[S]]+T,g[S])+v|0;i=v,v=d,d=(0,on.rotl)(u,10)|0,u=o,o=E}}this.set(this.h1+a+d|0,this.h2+h+v|0,this.h3+y+i|0,this.h4+n+o|0,this.h0+s+u|0)}roundClean(){On.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}};Rr.RIPEMD160=Ua;Rr.ripemd160=(0,on.wrapConstructor)(()=>new Ua);var Cr={};Object.defineProperty(Cr,"__esModule",{value:!0});Cr.sha1=Cr.SHA1=void 0;const Hi=zt,Gn=ci,Wr=new Uint32Array([1732584193,4023233417,2562383102,271733878,3285377520]),Rt=new Uint32Array(80);class La extends Hi.HashMD{constructor(){super(64,20,8,!1),this.A=Wr[0]|0,this.B=Wr[1]|0,this.C=Wr[2]|0,this.D=Wr[3]|0,this.E=Wr[4]|0}get(){const{A:t,B:r,C:n,D:i,E:s}=this;return[t,r,n,i,s]}set(t,r,n,i,s){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0}process(t,r){for(let u=0;u<16;u++,r+=4)Rt[u]=t.getUint32(r,!1);for(let u=16;u<80;u++)Rt[u]=(0,Gn.rotl)(Rt[u-3]^Rt[u-8]^Rt[u-14]^Rt[u-16],1);let{A:n,B:i,C:s,D:o,E:a}=this;for(let u=0;u<80;u++){let h,d;u<20?(h=(0,Hi.Chi)(i,s,o),d=1518500249):u<40?(h=i^s^o,d=1859775393):u<60?(h=(0,Hi.Maj)(i,s,o),d=2400959708):(h=i^s^o,d=3395469782);const y=(0,Gn.rotl)(n,5)+h+a+d+Rt[u]|0;a=o,o=s,s=(0,Gn.rotl)(i,30),i=n,n=y}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,this.set(n,i,s,o,a)}roundClean(){Rt.fill(0)}destroy(){this.set(0,0,0,0,0),this.buffer.fill(0)}}Cr.SHA1=La;Cr.sha1=(0,Gn.wrapConstructor)(()=>new La);function uo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function fu(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Ns(e,...t){if(!fu(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Qn(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 Na(e,t){Ns(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function uu(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Mi(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function it(e,t){return e<<32-t|e>>>t}const lo=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function lu(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function ho(e){for(let t=0;t<e.length;t++)e[t]=lu(e[t])}function hu(e){if(typeof e!="string")throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array(new TextEncoder().encode(e))}function Fs(e){return typeof e=="string"&&(e=hu(e)),Ns(e),e}let Fa=class{clone(){return this._cloneInto()}};function Hs(e){const t=n=>e().update(Fs(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function du(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),u=n?4:0,h=n?0:4;e.setUint32(t+u,o,n),e.setUint32(t+h,a,n)}function pu(e,t,r){return e&t^~e&r}function yu(e,t,r){return e&t^e&r^t&r}class mu extends Fa{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=Mi(this.buffer)}update(t){Qn(this);const{view:r,buffer:n,blockLen:i}=this;t=Fs(t);const s=t.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const u=Mi(t);for(;i<=s-o;o+=i)this.process(u,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Qn(this),Na(t,this),this.finished=!0;const{buffer:r,view:n,blockLen:i,isLE:s}=this;let{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let y=o;y<i;y++)r[y]=0;du(n,i-8,BigInt(this.length*8),s),this.process(n,0);const a=Mi(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const h=u/4,d=this.get();if(h>d.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y<h;y++)a.setUint32(4*y,d[y],s)}digest(){const{buffer:t,outputLen:r}=this;this.digestInto(t);const n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}}const bu=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]),Ct=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ut=new Uint32Array(64);class Ms extends mu{constructor(){super(64,32,8,!1),this.A=Ct[0]|0,this.B=Ct[1]|0,this.C=Ct[2]|0,this.D=Ct[3]|0,this.E=Ct[4]|0,this.F=Ct[5]|0,this.G=Ct[6]|0,this.H=Ct[7]|0}get(){const{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:u}=this;return[t,r,n,i,s,o,a,u]}set(t,r,n,i,s,o,a,u){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=u|0}process(t,r){for(let y=0;y<16;y++,r+=4)Ut[y]=t.getUint32(r,!1);for(let y=16;y<64;y++){const v=Ut[y-15],p=Ut[y-2],I=it(v,7)^it(v,18)^v>>>3,B=it(p,17)^it(p,19)^p>>>10;Ut[y]=B+Ut[y-7]+I+Ut[y-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:u,G:h,H:d}=this;for(let y=0;y<64;y++){const v=it(a,6)^it(a,11)^it(a,25),p=d+v+pu(a,u,h)+bu[y]+Ut[y]|0,B=(it(n,2)^it(n,13)^it(n,22))+yu(n,i,s)|0;d=h,h=u,u=a,a=o+p|0,o=s,s=i,i=n,n=p+B|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,u=u+this.F|0,h=h+this.G|0,d=d+this.H|0,this.set(n,i,s,o,a,u,h,d)}roundClean(){Ut.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class wu extends Ms{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const Ha=Hs(()=>new Ms),gu=Hs(()=>new wu),_u=Object.freeze(Object.defineProperty({__proto__:null,SHA256:Ms,sha224:gu,sha256:Ha},Symbol.toStringTag,{value:"Module"})),Ma=wa(_u);(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.taggedHash=e.TAGGED_HASH_PREFIXES=e.TAGS=e.hash256=e.hash160=e.sha256=e.sha1=e.ripemd160=void 0;const t=Rr,r=Cr,n=Ma;function i(d){return Buffer.from((0,t.ripemd160)(Uint8Array.from(d)))}e.ripemd160=i;function s(d){return Buffer.from((0,r.sha1)(Uint8Array.from(d)))}e.sha1=s;function o(d){return Buffer.from((0,n.sha256)(Uint8Array.from(d)))}e.sha256=o;function a(d){return Buffer.from((0,t.ripemd160)((0,n.sha256)(Uint8Array.from(d))))}e.hash160=a;function u(d){return Buffer.from((0,n.sha256)((0,n.sha256)(Uint8Array.from(d))))}e.hash256=u,e.TAGS=["BIP0340/challenge","BIP0340/aux","BIP0340/nonce","TapLeaf","TapBranch","TapSighash","TapTweak","KeyAgg list","KeyAgg coefficient"],e.TAGGED_HASH_PREFIXES={"BIP0340/challenge":Buffer.from([123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124,123,181,45,122,159,239,88,50,62,177,191,122,64,125,179,130,210,243,242,216,27,177,34,79,73,254,81,143,109,72,211,124]),"BIP0340/aux":Buffer.from([241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144,241,239,78,94,192,99,202,218,109,148,202,250,157,152,126,160,105,38,88,57,236,193,31,151,45,119,165,46,216,193,204,144]),"BIP0340/nonce":Buffer.from([7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47,7,73,119,52,167,155,203,53,91,155,140,125,3,79,18,28,244,52,215,62,247,45,218,25,135,0,97,251,82,191,235,47]),TapLeaf:Buffer.from([174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238,174,234,143,220,66,8,152,49,5,115,75,88,8,29,30,38,56,211,95,28,181,64,8,212,211,87,202,3,190,120,233,238]),TapBranch:Buffer.from([25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21,25,65,161,242,229,110,185,95,162,169,241,148,190,92,1,247,33,111,51,237,130,176,145,70,52,144,208,91,245,22,160,21]),TapSighash:Buffer.from([244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49,244,10,72,223,75,42,112,200,180,146,75,242,101,70,97,237,61,149,253,102,163,19,235,135,35,117,151,198,40,228,160,49]),TapTweak:Buffer.from([232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233,232,15,225,99,156,156,160,80,227,175,27,57,193,67,198,62,66,156,188,235,21,217,64,251,181,197,161,244,175,87,197,233]),"KeyAgg list":Buffer.from([72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240,72,28,151,28,60,11,70,215,240,178,117,174,89,141,78,44,126,215,49,156,89,74,92,110,199,158,160,212,153,2,148,240]),"KeyAgg coefficient":Buffer.from([191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129,191,201,4,3,77,28,136,232,200,14,34,229,61,36,86,109,100,130,78,214,66,114,129,192,145,0,249,77,205,82,201,129])};function h(d,y){return o(Buffer.concat([e.TAGGED_HASH_PREFIXES[d],y]))}e.taggedHash=h})(Vt);var Di={},St={};Object.defineProperty(St,"__esModule",{value:!0});St.encode=St.decode=St.check=void 0;function vu(e){if(e.length<8||e.length>72||e[0]!==48||e[1]!==e.length-2||e[2]!==2)return!1;const t=e[3];if(t===0||5+t>=e.length||e[4+t]!==2)return!1;const r=e[5+t];return!(r===0||6+t+r!==e.length||e[4]&128||t>1&&e[4]===0&&!(e[5]&128)||e[t+6]&128||r>1&&e[t+6]===0&&!(e[t+7]&128))}St.check=vu;function Eu(e){if(e.length<8)throw new Error("DER sequence length is too short");if(e.length>72)throw new Error("DER sequence length is too long");if(e[0]!==48)throw new Error("Expected DER sequence");if(e[1]!==e.length-2)throw new Error("DER sequence length is invalid");if(e[2]!==2)throw new Error("Expected DER integer");const t=e[3];if(t===0)throw new Error("R length is zero");if(5+t>=e.length)throw new Error("R length is too long");if(e[4+t]!==2)throw new Error("Expected DER integer (2)");const r=e[5+t];if(r===0)throw new Error("S length is zero");if(6+t+r!==e.length)throw new Error("S length is invalid");if(e[4]&128)throw new Error("R value is negative");if(t>1&&e[4]===0&&!(e[5]&128))throw new Error("R value excessively padded");if(e[t+6]&128)throw new Error("S value is negative");if(r>1&&e[t+6]===0&&!(e[t+7]&128))throw new Error("S value excessively padded");return{r:e.slice(4,4+t),s:e.slice(6+t)}}St.decode=Eu;function xu(e,t){const r=e.length,n=t.length;if(r===0)throw new Error("R length is zero");if(n===0)throw new Error("S length is zero");if(r>33)throw new Error("R length is too long");if(n>33)throw new Error("S length is too long");if(e[0]&128)throw new Error("R value is negative");if(t[0]&128)throw new Error("S value is negative");if(r>1&&e[0]===0&&!(e[1]&128))throw new Error("R value excessively padded");if(n>1&&t[0]===0&&!(t[1]&128))throw new Error("S value excessively padded");const i=Buffer.allocUnsafe(6+r+n);return i[0]=48,i[1]=i.length-2,i[2]=2,i[3]=e.length,e.copy(i,4),i[4+r]=2,i[5+r]=t.length,t.copy(i,6+r),i}St.encode=xu;var sr={};Object.defineProperty(sr,"__esModule",{value:!0});sr.REVERSE_OPS=sr.OPS=void 0;const ps={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};sr.OPS=ps;const Da={};sr.REVERSE_OPS=Da;for(const e of Object.keys(ps)){const t=ps[e];Da[t]=e}var $t={};Object.defineProperty($t,"__esModule",{value:!0});$t.decode=$t.encode=$t.encodingLength=void 0;const Mt=sr;function $a(e){return e<Mt.OPS.OP_PUSHDATA1?1:e<=255?2:e<=65535?3:5}$t.encodingLength=$a;function Su(e,t,r){const n=$a(t);return n===1?e.writeUInt8(t,r):n===2?(e.writeUInt8(Mt.OPS.OP_PUSHDATA1,r),e.writeUInt8(t,r+1)):n===3?(e.writeUInt8(Mt.OPS.OP_PUSHDATA2,r),e.writeUInt16LE(t,r+1)):(e.writeUInt8(Mt.OPS.OP_PUSHDATA4,r),e.writeUInt32LE(t,r+1)),n}$t.encode=Su;function Au(e,t){const r=e.readUInt8(t);let n,i;if(r<Mt.OPS.OP_PUSHDATA1)n=r,i=1;else if(r===Mt.OPS.OP_PUSHDATA1){if(t+2>e.length)return null;n=e.readUInt8(t+1),i=2}else if(r===Mt.OPS.OP_PUSHDATA2){if(t+3>e.length)return null;n=e.readUInt16LE(t+1),i=3}else{if(t+5>e.length)return null;if(r!==Mt.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");n=e.readUInt32LE(t+1),i=5}return{opcode:r,number:n,size:i}}$t.decode=Au;var Ur={};Object.defineProperty(Ur,"__esModule",{value:!0});Ur.encode=Ur.decode=void 0;function ku(e,t,r){t=t||4,r=r===void 0?!0:r;const n=e.length;if(n===0)return 0;if(n>t)throw new TypeError("Script number overflow");if(r&&!(e[n-1]&127)&&(n<=1||!(e[n-2]&128)))throw new Error("Non-minimally encoded script number");if(n===5){const s=e.readUInt32LE(0),o=e.readUInt8(4);return o&128?-((o&-129)*4294967296+s):o*4294967296+s}let i=0;for(let s=0;s<n;++s)i|=e[s]<<8*s;return e[n-1]&128?-(i&~(128<<8*(n-1))):i}Ur.decode=ku;function Tu(e){return e>2147483647?5:e>8388607?4:e>32767?3:e>127?2:e>0?1:0}function Bu(e){let t=Math.abs(e);const r=Tu(t),n=Buffer.allocUnsafe(r),i=e<0;for(let s=0;s<r;++s)n.writeUInt8(t&255,s),t>>=8;return n[r-1]&128?n.writeUInt8(i?128:0,r-1):i&&(n[r-1]|=128),n}Ur.encode=Bu;var er={},po;function Iu(){if(po)return er;po=1,Object.defineProperty(er,"__esModule",{value:!0}),er.encode=er.decode=void 0;const e=St,t=Xe(),r=Fe,{typeforce:n}=r,i=Buffer.alloc(1,0);function s(h){let d=0;for(;h[d]===0;)++d;return d===h.length?i:(h=h.slice(d),h[0]&128?Buffer.concat([i,h],1+h.length):h)}function o(h){h[0]===0&&(h=h.slice(1));const d=Buffer.alloc(32,0),y=Math.max(0,32-h.length);return h.copy(d,y),d}function a(h){const d=h.readUInt8(h.length-1);if(!(0,t.isDefinedHashType)(d))throw new Error("Invalid hashType "+d);const y=e.decode(h.slice(0,-1)),v=o(y.r),p=o(y.s);return{signature:Buffer.concat([v,p],64),hashType:d}}er.decode=a;function u(h,d){if(n({signature:r.BufferN(64),hashType:r.UInt8},{signature:h,hashType:d}),!(0,t.isDefinedHashType)(d))throw new Error("Invalid hashType "+d);const y=Buffer.allocUnsafe(1);y.writeUInt8(d,0);const v=s(h.slice(0,32)),p=s(h.slice(32,64));return Buffer.concat([e.encode(v,p),y])}return er.encode=u,er}var yo;function Xe(){return yo||(yo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.signature=e.number=e.isCanonicalScriptSignature=e.isDefinedHashType=e.isCanonicalPubKey=e.toStack=e.fromASM=e.toASM=e.decompile=e.compile=e.countNonPushOnlyOPs=e.isPushOnly=e.OPS=void 0;const t=St,r=sr;Object.defineProperty(e,"OPS",{enumerable:!0,get:function(){return r.OPS}});const n=$t,i=Ur,s=Iu(),o=Fe,{typeforce:a}=o,u=r.OPS.OP_RESERVED;function h(O){return o.Number(O)&&(O===r.OPS.OP_0||O>=r.OPS.OP_1&&O<=r.OPS.OP_16||O===r.OPS.OP_1NEGATE)}function d(O){return o.Buffer(O)||h(O)}function y(O){return o.Array(O)&&O.every(d)}e.isPushOnly=y;function v(O){return O.length-O.filter(d).length}e.countNonPushOnlyOPs=v;function p(O){if(O.length===0)return r.OPS.OP_0;if(O.length===1){if(O[0]>=1&&O[0]<=16)return u+O[0];if(O[0]===129)return r.OPS.OP_1NEGATE}}function I(O){return Buffer.isBuffer(O)}function B(O){return o.Array(O)}function T(O){return Buffer.isBuffer(O)}function R(O){if(I(O))return O;a(o.Array,O);const q=O.reduce((G,V)=>T(V)?V.length===1&&p(V)!==void 0?G+1:G+n.encodingLength(V.length)+V.length:G+1,0),C=Buffer.allocUnsafe(q);let j=0;if(O.forEach(G=>{if(T(G)){const V=p(G);if(V!==void 0){C.writeUInt8(V,j),j+=1;return}j+=n.encode(C,G.length,j),G.copy(C,j),j+=G.length}else C.writeUInt8(G,j),j+=1}),j!==C.length)throw new Error("Could not decode chunks");return C}e.compile=R;function U(O){if(B(O))return O;a(o.Buffer,O);const q=[];let C=0;for(;C<O.length;){const j=O[C];if(j>r.OPS.OP_0&&j<=r.OPS.OP_PUSHDATA4){const G=n.decode(O,C);if(G===null||(C+=G.size,C+G.number>O.length))return null;const V=O.slice(C,C+G.number);C+=G.number;const ee=p(V);ee!==void 0?q.push(ee):q.push(V)}else q.push(j),C+=1}return q}e.decompile=U;function x(O){if(I(O)&&(O=U(O)),!O)throw new Error("Could not convert invalid chunks to ASM");return O.map(q=>{if(T(q)){const C=p(q);if(C===void 0)return q.toString("hex");q=C}return r.REVERSE_OPS[q]}).join(" ")}e.toASM=x;function g(O){return a(o.String,O),R(O.split(" ").map(q=>r.OPS[q]!==void 0?r.OPS[q]:(a(o.Hex,q),Buffer.from(q,"hex"))))}e.fromASM=g;function S(O){return O=U(O),a(y,O),O.map(q=>T(q)?q:q===r.OPS.OP_0?Buffer.allocUnsafe(0):i.encode(q-u))}e.toStack=S;function E(O){return o.isPoint(O)}e.isCanonicalPubKey=E;function H(O){const q=O&-129;return q>0&&q<4}e.isDefinedHashType=H;function M(O){return!Buffer.isBuffer(O)||!H(O[O.length-1])?!1:t.check(O.slice(0,-1))}e.isCanonicalScriptSignature=M,e.number=i,e.signature=s}(Di)),Di}Object.defineProperty(gn,"__esModule",{value:!0});gn.Transaction=void 0;const Se=Pe,He=Vt,mo=Xe(),Pu=Xe(),te=Fe,{typeforce:st}=te;function ct(e){const t=e.length;return Se.varuint.encodingLength(t)+t}function Ou(e){const t=e.length;return Se.varuint.encodingLength(t)+e.reduce((r,n)=>r+ct(n),0)}const Ht=Buffer.allocUnsafe(0),$i=[],ji=Buffer.from("0000000000000000000000000000000000000000000000000000000000000000","hex"),bo=Buffer.from("0000000000000000000000000000000000000000000000000000000000000001","hex"),Ru=Buffer.from("ffffffffffffffff","hex"),Cu={script:Ht,valueBuffer:Ru};function Uu(e){return e.value!==void 0}class J{constructor(){this.version=1,this.locktime=0,this.ins=[],this.outs=[]}static fromBuffer(t,r){const n=new Se.BufferReader(t),i=new J;i.version=n.readInt32();const s=n.readUInt8(),o=n.readUInt8();let a=!1;s===J.ADVANCED_TRANSACTION_MARKER&&o===J.ADVANCED_TRANSACTION_FLAG?a=!0:n.offset-=2;const u=n.readVarInt();for(let d=0;d<u;++d)i.ins.push({hash:n.readSlice(32),index:n.readUInt32(),script:n.readVarSlice(),sequence:n.readUInt32(),witness:$i});const h=n.readVarInt();for(let d=0;d<h;++d)i.outs.push({value:n.readUInt64(),script:n.readVarSlice()});if(a){for(let d=0;d<u;++d)i.ins[d].witness=n.readVector();if(!i.hasWitnesses())throw new Error("Transaction has superfluous witness data")}if(i.locktime=n.readUInt32(),r)return i;if(n.offset!==t.length)throw new Error("Transaction has unexpected data");return i}static fromHex(t){return J.fromBuffer(Buffer.from(t,"hex"),!1)}static isCoinbaseHash(t){st(te.Hash256bit,t);for(let r=0;r<32;++r)if(t[r]!==0)return!1;return!0}isCoinbase(){return this.ins.length===1&&J.isCoinbaseHash(this.ins[0].hash)}addInput(t,r,n,i){return st(te.tuple(te.Hash256bit,te.UInt32,te.maybe(te.UInt32),te.maybe(te.Buffer)),arguments),te.Null(n)&&(n=J.DEFAULT_SEQUENCE),this.ins.push({hash:t,index:r,script:i||Ht,sequence:n,witness:$i})-1}addOutput(t,r){return st(te.tuple(te.Buffer,te.Satoshi),arguments),this.outs.push({script:t,value:r})-1}hasWitnesses(){return this.ins.some(t=>t.witness.length!==0)}stripWitnesses(){this.ins.forEach(t=>{t.witness=$i})}weight(){const t=this.byteLength(!1),r=this.byteLength(!0);return t*3+r}virtualSize(){return Math.ceil(this.weight()/4)}byteLength(t=!0){const r=t&&this.hasWitnesses();return(r?10:8)+Se.varuint.encodingLength(this.ins.length)+Se.varuint.encodingLength(this.outs.length)+this.ins.reduce((n,i)=>n+40+ct(i.script),0)+this.outs.reduce((n,i)=>n+8+ct(i.script),0)+(r?this.ins.reduce((n,i)=>n+Ou(i.witness),0):0)}clone(){const t=new J;return t.version=this.version,t.locktime=this.locktime,t.ins=this.ins.map(r=>({hash:r.hash,index:r.index,script:r.script,sequence:r.sequence,witness:r.witness})),t.outs=this.outs.map(r=>({script:r.script,value:r.value})),t}hashForSignature(t,r,n){if(st(te.tuple(te.UInt32,te.Buffer,te.Number),arguments),t>=this.ins.length)return bo;const i=mo.compile(mo.decompile(r).filter(a=>a!==Pu.OPS.OP_CODESEPARATOR)),s=this.clone();if((n&31)===J.SIGHASH_NONE)s.outs=[],s.ins.forEach((a,u)=>{u!==t&&(a.sequence=0)});else if((n&31)===J.SIGHASH_SINGLE){if(t>=this.outs.length)return bo;s.outs.length=t+1;for(let a=0;a<t;a++)s.outs[a]=Cu;s.ins.forEach((a,u)=>{u!==t&&(a.sequence=0)})}n&J.SIGHASH_ANYONECANPAY?(s.ins=[s.ins[t]],s.ins[0].script=i):(s.ins.forEach(a=>{a.script=Ht}),s.ins[t].script=i);const o=Buffer.allocUnsafe(s.byteLength(!1)+4);return o.writeInt32LE(n,o.length-4),s.__toBuffer(o,0,!1),He.hash256(o)}hashForWitnessV1(t,r,n,i,s,o){if(st(te.tuple(te.UInt32,st.arrayOf(te.Buffer),st.arrayOf(te.Satoshi),te.UInt32),arguments),n.length!==this.ins.length||r.length!==this.ins.length)throw new Error("Must supply prevout script and value for all inputs");const a=i===J.SIGHASH_DEFAULT?J.SIGHASH_ALL:i&J.SIGHASH_OUTPUT_MASK,h=(i&J.SIGHASH_INPUT_MASK)===J.SIGHASH_ANYONECANPAY,d=a===J.SIGHASH_NONE,y=a===J.SIGHASH_SINGLE;let v=Ht,p=Ht,I=Ht,B=Ht,T=Ht;if(!h){let g=Se.BufferWriter.withCapacity(36*this.ins.length);this.ins.forEach(S=>{g.writeSlice(S.hash),g.writeUInt32(S.index)}),v=He.sha256(g.end()),g=Se.BufferWriter.withCapacity(8*this.ins.length),n.forEach(S=>g.writeUInt64(S)),p=He.sha256(g.end()),g=Se.BufferWriter.withCapacity(r.map(ct).reduce((S,E)=>S+E)),r.forEach(S=>g.writeVarSlice(S)),I=He.sha256(g.end()),g=Se.BufferWriter.withCapacity(4*this.ins.length),this.ins.forEach(S=>g.writeUInt32(S.sequence)),B=He.sha256(g.end())}if(d||y){if(y&&t<this.outs.length){const g=this.outs[t],S=Se.BufferWriter.withCapacity(8+ct(g.script));S.writeUInt64(g.value),S.writeVarSlice(g.script),T=He.sha256(S.end())}}else{const g=this.outs.map(E=>8+ct(E.script)).reduce((E,H)=>E+H),S=Se.BufferWriter.withCapacity(g);this.outs.forEach(E=>{S.writeUInt64(E.value),S.writeVarSlice(E.script)}),T=He.sha256(S.end())}const R=(s?2:0)+(o?1:0),U=174-(h?49:0)-(d?32:0)+(o?32:0)+(s?37:0),x=Se.BufferWriter.withCapacity(U);if(x.writeUInt8(i),x.writeInt32(this.version),x.writeUInt32(this.locktime),x.writeSlice(v),x.writeSlice(p),x.writeSlice(I),x.writeSlice(B),d||y||x.writeSlice(T),x.writeUInt8(R),h){const g=this.ins[t];x.writeSlice(g.hash),x.writeUInt32(g.index),x.writeUInt64(n[t]),x.writeVarSlice(r[t]),x.writeUInt32(g.sequence)}else x.writeUInt32(t);if(o){const g=Se.BufferWriter.withCapacity(ct(o));g.writeVarSlice(o),x.writeSlice(He.sha256(g.end()))}return y&&x.writeSlice(T),s&&(x.writeSlice(s),x.writeUInt8(0),x.writeUInt32(4294967295)),He.taggedHash("TapSighash",Buffer.concat([Buffer.from([0]),x.end()]))}hashForWitnessV0(t,r,n,i){st(te.tuple(te.UInt32,te.Buffer,te.Satoshi,te.UInt32),arguments);let s=Buffer.from([]),o,a=ji,u=ji,h=ji;if(i&J.SIGHASH_ANYONECANPAY||(s=Buffer.allocUnsafe(36*this.ins.length),o=new Se.BufferWriter(s,0),this.ins.forEach(y=>{o.writeSlice(y.hash),o.writeUInt32(y.index)}),u=He.hash256(s)),!(i&J.SIGHASH_ANYONECANPAY)&&(i&31)!==J.SIGHASH_SINGLE&&(i&31)!==J.SIGHASH_NONE&&(s=Buffer.allocUnsafe(4*this.ins.length),o=new Se.BufferWriter(s,0),this.ins.forEach(y=>{o.writeUInt32(y.sequence)}),h=He.hash256(s)),(i&31)!==J.SIGHASH_SINGLE&&(i&31)!==J.SIGHASH_NONE){const y=this.outs.reduce((v,p)=>v+8+ct(p.script),0);s=Buffer.allocUnsafe(y),o=new Se.BufferWriter(s,0),this.outs.forEach(v=>{o.writeUInt64(v.value),o.writeVarSlice(v.script)}),a=He.hash256(s)}else if((i&31)===J.SIGHASH_SINGLE&&t<this.outs.length){const y=this.outs[t];s=Buffer.allocUnsafe(8+ct(y.script)),o=new Se.BufferWriter(s,0),o.writeUInt64(y.value),o.writeVarSlice(y.script),a=He.hash256(s)}s=Buffer.allocUnsafe(156+ct(r)),o=new Se.BufferWriter(s,0);const d=this.ins[t];return o.writeInt32(this.version),o.writeSlice(u),o.writeSlice(h),o.writeSlice(d.hash),o.writeUInt32(d.index),o.writeVarSlice(r),o.writeUInt64(n),o.writeUInt32(d.sequence),o.writeSlice(a),o.writeUInt32(this.locktime),o.writeUInt32(i),He.hash256(s)}getHash(t){return t&&this.isCoinbase()?Buffer.alloc(32,0):He.hash256(this.__toBuffer(void 0,void 0,t))}getId(){return(0,Se.reverseBuffer)(this.getHash(!1)).toString("hex")}toBuffer(t,r){return this.__toBuffer(t,r,!0)}toHex(){return this.toBuffer(void 0,void 0).toString("hex")}setInputScript(t,r){st(te.tuple(te.Number,te.Buffer),arguments),this.ins[t].script=r}setWitness(t,r){st(te.tuple(te.Number,[te.Buffer]),arguments),this.ins[t].witness=r}__toBuffer(t,r,n=!1){t||(t=Buffer.allocUnsafe(this.byteLength(n)));const i=new Se.BufferWriter(t,r||0);i.writeInt32(this.version);const s=n&&this.hasWitnesses();return s&&(i.writeUInt8(J.ADVANCED_TRANSACTION_MARKER),i.writeUInt8(J.ADVANCED_TRANSACTION_FLAG)),i.writeVarInt(this.ins.length),this.ins.forEach(o=>{i.writeSlice(o.hash),i.writeUInt32(o.index),i.writeVarSlice(o.script),i.writeUInt32(o.sequence)}),i.writeVarInt(this.outs.length),this.outs.forEach(o=>{Uu(o)?i.writeUInt64(o.value):i.writeSlice(o.valueBuffer),i.writeVarSlice(o.script)}),s&&this.ins.forEach(o=>{i.writeVector(o.witness)}),i.writeUInt32(this.locktime),r!==void 0?t.slice(r,i.offset):t}}gn.Transaction=J;J.DEFAULT_SEQUENCE=4294967295;J.SIGHASH_DEFAULT=0;J.SIGHASH_ALL=1;J.SIGHASH_NONE=2;J.SIGHASH_SINGLE=3;J.SIGHASH_ANYONECANPAY=128;J.SIGHASH_OUTPUT_MASK=3;J.SIGHASH_INPUT_MASK=128;J.ADVANCED_TRANSACTION_MARKER=0;J.ADVANCED_TRANSACTION_FLAG=1;var ae={},_n={};Object.defineProperty(_n,"__esModule",{value:!0});const Lu=9007199254740991;function Ds(e){if(e<0||e>Lu||e%1!==0)throw new RangeError("value out of range")}function an(e,t,r){if(Ds(e),t||(t=Buffer.allocUnsafe(ja(e))),!Buffer.isBuffer(t))throw new TypeError("buffer must be a Buffer instance");return r||(r=0),e<253?(t.writeUInt8(e,r),Object.assign(an,{bytes:1})):e<=65535?(t.writeUInt8(253,r),t.writeUInt16LE(e,r+1),Object.assign(an,{bytes:3})):e<=4294967295?(t.writeUInt8(254,r),t.writeUInt32LE(e,r+1),Object.assign(an,{bytes:5})):(t.writeUInt8(255,r),t.writeUInt32LE(e>>>0,r+1),t.writeUInt32LE(e/4294967296|0,r+5),Object.assign(an,{bytes:9})),t}_n.encode=an;function cn(e,t){if(!Buffer.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");t||(t=0);const r=e.readUInt8(t);if(r<253)return Object.assign(cn,{bytes:1}),r;if(r===253)return Object.assign(cn,{bytes:3}),e.readUInt16LE(t+1);if(r===254)return Object.assign(cn,{bytes:5}),e.readUInt32LE(t+1);{Object.assign(cn,{bytes:9});const n=e.readUInt32LE(t+1),s=e.readUInt32LE(t+5)*4294967296+n;return Ds(s),s}}_n.decode=cn;function ja(e){return Ds(e),e<253?1:e<=65535?3:e<=4294967295?5:9}_n.encodingLength=ja;var Gi={},ui={},Ne={};Object.defineProperty(Ne,"__esModule",{value:!0});Ne.testnet=Ne.regtest=Ne.bitcoin=void 0;Ne.bitcoin={messagePrefix:`Bitcoin Signed Message:
|
|
7
|
+
`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};Ne.regtest={messagePrefix:`Bitcoin Signed Message:
|
|
8
|
+
`,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};Ne.testnet={messagePrefix:`Bitcoin Signed Message:
|
|
9
|
+
`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var Ye={};Object.defineProperty(Ye,"__esModule",{value:!0});Ye.value=Ye.prop=void 0;function Nu(e,t,r){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){const n=r.call(this);return this[t]=n,n},set(n){Object.defineProperty(this,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}})}Ye.prop=Nu;function Fu(e){let t;return()=>(t!==void 0||(t=e()),t)}Ye.value=Fu;Object.defineProperty(ui,"__esModule",{value:!0});ui.p2data=void 0;const Hu=Ne,Vn=Xe(),ot=Fe,wo=Ye,go=Vn.OPS;function Mu(e,t){if(!e.data&&!e.output)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,ot.typeforce)({network:ot.typeforce.maybe(ot.typeforce.Object),output:ot.typeforce.maybe(ot.typeforce.Buffer),data:ot.typeforce.maybe(ot.typeforce.arrayOf(ot.typeforce.Buffer))},e);const n={name:"embed",network:e.network||Hu.bitcoin};if(wo.prop(n,"output",()=>{if(e.data)return Vn.compile([go.OP_RETURN].concat(e.data))}),wo.prop(n,"data",()=>{if(e.output)return Vn.decompile(e.output).slice(1)}),t.validate&&e.output){const i=Vn.decompile(e.output);if(i[0]!==go.OP_RETURN)throw new TypeError("Output is invalid");if(!i.slice(1).every(ot.typeforce.Buffer))throw new TypeError("Output is invalid");if(e.data&&!(0,ot.stacksEqual)(e.data,n.data))throw new TypeError("Data mismatch")}return Object.assign(n,e)}ui.p2data=Mu;var li={};Object.defineProperty(li,"__esModule",{value:!0});li.p2ms=void 0;const Du=Ne,Er=Xe(),xe=Fe,Lt=Ye,xr=Er.OPS,Rn=xr.OP_RESERVED;function $u(e,t){if(!e.input&&!e.output&&!(e.pubkeys&&e.m!==void 0)&&!e.signatures)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{});function r(u){return Er.isCanonicalScriptSignature(u)||(t.allowIncomplete&&u===xr.OP_0)!==void 0}(0,xe.typeforce)({network:xe.typeforce.maybe(xe.typeforce.Object),m:xe.typeforce.maybe(xe.typeforce.Number),n:xe.typeforce.maybe(xe.typeforce.Number),output:xe.typeforce.maybe(xe.typeforce.Buffer),pubkeys:xe.typeforce.maybe(xe.typeforce.arrayOf(xe.isPoint)),signatures:xe.typeforce.maybe(xe.typeforce.arrayOf(r)),input:xe.typeforce.maybe(xe.typeforce.Buffer)},e);const i={network:e.network||Du.bitcoin};let s=[],o=!1;function a(u){o||(o=!0,s=Er.decompile(u),i.m=s[0]-Rn,i.n=s[s.length-2]-Rn,i.pubkeys=s.slice(1,-2))}if(Lt.prop(i,"output",()=>{if(e.m&&i.n&&e.pubkeys)return Er.compile([].concat(Rn+e.m,e.pubkeys,Rn+i.n,xr.OP_CHECKMULTISIG))}),Lt.prop(i,"m",()=>{if(i.output)return a(i.output),i.m}),Lt.prop(i,"n",()=>{if(i.pubkeys)return i.pubkeys.length}),Lt.prop(i,"pubkeys",()=>{if(e.output)return a(e.output),i.pubkeys}),Lt.prop(i,"signatures",()=>{if(e.input)return Er.decompile(e.input).slice(1)}),Lt.prop(i,"input",()=>{if(e.signatures)return Er.compile([xr.OP_0].concat(e.signatures))}),Lt.prop(i,"witness",()=>{if(i.input)return[]}),Lt.prop(i,"name",()=>{if(!(!i.m||!i.n))return`p2ms(${i.m} of ${i.n})`}),t.validate){if(e.output){if(a(e.output),!xe.typeforce.Number(s[0]))throw new TypeError("Output is invalid");if(!xe.typeforce.Number(s[s.length-2]))throw new TypeError("Output is invalid");if(s[s.length-1]!==xr.OP_CHECKMULTISIG)throw new TypeError("Output is invalid");if(i.m<=0||i.n>16||i.m>i.n||i.n!==s.length-3)throw new TypeError("Output is invalid");if(!i.pubkeys.every(u=>(0,xe.isPoint)(u)))throw new TypeError("Output is invalid");if(e.m!==void 0&&e.m!==i.m)throw new TypeError("m mismatch");if(e.n!==void 0&&e.n!==i.n)throw new TypeError("n mismatch");if(e.pubkeys&&!(0,xe.stacksEqual)(e.pubkeys,i.pubkeys))throw new TypeError("Pubkeys mismatch")}if(e.pubkeys){if(e.n!==void 0&&e.n!==e.pubkeys.length)throw new TypeError("Pubkey count mismatch");if(i.n=e.pubkeys.length,i.n<i.m)throw new TypeError("Pubkey count cannot be less than m")}if(e.signatures){if(e.signatures.length<i.m)throw new TypeError("Not enough signatures provided");if(e.signatures.length>i.m)throw new TypeError("Too many signatures provided")}if(e.input){if(e.input[0]!==xr.OP_0)throw new TypeError("Input is invalid");if(i.signatures.length===0||!i.signatures.every(r))throw new TypeError("Input has invalid signature(s)");if(e.signatures&&!(0,xe.stacksEqual)(e.signatures,i.signatures))throw new TypeError("Signature mismatch");if(e.m!==void 0&&e.m!==e.signatures.length)throw new TypeError("Signature count mismatch")}}return Object.assign(i,e)}li.p2ms=$u;var hi={};Object.defineProperty(hi,"__esModule",{value:!0});hi.p2pk=void 0;const ju=Ne,Sr=Xe(),rt=Fe,_r=Ye,_o=Sr.OPS;function Gu(e,t){if(!e.input&&!e.output&&!e.pubkey&&!e.input&&!e.signature)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,rt.typeforce)({network:rt.typeforce.maybe(rt.typeforce.Object),output:rt.typeforce.maybe(rt.typeforce.Buffer),pubkey:rt.typeforce.maybe(rt.isPoint),signature:rt.typeforce.maybe(Sr.isCanonicalScriptSignature),input:rt.typeforce.maybe(rt.typeforce.Buffer)},e);const r=_r.value(()=>Sr.decompile(e.input)),i={name:"p2pk",network:e.network||ju.bitcoin};if(_r.prop(i,"output",()=>{if(e.pubkey)return Sr.compile([e.pubkey,_o.OP_CHECKSIG])}),_r.prop(i,"pubkey",()=>{if(e.output)return e.output.slice(1,-1)}),_r.prop(i,"signature",()=>{if(e.input)return r()[0]}),_r.prop(i,"input",()=>{if(e.signature)return Sr.compile([e.signature])}),_r.prop(i,"witness",()=>{if(i.input)return[]}),t.validate){if(e.output){if(e.output[e.output.length-1]!==_o.OP_CHECKSIG)throw new TypeError("Output is invalid");if(!(0,rt.isPoint)(i.pubkey))throw new TypeError("Output pubkey is invalid");if(e.pubkey&&!e.pubkey.equals(i.pubkey))throw new TypeError("Pubkey mismatch")}if(e.signature&&e.input&&!e.input.equals(i.input))throw new TypeError("Signature mismatch");if(e.input){if(r().length!==1)throw new TypeError("Input is invalid");if(!Sr.isCanonicalScriptSignature(i.signature))throw new TypeError("Input has invalid signature")}}return Object.assign(i,e)}hi.p2pk=Gu;var di={};function Vu(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var n=0;n<e.length;n++){var i=e.charAt(n),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=n}var o=e.length,a=e.charAt(0),u=Math.log(o)/Math.log(256),h=Math.log(256)/Math.log(o);function d(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var I=0,B=0,T=0,R=p.length;T!==R&&p[T]===0;)T++,I++;for(var U=(R-T)*h+1>>>0,x=new Uint8Array(U);T!==R;){for(var g=p[T],S=0,E=U-1;(g!==0||S<B)&&E!==-1;E--,S++)g+=256*x[E]>>>0,x[E]=g%o>>>0,g=g/o>>>0;if(g!==0)throw new Error("Non-zero carry");B=S,T++}for(var H=U-B;H!==U&&x[H]===0;)H++;for(var M=a.repeat(I);H<U;++H)M+=e.charAt(x[H]);return M}function y(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;for(var I=0,B=0,T=0;p[I]===a;)B++,I++;for(var R=(p.length-I)*u+1>>>0,U=new Uint8Array(R);p[I];){var x=p.charCodeAt(I);if(x>255)return;var g=t[x];if(g===255)return;for(var S=0,E=R-1;(g!==0||S<T)&&E!==-1;E--,S++)g+=o*U[E]>>>0,U[E]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");T=S,I++}for(var H=R-T;H!==R&&U[H]===0;)H++;for(var M=new Uint8Array(B+(R-H)),O=B;H!==R;)M[O++]=U[H++];return M}function v(p){var I=y(p);if(I)return I;throw new Error("Non-base"+o+" character")}return{encode:d,decodeUnsafe:y,decode:v}}var zu=Vu;const Wu=zu,qu="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var Ku=Wu(qu),Vi=Ku,Yu=function(e){function t(s){var o=Uint8Array.from(s),a=e(o),u=o.length+4,h=new Uint8Array(u);return h.set(o,0),h.set(a.subarray(0,4),o.length),Vi.encode(h,u)}function r(s){var o=s.slice(0,-4),a=s.slice(-4),u=e(o);if(!(a[0]^u[0]|a[1]^u[1]|a[2]^u[2]|a[3]^u[3]))return o}function n(s){var o=Vi.decodeUnsafe(s);if(o)return r(o)}function i(s){var o=Vi.decode(s),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:t,decode:i,decodeUnsafe:n}},{sha256:vo}=Ma,Xu=Yu;function Ju(e){return vo(vo(e))}var $s=Xu(Ju);Object.defineProperty(di,"__esModule",{value:!0});di.p2pkh=void 0;const zi=Vt,Qu=Ne,Ar=Xe(),Me=Fe,mt=Ye,Eo=$s,Nt=Ar.OPS;function Zu(e,t){if(!e.address&&!e.hash&&!e.output&&!e.pubkey&&!e.input)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,Me.typeforce)({network:Me.typeforce.maybe(Me.typeforce.Object),address:Me.typeforce.maybe(Me.typeforce.String),hash:Me.typeforce.maybe(Me.typeforce.BufferN(20)),output:Me.typeforce.maybe(Me.typeforce.BufferN(25)),pubkey:Me.typeforce.maybe(Me.isPoint),signature:Me.typeforce.maybe(Ar.isCanonicalScriptSignature),input:Me.typeforce.maybe(Me.typeforce.Buffer)},e);const r=mt.value(()=>{const o=Buffer.from(Eo.decode(e.address)),a=o.readUInt8(0),u=o.slice(1);return{version:a,hash:u}}),n=mt.value(()=>Ar.decompile(e.input)),i=e.network||Qu.bitcoin,s={name:"p2pkh",network:i};if(mt.prop(s,"address",()=>{if(!s.hash)return;const o=Buffer.allocUnsafe(21);return o.writeUInt8(i.pubKeyHash,0),s.hash.copy(o,1),Eo.encode(o)}),mt.prop(s,"hash",()=>{if(e.output)return e.output.slice(3,23);if(e.address)return r().hash;if(e.pubkey||s.pubkey)return zi.hash160(e.pubkey||s.pubkey)}),mt.prop(s,"output",()=>{if(s.hash)return Ar.compile([Nt.OP_DUP,Nt.OP_HASH160,s.hash,Nt.OP_EQUALVERIFY,Nt.OP_CHECKSIG])}),mt.prop(s,"pubkey",()=>{if(e.input)return n()[1]}),mt.prop(s,"signature",()=>{if(e.input)return n()[0]}),mt.prop(s,"input",()=>{if(e.pubkey&&e.signature)return Ar.compile([e.signature,e.pubkey])}),mt.prop(s,"witness",()=>{if(s.input)return[]}),t.validate){let o=Buffer.from([]);if(e.address){if(r().version!==i.pubKeyHash)throw new TypeError("Invalid version or Network mismatch");if(r().hash.length!==20)throw new TypeError("Invalid address");o=r().hash}if(e.hash){if(o.length>0&&!o.equals(e.hash))throw new TypeError("Hash mismatch");o=e.hash}if(e.output){if(e.output.length!==25||e.output[0]!==Nt.OP_DUP||e.output[1]!==Nt.OP_HASH160||e.output[2]!==20||e.output[23]!==Nt.OP_EQUALVERIFY||e.output[24]!==Nt.OP_CHECKSIG)throw new TypeError("Output is invalid");const a=e.output.slice(3,23);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(e.pubkey){const a=zi.hash160(e.pubkey);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(e.input){const a=n();if(a.length!==2)throw new TypeError("Input is invalid");if(!Ar.isCanonicalScriptSignature(a[0]))throw new TypeError("Input has invalid signature");if(!(0,Me.isPoint)(a[1]))throw new TypeError("Input has invalid pubkey");if(e.signature&&!e.signature.equals(a[0]))throw new TypeError("Signature mismatch");if(e.pubkey&&!e.pubkey.equals(a[1]))throw new TypeError("Pubkey mismatch");const u=zi.hash160(a[1]);if(o.length>0&&!o.equals(u))throw new TypeError("Hash mismatch")}}return Object.assign(s,e)}di.p2pkh=Zu;var pi={};Object.defineProperty(pi,"__esModule",{value:!0});pi.p2sh=void 0;const xo=Vt,el=Ne,ft=Xe(),fe=Fe,at=Ye,So=$s,qr=ft.OPS;function tl(e,t){if(!e.address&&!e.hash&&!e.output&&!e.redeem&&!e.input)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,fe.typeforce)({network:fe.typeforce.maybe(fe.typeforce.Object),address:fe.typeforce.maybe(fe.typeforce.String),hash:fe.typeforce.maybe(fe.typeforce.BufferN(20)),output:fe.typeforce.maybe(fe.typeforce.BufferN(23)),redeem:fe.typeforce.maybe({network:fe.typeforce.maybe(fe.typeforce.Object),output:fe.typeforce.maybe(fe.typeforce.Buffer),input:fe.typeforce.maybe(fe.typeforce.Buffer),witness:fe.typeforce.maybe(fe.typeforce.arrayOf(fe.typeforce.Buffer))}),input:fe.typeforce.maybe(fe.typeforce.Buffer),witness:fe.typeforce.maybe(fe.typeforce.arrayOf(fe.typeforce.Buffer))},e);let r=e.network;r||(r=e.redeem&&e.redeem.network||el.bitcoin);const n={network:r},i=at.value(()=>{const a=Buffer.from(So.decode(e.address)),u=a.readUInt8(0),h=a.slice(1);return{version:u,hash:h}}),s=at.value(()=>ft.decompile(e.input)),o=at.value(()=>{const a=s(),u=a[a.length-1];return{network:r,output:u===qr.OP_FALSE?Buffer.from([]):u,input:ft.compile(a.slice(0,-1)),witness:e.witness||[]}});if(at.prop(n,"address",()=>{if(!n.hash)return;const a=Buffer.allocUnsafe(21);return a.writeUInt8(n.network.scriptHash,0),n.hash.copy(a,1),So.encode(a)}),at.prop(n,"hash",()=>{if(e.output)return e.output.slice(2,22);if(e.address)return i().hash;if(n.redeem&&n.redeem.output)return xo.hash160(n.redeem.output)}),at.prop(n,"output",()=>{if(n.hash)return ft.compile([qr.OP_HASH160,n.hash,qr.OP_EQUAL])}),at.prop(n,"redeem",()=>{if(e.input)return o()}),at.prop(n,"input",()=>{if(!(!e.redeem||!e.redeem.input||!e.redeem.output))return ft.compile([].concat(ft.decompile(e.redeem.input),e.redeem.output))}),at.prop(n,"witness",()=>{if(n.redeem&&n.redeem.witness)return n.redeem.witness;if(n.input)return[]}),at.prop(n,"name",()=>{const a=["p2sh"];return n.redeem!==void 0&&n.redeem.name!==void 0&&a.push(n.redeem.name),a.join("-")}),t.validate){let a=Buffer.from([]);if(e.address){if(i().version!==r.scriptHash)throw new TypeError("Invalid version or Network mismatch");if(i().hash.length!==20)throw new TypeError("Invalid address");a=i().hash}if(e.hash){if(a.length>0&&!a.equals(e.hash))throw new TypeError("Hash mismatch");a=e.hash}if(e.output){if(e.output.length!==23||e.output[0]!==qr.OP_HASH160||e.output[1]!==20||e.output[22]!==qr.OP_EQUAL)throw new TypeError("Output is invalid");const h=e.output.slice(2,22);if(a.length>0&&!a.equals(h))throw new TypeError("Hash mismatch");a=h}const u=h=>{if(h.output){const d=ft.decompile(h.output);if(!d||d.length<1)throw new TypeError("Redeem.output too short");if(h.output.byteLength>520)throw new TypeError("Redeem.output unspendable if larger than 520 bytes");if(ft.countNonPushOnlyOPs(d)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const y=xo.hash160(h.output);if(a.length>0&&!a.equals(y))throw new TypeError("Hash mismatch");a=y}if(h.input){const d=h.input.length>0,y=h.witness&&h.witness.length>0;if(!d&&!y)throw new TypeError("Empty input");if(d&&y)throw new TypeError("Input and witness provided");if(d){const v=ft.decompile(h.input);if(!ft.isPushOnly(v))throw new TypeError("Non push-only scriptSig")}}};if(e.input){const h=s();if(!h||h.length<1)throw new TypeError("Input too short");if(!Buffer.isBuffer(o().output))throw new TypeError("Input is invalid");u(o())}if(e.redeem){if(e.redeem.network&&e.redeem.network!==r)throw new TypeError("Network mismatch");if(e.input){const h=o();if(e.redeem.output&&!e.redeem.output.equals(h.output))throw new TypeError("Redeem.output mismatch");if(e.redeem.input&&!e.redeem.input.equals(h.input))throw new TypeError("Redeem.input mismatch")}u(e.redeem)}if(e.witness&&e.redeem&&e.redeem.witness&&!(0,fe.stacksEqual)(e.redeem.witness,e.witness))throw new TypeError("Witness and redeem.witness mismatch")}return Object.assign(n,e)}pi.p2sh=tl;var yi={},kt={};Object.defineProperty(kt,"__esModule",{value:!0});kt.bech32m=kt.bech32=void 0;const Zn="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Ga={};for(let e=0;e<Zn.length;e++){const t=Zn.charAt(e);Ga[t]=e}function Br(e){const t=e>>25;return(e&33554431)<<5^-(t>>0&1)&996825010^-(t>>1&1)&642813549^-(t>>2&1)&513874426^-(t>>3&1)&1027748829^-(t>>4&1)&705979059}function Ao(e){let t=1;for(let r=0;r<e.length;++r){const n=e.charCodeAt(r);if(n<33||n>126)return"Invalid prefix ("+e+")";t=Br(t)^n>>5}t=Br(t);for(let r=0;r<e.length;++r){const n=e.charCodeAt(r);t=Br(t)^n&31}return t}function js(e,t,r,n){let i=0,s=0;const o=(1<<r)-1,a=[];for(let u=0;u<e.length;++u)for(i=i<<t|e[u],s+=t;s>=r;)s-=r,a.push(i>>s&o);if(n)s>0&&a.push(i<<r-s&o);else{if(s>=t)return"Excess padding";if(i<<r-s&o)return"Non-zero padding"}return a}function rl(e){return js(e,8,5,!0)}function nl(e){const t=js(e,5,8,!1);if(Array.isArray(t))return t}function il(e){const t=js(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}function Va(e){let t;e==="bech32"?t=1:t=734539939;function r(o,a,u){if(u=u||90,o.length+7+a.length>u)throw new TypeError("Exceeds length limit");o=o.toLowerCase();let h=Ao(o);if(typeof h=="string")throw new Error(h);let d=o+"1";for(let y=0;y<a.length;++y){const v=a[y];if(v>>5)throw new Error("Non 5-bit word");h=Br(h)^v,d+=Zn.charAt(v)}for(let y=0;y<6;++y)h=Br(h);h^=t;for(let y=0;y<6;++y){const v=h>>(5-y)*5&31;d+=Zn.charAt(v)}return d}function n(o,a){if(a=a||90,o.length<8)return o+" too short";if(o.length>a)return"Exceeds length limit";const u=o.toLowerCase(),h=o.toUpperCase();if(o!==u&&o!==h)return"Mixed-case string "+o;o=u;const d=o.lastIndexOf("1");if(d===-1)return"No separator character for "+o;if(d===0)return"Missing prefix for "+o;const y=o.slice(0,d),v=o.slice(d+1);if(v.length<6)return"Data too short";let p=Ao(y);if(typeof p=="string")return p;const I=[];for(let B=0;B<v.length;++B){const T=v.charAt(B),R=Ga[T];if(R===void 0)return"Unknown character "+T;p=Br(p)^R,!(B+6>=v.length)&&I.push(R)}return p!==t?"Invalid checksum for "+o:{prefix:y,words:I}}function i(o,a){const u=n(o,a);if(typeof u=="object")return u}function s(o,a){const u=n(o,a);if(typeof u=="object")return u;throw new Error(u)}return{decodeUnsafe:i,decode:s,encode:r,toWords:rl,fromWordsUnsafe:nl,fromWords:il}}kt.bech32=Va("bech32");kt.bech32m=Va("bech32m");Object.defineProperty(yi,"__esModule",{value:!0});yi.p2wpkh=void 0;const Wi=Vt,sl=Ne,zn=Xe(),ke=Fe,Ft=Ye,Cn=kt,ko=zn.OPS,ol=Buffer.alloc(0);function al(e,t){if(!e.address&&!e.hash&&!e.output&&!e.pubkey&&!e.witness)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,ke.typeforce)({address:ke.typeforce.maybe(ke.typeforce.String),hash:ke.typeforce.maybe(ke.typeforce.BufferN(20)),input:ke.typeforce.maybe(ke.typeforce.BufferN(0)),network:ke.typeforce.maybe(ke.typeforce.Object),output:ke.typeforce.maybe(ke.typeforce.BufferN(22)),pubkey:ke.typeforce.maybe(ke.isPoint),signature:ke.typeforce.maybe(zn.isCanonicalScriptSignature),witness:ke.typeforce.maybe(ke.typeforce.arrayOf(ke.typeforce.Buffer))},e);const r=Ft.value(()=>{const s=Cn.bech32.decode(e.address),o=s.words.shift(),a=Cn.bech32.fromWords(s.words);return{version:o,prefix:s.prefix,data:Buffer.from(a)}}),n=e.network||sl.bitcoin,i={name:"p2wpkh",network:n};if(Ft.prop(i,"address",()=>{if(!i.hash)return;const s=Cn.bech32.toWords(i.hash);return s.unshift(0),Cn.bech32.encode(n.bech32,s)}),Ft.prop(i,"hash",()=>{if(e.output)return e.output.slice(2,22);if(e.address)return r().data;if(e.pubkey||i.pubkey)return Wi.hash160(e.pubkey||i.pubkey)}),Ft.prop(i,"output",()=>{if(i.hash)return zn.compile([ko.OP_0,i.hash])}),Ft.prop(i,"pubkey",()=>{if(e.pubkey)return e.pubkey;if(e.witness)return e.witness[1]}),Ft.prop(i,"signature",()=>{if(e.witness)return e.witness[0]}),Ft.prop(i,"input",()=>{if(i.witness)return ol}),Ft.prop(i,"witness",()=>{if(e.pubkey&&e.signature)return[e.signature,e.pubkey]}),t.validate){let s=Buffer.from([]);if(e.address){if(n&&n.bech32!==r().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==20)throw new TypeError("Invalid address data");s=r().data}if(e.hash){if(s.length>0&&!s.equals(e.hash))throw new TypeError("Hash mismatch");s=e.hash}if(e.output){if(e.output.length!==22||e.output[0]!==ko.OP_0||e.output[1]!==20)throw new TypeError("Output is invalid");if(s.length>0&&!s.equals(e.output.slice(2)))throw new TypeError("Hash mismatch");s=e.output.slice(2)}if(e.pubkey){const o=Wi.hash160(e.pubkey);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch");if(s=o,!(0,ke.isPoint)(e.pubkey)||e.pubkey.length!==33)throw new TypeError("Invalid pubkey for p2wpkh")}if(e.witness){if(e.witness.length!==2)throw new TypeError("Witness is invalid");if(!zn.isCanonicalScriptSignature(e.witness[0]))throw new TypeError("Witness has invalid signature");if(!(0,ke.isPoint)(e.witness[1])||e.witness[1].length!==33)throw new TypeError("Witness has invalid pubkey");if(e.signature&&!e.signature.equals(e.witness[0]))throw new TypeError("Signature mismatch");if(e.pubkey&&!e.pubkey.equals(e.witness[1]))throw new TypeError("Pubkey mismatch");const o=Wi.hash160(e.witness[1]);if(s.length>0&&!s.equals(o))throw new TypeError("Hash mismatch")}}return Object.assign(i,e)}yi.p2wpkh=al;var mi={};Object.defineProperty(mi,"__esModule",{value:!0});mi.p2wsh=void 0;const To=Vt,cl=Ne,_t=Xe(),ce=Fe,bt=Ye,Un=kt,Bo=_t.OPS,qi=Buffer.alloc(0);function Ln(e){return!!(Buffer.isBuffer(e)&&e.length===65&&e[0]===4&&(0,ce.isPoint)(e))}function fl(e,t){if(!e.address&&!e.hash&&!e.output&&!e.redeem&&!e.witness)throw new TypeError("Not enough data");t=Object.assign({validate:!0},t||{}),(0,ce.typeforce)({network:ce.typeforce.maybe(ce.typeforce.Object),address:ce.typeforce.maybe(ce.typeforce.String),hash:ce.typeforce.maybe(ce.typeforce.BufferN(32)),output:ce.typeforce.maybe(ce.typeforce.BufferN(34)),redeem:ce.typeforce.maybe({input:ce.typeforce.maybe(ce.typeforce.Buffer),network:ce.typeforce.maybe(ce.typeforce.Object),output:ce.typeforce.maybe(ce.typeforce.Buffer),witness:ce.typeforce.maybe(ce.typeforce.arrayOf(ce.typeforce.Buffer))}),input:ce.typeforce.maybe(ce.typeforce.BufferN(0)),witness:ce.typeforce.maybe(ce.typeforce.arrayOf(ce.typeforce.Buffer))},e);const r=bt.value(()=>{const o=Un.bech32.decode(e.address),a=o.words.shift(),u=Un.bech32.fromWords(o.words);return{version:a,prefix:o.prefix,data:Buffer.from(u)}}),n=bt.value(()=>_t.decompile(e.redeem.input));let i=e.network;i||(i=e.redeem&&e.redeem.network||cl.bitcoin);const s={network:i};if(bt.prop(s,"address",()=>{if(!s.hash)return;const o=Un.bech32.toWords(s.hash);return o.unshift(0),Un.bech32.encode(i.bech32,o)}),bt.prop(s,"hash",()=>{if(e.output)return e.output.slice(2);if(e.address)return r().data;if(s.redeem&&s.redeem.output)return To.sha256(s.redeem.output)}),bt.prop(s,"output",()=>{if(s.hash)return _t.compile([Bo.OP_0,s.hash])}),bt.prop(s,"redeem",()=>{if(e.witness)return{output:e.witness[e.witness.length-1],input:qi,witness:e.witness.slice(0,-1)}}),bt.prop(s,"input",()=>{if(s.witness)return qi}),bt.prop(s,"witness",()=>{if(e.redeem&&e.redeem.input&&e.redeem.input.length>0&&e.redeem.output&&e.redeem.output.length>0){const o=_t.toStack(n());return s.redeem=Object.assign({witness:o},e.redeem),s.redeem.input=qi,[].concat(o,e.redeem.output)}if(e.redeem&&e.redeem.output&&e.redeem.witness)return[].concat(e.redeem.witness,e.redeem.output)}),bt.prop(s,"name",()=>{const o=["p2wsh"];return s.redeem!==void 0&&s.redeem.name!==void 0&&o.push(s.redeem.name),o.join("-")}),t.validate){let o=Buffer.from([]);if(e.address){if(r().prefix!==i.bech32)throw new TypeError("Invalid prefix or Network mismatch");if(r().version!==0)throw new TypeError("Invalid address version");if(r().data.length!==32)throw new TypeError("Invalid address data");o=r().data}if(e.hash){if(o.length>0&&!o.equals(e.hash))throw new TypeError("Hash mismatch");o=e.hash}if(e.output){if(e.output.length!==34||e.output[0]!==Bo.OP_0||e.output[1]!==32)throw new TypeError("Output is invalid");const a=e.output.slice(2);if(o.length>0&&!o.equals(a))throw new TypeError("Hash mismatch");o=a}if(e.redeem){if(e.redeem.network&&e.redeem.network!==i)throw new TypeError("Network mismatch");if(e.redeem.input&&e.redeem.input.length>0&&e.redeem.witness&&e.redeem.witness.length>0)throw new TypeError("Ambiguous witness source");if(e.redeem.output){const a=_t.decompile(e.redeem.output);if(!a||a.length<1)throw new TypeError("Redeem.output is invalid");if(e.redeem.output.byteLength>3600)throw new TypeError("Redeem.output unspendable if larger than 3600 bytes");if(_t.countNonPushOnlyOPs(a)>201)throw new TypeError("Redeem.output unspendable with more than 201 non-push ops");const u=To.sha256(e.redeem.output);if(o.length>0&&!o.equals(u))throw new TypeError("Hash mismatch");o=u}if(e.redeem.input&&!_t.isPushOnly(n()))throw new TypeError("Non push-only scriptSig");if(e.witness&&e.redeem.witness&&!(0,ce.stacksEqual)(e.witness,e.redeem.witness))throw new TypeError("Witness and redeem.witness mismatch");if(e.redeem.input&&n().some(Ln)||e.redeem.output&&(_t.decompile(e.redeem.output)||[]).some(Ln))throw new TypeError("redeem.input or redeem.output contains uncompressed pubkey")}if(e.witness&&e.witness.length>0){const a=e.witness[e.witness.length-1];if(e.redeem&&e.redeem.output&&!e.redeem.output.equals(a))throw new TypeError("Witness and redeem.output mismatch");if(e.witness.some(Ln)||(_t.decompile(a)||[]).some(Ln))throw new TypeError("Witness contains uncompressed pubkey")}}return Object.assign(s,e)}mi.p2wsh=fl;var Kr={},or={};Object.defineProperty(or,"__esModule",{value:!0});or.getEccLib=or.initEccLib=void 0;const un={};function ul(e,t){e?e!==un.eccLib&&(t!=null&&t.DANGER_DO_NOT_VERIFY_ECCLIB||hl(e),un.eccLib=e):un.eccLib=e}or.initEccLib=ul;function ll(){if(!un.eccLib)throw new Error("No ECC Library provided. You must call initEccLib() with a valid TinySecp256k1Interface instance");return un.eccLib}or.getEccLib=ll;const wt=e=>Buffer.from(e,"hex");function hl(e){Qe(typeof e.isXOnlyPoint=="function"),Qe(e.isXOnlyPoint(wt("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),Qe(e.isXOnlyPoint(wt("fffffffffffffffffffffffffffffffffffffffffffffffffffffffeeffffc2e"))),Qe(e.isXOnlyPoint(wt("f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9"))),Qe(e.isXOnlyPoint(wt("0000000000000000000000000000000000000000000000000000000000000001"))),Qe(!e.isXOnlyPoint(wt("0000000000000000000000000000000000000000000000000000000000000000"))),Qe(!e.isXOnlyPoint(wt("fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"))),Qe(typeof e.xOnlyPointAddTweak=="function"),dl.forEach(t=>{const r=e.xOnlyPointAddTweak(wt(t.pubkey),wt(t.tweak));t.result===null?Qe(r===null):(Qe(r!==null),Qe(r.parity===t.parity),Qe(Buffer.from(r.xOnlyPubkey).equals(wt(t.result))))})}function Qe(e){if(!e)throw new Error("ecc library invalid")}const dl=[{pubkey:"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",tweak:"fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140",parity:-1,result:null},{pubkey:"1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b",tweak:"a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac",parity:1,result:"e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"},{pubkey:"2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991",tweak:"823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47",parity:0,result:"9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"}];var Gs={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.tweakKey=e.tapTweakHash=e.tapleafHash=e.findScriptPath=e.toHashTree=e.rootHashFromPath=e.MAX_TAPTREE_DEPTH=e.LEAF_VERSION_TAPSCRIPT=void 0;const t=Bt,r=or,n=Vt,i=Pe,s=Fe;e.LEAF_VERSION_TAPSCRIPT=192,e.MAX_TAPTREE_DEPTH=128;const o=B=>"left"in B&&"right"in B;function a(B,T){if(B.length<33)throw new TypeError(`The control-block length is too small. Got ${B.length}, expected min 33.`);const R=(B.length-33)/32;let U=T;for(let x=0;x<R;x++){const g=B.slice(33+32*x,65+32*x);U.compare(g)<0?U=p(U,g):U=p(g,U)}return U}e.rootHashFromPath=a;function u(B){if((0,s.isTapleaf)(B))return{hash:d(B)};const T=[u(B[0]),u(B[1])];T.sort((x,g)=>x.hash.compare(g.hash));const[R,U]=T;return{hash:p(R.hash,U.hash),left:R,right:U}}e.toHashTree=u;function h(B,T){if(o(B)){const R=h(B.left,T);if(R!==void 0)return[...R,B.right.hash];const U=h(B.right,T);if(U!==void 0)return[...U,B.left.hash]}else if(B.hash.equals(T))return[]}e.findScriptPath=h;function d(B){const T=B.version||e.LEAF_VERSION_TAPSCRIPT;return n.taggedHash("TapLeaf",t.Buffer.concat([t.Buffer.from([T]),I(B.output)]))}e.tapleafHash=d;function y(B,T){return n.taggedHash("TapTweak",t.Buffer.concat(T?[B,T]:[B]))}e.tapTweakHash=y;function v(B,T){if(!t.Buffer.isBuffer(B)||B.length!==32||T&&T.length!==32)return null;const R=y(B,T),U=(0,r.getEccLib)().xOnlyPointAddTweak(B,R);return!U||U.xOnlyPubkey===null?null:{parity:U.parity,x:t.Buffer.from(U.xOnlyPubkey)}}e.tweakKey=v;function p(B,T){return n.taggedHash("TapBranch",t.Buffer.concat([B,T]))}function I(B){const T=i.varuint.encodingLength(B.length),R=t.Buffer.allocUnsafe(T);return i.varuint.encode(B.length,R),t.Buffer.concat([R,B])}})(Gs);var De={},Io;function pl(){if(Io)return De;Io=1,Object.defineProperty(De,"__esModule",{value:!0}),De.toOutputScript=De.fromOutputScript=De.toBech32=De.toBase58Check=De.fromBech32=De.fromBase58Check=void 0;const e=Ne,t=Vs(),r=Xe(),n=Fe,i=kt,s=$s,o=40,a=2,u=16,h=2,d=80,y="WARNING: Sending to a future segwit version address can lead to loss of funds. End users MUST be warned carefully in the GUI and asked if they wish to proceed with caution. Wallets should verify the segwit version from the output of fromBech32, then decide when it is safe to use which version of segwit.";function v(x,g){const S=x.slice(2);if(S.length<a||S.length>o)throw new TypeError("Invalid program length for segwit address");const E=x[0]-d;if(E<h||E>u)throw new TypeError("Invalid version for segwit address");if(x[1]!==S.length)throw new TypeError("Invalid script for segwit address");return console.warn(y),T(S,E,g.bech32)}function p(x){const g=Buffer.from(s.decode(x));if(g.length<21)throw new TypeError(x+" is too short");if(g.length>21)throw new TypeError(x+" is too long");const S=g.readUInt8(0),E=g.slice(1);return{version:S,hash:E}}De.fromBase58Check=p;function I(x){let g,S;try{g=i.bech32.decode(x)}catch{}if(g){if(S=g.words[0],S!==0)throw new TypeError(x+" uses wrong encoding")}else if(g=i.bech32m.decode(x),S=g.words[0],S===0)throw new TypeError(x+" uses wrong encoding");const E=i.bech32.fromWords(g.words.slice(1));return{version:S,prefix:g.prefix,data:Buffer.from(E)}}De.fromBech32=I;function B(x,g){(0,n.typeforce)((0,n.tuple)(n.Hash160bit,n.UInt8),arguments);const S=Buffer.allocUnsafe(21);return S.writeUInt8(g,0),x.copy(S,1),s.encode(S)}De.toBase58Check=B;function T(x,g,S){const E=i.bech32.toWords(x);return E.unshift(g),g===0?i.bech32.encode(S,E):i.bech32m.encode(S,E)}De.toBech32=T;function R(x,g){g=g||e.bitcoin;try{return t.p2pkh({output:x,network:g}).address}catch{}try{return t.p2sh({output:x,network:g}).address}catch{}try{return t.p2wpkh({output:x,network:g}).address}catch{}try{return t.p2wsh({output:x,network:g}).address}catch{}try{return t.p2tr({output:x,network:g}).address}catch{}try{return v(x,g)}catch{}throw new Error(r.toASM(x)+" has no matching Address")}De.fromOutputScript=R;function U(x,g){g=g||e.bitcoin;let S,E;try{S=p(x)}catch{}if(S){if(S.version===g.pubKeyHash)return t.p2pkh({hash:S.hash}).output;if(S.version===g.scriptHash)return t.p2sh({hash:S.hash}).output}else{try{E=I(x)}catch{}if(E){if(E.prefix!==g.bech32)throw new Error(x+" has an invalid prefix");if(E.version===0){if(E.data.length===20)return t.p2wpkh({hash:E.data}).output;if(E.data.length===32)return t.p2wsh({hash:E.data}).output}else if(E.version===1){if(E.data.length===32)return t.p2tr({pubkey:E.data}).output}else if(E.version>=h&&E.version<=u&&E.data.length>=a&&E.data.length<=o)return console.warn(y),r.compile([E.version+d,E.data])}}throw new Error(x+" has no matching Script")}return De.toOutputScript=U,De}var Po;function yl(){if(Po)return Kr;Po=1,Object.defineProperty(Kr,"__esModule",{value:!0}),Kr.p2tr=void 0;const e=Bt,t=Ne,r=Xe(),n=Fe,i=or,s=Gs,o=Ye,a=kt,u=pl(),h=r.OPS,d=1,y=80;function v(p,I){if(!p.address&&!p.output&&!p.pubkey&&!p.internalPubkey&&!(p.witness&&p.witness.length>1))throw new TypeError("Not enough data");I=Object.assign({validate:!0},I||{}),(0,n.typeforce)({address:n.typeforce.maybe(n.typeforce.String),input:n.typeforce.maybe(n.typeforce.BufferN(0)),network:n.typeforce.maybe(n.typeforce.Object),output:n.typeforce.maybe(n.typeforce.BufferN(34)),internalPubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),hash:n.typeforce.maybe(n.typeforce.BufferN(32)),pubkey:n.typeforce.maybe(n.typeforce.BufferN(32)),signature:n.typeforce.maybe(n.typeforce.anyOf(n.typeforce.BufferN(64),n.typeforce.BufferN(65))),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer)),scriptTree:n.typeforce.maybe(n.isTaptree),redeem:n.typeforce.maybe({output:n.typeforce.maybe(n.typeforce.Buffer),redeemVersion:n.typeforce.maybe(n.typeforce.Number),witness:n.typeforce.maybe(n.typeforce.arrayOf(n.typeforce.Buffer))}),redeemVersion:n.typeforce.maybe(n.typeforce.Number)},p);const B=o.value(()=>(0,u.fromBech32)(p.address)),T=o.value(()=>{if(!(!p.witness||!p.witness.length))return p.witness.length>=2&&p.witness[p.witness.length-1][0]===y?p.witness.slice(0,-1):p.witness.slice()}),R=o.value(()=>{if(p.scriptTree)return(0,s.toHashTree)(p.scriptTree);if(p.hash)return{hash:p.hash}}),U=p.network||t.bitcoin,x={name:"p2tr",network:U};if(o.prop(x,"address",()=>{if(!x.pubkey)return;const g=a.bech32m.toWords(x.pubkey);return g.unshift(d),a.bech32m.encode(U.bech32,g)}),o.prop(x,"hash",()=>{const g=R();if(g)return g.hash;const S=T();if(S&&S.length>1){const E=S[S.length-1],H=E[0]&n.TAPLEAF_VERSION_MASK,M=S[S.length-2],O=(0,s.tapleafHash)({output:M,version:H});return(0,s.rootHashFromPath)(E,O)}return null}),o.prop(x,"output",()=>{if(x.pubkey)return r.compile([h.OP_1,x.pubkey])}),o.prop(x,"redeemVersion",()=>p.redeemVersion?p.redeemVersion:p.redeem&&p.redeem.redeemVersion!==void 0&&p.redeem.redeemVersion!==null?p.redeem.redeemVersion:s.LEAF_VERSION_TAPSCRIPT),o.prop(x,"redeem",()=>{const g=T();if(!(!g||g.length<2))return{output:g[g.length-2],witness:g.slice(0,-2),redeemVersion:g[g.length-1][0]&n.TAPLEAF_VERSION_MASK}}),o.prop(x,"pubkey",()=>{if(p.pubkey)return p.pubkey;if(p.output)return p.output.slice(2);if(p.address)return B().data;if(x.internalPubkey){const g=(0,s.tweakKey)(x.internalPubkey,x.hash);if(g)return g.x}}),o.prop(x,"internalPubkey",()=>{if(p.internalPubkey)return p.internalPubkey;const g=T();if(g&&g.length>1)return g[g.length-1].slice(1,33)}),o.prop(x,"signature",()=>{if(p.signature)return p.signature;const g=T();if(!(!g||g.length!==1))return g[0]}),o.prop(x,"witness",()=>{if(p.witness)return p.witness;const g=R();if(g&&p.redeem&&p.redeem.output&&p.internalPubkey){const S=(0,s.tapleafHash)({output:p.redeem.output,version:x.redeemVersion}),E=(0,s.findScriptPath)(g,S);if(!E)return;const H=(0,s.tweakKey)(p.internalPubkey,g.hash);if(!H)return;const M=e.Buffer.concat([e.Buffer.from([x.redeemVersion|H.parity]),p.internalPubkey].concat(E));return[p.redeem.output,M]}if(p.signature)return[p.signature]}),I.validate){let g=e.Buffer.from([]);if(p.address){if(U&&U.bech32!==B().prefix)throw new TypeError("Invalid prefix or Network mismatch");if(B().version!==d)throw new TypeError("Invalid address version");if(B().data.length!==32)throw new TypeError("Invalid address data");g=B().data}if(p.pubkey){if(g.length>0&&!g.equals(p.pubkey))throw new TypeError("Pubkey mismatch");g=p.pubkey}if(p.output){if(p.output.length!==34||p.output[0]!==h.OP_1||p.output[1]!==32)throw new TypeError("Output is invalid");if(g.length>0&&!g.equals(p.output.slice(2)))throw new TypeError("Pubkey mismatch");g=p.output.slice(2)}if(p.internalPubkey){const H=(0,s.tweakKey)(p.internalPubkey,x.hash);if(g.length>0&&!g.equals(H.x))throw new TypeError("Pubkey mismatch");g=H.x}if(g&&g.length&&!(0,i.getEccLib)().isXOnlyPoint(g))throw new TypeError("Invalid pubkey for p2tr");const S=R();if(p.hash&&S&&!p.hash.equals(S.hash))throw new TypeError("Hash mismatch");if(p.redeem&&p.redeem.output&&S){const H=(0,s.tapleafHash)({output:p.redeem.output,version:x.redeemVersion});if(!(0,s.findScriptPath)(S,H))throw new TypeError("Redeem script not in tree")}const E=T();if(p.redeem&&x.redeem){if(p.redeem.redeemVersion&&p.redeem.redeemVersion!==x.redeem.redeemVersion)throw new TypeError("Redeem.redeemVersion and witness mismatch");if(p.redeem.output){if(r.decompile(p.redeem.output).length===0)throw new TypeError("Redeem.output is invalid");if(x.redeem.output&&!p.redeem.output.equals(x.redeem.output))throw new TypeError("Redeem.output and witness mismatch")}if(p.redeem.witness&&x.redeem.witness&&!(0,n.stacksEqual)(p.redeem.witness,x.redeem.witness))throw new TypeError("Redeem.witness and witness mismatch")}if(E&&E.length)if(E.length===1){if(p.signature&&!p.signature.equals(E[0]))throw new TypeError("Signature mismatch")}else{const H=E[E.length-1];if(H.length<33)throw new TypeError(`The control-block length is too small. Got ${H.length}, expected min 33.`);if((H.length-33)%32!==0)throw new TypeError(`The control-block length of ${H.length} is incorrect!`);const M=(H.length-33)/32;if(M>128)throw new TypeError(`The script path is too long. Got ${M}, expected max 128.`);const O=H.slice(1,33);if(p.internalPubkey&&!p.internalPubkey.equals(O))throw new TypeError("Internal pubkey mismatch");if(!(0,i.getEccLib)().isXOnlyPoint(O))throw new TypeError("Invalid internalPubkey for p2tr witness");const q=H[0]&n.TAPLEAF_VERSION_MASK,C=E[E.length-2],j=(0,s.tapleafHash)({output:C,version:q}),G=(0,s.rootHashFromPath)(H,j),V=(0,s.tweakKey)(O,G);if(!V)throw new TypeError("Invalid outputKey for p2tr witness");if(g.length&&!g.equals(V.x))throw new TypeError("Pubkey mismatch for p2tr witness");if(V.parity!==(H[0]&1))throw new Error("Incorrect parity")}}return Object.assign(x,p)}return Kr.p2tr=v,Kr}var Oo;function Vs(){return Oo||(Oo=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.p2tr=e.p2wsh=e.p2wpkh=e.p2sh=e.p2pkh=e.p2pk=e.p2ms=e.embed=void 0;const t=ui;Object.defineProperty(e,"embed",{enumerable:!0,get:function(){return t.p2data}});const r=li;Object.defineProperty(e,"p2ms",{enumerable:!0,get:function(){return r.p2ms}});const n=hi;Object.defineProperty(e,"p2pk",{enumerable:!0,get:function(){return n.p2pk}});const i=di;Object.defineProperty(e,"p2pkh",{enumerable:!0,get:function(){return i.p2pkh}});const s=pi;Object.defineProperty(e,"p2sh",{enumerable:!0,get:function(){return s.p2sh}});const o=yi;Object.defineProperty(e,"p2wpkh",{enumerable:!0,get:function(){return o.p2wpkh}});const a=mi;Object.defineProperty(e,"p2wsh",{enumerable:!0,get:function(){return a.p2wsh}});const u=yl();Object.defineProperty(e,"p2tr",{enumerable:!0,get:function(){return u.p2tr}})}(Gi)),Gi}Object.defineProperty(ae,"__esModule",{value:!0});ae.signatureBlocksAction=ae.checkInputForSig=ae.pubkeyInScript=ae.pubkeyPositionInScript=ae.witnessStackToScriptWitness=ae.isP2TR=ae.isP2SHScript=ae.isP2WSHScript=ae.isP2WPKH=ae.isP2PKH=ae.isP2PK=ae.isP2MS=void 0;const Ro=_n,ln=Xe(),Nn=gn,ml=Vt,hr=Vs();function dr(e){return t=>{try{return e({output:t}),!0}catch{return!1}}}ae.isP2MS=dr(hr.p2ms);ae.isP2PK=dr(hr.p2pk);ae.isP2PKH=dr(hr.p2pkh);ae.isP2WPKH=dr(hr.p2wpkh);ae.isP2WSHScript=dr(hr.p2wsh);ae.isP2SHScript=dr(hr.p2sh);ae.isP2TR=dr(hr.p2tr);function bl(e){let t=Buffer.allocUnsafe(0);function r(o){t=Buffer.concat([t,Buffer.from(o)])}function n(o){const a=t.length,u=Ro.encodingLength(o);t=Buffer.concat([t,Buffer.allocUnsafe(u)]),Ro.encode(o,t,a)}function i(o){n(o.length),r(o)}function s(o){n(o.length),o.forEach(i)}return s(e),t}ae.witnessStackToScriptWitness=bl;function za(e,t){const r=(0,ml.hash160)(e),n=e.slice(1,33),i=ln.decompile(t);if(i===null)throw new Error("Unknown script error");return i.findIndex(s=>typeof s=="number"?!1:s.equals(e)||s.equals(r)||s.equals(n))}ae.pubkeyPositionInScript=za;function wl(e,t){return za(e,t)!==-1}ae.pubkeyInScript=wl;function gl(e,t){return _l(e).some(n=>Wa(n,ln.signature.decode,t))}ae.checkInputForSig=gl;function Wa(e,t,r){const{hashType:n}=t(e),i=[];switch(n&Nn.Transaction.SIGHASH_ANYONECANPAY&&i.push("addInput"),n&31){case Nn.Transaction.SIGHASH_ALL:break;case Nn.Transaction.SIGHASH_SINGLE:case Nn.Transaction.SIGHASH_NONE:i.push("addOutput"),i.push("setInputSequence");break}return i.indexOf(r)===-1}ae.signatureBlocksAction=Wa;function _l(e){let t=[];if((e.partialSig||[]).length===0){if(!e.finalScriptSig&&!e.finalScriptWitness)return[];t=vl(e)}else t=e.partialSig;return t.map(r=>r.signature)}function vl(e){const t=e.finalScriptSig?ln.decompile(e.finalScriptSig)||[]:[],r=e.finalScriptWitness?ln.decompile(e.finalScriptWitness)||[]:[];return t.concat(r).filter(n=>Buffer.isBuffer(n)&&ln.isCanonicalScriptSignature(n)).map(n=>({signature:n}))}Object.defineProperty(we,"__esModule",{value:!0});we.checkTaprootInputForSigs=we.tapTreeFromList=we.tapTreeToList=we.tweakInternalPubKey=we.checkTaprootOutputFields=we.checkTaprootInputFields=we.isTaprootOutput=we.isTaprootInput=Wn=we.serializeTaprootSignature=we.tapScriptFinalizer=we.toXOnly=void 0;const zs=Fe,El=gn,bi=ae,Gt=Gs,xl=Vs(),Sl=ae,Al=e=>e.length===32?e:e.slice(1,33);we.toXOnly=Al;function kl(e,t,r){const n=Vl(t,e,r);try{const s=jl(t,n).concat(n.script).concat(n.controlBlock);return{finalScriptWitness:(0,bi.witnessStackToScriptWitness)(s)}}catch(i){throw new Error(`Can not finalize taproot input #${e}: ${i}`)}}we.tapScriptFinalizer=kl;function Tl(e,t){const r=t?Buffer.from([t]):Buffer.from([]);return Buffer.concat([e,r])}var Wn=we.serializeTaprootSignature=Tl;function qn(e){return e&&!!(e.tapInternalKey||e.tapMerkleRoot||e.tapLeafScript&&e.tapLeafScript.length||e.tapBip32Derivation&&e.tapBip32Derivation.length||e.witnessUtxo&&(0,bi.isP2TR)(e.witnessUtxo.script))}we.isTaprootInput=qn;function Kn(e,t){return e&&!!(e.tapInternalKey||e.tapTree||e.tapBip32Derivation&&e.tapBip32Derivation.length||t&&(0,bi.isP2TR)(t))}we.isTaprootOutput=Kn;function Bl(e,t,r){Ml(e,t,r),$l(e,t,r)}we.checkTaprootInputFields=Bl;function Il(e,t,r){Dl(e,t,r),Pl(e,t)}we.checkTaprootOutputFields=Il;function Pl(e,t){if(!t.tapTree&&!t.tapInternalKey)return;const r=t.tapInternalKey||e.tapInternalKey,n=t.tapTree||e.tapTree;if(r){const{script:i}=e,s=Ol(r,n);if(i&&!i.equals(s))throw new Error("Error adding output. Script or address missmatch.")}}function Ol(e,t){const r=t&&qa(t.leaves),{output:n}=(0,xl.p2tr)({internalPubkey:e,scriptTree:r});return n}function Rl(e,t){const r=t.tapInternalKey,n=r&&(0,Gt.tweakKey)(r,t.tapMerkleRoot);if(!n)throw new Error(`Cannot tweak tap internal key for input #${e}. Public key: ${r&&r.toString("hex")}`);return n.x}we.tweakInternalPubKey=Rl;function Cl(e){if(!(0,zs.isTaptree)(e))throw new Error("Cannot convert taptree to tapleaf list. Expecting a tapree structure.");return ys(e)}we.tapTreeToList=Cl;function qa(e=[]){return e.length===1&&e[0].depth===0?{output:e[0].script,version:e[0].leafVersion}:Hl(e)}we.tapTreeFromList=qa;function Ul(e,t){return Nl(e).some(n=>(0,Sl.signatureBlocksAction)(n,Ll,t))}we.checkTaprootInputForSigs=Ul;function Ll(e){return{signature:e.slice(0,64),hashType:e.slice(64)[0]||El.Transaction.SIGHASH_DEFAULT}}function Nl(e){const t=[];if(e.tapKeySig&&t.push(e.tapKeySig),e.tapScriptSig&&t.push(...e.tapScriptSig.map(r=>r.signature)),!t.length){const r=Fl(e.finalScriptWitness);r&&t.push(r)}return t}function Fl(e){if(!e)return;const t=e.slice(2);if(t.length===64||t.length===65)return t}function ys(e,t=[],r=0){if(r>Gt.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");return e?(0,zs.isTapleaf)(e)?(t.push({depth:r,leafVersion:e.version||Gt.LEAF_VERSION_TAPSCRIPT,script:e.output}),t):(e[0]&&ys(e[0],t,r+1),e[1]&&ys(e[1],t,r+1),t):[]}function Hl(e){let t;for(const r of e)if(t=ms(r,t),!t)throw new Error("No room left to insert tapleaf in tree");return t}function ms(e,t,r=0){if(r>Gt.MAX_TAPTREE_DEPTH)throw new Error("Max taptree depth exceeded.");if(e.depth===r)return t?void 0:{output:e.script,version:e.leafVersion};if((0,zs.isTapleaf)(t))return;const n=ms(e,t&&t[0],r+1);if(n)return[n,t&&t[1]];const i=ms(e,t&&t[1],r+1);if(i)return[t&&t[0],i]}function Ml(e,t,r){const n=qn(e)&&Ir(t),i=Ir(e)&&qn(t),s=e===t&&qn(t)&&Ir(t);if(n||i||s)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function Dl(e,t,r){const n=Kn(e)&&Ir(t),i=Ir(e)&&Kn(t),s=e===t&&Kn(t)&&Ir(t);if(n||i||s)throw new Error(`Invalid arguments for Psbt.${r}. Cannot use both taproot and non-taproot fields.`)}function $l(e,t,r){if(t.tapMerkleRoot){const n=(t.tapLeafScript||[]).every(s=>Ki(s,t.tapMerkleRoot)),i=(e.tapLeafScript||[]).every(s=>Ki(s,t.tapMerkleRoot));if(!n||!i)throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}else if(e.tapMerkleRoot&&!(t.tapLeafScript||[]).every(i=>Ki(i,e.tapMerkleRoot)))throw new Error(`Invalid arguments for Psbt.${r}. Tapleaf not part of taptree.`)}function Ki(e,t){if(!t)return!0;const r=(0,Gt.tapleafHash)({output:e.script,version:e.leafVersion});return(0,Gt.rootHashFromPath)(e.controlBlock,r).equals(t)}function jl(e,t){const r=(0,Gt.tapleafHash)({output:t.script,version:t.leafVersion});return(e.tapScriptSig||[]).filter(n=>n.leafHash.equals(r)).map(n=>Gl(t.script,n)).sort((n,i)=>i.positionInScript-n.positionInScript).map(n=>n.signature)}function Gl(e,t){return Object.assign({positionInScript:(0,bi.pubkeyPositionInScript)(t.pubkey,e)},t)}function Vl(e,t,r){if(!e.tapScriptSig||!e.tapScriptSig.length)throw new Error(`Can not finalize taproot input #${t}. No tapleaf script signature provided.`);const n=(e.tapLeafScript||[]).sort((i,s)=>i.controlBlock.length-s.controlBlock.length).find(i=>zl(i,e.tapScriptSig,r));if(!n)throw new Error(`Can not finalize taproot input #${t}. Signature for tapleaf script not found.`);return n}function zl(e,t,r){const n=(0,Gt.tapleafHash)({output:e.script,version:e.leafVersion});return(!r||r.equals(n))&&t.find(s=>s.leafHash.equals(n))!==void 0}function Ir(e){return e&&!!(e.redeemScript||e.witnessScript||e.bip32Derivation&&e.bip32Derivation.length)}const Be={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"},Fn=192;ie.initEccLib(ir);class hn{constructor(t,r,n,i,s,o,a,u){this.secretHash=n,this.redeemerPubkey=i,this.initiatorPubkey=s,this.expiry=o,this.signer=t,this.network=a,this.internalPubkey=Pf(),this.initiateAmount=r,this.utxoHashes=u}static async from(t,r,n,i,s,o,a){n=n.startsWith("0x")?n.slice(2):n,Qt(n.length===64,Be.secretHashLenMismatch),Qt(i.length===64||i.length===66,`initiator ${Be.pubkeyLenMismatch}`),Qt(s.length===64||s.length===66,`redeemer ${Be.pubkeyLenMismatch}`),Qt(o>0,Be.zeroOrNegativeExpiry);const u=await t.getNetwork();return new hn(t,r,n,ls(s).toString("hex"),ls(i).toString("hex"),o,u,a)}address(){const{address:t}=ie.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves()});if(!t)throw new Error(Be.htlcAddressGenerationFailed);return t}id(){return this.address()}async _buildRawTx(t,r){const n=new ie.Transaction;n.version=2;const i=this.address(),s=await this.signer.getProvider();let o=[];if(this.utxoHashes&&this.utxoHashes.length>0)for(const u of this.utxoHashes){const h=await s.getTransaction(u);for(let d=0;d<h.vout.length;d++){const y=h.vout[d];y.scriptpubkey_address===i&&o.push({txid:h.txid,vout:d,value:y.value,status:{confirmed:!1}})}}else o=await s.getUTXOs(i);const a=o.reduce((u,h)=>u+h.value,0);if(a===0)throw new Error(`${i} ${Be.notFunded}`);for(let u=0;u<o.length;u++)n.addInput(Buffer.from(o[u].txid,"hex").reverse(),o[u].vout);return r??(r=await s.suggestFee(i,a,Or.Urgency.MEDIUM)),n.addOutput(ie.address.toOutputScript(t,this.network),a-r),{tx:n,usedUtxos:o}}async _tempBuildRawTx(t,r){const n=new ie.Transaction;n.version=2;const i=this.address(),s=await this.signer.getProvider();let o=[];if(this.utxoHashes&&this.utxoHashes.length>0)for(const u of this.utxoHashes){const h=await s.getTransaction(u);for(let d=0;d<h.vout.length;d++){const y=h.vout[d];y.scriptpubkey_address===i&&o.push({txid:h.txid,vout:d,value:y.value,status:{confirmed:!1}})}}else o=await s.getUTXOs(i);const a=o.reduce((u,h)=>u+h.value,0);if(a===0)throw new Error(`${i} ${Be.notFunded}`);for(let u=0;u<o.length;u++)n.addInput(Buffer.from(o[u].txid,"hex").reverse(),o[u].vout);if(n.addOutput(ie.address.toOutputScript(t,this.network),a),r){const u=await s.getFeeRates(),h=Math.ceil(u.hourFee*r),d=a-h;n.outs[0].value=d}return{tx:n,usedUtxos:o}}async buildRawTx(t){return await this._buildRawTx(await this.signer.getAddress(),t)}getOutputScript(){return ie.address.toOutputScript(this.address(),this.network)}async init(t){return t??(t=await(await this.signer.getProvider()).suggestFee(await this.signer.getAddress(),this.initiateAmount,Or.Urgency.MEDIUM)),await this.signer.send(this.address(),this.initiateAmount,t)}async generateRedeemSACP(t,r,n){const{tx:i,usedUtxos:s}=await this._buildRawTx(r,n),o=this.getOutputScript(),a=ie.Transaction.SIGHASH_SINGLE|ie.Transaction.SIGHASH_ANYONECANPAY,u=this.leafHash(1),h=s.map(y=>y.value),d=vr(o,s.length);for(let y=0;y<i.ins.length;y++){const v=i.hashForWitnessV1(y,d,h,a,u),p=await this.signer.signSchnorr(v);i.setWitness(y,[Wn(p,a),Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return i.toHex()}async generateInstantRefundSACP(t,r){const{tx:n,usedUtxos:i}=await this._buildRawTx(t,r),s=this.getOutputScript(),o=ie.Transaction.SIGHASH_SINGLE|ie.Transaction.SIGHASH_ANYONECANPAY,a=this.leafHash(2),u=i.map(d=>d.value),h=vr(s,i.length);for(let d=0;d<n.ins.length;d++){const y=n.hashForWitnessV1(d,h,u,o,a),v=await this.signer.signSchnorr(y);n.setWitness(d,[Wn(v,o),Wn(v,o),this.instantRefundLeaf(),this.generateControlBlockFor(2)])}return n.toHex()}async instantRefund(t,r){Qt(t.length>0,Be.noCounterpartySigs);const{tx:n,usedUtxos:i}=await this.buildRawTx(r);for(const y of i)if(!t.find(v=>v.utxo===y.txid))throw new Error(Be.counterPartySigNotFound(y.txid));const s=this.getOutputScript(),o=ie.Transaction.SIGHASH_DEFAULT,a=this.leafHash(2),u=i.map(y=>y.value),h=vr(s,i.length);for(let y=0;y<n.ins.length;y++){const v=n.hashForWitnessV1(y,h,u,o,a);if(!ir.verifySchnorr(v,Buffer.from(this.redeemerPubkey,"hex"),Buffer.from(t[y].sig,"hex")))throw new Error(Be.invalidCounterpartySigForUTXO(t[y].utxo));const p=await this.signer.signSchnorr(v),I=Buffer.from(n.ins[y].hash).reverse().toString("hex"),B=t.find(T=>T.utxo===I);if(!B)throw new Error(Be.counterPartySigNotFound(I));n.setWitness(y,[Buffer.from(B.sig,"hex"),p,this.instantRefundLeaf(),this.generateControlBlockFor(2)])}return await(await this.signer.getProvider()).broadcast(n.toHex())}async redeem(t,r){Qt(ie.crypto.sha256(Buffer.from(t,"hex")).toString("hex")===this.secretHash,Be.secretMismatch);const n=r??await this.signer.getAddress(),{tx:i,usedUtxos:s}=await this._tempBuildRawTx(n),o=this.leafHash(1),a=s.map(v=>v.value),u=vr(this.getOutputScript(),s.length),h=ie.Transaction.SIGHASH_DEFAULT;for(let v=0;v<i.ins.length;v++){const p=i.hashForWitnessV1(v,u,a,h,o),I=await this.signer.signSchnorr(p);i.setWitness(v,[I,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}const{tx:d}=await this._tempBuildRawTx(n,i.virtualSize());for(let v=0;v<d.ins.length;v++){const p=d.hashForWitnessV1(v,u,a,h,o),I=await this.signer.signSchnorr(p);d.setWitness(v,[I,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return await(await this.signer.getProvider()).broadcast(d.toHex())}async getRedeemHex(t,r){Qt(ie.crypto.sha256(Buffer.from(t,"hex")).toString("hex")===this.secretHash,Be.secretMismatch);const n=r??await this.signer.getAddress(),{tx:i,usedUtxos:s}=await this._tempBuildRawTx(n),o=this.leafHash(1),a=s.map(y=>y.value),u=vr(this.getOutputScript(),s.length),h=ie.Transaction.SIGHASH_DEFAULT;for(let y=0;y<i.ins.length;y++){const v=i.hashForWitnessV1(y,u,a,h,o),p=await this.signer.signSchnorr(v);i.setWitness(y,[p,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}const{tx:d}=await this._tempBuildRawTx(n,i.virtualSize());for(let y=0;y<d.ins.length;y++){const v=d.hashForWitnessV1(y,u,a,h,o),p=await this.signer.signSchnorr(v);d.setWitness(y,[p,Buffer.from(t,"hex"),this.redeemLeaf(),this.generateControlBlockFor(1)])}return d.toHex()}async refund(t,r){const{tx:n,usedUtxos:i}=await this._buildRawTx(t??await this.signer.getAddress(),r),[s,o]=await this.canRefund(i);if(!s)throw new Error(Be.htlcNotExpired(o));const a=this.leafHash(0),u=i.map(v=>v.value),h=vr(this.getOutputScript(),i.length),d=ie.Transaction.SIGHASH_DEFAULT;for(let v=0;v<n.ins.length;v++){n.ins[v].sequence=this.expiry;const p=n.hashForWitnessV1(v,h,u,d,a),I=await this.signer.signSchnorr(p);n.setWitness(v,[I,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 s=0;if(i.status.confirmed&&i.status.block_height+this.expiry>n?s=i.status.block_height+this.expiry-n+1:i.status.confirmed||(s=this.expiry+1),s>0)return[!1,s]}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(Be.invalidLeaf)}const n=ie.payments.p2tr({internalPubkey:this.internalPubkey,network:this.network,scriptTree:this.leaves(),redeem:{output:r,redeemVersion:Fn}});if(!n.witness)throw new Error(Be.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()),ie.crypto.taggedHash("TapLeaf",wf(r))}refundLeaf(){return ie.script.fromASM(`
|
|
10
10
|
${ie.script.number.encode(this.expiry).toString("hex")}
|
|
11
11
|
OP_CHECKSEQUENCEVERIFY
|
|
12
12
|
OP_DROP
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
OP_CHECKSIGADD
|
|
26
26
|
OP_2
|
|
27
27
|
OP_NUMEQUAL
|
|
28
|
-
`.trim().replace(/\s+/g," "))}leaves(){return[{version
|
|
29
|
-
`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};
|
|
30
|
-
`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var
|
|
31
|
-
Use Chrome, Firefox or Internet Explorer 11`)}var Gl=We.Buffer,ii=qt.crypto||qt.msCrypto;ii&&ii.getRandomValues?_s.exports=Vl:_s.exports=jl;function Vl(e,t){if(e>$l)throw new RangeError("requested too many random bytes");var r=Gl.allocUnsafe(e);if(e>0)if(e>Qi)for(var n=0;n<e;n+=Qi)ii.getRandomValues(r.slice(n,n+Qi));else ii.getRandomValues(r);return typeof t=="function"?process.nextTick(function(){t(null,r)}):r}var Wl=_s.exports,Es={exports:{}};typeof Object.create=="function"?Es.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:Es.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}};var Re=Es.exports,xs={exports:{}},qs={exports:{}},Ur=typeof Reflect=="object"?Reflect:null,Uo=Ur&&typeof Ur.apply=="function"?Ur.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},Zn;Ur&&typeof Ur.ownKeys=="function"?Zn=Ur.ownKeys:Object.getOwnPropertySymbols?Zn=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Zn=function(t){return Object.getOwnPropertyNames(t)};function zl(e){console&&console.warn&&console.warn(e)}var ec=Number.isNaN||function(t){return t!==t};function se(){se.init.call(this)}qs.exports=se;qs.exports.once=Xl;se.EventEmitter=se;se.prototype._events=void 0;se.prototype._eventsCount=0;se.prototype._maxListeners=void 0;var Lo=10;function Ei(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(se,"defaultMaxListeners",{enumerable:!0,get:function(){return Lo},set:function(e){if(typeof e!="number"||e<0||ec(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Lo=e}});se.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};se.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||ec(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function tc(e){return e._maxListeners===void 0?se.defaultMaxListeners:e._maxListeners}se.prototype.getMaxListeners=function(){return tc(this)};se.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=t==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var u=s[t];if(u===void 0)return!1;if(typeof u=="function")Uo(u,this,r);else for(var h=u.length,d=oc(u,h),n=0;n<h;++n)Uo(d[n],this,r);return!0};function rc(e,t,r,n){var i,s,o;if(Ei(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),o=s[t]),o===void 0)o=s[t]=r,++e._eventsCount;else if(typeof o=="function"?o=s[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=tc(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=o.length,zl(a)}return e}se.prototype.addListener=function(t,r){return rc(this,t,r,!1)};se.prototype.on=se.prototype.addListener;se.prototype.prependListener=function(t,r){return rc(this,t,r,!0)};function ql(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function nc(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=ql.bind(n);return i.listener=r,n.wrapFn=i,i}se.prototype.once=function(t,r){return Ei(r),this.on(t,nc(this,t,r)),this};se.prototype.prependOnceListener=function(t,r){return Ei(r),this.prependListener(t,nc(this,t,r)),this};se.prototype.removeListener=function(t,r){var n,i,s,o,a;if(Ei(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():Kl(n,s),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||r)}return this};se.prototype.off=se.prototype.removeListener;se.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(t,r[i]);return this};function ic(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?Yl(i):oc(i,i.length)}se.prototype.listeners=function(t){return ic(this,t,!0)};se.prototype.rawListeners=function(t){return ic(this,t,!1)};se.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):sc.call(e,t)};se.prototype.listenerCount=sc;function sc(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}se.prototype.eventNames=function(){return this._eventsCount>0?Zn(this._events):[]};function oc(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function Kl(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function Yl(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function Xl(e,t){return new Promise(function(r,n){function i(o){e.removeListener(t,s),n(o)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",i),r([].slice.call(arguments))}ac(e,t,s,{once:!0}),t!=="error"&&Jl(e,i,{once:!0})})}function Jl(e,t,r){typeof e.on=="function"&&ac(e,"error",t,r)}function ac(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(s){n.once&&e.removeEventListener(t,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var cc=qs.exports,fc=cc.EventEmitter;const Ql={},Zl=Object.freeze(Object.defineProperty({__proto__:null,default:Ql},Symbol.toStringTag,{value:"Module"})),Ks=Nf(Zl);var Zi,No;function eh(){if(No)return Zi;No=1;function e(I,A){var B=Object.keys(I);if(Object.getOwnPropertySymbols){var O=Object.getOwnPropertySymbols(I);A&&(O=O.filter(function(C){return Object.getOwnPropertyDescriptor(I,C).enumerable})),B.push.apply(B,O)}return B}function t(I){for(var A=1;A<arguments.length;A++){var B=arguments[A]!=null?arguments[A]:{};A%2?e(Object(B),!0).forEach(function(O){r(I,O,B[O])}):Object.getOwnPropertyDescriptors?Object.defineProperties(I,Object.getOwnPropertyDescriptors(B)):e(Object(B)).forEach(function(O){Object.defineProperty(I,O,Object.getOwnPropertyDescriptor(B,O))})}return I}function r(I,A,B){return A=o(A),A in I?Object.defineProperty(I,A,{value:B,enumerable:!0,configurable:!0,writable:!0}):I[A]=B,I}function n(I,A){if(!(I instanceof A))throw new TypeError("Cannot call a class as a function")}function i(I,A){for(var B=0;B<A.length;B++){var O=A[B];O.enumerable=O.enumerable||!1,O.configurable=!0,"value"in O&&(O.writable=!0),Object.defineProperty(I,o(O.key),O)}}function s(I,A,B){return A&&i(I.prototype,A),Object.defineProperty(I,"prototype",{writable:!1}),I}function o(I){var A=a(I,"string");return typeof A=="symbol"?A:String(A)}function a(I,A){if(typeof I!="object"||I===null)return I;var B=I[Symbol.toPrimitive];if(B!==void 0){var O=B.call(I,A||"default");if(typeof O!="object")return O;throw new TypeError("@@toPrimitive must return a primitive value.")}return(A==="string"?String:Number)(I)}var u=Rt,h=u.Buffer,d=Ks,p=d.inspect,_=p&&p.custom||"inspect";function y(I,A,B){h.prototype.copy.call(I,A,B)}return Zi=function(){function I(){n(this,I),this.head=null,this.tail=null,this.length=0}return s(I,[{key:"push",value:function(B){var O={data:B,next:null};this.length>0?this.tail.next=O:this.head=O,this.tail=O,++this.length}},{key:"unshift",value:function(B){var O={data:B,next:this.head};this.length===0&&(this.tail=O),this.head=O,++this.length}},{key:"shift",value:function(){if(this.length!==0){var B=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,B}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(B){if(this.length===0)return"";for(var O=this.head,C=""+O.data;O=O.next;)C+=B+O.data;return C}},{key:"concat",value:function(B){if(this.length===0)return h.alloc(0);for(var O=h.allocUnsafe(B>>>0),C=this.head,v=0;C;)y(C.data,O,v),v+=C.data.length,C=C.next;return O}},{key:"consume",value:function(B,O){var C;return B<this.head.data.length?(C=this.head.data.slice(0,B),this.head.data=this.head.data.slice(B)):B===this.head.data.length?C=this.shift():C=O?this._getString(B):this._getBuffer(B),C}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(B){var O=this.head,C=1,v=O.data;for(B-=v.length;O=O.next;){var g=O.data,S=B>g.length?g.length:B;if(S===g.length?v+=g:v+=g.slice(0,B),B-=S,B===0){S===g.length?(++C,O.next?this.head=O.next:this.head=this.tail=null):(this.head=O,O.data=g.slice(S));break}++C}return this.length-=C,v}},{key:"_getBuffer",value:function(B){var O=h.allocUnsafe(B),C=this.head,v=1;for(C.data.copy(O),B-=C.data.length;C=C.next;){var g=C.data,S=B>g.length?g.length:B;if(g.copy(O,O.length-B,0,S),B-=S,B===0){S===g.length?(++v,C.next?this.head=C.next:this.head=this.tail=null):(this.head=C,C.data=g.slice(S));break}++v}return this.length-=v,O}},{key:_,value:function(B,O){return p(this,t(t({},O),{},{depth:0,customInspect:!1}))}}]),I}(),Zi}function th(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Ss,this,e)):process.nextTick(Ss,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(ei,r):(r._writableState.errorEmitted=!0,process.nextTick(Fo,r,s)):process.nextTick(Fo,r,s):t?(process.nextTick(ei,r),t(s)):process.nextTick(ei,r)}),this)}function Fo(e,t){Ss(e,t),ei(e)}function ei(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function rh(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Ss(e,t){e.emit("error",t)}function nh(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}var uc={destroy:th,undestroy:rh,errorOrDestroy:nh},br={};function ih(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var lc={};function tt(e,t,r){r||(r=Error);function n(s,o,a){return typeof t=="string"?t:t(s,o,a)}var i=function(s){ih(o,s);function o(a,u,h){return s.call(this,n(a,u,h))||this}return o}(r);i.prototype.name=r.name,i.prototype.code=e,lc[e]=i}function Ho(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(n){return String(n)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function sh(e,t,r){return e.substr(0,t.length)===t}function oh(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function ah(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}tt("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);tt("ERR_INVALID_ARG_TYPE",function(e,t,r){var n;typeof t=="string"&&sh(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var i;if(oh(e," argument"))i="The ".concat(e," ").concat(n," ").concat(Ho(t,"type"));else{var s=ah(e,".")?"property":"argument";i='The "'.concat(e,'" ').concat(s," ").concat(n," ").concat(Ho(t,"type"))}return i+=". Received type ".concat(typeof r),i},TypeError);tt("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");tt("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});tt("ERR_STREAM_PREMATURE_CLOSE","Premature close");tt("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});tt("ERR_MULTIPLE_CALLBACK","Callback called multiple times");tt("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");tt("ERR_STREAM_WRITE_AFTER_END","write after end");tt("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);tt("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);tt("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");br.codes=lc;var ch=br.codes.ERR_INVALID_OPT_VALUE;function fh(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function uh(e,t,r,n){var i=fh(t,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=n?r:"highWaterMark";throw new ch(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}var hc={getHighWaterMark:uh},lh=hh;function hh(e,t){if(es("noDeprecation"))return e;var r=!1;function n(){if(!r){if(es("throwDeprecation"))throw new Error(t);es("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return n}function es(e){try{if(!qt.localStorage)return!1}catch{return!1}var t=qt.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var ts,Mo;function dc(){if(Mo)return ts;Mo=1,ts=j;function e(T){var k=this;this.next=null,this.entry=null,this.finish=function(){bt(k,T)}}var t;j.WritableState=x;var r={deprecate:lh},n=fc,i=Rt.Buffer,s=(typeof qt<"u"?qt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(T){return i.from(T)}function a(T){return i.isBuffer(T)||T instanceof s}var u=uc,h=hc,d=h.getHighWaterMark,p=br.codes,_=p.ERR_INVALID_ARG_TYPE,y=p.ERR_METHOD_NOT_IMPLEMENTED,I=p.ERR_MULTIPLE_CALLBACK,A=p.ERR_STREAM_CANNOT_PIPE,B=p.ERR_STREAM_DESTROYED,O=p.ERR_STREAM_NULL_VALUES,C=p.ERR_STREAM_WRITE_AFTER_END,v=p.ERR_UNKNOWN_ENCODING,g=u.errorOrDestroy;Re(j,n);function S(){}function x(T,k,F){t=t||$r(),T=T||{},typeof F!="boolean"&&(F=k instanceof t),this.objectMode=!!T.objectMode,F&&(this.objectMode=this.objectMode||!!T.writableObjectMode),this.highWaterMark=d(this,T,"writableHighWaterMark",F),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var G=T.decodeStrings===!1;this.decodeStrings=!G,this.defaultEncoding=T.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){fe(k,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=T.emitClose!==!1,this.autoDestroy=!!T.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}x.prototype.getBuffer=function(){for(var k=this.bufferedRequest,F=[];k;)F.push(k),k=k.next;return F},function(){try{Object.defineProperty(x.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var M;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(M=Function.prototype[Symbol.hasInstance],Object.defineProperty(j,Symbol.hasInstance,{value:function(k){return M.call(this,k)?!0:this!==j?!1:k&&k._writableState instanceof x}})):M=function(k){return k instanceof this};function j(T){t=t||$r();var k=this instanceof t;if(!k&&!M.call(j,this))return new j(T);this._writableState=new x(T,this,k),this.writable=!0,T&&(typeof T.write=="function"&&(this._write=T.write),typeof T.writev=="function"&&(this._writev=T.writev),typeof T.destroy=="function"&&(this._destroy=T.destroy),typeof T.final=="function"&&(this._final=T.final)),n.call(this)}j.prototype.pipe=function(){g(this,new A)};function R(T,k){var F=new C;g(T,F),process.nextTick(k,F)}function z(T,k,F,G){var Y;return F===null?Y=new O:typeof F!="string"&&!k.objectMode&&(Y=new _("chunk",["string","Buffer"],F)),Y?(g(T,Y),process.nextTick(G,Y),!1):!0}j.prototype.write=function(T,k,F){var G=this._writableState,Y=!1,b=!G.objectMode&&a(T);return b&&!i.isBuffer(T)&&(T=o(T)),typeof k=="function"&&(F=k,k=null),b?k="buffer":k||(k=G.defaultEncoding),typeof F!="function"&&(F=S),G.ending?R(this,F):(b||z(this,G,T,F))&&(G.pendingcb++,Y=U(this,G,b,T,k,F)),Y},j.prototype.cork=function(){this._writableState.corked++},j.prototype.uncork=function(){var T=this._writableState;T.corked&&(T.corked--,!T.writing&&!T.corked&&!T.bufferProcessing&&T.bufferedRequest&&ze(this,T))},j.prototype.setDefaultEncoding=function(k){if(typeof k=="string"&&(k=k.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((k+"").toLowerCase())>-1))throw new v(k);return this._writableState.defaultEncoding=k,this},Object.defineProperty(j.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function ee(T,k,F){return!T.objectMode&&T.decodeStrings!==!1&&typeof k=="string"&&(k=i.from(k,F)),k}Object.defineProperty(j.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function U(T,k,F,G,Y,b){if(!F){var w=ee(k,G,Y);G!==w&&(F=!0,Y="buffer",G=w)}var N=k.objectMode?1:G.length;k.length+=N;var $=k.length<k.highWaterMark;if($||(k.needDrain=!0),k.writing||k.corked){var me=k.lastBufferedRequest;k.lastBufferedRequest={chunk:G,encoding:Y,isBuf:F,callback:b,next:null},me?me.next=k.lastBufferedRequest:k.bufferedRequest=k.lastBufferedRequest,k.bufferedRequestCount+=1}else H(T,k,!1,N,G,Y,b);return $}function H(T,k,F,G,Y,b,w){k.writelen=G,k.writecb=w,k.writing=!0,k.sync=!0,k.destroyed?k.onwrite(new B("write")):F?T._writev(Y,k.onwrite):T._write(Y,b,k.onwrite),k.sync=!1}function V(T,k,F,G,Y){--k.pendingcb,F?(process.nextTick(Y,G),process.nextTick(qe,T,k),T._writableState.errorEmitted=!0,g(T,G)):(Y(G),T._writableState.errorEmitted=!0,g(T,G),qe(T,k))}function K(T){T.writing=!1,T.writecb=null,T.length-=T.writelen,T.writelen=0}function fe(T,k){var F=T._writableState,G=F.sync,Y=F.writecb;if(typeof Y!="function")throw new I;if(K(F),k)V(T,F,G,k,Y);else{var b=ot(F)||T.destroyed;!b&&!F.corked&&!F.bufferProcessing&&F.bufferedRequest&&ze(T,F),G?process.nextTick(ue,T,F,b,Y):ue(T,F,b,Y)}}function ue(T,k,F,G){F||rt(T,k),k.pendingcb--,G(),qe(T,k)}function rt(T,k){k.length===0&&k.needDrain&&(k.needDrain=!1,T.emit("drain"))}function ze(T,k){k.bufferProcessing=!0;var F=k.bufferedRequest;if(T._writev&&F&&F.next){var G=k.bufferedRequestCount,Y=new Array(G),b=k.corkedRequestsFree;b.entry=F;for(var w=0,N=!0;F;)Y[w]=F,F.isBuf||(N=!1),F=F.next,w+=1;Y.allBuffers=N,H(T,k,!0,k.length,Y,"",b.finish),k.pendingcb++,k.lastBufferedRequest=null,b.next?(k.corkedRequestsFree=b.next,b.next=null):k.corkedRequestsFree=new e(k),k.bufferedRequestCount=0}else{for(;F;){var $=F.chunk,me=F.encoding,X=F.callback,ne=k.objectMode?1:$.length;if(H(T,k,!1,ne,$,me,X),F=F.next,k.bufferedRequestCount--,k.writing)break}F===null&&(k.lastBufferedRequest=null)}k.bufferedRequest=F,k.bufferProcessing=!1}j.prototype._write=function(T,k,F){F(new y("_write()"))},j.prototype._writev=null,j.prototype.end=function(T,k,F){var G=this._writableState;return typeof T=="function"?(F=T,T=null,k=null):typeof k=="function"&&(F=k,k=null),T!=null&&this.write(T,k),G.corked&&(G.corked=1,this.uncork()),G.ending||Ct(this,G,F),this},Object.defineProperty(j.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function ot(T){return T.ending&&T.length===0&&T.bufferedRequest===null&&!T.finished&&!T.writing}function ye(T,k){T._final(function(F){k.pendingcb--,F&&g(T,F),k.prefinished=!0,T.emit("prefinish"),qe(T,k)})}function xe(T,k){!k.prefinished&&!k.finalCalled&&(typeof T._final=="function"&&!k.destroyed?(k.pendingcb++,k.finalCalled=!0,process.nextTick(ye,T,k)):(k.prefinished=!0,T.emit("prefinish")))}function qe(T,k){var F=ot(k);if(F&&(xe(T,k),k.pendingcb===0&&(k.finished=!0,T.emit("finish"),k.autoDestroy))){var G=T._readableState;(!G||G.autoDestroy&&G.endEmitted)&&T.destroy()}return F}function Ct(T,k,F){k.ending=!0,qe(T,k),F&&(k.finished?process.nextTick(F):T.once("finish",F)),k.ended=!0,T.writable=!1}function bt(T,k,F){var G=T.entry;for(T.entry=null;G;){var Y=G.callback;k.pendingcb--,Y(F),G=G.next}k.corkedRequestsFree.next=T}return Object.defineProperty(j.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(k){this._writableState&&(this._writableState.destroyed=k)}}),j.prototype.destroy=u.destroy,j.prototype._undestroy=u.undestroy,j.prototype._destroy=function(T,k){k(T)},ts}var rs,Do;function $r(){if(Do)return rs;Do=1;var e=Object.keys||function(h){var d=[];for(var p in h)d.push(p);return d};rs=o;var t=yc(),r=dc();Re(o,t);for(var n=e(r.prototype),i=0;i<n.length;i++){var s=n[i];o.prototype[s]||(o.prototype[s]=r.prototype[s])}function o(h){if(!(this instanceof o))return new o(h);t.call(this,h),r.call(this,h),this.allowHalfOpen=!0,h&&(h.readable===!1&&(this.readable=!1),h.writable===!1&&(this.writable=!1),h.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",a)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function a(){this._writableState.ended||process.nextTick(u,this)}function u(h){h.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(d){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=d,this._writableState.destroyed=d)}}),rs}var si={},Ys=We.Buffer,$o=Ys.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function dh(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function ph(e){var t=dh(e);if(typeof t!="string"&&(Ys.isEncoding===$o||!$o(e)))throw new Error("Unknown encoding: "+e);return t||e}si.StringDecoder=An;function An(e){this.encoding=ph(e);var t;switch(this.encoding){case"utf16le":this.text=_h,this.end=vh,t=4;break;case"utf8":this.fillLast=bh,t=4;break;case"base64":this.text=Eh,this.end=xh,t=3;break;default:this.write=Sh,this.end=Ah;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Ys.allocUnsafe(t)}An.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};An.prototype.end=gh;An.prototype.text=wh;An.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function ns(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function yh(e,t,r){var n=t.length-1;if(n<r)return 0;var i=ns(t[n]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--n<r||i===-2?0:(i=ns(t[n]),i>=0?(i>0&&(e.lastNeed=i-2),i):--n<r||i===-2?0:(i=ns(t[n]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function mh(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function bh(e){var t=this.lastTotal-this.lastNeed,r=mh(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function wh(e,t){var r=yh(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function gh(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function _h(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function vh(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function Eh(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function xh(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Sh(e){return e.toString(this.encoding)}function Ah(e){return e&&e.length?this.write(e):""}var jo=br.codes.ERR_STREAM_PREMATURE_CLOSE;function kh(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];e.apply(this,n)}}}function Th(){}function Bh(e){return e.setHeader&&typeof e.abort=="function"}function pc(e,t,r){if(typeof t=="function")return pc(e,null,t);t||(t={}),r=kh(r||Th);var n=t.readable||t.readable!==!1&&e.readable,i=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||a()},o=e._writableState&&e._writableState.finished,a=function(){i=!1,o=!0,n||r.call(e)},u=e._readableState&&e._readableState.endEmitted,h=function(){n=!1,u=!0,i||r.call(e)},d=function(I){r.call(e,I)},p=function(){var I;if(n&&!u)return(!e._readableState||!e._readableState.ended)&&(I=new jo),r.call(e,I);if(i&&!o)return(!e._writableState||!e._writableState.ended)&&(I=new jo),r.call(e,I)},_=function(){e.req.on("finish",a)};return Bh(e)?(e.on("complete",a),e.on("abort",p),e.req?_():e.on("request",_)):i&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",h),e.on("finish",a),t.error!==!1&&e.on("error",d),e.on("close",p),function(){e.removeListener("complete",a),e.removeListener("abort",p),e.removeListener("request",_),e.req&&e.req.removeListener("finish",a),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",a),e.removeListener("end",h),e.removeListener("error",d),e.removeListener("close",p)}}var Xs=pc,is,Go;function Ih(){if(Go)return is;Go=1;var e;function t(v,g,S){return g=r(g),g in v?Object.defineProperty(v,g,{value:S,enumerable:!0,configurable:!0,writable:!0}):v[g]=S,v}function r(v){var g=n(v,"string");return typeof g=="symbol"?g:String(g)}function n(v,g){if(typeof v!="object"||v===null)return v;var S=v[Symbol.toPrimitive];if(S!==void 0){var x=S.call(v,g||"default");if(typeof x!="object")return x;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(v)}var i=Xs,s=Symbol("lastResolve"),o=Symbol("lastReject"),a=Symbol("error"),u=Symbol("ended"),h=Symbol("lastPromise"),d=Symbol("handlePromise"),p=Symbol("stream");function _(v,g){return{value:v,done:g}}function y(v){var g=v[s];if(g!==null){var S=v[p].read();S!==null&&(v[h]=null,v[s]=null,v[o]=null,g(_(S,!1)))}}function I(v){process.nextTick(y,v)}function A(v,g){return function(S,x){v.then(function(){if(g[u]){S(_(void 0,!0));return}g[d](S,x)},x)}}var B=Object.getPrototypeOf(function(){}),O=Object.setPrototypeOf((e={get stream(){return this[p]},next:function(){var g=this,S=this[a];if(S!==null)return Promise.reject(S);if(this[u])return Promise.resolve(_(void 0,!0));if(this[p].destroyed)return new Promise(function(R,z){process.nextTick(function(){g[a]?z(g[a]):R(_(void 0,!0))})});var x=this[h],M;if(x)M=new Promise(A(x,this));else{var j=this[p].read();if(j!==null)return Promise.resolve(_(j,!1));M=new Promise(this[d])}return this[h]=M,M}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var g=this;return new Promise(function(S,x){g[p].destroy(null,function(M){if(M){x(M);return}S(_(void 0,!0))})})}),e),B),C=function(g){var S,x=Object.create(O,(S={},t(S,p,{value:g,writable:!0}),t(S,s,{value:null,writable:!0}),t(S,o,{value:null,writable:!0}),t(S,a,{value:null,writable:!0}),t(S,u,{value:g._readableState.endEmitted,writable:!0}),t(S,d,{value:function(j,R){var z=x[p].read();z?(x[h]=null,x[s]=null,x[o]=null,j(_(z,!1))):(x[s]=j,x[o]=R)},writable:!0}),S));return x[h]=null,i(g,function(M){if(M&&M.code!=="ERR_STREAM_PREMATURE_CLOSE"){var j=x[o];j!==null&&(x[h]=null,x[s]=null,x[o]=null,j(M)),x[a]=M;return}var R=x[s];R!==null&&(x[h]=null,x[s]=null,x[o]=null,R(_(void 0,!0))),x[u]=!0}),g.on("readable",I.bind(null,x)),x};return is=C,is}var ss,Vo;function Ph(){return Vo||(Vo=1,ss=function(){throw new Error("Readable.from is not available in the browser")}),ss}var os,Wo;function yc(){if(Wo)return os;Wo=1,os=R;var e;R.ReadableState=j,cc.EventEmitter;var t=function(w,N){return w.listeners(N).length},r=fc,n=Rt.Buffer,i=(typeof qt<"u"?qt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(b){return n.from(b)}function o(b){return n.isBuffer(b)||b instanceof i}var a=Ks,u;a&&a.debuglog?u=a.debuglog("stream"):u=function(){};var h=eh(),d=uc,p=hc,_=p.getHighWaterMark,y=br.codes,I=y.ERR_INVALID_ARG_TYPE,A=y.ERR_STREAM_PUSH_AFTER_EOF,B=y.ERR_METHOD_NOT_IMPLEMENTED,O=y.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,C,v,g;Re(R,r);var S=d.errorOrDestroy,x=["error","close","destroy","pause","resume"];function M(b,w,N){if(typeof b.prependListener=="function")return b.prependListener(w,N);!b._events||!b._events[w]?b.on(w,N):Array.isArray(b._events[w])?b._events[w].unshift(N):b._events[w]=[N,b._events[w]]}function j(b,w,N){e=e||$r(),b=b||{},typeof N!="boolean"&&(N=w instanceof e),this.objectMode=!!b.objectMode,N&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=_(this,b,"readableHighWaterMark",N),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(C||(C=si.StringDecoder),this.decoder=new C(b.encoding),this.encoding=b.encoding)}function R(b){if(e=e||$r(),!(this instanceof R))return new R(b);var w=this instanceof e;this._readableState=new j(b,this,w),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(R.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(w){this._readableState&&(this._readableState.destroyed=w)}}),R.prototype.destroy=d.destroy,R.prototype._undestroy=d.undestroy,R.prototype._destroy=function(b,w){w(b)},R.prototype.push=function(b,w){var N=this._readableState,$;return N.objectMode?$=!0:typeof b=="string"&&(w=w||N.defaultEncoding,w!==N.encoding&&(b=n.from(b,w),w=""),$=!0),z(this,b,w,!1,$)},R.prototype.unshift=function(b){return z(this,b,null,!0,!1)};function z(b,w,N,$,me){u("readableAddChunk",w);var X=b._readableState;if(w===null)X.reading=!1,fe(b,X);else{var ne;if(me||(ne=U(X,w)),ne)S(b,ne);else if(X.objectMode||w&&w.length>0)if(typeof w!="string"&&!X.objectMode&&Object.getPrototypeOf(w)!==n.prototype&&(w=s(w)),$)X.endEmitted?S(b,new O):ee(b,X,w,!0);else if(X.ended)S(b,new A);else{if(X.destroyed)return!1;X.reading=!1,X.decoder&&!N?(w=X.decoder.write(w),X.objectMode||w.length!==0?ee(b,X,w,!1):ze(b,X)):ee(b,X,w,!1)}else $||(X.reading=!1,ze(b,X))}return!X.ended&&(X.length<X.highWaterMark||X.length===0)}function ee(b,w,N,$){w.flowing&&w.length===0&&!w.sync?(w.awaitDrain=0,b.emit("data",N)):(w.length+=w.objectMode?1:N.length,$?w.buffer.unshift(N):w.buffer.push(N),w.needReadable&&ue(b)),ze(b,w)}function U(b,w){var N;return!o(w)&&typeof w!="string"&&w!==void 0&&!b.objectMode&&(N=new I("chunk",["string","Buffer","Uint8Array"],w)),N}R.prototype.isPaused=function(){return this._readableState.flowing===!1},R.prototype.setEncoding=function(b){C||(C=si.StringDecoder);var w=new C(b);this._readableState.decoder=w,this._readableState.encoding=this._readableState.decoder.encoding;for(var N=this._readableState.buffer.head,$="";N!==null;)$+=w.write(N.data),N=N.next;return this._readableState.buffer.clear(),$!==""&&this._readableState.buffer.push($),this._readableState.length=$.length,this};var H=1073741824;function V(b){return b>=H?b=H:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function K(b,w){return b<=0||w.length===0&&w.ended?0:w.objectMode?1:b!==b?w.flowing&&w.length?w.buffer.head.data.length:w.length:(b>w.highWaterMark&&(w.highWaterMark=V(b)),b<=w.length?b:w.ended?w.length:(w.needReadable=!0,0))}R.prototype.read=function(b){u("read",b),b=parseInt(b,10);var w=this._readableState,N=b;if(b!==0&&(w.emittedReadable=!1),b===0&&w.needReadable&&((w.highWaterMark!==0?w.length>=w.highWaterMark:w.length>0)||w.ended))return u("read: emitReadable",w.length,w.ended),w.length===0&&w.ended?F(this):ue(this),null;if(b=K(b,w),b===0&&w.ended)return w.length===0&&F(this),null;var $=w.needReadable;u("need readable",$),(w.length===0||w.length-b<w.highWaterMark)&&($=!0,u("length less than watermark",$)),w.ended||w.reading?($=!1,u("reading or ended",$)):$&&(u("do read"),w.reading=!0,w.sync=!0,w.length===0&&(w.needReadable=!0),this._read(w.highWaterMark),w.sync=!1,w.reading||(b=K(N,w)));var me;return b>0?me=k(b,w):me=null,me===null?(w.needReadable=w.length<=w.highWaterMark,b=0):(w.length-=b,w.awaitDrain=0),w.length===0&&(w.ended||(w.needReadable=!0),N!==b&&w.ended&&F(this)),me!==null&&this.emit("data",me),me};function fe(b,w){if(u("onEofChunk"),!w.ended){if(w.decoder){var N=w.decoder.end();N&&N.length&&(w.buffer.push(N),w.length+=w.objectMode?1:N.length)}w.ended=!0,w.sync?ue(b):(w.needReadable=!1,w.emittedReadable||(w.emittedReadable=!0,rt(b)))}}function ue(b){var w=b._readableState;u("emitReadable",w.needReadable,w.emittedReadable),w.needReadable=!1,w.emittedReadable||(u("emitReadable",w.flowing),w.emittedReadable=!0,process.nextTick(rt,b))}function rt(b){var w=b._readableState;u("emitReadable_",w.destroyed,w.length,w.ended),!w.destroyed&&(w.length||w.ended)&&(b.emit("readable"),w.emittedReadable=!1),w.needReadable=!w.flowing&&!w.ended&&w.length<=w.highWaterMark,T(b)}function ze(b,w){w.readingMore||(w.readingMore=!0,process.nextTick(ot,b,w))}function ot(b,w){for(;!w.reading&&!w.ended&&(w.length<w.highWaterMark||w.flowing&&w.length===0);){var N=w.length;if(u("maybeReadMore read 0"),b.read(0),N===w.length)break}w.readingMore=!1}R.prototype._read=function(b){S(this,new B("_read()"))},R.prototype.pipe=function(b,w){var N=this,$=this._readableState;switch($.pipesCount){case 0:$.pipes=b;break;case 1:$.pipes=[$.pipes,b];break;default:$.pipes.push(b);break}$.pipesCount+=1,u("pipe count=%d opts=%j",$.pipesCount,w);var me=(!w||w.end!==!1)&&b!==process.stdout&&b!==process.stderr,X=me?Ut:er;$.endEmitted?process.nextTick(X):N.once("end",X),b.on("unpipe",ne);function ne(l,c){u("onunpipe"),l===N&&c&&c.hasUnpiped===!1&&(c.hasUnpiped=!0,_r())}function Ut(){u("onend"),b.end()}var gr=ye(N);b.on("drain",gr);var zr=!1;function _r(){u("cleanup"),b.removeListener("close",qr),b.removeListener("finish",Je),b.removeListener("drain",gr),b.removeListener("error",Zt),b.removeListener("unpipe",ne),N.removeListener("end",Ut),N.removeListener("end",er),N.removeListener("data",Ke),zr=!0,$.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&gr()}N.on("data",Ke);function Ke(l){u("ondata");var c=b.write(l);u("dest.write",c),c===!1&&(($.pipesCount===1&&$.pipes===b||$.pipesCount>1&&Y($.pipes,b)!==-1)&&!zr&&(u("false write response, pause",$.awaitDrain),$.awaitDrain++),N.pause())}function Zt(l){u("onerror",l),er(),b.removeListener("error",Zt),t(b,"error")===0&&S(b,l)}M(b,"error",Zt);function qr(){b.removeListener("finish",Je),er()}b.once("close",qr);function Je(){u("onfinish"),b.removeListener("close",qr),er()}b.once("finish",Je);function er(){u("unpipe"),N.unpipe(b)}return b.emit("pipe",N),$.flowing||(u("pipe resume"),N.resume()),b};function ye(b){return function(){var N=b._readableState;u("pipeOnDrain",N.awaitDrain),N.awaitDrain&&N.awaitDrain--,N.awaitDrain===0&&t(b,"data")&&(N.flowing=!0,T(b))}}R.prototype.unpipe=function(b){var w=this._readableState,N={hasUnpiped:!1};if(w.pipesCount===0)return this;if(w.pipesCount===1)return b&&b!==w.pipes?this:(b||(b=w.pipes),w.pipes=null,w.pipesCount=0,w.flowing=!1,b&&b.emit("unpipe",this,N),this);if(!b){var $=w.pipes,me=w.pipesCount;w.pipes=null,w.pipesCount=0,w.flowing=!1;for(var X=0;X<me;X++)$[X].emit("unpipe",this,{hasUnpiped:!1});return this}var ne=Y(w.pipes,b);return ne===-1?this:(w.pipes.splice(ne,1),w.pipesCount-=1,w.pipesCount===1&&(w.pipes=w.pipes[0]),b.emit("unpipe",this,N),this)},R.prototype.on=function(b,w){var N=r.prototype.on.call(this,b,w),$=this._readableState;return b==="data"?($.readableListening=this.listenerCount("readable")>0,$.flowing!==!1&&this.resume()):b==="readable"&&!$.endEmitted&&!$.readableListening&&($.readableListening=$.needReadable=!0,$.flowing=!1,$.emittedReadable=!1,u("on readable",$.length,$.reading),$.length?ue(this):$.reading||process.nextTick(qe,this)),N},R.prototype.addListener=R.prototype.on,R.prototype.removeListener=function(b,w){var N=r.prototype.removeListener.call(this,b,w);return b==="readable"&&process.nextTick(xe,this),N},R.prototype.removeAllListeners=function(b){var w=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&process.nextTick(xe,this),w};function xe(b){var w=b._readableState;w.readableListening=b.listenerCount("readable")>0,w.resumeScheduled&&!w.paused?w.flowing=!0:b.listenerCount("data")>0&&b.resume()}function qe(b){u("readable nexttick read 0"),b.read(0)}R.prototype.resume=function(){var b=this._readableState;return b.flowing||(u("resume"),b.flowing=!b.readableListening,Ct(this,b)),b.paused=!1,this};function Ct(b,w){w.resumeScheduled||(w.resumeScheduled=!0,process.nextTick(bt,b,w))}function bt(b,w){u("resume",w.reading),w.reading||b.read(0),w.resumeScheduled=!1,b.emit("resume"),T(b),w.flowing&&!w.reading&&b.read(0)}R.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function T(b){var w=b._readableState;for(u("flow",w.flowing);w.flowing&&b.read()!==null;);}R.prototype.wrap=function(b){var w=this,N=this._readableState,$=!1;b.on("end",function(){if(u("wrapped end"),N.decoder&&!N.ended){var ne=N.decoder.end();ne&&ne.length&&w.push(ne)}w.push(null)}),b.on("data",function(ne){if(u("wrapped data"),N.decoder&&(ne=N.decoder.write(ne)),!(N.objectMode&&ne==null)&&!(!N.objectMode&&(!ne||!ne.length))){var Ut=w.push(ne);Ut||($=!0,b.pause())}});for(var me in b)this[me]===void 0&&typeof b[me]=="function"&&(this[me]=function(Ut){return function(){return b[Ut].apply(b,arguments)}}(me));for(var X=0;X<x.length;X++)b.on(x[X],this.emit.bind(this,x[X]));return this._read=function(ne){u("wrapped _read",ne),$&&($=!1,b.resume())},this},typeof Symbol=="function"&&(R.prototype[Symbol.asyncIterator]=function(){return v===void 0&&(v=Ih()),v(this)}),Object.defineProperty(R.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(R.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(R.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(w){this._readableState&&(this._readableState.flowing=w)}}),R._fromList=k,Object.defineProperty(R.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function k(b,w){if(w.length===0)return null;var N;return w.objectMode?N=w.buffer.shift():!b||b>=w.length?(w.decoder?N=w.buffer.join(""):w.buffer.length===1?N=w.buffer.first():N=w.buffer.concat(w.length),w.buffer.clear()):N=w.buffer.consume(b,w.decoder),N}function F(b){var w=b._readableState;u("endReadable",w.endEmitted),w.endEmitted||(w.ended=!0,process.nextTick(G,w,b))}function G(b,w){if(u("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,w.readable=!1,w.emit("end"),b.autoDestroy)){var N=w._writableState;(!N||N.autoDestroy&&N.finished)&&w.destroy()}}typeof Symbol=="function"&&(R.from=function(b,w){return g===void 0&&(g=Ph()),g(R,b,w)});function Y(b,w){for(var N=0,$=b.length;N<$;N++)if(b[N]===w)return N;return-1}return os}var mc=Ot,xi=br.codes,Oh=xi.ERR_METHOD_NOT_IMPLEMENTED,Rh=xi.ERR_MULTIPLE_CALLBACK,Ch=xi.ERR_TRANSFORM_ALREADY_TRANSFORMING,Uh=xi.ERR_TRANSFORM_WITH_LENGTH_0,Si=$r();Re(Ot,Si);function Lh(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new Rh);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function Ot(e){if(!(this instanceof Ot))return new Ot(e);Si.call(this,e),this._transformState={afterTransform:Lh.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Nh)}function Nh(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){zo(e,t,r)}):zo(this,null,null)}Ot.prototype.push=function(e,t){return this._transformState.needTransform=!1,Si.prototype.push.call(this,e,t)};Ot.prototype._transform=function(e,t,r){r(new Oh("_transform()"))};Ot.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}};Ot.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Ot.prototype._destroy=function(e,t){Si.prototype._destroy.call(this,e,function(r){t(r)})};function zo(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new Uh;if(e._transformState.transforming)throw new Ch;return e.push(null)}var Fh=gn,bc=mc;Re(gn,bc);function gn(e){if(!(this instanceof gn))return new gn(e);bc.call(this,e)}gn.prototype._transform=function(e,t,r){r(null,e)};var as;function Hh(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var wc=br.codes,Mh=wc.ERR_MISSING_ARGS,Dh=wc.ERR_STREAM_DESTROYED;function qo(e){if(e)throw e}function $h(e){return e.setHeader&&typeof e.abort=="function"}function jh(e,t,r,n){n=Hh(n);var i=!1;e.on("close",function(){i=!0}),as===void 0&&(as=Xs),as(e,{readable:t,writable:r},function(o){if(o)return n(o);i=!0,n()});var s=!1;return function(o){if(!i&&!s){if(s=!0,$h(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(o||new Dh("pipe"))}}}function Ko(e){e()}function Gh(e,t){return e.pipe(t)}function Vh(e){return!e.length||typeof e[e.length-1]!="function"?qo:e.pop()}function Wh(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=Vh(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Mh("streams");var i,s=t.map(function(o,a){var u=a<t.length-1,h=a>0;return jh(o,u,h,function(d){i||(i=d),d&&s.forEach(Ko),!u&&(s.forEach(Ko),n(i))})});return t.reduce(Gh)}var zh=Wh;(function(e,t){t=e.exports=yc(),t.Stream=t,t.Readable=t,t.Writable=dc(),t.Duplex=$r(),t.Transform=mc,t.PassThrough=Fh,t.finished=Xs,t.pipeline=zh})(xs,xs.exports);var gc=xs.exports,oi=We.Buffer,_c=gc.Transform,qh=Re;function Kh(e,t){if(!oi.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function Xt(e){_c.call(this),this._block=oi.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}qh(Xt,_c);Xt.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};Xt.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};Xt.prototype.update=function(e,t){if(Kh(e,"Data"),this._finalized)throw new Error("Digest already called");oi.isBuffer(e)||(e=oi.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)r[i++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s)this._length[s]+=o,o=this._length[s]/4294967296|0,o>0&&(this._length[s]-=4294967296*o);return this};Xt.prototype._update=function(){throw new Error("_update is not implemented")};Xt.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};Xt.prototype._digest=function(){throw new Error("_digest is not implemented")};var Yh=Xt,Xh=Re,vc=Yh,Jh=We.Buffer,Qh=new Array(16);function Ai(){vc.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Xh(Ai,vc);Ai.prototype._update=function(){for(var e=Qh,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a,n=this._b,i=this._c,s=this._d;r=Ce(r,n,i,s,e[0],3614090360,7),s=Ce(s,r,n,i,e[1],3905402710,12),i=Ce(i,s,r,n,e[2],606105819,17),n=Ce(n,i,s,r,e[3],3250441966,22),r=Ce(r,n,i,s,e[4],4118548399,7),s=Ce(s,r,n,i,e[5],1200080426,12),i=Ce(i,s,r,n,e[6],2821735955,17),n=Ce(n,i,s,r,e[7],4249261313,22),r=Ce(r,n,i,s,e[8],1770035416,7),s=Ce(s,r,n,i,e[9],2336552879,12),i=Ce(i,s,r,n,e[10],4294925233,17),n=Ce(n,i,s,r,e[11],2304563134,22),r=Ce(r,n,i,s,e[12],1804603682,7),s=Ce(s,r,n,i,e[13],4254626195,12),i=Ce(i,s,r,n,e[14],2792965006,17),n=Ce(n,i,s,r,e[15],1236535329,22),r=Ue(r,n,i,s,e[1],4129170786,5),s=Ue(s,r,n,i,e[6],3225465664,9),i=Ue(i,s,r,n,e[11],643717713,14),n=Ue(n,i,s,r,e[0],3921069994,20),r=Ue(r,n,i,s,e[5],3593408605,5),s=Ue(s,r,n,i,e[10],38016083,9),i=Ue(i,s,r,n,e[15],3634488961,14),n=Ue(n,i,s,r,e[4],3889429448,20),r=Ue(r,n,i,s,e[9],568446438,5),s=Ue(s,r,n,i,e[14],3275163606,9),i=Ue(i,s,r,n,e[3],4107603335,14),n=Ue(n,i,s,r,e[8],1163531501,20),r=Ue(r,n,i,s,e[13],2850285829,5),s=Ue(s,r,n,i,e[2],4243563512,9),i=Ue(i,s,r,n,e[7],1735328473,14),n=Ue(n,i,s,r,e[12],2368359562,20),r=Le(r,n,i,s,e[5],4294588738,4),s=Le(s,r,n,i,e[8],2272392833,11),i=Le(i,s,r,n,e[11],1839030562,16),n=Le(n,i,s,r,e[14],4259657740,23),r=Le(r,n,i,s,e[1],2763975236,4),s=Le(s,r,n,i,e[4],1272893353,11),i=Le(i,s,r,n,e[7],4139469664,16),n=Le(n,i,s,r,e[10],3200236656,23),r=Le(r,n,i,s,e[13],681279174,4),s=Le(s,r,n,i,e[0],3936430074,11),i=Le(i,s,r,n,e[3],3572445317,16),n=Le(n,i,s,r,e[6],76029189,23),r=Le(r,n,i,s,e[9],3654602809,4),s=Le(s,r,n,i,e[12],3873151461,11),i=Le(i,s,r,n,e[15],530742520,16),n=Le(n,i,s,r,e[2],3299628645,23),r=Ne(r,n,i,s,e[0],4096336452,6),s=Ne(s,r,n,i,e[7],1126891415,10),i=Ne(i,s,r,n,e[14],2878612391,15),n=Ne(n,i,s,r,e[5],4237533241,21),r=Ne(r,n,i,s,e[12],1700485571,6),s=Ne(s,r,n,i,e[3],2399980690,10),i=Ne(i,s,r,n,e[10],4293915773,15),n=Ne(n,i,s,r,e[1],2240044497,21),r=Ne(r,n,i,s,e[8],1873313359,6),s=Ne(s,r,n,i,e[15],4264355552,10),i=Ne(i,s,r,n,e[6],2734768916,15),n=Ne(n,i,s,r,e[13],1309151649,21),r=Ne(r,n,i,s,e[4],4149444226,6),s=Ne(s,r,n,i,e[11],3174756917,10),i=Ne(i,s,r,n,e[2],718787259,15),n=Ne(n,i,s,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0};Ai.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=Jh.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e};function ki(e,t){return e<<t|e>>>32-t}function Ce(e,t,r,n,i,s,o){return ki(e+(t&r|~t&n)+i+s|0,o)+t|0}function Ue(e,t,r,n,i,s,o){return ki(e+(t&n|r&~n)+i+s|0,o)+t|0}function Le(e,t,r,n,i,s,o){return ki(e+(t^r^n)+i+s|0,o)+t|0}function Ne(e,t,r,n,i,s,o){return ki(e+(r^(t|~n))+i+s|0,o)+t|0}var Zh=Ai,ai=We.Buffer,Ec=gc.Transform,ed=Re;function td(e,t){if(!ai.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function Jt(e){Ec.call(this),this._block=ai.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}ed(Jt,Ec);Jt.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};Jt.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};Jt.prototype.update=function(e,t){if(td(e,"Data"),this._finalized)throw new Error("Digest already called");ai.isBuffer(e)||(e=ai.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)r[i++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s)this._length[s]+=o,o=this._length[s]/4294967296|0,o>0&&(this._length[s]-=4294967296*o);return this};Jt.prototype._update=function(){throw new Error("_update is not implemented")};Jt.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};Jt.prototype._digest=function(){throw new Error("_digest is not implemented")};var rd=Jt,cs=Rt.Buffer,nd=Re,xc=rd,id=new Array(16),Zr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],en=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],tn=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],rn=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],nn=[0,1518500249,1859775393,2400959708,2840853838],sn=[1352829926,1548603684,1836072691,2053994217,0];function Ti(){xc.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}nd(Ti,xc);Ti.prototype._update=function(){for(var e=id,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);for(var r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._a|0,u=this._b|0,h=this._c|0,d=this._d|0,p=this._e|0,_=0;_<80;_+=1){var y,I;_<16?(y=Yo(r,n,i,s,o,e[Zr[_]],nn[0],tn[_]),I=Zo(a,u,h,d,p,e[en[_]],sn[0],rn[_])):_<32?(y=Xo(r,n,i,s,o,e[Zr[_]],nn[1],tn[_]),I=Qo(a,u,h,d,p,e[en[_]],sn[1],rn[_])):_<48?(y=Jo(r,n,i,s,o,e[Zr[_]],nn[2],tn[_]),I=Jo(a,u,h,d,p,e[en[_]],sn[2],rn[_])):_<64?(y=Qo(r,n,i,s,o,e[Zr[_]],nn[3],tn[_]),I=Xo(a,u,h,d,p,e[en[_]],sn[3],rn[_])):(y=Zo(r,n,i,s,o,e[Zr[_]],nn[4],tn[_]),I=Yo(a,u,h,d,p,e[en[_]],sn[4],rn[_])),r=o,o=s,s=ur(i,10),i=n,n=y,a=p,p=d,d=ur(h,10),h=u,u=I}var A=this._b+i+d|0;this._b=this._c+s+p|0,this._c=this._d+o+a|0,this._d=this._e+r+u|0,this._e=this._a+n+h|0,this._a=A};Ti.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=cs.alloc?cs.alloc(20):new cs(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function ur(e,t){return e<<t|e>>>32-t}function Yo(e,t,r,n,i,s,o,a){return ur(e+(t^r^n)+s+o|0,a)+i|0}function Xo(e,t,r,n,i,s,o,a){return ur(e+(t&r|~t&n)+s+o|0,a)+i|0}function Jo(e,t,r,n,i,s,o,a){return ur(e+((t|~r)^n)+s+o|0,a)+i|0}function Qo(e,t,r,n,i,s,o,a){return ur(e+(t&n|r&~n)+s+o|0,a)+i|0}function Zo(e,t,r,n,i,s,o,a){return ur(e+(t^(r|~n))+s+o|0,a)+i|0}var sd=Ti,Sc={exports:{}},Ac=We.Buffer;function Bi(e,t){this._block=Ac.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Bi.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=Ac.from(e,t));for(var r=this._block,n=this._blockSize,i=e.length,s=this._len,o=0;o<i;){for(var a=s%n,u=Math.min(i-o,n-a),h=0;h<u;h++)r[a+h]=e[o+h];s+=u,o+=u,s%n===0&&this._update(r)}return this._len+=i,this};Bi.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s};Bi.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var Gr=Bi,od=Re,kc=Gr,ad=We.Buffer,cd=[1518500249,1859775393,-1894007588,-899497514],fd=new Array(80);function kn(){this.init(),this._w=fd,kc.call(this,64,56)}od(kn,kc);kn.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function ud(e){return e<<5|e>>>27}function ld(e){return e<<30|e>>>2}function hd(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}kn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)t[a]=e.readInt32BE(a*4);for(;a<80;++a)t[a]=t[a-3]^t[a-8]^t[a-14]^t[a-16];for(var u=0;u<80;++u){var h=~~(u/20),d=ud(r)+hd(h,n,i,s)+o+t[u]+cd[h]|0;o=s,s=i,i=ld(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};kn.prototype._hash=function(){var e=ad.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var dd=kn,pd=Re,Tc=Gr,yd=We.Buffer,md=[1518500249,1859775393,-1894007588,-899497514],bd=new Array(80);function Tn(){this.init(),this._w=bd,Tc.call(this,64,56)}pd(Tn,Tc);Tn.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function wd(e){return e<<1|e>>>31}function gd(e){return e<<5|e>>>27}function _d(e){return e<<30|e>>>2}function vd(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}Tn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)t[a]=e.readInt32BE(a*4);for(;a<80;++a)t[a]=wd(t[a-3]^t[a-8]^t[a-14]^t[a-16]);for(var u=0;u<80;++u){var h=~~(u/20),d=gd(r)+vd(h,n,i,s)+o+t[u]+md[h]|0;o=s,s=i,i=_d(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};Tn.prototype._hash=function(){var e=yd.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var Ed=Tn,xd=Re,Bc=Gr,Sd=We.Buffer,Ad=[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],kd=new Array(64);function Bn(){this.init(),this._w=kd,Bc.call(this,64,56)}xd(Bn,Bc);Bn.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function Td(e,t,r){return r^e&(t^r)}function Bd(e,t,r){return e&t|r&(e|t)}function Id(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function Pd(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function Od(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function Rd(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}Bn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._f|0,u=this._g|0,h=this._h|0,d=0;d<16;++d)t[d]=e.readInt32BE(d*4);for(;d<64;++d)t[d]=Rd(t[d-2])+t[d-7]+Od(t[d-15])+t[d-16]|0;for(var p=0;p<64;++p){var _=h+Pd(o)+Td(o,a,u)+Ad[p]+t[p]|0,y=Id(r)+Bd(r,n,i)|0;h=u,u=a,a=o,o=s+_|0,s=i,i=n,n=r,r=_+y|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0,this._f=a+this._f|0,this._g=u+this._g|0,this._h=h+this._h|0};Bn.prototype._hash=function(){var e=Sd.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};var Ic=Bn,Cd=Re,Ud=Ic,Ld=Gr,Nd=We.Buffer,Fd=new Array(64);function Ii(){this.init(),this._w=Fd,Ld.call(this,64,56)}Cd(Ii,Ud);Ii.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Ii.prototype._hash=function(){var e=Nd.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};var Hd=Ii,Md=Re,Pc=Gr,Dd=We.Buffer,ea=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],$d=new Array(160);function In(){this.init(),this._w=$d,Pc.call(this,128,112)}Md(In,Pc);In.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function ta(e,t,r){return r^e&(t^r)}function ra(e,t,r){return e&t|r&(e|t)}function na(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function ia(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function jd(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function Gd(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function Vd(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function Wd(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function Be(e,t){return e>>>0<t>>>0?1:0}In.prototype._update=function(e){for(var t=this._w,r=this._ah|0,n=this._bh|0,i=this._ch|0,s=this._dh|0,o=this._eh|0,a=this._fh|0,u=this._gh|0,h=this._hh|0,d=this._al|0,p=this._bl|0,_=this._cl|0,y=this._dl|0,I=this._el|0,A=this._fl|0,B=this._gl|0,O=this._hl|0,C=0;C<32;C+=2)t[C]=e.readInt32BE(C*4),t[C+1]=e.readInt32BE(C*4+4);for(;C<160;C+=2){var v=t[C-30],g=t[C-15*2+1],S=jd(v,g),x=Gd(g,v);v=t[C-2*2],g=t[C-2*2+1];var M=Vd(v,g),j=Wd(g,v),R=t[C-7*2],z=t[C-7*2+1],ee=t[C-16*2],U=t[C-16*2+1],H=x+z|0,V=S+R+Be(H,x)|0;H=H+j|0,V=V+M+Be(H,j)|0,H=H+U|0,V=V+ee+Be(H,U)|0,t[C]=V,t[C+1]=H}for(var K=0;K<160;K+=2){V=t[K],H=t[K+1];var fe=ra(r,n,i),ue=ra(d,p,_),rt=na(r,d),ze=na(d,r),ot=ia(o,I),ye=ia(I,o),xe=ea[K],qe=ea[K+1],Ct=ta(o,a,u),bt=ta(I,A,B),T=O+ye|0,k=h+ot+Be(T,O)|0;T=T+bt|0,k=k+Ct+Be(T,bt)|0,T=T+qe|0,k=k+xe+Be(T,qe)|0,T=T+H|0,k=k+V+Be(T,H)|0;var F=ze+ue|0,G=rt+fe+Be(F,ze)|0;h=u,O=B,u=a,B=A,a=o,A=I,I=y+T|0,o=s+k+Be(I,y)|0,s=i,y=_,i=n,_=p,n=r,p=d,d=T+F|0,r=k+G+Be(d,T)|0}this._al=this._al+d|0,this._bl=this._bl+p|0,this._cl=this._cl+_|0,this._dl=this._dl+y|0,this._el=this._el+I|0,this._fl=this._fl+A|0,this._gl=this._gl+B|0,this._hl=this._hl+O|0,this._ah=this._ah+r+Be(this._al,d)|0,this._bh=this._bh+n+Be(this._bl,p)|0,this._ch=this._ch+i+Be(this._cl,_)|0,this._dh=this._dh+s+Be(this._dl,y)|0,this._eh=this._eh+o+Be(this._el,I)|0,this._fh=this._fh+a+Be(this._fl,A)|0,this._gh=this._gh+u+Be(this._gl,B)|0,this._hh=this._hh+h+Be(this._hl,O)|0};In.prototype._hash=function(){var e=Dd.allocUnsafe(64);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e};var Oc=In,zd=Re,qd=Oc,Kd=Gr,Yd=We.Buffer,Xd=new Array(160);function Pi(){this.init(),this._w=Xd,Kd.call(this,128,112)}zd(Pi,qd);Pi.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};Pi.prototype._hash=function(){var e=Yd.allocUnsafe(48);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e};var Jd=Pi,wr=Sc.exports=function(t){t=t.toLowerCase();var r=wr[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};wr.sha=dd;wr.sha1=Ed;wr.sha224=Hd;wr.sha256=Ic;wr.sha384=Jd;wr.sha512=Oc;var Qd=Sc.exports,Rc=We.Buffer,Cc=Ks.Transform,Zd=si.StringDecoder,e0=Re;function st(e){Cc.call(this),this.hashMode=typeof e=="string",this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}e0(st,Cc);st.prototype.update=function(e,t,r){typeof e=="string"&&(e=Rc.from(e,t));var n=this._update(e);return this.hashMode?this:(r&&(n=this._toString(n,r)),n)};st.prototype.setAutoPadding=function(){};st.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};st.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};st.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};st.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(i){n=i}finally{r(n)}};st.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(r){t=r}e(t)};st.prototype._finalOrDigest=function(e){var t=this.__final()||Rc.alloc(0);return e&&(t=this._toString(t,e,!0)),t};st.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new Zd(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n};var t0=st,r0=Re,n0=Zh,i0=sd,s0=Qd,Uc=t0;function Oi(e){Uc.call(this,"digest"),this._hash=e}r0(Oi,Uc);Oi.prototype._update=function(e){this._hash.update(e)};Oi.prototype._final=function(){return this._hash.digest()};var o0=function(t){return t=t.toLowerCase(),t==="md5"?new n0:t==="rmd160"||t==="ripemd160"?new i0:new Oi(s0(t))},jn=We.Buffer;function a0(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var n=0;n<e.length;n++){var i=e.charAt(n),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=n}var o=e.length,a=e.charAt(0),u=Math.log(o)/Math.log(256),h=Math.log(256)/Math.log(o);function d(y){if((Array.isArray(y)||y instanceof Uint8Array)&&(y=jn.from(y)),!jn.isBuffer(y))throw new TypeError("Expected Buffer");if(y.length===0)return"";for(var I=0,A=0,B=0,O=y.length;B!==O&&y[B]===0;)B++,I++;for(var C=(O-B)*h+1>>>0,v=new Uint8Array(C);B!==O;){for(var g=y[B],S=0,x=C-1;(g!==0||S<A)&&x!==-1;x--,S++)g+=256*v[x]>>>0,v[x]=g%o>>>0,g=g/o>>>0;if(g!==0)throw new Error("Non-zero carry");A=S,B++}for(var M=C-A;M!==C&&v[M]===0;)M++;for(var j=a.repeat(I);M<C;++M)j+=e.charAt(v[M]);return j}function p(y){if(typeof y!="string")throw new TypeError("Expected String");if(y.length===0)return jn.alloc(0);for(var I=0,A=0,B=0;y[I]===a;)A++,I++;for(var O=(y.length-I)*u+1>>>0,C=new Uint8Array(O);I<y.length;){var v=t[y.charCodeAt(I)];if(v===255)return;for(var g=0,S=O-1;(v!==0||g<B)&&S!==-1;S--,g++)v+=o*C[S]>>>0,C[S]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");B=g,I++}for(var x=O-B;x!==O&&C[x]===0;)x++;var M=jn.allocUnsafe(A+(O-x));M.fill(0,0,A);for(var j=A;x!==O;)M[j++]=C[x++];return M}function _(y){var I=p(y);if(I)return I;throw new Error("Non-base"+o+" character")}return{encode:d,decodeUnsafe:p,decode:_}}var c0=a0,f0=c0,u0="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",l0=f0(u0),fs=l0,h0=We.Buffer,d0=function(e){function t(s){var o=e(s);return fs.encode(h0.concat([s,o],s.length+4))}function r(s){var o=s.slice(0,-4),a=s.slice(-4),u=e(o);if(!(a[0]^u[0]|a[1]^u[1]|a[2]^u[2]|a[3]^u[3]))return o}function n(s){var o=fs.decodeUnsafe(s);if(o)return r(o)}function i(s){var o=fs.decode(s),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:t,decode:i,decodeUnsafe:n}},sa=o0,p0=d0;function y0(e){var t=sa("sha256").update(e).digest();return sa("sha256").update(t).digest()}var m0=p0(y0),As=m0;function Lc(e,t){if(t!==void 0&&e[0]!==t)throw new Error("Invalid network version");if(e.length===33)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(e.length!==34)throw new Error("Invalid WIF length");if(e[33]!==1)throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function ks(e,t,r){var n=new Buffer(r?34:33);return n.writeUInt8(e,0),t.copy(n,1),r&&(n[33]=1),n}function b0(e,t){return Lc(As.decode(e),t)}function w0(e,t,r){return typeof e=="number"?As.encode(ks(e,t,r)):As.encode(ks(e.version,e.privateKey,e.compressed))}var g0={decode:b0,decodeRaw:Lc,encode:w0,encodeRaw:ks},Ri={};Object.defineProperty(Ri,"__esModule",{value:!0});Ri.testEcc=void 0;const W=e=>Buffer.from(e,"hex");function _0(e){he(e.isPoint(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(!e.isPoint(W("030000000000000000000000000000000000000000000000000000000000000005"))),he(e.isPrivate(W("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))),he(!e.isPrivate(W("0000000000000000000000000000000000000000000000000000000000000000"))),he(!e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"))),he(!e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142"))),he(Buffer.from(e.privateAdd(W("0000000000000000000000000000000000000000000000000000000000000001"),W("0000000000000000000000000000000000000000000000000000000000000000"))).equals(W("0000000000000000000000000000000000000000000000000000000000000001"))),he(e.privateAdd(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e"),W("0000000000000000000000000000000000000000000000000000000000000003"))===null),he(Buffer.from(e.privateAdd(W("e211078564db65c3ce7704f08262b1f38f1ef412ad15b5ac2d76657a63b2c500"),W("b51fbb69051255d1becbd683de5848242a89c229348dd72896a87ada94ae8665"))).equals(W("9730c2ee69edbb958d42db7460bafa18fef9d955325aec99044c81c8282b0a24"))),he(Buffer.from(e.privateNegate(W("0000000000000000000000000000000000000000000000000000000000000001"))).equals(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))),he(Buffer.from(e.privateNegate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e"))).equals(W("0000000000000000000000000000000000000000000000000000000000000003"))),he(Buffer.from(e.privateNegate(W("b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af"))).equals(W("4eede1bf775995d70a494f0a7bb6bc11e0b8cccd41cce8009ab1132c8b0a3792"))),he(Buffer.from(e.pointCompress(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),!0)).equals(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(Buffer.from(e.pointCompress(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),!1)).equals(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"))),he(Buffer.from(e.pointCompress(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),!0)).equals(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),he(Buffer.from(e.pointCompress(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),!1)).equals(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"))),he(Buffer.from(e.pointFromScalar(W("b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af"))).equals(W("02b07ba9dca9523b7ef4bd97703d43d20399eb698e194704791a25ce77a400df99"))),he(e.xOnlyPointAddTweak(W("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))===null);let t=e.xOnlyPointAddTweak(W("1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b"),W("a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac"));he(Buffer.from(t.xOnlyPubkey).equals(W("e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"))&&t.parity===1),t=e.xOnlyPointAddTweak(W("2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991"),W("823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47")),he(Buffer.from(t.xOnlyPubkey).equals(W("9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"))&&t.parity===0),he(Buffer.from(e.sign(W("5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed"),W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))).equals(W("54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5"))),he(e.verify(W("5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed"),W("0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),W("54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5"))),e.signSchnorr&&he(Buffer.from(e.signSchnorr(W("7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c"),W("c90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b14e5c9"),W("c87aa53824b4d7ae2eb035a2b5bbbccc080e76cdc6d1692c4b0b62d798e6d906"))).equals(W("5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7"))),e.verifySchnorr&&he(e.verifySchnorr(W("7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c"),W("dd308afec5777e13121fa72b9cc1b7cc0139715309b086c960e18fd969774eb8"),W("5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7")))}Ri.testEcc=_0;function he(e){if(!e)throw new Error("ecc library invalid")}Object.defineProperty(Mr,"__esModule",{value:!0});Mr.ECPairFactory=Mr.networks=void 0;const Ts=Dr;Mr.networks=Ts;const je=Za,v0=Wl,oa=g0,E0=Ri,us=je.typeforce.maybe(je.typeforce.compile({compressed:je.maybe(je.Boolean),network:je.maybe(je.Network)})),x0=e=>e.length===32?e:e.slice(1,33);function S0(e){(0,E0.testEcc)(e);function t(a){return e.isPoint(a)}function r(a,u){if(je.typeforce(je.Buffer256bit,a),!e.isPrivate(a))throw new TypeError("Private key not in range [1, n)");return je.typeforce(us,u),new o(a,void 0,u)}function n(a,u){return je.typeforce(e.isPoint,a),je.typeforce(us,u),new o(void 0,a,u)}function i(a,u){const h=oa.decode(a),d=h.version;if(je.Array(u)){if(u=u.filter(p=>d===p.wif).pop(),!u)throw new Error("Unknown network version")}else if(u=u||Ts.bitcoin,d!==u.wif)throw new Error("Invalid network version");return r(h.privateKey,{compressed:h.compressed,network:u})}function s(a){je.typeforce(us,a),a===void 0&&(a={});const u=a.rng||v0;let h;do h=u(32),je.typeforce(je.Buffer256bit,h);while(!e.isPrivate(h));return r(h,a)}class o{constructor(u,h,d){vr(this,"__D");vr(this,"__Q");vr(this,"compressed");vr(this,"network");vr(this,"lowR");this.__D=u,this.__Q=h,this.lowR=!1,d===void 0&&(d={}),this.compressed=d.compressed===void 0?!0:d.compressed,this.network=d.network||Ts.bitcoin,h!==void 0&&(this.__Q=Buffer.from(e.pointCompress(h,this.compressed)))}get privateKey(){return this.__D}get publicKey(){if(!this.__Q){const u=e.pointFromScalar(this.__D,this.compressed);this.__Q=Buffer.from(u)}return this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return oa.encode(this.network.wif,this.__D,this.compressed)}tweak(u){return this.privateKey?this.tweakFromPrivateKey(u):this.tweakFromPublicKey(u)}sign(u,h){if(!this.__D)throw new Error("Missing private key");if(h===void 0&&(h=this.lowR),h===!1)return Buffer.from(e.sign(u,this.__D));{let d=e.sign(u,this.__D);const p=Buffer.alloc(32,0);let _=0;for(;d[0]>127;)_++,p.writeUIntLE(_,0,6),d=e.sign(u,this.__D,p);return Buffer.from(d)}}signSchnorr(u){if(!this.privateKey)throw new Error("Missing private key");if(!e.signSchnorr)throw new Error("signSchnorr not supported by ecc library");return Buffer.from(e.signSchnorr(u,this.privateKey))}verify(u,h){return e.verify(u,this.publicKey,h)}verifySchnorr(u,h){if(!e.verifySchnorr)throw new Error("verifySchnorr not supported by ecc library");return e.verifySchnorr(u,this.publicKey.subarray(1,33),h)}tweakFromPublicKey(u){const h=x0(this.publicKey),d=e.xOnlyPointAddTweak(h,u);if(!d||d.xOnlyPubkey===null)throw new Error("Cannot tweak public key!");const p=Buffer.from([d.parity===0?2:3]);return n(Buffer.concat([p,d.xOnlyPubkey]),{network:this.network,compressed:this.compressed})}tweakFromPrivateKey(u){const d=this.publicKey[0]===3||this.publicKey[0]===4&&(this.publicKey[64]&1)===1?e.privateNegate(this.privateKey):this.privateKey,p=e.privateAdd(d,u);if(!p)throw new Error("Invalid tweaked private key!");return r(Buffer.from(p),{network:this.network,compressed:this.compressed})}}return{isPoint:t,fromPrivateKey:r,fromPublicKey:n,fromWIF:i,makeRandom:s}}Mr.ECPairFactory=S0;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.networks=e.ECPairFactory=e.default=void 0;var t=Mr;Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.ECPairFactory}}),Object.defineProperty(e,"ECPairFactory",{enumerable:!0,get:function(){return t.ECPairFactory}}),Object.defineProperty(e,"networks",{enumerable:!0,get:function(){return t.networks}})})(Qa);const A0=Lf(Qa);class _n extends q.EventBroker{get isInitialized(){return!!this.digestKey}constructor(t,r){super(),this.digestKey=t,this.walletClient=r}static fromDigestKey(t){return new _n(ir(t))}static fromWalletClient(t){return new _n(void 0,t)}async initialize(){if(this.digestKey)return re("Already initialized");const t=await this.deriveDigestKeyFromWalletClient();return t.error?D(t.error):(this.emit("initialized",!0),re("Initialized"))}async deriveDigestKeyFromWalletClient(){if(!this.walletClient)return D("No walletClient found");if(!this.walletClient.account)return D("No account found");try{const t=await this.walletClient.signTypedData({account:this.walletClient.account,types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],Data:[{name:"Message",type:"string"},{name:"Version",type:"string"},{name:"Nonce",type:"uint256"}]},domain:{name:"GARDEN FINANCE",version:"1"},primaryType:"Data",message:{Message:"Initialize your account",Version:"1.0.2",Nonce:1n}});return this.digestKey=ir(At.sha256(t)),this.emit("initialized",!0),re(this.digestKey)}catch(t){return D("Failed to initialize: "+t)}}async getDigestKey(){if(!this.digestKey&&!this.walletClient)return D("No private key or wallet client found");if(!this.digestKey&&this.walletClient){const t=await this.deriveDigestKeyFromWalletClient();if(t.error)return D(t.error)}return this.digestKey?re(this.digestKey):D("No private key found")}async generateSecret(t){const r=await this.signMessage(t);if(r.error)return D(r.error);const n=At.sha256(q.with0x(r.val)),i=At.sha256(n);return re({secret:n,secretHash:i})}async signMessage(t){if(!this.digestKey){const h=await this.getDigestKey();if(h.error)return D(h.error);this.digestKey=h.val}const r=A0(ar),n="Garden.fi"+t.toString(),i=Buffer.from(n,"utf8"),s=At.sha256(i),o=Buffer.from(ir(this.digestKey),"hex");if(o.length!==32)return D("Invalid private key length. Expected 32 bytes.");const u=r.fromPrivateKey(o).sign(Buffer.from(ir(s),"hex"));return re(u.toString("hex"))}}const k0=[{inputs:[{internalType:"address",name:"token_",type:"address"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"initiateWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct HTLC.InitWithSig[]",name:"inits",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],internalType:"struct HTLC.Redeem[]",name:"redeems",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],internalType:"struct HTLC.Refund[]",name:"refunds",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"bool[]",name:"results",type:"bool[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address",name:"initiator",type:"address"},{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"}];function mt(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const Nc="2.22.23";let on={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Nc}`};class pe extends Error{constructor(t,r={}){var a;const n=(()=>{var u;return r.cause instanceof pe?r.cause.details:(u=r.cause)!=null&&u.message?r.cause.message:r.details})(),i=r.cause instanceof pe&&r.cause.docsPath||r.docsPath,s=(a=on.getDocsUrl)==null?void 0:a.call(on,{...r,docsPath:i}),o=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...on.version?[`Version: ${on.version}`]:[]].join(`
|
|
32
|
-
`);super(o,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=i,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Nc}walk(t){return Fc(this,t)}}function Fc(e,t){return t!=null&&t(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Fc(e.cause,t):t?null:e}class T0 extends pe{constructor({max:t,min:r,signed:n,size:i,value:s}){super(`Number "${s}" is not in safe ${i?`${i*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}}class B0 extends pe{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function Pn(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function jr(e){return Pn(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function ci(e,{dir:t="left"}={}){let r=typeof e=="string"?e.replace("0x",""):e,n=0;for(let i=0;i<r.length-1&&r[t==="left"?i:r.length-i-1].toString()==="0";i++)n++;return r=t==="left"?r.slice(n):r.slice(0,r.length-n),typeof e=="string"?(r.length===1&&t==="right"&&(r=`${r}0`),`0x${r.length%2===1?`0${r}`:r}`):r}class I0 extends pe{constructor({offset:t,position:r,size:n}){super(`Slice ${r==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${n}).`,{name:"SliceOffsetOutOfBoundsError"})}}class Hc extends pe{constructor({size:t,targetSize:r,type:n}){super(`${n.charAt(0).toUpperCase()}${n.slice(1).toLowerCase()} size (${t}) exceeds padding size (${r}).`,{name:"SizeExceedsPaddingSizeError"})}}function Vr(e,{dir:t,size:r=32}={}){return typeof e=="string"?P0(e,{dir:t,size:r}):O0(e,{dir:t,size:r})}function P0(e,{dir:t,size:r=32}={}){if(r===null)return e;const n=e.replace("0x","");if(n.length>r*2)throw new Hc({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function O0(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Hc({size:e.length,targetSize:r,type:"bytes"});const n=new Uint8Array(r);for(let i=0;i<r;i++){const s=t==="right";n[s?i:r-i-1]=e[s?i:e.length-i-1]}return n}const R0=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Q(e,t={}){return typeof e=="number"||typeof e=="bigint"?Mc(e,t):typeof e=="string"?L0(e,t):typeof e=="boolean"?C0(e,t):Qt(e,t)}function C0(e,t={}){const r=`0x${Number(e)}`;return typeof t.size=="number"?(Wr(r,{size:t.size}),Vr(r,{size:t.size})):r}function Qt(e,t={}){let r="";for(let i=0;i<e.length;i++)r+=R0[e[i]];const n=`0x${r}`;return typeof t.size=="number"?(Wr(n,{size:t.size}),Vr(n,{dir:"right",size:t.size})):n}function Mc(e,t={}){const{signed:r,size:n}=t,i=BigInt(e);let s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof s=="bigint"&&r?-s-1n:0;if(s&&i>s||i<o){const u=typeof e=="bigint"?"n":"";throw new T0({max:s?`${s}${u}`:void 0,min:`${o}${u}`,signed:r,size:n,value:`${e}${u}`})}const a=`0x${(r&&i<0?(1n<<BigInt(n*8))+BigInt(i):i).toString(16)}`;return n?Vr(a,{size:n}):a}const U0=new TextEncoder;function L0(e,t={}){const r=U0.encode(e);return Qt(r,t)}const N0=new TextEncoder;function Dc(e,t={}){return typeof e=="number"||typeof e=="bigint"?H0(e,t):typeof e=="boolean"?F0(e,t):Pn(e)?lr(e,t):$c(e,t)}function F0(e,t={}){const r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?(Wr(r,{size:t.size}),Vr(r,{size:t.size})):r}const Et={zero:48,nine:57,A:65,F:70,a:97,f:102};function aa(e){if(e>=Et.zero&&e<=Et.nine)return e-Et.zero;if(e>=Et.A&&e<=Et.F)return e-(Et.A-10);if(e>=Et.a&&e<=Et.f)return e-(Et.a-10)}function lr(e,t={}){let r=e;t.size&&(Wr(r,{size:t.size}),r=Vr(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);const i=n.length/2,s=new Uint8Array(i);for(let o=0,a=0;o<i;o++){const u=aa(n.charCodeAt(a++)),h=aa(n.charCodeAt(a++));if(u===void 0||h===void 0)throw new pe(`Invalid byte sequence ("${n[a-2]}${n[a-1]}" in "${n}").`);s[o]=u*16+h}return s}function H0(e,t){const r=Mc(e,t);return lr(r)}function $c(e,t={}){const r=N0.encode(e);return typeof t.size=="number"?(Wr(r,{size:t.size}),Vr(r,{dir:"right",size:t.size})):r}function Wr(e,{size:t}){if(jr(e)>t)throw new B0({givenSize:jr(e),maxSize:t})}function Pr(e,t={}){const{signed:r}=t;t.size&&Wr(e,{size:t.size});const n=BigInt(e);if(!r)return n;const i=(e.length-2)/2,s=(1n<<BigInt(i)*8n-1n)-1n;return n<=s?n:n-BigInt(`0x${"f".padStart(i*2,"f")}`)-1n}function fi(e,t={}){return Number(Pr(e,t))}function Js(e,t){return({exclude:r,format:n})=>({exclude:r,format:i=>{const s=t(i);if(r)for(const o of r)delete s[o];return{...s,...n(i)}},type:e})}const jc={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Qs(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?fi(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?fi(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?jc[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(t.authorizationList=D0(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 M0=Js("transaction",Qs);function D0(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 $0(e){const t=(e.transactions??[]).map(r=>typeof r=="string"?r:Qs(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const j0=Js("block",$0);function G0(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 V0={"0x0":"reverted","0x1":"success"};function W0(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=>G0(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?fi(e.transactionIndex):null,status:e.status?V0[e.status]:null,type:e.type?jc[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const z0=Js("transactionReceipt",W0),Zs=2n**256n-1n;function On(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}class ca extends pe{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class q0 extends pe{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class K0 extends pe{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const Y0={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 K0({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new q0({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new ca({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new ca({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const r=t??this.position;return this.assertPosition(r+e-1),this.bytes.subarray(r,r+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const r=this.inspectBytes(e);return this.position+=t??e,r},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function Gc(e,{recursiveReadLimit:t=8192}={}){const r=Object.create(Y0);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}function hr(e,t="hex"){const r=Vc(e),n=Gc(new Uint8Array(r.length));return r.encode(n),t==="hex"?Qt(n.bytes):n.bytes}function Vc(e){return Array.isArray(e)?X0(e.map(t=>Vc(t))):J0(e)}function X0(e){const t=e.reduce((i,s)=>i+s.length,0),r=Wc(t);return{length:t<=55?1+t:1+r+t,encode(i){t<=55?i.pushByte(192+t):(i.pushByte(247+r),r===1?i.pushUint8(t):r===2?i.pushUint16(t):r===3?i.pushUint24(t):i.pushUint32(t));for(const{encode:s}of e)s(i)}}}function J0(e){const t=typeof e=="string"?lr(e):e,r=Wc(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+r+t.length,encode(i){t.length===1&&t[0]<128?i.pushBytes(t):t.length<=55?(i.pushByte(128+t.length),i.pushBytes(t)):(i.pushByte(183+r),r===1?i.pushUint8(t.length):r===2?i.pushUint16(t.length):r===3?i.pushUint24(t.length):i.pushUint32(t.length),i.pushBytes(t))}}}function Wc(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new pe("Length is too large.")}const Q0={ether:-9,wei:9};function Z0(e,t){let r=e.toString();const n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[i,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${i||"0"}${s?`.${s}`:""}`}function Bs(e,t="wei"){return Z0(e,Q0[t])}function ep(e){const t=Object.entries(e).map(([n,i])=>i===void 0||i===!1?null:[n,i]).filter(Boolean),r=t.reduce((n,[i])=>Math.max(n,i.length),0);return t.map(([n,i])=>` ${`${n}:`.padEnd(r+1)} ${i}`).join(`
|
|
33
|
-
`)}class
|
|
34
|
-
`),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(tf,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class rf extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const r=super.get(t);return super.has(t)&&r!==void 0&&(this.delete(t),super.set(t,r)),r}set(t,r){if(super.set(t,r),this.maxSize&&this.size>this.maxSize){const n=this.keys().next().value;n&&this.delete(n)}return this}}const Gn=BigInt(2**32-1),pa=BigInt(32);function Sp(e,t=!1){return t?{h:Number(e&Gn),l:Number(e>>pa&Gn)}:{h:Number(e>>pa&Gn)|0,l:Number(e&Gn)|0}}function Ap(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:s,l:o}=Sp(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}const kp=(e,t,r)=>e<<r|t>>>32-r,Tp=(e,t,r)=>t<<r|e>>>32-r,Bp=(e,t,r)=>t<<r-32|e>>>64-r,Ip=(e,t,r)=>e<<r-32|t>>>64-r,nf=[],sf=[],of=[],Pp=BigInt(0),an=BigInt(1),Op=BigInt(2),Rp=BigInt(7),Cp=BigInt(256),Up=BigInt(113);for(let e=0,t=an,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],nf.push(2*(5*n+r)),sf.push((e+1)*(e+2)/2%64);let i=Pp;for(let s=0;s<7;s++)t=(t<<an^(t>>Rp)*Up)%Cp,t&Op&&(i^=an<<(an<<BigInt(s))-an);of.push(i)}const[Lp,Np]=Ap(of,!0),ya=(e,t,r)=>r>32?Bp(e,t,r):kp(e,t,r),ma=(e,t,r)=>r>32?Ip(e,t,r):Tp(e,t,r);function Fp(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let o=0;o<10;o++)r[o]=e[o]^e[o+10]^e[o+20]^e[o+30]^e[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,u=(o+2)%10,h=r[u],d=r[u+1],p=ya(h,d,1)^r[a],_=ma(h,d,1)^r[a+1];for(let y=0;y<50;y+=10)e[o+y]^=p,e[o+y+1]^=_}let i=e[2],s=e[3];for(let o=0;o<24;o++){const a=sf[o],u=ya(i,s,a),h=ma(i,s,a),d=nf[o];i=e[d],s=e[d+1],e[d]=u,e[d+1]=h}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)r[a]=e[o+a];for(let a=0;a<10;a++)e[o+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=Lp[n],e[1]^=Np[n]}r.fill(0)}class no extends Yc{constructor(t,r,n,i=!1,s=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,fa(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=sp(this.state)}keccak(){ua||la(this.state32),Fp(this.state32,this.rounds),ua||la(this.state32),this.posOut=0,this.pos=0}update(t){ui(this);const{blockLen:r,state:n}=this;t=to(t);const i=t.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);for(let a=0;a<o;a++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:r,pos:n,blockLen:i}=this;t[n]^=r,r&128&&n===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){ui(this,!1),eo(t),this.finish();const r=this.state,{blockLen:n}=this;for(let i=0,s=t.length;i<s;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,s-i);t.set(r.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return fa(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Kc(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:r,suffix:n,outputLen:i,rounds:s,enableXOF:o}=this;return t||(t=new no(r,n,i,o,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}}const Hp=(e,t,r)=>Xc(()=>new no(t,e,r)),Mp=Hp(1,136,256/8);function Dp(e,t){return Mp(Pn(e,{strict:!1})?Dc(e):e)}const hs=new rf(8192);function $p(e,t){if(hs.has(`${e}.${t}`))return hs.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),n=Dp($c(r)),i=r.split("");for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&i[o]&&(i[o]=i[o].toUpperCase()),(n[o>>1]&15)>=8&&i[o+1]&&(i[o+1]=i[o+1].toUpperCase());const s=`0x${i.join("")}`;return hs.set(`${e}.${t}`,s),s}const jp=/^0x[a-fA-F0-9]{40}$/,ds=new rf(8192);function pr(e,t){const{strict:r=!0}=t??{},n=`${e}.${r}`;if(ds.has(n))return ds.get(n);const i=jp.test(e)?e.toLowerCase()===e?!0:r?$p(e)===e:!0:!1;return ds.set(n,i),i}function Gp(e,t,r,{strict:n}={}){return Pn(e,{strict:!1})?Wp(e,t,r,{strict:n}):Vp(e,t,r,{strict:n})}function af(e,t,r){if(jr(e)!==r-t)throw new I0({offset:r,position:"end",size:jr(e)})}function Vp(e,t,r,{strict:n}={}){const i=e.slice(t,r);return n&&af(i,t,r),i}function Wp(e,t,r,{strict:n}={}){const i=`0x${e.replace("0x","").slice(t*2,r*2)}`;return n&&af(i,t,r),i}function zp(e){const{authorizationList:t}=e;if(t)for(const r of t){const{contractAddress:n,chainId:i}=r;if(!pr(n))throw new dr({address:n});if(i<0)throw new Ci({chainId:i})}io(e)}function qp(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new ef;for(const r of t){const n=jr(r),i=fi(Gp(r,0,1));if(n!==32)throw new gp({hash:r,size:n});if(i!==Zc)throw new _p({hash:r,version:i})}}io(e)}function io(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:i}=e;if(t<=0)throw new Ci({chainId:t});if(i&&!pr(i))throw new dr({address:i});if(n&&n>Zs)throw new Ui({maxFeePerGas:n});if(r&&n&&r>n)throw new tf({maxFeePerGas:n,maxPriorityFeePerGas:r})}function Kp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(t<=0)throw new Ci({chainId:t});if(s&&!pr(s))throw new dr({address:s});if(r||i)throw new pe("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>Zs)throw new Ui({maxFeePerGas:n})}function Yp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(s&&!pr(s))throw new dr({address:s});if(typeof t<"u"&&t<=0)throw new Ci({chainId:t});if(r||i)throw new pe("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>Zs)throw new Ui({maxFeePerGas:n})}function Xp(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 rp({transaction:e})}function Li(e){if(!e||e.length===0)return[];const t=[];for(let r=0;r<e.length;r++){const{address:n,storageKeys:i}=e[r];for(let s=0;s<i.length;s++)if(i[s].length-2!==64)throw new np({storageKey:i[s]});if(!pr(n,{strict:!1}))throw new dr({address:n});t.push([n,i])}return t}function Jp(e,t){const r=Xp(e);return r==="eip1559"?ey(e,t):r==="eip2930"?ty(e,t):r==="eip4844"?Zp(e,t):r==="eip7702"?Qp(e,t):ry(e,t)}function Qp(e,t){const{authorizationList:r,chainId:n,gas:i,nonce:s,to:o,value:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:p}=e;zp(e);const _=Li(d),y=xp(r);return On(["0x04",hr([Q(n),s?Q(s):"0x",h?Q(h):"0x",u?Q(u):"0x",i?Q(i):"0x",o??"0x",a?Q(a):"0x",p??"0x",_,y,...Rn(e,t)])])}function Zp(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerBlobGas:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:p}=e;qp(e);let _=e.blobVersionedHashes,y=e.sidecars;if(e.blobs&&(typeof _>"u"||typeof y>"u")){const v=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(x=>Qt(x)),g=e.kzg,S=zc({blobs:v,kzg:g});if(typeof _>"u"&&(_=bp({commitments:S})),typeof y>"u"){const x=qc({blobs:v,commitments:S,kzg:g});y=Ep({blobs:v,commitments:S,proofs:x})}}const I=Li(d),A=[Q(r),i?Q(i):"0x",h?Q(h):"0x",u?Q(u):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",p??"0x",I,a?Q(a):"0x",_??[],...Rn(e,t)],B=[],O=[],C=[];if(y)for(let v=0;v<y.length;v++){const{blob:g,commitment:S,proof:x}=y[v];B.push(g),O.push(S),C.push(x)}return On(["0x03",hr(y?[A,B,O,C]:A)])}function ey(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerGas:a,maxPriorityFeePerGas:u,accessList:h,data:d}=e;io(e);const p=Li(h),_=[Q(r),i?Q(i):"0x",u?Q(u):"0x",a?Q(a):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",d??"0x",p,...Rn(e,t)];return On(["0x02",hr(_)])}function ty(e,t){const{chainId:r,gas:n,data:i,nonce:s,to:o,value:a,accessList:u,gasPrice:h}=e;Kp(e);const d=Li(u),p=[Q(r),s?Q(s):"0x",h?Q(h):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x",d,...Rn(e,t)];return On(["0x01",hr(p)])}function ry(e,t){const{chainId:r=0,gas:n,data:i,nonce:s,to:o,value:a,gasPrice:u}=e;Yp(e);let h=[s?Q(s):"0x",u?Q(u):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x"];if(t){const d=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);const y=27n+(t.v===27n?0n:1n);if(t.v!==y)throw new tp({v:t.v});return y})(),p=ci(t.r),_=ci(t.s);h=[...h,Q(d),p==="0x00"?"0x":p,_==="0x00"?"0x":_]}else r>0&&(h=[...h,Q(r),"0x","0x"]);return hr(h)}function Rn(e,t){const r=t??e,{v:n,yParity:i}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof i>"u")return[];const s=ci(r.r),o=ci(r.s);return[typeof i=="number"?i?Q(1):"0x":n===0n?"0x":n===1n?Q(1):n===27n?"0x":Q(1),s==="0x00"?"0x":s,o==="0x00"?"0x":o]}const ny={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},iy={block:j0({format(e){var r;return{transactions:(r=e.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const i=Qs(n);return i.typeHex==="0x7e"&&(i.isSystemTx=n.isSystemTx,i.mint=n.mint?Pr(n.mint):void 0,i.sourceHash=n.sourceHash,i.type="deposit"),i}),stateRoot:e.stateRoot}}}),transaction:M0({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?Pr(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:z0({format(e){return{l1GasPrice:e.l1GasPrice?Pr(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?Pr(e.l1GasUsed):null,l1Fee:e.l1Fee?Pr(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function sy(e,t){return cy(e)?ay(e):Jp(e,t)}const oy={transaction:sy};function ay(e){fy(e);const{sourceHash:t,data:r,from:n,gas:i,isSystemTx:s,mint:o,to:a,value:u}=e,h=[t,n,a??"0x",o?Q(o):"0x",u?Q(u):"0x",i?Q(i):"0x",s?"0x1":"0x",r??"0x"];return On(["0x7e",hr(h)])}function cy(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function fy(e){const{from:t,to:r}=e;if(t&&!pr(t))throw new dr({address:t});if(r&&!pr(r))throw new dr({address:r})}const li={contracts:ny,formatters:iy,serializers:oy},uy=mt({id:42161,name:"Arbitrum One",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://arb1.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://arbiscan.io",apiUrl:"https://api.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:7654707}}}),ly=mt({id:421614,name:"Arbitrum Sepolia",nativeCurrency:{name:"Arbitrum Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia-rollup.arbitrum.io/rpc"]}},blockExplorers:{default:{name:"Arbiscan",url:"https://sepolia.arbiscan.io",apiUrl:"https://api-sepolia.arbiscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:81930}},testnet:!0}),cn=1,hy=mt({...li,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...li.contracts,disputeGameFactory:{[cn]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[cn]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[cn]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[cn]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:cn}),fn=11155111,dy=mt({...li,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...li.contracts,disputeGameFactory:{[fn]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[fn]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[fn]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[fn]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:fn}),py=mt({id:80094,name:"Berachain",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},testnet:!1}),yy=mt({id:80084,name:"Berachain bArtio",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:109269},ensRegistry:{address:"0xB0eef18971290b333450586D33dcA6cE122651D2",blockCreated:7736794},ensUniversalResolver:{address:"0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057",blockCreated:7736795}},rpcUrls:{default:{http:["https://bartio.rpc.berachain.com"]}},blockExplorers:{default:{name:"Berachain bArtio Beratrail",url:"https://bartio.beratrail.io"}},testnet:!0}),my=mt({id:5115,name:"Citrea Testnet",nativeCurrency:{name:"cBTC",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.testnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.testnet.citrea.xyz",apiUrl:"https://explorer.testnet.citrea.xyz/api"}},testnet:!0}),by=mt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),wy=mt({id:10143,name:"Monad Testnet",nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),gy=mt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},testnet:!0}),_y={...gy,rpcUrls:{default:{http:["https://ethereum-sepolia-rpc.publicnode.com"]}}},cf={ethereum:by,arbitrum:uy,ethereum_sepolia:_y,arbitrum_sepolia:ly,ethereum_localnet:ge.EthereumLocalnet,arbitrum_localnet:ge.ArbitrumLocalnet,base_sepolia:dy,base:hy,bera_testnet:yy,citrea_testnet:my,bera:py,monad_testnet:wy},ff=async(e,t)=>{var n;const r=cf[e];if(r)try{if(r.id===((n=t.chain)==null?void 0:n.id))return re({message:"Already on the network",walletClient:t});await t.switchChain({id:r.id});const i=At.createWalletClient({account:t.account,chain:r,transport:At.custom(window.ethereum)});return re({message:"Switched chain",walletClient:i})}catch(i){if(vy(i))try{await t.addChain({chain:r});const s=At.createWalletClient({account:t.account,chain:r,transport:At.custom(window.ethereum)});return re({message:"Added network",walletClient:s})}catch{return D("Failed to add network")}else return D("Failed to switch network")}else return D("Chain not supported")},vy=e=>typeof e=="object"&&e!==null&&"code"in e&&e.code===4902;class uf{constructor(t,r,n){this.url=new q.Url("/relayer",t),this.auth=n,this.wallet=r}get htlcActorAddress(){if(!this.wallet.account)throw new Error("No account found");return this.wallet.account.address}async initiate(t){if(!this.wallet.account)return q.Err("No account found");if(this.wallet.account.address.toLowerCase()!==t.source_swap.initiator.toLowerCase())return q.Err("Account address and order initiator mismatch");const r=await ff(t.source_swap.chain,this.wallet);if(r.error)return q.Err(r.error);if(this.wallet=r.val.walletClient,!this.wallet.account)return q.Err("No account found");const{create_order:n,source_swap:i}=t;if(!i.amount||!i.redeemer||!n.timelock||!n.secret_hash)return q.Err("Invalid order");const s=q.with0x(n.secret_hash),o=BigInt(n.timelock),a=q.with0x(i.redeemer),u=BigInt(i.amount);try{const h=await this.auth.getAuthHeaders();if(h.error)return q.Err(h.error);const d=At.getContract({address:q.with0x(t.source_swap.asset),abi:k0,client:this.wallet}),p=await d.read.token(),_=await q.checkAllowanceAndApprove(Number(u),p,t.source_swap.asset,this.wallet);if(_.error)return q.Err(_.error);const y=await d.read.eip712Domain(),I=await this.wallet.signTypedData({account:this.wallet.account,domain:{name:y[1],version:y[2],chainId:Number(y[3]),verifyingContract:y[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:a,timelock:o,amount:u,secretHash:s}}),A={...h.val,"Content-Type":"application/json"},B=await kt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:n.create_id,signature:I,perform_on:"Source"}),headers:A});return B.error?q.Err(B.error):B.result?q.Ok(B.result):q.Err("Init: No result found")}catch(h){return console.log("init error :",h),q.Err(String(h))}}async redeem(t,r){try{const n=await this.auth.getAuthHeaders();if(n.error)return q.Err(n.error);const i=await kt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:ir(r),perform_on:"Destination"}),headers:{...n.val,"Content-Type":"application/json"}});return i.error?q.Err(i.error):i.result?q.Ok(i.result):q.Err("Redeem: No result found")}catch(n){return q.Err(String(n))}}async refund(){return q.Err("Refund not supported")}}const lf=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],hf=async(e,t,r,n,i)=>{try{const s=new Ve.RpcProvider({nodeUrl:i}),a=await new Ve.Contract(lf,Un(t),s).call("allowance",[Un(e.address),Un(r)]),u=BigInt((a==null?void 0:a.toString())||"0"),h=Ve.cairo.uint256(BigInt(Ve.uint256.UINT_256_MAX));if(u<n){const d=await e.execute([{contractAddress:Un(t),entrypoint:"approve",calldata:[r,h.low,h.high]}]);return await s.waitForTransaction(d.transaction_hash,{retryInterval:3e3,successStates:[Ve.TransactionExecutionStatus.SUCCEEDED]}),re(d.transaction_hash)}return re("Allowance already approved")}catch(s){return D(`Failed to check or approve allowance: ${s instanceof Error?s.message:String(s)}`)}},df=[{name:"HTLC",type:"impl",interface_name:"starknet_htlc::interface::IHTLC"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"starknet_htlc::interface::IHTLC",type:"interface",items:[{name:"token",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"initiate",type:"function",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_on_behalf",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_with_signature",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{name:"redeem",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"secret",type:"core::array::Array::<core::integer::u32>"}],outputs:[],state_mutability:"external"},{name:"refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"instant_refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"token",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starknet_htlc::interface::events::Initiated",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"amount",type:"core::integer::u256"}]},{kind:"struct",name:"starknet_htlc::interface::events::Redeemed",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"secret",type:"core::array::Array::<core::integer::u32>"}]},{kind:"struct",name:"starknet_htlc::interface::events::Refunded",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"}]},{kind:"enum",name:"starknet_htlc::htlc::HTLC::Event",type:"event",variants:[{kind:"nested",name:"Initiated",type:"starknet_htlc::interface::events::Initiated"},{kind:"nested",name:"Redeemed",type:"starknet_htlc::interface::events::Redeemed"},{kind:"nested",name:"Refunded",type:"starknet_htlc::interface::events::Refunded"}]}],Ey={name:"HTLC",version:Ve.shortString.encodeShortString("1"),chainId:"0x534e5f5345504f4c4941",revision:Ve.TypedDataRevision.ACTIVE},xy={StarknetDomain:[{name:"name",type:"shortstring"},{name:"version",type:"shortstring"},{name:"chainId",type:"shortstring"},{name:"revision",type:"shortstring"}],Initiate:[{name:"redeemer",type:"ContractAddress"},{name:"amount",type:"u256"},{name:"timelock",type:"u128"},{name:"secretHash",type:"u128*"}]},Sy="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class pf{constructor(t,r,n){this.nodeUrl=n||Sy,this.url=new q.Url("/",t),this.account=r}get htlcActorAddress(){if(!this.account.address)throw new Error("No account found");return this.account.address}async initiate(t){if(!this.account.address)return D("No account address");const{create_order:r,source_swap:n}=t,{redeemer:i,amount:s}=n;if(!s||!i||!r.secret_hash||!r.timelock)return D("Invalid order");try{const o=new Ve.Contract(df,t.source_swap.asset,this.account),a=await(o==null?void 0:o.token()),u=Ve.num.toHex(a),h=await hf(this.account,u,n.asset,BigInt(s),this.nodeUrl);if(h.error)return D(h.error);const d={domain:Ey,primaryType:"Initiate",types:xy,message:{redeemer:i,amount:Ve.cairo.uint256(s),timelock:r.timelock,secretHash:q.hexToU32Array(r.secret_hash)}},p=await this.account.signMessage(d),{r:_,s:y}=p,I=await kt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:r.create_id,signature:{r:_.toString(),s:y.toString()},perform_on:"Source"}),headers:{"Content-Type":"application/json"}});return I.error?D(I.error):I.result?re(I.result):D("Init: No result found")}catch(o){return D(String(o))}}async redeem(t,r){try{const n=await kt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:r,perform_on:"Destination"}),headers:{"Content-Type":"application/json"}});return n.error?D(n.error):n.result?re(n.result):D("Redeem: No result found")}catch(n){return D(String(n))}}async refund(){return D("Refund is taken care of by the relayer")}}class so extends q.EventBroker{constructor(t){if(super(),this.getOrderThreshold=20,this.refundSacpCache=new Map,this.bitcoinRedeemCache=new Dl,typeof t.digestKey=="string"){const n=q.DigestKey.from(t.digestKey);if(n.error)throw new Error(n.error);this._digestKey=n.val}else this._digestKey=t.digestKey;this.environment=t.environment;const r=t.environment===q.Environment.MAINNET?Ir.mainnet:t.environment===q.Environment.TESTNET?Ir.testnet:Ir.localnet;if(!r)throw new Error("API not found, invalid environment "+t.environment);this._orderbookUrl=new q.Url(t.api??r.orderbook),this._quote=t.quote??new Ja(r.quote),this._auth=q.Siwe.fromDigestKey(new q.Url(t.api??r.orderbook),this._digestKey,t.siweOpts),this._orderbook=new ge.Orderbook(new q.Url(t.api??r.orderbook)),this._evmHTLC=t.htlc.evm,this._starknetHTLC=t.htlc.starknet,this._secretManager=t.secretManager??_n.fromDigestKey(this._digestKey.digestKey),this.orderExecutorCache=new Ml,this._blockNumberFetcher=t.blockNumberFetcher??new Xa(r.info,t.environment)}static from(t){let r;if(typeof t.digestKey=="string"){const s=q.DigestKey.from(t.digestKey);if(s.error)throw new Error(s.error);r=s.val}else r=t.digestKey;const n=t.environment===q.Environment.MAINNET?Ir.mainnet:t.environment===q.Environment.TESTNET?Ir.testnet:void 0;if(!n)throw new Error("API not found, invalid environment "+t.environment);const i={evm:t.wallets.evm?new uf(n.evmRelay,t.wallets.evm,q.Siwe.fromDigestKey(new q.Url(n.orderbook),r)):void 0,starknet:t.wallets.starknet?new pf(n.starknetRelay,t.wallets.starknet):void 0};return new so({environment:t.environment,digestKey:t.digestKey,htlc:i,siweOpts:t.siweOpts})}get orderbookUrl(){return this._orderbookUrl.toString()}get evmHTLC(){return this._evmHTLC}get starknetHTLC(){return this._starknetHTLC}get quote(){return this._quote}get btcWallet(){return this._btcWallet}get orderbook(){return this._orderbook}get blockNumberFetcher(){return this._blockNumberFetcher}get secretManager(){return this._secretManager}get auth(){return this._auth}get digestKey(){return this._digestKey}async initializeSMandBTCWallet(){if(this._secretManager.isInitialized&&this._btcWallet)return re(this._btcWallet);const t=await this._secretManager.getDigestKey();if(t.error)return D(t.error);const r=new Lr.BitcoinProvider(Tf(this.environment));return this._btcWallet=Lr.BitcoinWallet.fromPrivateKey(t.val,r),re(this._btcWallet)}async swap(t){const r=await this.validateAndFillParams(t);if(r.error)return D(r.error);const{sendAddress:n,receiveAddress:i,timelock:s}=r.val,o=Date.now().toString(),a=await this._secretManager.generateSecret(o);if(a.error)return D(a.error);const{strategyId:u,btcAddress:h}=t.additionalData,d={strategy_id:u,...h&&{bitcoin_optional_recipient:h}},p={source_chain:t.fromAsset.chain,destination_chain:t.toAsset.chain,source_asset:t.fromAsset.atomicSwapAddress,destination_asset:t.toAsset.atomicSwapAddress,initiator_source_address:n,initiator_destination_address:i,source_amount:t.sendAmount,destination_amount:t.receiveAmount,fee:"1",nonce:o,timelock:s,secret_hash:ir(a.val.secretHash),min_destination_confirmations:t.minDestinationConfirmations??0,additional_data:d},_=await this._quote.getAttestedQuote(p);if(_.error)return D(_.error);const y=await this._orderbook.createOrder(_.val,this.auth);if(y.error)return D(y.error);const I=await this.pollOrder(y.val);return I.error?D(I.error):re(I.val)}async validateAndFillParams(t){if(!t.additionalData.strategyId)return D("StrategyId is required");if(!t.fromAsset||!t.toAsset)return D("Source and destination assets are required for swap");if(t.fromAsset.chain===t.toAsset.chain&&t.fromAsset.atomicSwapAddress===t.toAsset.atomicSwapAddress)return D("Source and destination assets cannot be the same");if(ge.isMainnet(t.fromAsset.chain)&&!ge.isMainnet(t.toAsset.chain)||!ge.isMainnet(t.fromAsset.chain)&&ge.isMainnet(t.toAsset.chain))return D("Both assets should be on the same network (either mainnet or testnet)");const r=this.validateAmount(t.sendAmount);if(r.error)return D(r.error);const n=this.validateAmount(t.receiveAmount);if(n.error)return D(n.error);if(r<n)return D("Send amount should be greater than receive amount");const i=ge.getTimeLock(t.fromAsset.chain);if(!i)return D("Unsupported chain for timelock");if(ge.isBitcoin(t.fromAsset.chain)||ge.isBitcoin(t.toAsset.chain)){if(!t.additionalData.btcAddress)return D("btcAddress in additionalData is required if source or destination chain is bitcoin, it is used as refund or redeem address.");const a=await this.initializeSMandBTCWallet();if(a.error)return D(a.error);if(!this._btcWallet)return D("btcWallet is required for bitcoin chain. Please provide btcWallet in the constructor")}const s=await this.getAddresses(t.fromAsset.chain);if(s.error)return D(s.error);const o=await this.getAddresses(t.toAsset.chain);return o.error?D(o.error):re({sendAddress:s.val,receiveAddress:o.val,timelock:t.timelock??i})}async getAddresses(t){var n;switch(ge.getBlockchainType(t)){case ge.BlockchainType.EVM:return this._evmHTLC?re(this._evmHTLC.htlcActorAddress):D("Please provide evmHTLC when initializing garden");case ge.BlockchainType.Bitcoin:{const i=await((n=this._btcWallet)==null?void 0:n.getPublicKey());return!i||!Af(i)?D("Invalid btc public key"):re(rr(i))}case ge.BlockchainType.Starknet:return this._starknetHTLC?re(this._starknetHTLC.htlcActorAddress):D("Please provide starknetHTLC when initializing garden");default:return D("Unsupported chain")}}validateAmount(t){if(t==null||t.includes("."))return D("Invalid amount ",t);const r=new wf(t);return!r.isInteger()||r.isNaN()||r.lt(0)||r.isLessThanOrEqualTo(0)?D("Invalid amount ",t):re(r)}async pollOrder(t){let r=await this._orderbook.getOrder(t,!0),n=0;for(;n<this.getOrderThreshold;){if(await q.sleep(1e3),n++,r.error){if(!r.error.includes("result is undefined"))return D(r.error)}else if(r.val&&r.val.create_order.create_id.toLowerCase()===t.toLowerCase())return re(r.val);r=await this._orderbook.getOrder(t,!0)}return D(`Order not found, createOrder id: ${t}`)}async execute(t=5e3){return await this.initializeSMandBTCWallet(),await this._orderbook.subscribeOrders(this._digestKey.userId,!0,t,async r=>{if(r.data.length===0)return;const n=await this.filterExpiredAndAssignStatus(r.data);if(!n.error){this.emit("onPendingOrdersChanged",n.val);for(let i=0;i<n.val.length;i++){const s=n.val[i],o=Os(s.status);if(ge.isBitcoin(s.source_swap.chain)&&s.status===de.InitiateDetected){const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");continue}await this.postRefundSACP(s,a)}switch(o){case ke.Redeem:{const a=await this._secretManager.generateSecret(s.create_order.nonce);if(a.error){this.emit("error",s,a.error);return}switch(ge.getBlockchainType(s.destination_swap.chain)){case ge.BlockchainType.EVM:{await this.evmRedeem(s,a.val.secret);break}case ge.BlockchainType.Bitcoin:{const u=this.btcWallet;if(!u){this.emit("error",s,"BTC wallet not found");return}await this.btcRedeem(u,s,a.val.secret);break}case ge.BlockchainType.Starknet:{await this.starknetRedeem(s,a.val.secret);break}default:this.emit("error",s,"Unsupported chain: "+s.destination_swap.chain)}break}case ke.Refund:{switch(ge.getBlockchainType(s.source_swap.chain)){case ge.BlockchainType.EVM:{this.emit("error",s,"EVM refund is automatically done by relay service");break}case ge.BlockchainType.Bitcoin:{const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");return}await this.btcRefund(a,s);break}case ge.BlockchainType.Starknet:{this.emit("error",s,"Starknet refund is automatically done by relay service");break}default:this.emit("error",s,"Unsupported chain: "+s.source_swap.chain)}break}}}}},!0,{per_page:500})}async evmRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing evm redeem"),this.orderExecutorCache.get(t,ke.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._evmHTLC){this.emit("error",t,"EVMHTLC is required");return}const i=await this._evmHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,ke.Redeem,t.destination_swap.redeem_tx_hash);return}this.orderExecutorCache.set(t,ke.Redeem,i.val),this.emit("success",t,ke.Redeem,i.val)}async starknetRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing starknet redeem"),this.orderExecutorCache.get(t,ke.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._starknetHTLC){this.emit("error",t,"StarknetHTLC is required");return}const i=await this._starknetHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,ke.Redeem,t.destination_swap.redeem_tx_hash);return}i.val&&(this.orderExecutorCache.set(t,ke.Redeem,i.val),this.emit("success",t,ke.Redeem,i.val))}async btcRedeem(t,r,n){var a,u;const i=this.bitcoinRedeemCache.get(r.create_order.create_id),s=(a=r.destination_swap.initiate_tx_hash.split(",").at(-1))==null?void 0:a.split(":").at(0);if(!s){this.emit("error",r,"Failed to get initiate_tx_hash");return}let o=!1;if(i)if(i.redeemedFromUTXO&&i.redeemedFromUTXO!==s)o=!0,this.emit("log",r.create_order.create_id,"rbf btc redeem");else if(i.redeemedAt&&Date.now()-i.redeemedAt>1e3*60*15)this.emit("log",r.create_order.create_id,"redeem not confirmed in last 15 minutes"),o=!0;else{this.emit("log",r.create_order.create_id,"btcRedeem: already redeemed");return}else if(r.destination_swap.redeem_tx_hash&&!Number(r.destination_swap.redeem_block_number))try{const h=await(await t.getProvider()).getTransaction(r.destination_swap.redeem_tx_hash);let d=!1;for(const p of h.vin)if(p.txid===s){d=!0;break}if(d){this.emit("log",r.create_order.create_id,"already a valid redeem");let p=0;try{const[_]=await(await t.getProvider()).getTransactionTimes([r.destination_swap.redeem_tx_hash]);_!==0&&(p=_)}catch{p=Date.now()}this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:p,redeemTxHash:r.destination_swap.redeem_tx_hash});return}o=!0}catch(h){if(h.message.includes("Transaction not found"))o=!0;else{this.emit("error",r,"Failed to get redeem tx: "+h);return}}this.emit("log",r.create_order.create_id,"executing btc redeem");try{const d=await(await yn.from(t,Number(r.destination_swap.amount),r.create_order.secret_hash,rr(r.destination_swap.initiator),rr(r.destination_swap.redeemer),r.destination_swap.timelock,o?[s]:[])).getRedeemHex(ir(n),(u=r.create_order.additional_data)==null?void 0:u.bitcoin_optional_recipient),p=await this.broadcastRedeemTx(d,r.create_order.create_id);if(p.error||!p.val){this.emit("error",r,p.error||"Failed to broadcast redeem tx");return}o?(this.emit("log",r.create_order.create_id,"rbf: btc redeem success"),this.emit("rbf",r,p.val)):this.emit("success",r,ke.Redeem,p.val),this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:Date.now(),redeemTxHash:p.val})}catch(h){console.log("error",h),this.emit("error",r,"Failed btc redeem: "+h)}}async btcRefund(t,r){var n;if(!this.orderExecutorCache.get(r,ke.Refund)){this.emit("log",r.create_order.create_id,"executing btc refund");try{const s=await(await yn.from(t,Number(r.source_swap.amount),r.create_order.secret_hash,rr(r.source_swap.initiator),rr(r.source_swap.redeemer),r.source_swap.timelock)).refund((n=r.create_order.additional_data)==null?void 0:n.bitcoin_optional_recipient);this.orderExecutorCache.set(r,ke.Refund,s),this.emit("success",r,ke.Refund,s)}catch(i){this.emit("error",r,"Failed btc refund: "+i)}}}async postRefundSACP(t,r){const n=this.refundSacpCache.get(t.create_order.create_id);if((n==null?void 0:n.initTxHash)===t.source_swap.initiate_tx_hash)return;const i=await yn.from(r,Number(t.source_swap.amount),t.create_order.secret_hash,rr(t.source_swap.initiator),rr(t.source_swap.redeemer),t.source_swap.timelock),s=t.create_order.additional_data.bitcoin_optional_recipient;if(s)try{const o=await i.generateInstantRefundSACP(s),a=this._orderbookUrl.endpoint("orders/add-instant-refund-sacp");(await kt.post(a,{headers:{"Content-Type":"application/json"},body:JSON.stringify({order_id:t.create_order.create_id,instant_refund_tx_bytes:o})})).status==="Ok"&&this.refundSacpCache.set(t.create_order.create_id,{initTxHash:t.source_swap.initiate_tx_hash})}catch(o){this.emit("error",t,"Failed to generate and post SACP: "+o);return}}async filterExpiredAndAssignStatus(t){var i;if(t.length===0)return re([]);const r=await((i=this._blockNumberFetcher)==null?void 0:i.fetchBlockNumbers());if(r.error)return D(r.error);const n=[];for(let s=0;s<t.length;s++){const o=t[s];if(va(o))continue;const a=o.source_swap.chain,u=o.destination_swap.chain,h=r==null?void 0:r.val[a],d=r==null?void 0:r.val[u];if(!h||!d){this.emit("error",o,"Error while fetching CurrentBlockNumbers");continue}const p=Ps(o,h,d);n.push({...o,status:p})}return re(n)}async broadcastRedeemTx(t,r){try{const n=this._orderbookUrl.endpoint("gasless/order/bitcoin/redeem"),i=await this._auth.getAuthHeaders(),o=await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...i.val},body:JSON.stringify({redeem_tx_bytes:t,order_id:r})})).json();return o.status==="Ok"&&o.result?re(o.result):D(o.error)}catch(n){return D("Failed to broadcast redeem tx: "+n)}}}const Ay="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class ky{constructor(t,r){this.callData=new Ve.CallData(lf),this.nodeUrl=r||Ay,this.account=t}get htlcActorAddress(){return this.account.address}async getHTLCContract(t,r=!1){const n=r?t.destination_swap.asset:t.source_swap.asset;return new Ve.Contract(df,n,this.account)}async initiate(t){try{const n=await(await this.getHTLCContract(t)).token();if(!n)throw new Error("Token address retrieval failed");const i=Ve.num.toHex(n),s=Ve.cairo.uint256(BigInt(t.source_swap.amount));try{const a=await hf(this.account,i,t.source_swap.asset,BigInt(t.source_swap.amount),this.nodeUrl);if(a.error)return D(a.error)}catch(a){return D(`Allowance check failed: ${a}`)}const o=await this.account.execute({contractAddress:t.source_swap.asset,entrypoint:"initiate",calldata:[t.source_swap.redeemer,BigInt(t.source_swap.timelock),s.low,s.high,...q.hexToU32Array(t.create_order.secret_hash)]});if(!o.transaction_hash)throw new Error("Failed to initiate HTLC transaction");return re(o.transaction_hash)}catch(r){return D(`HTLC Initiation Error: ${r}`)}}async redeem(t,r){try{const n=await this.getHTLCContract(t,!0),i=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,s=await this.account.execute({contractAddress:n.address,entrypoint:"redeem",calldata:Ve.CallData.compile({swap_id:i,secret:q.hexToU32Array(r)})});return s.transaction_hash?re(s.transaction_hash):D("Failed to redeem HTLC transaction")}catch{return D("HTLC Redeem Error")}}async refund(t){try{const r=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,n=await this.getHTLCContract(t),i=await this.account.execute({contractAddress:n.address,entrypoint:"refund",calldata:{orderId:r}});return i.transaction_hash?re(i.transaction_hash):D("Failed to refund HTLC transaction")}catch{return D("HTLC Refund Error")}}}exports.API=Ir;exports.BlockNumberFetcher=Xa;exports.EvmRelay=uf;exports.Garden=so;exports.OrderActions=ke;exports.OrderStatus=de;exports.ParseOrderStatus=Ps;exports.ParseSwapStatus=ms;exports.Quote=Ja;exports.SecretManager=_n;exports.StarknetHTLC=ky;exports.StarknetRelay=pf;exports.SwapStatus=we;exports.constructOrderPair=_a;exports.evmToViemChainMap=cf;exports.filterDeadlineExpiredOrders=If;exports.isExpired=mn;exports.parseAction=Bf;exports.parseActionFromStatus=Os;exports.switchOrAddNetwork=ff;exports.validateBTCAddress=kf;
|
|
28
|
+
`.trim().replace(/\s+/g," "))}leaves(){return[{version:Fn,output:this.redeemLeaf()},[{version:Fn,output:this.refundLeaf()},{version:Fn,output:this.instantRefundLeaf()}]]}generateMerkleProofFor(t){const r=this.leafHash(1),n=this.leafHash(2),i=this.leafHash(0);switch(t){case 1:{const s=_f(i,n);return[ie.crypto.taggedHash("TapBranch",Buffer.concat(s))]}case 0:return[n,r];case 2:return[i,r];default:throw new Error(Be.invalidLeaf)}}}function vr(e,t){const r=[];for(let n=0;n<t;n++)r.push(e);return r}class Wl{constructor(){this.cache={}}set(t,r,n,i){const s={txHash:n,timeStamp:Date.now(),btcRedeemUTXO:i};this.cache[`${r}_${t.create_order.create_id}`]=s}get(t,r){return this.cache[`${r}_${t.create_order.create_id}`]||null}remove(t,r){delete this.cache[`${r}_${t.create_order.create_id}`]}}class ql{constructor(){this.cache={}}set(t,r){this.cache[t]=r}get(t){return this.cache[t]||null}}class Ka{constructor(t,r){this.url=new K.Url(t).endpoint("blocknumbers").endpoint(r)}async fetchBlockNumbers(){try{const t=await xt.get(this.url);return re(t)}catch(t){return D("Failed to fetch block numbers",t)}}}const fn={mainnet:{orderbook:"https://api.garden.finance",auth:"https://api.garden.finance/auth",quote:"https://api.garden.finance/quote",info:"https://api.garden.finance/info",evmRelay:"https://api.garden.finance/relayer",starknetRelay:""},testnet:{orderbook:"https://testnet.api.garden.finance",auth:"https://testnet.api.garden.finance/auth",quote:"https://testnet.api.garden.finance/quote",info:"https://testnet.api.garden.finance/info",evmRelay:"https://testnet.api.garden.finance/relayer",starknetRelay:""},localnet:{orderbook:"",auth:"",quote:"",info:"",evmRelay:"",starknetRelay:""}};class Ya{constructor(t){this.quoteUrl=new K.Url(t)}async getQuote(t,r,n=!1,i){try{const s=this.quoteUrl.endpoint("/").addSearchParams({order_pair:t,amount:r.toString(),exact_out:n.toString()}),o=await xt.get(s,{retryCount:0,...i});return o.error?D(o.error):o.result?re(o.result):D("GetQuote: Unexpected error, result is undefined")}catch(s){return D("GetQuote:",String(s))}}async getAttestedQuote(t){try{const r=await xt.post(this.quoteUrl.endpoint("/attested").toString(),{body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});return r.error?D(r.error):r.result?re(r.result):D("GetAttestedQuote: Unexpected error, result is undefined")}catch(r){return console.log("error :",r),D("GetAttestedQuote:",String(r))}}async getStrategies(){try{const t=await xt.get(this.quoteUrl.endpoint("/strategies"));if(t.error)return D(t.error);if(!t.result)return D("GetStrategies: Unexpected error, result is undefined");const r={};for(const n of Object.values(t.result)){const i=ma(n.source_chain,n.source_asset.asset,n.dest_chain,n.dest_asset.asset);r[i]={id:n.id,minAmount:n.min_amount,maxAmount:n.max_amount,fee:n.fee}}return re(r)}catch(t){return D("GetStrategies:",String(t))}}}var Xa={},Lr={},Nr={};Object.defineProperty(Nr,"__esModule",{value:!0});Nr.testnet=Nr.bitcoin=void 0;Nr.bitcoin={messagePrefix:`Bitcoin Signed Message:
|
|
29
|
+
`,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128};Nr.testnet={messagePrefix:`Bitcoin Signed Message:
|
|
30
|
+
`,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239};var Ja={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.maybe=e.Boolean=e.Array=e.Buffer256bit=e.Network=e.typeforce=void 0,e.typeforce=Aa,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})(Ja);var bs={exports:{}},ws={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(e,t){var r=Bt,n=r.Buffer;function i(o,a){for(var u in o)a[u]=o[u]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?e.exports=r:(i(r,t),t.Buffer=s);function s(o,a,u){return n(o,a,u)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,u)},s.alloc=function(o,a,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var h=n(o);return a!==void 0?typeof u=="string"?h.fill(a,u):h.fill(a):h.fill(0),h},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r.SlowBuffer(o)}})(ws,ws.exports);var Ve=ws.exports,Yi=65536,Kl=4294967295;function Yl(){throw new Error(`Secure random number generation is not supported by this browser.
|
|
31
|
+
Use Chrome, Firefox or Internet Explorer 11`)}var Xl=Ve.Buffer,ei=jt.crypto||jt.msCrypto;ei&&ei.getRandomValues?bs.exports=Jl:bs.exports=Yl;function Jl(e,t){if(e>Kl)throw new RangeError("requested too many random bytes");var r=Xl.allocUnsafe(e);if(e>0)if(e>Yi)for(var n=0;n<e;n+=Yi)ei.getRandomValues(r.slice(n,n+Yi));else ei.getRandomValues(r);return typeof t=="function"?process.nextTick(function(){t(null,r)}):r}var Ql=bs.exports,gs={exports:{}};typeof Object.create=="function"?gs.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:gs.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}};var Oe=gs.exports,_s={exports:{}},Ws={exports:{}},Pr=typeof Reflect=="object"?Reflect:null,Co=Pr&&typeof Pr.apply=="function"?Pr.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},Yn;Pr&&typeof Pr.ownKeys=="function"?Yn=Pr.ownKeys:Object.getOwnPropertySymbols?Yn=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Yn=function(t){return Object.getOwnPropertyNames(t)};function Zl(e){console&&console.warn&&console.warn(e)}var Qa=Number.isNaN||function(t){return t!==t};function se(){se.init.call(this)}Ws.exports=se;Ws.exports.once=nh;se.EventEmitter=se;se.prototype._events=void 0;se.prototype._eventsCount=0;se.prototype._maxListeners=void 0;var Uo=10;function wi(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(se,"defaultMaxListeners",{enumerable:!0,get:function(){return Uo},set:function(e){if(typeof e!="number"||e<0||Qa(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Uo=e}});se.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};se.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Qa(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Za(e){return e._maxListeners===void 0?se.defaultMaxListeners:e._maxListeners}se.prototype.getMaxListeners=function(){return Za(this)};se.prototype.emit=function(t){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=t==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var u=s[t];if(u===void 0)return!1;if(typeof u=="function")Co(u,this,r);else for(var h=u.length,d=ic(u,h),n=0;n<h;++n)Co(d[n],this,r);return!0};function ec(e,t,r,n){var i,s,o;if(wi(r),s=e._events,s===void 0?(s=e._events=Object.create(null),e._eventsCount=0):(s.newListener!==void 0&&(e.emit("newListener",t,r.listener?r.listener:r),s=e._events),o=s[t]),o===void 0)o=s[t]=r,++e._eventsCount;else if(typeof o=="function"?o=s[t]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=Za(e),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=o.length,Zl(a)}return e}se.prototype.addListener=function(t,r){return ec(this,t,r,!1)};se.prototype.on=se.prototype.addListener;se.prototype.prependListener=function(t,r){return ec(this,t,r,!0)};function eh(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function tc(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=eh.bind(n);return i.listener=r,n.wrapFn=i,i}se.prototype.once=function(t,r){return wi(r),this.on(t,tc(this,t,r)),this};se.prototype.prependOnceListener=function(t,r){return wi(r),this.prependListener(t,tc(this,t,r)),this};se.prototype.removeListener=function(t,r){var n,i,s,o,a;if(wi(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():th(n,s),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,a||r)}return this};se.prototype.off=se.prototype.removeListener;se.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[t],typeof r=="function")this.removeListener(t,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(t,r[i]);return this};function rc(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?rh(i):ic(i,i.length)}se.prototype.listeners=function(t){return rc(this,t,!0)};se.prototype.rawListeners=function(t){return rc(this,t,!1)};se.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):nc.call(e,t)};se.prototype.listenerCount=nc;function nc(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}se.prototype.eventNames=function(){return this._eventsCount>0?Yn(this._events):[]};function ic(e,t){for(var r=new Array(t),n=0;n<t;++n)r[n]=e[n];return r}function th(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function rh(e){for(var t=new Array(e.length),r=0;r<t.length;++r)t[r]=e[r].listener||e[r];return t}function nh(e,t){return new Promise(function(r,n){function i(o){e.removeListener(t,s),n(o)}function s(){typeof e.removeListener=="function"&&e.removeListener("error",i),r([].slice.call(arguments))}sc(e,t,s,{once:!0}),t!=="error"&&ih(e,i,{once:!0})})}function ih(e,t,r){typeof e.on=="function"&&sc(e,"error",t,r)}function sc(e,t,r,n){if(typeof e.on=="function")n.once?e.once(t,r):e.on(t,r);else if(typeof e.addEventListener=="function")e.addEventListener(t,function i(s){n.once&&e.removeEventListener(t,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}var oc=Ws.exports,ac=oc.EventEmitter;const sh={},oh=Object.freeze(Object.defineProperty({__proto__:null,default:sh},Symbol.toStringTag,{value:"Module"})),qs=wa(oh);var Xi,Lo;function ah(){if(Lo)return Xi;Lo=1;function e(I,B){var T=Object.keys(I);if(Object.getOwnPropertySymbols){var R=Object.getOwnPropertySymbols(I);B&&(R=R.filter(function(U){return Object.getOwnPropertyDescriptor(I,U).enumerable})),T.push.apply(T,R)}return T}function t(I){for(var B=1;B<arguments.length;B++){var T=arguments[B]!=null?arguments[B]:{};B%2?e(Object(T),!0).forEach(function(R){r(I,R,T[R])}):Object.getOwnPropertyDescriptors?Object.defineProperties(I,Object.getOwnPropertyDescriptors(T)):e(Object(T)).forEach(function(R){Object.defineProperty(I,R,Object.getOwnPropertyDescriptor(T,R))})}return I}function r(I,B,T){return B=o(B),B in I?Object.defineProperty(I,B,{value:T,enumerable:!0,configurable:!0,writable:!0}):I[B]=T,I}function n(I,B){if(!(I instanceof B))throw new TypeError("Cannot call a class as a function")}function i(I,B){for(var T=0;T<B.length;T++){var R=B[T];R.enumerable=R.enumerable||!1,R.configurable=!0,"value"in R&&(R.writable=!0),Object.defineProperty(I,o(R.key),R)}}function s(I,B,T){return B&&i(I.prototype,B),Object.defineProperty(I,"prototype",{writable:!1}),I}function o(I){var B=a(I,"string");return typeof B=="symbol"?B:String(B)}function a(I,B){if(typeof I!="object"||I===null)return I;var T=I[Symbol.toPrimitive];if(T!==void 0){var R=T.call(I,B);if(typeof R!="object")return R;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(I)}var u=Bt,h=u.Buffer,d=qs,y=d.inspect,v=y&&y.custom||"inspect";function p(I,B,T){h.prototype.copy.call(I,B,T)}return Xi=function(){function I(){n(this,I),this.head=null,this.tail=null,this.length=0}return s(I,[{key:"push",value:function(T){var R={data:T,next:null};this.length>0?this.tail.next=R:this.head=R,this.tail=R,++this.length}},{key:"unshift",value:function(T){var R={data:T,next:this.head};this.length===0&&(this.tail=R),this.head=R,++this.length}},{key:"shift",value:function(){if(this.length!==0){var T=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,T}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(T){if(this.length===0)return"";for(var R=this.head,U=""+R.data;R=R.next;)U+=T+R.data;return U}},{key:"concat",value:function(T){if(this.length===0)return h.alloc(0);for(var R=h.allocUnsafe(T>>>0),U=this.head,x=0;U;)p(U.data,R,x),x+=U.data.length,U=U.next;return R}},{key:"consume",value:function(T,R){var U;return T<this.head.data.length?(U=this.head.data.slice(0,T),this.head.data=this.head.data.slice(T)):T===this.head.data.length?U=this.shift():U=R?this._getString(T):this._getBuffer(T),U}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(T){var R=this.head,U=1,x=R.data;for(T-=x.length;R=R.next;){var g=R.data,S=T>g.length?g.length:T;if(S===g.length?x+=g:x+=g.slice(0,T),T-=S,T===0){S===g.length?(++U,R.next?this.head=R.next:this.head=this.tail=null):(this.head=R,R.data=g.slice(S));break}++U}return this.length-=U,x}},{key:"_getBuffer",value:function(T){var R=h.allocUnsafe(T),U=this.head,x=1;for(U.data.copy(R),T-=U.data.length;U=U.next;){var g=U.data,S=T>g.length?g.length:T;if(g.copy(R,R.length-T,0,S),T-=S,T===0){S===g.length?(++x,U.next?this.head=U.next:this.head=this.tail=null):(this.head=U,U.data=g.slice(S));break}++x}return this.length-=x,R}},{key:v,value:function(T,R){return y(this,t(t({},R),{},{depth:0,customInspect:!1}))}}]),I}(),Xi}function ch(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(vs,this,e)):process.nextTick(vs,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(s){!t&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(Xn,r):(r._writableState.errorEmitted=!0,process.nextTick(No,r,s)):process.nextTick(No,r,s):t?(process.nextTick(Xn,r),t(s)):process.nextTick(Xn,r)}),this)}function No(e,t){vs(e,t),Xn(e)}function Xn(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function fh(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function vs(e,t){e.emit("error",t)}function uh(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}var cc={destroy:ch,undestroy:fh,errorOrDestroy:uh},pr={};function lh(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var fc={};function et(e,t,r){r||(r=Error);function n(s,o,a){return typeof t=="string"?t:t(s,o,a)}var i=function(s){lh(o,s);function o(a,u,h){return s.call(this,n(a,u,h))||this}return o}(r);i.prototype.name=r.name,i.prototype.code=e,fc[e]=i}function Fo(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(n){return String(n)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function hh(e,t,r){return e.substr(0,t.length)===t}function dh(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function ph(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}et("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);et("ERR_INVALID_ARG_TYPE",function(e,t,r){var n;typeof t=="string"&&hh(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var i;if(dh(e," argument"))i="The ".concat(e," ").concat(n," ").concat(Fo(t,"type"));else{var s=ph(e,".")?"property":"argument";i='The "'.concat(e,'" ').concat(s," ").concat(n," ").concat(Fo(t,"type"))}return i+=". Received type ".concat(typeof r),i},TypeError);et("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");et("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});et("ERR_STREAM_PREMATURE_CLOSE","Premature close");et("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});et("ERR_MULTIPLE_CALLBACK","Callback called multiple times");et("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");et("ERR_STREAM_WRITE_AFTER_END","write after end");et("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);et("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);et("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");pr.codes=fc;var yh=pr.codes.ERR_INVALID_OPT_VALUE;function mh(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function bh(e,t,r,n){var i=mh(t,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var s=n?r:"highWaterMark";throw new yh(s,i)}return Math.floor(i)}return e.objectMode?16:16*1024}var uc={getHighWaterMark:bh},wh=gh;function gh(e,t){if(Ji("noDeprecation"))return e;var r=!1;function n(){if(!r){if(Ji("throwDeprecation"))throw new Error(t);Ji("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return n}function Ji(e){try{if(!jt.localStorage)return!1}catch{return!1}var t=jt.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}var Qi,Ho;function lc(){if(Ho)return Qi;Ho=1,Qi=M;function e(k){var A=this;this.next=null,this.entry=null,this.finish=function(){pt(A,k)}}var t;M.WritableState=E;var r={deprecate:wh},n=ac,i=Bt.Buffer,s=(typeof jt<"u"?jt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function o(k){return i.from(k)}function a(k){return i.isBuffer(k)||k instanceof s}var u=cc,h=uc,d=h.getHighWaterMark,y=pr.codes,v=y.ERR_INVALID_ARG_TYPE,p=y.ERR_METHOD_NOT_IMPLEMENTED,I=y.ERR_MULTIPLE_CALLBACK,B=y.ERR_STREAM_CANNOT_PIPE,T=y.ERR_STREAM_DESTROYED,R=y.ERR_STREAM_NULL_VALUES,U=y.ERR_STREAM_WRITE_AFTER_END,x=y.ERR_UNKNOWN_ENCODING,g=u.errorOrDestroy;Oe(M,n);function S(){}function E(k,A,F){t=t||Fr(),k=k||{},typeof F!="boolean"&&(F=A instanceof t),this.objectMode=!!k.objectMode,F&&(this.objectMode=this.objectMode||!!k.writableObjectMode),this.highWaterMark=d(this,k,"writableHighWaterMark",F),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var z=k.decodeStrings===!1;this.decodeStrings=!z,this.defaultEncoding=k.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(Y){ve(A,Y)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=k.emitClose!==!1,this.autoDestroy=!!k.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new e(this)}E.prototype.getBuffer=function(){for(var A=this.bufferedRequest,F=[];A;)F.push(A),A=A.next;return F},function(){try{Object.defineProperty(E.prototype,"buffer",{get:r.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}}();var H;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(H=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(A){return H.call(this,A)?!0:this!==M?!1:A&&A._writableState instanceof E}})):H=function(A){return A instanceof this};function M(k){t=t||Fr();var A=this instanceof t;if(!A&&!H.call(M,this))return new M(k);this._writableState=new E(k,this,A),this.writable=!0,k&&(typeof k.write=="function"&&(this._write=k.write),typeof k.writev=="function"&&(this._writev=k.writev),typeof k.destroy=="function"&&(this._destroy=k.destroy),typeof k.final=="function"&&(this._final=k.final)),n.call(this)}M.prototype.pipe=function(){g(this,new B)};function O(k,A){var F=new U;g(k,F),process.nextTick(A,F)}function q(k,A,F,z){var Y;return F===null?Y=new R:typeof F!="string"&&!A.objectMode&&(Y=new v("chunk",["string","Buffer"],F)),Y?(g(k,Y),process.nextTick(z,Y),!1):!0}M.prototype.write=function(k,A,F){var z=this._writableState,Y=!1,b=!z.objectMode&&a(k);return b&&!i.isBuffer(k)&&(k=o(k)),typeof A=="function"&&(F=A,A=null),b?A="buffer":A||(A=z.defaultEncoding),typeof F!="function"&&(F=S),z.ending?O(this,F):(b||q(this,z,k,F))&&(z.pendingcb++,Y=j(this,z,b,k,A,F)),Y},M.prototype.cork=function(){this._writableState.corked++},M.prototype.uncork=function(){var k=this._writableState;k.corked&&(k.corked--,!k.writing&&!k.corked&&!k.bufferProcessing&&k.bufferedRequest&&We(this,k))},M.prototype.setDefaultEncoding=function(A){if(typeof A=="string"&&(A=A.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((A+"").toLowerCase())>-1))throw new x(A);return this._writableState.defaultEncoding=A,this},Object.defineProperty(M.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function C(k,A,F){return!k.objectMode&&k.decodeStrings!==!1&&typeof A=="string"&&(A=i.from(A,F)),A}Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function j(k,A,F,z,Y,b){if(!F){var w=C(A,z,Y);z!==w&&(F=!0,Y="buffer",z=w)}var N=A.objectMode?1:z.length;A.length+=N;var $=A.length<A.highWaterMark;if($||(A.needDrain=!0),A.writing||A.corked){var pe=A.lastBufferedRequest;A.lastBufferedRequest={chunk:z,encoding:Y,isBuf:F,callback:b,next:null},pe?pe.next=A.lastBufferedRequest:A.bufferedRequest=A.lastBufferedRequest,A.bufferedRequestCount+=1}else G(k,A,!1,N,z,Y,b);return $}function G(k,A,F,z,Y,b,w){A.writelen=z,A.writecb=w,A.writing=!0,A.sync=!0,A.destroyed?A.onwrite(new T("write")):F?k._writev(Y,A.onwrite):k._write(Y,b,A.onwrite),A.sync=!1}function V(k,A,F,z,Y){--A.pendingcb,F?(process.nextTick(Y,z),process.nextTick(qe,k,A),k._writableState.errorEmitted=!0,g(k,z)):(Y(z),k._writableState.errorEmitted=!0,g(k,z),qe(k,A))}function ee(k){k.writing=!1,k.writecb=null,k.length-=k.writelen,k.writelen=0}function ve(k,A){var F=k._writableState,z=F.sync,Y=F.writecb;if(typeof Y!="function")throw new I;if(ee(F),A)V(k,F,z,A,Y);else{var b=It(F)||k.destroyed;!b&&!F.corked&&!F.bufferProcessing&&F.bufferedRequest&&We(k,F),z?process.nextTick(ze,k,F,b,Y):ze(k,F,b,Y)}}function ze(k,A,F,z){F||tt(k,A),A.pendingcb--,z(),qe(k,A)}function tt(k,A){A.length===0&&A.needDrain&&(A.needDrain=!1,k.emit("drain"))}function We(k,A){A.bufferProcessing=!0;var F=A.bufferedRequest;if(k._writev&&F&&F.next){var z=A.bufferedRequestCount,Y=new Array(z),b=A.corkedRequestsFree;b.entry=F;for(var w=0,N=!0;F;)Y[w]=F,F.isBuf||(N=!1),F=F.next,w+=1;Y.allBuffers=N,G(k,A,!0,A.length,Y,"",b.finish),A.pendingcb++,A.lastBufferedRequest=null,b.next?(A.corkedRequestsFree=b.next,b.next=null):A.corkedRequestsFree=new e(A),A.bufferedRequestCount=0}else{for(;F;){var $=F.chunk,pe=F.encoding,X=F.callback,ne=A.objectMode?1:$.length;if(G(k,A,!1,ne,$,pe,X),F=F.next,A.bufferedRequestCount--,A.writing)break}F===null&&(A.lastBufferedRequest=null)}A.bufferedRequest=F,A.bufferProcessing=!1}M.prototype._write=function(k,A,F){F(new p("_write()"))},M.prototype._writev=null,M.prototype.end=function(k,A,F){var z=this._writableState;return typeof k=="function"?(F=k,k=null,A=null):typeof A=="function"&&(F=A,A=null),k!=null&&this.write(k,A),z.corked&&(z.corked=1,this.uncork()),z.ending||Pt(this,z,F),this},Object.defineProperty(M.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function It(k){return k.ending&&k.length===0&&k.bufferedRequest===null&&!k.finished&&!k.writing}function de(k,A){k._final(function(F){A.pendingcb--,F&&g(k,F),A.prefinished=!0,k.emit("prefinish"),qe(k,A)})}function Ee(k,A){!A.prefinished&&!A.finalCalled&&(typeof k._final=="function"&&!A.destroyed?(A.pendingcb++,A.finalCalled=!0,process.nextTick(de,k,A)):(A.prefinished=!0,k.emit("prefinish")))}function qe(k,A){var F=It(A);if(F&&(Ee(k,A),A.pendingcb===0&&(A.finished=!0,k.emit("finish"),A.autoDestroy))){var z=k._readableState;(!z||z.autoDestroy&&z.endEmitted)&&k.destroy()}return F}function Pt(k,A,F){A.ending=!0,qe(k,A),F&&(A.finished?process.nextTick(F):k.once("finish",F)),A.ended=!0,k.writable=!1}function pt(k,A,F){var z=k.entry;for(k.entry=null;z;){var Y=z.callback;A.pendingcb--,Y(F),z=z.next}A.corkedRequestsFree.next=k}return Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState===void 0?!1:this._writableState.destroyed},set:function(A){this._writableState&&(this._writableState.destroyed=A)}}),M.prototype.destroy=u.destroy,M.prototype._undestroy=u.undestroy,M.prototype._destroy=function(k,A){A(k)},Qi}var Zi,Mo;function Fr(){if(Mo)return Zi;Mo=1;var e=Object.keys||function(h){var d=[];for(var y in h)d.push(y);return d};Zi=o;var t=dc(),r=lc();Oe(o,t);for(var n=e(r.prototype),i=0;i<n.length;i++){var s=n[i];o.prototype[s]||(o.prototype[s]=r.prototype[s])}function o(h){if(!(this instanceof o))return new o(h);t.call(this,h),r.call(this,h),this.allowHalfOpen=!0,h&&(h.readable===!1&&(this.readable=!1),h.writable===!1&&(this.writable=!1),h.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",a)))}Object.defineProperty(o.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(o.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(o.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}});function a(){this._writableState.ended||process.nextTick(u,this)}function u(h){h.end()}return Object.defineProperty(o.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0||this._writableState===void 0?!1:this._readableState.destroyed&&this._writableState.destroyed},set:function(d){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=d,this._writableState.destroyed=d)}}),Zi}var ti={},Ks=Ve.Buffer,Do=Ks.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function _h(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function vh(e){var t=_h(e);if(typeof t!="string"&&(Ks.isEncoding===Do||!Do(e)))throw new Error("Unknown encoding: "+e);return t||e}ti.StringDecoder=vn;function vn(e){this.encoding=vh(e);var t;switch(this.encoding){case"utf16le":this.text=Th,this.end=Bh,t=4;break;case"utf8":this.fillLast=Sh,t=4;break;case"base64":this.text=Ih,this.end=Ph,t=3;break;default:this.write=Oh,this.end=Rh;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Ks.allocUnsafe(t)}vn.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""};vn.prototype.end=kh;vn.prototype.text=Ah;vn.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length};function es(e){return e<=127?0:e>>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function Eh(e,t,r){var n=t.length-1;if(n<r)return 0;var i=es(t[n]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--n<r||i===-2?0:(i=es(t[n]),i>=0?(i>0&&(e.lastNeed=i-2),i):--n<r||i===-2?0:(i=es(t[n]),i>=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function xh(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"�"}}function Sh(e){var t=this.lastTotal-this.lastNeed,r=xh(this,e);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function Ah(e,t){var r=Eh(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function kh(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t}function Th(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function Bh(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function Ih(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function Ph(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Oh(e){return e.toString(this.encoding)}function Rh(e){return e&&e.length?this.write(e):""}var $o=pr.codes.ERR_STREAM_PREMATURE_CLOSE;function Ch(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];e.apply(this,n)}}}function Uh(){}function Lh(e){return e.setHeader&&typeof e.abort=="function"}function hc(e,t,r){if(typeof t=="function")return hc(e,null,t);t||(t={}),r=Ch(r||Uh);var n=t.readable||t.readable!==!1&&e.readable,i=t.writable||t.writable!==!1&&e.writable,s=function(){e.writable||a()},o=e._writableState&&e._writableState.finished,a=function(){i=!1,o=!0,n||r.call(e)},u=e._readableState&&e._readableState.endEmitted,h=function(){n=!1,u=!0,i||r.call(e)},d=function(I){r.call(e,I)},y=function(){var I;if(n&&!u)return(!e._readableState||!e._readableState.ended)&&(I=new $o),r.call(e,I);if(i&&!o)return(!e._writableState||!e._writableState.ended)&&(I=new $o),r.call(e,I)},v=function(){e.req.on("finish",a)};return Lh(e)?(e.on("complete",a),e.on("abort",y),e.req?v():e.on("request",v)):i&&!e._writableState&&(e.on("end",s),e.on("close",s)),e.on("end",h),e.on("finish",a),t.error!==!1&&e.on("error",d),e.on("close",y),function(){e.removeListener("complete",a),e.removeListener("abort",y),e.removeListener("request",v),e.req&&e.req.removeListener("finish",a),e.removeListener("end",s),e.removeListener("close",s),e.removeListener("finish",a),e.removeListener("end",h),e.removeListener("error",d),e.removeListener("close",y)}}var Ys=hc,ts,jo;function Nh(){if(jo)return ts;jo=1;var e;function t(x,g,S){return g=r(g),g in x?Object.defineProperty(x,g,{value:S,enumerable:!0,configurable:!0,writable:!0}):x[g]=S,x}function r(x){var g=n(x,"string");return typeof g=="symbol"?g:String(g)}function n(x,g){if(typeof x!="object"||x===null)return x;var S=x[Symbol.toPrimitive];if(S!==void 0){var E=S.call(x,g);if(typeof E!="object")return E;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(x)}var i=Ys,s=Symbol("lastResolve"),o=Symbol("lastReject"),a=Symbol("error"),u=Symbol("ended"),h=Symbol("lastPromise"),d=Symbol("handlePromise"),y=Symbol("stream");function v(x,g){return{value:x,done:g}}function p(x){var g=x[s];if(g!==null){var S=x[y].read();S!==null&&(x[h]=null,x[s]=null,x[o]=null,g(v(S,!1)))}}function I(x){process.nextTick(p,x)}function B(x,g){return function(S,E){x.then(function(){if(g[u]){S(v(void 0,!0));return}g[d](S,E)},E)}}var T=Object.getPrototypeOf(function(){}),R=Object.setPrototypeOf((e={get stream(){return this[y]},next:function(){var g=this,S=this[a];if(S!==null)return Promise.reject(S);if(this[u])return Promise.resolve(v(void 0,!0));if(this[y].destroyed)return new Promise(function(O,q){process.nextTick(function(){g[a]?q(g[a]):O(v(void 0,!0))})});var E=this[h],H;if(E)H=new Promise(B(E,this));else{var M=this[y].read();if(M!==null)return Promise.resolve(v(M,!1));H=new Promise(this[d])}return this[h]=H,H}},t(e,Symbol.asyncIterator,function(){return this}),t(e,"return",function(){var g=this;return new Promise(function(S,E){g[y].destroy(null,function(H){if(H){E(H);return}S(v(void 0,!0))})})}),e),T),U=function(g){var S,E=Object.create(R,(S={},t(S,y,{value:g,writable:!0}),t(S,s,{value:null,writable:!0}),t(S,o,{value:null,writable:!0}),t(S,a,{value:null,writable:!0}),t(S,u,{value:g._readableState.endEmitted,writable:!0}),t(S,d,{value:function(M,O){var q=E[y].read();q?(E[h]=null,E[s]=null,E[o]=null,M(v(q,!1))):(E[s]=M,E[o]=O)},writable:!0}),S));return E[h]=null,i(g,function(H){if(H&&H.code!=="ERR_STREAM_PREMATURE_CLOSE"){var M=E[o];M!==null&&(E[h]=null,E[s]=null,E[o]=null,M(H)),E[a]=H;return}var O=E[s];O!==null&&(E[h]=null,E[s]=null,E[o]=null,O(v(void 0,!0))),E[u]=!0}),g.on("readable",I.bind(null,E)),E};return ts=U,ts}var rs,Go;function Fh(){return Go||(Go=1,rs=function(){throw new Error("Readable.from is not available in the browser")}),rs}var ns,Vo;function dc(){if(Vo)return ns;Vo=1,ns=O;var e;O.ReadableState=M,oc.EventEmitter;var t=function(w,N){return w.listeners(N).length},r=ac,n=Bt.Buffer,i=(typeof jt<"u"?jt:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function s(b){return n.from(b)}function o(b){return n.isBuffer(b)||b instanceof i}var a=qs,u;a&&a.debuglog?u=a.debuglog("stream"):u=function(){};var h=ah(),d=cc,y=uc,v=y.getHighWaterMark,p=pr.codes,I=p.ERR_INVALID_ARG_TYPE,B=p.ERR_STREAM_PUSH_AFTER_EOF,T=p.ERR_METHOD_NOT_IMPLEMENTED,R=p.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,U,x,g;Oe(O,r);var S=d.errorOrDestroy,E=["error","close","destroy","pause","resume"];function H(b,w,N){if(typeof b.prependListener=="function")return b.prependListener(w,N);!b._events||!b._events[w]?b.on(w,N):Array.isArray(b._events[w])?b._events[w].unshift(N):b._events[w]=[N,b._events[w]]}function M(b,w,N){e=e||Fr(),b=b||{},typeof N!="boolean"&&(N=w instanceof e),this.objectMode=!!b.objectMode,N&&(this.objectMode=this.objectMode||!!b.readableObjectMode),this.highWaterMark=v(this,b,"readableHighWaterMark",N),this.buffer=new h,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=b.emitClose!==!1,this.autoDestroy=!!b.autoDestroy,this.destroyed=!1,this.defaultEncoding=b.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,b.encoding&&(U||(U=ti.StringDecoder),this.decoder=new U(b.encoding),this.encoding=b.encoding)}function O(b){if(e=e||Fr(),!(this instanceof O))return new O(b);var w=this instanceof e;this._readableState=new M(b,this,w),this.readable=!0,b&&(typeof b.read=="function"&&(this._read=b.read),typeof b.destroy=="function"&&(this._destroy=b.destroy)),r.call(this)}Object.defineProperty(O.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(w){this._readableState&&(this._readableState.destroyed=w)}}),O.prototype.destroy=d.destroy,O.prototype._undestroy=d.undestroy,O.prototype._destroy=function(b,w){w(b)},O.prototype.push=function(b,w){var N=this._readableState,$;return N.objectMode?$=!0:typeof b=="string"&&(w=w||N.defaultEncoding,w!==N.encoding&&(b=n.from(b,w),w=""),$=!0),q(this,b,w,!1,$)},O.prototype.unshift=function(b){return q(this,b,null,!0,!1)};function q(b,w,N,$,pe){u("readableAddChunk",w);var X=b._readableState;if(w===null)X.reading=!1,ve(b,X);else{var ne;if(pe||(ne=j(X,w)),ne)S(b,ne);else if(X.objectMode||w&&w.length>0)if(typeof w!="string"&&!X.objectMode&&Object.getPrototypeOf(w)!==n.prototype&&(w=s(w)),$)X.endEmitted?S(b,new R):C(b,X,w,!0);else if(X.ended)S(b,new B);else{if(X.destroyed)return!1;X.reading=!1,X.decoder&&!N?(w=X.decoder.write(w),X.objectMode||w.length!==0?C(b,X,w,!1):We(b,X)):C(b,X,w,!1)}else $||(X.reading=!1,We(b,X))}return!X.ended&&(X.length<X.highWaterMark||X.length===0)}function C(b,w,N,$){w.flowing&&w.length===0&&!w.sync?(w.awaitDrain=0,b.emit("data",N)):(w.length+=w.objectMode?1:N.length,$?w.buffer.unshift(N):w.buffer.push(N),w.needReadable&&ze(b)),We(b,w)}function j(b,w){var N;return!o(w)&&typeof w!="string"&&w!==void 0&&!b.objectMode&&(N=new I("chunk",["string","Buffer","Uint8Array"],w)),N}O.prototype.isPaused=function(){return this._readableState.flowing===!1},O.prototype.setEncoding=function(b){U||(U=ti.StringDecoder);var w=new U(b);this._readableState.decoder=w,this._readableState.encoding=this._readableState.decoder.encoding;for(var N=this._readableState.buffer.head,$="";N!==null;)$+=w.write(N.data),N=N.next;return this._readableState.buffer.clear(),$!==""&&this._readableState.buffer.push($),this._readableState.length=$.length,this};var G=1073741824;function V(b){return b>=G?b=G:(b--,b|=b>>>1,b|=b>>>2,b|=b>>>4,b|=b>>>8,b|=b>>>16,b++),b}function ee(b,w){return b<=0||w.length===0&&w.ended?0:w.objectMode?1:b!==b?w.flowing&&w.length?w.buffer.head.data.length:w.length:(b>w.highWaterMark&&(w.highWaterMark=V(b)),b<=w.length?b:w.ended?w.length:(w.needReadable=!0,0))}O.prototype.read=function(b){u("read",b),b=parseInt(b,10);var w=this._readableState,N=b;if(b!==0&&(w.emittedReadable=!1),b===0&&w.needReadable&&((w.highWaterMark!==0?w.length>=w.highWaterMark:w.length>0)||w.ended))return u("read: emitReadable",w.length,w.ended),w.length===0&&w.ended?F(this):ze(this),null;if(b=ee(b,w),b===0&&w.ended)return w.length===0&&F(this),null;var $=w.needReadable;u("need readable",$),(w.length===0||w.length-b<w.highWaterMark)&&($=!0,u("length less than watermark",$)),w.ended||w.reading?($=!1,u("reading or ended",$)):$&&(u("do read"),w.reading=!0,w.sync=!0,w.length===0&&(w.needReadable=!0),this._read(w.highWaterMark),w.sync=!1,w.reading||(b=ee(N,w)));var pe;return b>0?pe=A(b,w):pe=null,pe===null?(w.needReadable=w.length<=w.highWaterMark,b=0):(w.length-=b,w.awaitDrain=0),w.length===0&&(w.ended||(w.needReadable=!0),N!==b&&w.ended&&F(this)),pe!==null&&this.emit("data",pe),pe};function ve(b,w){if(u("onEofChunk"),!w.ended){if(w.decoder){var N=w.decoder.end();N&&N.length&&(w.buffer.push(N),w.length+=w.objectMode?1:N.length)}w.ended=!0,w.sync?ze(b):(w.needReadable=!1,w.emittedReadable||(w.emittedReadable=!0,tt(b)))}}function ze(b){var w=b._readableState;u("emitReadable",w.needReadable,w.emittedReadable),w.needReadable=!1,w.emittedReadable||(u("emitReadable",w.flowing),w.emittedReadable=!0,process.nextTick(tt,b))}function tt(b){var w=b._readableState;u("emitReadable_",w.destroyed,w.length,w.ended),!w.destroyed&&(w.length||w.ended)&&(b.emit("readable"),w.emittedReadable=!1),w.needReadable=!w.flowing&&!w.ended&&w.length<=w.highWaterMark,k(b)}function We(b,w){w.readingMore||(w.readingMore=!0,process.nextTick(It,b,w))}function It(b,w){for(;!w.reading&&!w.ended&&(w.length<w.highWaterMark||w.flowing&&w.length===0);){var N=w.length;if(u("maybeReadMore read 0"),b.read(0),N===w.length)break}w.readingMore=!1}O.prototype._read=function(b){S(this,new T("_read()"))},O.prototype.pipe=function(b,w){var N=this,$=this._readableState;switch($.pipesCount){case 0:$.pipes=b;break;case 1:$.pipes=[$.pipes,b];break;default:$.pipes.push(b);break}$.pipesCount+=1,u("pipe count=%d opts=%j",$.pipesCount,w);var pe=(!w||w.end!==!1)&&b!==process.stdout&&b!==process.stderr,X=pe?Ot:Jt;$.endEmitted?process.nextTick(X):N.once("end",X),b.on("unpipe",ne);function ne(l,c){u("onunpipe"),l===N&&c&&c.hasUnpiped===!1&&(c.hasUnpiped=!0,br())}function Ot(){u("onend"),b.end()}var mr=de(N);b.on("drain",mr);var jr=!1;function br(){u("cleanup"),b.removeListener("close",Gr),b.removeListener("finish",Je),b.removeListener("drain",mr),b.removeListener("error",Xt),b.removeListener("unpipe",ne),N.removeListener("end",Ot),N.removeListener("end",Jt),N.removeListener("data",Ke),jr=!0,$.awaitDrain&&(!b._writableState||b._writableState.needDrain)&&mr()}N.on("data",Ke);function Ke(l){u("ondata");var c=b.write(l);u("dest.write",c),c===!1&&(($.pipesCount===1&&$.pipes===b||$.pipesCount>1&&Y($.pipes,b)!==-1)&&!jr&&(u("false write response, pause",$.awaitDrain),$.awaitDrain++),N.pause())}function Xt(l){u("onerror",l),Jt(),b.removeListener("error",Xt),t(b,"error")===0&&S(b,l)}H(b,"error",Xt);function Gr(){b.removeListener("finish",Je),Jt()}b.once("close",Gr);function Je(){u("onfinish"),b.removeListener("close",Gr),Jt()}b.once("finish",Je);function Jt(){u("unpipe"),N.unpipe(b)}return b.emit("pipe",N),$.flowing||(u("pipe resume"),N.resume()),b};function de(b){return function(){var N=b._readableState;u("pipeOnDrain",N.awaitDrain),N.awaitDrain&&N.awaitDrain--,N.awaitDrain===0&&t(b,"data")&&(N.flowing=!0,k(b))}}O.prototype.unpipe=function(b){var w=this._readableState,N={hasUnpiped:!1};if(w.pipesCount===0)return this;if(w.pipesCount===1)return b&&b!==w.pipes?this:(b||(b=w.pipes),w.pipes=null,w.pipesCount=0,w.flowing=!1,b&&b.emit("unpipe",this,N),this);if(!b){var $=w.pipes,pe=w.pipesCount;w.pipes=null,w.pipesCount=0,w.flowing=!1;for(var X=0;X<pe;X++)$[X].emit("unpipe",this,{hasUnpiped:!1});return this}var ne=Y(w.pipes,b);return ne===-1?this:(w.pipes.splice(ne,1),w.pipesCount-=1,w.pipesCount===1&&(w.pipes=w.pipes[0]),b.emit("unpipe",this,N),this)},O.prototype.on=function(b,w){var N=r.prototype.on.call(this,b,w),$=this._readableState;return b==="data"?($.readableListening=this.listenerCount("readable")>0,$.flowing!==!1&&this.resume()):b==="readable"&&!$.endEmitted&&!$.readableListening&&($.readableListening=$.needReadable=!0,$.flowing=!1,$.emittedReadable=!1,u("on readable",$.length,$.reading),$.length?ze(this):$.reading||process.nextTick(qe,this)),N},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(b,w){var N=r.prototype.removeListener.call(this,b,w);return b==="readable"&&process.nextTick(Ee,this),N},O.prototype.removeAllListeners=function(b){var w=r.prototype.removeAllListeners.apply(this,arguments);return(b==="readable"||b===void 0)&&process.nextTick(Ee,this),w};function Ee(b){var w=b._readableState;w.readableListening=b.listenerCount("readable")>0,w.resumeScheduled&&!w.paused?w.flowing=!0:b.listenerCount("data")>0&&b.resume()}function qe(b){u("readable nexttick read 0"),b.read(0)}O.prototype.resume=function(){var b=this._readableState;return b.flowing||(u("resume"),b.flowing=!b.readableListening,Pt(this,b)),b.paused=!1,this};function Pt(b,w){w.resumeScheduled||(w.resumeScheduled=!0,process.nextTick(pt,b,w))}function pt(b,w){u("resume",w.reading),w.reading||b.read(0),w.resumeScheduled=!1,b.emit("resume"),k(b),w.flowing&&!w.reading&&b.read(0)}O.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function k(b){var w=b._readableState;for(u("flow",w.flowing);w.flowing&&b.read()!==null;);}O.prototype.wrap=function(b){var w=this,N=this._readableState,$=!1;b.on("end",function(){if(u("wrapped end"),N.decoder&&!N.ended){var ne=N.decoder.end();ne&&ne.length&&w.push(ne)}w.push(null)}),b.on("data",function(ne){if(u("wrapped data"),N.decoder&&(ne=N.decoder.write(ne)),!(N.objectMode&&ne==null)&&!(!N.objectMode&&(!ne||!ne.length))){var Ot=w.push(ne);Ot||($=!0,b.pause())}});for(var pe in b)this[pe]===void 0&&typeof b[pe]=="function"&&(this[pe]=function(Ot){return function(){return b[Ot].apply(b,arguments)}}(pe));for(var X=0;X<E.length;X++)b.on(E[X],this.emit.bind(this,E[X]));return this._read=function(ne){u("wrapped _read",ne),$&&($=!1,b.resume())},this},typeof Symbol=="function"&&(O.prototype[Symbol.asyncIterator]=function(){return x===void 0&&(x=Nh()),x(this)}),Object.defineProperty(O.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(O.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(O.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(w){this._readableState&&(this._readableState.flowing=w)}}),O._fromList=A,Object.defineProperty(O.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function A(b,w){if(w.length===0)return null;var N;return w.objectMode?N=w.buffer.shift():!b||b>=w.length?(w.decoder?N=w.buffer.join(""):w.buffer.length===1?N=w.buffer.first():N=w.buffer.concat(w.length),w.buffer.clear()):N=w.buffer.consume(b,w.decoder),N}function F(b){var w=b._readableState;u("endReadable",w.endEmitted),w.endEmitted||(w.ended=!0,process.nextTick(z,w,b))}function z(b,w){if(u("endReadableNT",b.endEmitted,b.length),!b.endEmitted&&b.length===0&&(b.endEmitted=!0,w.readable=!1,w.emit("end"),b.autoDestroy)){var N=w._writableState;(!N||N.autoDestroy&&N.finished)&&w.destroy()}}typeof Symbol=="function"&&(O.from=function(b,w){return g===void 0&&(g=Fh()),g(O,b,w)});function Y(b,w){for(var N=0,$=b.length;N<$;N++)if(b[N]===w)return N;return-1}return ns}var pc=Tt,gi=pr.codes,Hh=gi.ERR_METHOD_NOT_IMPLEMENTED,Mh=gi.ERR_MULTIPLE_CALLBACK,Dh=gi.ERR_TRANSFORM_ALREADY_TRANSFORMING,$h=gi.ERR_TRANSFORM_WITH_LENGTH_0,_i=Fr();Oe(Tt,_i);function jh(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new Mh);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function Tt(e){if(!(this instanceof Tt))return new Tt(e);_i.call(this,e),this._transformState={afterTransform:jh.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&(typeof e.transform=="function"&&(this._transform=e.transform),typeof e.flush=="function"&&(this._flush=e.flush)),this.on("prefinish",Gh)}function Gh(){var e=this;typeof this._flush=="function"&&!this._readableState.destroyed?this._flush(function(t,r){zo(e,t,r)}):zo(this,null,null)}Tt.prototype.push=function(e,t){return this._transformState.needTransform=!1,_i.prototype.push.call(this,e,t)};Tt.prototype._transform=function(e,t,r){r(new Hh("_transform()"))};Tt.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}};Tt.prototype._read=function(e){var t=this._transformState;t.writechunk!==null&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0};Tt.prototype._destroy=function(e,t){_i.prototype._destroy.call(this,e,function(r){t(r)})};function zo(e,t,r){if(t)return e.emit("error",t);if(r!=null&&e.push(r),e._writableState.length)throw new $h;if(e._transformState.transforming)throw new Dh;return e.push(null)}var Vh=mn,yc=pc;Oe(mn,yc);function mn(e){if(!(this instanceof mn))return new mn(e);yc.call(this,e)}mn.prototype._transform=function(e,t,r){r(null,e)};var is;function zh(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var mc=pr.codes,Wh=mc.ERR_MISSING_ARGS,qh=mc.ERR_STREAM_DESTROYED;function Wo(e){if(e)throw e}function Kh(e){return e.setHeader&&typeof e.abort=="function"}function Yh(e,t,r,n){n=zh(n);var i=!1;e.on("close",function(){i=!0}),is===void 0&&(is=Ys),is(e,{readable:t,writable:r},function(o){if(o)return n(o);i=!0,n()});var s=!1;return function(o){if(!i&&!s){if(s=!0,Kh(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(o||new qh("pipe"))}}}function qo(e){e()}function Xh(e,t){return e.pipe(t)}function Jh(e){return!e.length||typeof e[e.length-1]!="function"?Wo:e.pop()}function Qh(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var n=Jh(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Wh("streams");var i,s=t.map(function(o,a){var u=a<t.length-1,h=a>0;return Yh(o,u,h,function(d){i||(i=d),d&&s.forEach(qo),!u&&(s.forEach(qo),n(i))})});return t.reduce(Xh)}var Zh=Qh;(function(e,t){t=e.exports=dc(),t.Stream=t,t.Readable=t,t.Writable=lc(),t.Duplex=Fr(),t.Transform=pc,t.PassThrough=Vh,t.finished=Ys,t.pipeline=Zh})(_s,_s.exports);var bc=_s.exports,ri=Ve.Buffer,wc=bc.Transform,ed=Oe;function td(e,t){if(!ri.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function qt(e){wc.call(this),this._block=ri.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}ed(qt,wc);qt.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};qt.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};qt.prototype.update=function(e,t){if(td(e,"Data"),this._finalized)throw new Error("Digest already called");ri.isBuffer(e)||(e=ri.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)r[i++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s)this._length[s]+=o,o=this._length[s]/4294967296|0,o>0&&(this._length[s]-=4294967296*o);return this};qt.prototype._update=function(){throw new Error("_update is not implemented")};qt.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};qt.prototype._digest=function(){throw new Error("_digest is not implemented")};var rd=qt,nd=Oe,gc=rd,id=Ve.Buffer,sd=new Array(16);function vi(){gc.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}nd(vi,gc);vi.prototype._update=function(){for(var e=sd,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);var r=this._a,n=this._b,i=this._c,s=this._d;r=Re(r,n,i,s,e[0],3614090360,7),s=Re(s,r,n,i,e[1],3905402710,12),i=Re(i,s,r,n,e[2],606105819,17),n=Re(n,i,s,r,e[3],3250441966,22),r=Re(r,n,i,s,e[4],4118548399,7),s=Re(s,r,n,i,e[5],1200080426,12),i=Re(i,s,r,n,e[6],2821735955,17),n=Re(n,i,s,r,e[7],4249261313,22),r=Re(r,n,i,s,e[8],1770035416,7),s=Re(s,r,n,i,e[9],2336552879,12),i=Re(i,s,r,n,e[10],4294925233,17),n=Re(n,i,s,r,e[11],2304563134,22),r=Re(r,n,i,s,e[12],1804603682,7),s=Re(s,r,n,i,e[13],4254626195,12),i=Re(i,s,r,n,e[14],2792965006,17),n=Re(n,i,s,r,e[15],1236535329,22),r=Ce(r,n,i,s,e[1],4129170786,5),s=Ce(s,r,n,i,e[6],3225465664,9),i=Ce(i,s,r,n,e[11],643717713,14),n=Ce(n,i,s,r,e[0],3921069994,20),r=Ce(r,n,i,s,e[5],3593408605,5),s=Ce(s,r,n,i,e[10],38016083,9),i=Ce(i,s,r,n,e[15],3634488961,14),n=Ce(n,i,s,r,e[4],3889429448,20),r=Ce(r,n,i,s,e[9],568446438,5),s=Ce(s,r,n,i,e[14],3275163606,9),i=Ce(i,s,r,n,e[3],4107603335,14),n=Ce(n,i,s,r,e[8],1163531501,20),r=Ce(r,n,i,s,e[13],2850285829,5),s=Ce(s,r,n,i,e[2],4243563512,9),i=Ce(i,s,r,n,e[7],1735328473,14),n=Ce(n,i,s,r,e[12],2368359562,20),r=Ue(r,n,i,s,e[5],4294588738,4),s=Ue(s,r,n,i,e[8],2272392833,11),i=Ue(i,s,r,n,e[11],1839030562,16),n=Ue(n,i,s,r,e[14],4259657740,23),r=Ue(r,n,i,s,e[1],2763975236,4),s=Ue(s,r,n,i,e[4],1272893353,11),i=Ue(i,s,r,n,e[7],4139469664,16),n=Ue(n,i,s,r,e[10],3200236656,23),r=Ue(r,n,i,s,e[13],681279174,4),s=Ue(s,r,n,i,e[0],3936430074,11),i=Ue(i,s,r,n,e[3],3572445317,16),n=Ue(n,i,s,r,e[6],76029189,23),r=Ue(r,n,i,s,e[9],3654602809,4),s=Ue(s,r,n,i,e[12],3873151461,11),i=Ue(i,s,r,n,e[15],530742520,16),n=Ue(n,i,s,r,e[2],3299628645,23),r=Le(r,n,i,s,e[0],4096336452,6),s=Le(s,r,n,i,e[7],1126891415,10),i=Le(i,s,r,n,e[14],2878612391,15),n=Le(n,i,s,r,e[5],4237533241,21),r=Le(r,n,i,s,e[12],1700485571,6),s=Le(s,r,n,i,e[3],2399980690,10),i=Le(i,s,r,n,e[10],4293915773,15),n=Le(n,i,s,r,e[1],2240044497,21),r=Le(r,n,i,s,e[8],1873313359,6),s=Le(s,r,n,i,e[15],4264355552,10),i=Le(i,s,r,n,e[6],2734768916,15),n=Le(n,i,s,r,e[13],1309151649,21),r=Le(r,n,i,s,e[4],4149444226,6),s=Le(s,r,n,i,e[11],3174756917,10),i=Le(i,s,r,n,e[2],718787259,15),n=Le(n,i,s,r,e[9],3951481745,21),this._a=this._a+r|0,this._b=this._b+n|0,this._c=this._c+i|0,this._d=this._d+s|0};vi.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=id.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e};function Ei(e,t){return e<<t|e>>>32-t}function Re(e,t,r,n,i,s,o){return Ei(e+(t&r|~t&n)+i+s|0,o)+t|0}function Ce(e,t,r,n,i,s,o){return Ei(e+(t&n|r&~n)+i+s|0,o)+t|0}function Ue(e,t,r,n,i,s,o){return Ei(e+(t^r^n)+i+s|0,o)+t|0}function Le(e,t,r,n,i,s,o){return Ei(e+(r^(t|~n))+i+s|0,o)+t|0}var od=vi,ni=Ve.Buffer,_c=bc.Transform,ad=Oe;function cd(e,t){if(!ni.isBuffer(e)&&typeof e!="string")throw new TypeError(t+" must be a string or a buffer")}function Kt(e){_c.call(this),this._block=ni.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}ad(Kt,_c);Kt.prototype._transform=function(e,t,r){var n=null;try{this.update(e,t)}catch(i){n=i}r(n)};Kt.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(r){t=r}e(t)};Kt.prototype.update=function(e,t){if(cd(e,"Data"),this._finalized)throw new Error("Digest already called");ni.isBuffer(e)||(e=ni.from(e,t));for(var r=this._block,n=0;this._blockOffset+e.length-n>=this._blockSize;){for(var i=this._blockOffset;i<this._blockSize;)r[i++]=e[n++];this._update(),this._blockOffset=0}for(;n<e.length;)r[this._blockOffset++]=e[n++];for(var s=0,o=e.length*8;o>0;++s)this._length[s]+=o,o=this._length[s]/4294967296|0,o>0&&(this._length[s]-=4294967296*o);return this};Kt.prototype._update=function(){throw new Error("_update is not implemented")};Kt.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();e!==void 0&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var r=0;r<4;++r)this._length[r]=0;return t};Kt.prototype._digest=function(){throw new Error("_digest is not implemented")};var fd=Kt,ss=Bt.Buffer,ud=Oe,vc=fd,ld=new Array(16),Yr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Xr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Jr=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Qr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Zr=[0,1518500249,1859775393,2400959708,2840853838],en=[1352829926,1548603684,1836072691,2053994217,0];function xi(){vc.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}ud(xi,vc);xi.prototype._update=function(){for(var e=ld,t=0;t<16;++t)e[t]=this._block.readInt32LE(t*4);for(var r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._a|0,u=this._b|0,h=this._c|0,d=this._d|0,y=this._e|0,v=0;v<80;v+=1){var p,I;v<16?(p=Ko(r,n,i,s,o,e[Yr[v]],Zr[0],Jr[v]),I=Qo(a,u,h,d,y,e[Xr[v]],en[0],Qr[v])):v<32?(p=Yo(r,n,i,s,o,e[Yr[v]],Zr[1],Jr[v]),I=Jo(a,u,h,d,y,e[Xr[v]],en[1],Qr[v])):v<48?(p=Xo(r,n,i,s,o,e[Yr[v]],Zr[2],Jr[v]),I=Xo(a,u,h,d,y,e[Xr[v]],en[2],Qr[v])):v<64?(p=Jo(r,n,i,s,o,e[Yr[v]],Zr[3],Jr[v]),I=Yo(a,u,h,d,y,e[Xr[v]],en[3],Qr[v])):(p=Qo(r,n,i,s,o,e[Yr[v]],Zr[4],Jr[v]),I=Ko(a,u,h,d,y,e[Xr[v]],en[4],Qr[v])),r=o,o=s,s=ar(i,10),i=n,n=p,a=y,y=d,d=ar(h,10),h=u,u=I}var B=this._b+i+d|0;this._b=this._c+s+y|0,this._c=this._d+o+a|0,this._d=this._e+r+u|0,this._e=this._a+n+h|0,this._a=B};xi.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=ss.alloc?ss.alloc(20):new ss(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e};function ar(e,t){return e<<t|e>>>32-t}function Ko(e,t,r,n,i,s,o,a){return ar(e+(t^r^n)+s+o|0,a)+i|0}function Yo(e,t,r,n,i,s,o,a){return ar(e+(t&r|~t&n)+s+o|0,a)+i|0}function Xo(e,t,r,n,i,s,o,a){return ar(e+((t|~r)^n)+s+o|0,a)+i|0}function Jo(e,t,r,n,i,s,o,a){return ar(e+(t&n|r&~n)+s+o|0,a)+i|0}function Qo(e,t,r,n,i,s,o,a){return ar(e+(t^(r|~n))+s+o|0,a)+i|0}var hd=xi,Ec={exports:{}},xc=Ve.Buffer;function Si(e,t){this._block=xc.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}Si.prototype.update=function(e,t){typeof e=="string"&&(t=t||"utf8",e=xc.from(e,t));for(var r=this._block,n=this._blockSize,i=e.length,s=this._len,o=0;o<i;){for(var a=s%n,u=Math.min(i-o,n-a),h=0;h<u;h++)r[a+h]=e[o+h];s+=u,o+=u,s%n===0&&this._update(r)}return this._len+=i,this};Si.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=this._len*8;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var n=(r&4294967295)>>>0,i=(r-n)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(n,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s};Si.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var Mr=Si,dd=Oe,Sc=Mr,pd=Ve.Buffer,yd=[1518500249,1859775393,-1894007588,-899497514],md=new Array(80);function En(){this.init(),this._w=md,Sc.call(this,64,56)}dd(En,Sc);En.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function bd(e){return e<<5|e>>>27}function wd(e){return e<<30|e>>>2}function gd(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}En.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)t[a]=e.readInt32BE(a*4);for(;a<80;++a)t[a]=t[a-3]^t[a-8]^t[a-14]^t[a-16];for(var u=0;u<80;++u){var h=~~(u/20),d=bd(r)+gd(h,n,i,s)+o+t[u]+yd[h]|0;o=s,s=i,i=wd(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};En.prototype._hash=function(){var e=pd.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var _d=En,vd=Oe,Ac=Mr,Ed=Ve.Buffer,xd=[1518500249,1859775393,-1894007588,-899497514],Sd=new Array(80);function xn(){this.init(),this._w=Sd,Ac.call(this,64,56)}vd(xn,Ac);xn.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this};function Ad(e){return e<<1|e>>>31}function kd(e){return e<<5|e>>>27}function Td(e){return e<<30|e>>>2}function Bd(e,t,r,n){return e===0?t&r|~t&n:e===2?t&r|t&n|r&n:t^r^n}xn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=0;a<16;++a)t[a]=e.readInt32BE(a*4);for(;a<80;++a)t[a]=Ad(t[a-3]^t[a-8]^t[a-14]^t[a-16]);for(var u=0;u<80;++u){var h=~~(u/20),d=kd(r)+Bd(h,n,i,s)+o+t[u]+xd[h]|0;o=s,s=i,i=Td(n),n=r,r=d}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0};xn.prototype._hash=function(){var e=Ed.allocUnsafe(20);return e.writeInt32BE(this._a|0,0),e.writeInt32BE(this._b|0,4),e.writeInt32BE(this._c|0,8),e.writeInt32BE(this._d|0,12),e.writeInt32BE(this._e|0,16),e};var Id=xn,Pd=Oe,kc=Mr,Od=Ve.Buffer,Rd=[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],Cd=new Array(64);function Sn(){this.init(),this._w=Cd,kc.call(this,64,56)}Pd(Sn,kc);Sn.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this};function Ud(e,t,r){return r^e&(t^r)}function Ld(e,t,r){return e&t|r&(e|t)}function Nd(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function Fd(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function Hd(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function Md(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}Sn.prototype._update=function(e){for(var t=this._w,r=this._a|0,n=this._b|0,i=this._c|0,s=this._d|0,o=this._e|0,a=this._f|0,u=this._g|0,h=this._h|0,d=0;d<16;++d)t[d]=e.readInt32BE(d*4);for(;d<64;++d)t[d]=Md(t[d-2])+t[d-7]+Hd(t[d-15])+t[d-16]|0;for(var y=0;y<64;++y){var v=h+Fd(o)+Ud(o,a,u)+Rd[y]+t[y]|0,p=Nd(r)+Ld(r,n,i)|0;h=u,u=a,a=o,o=s+v|0,s=i,i=n,n=r,r=v+p|0}this._a=r+this._a|0,this._b=n+this._b|0,this._c=i+this._c|0,this._d=s+this._d|0,this._e=o+this._e|0,this._f=a+this._f|0,this._g=u+this._g|0,this._h=h+this._h|0};Sn.prototype._hash=function(){var e=Od.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e};var Tc=Sn,Dd=Oe,$d=Tc,jd=Mr,Gd=Ve.Buffer,Vd=new Array(64);function Ai(){this.init(),this._w=Vd,jd.call(this,64,56)}Dd(Ai,$d);Ai.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this};Ai.prototype._hash=function(){var e=Gd.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e};var zd=Ai,Wd=Oe,Bc=Mr,qd=Ve.Buffer,Zo=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],Kd=new Array(160);function An(){this.init(),this._w=Kd,Bc.call(this,128,112)}Wd(An,Bc);An.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this};function ea(e,t,r){return r^e&(t^r)}function ta(e,t,r){return e&t|r&(e|t)}function ra(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function na(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function Yd(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function Xd(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function Jd(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function Qd(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function Te(e,t){return e>>>0<t>>>0?1:0}An.prototype._update=function(e){for(var t=this._w,r=this._ah|0,n=this._bh|0,i=this._ch|0,s=this._dh|0,o=this._eh|0,a=this._fh|0,u=this._gh|0,h=this._hh|0,d=this._al|0,y=this._bl|0,v=this._cl|0,p=this._dl|0,I=this._el|0,B=this._fl|0,T=this._gl|0,R=this._hl|0,U=0;U<32;U+=2)t[U]=e.readInt32BE(U*4),t[U+1]=e.readInt32BE(U*4+4);for(;U<160;U+=2){var x=t[U-30],g=t[U-15*2+1],S=Yd(x,g),E=Xd(g,x);x=t[U-2*2],g=t[U-2*2+1];var H=Jd(x,g),M=Qd(g,x),O=t[U-7*2],q=t[U-7*2+1],C=t[U-16*2],j=t[U-16*2+1],G=E+q|0,V=S+O+Te(G,E)|0;G=G+M|0,V=V+H+Te(G,M)|0,G=G+j|0,V=V+C+Te(G,j)|0,t[U]=V,t[U+1]=G}for(var ee=0;ee<160;ee+=2){V=t[ee],G=t[ee+1];var ve=ta(r,n,i),ze=ta(d,y,v),tt=ra(r,d),We=ra(d,r),It=na(o,I),de=na(I,o),Ee=Zo[ee],qe=Zo[ee+1],Pt=ea(o,a,u),pt=ea(I,B,T),k=R+de|0,A=h+It+Te(k,R)|0;k=k+pt|0,A=A+Pt+Te(k,pt)|0,k=k+qe|0,A=A+Ee+Te(k,qe)|0,k=k+G|0,A=A+V+Te(k,G)|0;var F=We+ze|0,z=tt+ve+Te(F,We)|0;h=u,R=T,u=a,T=B,a=o,B=I,I=p+k|0,o=s+A+Te(I,p)|0,s=i,p=v,i=n,v=y,n=r,y=d,d=k+F|0,r=A+z+Te(d,k)|0}this._al=this._al+d|0,this._bl=this._bl+y|0,this._cl=this._cl+v|0,this._dl=this._dl+p|0,this._el=this._el+I|0,this._fl=this._fl+B|0,this._gl=this._gl+T|0,this._hl=this._hl+R|0,this._ah=this._ah+r+Te(this._al,d)|0,this._bh=this._bh+n+Te(this._bl,y)|0,this._ch=this._ch+i+Te(this._cl,v)|0,this._dh=this._dh+s+Te(this._dl,p)|0,this._eh=this._eh+o+Te(this._el,I)|0,this._fh=this._fh+a+Te(this._fl,B)|0,this._gh=this._gh+u+Te(this._gl,T)|0,this._hh=this._hh+h+Te(this._hl,R)|0};An.prototype._hash=function(){var e=qd.allocUnsafe(64);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e};var Ic=An,Zd=Oe,e0=Ic,t0=Mr,r0=Ve.Buffer,n0=new Array(160);function ki(){this.init(),this._w=n0,t0.call(this,128,112)}Zd(ki,e0);ki.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this};ki.prototype._hash=function(){var e=r0.allocUnsafe(48);function t(r,n,i){e.writeInt32BE(r,i),e.writeInt32BE(n,i+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e};var i0=ki,yr=Ec.exports=function(t){t=t.toLowerCase();var r=yr[t];if(!r)throw new Error(t+" is not supported (we accept pull requests)");return new r};yr.sha=_d;yr.sha1=Id;yr.sha224=zd;yr.sha256=Tc;yr.sha384=i0;yr.sha512=Ic;var s0=Ec.exports,lt=Ve.Buffer,Pc=qs.Transform,o0=ti.StringDecoder,a0=Oe;function nt(e){Pc.call(this),this.hashMode=typeof e=="string",this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}a0(nt,Pc);var c0=typeof Uint8Array<"u",f0=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(lt.prototype instanceof Uint8Array||lt.TYPED_ARRAY_SUPPORT);function u0(e,t){if(e instanceof lt)return e;if(typeof e=="string")return lt.from(e,t);if(f0&&ArrayBuffer.isView(e)){if(e.byteLength===0)return lt.alloc(0);var r=lt.from(e.buffer,e.byteOffset,e.byteLength);if(r.byteLength===e.byteLength)return r}if(c0&&e instanceof Uint8Array||lt.isBuffer(e)&&e.constructor&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e))return lt.from(e);throw new TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}nt.prototype.update=function(e,t,r){var n=u0(e,t),i=this._update(n);return this.hashMode?this:(r&&(i=this._toString(i,r)),i)};nt.prototype.setAutoPadding=function(){};nt.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};nt.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};nt.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};nt.prototype._transform=function(e,t,r){var n;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(i){n=i}finally{r(n)}};nt.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(r){t=r}e(t)};nt.prototype._finalOrDigest=function(e){var t=this.__final()||lt.alloc(0);return e&&(t=this._toString(t,e,!0)),t};nt.prototype._toString=function(e,t,r){if(this._decoder||(this._decoder=new o0(t),this._encoding=t),this._encoding!==t)throw new Error("can’t switch encodings");var n=this._decoder.write(e);return r&&(n+=this._decoder.end()),n};var l0=nt,h0=Oe,d0=od,p0=hd,y0=s0,Oc=l0;function Ti(e){Oc.call(this,"digest"),this._hash=e}h0(Ti,Oc);Ti.prototype._update=function(e){this._hash.update(e)};Ti.prototype._final=function(){return this._hash.digest()};var m0=function(t){return t=t.toLowerCase(),t==="md5"?new d0:t==="rmd160"||t==="ripemd160"?new p0:new Ti(y0(t))},Hn=Ve.Buffer;function b0(e){if(e.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),r=0;r<t.length;r++)t[r]=255;for(var n=0;n<e.length;n++){var i=e.charAt(n),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=n}var o=e.length,a=e.charAt(0),u=Math.log(o)/Math.log(256),h=Math.log(256)/Math.log(o);function d(p){if((Array.isArray(p)||p instanceof Uint8Array)&&(p=Hn.from(p)),!Hn.isBuffer(p))throw new TypeError("Expected Buffer");if(p.length===0)return"";for(var I=0,B=0,T=0,R=p.length;T!==R&&p[T]===0;)T++,I++;for(var U=(R-T)*h+1>>>0,x=new Uint8Array(U);T!==R;){for(var g=p[T],S=0,E=U-1;(g!==0||S<B)&&E!==-1;E--,S++)g+=256*x[E]>>>0,x[E]=g%o>>>0,g=g/o>>>0;if(g!==0)throw new Error("Non-zero carry");B=S,T++}for(var H=U-B;H!==U&&x[H]===0;)H++;for(var M=a.repeat(I);H<U;++H)M+=e.charAt(x[H]);return M}function y(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return Hn.alloc(0);for(var I=0,B=0,T=0;p[I]===a;)B++,I++;for(var R=(p.length-I)*u+1>>>0,U=new Uint8Array(R);I<p.length;){var x=p.charCodeAt(I);if(x>255)return;var g=t[x];if(g===255)return;for(var S=0,E=R-1;(g!==0||S<T)&&E!==-1;E--,S++)g+=o*U[E]>>>0,U[E]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");T=S,I++}for(var H=R-T;H!==R&&U[H]===0;)H++;var M=Hn.allocUnsafe(B+(R-H));M.fill(0,0,B);for(var O=B;H!==R;)M[O++]=U[H++];return M}function v(p){var I=y(p);if(I)return I;throw new Error("Non-base"+o+" character")}return{encode:d,decodeUnsafe:y,decode:v}}var w0=b0,g0=w0,_0="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",v0=g0(_0),os=v0,E0=Ve.Buffer,x0=function(e){function t(s){var o=e(s);return os.encode(E0.concat([s,o],s.length+4))}function r(s){var o=s.slice(0,-4),a=s.slice(-4),u=e(o);if(!(a[0]^u[0]|a[1]^u[1]|a[2]^u[2]|a[3]^u[3]))return o}function n(s){var o=os.decodeUnsafe(s);if(o)return r(o)}function i(s){var o=os.decode(s),a=r(o);if(!a)throw new Error("Invalid checksum");return a}return{encode:t,decode:i,decodeUnsafe:n}},ia=m0,S0=x0;function A0(e){var t=ia("sha256").update(e).digest();return ia("sha256").update(t).digest()}var k0=S0(A0),Es=k0;function Rc(e,t){if(t!==void 0&&e[0]!==t)throw new Error("Invalid network version");if(e.length===33)return{version:e[0],privateKey:e.slice(1,33),compressed:!1};if(e.length!==34)throw new Error("Invalid WIF length");if(e[33]!==1)throw new Error("Invalid compression flag");return{version:e[0],privateKey:e.slice(1,33),compressed:!0}}function xs(e,t,r){var n=new Buffer(r?34:33);return n.writeUInt8(e,0),t.copy(n,1),r&&(n[33]=1),n}function T0(e,t){return Rc(Es.decode(e),t)}function B0(e,t,r){return typeof e=="number"?Es.encode(xs(e,t,r)):Es.encode(xs(e.version,e.privateKey,e.compressed))}var I0={decode:T0,decodeRaw:Rc,encode:B0,encodeRaw:xs},Bi={};Object.defineProperty(Bi,"__esModule",{value:!0});Bi.testEcc=void 0;const W=e=>Buffer.from(e,"hex");function P0(e){ue(e.isPoint(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),ue(!e.isPoint(W("030000000000000000000000000000000000000000000000000000000000000005"))),ue(e.isPrivate(W("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),ue(e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))),ue(!e.isPrivate(W("0000000000000000000000000000000000000000000000000000000000000000"))),ue(!e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"))),ue(!e.isPrivate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364142"))),ue(Buffer.from(e.privateAdd(W("0000000000000000000000000000000000000000000000000000000000000001"),W("0000000000000000000000000000000000000000000000000000000000000000"))).equals(W("0000000000000000000000000000000000000000000000000000000000000001"))),ue(e.privateAdd(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e"),W("0000000000000000000000000000000000000000000000000000000000000003"))===null),ue(Buffer.from(e.privateAdd(W("e211078564db65c3ce7704f08262b1f38f1ef412ad15b5ac2d76657a63b2c500"),W("b51fbb69051255d1becbd683de5848242a89c229348dd72896a87ada94ae8665"))).equals(W("9730c2ee69edbb958d42db7460bafa18fef9d955325aec99044c81c8282b0a24"))),ue(Buffer.from(e.privateNegate(W("0000000000000000000000000000000000000000000000000000000000000001"))).equals(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))),ue(Buffer.from(e.privateNegate(W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e"))).equals(W("0000000000000000000000000000000000000000000000000000000000000003"))),ue(Buffer.from(e.privateNegate(W("b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af"))).equals(W("4eede1bf775995d70a494f0a7bb6bc11e0b8cccd41cce8009ab1132c8b0a3792"))),ue(Buffer.from(e.pointCompress(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),!0)).equals(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),ue(Buffer.from(e.pointCompress(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"),!1)).equals(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"))),ue(Buffer.from(e.pointCompress(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),!0)).equals(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"))),ue(Buffer.from(e.pointCompress(W("0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),!1)).equals(W("0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8"))),ue(Buffer.from(e.pointFromScalar(W("b1121e4088a66a28f5b6b0f5844943ecd9f610196d7bb83b25214b60452c09af"))).equals(W("02b07ba9dca9523b7ef4bd97703d43d20399eb698e194704791a25ce77a400df99"))),ue(e.xOnlyPointAddTweak(W("79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))===null);let t=e.xOnlyPointAddTweak(W("1617d38ed8d8657da4d4761e8057bc396ea9e4b9d29776d4be096016dbd2509b"),W("a8397a935f0dfceba6ba9618f6451ef4d80637abf4e6af2669fbc9de6a8fd2ac"));ue(Buffer.from(t.xOnlyPubkey).equals(W("e478f99dab91052ab39a33ea35fd5e6e4933f4d28023cd597c9a1f6760346adf"))&&t.parity===1),t=e.xOnlyPointAddTweak(W("2c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991"),W("823c3cd2142744b075a87eade7e1b8678ba308d566226a0056ca2b7a76f86b47")),ue(Buffer.from(t.xOnlyPubkey).equals(W("9534f8dc8c6deda2dc007655981c78b49c5d96c778fbf363462a11ec9dfd948c"))&&t.parity===0),ue(Buffer.from(e.sign(W("5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed"),W("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140"))).equals(W("54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5"))),ue(e.verify(W("5e9f0a0d593efdcf78ac923bc3313e4e7d408d574354ee2b3288c0da9fbba6ed"),W("0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),W("54c4a33c6423d689378f160a7ff8b61330444abb58fb470f96ea16d99d4a2fed07082304410efa6b2943111b6a4e0aaa7b7db55a07e9861d1fb3cb1f421044a5"))),e.signSchnorr&&ue(Buffer.from(e.signSchnorr(W("7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c"),W("c90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b14e5c9"),W("c87aa53824b4d7ae2eb035a2b5bbbccc080e76cdc6d1692c4b0b62d798e6d906"))).equals(W("5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7"))),e.verifySchnorr&&ue(e.verifySchnorr(W("7e2d58d8b3bcdf1abadec7829054f90dda9805aab56c77333024b9d0a508b75c"),W("dd308afec5777e13121fa72b9cc1b7cc0139715309b086c960e18fd969774eb8"),W("5831aaeed7b44bb74e5eab94ba9d4294c49bcf2a60728d8b4c200f50dd313c1bab745879a5ad954a72c45a91c3a51d3c7adea98d82f8481e0e1e03674a6f3fb7")))}Bi.testEcc=P0;function ue(e){if(!e)throw new Error("ecc library invalid")}Object.defineProperty(Lr,"__esModule",{value:!0});Lr.ECPairFactory=Lr.networks=void 0;const Ss=Nr;Lr.networks=Ss;const $e=Ja,O0=Ql,sa=I0,R0=Bi,as=$e.typeforce.maybe($e.typeforce.compile({compressed:$e.maybe($e.Boolean),network:$e.maybe($e.Network)})),C0=e=>e.length===32?e:e.slice(1,33);function U0(e){(0,R0.testEcc)(e);function t(a){return e.isPoint(a)}function r(a,u){if($e.typeforce($e.Buffer256bit,a),!e.isPrivate(a))throw new TypeError("Private key not in range [1, n)");return $e.typeforce(as,u),new o(a,void 0,u)}function n(a,u){return $e.typeforce(e.isPoint,a),$e.typeforce(as,u),new o(void 0,a,u)}function i(a,u){const h=sa.decode(a),d=h.version;if($e.Array(u)){if(u=u.filter(y=>d===y.wif).pop(),!u)throw new Error("Unknown network version")}else if(u=u||Ss.bitcoin,d!==u.wif)throw new Error("Invalid network version");return r(h.privateKey,{compressed:h.compressed,network:u})}function s(a){$e.typeforce(as,a),a===void 0&&(a={});const u=a.rng||O0;let h;do h=u(32),$e.typeforce($e.Buffer256bit,h);while(!e.isPrivate(h));return r(h,a)}class o{constructor(u,h,d){wr(this,"__D");wr(this,"__Q");wr(this,"compressed");wr(this,"network");wr(this,"lowR");this.__D=u,this.__Q=h,this.lowR=!1,d===void 0&&(d={}),this.compressed=d.compressed===void 0?!0:d.compressed,this.network=d.network||Ss.bitcoin,h!==void 0&&(this.__Q=Buffer.from(e.pointCompress(h,this.compressed)))}get privateKey(){return this.__D}get publicKey(){if(!this.__Q){const u=e.pointFromScalar(this.__D,this.compressed);this.__Q=Buffer.from(u)}return this.__Q}toWIF(){if(!this.__D)throw new Error("Missing private key");return sa.encode(this.network.wif,this.__D,this.compressed)}tweak(u){return this.privateKey?this.tweakFromPrivateKey(u):this.tweakFromPublicKey(u)}sign(u,h){if(!this.__D)throw new Error("Missing private key");if(h===void 0&&(h=this.lowR),h===!1)return Buffer.from(e.sign(u,this.__D));{let d=e.sign(u,this.__D);const y=Buffer.alloc(32,0);let v=0;for(;d[0]>127;)v++,y.writeUIntLE(v,0,6),d=e.sign(u,this.__D,y);return Buffer.from(d)}}signSchnorr(u){if(!this.privateKey)throw new Error("Missing private key");if(!e.signSchnorr)throw new Error("signSchnorr not supported by ecc library");return Buffer.from(e.signSchnorr(u,this.privateKey))}verify(u,h){return e.verify(u,this.publicKey,h)}verifySchnorr(u,h){if(!e.verifySchnorr)throw new Error("verifySchnorr not supported by ecc library");return e.verifySchnorr(u,this.publicKey.subarray(1,33),h)}tweakFromPublicKey(u){const h=C0(this.publicKey),d=e.xOnlyPointAddTweak(h,u);if(!d||d.xOnlyPubkey===null)throw new Error("Cannot tweak public key!");const y=Buffer.from([d.parity===0?2:3]);return n(Buffer.concat([y,d.xOnlyPubkey]),{network:this.network,compressed:this.compressed})}tweakFromPrivateKey(u){const d=this.publicKey[0]===3||this.publicKey[0]===4&&(this.publicKey[64]&1)===1?e.privateNegate(this.privateKey):this.privateKey,y=e.privateAdd(d,u);if(!y)throw new Error("Invalid tweaked private key!");return r(Buffer.from(y),{network:this.network,compressed:this.compressed})}}return{isPoint:t,fromPrivateKey:r,fromPublicKey:n,fromWIF:i,makeRandom:s}}Lr.ECPairFactory=U0;(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.networks=e.ECPairFactory=e.default=void 0;var t=Lr;Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.ECPairFactory}}),Object.defineProperty(e,"ECPairFactory",{enumerable:!0,get:function(){return t.ECPairFactory}}),Object.defineProperty(e,"networks",{enumerable:!0,get:function(){return t.networks}})})(Xa);const L0=Of(Xa);class bn extends K.EventBroker{get isInitialized(){return!!this.digestKey}constructor(t,r){super(),this.digestKey=t,this.walletClient=r}static fromDigestKey(t){return new bn(tr(t))}static fromWalletClient(t){return new bn(void 0,t)}async initialize(){if(this.digestKey)return re("Already initialized");const t=await this.deriveDigestKeyFromWalletClient();return t.error?D(t.error):(this.emit("initialized",!0),re("Initialized"))}async deriveDigestKeyFromWalletClient(){if(!this.walletClient)return D("No walletClient found");if(!this.walletClient.account)return D("No account found");try{const t=await this.walletClient.signTypedData({account:this.walletClient.account,types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"}],Data:[{name:"Message",type:"string"},{name:"Version",type:"string"},{name:"Nonce",type:"uint256"}]},domain:{name:"GARDEN FINANCE",version:"1"},primaryType:"Data",message:{Message:"Initialize your account",Version:"1.0.2",Nonce:1n}});return this.digestKey=tr(Et.sha256(t)),this.emit("initialized",!0),re(this.digestKey)}catch(t){return D("Failed to initialize: "+t)}}async getDigestKey(){if(!this.digestKey&&!this.walletClient)return D("No private key or wallet client found");if(!this.digestKey&&this.walletClient){const t=await this.deriveDigestKeyFromWalletClient();if(t.error)return D(t.error)}return this.digestKey?re(this.digestKey):D("No private key found")}async generateSecret(t){const r=await this.signMessage(t);if(r.error)return D(r.error);const n=Et.sha256(K.with0x(r.val)),i=Et.sha256(n);return re({secret:n,secretHash:i})}async signMessage(t){if(!this.digestKey){const h=await this.getDigestKey();if(h.error)return D(h.error);this.digestKey=h.val}const r=L0(ir),n="Garden.fi"+t.toString(),i=Buffer.from(n,"utf8"),s=Et.sha256(i),o=Buffer.from(tr(this.digestKey),"hex");if(o.length!==32)return D("Invalid private key length. Expected 32 bytes.");const u=r.fromPrivateKey(o).sign(Buffer.from(tr(s),"hex"));return re(u.toString("hex"))}}const N0=[{inputs:[{internalType:"address",name:"token_",type:"address"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Initiated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"secretHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"secret",type:"bytes"}],name:"Redeemed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"Refunded",type:"event"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"}],name:"initiate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"initiateWithSignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"instantRefund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"secretHash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct HTLC.InitWithSig[]",name:"inits",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],internalType:"struct HTLC.Redeem[]",name:"redeems",type:"tuple[]"},{components:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],internalType:"struct HTLC.Refund[]",name:"refunds",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"bool[]",name:"results",type:"bool[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"bool",name:"isFulfilled",type:"bool"},{internalType:"address",name:"initiator",type:"address"},{internalType:"address",name:"redeemer",type:"address"},{internalType:"uint256",name:"initiatedAt",type:"uint256"},{internalType:"uint256",name:"timelock",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"},{internalType:"bytes",name:"secret",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"orderID",type:"bytes32"}],name:"refund",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract IERC20",name:"",type:"address"}],stateMutability:"view",type:"function"}];function dt(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}const Cc="2.26.3";let tn={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:r})=>t?`${e??"https://viem.sh"}${t}${r?`#${r}`:""}`:void 0,version:`viem@${Cc}`};class he extends Error{constructor(t,r={}){var a;const n=(()=>{var u;return r.cause instanceof he?r.cause.details:(u=r.cause)!=null&&u.message?r.cause.message:r.details})(),i=r.cause instanceof he&&r.cause.docsPath||r.docsPath,s=(a=tn.getDocsUrl)==null?void 0:a.call(tn,{...r,docsPath:i}),o=[t||"An error occurred.","",...r.metaMessages?[...r.metaMessages,""]:[],...s?[`Docs: ${s}`]:[],...n?[`Details: ${n}`]:[],...tn.version?[`Version: ${tn.version}`]:[]].join(`
|
|
32
|
+
`);super(o,r.cause?{cause:r.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=n,this.docsPath=i,this.metaMessages=r.metaMessages,this.name=r.name??this.name,this.shortMessage=t,this.version=Cc}walk(t){return Uc(this,t)}}function Uc(e,t){return t!=null&&t(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Uc(e.cause,t):t?null:e}class F0 extends he{constructor({max:t,min:r,signed:n,size:i,value:s}){super(`Number "${s}" is not in safe ${i?`${i*8}-bit ${n?"signed":"unsigned"} `:""}integer range ${t?`(${r} to ${t})`:`(above ${r})`}`,{name:"IntegerOutOfRangeError"})}}class H0 extends he{constructor({givenSize:t,maxSize:r}){super(`Size cannot exceed ${r} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}}function kn(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function Hr(e){return kn(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}function ii(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 M0 extends he{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 Lc extends he{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 Dr(e,{dir:t,size:r=32}={}){return typeof e=="string"?D0(e,{dir:t,size:r}):$0(e,{dir:t,size:r})}function D0(e,{dir:t,size:r=32}={}){if(r===null)return e;const n=e.replace("0x","");if(n.length>r*2)throw new Lc({size:Math.ceil(n.length/2),targetSize:r,type:"hex"});return`0x${n[t==="right"?"padEnd":"padStart"](r*2,"0")}`}function $0(e,{dir:t,size:r=32}={}){if(r===null)return e;if(e.length>r)throw new Lc({size:e.length,targetSize:r,type:"bytes"});const n=new Uint8Array(r);for(let i=0;i<r;i++){const s=t==="right";n[s?i:r-i-1]=e[s?i:e.length-i-1]}return n}const j0=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Q(e,t={}){return typeof e=="number"||typeof e=="bigint"?Nc(e,t):typeof e=="string"?z0(e,t):typeof e=="boolean"?G0(e,t):Yt(e,t)}function G0(e,t={}){const r=`0x${Number(e)}`;return typeof t.size=="number"?($r(r,{size:t.size}),Dr(r,{size:t.size})):r}function Yt(e,t={}){let r="";for(let i=0;i<e.length;i++)r+=j0[e[i]];const n=`0x${r}`;return typeof t.size=="number"?($r(n,{size:t.size}),Dr(n,{dir:"right",size:t.size})):n}function Nc(e,t={}){const{signed:r,size:n}=t,i=BigInt(e);let s;n?r?s=(1n<<BigInt(n)*8n-1n)-1n:s=2n**(BigInt(n)*8n)-1n:typeof e=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof s=="bigint"&&r?-s-1n:0;if(s&&i>s||i<o){const u=typeof e=="bigint"?"n":"";throw new F0({max:s?`${s}${u}`:void 0,min:`${o}${u}`,signed:r,size:n,value:`${e}${u}`})}const a=`0x${(r&&i<0?(1n<<BigInt(n*8))+BigInt(i):i).toString(16)}`;return n?Dr(a,{size:n}):a}const V0=new TextEncoder;function z0(e,t={}){const r=V0.encode(e);return Yt(r,t)}const W0=new TextEncoder;function Fc(e,t={}){return typeof e=="number"||typeof e=="bigint"?K0(e,t):typeof e=="boolean"?q0(e,t):kn(e)?cr(e,t):Hc(e,t)}function q0(e,t={}){const r=new Uint8Array(1);return r[0]=Number(e),typeof t.size=="number"?($r(r,{size:t.size}),Dr(r,{size:t.size})):r}const gt={zero:48,nine:57,A:65,F:70,a:97,f:102};function oa(e){if(e>=gt.zero&&e<=gt.nine)return e-gt.zero;if(e>=gt.A&&e<=gt.F)return e-(gt.A-10);if(e>=gt.a&&e<=gt.f)return e-(gt.a-10)}function cr(e,t={}){let r=e;t.size&&($r(r,{size:t.size}),r=Dr(r,{dir:"right",size:t.size}));let n=r.slice(2);n.length%2&&(n=`0${n}`);const i=n.length/2,s=new Uint8Array(i);for(let o=0,a=0;o<i;o++){const u=oa(n.charCodeAt(a++)),h=oa(n.charCodeAt(a++));if(u===void 0||h===void 0)throw new he(`Invalid byte sequence ("${n[a-2]}${n[a-1]}" in "${n}").`);s[o]=u*16+h}return s}function K0(e,t){const r=Nc(e,t);return cr(r)}function Hc(e,t={}){const r=W0.encode(e);return typeof t.size=="number"?($r(r,{size:t.size}),Dr(r,{dir:"right",size:t.size})):r}function $r(e,{size:t}){if(Hr(e)>t)throw new H0({givenSize:Hr(e),maxSize:t})}function kr(e,t={}){const{signed:r}=t;t.size&&$r(e,{size:t.size});const n=BigInt(e);if(!r)return n;const i=(e.length-2)/2,s=(1n<<BigInt(i)*8n-1n)-1n;return n<=s?n:n-BigInt(`0x${"f".padStart(i*2,"f")}`)-1n}function si(e,t={}){return Number(kr(e,t))}function Xs(e,t){return({exclude:r,format:n})=>({exclude:r,format:i=>{const s=t(i);if(r)for(const o of r)delete s[o];return{...s,...n(i)}},type:e})}const Mc={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function Js(e){const t={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?si(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?si(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?Mc[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=X0(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 Y0=Xs("transaction",Js);function X0(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function J0(e){const t=(e.transactions??[]).map(r=>typeof r=="string"?r:Js(r));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const Q0=Xs("block",J0);function Z0(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 ep={"0x0":"reverted","0x1":"success"};function tp(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=>Z0(r)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?si(e.transactionIndex):null,status:e.status?ep[e.status]:null,type:e.type?Mc[e.type]||e.type:null};return e.blobGasPrice&&(t.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(t.blobGasUsed=BigInt(e.blobGasUsed)),t}const rp=Xs("transactionReceipt",tp),Qs=2n**256n-1n;function Tn(e){return`0x${e.reduce((t,r)=>t+r.replace("0x",""),"")}`}class aa extends he{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}}class np extends he{constructor({length:t,position:r}){super(`Position \`${r}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}}class ip extends he{constructor({count:t,limit:r}){super(`Recursive read limit of \`${r}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}}const sp={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 ip({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new np({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new aa({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 aa({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 Dc(e,{recursiveReadLimit:t=8192}={}){const r=Object.create(sp);return r.bytes=e,r.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),r.positionReadCount=new Map,r.recursiveReadLimit=t,r}function fr(e,t="hex"){const r=$c(e),n=Dc(new Uint8Array(r.length));return r.encode(n),t==="hex"?Yt(n.bytes):n.bytes}function $c(e){return Array.isArray(e)?op(e.map(t=>$c(t))):ap(e)}function op(e){const t=e.reduce((i,s)=>i+s.length,0),r=jc(t);return{length:t<=55?1+t:1+r+t,encode(i){t<=55?i.pushByte(192+t):(i.pushByte(247+r),r===1?i.pushUint8(t):r===2?i.pushUint16(t):r===3?i.pushUint24(t):i.pushUint32(t));for(const{encode:s}of e)s(i)}}}function ap(e){const t=typeof e=="string"?cr(e):e,r=jc(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 jc(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 he("Length is too large.")}const cp={ether:-9,wei:9};function fp(e,t){let r=e.toString();const n=r.startsWith("-");n&&(r=r.slice(1)),r=r.padStart(t,"0");let[i,s]=[r.slice(0,r.length-t),r.slice(r.length-t)];return s=s.replace(/(0+)$/,""),`${n?"-":""}${i||"0"}${s?`.${s}`:""}`}function As(e,t="wei"){return fp(e,cp[t])}function up(e){const t=Object.entries(e).map(([n,i])=>i===void 0||i===!1?null:[n,i]).filter(Boolean),r=t.reduce((n,[i])=>Math.max(n,i.length),0);return t.map(([n,i])=>` ${`${n}:`.padEnd(r+1)} ${i}`).join(`
|
|
33
|
+
`)}class lp extends he{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class hp extends he{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",up(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 dp extends he{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 pp(e){if(!e||e.length===0)return[];const t=[];for(const r of e){const{chainId:n,nonce:i,...s}=r,o=r.address;t.push([n?Q(n):"0x",o,i?Q(i):"0x",...Bn({},s)])}return t}function Gc(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(s=>cr(s)):e.blobs,i=[];for(const s of n)i.push(Uint8Array.from(t.blobToKzgCommitment(s)));return r==="bytes"?i:i.map(s=>Yt(s))}function Vc(e){const{kzg:t}=e,r=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),n=typeof e.blobs[0]=="string"?e.blobs.map(o=>cr(o)):e.blobs,i=typeof e.commitments[0]=="string"?e.commitments.map(o=>cr(o)):e.commitments,s=[];for(let o=0;o<n.length;o++){const a=n[o],u=i[o];s.push(Uint8Array.from(t.computeBlobKzgProof(a,u)))}return r==="bytes"?s:s.map(o=>Yt(o))}function yp(e,t){return Ha(kn(e,{strict:!1})?Fc(e):e)}function mp(e){const{commitment:t,version:r=1}=e,n=e.to??(typeof t=="string"?"hex":"bytes"),i=yp(t);return i.set([r],0),n==="bytes"?i:Yt(i)}function bp(e){const{commitments:t,version:r}=e,n=e.to??(typeof t[0]=="string"?"hex":"bytes"),i=[];for(const s of t)i.push(mp({commitment:s,to:n,version:r}));return i}const ca=6,zc=32,Zs=4096,Wc=zc*Zs,fa=Wc*ca-1-1*Zs*ca,qc=1;class wp extends he{constructor({maxSize:t,size:r}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${r} bytes`],name:"BlobSizeTooLargeError"})}}class Kc extends he{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class gp extends he{constructor({hash:t,size:r}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${r}`],name:"InvalidVersionedHashSizeError"})}}class _p extends he{constructor({hash:t,version:r}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${qc}`,`Received: ${r}`],name:"InvalidVersionedHashVersionError"})}}function vp(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),r=typeof e.data=="string"?cr(e.data):e.data,n=Hr(r);if(!n)throw new Kc;if(n>fa)throw new wp({maxSize:fa,size:n});const i=[];let s=!0,o=0;for(;s;){const a=Dc(new Uint8Array(Wc));let u=0;for(;u<Zs;){const h=r.slice(o,o+(zc-1));if(a.pushByte(0),a.pushBytes(h),h.length<31){a.pushByte(128),s=!1;break}u++,o+=31}i.push(a)}return t==="bytes"?i.map(a=>a.bytes):i.map(a=>Yt(a.bytes))}function Ep(e){const{data:t,kzg:r,to:n}=e,i=e.blobs??vp({data:t,to:n}),s=e.commitments??Gc({blobs:i,kzg:r,to:n}),o=e.proofs??Vc({blobs:i,commitments:s,kzg:r,to:n}),a=[];for(let u=0;u<i.length;u++)a.push({blob:i[u],commitment:s[u],proof:o[u]});return a}class ur extends he{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 Ii extends he{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}class Pi extends he{constructor({cause:t,maxFeePerGas:r}={}){super(`The fee cap (\`maxFeePerGas\`${r?` = ${As(r)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(Pi,"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 Yc extends he{constructor({cause:t,maxPriorityFeePerGas:r,maxFeePerGas:n}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${r?` = ${As(r)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${n?` = ${As(n)} gwei`:""}).`].join(`
|
|
34
|
+
`),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(Yc,"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 Xc 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 Mn=BigInt(2**32-1),ua=BigInt(32);function xp(e,t=!1){return t?{h:Number(e&Mn),l:Number(e>>ua&Mn)}:{h:Number(e>>ua&Mn)|0,l:Number(e&Mn)|0}}function Sp(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:s,l:o}=xp(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}const Ap=(e,t,r)=>e<<r|t>>>32-r,kp=(e,t,r)=>t<<r|e>>>32-r,Tp=(e,t,r)=>t<<r-32|e>>>64-r,Bp=(e,t,r)=>e<<r-32|t>>>64-r,Jc=[],Qc=[],Zc=[],Ip=BigInt(0),rn=BigInt(1),Pp=BigInt(2),Op=BigInt(7),Rp=BigInt(256),Cp=BigInt(113);for(let e=0,t=rn,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],Jc.push(2*(5*n+r)),Qc.push((e+1)*(e+2)/2%64);let i=Ip;for(let s=0;s<7;s++)t=(t<<rn^(t>>Op)*Cp)%Rp,t&Pp&&(i^=rn<<(rn<<BigInt(s))-rn);Zc.push(i)}const[Up,Lp]=Sp(Zc,!0),la=(e,t,r)=>r>32?Tp(e,t,r):Ap(e,t,r),ha=(e,t,r)=>r>32?Bp(e,t,r):kp(e,t,r);function Np(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let o=0;o<10;o++)r[o]=e[o]^e[o+10]^e[o+20]^e[o+30]^e[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,u=(o+2)%10,h=r[u],d=r[u+1],y=la(h,d,1)^r[a],v=ha(h,d,1)^r[a+1];for(let p=0;p<50;p+=10)e[o+p]^=y,e[o+p+1]^=v}let i=e[2],s=e[3];for(let o=0;o<24;o++){const a=Qc[o],u=la(i,s,a),h=ha(i,s,a),d=Jc[o];i=e[d],s=e[d+1],e[d]=u,e[d+1]=h}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)r[a]=e[o+a];for(let a=0;a<10;a++)e[o+a]^=~r[(a+2)%10]&r[(a+4)%10]}e[0]^=Up[n],e[1]^=Lp[n]}r.fill(0)}class eo extends Fa{constructor(t,r,n,i=!1,s=24){if(super(),this.blockLen=t,this.suffix=r,this.outputLen=n,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,uo(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=uu(this.state)}keccak(){lo||ho(this.state32),Np(this.state32,this.rounds),lo||ho(this.state32),this.posOut=0,this.pos=0}update(t){Qn(this);const{blockLen:r,state:n}=this;t=Fs(t);const i=t.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);for(let a=0;a<o;a++)n[this.pos++]^=t[s++];this.pos===r&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:r,pos:n,blockLen:i}=this;t[n]^=r,r&128&&n===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){Qn(this,!1),Ns(t),this.finish();const r=this.state,{blockLen:n}=this;for(let i=0,s=t.length;i<s;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,s-i);t.set(r.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return uo(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Na(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:r,suffix:n,outputLen:i,rounds:s,enableXOF:o}=this;return t||(t=new eo(r,n,i,o,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}}const Fp=(e,t,r)=>Hs(()=>new eo(t,e,r)),Hp=Fp(1,136,256/8);function Mp(e,t){return Hp(kn(e,{strict:!1})?Fc(e):e)}const cs=new Xc(8192);function Dp(e,t){if(cs.has(`${e}.${t}`))return cs.get(`${e}.${t}`);const r=e.substring(2).toLowerCase(),n=Mp(Hc(r)),i=r.split("");for(let o=0;o<40;o+=2)n[o>>1]>>4>=8&&i[o]&&(i[o]=i[o].toUpperCase()),(n[o>>1]&15)>=8&&i[o+1]&&(i[o+1]=i[o+1].toUpperCase());const s=`0x${i.join("")}`;return cs.set(`${e}.${t}`,s),s}const $p=/^0x[a-fA-F0-9]{40}$/,fs=new Xc(8192);function lr(e,t){const{strict:r=!0}=t??{},n=`${e}.${r}`;if(fs.has(n))return fs.get(n);const i=$p.test(e)?e.toLowerCase()===e?!0:r?Dp(e)===e:!0:!1;return fs.set(n,i),i}function jp(e,t,r,{strict:n}={}){return kn(e,{strict:!1})?Vp(e,t,r,{strict:n}):Gp(e,t,r,{strict:n})}function ef(e,t,r){if(Hr(e)!==r-t)throw new M0({offset:r,position:"end",size:Hr(e)})}function Gp(e,t,r,{strict:n}={}){const i=e.slice(t,r);return n&&ef(i,t,r),i}function Vp(e,t,r,{strict:n}={}){const i=`0x${e.replace("0x","").slice(t*2,r*2)}`;return n&&ef(i,t,r),i}function zp(e){const{authorizationList:t}=e;if(t)for(const r of t){const{chainId:n}=r,i=r.address;if(!lr(i))throw new ur({address:i});if(n<0)throw new Ii({chainId:n})}to(e)}function Wp(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new Kc;for(const r of t){const n=Hr(r),i=si(jp(r,0,1));if(n!==32)throw new gp({hash:r,size:n});if(i!==qc)throw new _p({hash:r,version:i})}}to(e)}function to(e){const{chainId:t,maxPriorityFeePerGas:r,maxFeePerGas:n,to:i}=e;if(t<=0)throw new Ii({chainId:t});if(i&&!lr(i))throw new ur({address:i});if(n&&n>Qs)throw new Pi({maxFeePerGas:n});if(r&&n&&r>n)throw new Yc({maxFeePerGas:n,maxPriorityFeePerGas:r})}function qp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(t<=0)throw new Ii({chainId:t});if(s&&!lr(s))throw new ur({address:s});if(r||i)throw new he("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(n&&n>Qs)throw new Pi({maxFeePerGas:n})}function Kp(e){const{chainId:t,maxPriorityFeePerGas:r,gasPrice:n,maxFeePerGas:i,to:s}=e;if(s&&!lr(s))throw new ur({address:s});if(typeof t<"u"&&t<=0)throw new Ii({chainId:t});if(r||i)throw new he("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(n&&n>Qs)throw new Pi({maxFeePerGas:n})}function Yp(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 hp({transaction:e})}function Oi(e){if(!e||e.length===0)return[];const t=[];for(let r=0;r<e.length;r++){const{address:n,storageKeys:i}=e[r];for(let s=0;s<i.length;s++)if(i[s].length-2!==64)throw new dp({storageKey:i[s]});if(!lr(n,{strict:!1}))throw new ur({address:n});t.push([n,i])}return t}function Xp(e,t){const r=Yp(e);return r==="eip1559"?Zp(e,t):r==="eip2930"?ey(e,t):r==="eip4844"?Qp(e,t):r==="eip7702"?Jp(e,t):ty(e,t)}function Jp(e,t){const{authorizationList:r,chainId:n,gas:i,nonce:s,to:o,value:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:y}=e;zp(e);const v=Oi(d),p=pp(r);return Tn(["0x04",fr([Q(n),s?Q(s):"0x",h?Q(h):"0x",u?Q(u):"0x",i?Q(i):"0x",o??"0x",a?Q(a):"0x",y??"0x",v,p,...Bn(e,t)])])}function Qp(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerBlobGas:a,maxFeePerGas:u,maxPriorityFeePerGas:h,accessList:d,data:y}=e;Wp(e);let v=e.blobVersionedHashes,p=e.sidecars;if(e.blobs&&(typeof v>"u"||typeof p>"u")){const x=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(E=>Yt(E)),g=e.kzg,S=Gc({blobs:x,kzg:g});if(typeof v>"u"&&(v=bp({commitments:S})),typeof p>"u"){const E=Vc({blobs:x,commitments:S,kzg:g});p=Ep({blobs:x,commitments:S,proofs:E})}}const I=Oi(d),B=[Q(r),i?Q(i):"0x",h?Q(h):"0x",u?Q(u):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",y??"0x",I,a?Q(a):"0x",v??[],...Bn(e,t)],T=[],R=[],U=[];if(p)for(let x=0;x<p.length;x++){const{blob:g,commitment:S,proof:E}=p[x];T.push(g),R.push(S),U.push(E)}return Tn(["0x03",fr(p?[B,T,R,U]:B)])}function Zp(e,t){const{chainId:r,gas:n,nonce:i,to:s,value:o,maxFeePerGas:a,maxPriorityFeePerGas:u,accessList:h,data:d}=e;to(e);const y=Oi(h),v=[Q(r),i?Q(i):"0x",u?Q(u):"0x",a?Q(a):"0x",n?Q(n):"0x",s??"0x",o?Q(o):"0x",d??"0x",y,...Bn(e,t)];return Tn(["0x02",fr(v)])}function ey(e,t){const{chainId:r,gas:n,data:i,nonce:s,to:o,value:a,accessList:u,gasPrice:h}=e;qp(e);const d=Oi(u),y=[Q(r),s?Q(s):"0x",h?Q(h):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x",d,...Bn(e,t)];return Tn(["0x01",fr(y)])}function ty(e,t){const{chainId:r=0,gas:n,data:i,nonce:s,to:o,value:a,gasPrice:u}=e;Kp(e);let h=[s?Q(s):"0x",u?Q(u):"0x",n?Q(n):"0x",o??"0x",a?Q(a):"0x",i??"0x"];if(t){const d=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(r>0)return BigInt(r*2)+BigInt(35n+t.v-27n);const p=27n+(t.v===27n?0n:1n);if(t.v!==p)throw new lp({v:t.v});return p})(),y=ii(t.r),v=ii(t.s);h=[...h,Q(d),y==="0x00"?"0x":y,v==="0x00"?"0x":v]}else r>0&&(h=[...h,Q(r),"0x","0x"]);return fr(h)}function Bn(e,t){const r=t??e,{v:n,yParity:i}=r;if(typeof r.r>"u")return[];if(typeof r.s>"u")return[];if(typeof n>"u"&&typeof i>"u")return[];const s=ii(r.r),o=ii(r.s);return[typeof i=="number"?i?Q(1):"0x":n===0n?"0x":n===1n?Q(1):n===27n?"0x":Q(1),s==="0x00"?"0x":s,o==="0x00"?"0x":o]}const ry={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},ny={block:Q0({format(e){var r;return{transactions:(r=e.transactions)==null?void 0:r.map(n=>{if(typeof n=="string")return n;const i=Js(n);return i.typeHex==="0x7e"&&(i.isSystemTx=n.isSystemTx,i.mint=n.mint?kr(n.mint):void 0,i.sourceHash=n.sourceHash,i.type="deposit"),i}),stateRoot:e.stateRoot}}}),transaction:Y0({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?kr(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:rp({format(e){return{l1GasPrice:e.l1GasPrice?kr(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?kr(e.l1GasUsed):null,l1Fee:e.l1Fee?kr(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function iy(e,t){return ay(e)?oy(e):Xp(e,t)}const sy={transaction:iy};function oy(e){cy(e);const{sourceHash:t,data:r,from:n,gas:i,isSystemTx:s,mint:o,to:a,value:u}=e,h=[t,n,a??"0x",o?Q(o):"0x",u?Q(u):"0x",i?Q(i):"0x",s?"0x1":"0x",r??"0x"];return Tn(["0x7e",fr(h)])}function ay(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function cy(e){const{from:t,to:r}=e;if(t&&!lr(t))throw new ur({address:t});if(r&&!lr(r))throw new ur({address:r})}const oi={contracts:ry,formatters:ny,serializers:sy},fy=dt({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}}}),uy=dt({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}),nn=1,ly=dt({...oi,id:8453,name:"Base",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://mainnet.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://basescan.org",apiUrl:"https://api.basescan.org/api"}},contracts:{...oi.contracts,disputeGameFactory:{[nn]:{address:"0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e"}},l2OutputOracle:{[nn]:{address:"0x56315b90c40730925ec5485cf004d835058518A0"}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:5022},portal:{[nn]:{address:"0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",blockCreated:17482143}},l1StandardBridge:{[nn]:{address:"0x3154Cf16ccdb4C6d922629664174b904d80F2C35",blockCreated:17482143}}},sourceId:nn}),sn=11155111,hy=dt({...oi,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:{...oi.contracts,disputeGameFactory:{[sn]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[sn]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[sn]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[sn]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:sn}),dy=dt({id:80094,name:"Berachain",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:0},ensRegistry:{address:"0x5b22280886a2f5e09a49bea7e320eab0e5320e28",blockCreated:877007},ensUniversalResolver:{address:"0xddfb18888a9466688235887dec2a10c4f5effee9",blockCreated:877008}},rpcUrls:{default:{http:["https://rpc.berachain.com"]}},blockExplorers:{default:{name:"Berascan",url:"https://berascan.com"}},ensTlds:[".bera"],testnet:!1}),py=dt({id:80084,name:"Berachain bArtio",nativeCurrency:{decimals:18,name:"BERA Token",symbol:"BERA"},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:109269},ensRegistry:{address:"0xB0eef18971290b333450586D33dcA6cE122651D2",blockCreated:7736794},ensUniversalResolver:{address:"0x41692Ef1EA0C79E6b73077E4A67572D2BDbD7057",blockCreated:7736795}},ensTlds:[".bera"],rpcUrls:{default:{http:["https://bartio.rpc.berachain.com"]}},blockExplorers:{default:{name:"Berachain bArtio Beratrail",url:"https://bartio.beratrail.io"}},testnet:!0}),yy=dt({id:5115,name:"Citrea Testnet",nativeCurrency:{name:"cBTC",symbol:"cBTC",decimals:18},rpcUrls:{default:{http:["https://rpc.testnet.citrea.xyz"]}},blockExplorers:{default:{name:"Citrea Explorer",url:"https://explorer.testnet.citrea.xyz",apiUrl:"https://explorer.testnet.citrea.xyz/api"}},testnet:!0}),my=dt({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://eth.merkle.io"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}}),by=dt({id:10143,name:"Monad Testnet",nativeCurrency:{name:"Testnet MON Token",symbol:"MON",decimals:18},rpcUrls:{default:{http:["https://testnet-rpc.monad.xyz"]}},blockExplorers:{default:{name:"Monad Testnet explorer",url:"https://testnet.monadexplorer.com"}},contracts:{multicall3:{address:"0xcA11bde05977b3631167028862bE2a173976CA11",blockCreated:251449}},testnet:!0}),wy=dt({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},testnet:!0}),gy={...wy,rpcUrls:{default:{http:["https://ethereum-sepolia-rpc.publicnode.com"]}}},tf={id:998,name:"Hyperliquid EVM Testnet",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://testnet.purrsec.com/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid-testnet.xyz/evm"]}}},rf={id:999,name:"HyperEVM",nativeCurrency:{name:"Hyperliquid",symbol:"HYPE",decimals:18},blockExplorers:{default:{name:"Hyperliquid Explorer",url:"https://hyperscan.gas.zip/"}},rpcUrls:{default:{http:["https://rpc.hyperliquid.xyz/evm"]}}},nf={ethereum:my,arbitrum:fy,ethereum_sepolia:gy,arbitrum_sepolia:uy,ethereum_localnet:be.EthereumLocalnet,arbitrum_localnet:be.ArbitrumLocalnet,base_sepolia:hy,base:ly,bera_testnet:py,citrea_testnet:yy,bera:dy,monad_testnet:by,hyperliquid_testnet:tf,hyperliquid:rf},sf=async(e,t)=>{var n;const r=nf[e];if(r)try{if(r.id===((n=t.chain)==null?void 0:n.id))return re({message:"Already on the network",walletClient:t});await t.switchChain({id:r.id});const i=Et.createWalletClient({account:t.account,chain:r,transport:Et.custom(t.transport)});return re({message:"Switched chain",walletClient:i})}catch(i){if(_y(i))try{await t.addChain({chain:r});const s=Et.createWalletClient({account:t.account,chain:r,transport:Et.custom(window.ethereum)});return re({message:"Added network",walletClient:s})}catch{return D("Failed to add network")}else return D("Failed to switch network")}else return D("Chain not supported")},_y=e=>typeof e=="object"&&e!==null&&"code"in e&&e.code===4902;class of{constructor(t,r,n){this.url=new K.Url("/relayer",t),this.auth=n,this.wallet=r}get htlcActorAddress(){if(!this.wallet.account)throw new Error("No account found");return this.wallet.account.address}async initiate(t){if(!this.wallet.account)return K.Err("No account found");if(this.wallet.account.address.toLowerCase()!==t.source_swap.initiator.toLowerCase())return K.Err("Account address and order initiator mismatch");const r=await sf(t.source_swap.chain,this.wallet);if(r.error)return K.Err(r.error);if(this.wallet=r.val.walletClient,!this.wallet.account)return K.Err("No account found");const{create_order:n,source_swap:i}=t;if(!i.amount||!i.redeemer||!n.timelock||!n.secret_hash)return K.Err("Invalid order");const s=K.with0x(n.secret_hash),o=BigInt(n.timelock),a=K.with0x(i.redeemer),u=BigInt(i.amount);try{const h=await this.auth.getAuthHeaders();if(h.error)return K.Err(h.error);const d=Et.getContract({address:K.with0x(t.source_swap.asset),abi:N0,client:this.wallet}),y=await d.read.token(),v=await K.checkAllowanceAndApprove(Number(u),y,t.source_swap.asset,this.wallet);if(v.error)return K.Err(v.error);const p=await d.read.eip712Domain(),I=await this.wallet.signTypedData({account:this.wallet.account,domain:{name:p[1],version:p[2],chainId:Number(p[3]),verifyingContract:p[4]},types:{Initiate:[{name:"redeemer",type:"address"},{name:"timelock",type:"uint256"},{name:"amount",type:"uint256"},{name:"secretHash",type:"bytes32"}]},primaryType:"Initiate",message:{redeemer:a,timelock:o,amount:u,secretHash:s}}),B={...h.val,"Content-Type":"application/json"},T=await xt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:n.create_id,signature:I,perform_on:"Source"}),headers:B});return T.error?K.Err(T.error):T.result?K.Ok(T.result):K.Err("Init: No result found")}catch(h){return console.log("init error :",h),K.Err(String(h))}}async redeem(t,r){try{const n=await this.auth.getAuthHeaders();if(n.error)return K.Err(n.error);const i=await xt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:tr(r),perform_on:"Destination"}),headers:{...n.val,"Content-Type":"application/json"}});return i.error?K.Err(i.error):i.result?K.Ok(i.result):K.Err("Redeem: No result found")}catch(n){return K.Err(String(n))}}async refund(){return K.Err("Refund not supported")}}const af=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],cf=async(e,t,r,n,i)=>{try{const s=new Ge.RpcProvider({nodeUrl:i}),a=await new Ge.Contract(af,Pn(t),s).call("allowance",[Pn(e.address),Pn(r)]),u=BigInt((a==null?void 0:a.toString())||"0"),h=Ge.cairo.uint256(BigInt(Ge.uint256.UINT_256_MAX));if(u<n){const d=await e.execute([{contractAddress:Pn(t),entrypoint:"approve",calldata:[r,h.low,h.high]}]);return await s.waitForTransaction(d.transaction_hash,{retryInterval:3e3,successStates:[Ge.TransactionExecutionStatus.SUCCEEDED]}),re(d.transaction_hash)}return re("Allowance already approved")}catch(s){return D(`Failed to check or approve allowance: ${s instanceof Error?s.message:String(s)}`)}},ff=[{name:"HTLC",type:"impl",interface_name:"starknet_htlc::interface::IHTLC"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"starknet_htlc::interface::IHTLC",type:"interface",items:[{name:"token",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"initiate",type:"function",inputs:[{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_on_behalf",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"}],outputs:[],state_mutability:"external"},{name:"initiate_with_signature",type:"function",inputs:[{name:"initiator",type:"core::starknet::contract_address::ContractAddress"},{name:"redeemer",type:"core::starknet::contract_address::ContractAddress"},{name:"timelock",type:"core::integer::u128"},{name:"amount",type:"core::integer::u256"},{name:"secret_hash",type:"[core::integer::u32; 8]"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"},{name:"redeem",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"secret",type:"core::array::Array::<core::integer::u32>"}],outputs:[],state_mutability:"external"},{name:"refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"instant_refund",type:"function",inputs:[{name:"order_id",type:"core::felt252"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"token",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starknet_htlc::interface::events::Initiated",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"amount",type:"core::integer::u256"}]},{kind:"struct",name:"starknet_htlc::interface::events::Redeemed",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"},{kind:"data",name:"secret_hash",type:"[core::integer::u32; 8]"},{kind:"data",name:"secret",type:"core::array::Array::<core::integer::u32>"}]},{kind:"struct",name:"starknet_htlc::interface::events::Refunded",type:"event",members:[{kind:"key",name:"order_id",type:"core::felt252"}]},{kind:"enum",name:"starknet_htlc::htlc::HTLC::Event",type:"event",variants:[{kind:"nested",name:"Initiated",type:"starknet_htlc::interface::events::Initiated"},{kind:"nested",name:"Redeemed",type:"starknet_htlc::interface::events::Redeemed"},{kind:"nested",name:"Refunded",type:"starknet_htlc::interface::events::Refunded"}]}],vy={name:"HTLC",version:Ge.shortString.encodeShortString("1"),chainId:"0x534e5f5345504f4c4941",revision:Ge.TypedDataRevision.ACTIVE},Ey={StarknetDomain:[{name:"name",type:"shortstring"},{name:"version",type:"shortstring"},{name:"chainId",type:"shortstring"},{name:"revision",type:"shortstring"}],Initiate:[{name:"redeemer",type:"ContractAddress"},{name:"amount",type:"u256"},{name:"timelock",type:"u128"},{name:"secretHash",type:"u128*"}]},xy="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class uf{constructor(t,r,n){this.nodeUrl=n||xy,this.url=new K.Url("/",t),this.account=r}get htlcActorAddress(){if(!this.account.address)throw new Error("No account found");return this.account.address}async initiate(t){if(!this.account.address)return D("No account address");const{create_order:r,source_swap:n}=t,{redeemer:i,amount:s}=n;if(!s||!i||!r.secret_hash||!r.timelock)return D("Invalid order");try{const o=new Ge.Contract(ff,t.source_swap.asset,this.account),a=await(o==null?void 0:o.token()),u=Ge.num.toHex(a),h=await cf(this.account,u,n.asset,BigInt(s),this.nodeUrl);if(h.error)return D(h.error);const d={domain:vy,primaryType:"Initiate",types:Ey,message:{redeemer:i,amount:Ge.cairo.uint256(s),timelock:r.timelock,secretHash:K.hexToU32Array(r.secret_hash)}},y=await this.account.signMessage(d),v=y[1],p=y[2],I=await xt.post(this.url.endpoint("initiate"),{body:JSON.stringify({order_id:r.create_id,signature:{r:v.toString(),s:p.toString()},perform_on:"Source"}),headers:{"Content-Type":"application/json"}});return I.error?D(I.error):I.result?re(I.result):D("Init: No result found")}catch(o){return D(String(o))}}async redeem(t,r){try{const n=await xt.post(this.url.endpoint("redeem"),{body:JSON.stringify({order_id:t.create_order.create_id,secret:r,perform_on:"Destination"}),headers:{"Content-Type":"application/json"}});return n.error?D(n.error):n.result?re(n.result):D("Redeem: No result found")}catch(n){return D(String(n))}}async refund(){return D("Refund is taken care of by the relayer")}}class ro extends K.EventBroker{constructor(t){if(super(),this.environment=K.Environment.TESTNET,this.getOrderThreshold=20,this.refundSacpCache=new Map,this.bitcoinRedeemCache=new ql,typeof t.digestKey=="string"){const r=K.DigestKey.from(t.digestKey);if(r.error)throw new Error(r.error);this._digestKey=r.val}else this._digestKey=t.digestKey;if(typeof t.environment=="string"){if(this.environment=t.environment,this._api=t.environment===K.Environment.MAINNET?fn.mainnet:t.environment===K.Environment.TESTNET?fn.testnet:void 0,!this._api)throw new Error("API not found, invalid environment "+t.environment)}else this._api=t.environment;this._quote=t.quote??new Ya(this._api.quote),this._auth=t.auth??K.Siwe.fromDigestKey(new K.Url(this._api.auth),this._digestKey),this._orderbook=t.orderbook??new be.Orderbook(new K.Url(this._api.orderbook)),this._evmHTLC=t.htlc.evm,this._starknetHTLC=t.htlc.starknet,this._secretManager=t.secretManager??bn.fromDigestKey(this._digestKey.digestKey),this.orderExecutorCache=new Wl,this._blockNumberFetcher=t.blockNumberFetcher??new Ka(this._api.info,this.environment)}static fromWallets(t){let r;if(typeof t.digestKey=="string"){const s=K.DigestKey.from(t.digestKey);if(s.error)throw new Error(s.error);r=s.val}else r=t.digestKey;let n;if(typeof t.environment=="string"?n=t.environment===K.Environment.MAINNET?fn.mainnet:t.environment===K.Environment.TESTNET?fn.testnet:void 0:n=t.environment,!n)throw new Error("API not found, invalid environment "+t.environment);const i={evm:t.wallets.evm?new of(n.evmRelay,t.wallets.evm,K.Siwe.fromDigestKey(new K.Url(n.auth),r)):void 0,starknet:t.wallets.starknet?new uf(n.starknetRelay,t.wallets.starknet):void 0};return new ro({htlc:i,...t})}get evmHTLC(){return this._evmHTLC}get starknetHTLC(){return this._starknetHTLC}get quote(){return this._quote}get btcWallet(){return this._btcWallet}get orderbook(){return this._orderbook}get blockNumberFetcher(){return this._blockNumberFetcher}get secretManager(){return this._secretManager}get auth(){return this._auth}get digestKey(){return this._digestKey}async initializeSMandBTCWallet(){if(this._secretManager.isInitialized&&this._btcWallet)return re(this._btcWallet);const t=await this._secretManager.getDigestKey();if(t.error)return D(t.error);const r=new Or.BitcoinProvider(xf(this.environment));return this._btcWallet=Or.BitcoinWallet.fromPrivateKey(t.val,r),re(this._btcWallet)}async swap(t){const r=await this.validateAndFillParams(t);if(r.error)return D(r.error);const{sendAddress:n,receiveAddress:i,timelock:s}=r.val,o=Date.now().toString(),a=await this._secretManager.generateSecret(o);if(a.error)return D(a.error);const{strategyId:u,btcAddress:h}=t.additionalData,d={strategy_id:u,...h&&{bitcoin_optional_recipient:h}},y={source_chain:t.fromAsset.chain,destination_chain:t.toAsset.chain,source_asset:t.fromAsset.atomicSwapAddress,destination_asset:t.toAsset.atomicSwapAddress,initiator_source_address:n,initiator_destination_address:i,source_amount:t.sendAmount,destination_amount:t.receiveAmount,fee:"1",nonce:o,timelock:s,secret_hash:tr(a.val.secretHash),min_destination_confirmations:t.minDestinationConfirmations??0,additional_data:d},v=await this._quote.getAttestedQuote(y);if(v.error)return D(v.error);const p=await this._orderbook.createOrder(v.val,this.auth);if(p.error)return D(p.error);const I=await this.pollOrder(p.val);return I.error?D(I.error):re(I.val)}async validateAndFillParams(t){if(!t.additionalData.strategyId)return D("StrategyId is required");if(!t.fromAsset||!t.toAsset)return D("Source and destination assets are required for swap");if(t.fromAsset.chain===t.toAsset.chain&&t.fromAsset.atomicSwapAddress===t.toAsset.atomicSwapAddress)return D("Source and destination assets cannot be the same");if(be.isMainnet(t.fromAsset.chain)&&!be.isMainnet(t.toAsset.chain)||!be.isMainnet(t.fromAsset.chain)&&be.isMainnet(t.toAsset.chain))return D("Both assets should be on the same network (either mainnet or testnet)");const r=this.validateAmount(t.sendAmount);if(r.error)return D(r.error);const n=this.validateAmount(t.receiveAmount);if(n.error)return D(n.error);if(r<n)return D("Send amount should be greater than receive amount");const i=be.getTimeLock(t.fromAsset.chain);if(!i)return D("Unsupported chain for timelock");if(be.isBitcoin(t.fromAsset.chain)||be.isBitcoin(t.toAsset.chain)){if(!t.additionalData.btcAddress)return D("btcAddress in additionalData is required if source or destination chain is bitcoin, it is used as refund or redeem address.");const a=await this.initializeSMandBTCWallet();if(a.error)return D(a.error);if(!this._btcWallet)return D("btcWallet is required for bitcoin chain. Please provide btcWallet in the constructor")}const s=await this.getAddresses(t.fromAsset.chain);if(s.error)return D(s.error);const o=await this.getAddresses(t.toAsset.chain);return o.error?D(o.error):re({sendAddress:s.val,receiveAddress:o.val,timelock:t.timelock??i})}async getAddresses(t){var n;switch(be.getBlockchainType(t)){case be.BlockchainType.EVM:return this._evmHTLC?re(this._evmHTLC.htlcActorAddress):D("Please provide evmHTLC when initializing garden");case be.BlockchainType.Bitcoin:{const i=await((n=this._btcWallet)==null?void 0:n.getPublicKey());return!i||!vf(i)?D("Invalid btc public key"):re(Zt(i))}case be.BlockchainType.Starknet:return this._starknetHTLC?re(this._starknetHTLC.htlcActorAddress):D("Please provide starknetHTLC when initializing garden");default:return D("Unsupported chain")}}validateAmount(t){if(t==null||t.includes("."))return D("Invalid amount ",t);const r=new pf(t);return!r.isInteger()||r.isNaN()||r.lt(0)||r.isLessThanOrEqualTo(0)?D("Invalid amount ",t):re(r)}async pollOrder(t){let r=await this._orderbook.getOrder(t,!0),n=0;for(;n<this.getOrderThreshold;){if(await K.sleep(1e3),n++,r.error){if(!r.error.includes("result is undefined"))return D(r.error)}else if(r.val&&r.val.create_order.create_id.toLowerCase()===t.toLowerCase())return re(r.val);r=await this._orderbook.getOrder(t,!0)}return D(`Order not found, createOrder id: ${t}`)}async execute(t=5e3){return await this.initializeSMandBTCWallet(),await this._orderbook.subscribeOrders(this._digestKey.userId,!0,t,async r=>{if(r.data.length===0)return;const n=await this.filterExpiredAndAssignStatus(r.data);if(!n.error){this.emit("onPendingOrdersChanged",n.val);for(let i=0;i<n.val.length;i++){const s=n.val[i],o=Bs(s.status);if(be.isBitcoin(s.source_swap.chain)&&s.status===le.InitiateDetected){const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");continue}await this.postRefundSACP(s,a)}switch(o){case Ae.Redeem:{const a=await this._secretManager.generateSecret(s.create_order.nonce);if(a.error){this.emit("error",s,a.error);return}switch(be.getBlockchainType(s.destination_swap.chain)){case be.BlockchainType.EVM:{await this.evmRedeem(s,a.val.secret);break}case be.BlockchainType.Bitcoin:{const u=this.btcWallet;if(!u){this.emit("error",s,"BTC wallet not found");return}await this.btcRedeem(u,s,a.val.secret);break}case be.BlockchainType.Starknet:{await this.starknetRedeem(s,a.val.secret);break}default:this.emit("error",s,"Unsupported chain: "+s.destination_swap.chain)}break}case Ae.Refund:{switch(be.getBlockchainType(s.source_swap.chain)){case be.BlockchainType.EVM:{this.emit("error",s,"EVM refund is automatically done by relay service");break}case be.BlockchainType.Bitcoin:{const a=this.btcWallet;if(!a){this.emit("error",s,"BTC wallet not found");return}await this.btcRefund(a,s);break}case be.BlockchainType.Starknet:{this.emit("error",s,"Starknet refund is automatically done by relay service");break}default:this.emit("error",s,"Unsupported chain: "+s.source_swap.chain)}break}}}}},"pending",{per_page:500})}async evmRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing evm redeem"),this.orderExecutorCache.get(t,Ae.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._evmHTLC){this.emit("error",t,"EVMHTLC is required");return}const i=await this._evmHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,Ae.Redeem,t.destination_swap.redeem_tx_hash);return}this.orderExecutorCache.set(t,Ae.Redeem,i.val),this.emit("success",t,Ae.Redeem,i.val)}async starknetRedeem(t,r){if(this.emit("log",t.create_order.create_id,"executing starknet redeem"),this.orderExecutorCache.get(t,Ae.Redeem)){this.emit("log",t.create_order.create_id,"already redeemed");return}if(!this._starknetHTLC){this.emit("error",t,"StarknetHTLC is required");return}const i=await this._starknetHTLC.redeem(t,r);if(i.error){this.emit("error",t,i.error),i.error.includes("Order already redeemed")&&this.orderExecutorCache.set(t,Ae.Redeem,t.destination_swap.redeem_tx_hash);return}i.val&&(this.orderExecutorCache.set(t,Ae.Redeem,i.val),this.emit("success",t,Ae.Redeem,i.val))}async btcRedeem(t,r,n){var a,u;const i=this.bitcoinRedeemCache.get(r.create_order.create_id),s=(a=r.destination_swap.initiate_tx_hash.split(",").at(-1))==null?void 0:a.split(":").at(0);if(!s){this.emit("error",r,"Failed to get initiate_tx_hash");return}let o=!1;if(i)if(i.redeemedFromUTXO&&i.redeemedFromUTXO!==s)o=!0,this.emit("log",r.create_order.create_id,"rbf btc redeem");else if(i.redeemedAt&&Date.now()-i.redeemedAt>1e3*60*15)this.emit("log",r.create_order.create_id,"redeem not confirmed in last 15 minutes"),o=!0;else{this.emit("log",r.create_order.create_id,"btcRedeem: already redeemed");return}else if(r.destination_swap.redeem_tx_hash&&!Number(r.destination_swap.redeem_block_number))try{const h=await(await t.getProvider()).getTransaction(r.destination_swap.redeem_tx_hash);let d=!1;for(const y of h.vin)if(y.txid===s){d=!0;break}if(d){this.emit("log",r.create_order.create_id,"already a valid redeem");let y=0;try{const[v]=await(await t.getProvider()).getTransactionTimes([r.destination_swap.redeem_tx_hash]);v!==0&&(y=v)}catch{y=Date.now()}this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:y,redeemTxHash:r.destination_swap.redeem_tx_hash});return}o=!0}catch(h){if(h.message.includes("Transaction not found"))o=!0;else{this.emit("error",r,"Failed to get redeem tx: "+h);return}}this.emit("log",r.create_order.create_id,"executing btc redeem");try{const d=await(await hn.from(t,Number(r.destination_swap.amount),r.create_order.secret_hash,Zt(r.destination_swap.initiator),Zt(r.destination_swap.redeemer),r.destination_swap.timelock,o?[s]:[])).getRedeemHex(tr(n),(u=r.create_order.additional_data)==null?void 0:u.bitcoin_optional_recipient),y=await this.broadcastRedeemTx(d,r.create_order.create_id);if(y.error||!y.val){this.emit("error",r,y.error||"Failed to broadcast redeem tx");return}o?(this.emit("log",r.create_order.create_id,"rbf: btc redeem success"),this.emit("rbf",r,y.val)):this.emit("success",r,Ae.Redeem,y.val),this.bitcoinRedeemCache.set(r.create_order.create_id,{redeemedFromUTXO:s,redeemedAt:Date.now(),redeemTxHash:y.val})}catch(h){console.log("error",h),this.emit("error",r,"Failed btc redeem: "+h)}}async btcRefund(t,r){var n;if(!this.orderExecutorCache.get(r,Ae.Refund)){this.emit("log",r.create_order.create_id,"executing btc refund");try{const s=await(await hn.from(t,Number(r.source_swap.amount),r.create_order.secret_hash,Zt(r.source_swap.initiator),Zt(r.source_swap.redeemer),r.source_swap.timelock)).refund((n=r.create_order.additional_data)==null?void 0:n.bitcoin_optional_recipient);this.orderExecutorCache.set(r,Ae.Refund,s),this.emit("success",r,Ae.Refund,s)}catch(i){this.emit("error",r,"Failed btc refund: "+i)}}}async postRefundSACP(t,r){const n=this.refundSacpCache.get(t.create_order.create_id);if((n==null?void 0:n.initTxHash)===t.source_swap.initiate_tx_hash)return;const i=await hn.from(r,Number(t.source_swap.amount),t.create_order.secret_hash,Zt(t.source_swap.initiator),Zt(t.source_swap.redeemer),t.source_swap.timelock),s=t.create_order.additional_data.bitcoin_optional_recipient;if(s)try{const o=await i.generateInstantRefundSACP(s);if(!this._api)return;const a=new K.Url(this._api.orderbook).endpoint("orders/bitcoin/"+t.create_order.create_id+"/instant-refund");(await xt.post(a,{headers:{"Content-Type":"application/json"},body:JSON.stringify({instant_refund_tx_bytes:o})})).status==="Ok"&&this.refundSacpCache.set(t.create_order.create_id,{initTxHash:t.source_swap.initiate_tx_hash})}catch(o){this.emit("error",t,"Failed to generate and post SACP: "+o);return}}async filterExpiredAndAssignStatus(t){var i;if(t.length===0)return re([]);const r=await((i=this._blockNumberFetcher)==null?void 0:i.fetchBlockNumbers());if(r.error)return D(r.error);const n=[];for(let s=0;s<t.length;s++){const o=t[s];if(ba(o))continue;const a=o.source_swap.chain,u=o.destination_swap.chain,h=r==null?void 0:r.val[a],d=r==null?void 0:r.val[u];if(!h||!d){this.emit("error",o,"Error while fetching CurrentBlockNumbers");continue}const y=Ts(o,h,d);n.push({...o,status:y})}return re(n)}async broadcastRedeemTx(t,r){try{if(!this._api)return D("API not found");const n=new K.Url(this._api.evmRelay).endpoint("/bitcoin/redeem "),i=await this._auth.getAuthHeaders(),o=await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...i.val},body:JSON.stringify({redeem_tx_bytes:t,order_id:r})})).json();return o.status==="Ok"&&o.result?re(o.result):D(o.error)}catch(n){return D("Failed to broadcast redeem tx: "+n)}}}const Sy="https://starknet-sepolia.public.blastapi.io/rpc/v0_7";class Ay{constructor(t,r){this.callData=new Ge.CallData(af),this.nodeUrl=r||Sy,this.account=t}get htlcActorAddress(){return this.account.address}async getHTLCContract(t,r=!1){const n=r?t.destination_swap.asset:t.source_swap.asset;return new Ge.Contract(ff,n,this.account)}async initiate(t){try{const n=await(await this.getHTLCContract(t)).token();if(!n)throw new Error("Token address retrieval failed");const i=Ge.num.toHex(n),s=Ge.cairo.uint256(BigInt(t.source_swap.amount));try{const a=await cf(this.account,i,t.source_swap.asset,BigInt(t.source_swap.amount),this.nodeUrl);if(a.error)return D(a.error)}catch(a){return D(`Allowance check failed: ${a}`)}const o=await this.account.execute({contractAddress:t.source_swap.asset,entrypoint:"initiate",calldata:[t.source_swap.redeemer,BigInt(t.source_swap.timelock),s.low,s.high,...K.hexToU32Array(t.create_order.secret_hash)]});if(!o.transaction_hash)throw new Error("Failed to initiate HTLC transaction");return re(o.transaction_hash)}catch(r){return D(`HTLC Initiation Error: ${r}`)}}async redeem(t,r){try{const n=await this.getHTLCContract(t,!0),i=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,s=await this.account.execute({contractAddress:n.address,entrypoint:"redeem",calldata:Ge.CallData.compile({swap_id:i,secret:K.hexToU32Array(r)})});return s.transaction_hash?re(s.transaction_hash):D("Failed to redeem HTLC transaction")}catch{return D("HTLC Redeem Error")}}async refund(t){try{const r=t.create_order.source_chain.includes("starknet")?t.source_swap.swap_id:t.destination_swap.swap_id,n=await this.getHTLCContract(t),i=await this.account.execute({contractAddress:n.address,entrypoint:"refund",calldata:{orderId:r}});return i.transaction_hash?re(i.transaction_hash):D("Failed to refund HTLC transaction")}catch{return D("HTLC Refund Error")}}}exports.API=fn;exports.BlockNumberFetcher=Ka;exports.EvmRelay=of;exports.Garden=ro;exports.OrderActions=Ae;exports.OrderStatus=le;exports.ParseOrderStatus=Ts;exports.ParseSwapStatus=hs;exports.Quote=Ya;exports.SecretManager=bn;exports.StarknetHTLC=Ay;exports.StarknetRelay=uf;exports.SwapStatus=me;exports.constructOrderPair=ma;exports.evmToViemChainMap=nf;exports.filterDeadlineExpiredOrders=Af;exports.hyperliquid=rf;exports.hyperliquidTestnet=tf;exports.isExpired=dn;exports.parseAction=Sf;exports.parseActionFromStatus=Bs;exports.switchOrAddNetwork=sf;exports.validateBTCAddress=Ef;
|