@vbyte/btc-dev 1.0.6 → 1.0.8

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/script.js CHANGED
@@ -1,15 +1,15 @@
1
- var btc_devkit=function(e){"use strict";var t,n;!function(e){function t(e){return null===e.match(/[^a-fA-F0-9]/)&&e.length%2==0}e.is_hex=t,e.is_bytes=function(e){return!("string"!=typeof e||!t(e))||(e instanceof Uint8Array||!(!Array.isArray(e)||!e.every(e=>"number"==typeof e)))}}(t||(t={})),function(e){e.within_size=function(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)},e.is_hex=function(e){if(null!==e.match(/[^a-fA-f0-9]/))throw new TypeError("Invalid characters in hex string: "+e);if(e.length%2!=0)throw new Error(`Length of hex string is invalid: ${e.length}`)},e.is_bytes=function(e){if(!t.is_bytes(e))throw new Error("Bytes contains invalid elements: "+String(e))},e.is_json=function(e){try{JSON.parse(e)}catch{throw new TypeError("JSON string is invalid!")}},e.is_safe_int=function(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}}(n||(n={}));const r=BigInt(0),i=BigInt(255),s=BigInt(256);function o(e,t,n="be"){void 0===t&&(t=function(e){if(e<=0xffn)return 1;if(e<=0xffffn)return 2;if(e<=0xffffffffn)return 4;if(e<=0xffffffffffffffffn)return 8;if(e<=0xffffffffffffffffffffffffffffffffn)return 16;if(e<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)return 32;throw new TypeError("Must specify a fixed buffer size for bigints greater than 32 bytes.")}(e));const o="le"===n,a=new ArrayBuffer(t),u=new DataView(a);let c=o?0:t-1;for(;e>r;){const t=e&i,n=Number(t);o?u.setUint8(c++,n):u.setUint8(c--,n),e=(e-t)/s}return new Uint8Array(a)}function a(e,t){return"bigint"==typeof t?`${t}n`:t}function u(e,t){return"string"==typeof t&&/^[0-9]+n$/.test(t)?BigInt(t.slice(0,-1)):t}function c(e,t,n="be"){void 0===t&&(t=function(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=4294967295)return 4;throw new TypeError("Numbers larger than 4 bytes must specify a fixed size!")}(e));const r="le"===n,i=new ArrayBuffer(t),s=new DataView(i);let o=r?0:t-1;for(;e>0;){const t=255&e;r?s.setUint8(o++,e):s.setUint8(o--,e),e=(e-t)/256}return new Uint8Array(i)}function d(e,t,r="be"){t=function(e,t){n.is_hex(e);const r=e.length/2;void 0===t&&(t=r);if(r>t)throw new TypeError(`Hex string is larger than array size: ${r} > ${t}`);return t}(e,t);const i="be"===r,s=new ArrayBuffer(t),o=new DataView(s);let a=i?0:t-1;for(let t=0;t<e.length;t+=2){const n=e.substring(t,t+2),r=parseInt(n,16);i?o.setUint8(a++,r):o.setUint8(a--,r)}return new Uint8Array(s)}function h(e,t,r){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return function(e,t,r="le"){void 0===t&&(t=e.length);n.within_size(e,t);const i=new Uint8Array(t).fill(0),s="be"===r?0:t-e.length;return i.set(e,s),i}(e,t,r);if("string"==typeof e)return n.is_hex(e),d(e,t,r);if("bigint"==typeof e)return o(e,t,r);if("number"==typeof e)return c(e,t,r);throw new TypeError("Input type not supported:"+typeof e)}const f=new TextEncoder,l=new TextDecoder;function p(e){return f.encode(e)}function g(e){return l.decode(e)}class m extends Uint8Array{static{this.num=(e,t,n)=>new m(e,t,n)}static{this.big=(e,t,n)=>new m(e,t,n)}static{this.bin=(e,t,n)=>{const r=function(e){const t=e.split("").map(Number);if(t.length%8!=0)throw new Error(`Binary array is invalid length: ${e.length}`);const n=new Uint8Array(t.length/8);for(let e=0,r=0;e<t.length;e+=8,r++){let i=0;for(let n=0;n<8;n++)i|=t[e+n]<<7-n;n[r]=i}return n}(e);return new m(r,t,n)}}static{this.uint=(e,t,n)=>new m(e,t,n)}static{this.str=(e,t,n)=>{const r=p(e);return new m(r,t,n)}}static{this.hex=(e,t,r)=>(n.is_hex(e),new m(e,t,r))}static{this.bytes=(e,t,r)=>(n.is_bytes(e),new m(e,t,r))}static{this.json=(e,t)=>{t=t??a;const n=p(JSON.stringify(e,t));return new m(n)}}static{this.blob=(e,t,n)=>{const r=function(e,t,n){const r=e.length,i=n/t;if(n%t!==0)throw new TypeError(`Invalid parameters: ${n} % ${t} !== 0`);if(r!==n)throw new TypeError(`Invalid data stream: ${r} !== ${n}`);if(r%t!==0)throw new TypeError(`Invalid data stream: ${r} % ${t} !== 0`);const s=new Array(i);for(let n=0;n<i;n++){const r=n*t;s[n]=e.subarray(r,r+t)}return s}(h(e),t,n);return r.map(e=>new m(e))}}static{this.is_equal=(e,t)=>new m(e).hex===new m(t).hex}static{this.is_bytes=t.is_bytes}static{this.is_hex=t.is_hex}static random(e=32){const t=function(e=32){if(crypto&&"function"==typeof crypto.getRandomValues)return crypto.getRandomValues(new Uint8Array(e));const t=crypto;if(t&&void 0!==t.randomBytes&&"function"==typeof t.randomBytes)return t.randomBytes(e);throw new Error("getRandomValues from crypto library is undefined")}(e);return new m(t,e)}static now(){const e=Math.floor(Date.now()/1e3);return new m(e,4)}constructor(e,t,n){if(e instanceof m&&void 0===t)return e;super(h(e,t,n))}get arr(){return this.to_arr()}get big(){return this.to_big()}get bin(){return this.to_bin()}get hex(){return this.to_hex()}get num(){return this.to_num()}get str(){return this.to_str()}get uint(){return this.to_uint()}to_big(e="be"){return function(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*s+BigInt(e[n]);return BigInt(t)}("be"===e?this.uint.reverse():this.uint)}to_hex(e="be"){return function(e){let t="";for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,"0");return t}("be"===e?this.uint:this.uint.reverse())}to_json(e){void 0===e&&(e=u);const t=g(this);return JSON.parse(t,e)}to_num(e="be"){return function(e){let t=0;for(let r=e.length-1;r>=0;r--)t=256*t+e[r],n.is_safe_int(t);return t}("be"===e?this.uint.reverse():this.uint)}to_arr(){return[...this]}to_bin(){return function(e){const t=new Array(8*e.length);let n=0;for(const r of e){if(r>255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let e=7;e>=0;e--,n++)t[n]=r>>e&1}return t.join("")}(this)}to_str(){return g(this)}to_uint(){return new Uint8Array(this)}append(e){return m.join([this,new m(e)])}equals(e){return new m(e).hex===this.hex}prepend(e){return m.join([new m(e),this])}prefix_varint(e){if(0===this.length)throw new Error("buffer is empty");const t=m.varint(this.length,e);return this.prepend(t)}reverse(){return super.reverse(),this}set(e,t){this.set(e,t)}slice(e,t){const n=new Uint8Array(this).slice(e,t);return new m(n)}subarray(e,t){const n=new Uint8Array(this).subarray(e,t);return new m(n)}toJSON(){return this.hex}toString(){return this.hex}static from(e){return new m(Uint8Array.from(e))}static of(...e){return new m(Uint8Array.of(...e))}static join(e){const t=function(e){let t,n=0;const r=e.reduce((e,t)=>e+t.length,0),i=new Uint8Array(r);for(t=0;t<e.length;t++){const r=e[t];i.set(r,n),n+=r.length}return i}(e.map(e=>new m(e)));return new m(t)}static sort(e,t){const n=e.map(e=>new m(e,t).hex);return n.sort(),n.map(e=>m.hex(e,t))}static varint(e,t){if(e<253)return m.num(e,1);if(e<65536)return m.of(253,...m.num(e,2,t));if(e<4294967296)return m.of(254,...m.num(e,4,t));if(BigInt(e)<0x10000000000000000n)return m.of(255,...m.num(e,8,t));throw new Error(`Value is too large: ${e}`)}}class y{constructor(e){this.data=new m(e),this.size=this.data.length}peek(e){if(e>this.size)throw new Error(`Size greater than stream: ${e} > ${this.size}`);return new m(this.data.slice(0,e))}read(e){const t=this.peek(e);return this.data=this.data.slice(e),this.size=this.data.length,t}varint(e){const t=this.read(1).num;switch(!0){case t>=0&&t<253:return t;case 253===t:return this.read(2).to_num(e);case 254===t:return this.read(4).to_num(e);case 255===t:return this.read(8).to_num(e);default:throw new Error(`Varint is out of range: ${t}`)}}}function w(e){return e instanceof Map||Array.isArray(e)||"object"!=typeof e?e:Object.keys(e).sort().filter(([e,t])=>void 0!==t).reduce((t,n)=>(t[n]=e[n],t),{})}function v(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}var _,b;!function(e){function t(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function n(e){return"string"==typeof e}function r(e){return!!n(e)&&(null===e.match(/[^a-fA-F0-9]/)&&e.length%2==0)}e.exists=function(e){return null!=e},e.is_equal=function(e,t){return e===t},e.is_object=t,e.is_deep_equal=function(e,n){return t(e)&&(e=w(e)),t(n)&&(n=w(n)),String(e)===String(n)},e.has_items=function(e){return Array.isArray(e)&&e.length>0},e.is_string=n,e.is_number=function(e){return"number"==typeof e},e.is_bigint=function(e){return"bigint"==typeof e},e.is_uint=function(e){return e instanceof Uint8Array},e.is_bytes=function(e){return m.is_bytes(e)},e.is_base58=function(e){return"string"==typeof e&&/^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$/.test(e)},e.is_base64=function(e){return"string"==typeof e&&/^[a-zA-Z0-9+/]+={0,2}$/.test(e)},e.is_b64url=function(e){return"string"==typeof e&&/^[a-zA-Z0-9\-_]+={0,2}$/.test(e)},e.is_bech32=function(e){return"string"==typeof e&&/^[a-z]+1[023456789acdefghjklmnpqrstuvwxyz]+$/.test(e)},e.is_hex=r,e.is_hash=function(e){return n(e)&&r(e)&&64===e.length}}(_||(_={})),function(e){e.ok=function(e,t){if(!1===e)throw new Error(t??"Assertion failed!")},e.exists=function(e,t){if(!_.exists(e))throw new Error(t??"Value is null or undefined!")},e.is_equal=function(e,t,n){if(!_.is_equal(e,t))throw new Error(n??`values are not equal: ${String(e)} !== ${String(t)}`)},e.is_object=function(e,t){if(!_.is_object(e))throw new Error(t??`value is not an object: ${String(e)}`)},e.is_deep_equal=function(e,t,n){if(!_.is_deep_equal(e,t))throw new Error(n??`values are not deep equal: ${String(e)} !== ${String(t)}`)},e.is_number=function(e){if(!_.is_number(e))throw new TypeError(`invalid number: ${String(e)}`)},e.is_bigint=function(e){if(!_.is_bigint(e))throw new TypeError(`invalid bigint: ${String(e)}`)},e.is_hex=function(e){if(!_.is_hex(e))throw new TypeError(`invalid hex: ${String(e)}`)},e.is_uint=function(e){if(!_.is_uint(e))throw new TypeError(`invalid uint: ${String(e)}`)},e.is_hash=function(e,t){if(!_.is_hash(e))throw new TypeError(t??`invalid hash: ${String(e)}`)},e.is_bytes=function(e,t){if(!_.is_bytes(e))throw new TypeError(t??`invalid bytes: ${String(e)}`)},e.size=function(e,t,n){const r=m.bytes(e);if(r.length!==t)throw new Error(n??`invalid input size: ${r.length} !== ${t}`)},e.has_items=function(e,t){if(!_.has_items(e))throw new Error(t??"array does not contain any items")},e.is_base58=function(e){if(!_.is_base58(e))throw new Error("invalid base58 string")},e.is_base64=function(e){if(!_.is_base64(e))throw new Error("invalid base64 string")},e.is_b64url=function(e){if(!_.is_b64url(e))throw new Error("invalid base64url string")},e.is_bech32=function(e){if(!_.is_bech32(e))throw new Error("invalid bech32 string")}}(b||(b={}));const E="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;
1
+ var btc_devkit=function(e){"use strict";var t,n;!function(e){function t(e){return null===e.match(/[^a-fA-F0-9]/)&&e.length%2==0}e.is_hex=t,e.is_bytes=function(e){return!("string"!=typeof e||!t(e))||(e instanceof Uint8Array||!(!Array.isArray(e)||!e.every(e=>"number"==typeof e)))}}(t||(t={})),function(e){e.within_size=function(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)},e.is_hex=function(e){if(null!==e.match(/[^a-fA-f0-9]/))throw new TypeError("Invalid characters in hex string: "+e);if(e.length%2!=0)throw new Error(`Length of hex string is invalid: ${e.length}`)},e.is_bytes=function(e){if(!t.is_bytes(e))throw new Error("Bytes contains invalid elements: "+String(e))},e.is_json=function(e){try{JSON.parse(e)}catch{throw new TypeError("JSON string is invalid!")}},e.is_safe_int=function(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}}(n||(n={}));const r=BigInt(0),i=BigInt(255),s=BigInt(256);function o(e,t,n="be"){void 0===t&&(t=function(e){if(e<=0xffn)return 1;if(e<=0xffffn)return 2;if(e<=0xffffffffn)return 4;if(e<=0xffffffffffffffffn)return 8;if(e<=0xffffffffffffffffffffffffffffffffn)return 16;if(e<=0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffn)return 32;throw new TypeError("Must specify a fixed buffer size for bigints greater than 32 bytes.")}(e));const o="le"===n,a=new ArrayBuffer(t),u=new DataView(a);let c=o?0:t-1;for(;e>r;){const t=e&i,n=Number(t);o?u.setUint8(c++,n):u.setUint8(c--,n),e=(e-t)/s}return new Uint8Array(a)}function a(e,t){return"bigint"==typeof t?`${t}n`:t}function u(e,t){return"string"==typeof t&&/^[0-9]+n$/.test(t)?BigInt(t.slice(0,-1)):t}function c(e,t,n="be"){void 0===t&&(t=function(e){if(e<=255)return 1;if(e<=65535)return 2;if(e<=4294967295)return 4;throw new TypeError("Numbers larger than 4 bytes must specify a fixed size!")}(e));const r="le"===n,i=new ArrayBuffer(t),s=new DataView(i);let o=r?0:t-1;for(;e>0;){const t=255&e;r?s.setUint8(o++,e):s.setUint8(o--,e),e=(e-t)/256}return new Uint8Array(i)}function d(e,t,r="be"){t=function(e,t){n.is_hex(e);const r=e.length/2;void 0===t&&(t=r);if(r>t)throw new TypeError(`Hex string is larger than array size: ${r} > ${t}`);return t}(e,t);const i="be"===r,s=new ArrayBuffer(t),o=new DataView(s);let a=i?0:t-1;for(let t=0;t<e.length;t+=2){const n=e.substring(t,t+2),r=parseInt(n,16);i?o.setUint8(a++,r):o.setUint8(a--,r)}return new Uint8Array(s)}function h(e,t,r){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return function(e,t,r="le"){void 0===t&&(t=e.length);n.within_size(e,t);const i=new Uint8Array(t).fill(0),s="be"===r?0:t-e.length;return i.set(e,s),i}(e,t,r);if("string"==typeof e)return n.is_hex(e),d(e,t,r);if("bigint"==typeof e)return o(e,t,r);if("number"==typeof e)return c(e,t,r);throw new TypeError("Input type not supported:"+typeof e)}const f=new TextEncoder,l=new TextDecoder;function p(e){return f.encode(e)}function g(e){return l.decode(e)}class m extends Uint8Array{static{this.num=(e,t,n)=>new m(e,t,n)}static{this.big=(e,t,n)=>new m(e,t,n)}static{this.bin=(e,t,n)=>{const r=function(e){const t=e.split("").map(Number);if(t.length%8!=0)throw new Error(`Binary array is invalid length: ${e.length}`);const n=new Uint8Array(t.length/8);for(let e=0,r=0;e<t.length;e+=8,r++){let i=0;for(let n=0;n<8;n++)i|=t[e+n]<<7-n;n[r]=i}return n}(e);return new m(r,t,n)}}static{this.uint=(e,t,n)=>new m(e,t,n)}static{this.str=(e,t,n)=>{const r=p(e);return new m(r,t,n)}}static{this.hex=(e,t,r)=>(n.is_hex(e),new m(e,t,r))}static{this.bytes=(e,t,r)=>(n.is_bytes(e),new m(e,t,r))}static{this.json=(e,t)=>{t=t??a;const n=p(JSON.stringify(e,t));return new m(n)}}static{this.blob=(e,t,n)=>{const r=function(e,t,n){const r=e.length,i=n/t;if(n%t!==0)throw new TypeError(`Invalid parameters: ${n} % ${t} !== 0`);if(r!==n)throw new TypeError(`Invalid data stream: ${r} !== ${n}`);if(r%t!==0)throw new TypeError(`Invalid data stream: ${r} % ${t} !== 0`);const s=new Array(i);for(let n=0;n<i;n++){const r=n*t;s[n]=e.subarray(r,r+t)}return s}(h(e),t,n);return r.map(e=>new m(e))}}static{this.is_equal=(e,t)=>new m(e).hex===new m(t).hex}static{this.is_bytes=t.is_bytes}static{this.is_hex=t.is_hex}static random(e=32){const t=function(e=32){if(crypto&&"function"==typeof crypto.getRandomValues)return crypto.getRandomValues(new Uint8Array(e));const t=crypto;if(t&&void 0!==t.randomBytes&&"function"==typeof t.randomBytes)return t.randomBytes(e);throw new Error("getRandomValues from crypto library is undefined")}(e);return new m(t,e)}static now(){const e=Math.floor(Date.now()/1e3);return new m(e,4)}constructor(e,t,n){if(e instanceof m&&void 0===t)return e;super(h(e,t,n))}get arr(){return this.to_arr()}get big(){return this.to_big()}get bin(){return this.to_bin()}get hex(){return this.to_hex()}get num(){return this.to_num()}get str(){return this.to_str()}get uint(){return this.to_uint()}to_big(e="be"){return function(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*s+BigInt(e[n]);return BigInt(t)}("be"===e?this.uint.reverse():this.uint)}to_hex(e="be"){return function(e){let t="";for(let n=0;n<e.length;n++)t+=e[n].toString(16).padStart(2,"0");return t}("be"===e?this.uint:this.uint.reverse())}to_json(e){void 0===e&&(e=u);const t=g(this);return JSON.parse(t,e)}to_num(e="be"){return function(e){let t=0;for(let r=e.length-1;r>=0;r--)t=256*t+e[r],n.is_safe_int(t);return t}("be"===e?this.uint.reverse():this.uint)}to_arr(){return[...this]}to_bin(){return function(e){const t=new Array(8*e.length);let n=0;for(const r of e){if(r>255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let e=7;e>=0;e--,n++)t[n]=r>>e&1}return t.join("")}(this)}to_str(){return g(this)}to_uint(){return new Uint8Array(this)}append(e){return m.join([this,new m(e)])}equals(e){return new m(e).hex===this.hex}prepend(e){return m.join([new m(e),this])}prefix_varint(e){if(0===this.length)throw new Error("buffer is empty");const t=m.varint(this.length,e);return this.prepend(t)}reverse(){return super.reverse(),this}set(e,t){this.set(e,t)}slice(e,t){const n=new Uint8Array(this).slice(e,t);return new m(n)}subarray(e,t){const n=new Uint8Array(this).subarray(e,t);return new m(n)}toJSON(){return this.hex}toString(){return this.hex}static from(e){return new m(Uint8Array.from(e))}static of(...e){return new m(Uint8Array.of(...e))}static join(e){const t=function(e){let t,n=0;const r=e.reduce((e,t)=>e+t.length,0),i=new Uint8Array(r);for(t=0;t<e.length;t++){const r=e[t];i.set(r,n),n+=r.length}return i}(e.map(e=>new m(e)));return new m(t)}static sort(e,t){const n=e.map(e=>new m(e,t).hex);return n.sort(),n.map(e=>m.hex(e,t))}static varint(e,t){if(e<253)return m.num(e,1);if(e<65536)return m.of(253,...m.num(e,2,t));if(e<4294967296)return m.of(254,...m.num(e,4,t));if(BigInt(e)<0x10000000000000000n)return m.of(255,...m.num(e,8,t));throw new Error(`Value is too large: ${e}`)}}class y{constructor(e){this.data=new m(e),this.size=this.data.length}peek(e){if(e>this.size)throw new Error(`Size greater than stream: ${e} > ${this.size}`);return new m(this.data.slice(0,e))}read(e){const t=this.peek(e);return this.data=this.data.slice(e),this.size=this.data.length,t}varint(e){const t=this.read(1).num;switch(!0){case t>=0&&t<253:return t;case 253===t:return this.read(2).to_num(e);case 254===t:return this.read(4).to_num(e);case 255===t:return this.read(8).to_num(e);default:throw new Error(`Varint is out of range: ${t}`)}}}function w(e){return e instanceof Map||Array.isArray(e)||"object"!=typeof e?e:Object.keys(e).sort().filter(([e,t])=>void 0!==t).reduce((t,n)=>(t[n]=e[n],t),{})}function _(e){return e instanceof Error?e.message:"string"==typeof e?e:String(e)}var v,b;!function(e){function t(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function n(e){return"string"==typeof e}function r(e){return!!n(e)&&(null===e.match(/[^a-fA-F0-9]/)&&e.length%2==0)}e.exists=function(e){return null!=e},e.is_equal=function(e,t){return e===t},e.is_object=t,e.is_deep_equal=function(e,n){return t(e)&&(e=w(e)),t(n)&&(n=w(n)),String(e)===String(n)},e.has_items=function(e){return Array.isArray(e)&&e.length>0},e.is_string=n,e.is_number=function(e){return"number"==typeof e},e.is_bigint=function(e){return"bigint"==typeof e},e.is_uint=function(e){return e instanceof Uint8Array},e.is_bytes=function(e){return m.is_bytes(e)},e.is_base58=function(e){return"string"==typeof e&&/^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$/.test(e)},e.is_base64=function(e){return"string"==typeof e&&/^[a-zA-Z0-9+/]+={0,2}$/.test(e)},e.is_b64url=function(e){return"string"==typeof e&&/^[a-zA-Z0-9\-_]+={0,2}$/.test(e)},e.is_bech32=function(e){return"string"==typeof e&&/^[a-z]+1[023456789acdefghjklmnpqrstuvwxyz]+$/.test(e)},e.is_hex=r,e.is_hash=function(e){return n(e)&&r(e)&&64===e.length}}(v||(v={})),function(e){e.ok=function(e,t){if(!1===e)throw new Error(t??"Assertion failed!")},e.exists=function(e,t){if(!v.exists(e))throw new Error(t??"Value is null or undefined!")},e.is_equal=function(e,t,n){if(!v.is_equal(e,t))throw new Error(n??`values are not equal: ${String(e)} !== ${String(t)}`)},e.is_object=function(e,t){if(!v.is_object(e))throw new Error(t??`value is not an object: ${String(e)}`)},e.is_deep_equal=function(e,t,n){if(!v.is_deep_equal(e,t))throw new Error(n??`values are not deep equal: ${String(e)} !== ${String(t)}`)},e.is_number=function(e){if(!v.is_number(e))throw new TypeError(`invalid number: ${String(e)}`)},e.is_bigint=function(e){if(!v.is_bigint(e))throw new TypeError(`invalid bigint: ${String(e)}`)},e.is_hex=function(e){if(!v.is_hex(e))throw new TypeError(`invalid hex: ${String(e)}`)},e.is_uint=function(e){if(!v.is_uint(e))throw new TypeError(`invalid uint: ${String(e)}`)},e.is_hash=function(e,t){if(!v.is_hash(e))throw new TypeError(t??`invalid hash: ${String(e)}`)},e.is_bytes=function(e,t){if(!v.is_bytes(e))throw new TypeError(t??`invalid bytes: ${String(e)}`)},e.size=function(e,t,n){const r=m.bytes(e);if(r.length!==t)throw new Error(n??`invalid input size: ${r.length} !== ${t}`)},e.has_items=function(e,t){if(!v.has_items(e))throw new Error(t??"array does not contain any items")},e.is_base58=function(e){if(!v.is_base58(e))throw new Error("invalid base58 string")},e.is_base64=function(e){if(!v.is_base64(e))throw new Error("invalid base64 string")},e.is_b64url=function(e){if(!v.is_b64url(e))throw new Error("invalid base64url string")},e.is_bech32=function(e){if(!v.is_bech32(e))throw new Error("invalid bech32 string")}}(b||(b={}));const E="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0;
2
2
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function x(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function S(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function k(e,...t){if(!x(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 O(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 A(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function P(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function T(e,t){return e<<32-t|e>>>t}function I(e,t){return e<<t|e>>>32-t>>>0}const N=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)(),U=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function $(e){if(k(e),N)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=U[e[n]];return t}const C=48,B=57,R=65,L=70,z=97,j=102;function H(e){return e>=C&&e<=B?e-C:e>=R&&e<=L?e-(R-10):e>=z&&e<=j?e-(z-10):void 0}function D(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);if(N)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){const n=H(e.charCodeAt(i)),s=H(e.charCodeAt(i+1));if(void 0===n||void 0===s){const t=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+t+'" at index '+i)}r[t]=16*n+s}return r}function F(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))}(e)),k(e),e}function V(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];k(r),t+=r.length}const n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){const i=e[t];n.set(i,r),r+=i.length}return n}class Z{}function K(e){const t=t=>e().update(F(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function W(e=32){if(E&&"function"==typeof E.getRandomValues)return E.getRandomValues(new Uint8Array(e));if(E&&"function"==typeof E.randomBytes)return Uint8Array.from(E.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function q(e,t,n){return e&t^~e&n}function M(e,t,n){return e&t^e&n^t&n}class G extends Z{constructor(e,t,n,r){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=r,this.buffer=new Uint8Array(e),this.view=P(this.buffer)}update(e){O(this),k(e=F(e));const{view:t,buffer:n,blockLen:r}=this,i=e.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);if(o===r){const t=P(e);for(;r<=i-s;s+=r)this.process(t,s);continue}n.set(e.subarray(s,s+o),this.pos),this.pos+=o,s+=o,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){O(this),function(e,t){k(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:r,isLE:i}=this;let{pos:s}=this;t[s++]=128,A(this.buffer.subarray(s)),this.padOffset>r-s&&(this.process(n,0),s=0);for(let e=s;e<r;e++)t[e]=0;!function(e,t,n,r){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),u=r?4:0,c=r?0:4;e.setUint32(t+u,o,r),e.setUint32(t+c,a,r)}(n,r-8,BigInt(8*this.length),i),this.process(n,0);const o=P(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=a/4,c=this.get();if(u>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<u;e++)o.setUint32(4*e,c[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:r,finished:i,destroyed:s,pos:o}=this;return e.destroyed=s,e.finished=i,e.length=r,e.pos=o,r%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}}const Y=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Q=Uint32Array.from([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]),J=new Uint32Array(64);class X extends G{constructor(e=32){super(64,e,8,!1),this.A=0|Y[0],this.B=0|Y[1],this.C=0|Y[2],this.D=0|Y[3],this.E=0|Y[4],this.F=0|Y[5],this.G=0|Y[6],this.H=0|Y[7]}get(){const{A:e,B:t,C:n,D:r,E:i,F:s,G:o,H:a}=this;return[e,t,n,r,i,s,o,a]}set(e,t,n,r,i,s,o,a){this.A=0|e,this.B=0|t,this.C=0|n,this.D=0|r,this.E=0|i,this.F=0|s,this.G=0|o,this.H=0|a}process(e,t){for(let n=0;n<16;n++,t+=4)J[n]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=J[e-15],n=J[e-2],r=T(t,7)^T(t,18)^t>>>3,i=T(n,17)^T(n,19)^n>>>10;J[e]=i+J[e-7]+r+J[e-16]|0}let{A:n,B:r,C:i,D:s,E:o,F:a,G:u,H:c}=this;for(let e=0;e<64;e++){const t=c+(T(o,6)^T(o,11)^T(o,25))+q(o,a,u)+Q[e]+J[e]|0,d=(T(n,2)^T(n,13)^T(n,22))+M(n,r,i)|0;c=u,u=a,a=o,o=s+t|0,s=i,i=r,r=n,n=t+d|0}n=n+this.A|0,r=r+this.B|0,i=i+this.C|0,s=s+this.D|0,o=o+this.E|0,a=a+this.F|0,u=u+this.G|0,c=c+this.H|0,this.set(n,r,i,s,o,a,u,c)}roundClean(){A(J)}destroy(){this.set(0,0,0,0,0,0,0,0),A(this.buffer)}}const ee=K(()=>new X);class te extends Z{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.createHasher");S(e.outputLen),S(e.blockLen)}(e);const n=F(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const r=this.blockLen,i=new Uint8Array(r);i.set(n.length>r?e.create().update(n).digest():n);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),A(i)}update(e){return O(this),this.iHash.update(e),this}digestInto(e){O(this),k(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:r,destroyed:i,blockLen:s,outputLen:o}=this;return e.finished=r,e.destroyed=i,e.blockLen=s,e.outputLen=o,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ne=(e,t,n)=>new te(e,t).update(n).digest();ne.create=(e,t)=>new te(e,t);
3
3
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
4
4
  const re=BigInt(0),ie=BigInt(1);function se(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}function oe(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function ae(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?re:BigInt("0x"+e)}function ue(e){return ae($(e))}function ce(e){return k(e),ae($(Uint8Array.from(e).reverse()))}function de(e,t){return D(e.toString(16).padStart(2*t,"0"))}function he(e,t){return de(e,t).reverse()}function fe(e,t,n){let r;if("string"==typeof t)try{r=D(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!x(t))throw new Error(e+" must be hex string or Uint8Array");r=Uint8Array.from(t)}const i=r.length;if("number"==typeof n&&i!==n)throw new Error(e+" of length "+n+" expected, got "+i);return r}const le=e=>"bigint"==typeof e&&re<=e;function pe(e,t,n){return le(e)&&le(t)&&le(n)&&t<=e&&e<n}function ge(e,t,n,r){if(!pe(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}const me=e=>(ie<<BigInt(e))-ie;function ye(e,t,n={}){if(!e||"object"!=typeof e)throw new Error("expected valid options object");function r(t,n,r){const i=e[t];if(r&&void 0===i)return;const s=typeof i;if(s!==n||null===i)throw new Error(`param "${t}" is invalid: expected ${n}, got ${s}`)}Object.entries(t).forEach(([e,t])=>r(e,t,!1)),Object.entries(n).forEach(([e,t])=>r(e,t,!0))}function we(e){const t=new WeakMap;return(n,...r)=>{const i=t.get(n);if(void 0!==i)return i;const s=e(n,...r);return t.set(n,s),s}}
5
- /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ve=BigInt(0),_e=BigInt(1),be=BigInt(2),Ee=BigInt(3),xe=BigInt(4),Se=BigInt(5),ke=BigInt(8);function Oe(e,t){const n=e%t;return n>=ve?n:t+n}function Ae(e,t,n){let r=e;for(;t-- >ve;)r*=r,r%=n;return r}function Pe(e,t){if(e===ve)throw new Error("invert: expected non-zero number");if(t<=ve)throw new Error("invert: expected positive modulus, got "+t);let n=Oe(e,t),r=t,i=ve,s=_e;for(;n!==ve;){const e=r%n,t=i-s*(r/n);r=n,n=e,i=s,s=t}if(r!==_e)throw new Error("invert: does not exist");return Oe(i,t)}function Te(e,t){const n=(e.ORDER+_e)/xe,r=e.pow(t,n);if(!e.eql(e.sqr(r),t))throw new Error("Cannot find square root");return r}function Ie(e,t){const n=(e.ORDER-Se)/ke,r=e.mul(t,be),i=e.pow(r,n),s=e.mul(t,i),o=e.mul(e.mul(s,be),i),a=e.mul(s,e.sub(o,e.ONE));if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function Ne(e){return e%xe===Ee?Te:e%ke===Se?Ie:function(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let t=e-_e,n=0;for(;t%be===ve;)t/=be,n++;let r=be;const i=Be(e);for(;1===Ce(i,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Te;let s=i.pow(r,t);const o=(t+_e)/be;return function(e,r){if(e.is0(r))return r;if(1!==Ce(e,r))throw new Error("Cannot find square root");let i=n,a=e.mul(e.ONE,s),u=e.pow(r,t),c=e.pow(r,o);for(;!e.eql(u,e.ONE);){if(e.is0(u))return e.ZERO;let t=1,n=e.sqr(u);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const r=_e<<BigInt(i-t-1),s=e.pow(a,r);i=t,a=e.sqr(s),u=e.mul(u,a),c=e.mul(c,s)}return c}}(e)}const Ue=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $e(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),s=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),s),r}function Ce(e,t){const n=(e.ORDER-_e)/be,r=e.pow(t,n),i=e.eql(r,e.ONE),s=e.eql(r,e.ZERO),o=e.eql(r,e.neg(e.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function Be(e,t,n=!1,r={}){if(e<=ve)throw new Error("invalid field: expected ORDER > 0, got "+e);let i,s;if("object"==typeof t&&null!=t){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(i=e.BITS),e.sqrt&&(s=e.sqrt),"boolean"==typeof e.isLE&&(n=e.isLE)}else"number"==typeof t&&(i=t),r.sqrt&&(s=r.sqrt);const{nBitLength:o,nByteLength:a}=function(e,t){void 0!==t&&S(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}(e,i);if(a>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let u;const c=Object.freeze({ORDER:e,isLE:n,BITS:o,BYTES:a,MASK:me(o),ZERO:ve,ONE:_e,create:t=>Oe(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return ve<=t&&t<e},is0:e=>e===ve,isValidNot0:e=>!c.is0(e)&&c.isValid(e),isOdd:e=>(e&_e)===_e,neg:t=>Oe(-t,e),eql:(e,t)=>e===t,sqr:t=>Oe(t*t,e),add:(t,n)=>Oe(t+n,e),sub:(t,n)=>Oe(t-n,e),mul:(t,n)=>Oe(t*n,e),pow:(e,t)=>function(e,t,n){if(n<ve)throw new Error("invalid exponent, negatives unsupported");if(n===ve)return e.ONE;if(n===_e)return t;let r=e.ONE,i=t;for(;n>ve;)n&_e&&(r=e.mul(r,i)),i=e.sqr(i),n>>=_e;return r}(c,e,t),div:(t,n)=>Oe(t*Pe(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Pe(t,e),sqrt:s||(t=>(u||(u=Ne(e)),u(c,t))),toBytes:e=>n?he(e,a):de(e,a),fromBytes:e=>{if(e.length!==a)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+e.length);return n?ce(e):ue(e)},invertBatch:e=>$e(c,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(c)}function Re(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Le(e){const t=Re(e);return t+Math.ceil(t/2)}
5
+ /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _e=BigInt(0),ve=BigInt(1),be=BigInt(2),Ee=BigInt(3),xe=BigInt(4),Se=BigInt(5),ke=BigInt(8);function Oe(e,t){const n=e%t;return n>=_e?n:t+n}function Ae(e,t,n){let r=e;for(;t-- >_e;)r*=r,r%=n;return r}function Pe(e,t){if(e===_e)throw new Error("invert: expected non-zero number");if(t<=_e)throw new Error("invert: expected positive modulus, got "+t);let n=Oe(e,t),r=t,i=_e,s=ve;for(;n!==_e;){const e=r%n,t=i-s*(r/n);r=n,n=e,i=s,s=t}if(r!==ve)throw new Error("invert: does not exist");return Oe(i,t)}function Te(e,t){const n=(e.ORDER+ve)/xe,r=e.pow(t,n);if(!e.eql(e.sqr(r),t))throw new Error("Cannot find square root");return r}function Ie(e,t){const n=(e.ORDER-Se)/ke,r=e.mul(t,be),i=e.pow(r,n),s=e.mul(t,i),o=e.mul(e.mul(s,be),i),a=e.mul(s,e.sub(o,e.ONE));if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function Ne(e){return e%xe===Ee?Te:e%ke===Se?Ie:function(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let t=e-ve,n=0;for(;t%be===_e;)t/=be,n++;let r=be;const i=Be(e);for(;1===Ce(i,r);)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(1===n)return Te;let s=i.pow(r,t);const o=(t+ve)/be;return function(e,r){if(e.is0(r))return r;if(1!==Ce(e,r))throw new Error("Cannot find square root");let i=n,a=e.mul(e.ONE,s),u=e.pow(r,t),c=e.pow(r,o);for(;!e.eql(u,e.ONE);){if(e.is0(u))return e.ZERO;let t=1,n=e.sqr(u);for(;!e.eql(n,e.ONE);)if(t++,n=e.sqr(n),t===i)throw new Error("Cannot find square root");const r=ve<<BigInt(i-t-1),s=e.pow(a,r);i=t,a=e.sqr(s),u=e.mul(u,a),c=e.mul(c,s)}return c}}(e)}const Ue=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $e(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),i=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),s=e.inv(i);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),s),r}function Ce(e,t){const n=(e.ORDER-ve)/be,r=e.pow(t,n),i=e.eql(r,e.ONE),s=e.eql(r,e.ZERO),o=e.eql(r,e.neg(e.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function Be(e,t,n=!1,r={}){if(e<=_e)throw new Error("invalid field: expected ORDER > 0, got "+e);let i,s;if("object"==typeof t&&null!=t){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const e=t;e.BITS&&(i=e.BITS),e.sqrt&&(s=e.sqrt),"boolean"==typeof e.isLE&&(n=e.isLE)}else"number"==typeof t&&(i=t),r.sqrt&&(s=r.sqrt);const{nBitLength:o,nByteLength:a}=function(e,t){void 0!==t&&S(t);const n=void 0!==t?t:e.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}(e,i);if(a>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let u;const c=Object.freeze({ORDER:e,isLE:n,BITS:o,BYTES:a,MASK:me(o),ZERO:_e,ONE:ve,create:t=>Oe(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return _e<=t&&t<e},is0:e=>e===_e,isValidNot0:e=>!c.is0(e)&&c.isValid(e),isOdd:e=>(e&ve)===ve,neg:t=>Oe(-t,e),eql:(e,t)=>e===t,sqr:t=>Oe(t*t,e),add:(t,n)=>Oe(t+n,e),sub:(t,n)=>Oe(t-n,e),mul:(t,n)=>Oe(t*n,e),pow:(e,t)=>function(e,t,n){if(n<_e)throw new Error("invalid exponent, negatives unsupported");if(n===_e)return e.ONE;if(n===ve)return t;let r=e.ONE,i=t;for(;n>_e;)n&ve&&(r=e.mul(r,i)),i=e.sqr(i),n>>=ve;return r}(c,e,t),div:(t,n)=>Oe(t*Pe(n,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Pe(t,e),sqrt:s||(t=>(u||(u=Ne(e)),u(c,t))),toBytes:e=>n?he(e,a):de(e,a),fromBytes:e=>{if(e.length!==a)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+e.length);return n?ce(e):ue(e)},invertBatch:e=>$e(c,e),cmov:(e,t,n)=>n?t:e});return Object.freeze(c)}function Re(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Le(e){const t=Re(e);return t+Math.ceil(t/2)}
6
6
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
7
7
  const ze=BigInt(0),je=BigInt(1);function He(e,t){const n=t.negate();return e?n:t}function De(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Fe(e,t){De(e,t);const n=2**e;return{windows:Math.ceil(t/e)+1,windowSize:2**(e-1),mask:me(e),maxNumber:n,shiftBy:BigInt(e)}}function Ve(e,t,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(e&i),u=e>>o;a>r&&(a-=s,u+=je);const c=t*r;return{nextN:u,offset:c+Math.abs(a)-1,isZero:0===a,isNeg:a<0,isNegF:t%2!=0,offsetF:c}}const Ze=new WeakMap,Ke=new WeakMap;function We(e){return Ke.get(e)||1}function qe(e){if(e!==ze)throw new Error("invalid wNAF")}function Me(e,t,n,r){!function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,n)=>{if(!(e instanceof t))throw new Error("invalid point at index "+n)})}(n,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,n)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+n)})}(r,t);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=e.ZERO,a=function(e){let t;for(t=0;e>re;e>>=ie,t+=1);return t}(BigInt(i));let u=1;a>12?u=a-3:a>4?u=a-2:a>0&&(u=2);const c=me(u),d=new Array(Number(c)+1).fill(o);let h=o;for(let e=Math.floor((t.BITS-1)/u)*u;e>=0;e-=u){d.fill(o);for(let t=0;t<s;t++){const i=r[t],s=Number(i>>BigInt(e)&c);d[s]=d[s].add(n[t])}let t=o;for(let e=d.length-1,n=o;e>0;e--)n=n.add(d[e]),t=t.add(n);if(h=h.add(t),0!==e)for(let e=0;e<u;e++)h=h.double()}return h}function Ge(e,t){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return function(e){ye(e,Ue.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"}))}(t),t}return Be(e)}
8
8
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
9
- function Ye(e){void 0!==e.lowS&&se("lowS",e.lowS),void 0!==e.prehash&&se("prehash",e.prehash)}class Qe extends Error{constructor(e=""){super(e)}}const Je={Err:Qe,_tlv:{encode:(e,t)=>{const{Err:n}=Je;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,i=oe(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?oe(i.length/2|128):"";return oe(e)+s+i+t},decode(e,t){const{Err:n}=Je;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[r++];let s=0;if(!!(128&i)){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const o=t.subarray(r,r+e);if(o.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===o[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of o)s=s<<8|e;if(r+=e,s<128)throw new n("tlv.decode(long): not minimal encoding")}else s=i;const o=t.subarray(r,r+s);if(o.length!==s)throw new n("tlv.decode: wrong value length");return{v:o,l:t.subarray(r+s)}}},_int:{encode(e){const{Err:t}=Je;if(e<Xe)throw new t("integer: negative integers are not allowed");let n=oe(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=Je;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return ue(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Je,i=fe("signature",e),{v:s,l:o}=r.decode(48,i);if(o.length)throw new t("invalid signature: left bytes after parsing");const{v:a,l:u}=r.decode(2,s),{v:c,l:d}=r.decode(2,u);if(d.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(c)}},hexFromSig(e){const{_tlv:t,_int:n}=Je,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Xe=BigInt(0),et=BigInt(1),tt=BigInt(2),nt=BigInt(3),rt=BigInt(4);function it(e,t,n){const{BYTES:r}=e;return function(i){let s;if("bigint"==typeof i)s=i;else{let n=fe("private key",i);if(t){if(!t.includes(2*n.length))throw new Error("invalid private key");const e=new Uint8Array(r);e.set(n,e.length-n.length),n=e}try{s=e.fromBytes(n)}catch(e){throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof i}`)}}if(n&&(s=e.create(s)),!e.isValidNot0(s))throw new Error("invalid private key: out of range [1..N-1]");return s}}function st(e,t={}){const{Fp:n,Fn:r}=function(e,t,n={}){if(!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const n=t[e];if(!("bigint"==typeof n&&n>ze))throw new Error(`CURVE.${e} must be positive bigint`)}const r=Ge(t.p,n.Fp),i=Ge(t.n,n.Fn),s=["Gx","Gy","a","b"];for(const e of s)if(!r.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{Fp:r,Fn:i}}("weierstrass",e,t),{h:i,n:s}=e;ye(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:o}=t;if(o&&(!n.is0(e.a)||"bigint"!=typeof o.beta||"function"!=typeof o.splitScalar))throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function');function a(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const u=t.toBytes||function(e,t,r){const{x:i,y:s}=t.toAffine(),o=n.toBytes(i);if(se("isCompressed",r),r){a();return V(ot(!n.isOdd(s)),o)}return V(Uint8Array.of(4),o,n.toBytes(s))},c=t.fromBytes||function(e){k(e);const t=n.BYTES,r=t+1,i=2*t+1,s=e.length,o=e[0],u=e.subarray(1);if(s!==r||2!==o&&3!==o){if(s===i&&4===o){const e=n.fromBytes(u.subarray(0*t,1*t)),r=n.fromBytes(u.subarray(1*t,2*t));if(!h(e,r))throw new Error("bad point: is not on curve");return{x:e,y:r}}throw new Error(`bad point: got length ${s}, expected compressed=${r} or uncompressed=${i}`)}{const e=n.fromBytes(u);if(!n.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=d(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}a();return!(1&~o)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}},d=function(e,t,n){return function(r){const i=e.sqr(r),s=e.mul(i,r);return e.add(e.add(s,e.mul(r,t)),n)}}(n,e.a,e.b);function h(e,t){const r=n.sqr(t),i=d(e);return n.eql(r,i)}if(!h(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const f=n.mul(n.pow(e.a,nt),rt),l=n.mul(n.sqr(e.b),BigInt(27));if(n.is0(n.add(f,l)))throw new Error("bad curve params: a or b");function p(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function g(e){if(!(e instanceof v))throw new Error("ProjectivePoint expected")}const m=we((e,t)=>{const{px:r,py:i,pz:s}=e;if(n.eql(s,n.ONE))return{x:r,y:i};const o=e.is0();null==t&&(t=o?n.ONE:n.inv(s));const a=n.mul(r,t),u=n.mul(i,t),c=n.mul(s,t);if(o)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:a,y:u}}),y=we(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw new Error("bad point: x or y not field elements");if(!h(r,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function w(e,t,r,i,s){return r=new v(n.mul(r.px,e),r.py,r.pz),t=He(i,t),r=He(s,r),t.add(r)}class v{constructor(e,t,n){this.px=p("x",e),this.py=p("y",t,!0),this.pz=p("z",n),Object.freeze(this)}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof v)throw new Error("projective point not allowed");return n.is0(t)&&n.is0(r)?v.ZERO:new v(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){return function(e,t,n){const r=$e(e.Fp,n.map(e=>e.pz));return n.map((e,t)=>e.toAffine(r[t])).map(e.fromAffine)}(v,0,e)}static fromBytes(e){return k(e),v.fromHex(e)}static fromHex(e){const t=v.fromAffine(c(fe("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){const n=it(r,t.allowedPrivateKeyLengths,t.wrapPrivateKey);return v.BASE.multiply(n(e))}static msm(e,t){return Me(v,r,e,t)}precompute(e=8,t=!0){return b.setWindowSize(this,e),t||this.multiply(nt),this}_setWindowSize(e){this.precompute(e)}assertValidity(){y(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){g(e);const{px:t,py:r,pz:i}=this,{px:s,py:o,pz:a}=e,u=n.eql(n.mul(t,a),n.mul(s,i)),c=n.eql(n.mul(r,a),n.mul(o,i));return u&&c}negate(){return new v(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,i=n.mul(r,nt),{px:s,py:o,pz:a}=this;let u=n.ZERO,c=n.ZERO,d=n.ZERO,h=n.mul(s,s),f=n.mul(o,o),l=n.mul(a,a),p=n.mul(s,o);return p=n.add(p,p),d=n.mul(s,a),d=n.add(d,d),u=n.mul(t,d),c=n.mul(i,l),c=n.add(u,c),u=n.sub(f,c),c=n.add(f,c),c=n.mul(u,c),u=n.mul(p,u),d=n.mul(i,d),l=n.mul(t,l),p=n.sub(h,l),p=n.mul(t,p),p=n.add(p,d),d=n.add(h,h),h=n.add(d,h),h=n.add(h,l),h=n.mul(h,p),c=n.add(c,h),l=n.mul(o,a),l=n.add(l,l),h=n.mul(l,p),u=n.sub(u,h),d=n.mul(l,f),d=n.add(d,d),d=n.add(d,d),new v(u,c,d)}add(t){g(t);const{px:r,py:i,pz:s}=this,{px:o,py:a,pz:u}=t;let c=n.ZERO,d=n.ZERO,h=n.ZERO;const f=e.a,l=n.mul(e.b,nt);let p=n.mul(r,o),m=n.mul(i,a),y=n.mul(s,u),w=n.add(r,i),_=n.add(o,a);w=n.mul(w,_),_=n.add(p,m),w=n.sub(w,_),_=n.add(r,s);let b=n.add(o,u);return _=n.mul(_,b),b=n.add(p,y),_=n.sub(_,b),b=n.add(i,s),c=n.add(a,u),b=n.mul(b,c),c=n.add(m,y),b=n.sub(b,c),h=n.mul(f,_),c=n.mul(l,y),h=n.add(c,h),c=n.sub(m,h),h=n.add(m,h),d=n.mul(c,h),m=n.add(p,p),m=n.add(m,p),y=n.mul(f,y),_=n.mul(l,_),m=n.add(m,y),y=n.sub(p,y),y=n.mul(f,y),_=n.add(_,y),p=n.mul(m,_),d=n.add(d,p),p=n.mul(b,_),c=n.mul(w,c),c=n.sub(c,p),p=n.mul(w,m),h=n.mul(b,h),h=n.add(h,p),new v(c,d,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(v.ZERO)}multiply(e){const{endo:n}=t;if(!r.isValidNot0(e))throw new Error("invalid scalar: out of range");let i,s;const o=e=>b.wNAFCached(this,e,v.normalizeZ);if(n){const{k1neg:t,k1:r,k2neg:a,k2:u}=n.splitScalar(e),{p:c,f:d}=o(r),{p:h,f:f}=o(u);s=d.add(f),i=w(n.beta,c,h,t,a)}else{const{p:t,f:n}=o(e);i=t,s=n}return v.normalizeZ([i,s])[0]}multiplyUnsafe(e){const{endo:n}=t,i=this;if(!r.isValid(e))throw new Error("invalid scalar: out of range");if(e===Xe||i.is0())return v.ZERO;if(e===et)return i;if(b.hasPrecomputes(this))return this.multiply(e);if(n){const{k1neg:t,k1:r,k2neg:s,k2:o}=n.splitScalar(e),{p1:a,p2:u}=function(e,t,n,r){let i=t,s=e.ZERO,o=e.ZERO;for(;n>ze||r>ze;)n&je&&(s=s.add(i)),r&je&&(o=o.add(i)),i=i.double(),n>>=je,r>>=je;return{p1:s,p2:o}}(v,i,r,o);return w(n.beta,a,u,t,s)}return b.wNAFCachedUnsafe(i,e)}multiplyAndAddUnsafe(e,t,n){const r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(n));return r.is0()?void 0:r}toAffine(e){return m(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return i===et||(e?e(v,this):b.wNAFCachedUnsafe(this,s).is0())}clearCofactor(){const{clearCofactor:e}=t;return i===et?this:e?e(v,this):this.multiplyUnsafe(i)}toBytes(e=!0){return se("isCompressed",e),this.assertValidity(),u(v,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return $(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}v.BASE=new v(e.Gx,e.Gy,n.ONE),v.ZERO=new v(n.ZERO,n.ONE,n.ZERO),v.Fp=n,v.Fn=r;const _=r.BITS,b=function(e,t){return{constTimeNegate:He,hasPrecomputes:e=>1!==We(e),unsafeLadder(t,n,r=e.ZERO){let i=t;for(;n>ze;)n&je&&(r=r.add(i)),i=i.double(),n>>=je;return r},precomputeWindow(e,n){const{windows:r,windowSize:i}=Fe(n,t),s=[];let o=e,a=o;for(let e=0;e<r;e++){a=o,s.push(a);for(let e=1;e<i;e++)a=a.add(o),s.push(a);o=a.double()}return s},wNAF(n,r,i){let s=e.ZERO,o=e.BASE;const a=Fe(n,t);for(let e=0;e<a.windows;e++){const{nextN:t,offset:n,isZero:u,isNeg:c,isNegF:d,offsetF:h}=Ve(i,e,a);i=t,u?o=o.add(He(d,r[h])):s=s.add(He(c,r[n]))}return qe(i),{p:s,f:o}},wNAFUnsafe(n,r,i,s=e.ZERO){const o=Fe(n,t);for(let e=0;e<o.windows&&i!==ze;e++){const{nextN:t,offset:n,isZero:a,isNeg:u}=Ve(i,e,o);if(i=t,!a){const e=r[n];s=s.add(u?e.negate():e)}}return qe(i),s},getPrecomputes(e,t,n){let r=Ze.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),Ze.set(t,r))),r},wNAFCached(e,t,n){const r=We(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)},wNAFCachedUnsafe(e,t,n,r){const i=We(e);return 1===i?this.unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)},setWindowSize(e,n){De(n,t),Ke.set(e,n),Ze.delete(e)}}}(v,t.endo?Math.ceil(_/2):_);return v}function ot(e){return Uint8Array.of(e?2:3)}function at(e,t,n={}){ye(t,{hash:"function"},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=t.randomBytes||W,i=t.hmac||((e,...n)=>ne(t.hash,e,V(...n))),{Fp:s,Fn:o}=e,{ORDER:a,BITS:u}=o;function c(e){return e>a>>et}function d(e,t){if(!o.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..CURVE.n`)}class h{constructor(e,t,n){d("r",e),d("s",t),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const t=o.BYTES,n=fe("compactSignature",e,2*t);return new h(o.fromBytes(n.subarray(0,t)),o.fromBytes(n.subarray(t,2*t)))}static fromDER(e){const{r:t,s:n}=Je.toSig(fe("DER",e));return new h(t,n)}assertValidity(){}addRecoveryBit(e){return new h(this.r,this.s,e)}recoverPublicKey(t){const n=s.ORDER,{r:r,s:i,recovery:u}=this;if(null==u||![0,1,2,3].includes(u))throw new Error("recovery id invalid");if(a*tt<n&&u>1)throw new Error("recovery id is ambiguous for h>1 curve");const c=2===u||3===u?r+a:r;if(!s.isValid(c))throw new Error("recovery id 2 or 3 invalid");const d=s.toBytes(c),h=e.fromHex(V(ot(!(1&u)),d)),f=o.inv(c),l=m(fe("msgHash",t)),p=o.create(-l*f),g=o.create(i*f),y=e.BASE.multiplyUnsafe(p).add(h.multiplyUnsafe(g));if(y.is0())throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return c(this.s)}normalizeS(){return this.hasHighS()?new h(this.r,o.neg(this.s),this.recovery):this}toBytes(e){if("compact"===e)return V(o.toBytes(this.r),o.toBytes(this.s));if("der"===e)return D(Je.hexFromSig(this));throw new Error("invalid format")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return $(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return $(this.toBytes("compact"))}}const f=it(o,n.allowedPrivateKeyLengths,n.wrapPrivateKey),l={isValidPrivateKey(e){try{return f(e),!0}catch(e){return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{const e=a;return function(e,t,n=!1){const r=e.length,i=Re(t),s=Le(t);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=Oe(n?ce(e):ue(e),t-_e)+_e;return n?he(o,i):de(o,i)}(r(Le(e)),e)},precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function p(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;const r=fe("key",t).length,i=s.BYTES,a=i+1,u=2*i+1;return n.allowedPrivateKeyLengths||o.BYTES===a?void 0:r===a||r===u}const g=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=ue(e),n=8*e.length-u;return n>0?t>>BigInt(n):t},m=t.bits2int_modN||function(e){return o.create(g(e))},y=me(u);function w(e){return ge("num < 2^"+u,e,Xe,y),o.toBytes(e)}function v(n,i,a=_){if(["recovered","canonical"].some(e=>e in a))throw new Error("sign() legacy options not supported");const{hash:u}=t;let{lowS:d,prehash:l,extraEntropy:p}=a;null==d&&(d=!0),n=fe("msgHash",n),Ye(a),l&&(n=fe("prehashed msgHash",u(n)));const y=m(n),v=f(i),b=[w(v),w(y)];if(null!=p&&!1!==p){const e=!0===p?r(s.BYTES):p;b.push(fe("extraEntropy",e))}const E=V(...b),x=y;return{seed:E,k2sig:function(t){const n=g(t);if(!o.isValidNot0(n))return;const r=o.inv(n),i=e.BASE.multiply(n).toAffine(),s=o.create(i.x);if(s===Xe)return;const a=o.create(r*o.create(x+s*v));if(a===Xe)return;let u=(i.x===s?0:2)|Number(i.y&et),f=a;return d&&c(a)&&(f=function(e){return c(e)?o.neg(e):e}(a),u^=1),new h(s,f,u)}}}const _={lowS:t.lowS,prehash:!1},b={lowS:t.lowS,prehash:!1};return e.BASE.precompute(8),Object.freeze({getPublicKey:function(t,n=!0){return e.fromPrivateKey(t).toBytes(n)},getSharedSecret:function(t,n,r=!0){if(!0===p(t))throw new Error("first arg must be private key");if(!1===p(n))throw new Error("second arg must be public key");return e.fromHex(n).multiply(f(t)).toBytes(r)},sign:function(e,n,r=_){const{seed:s,k2sig:a}=v(e,n,r);return function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");const r=e=>new Uint8Array(e),i=e=>Uint8Array.of(e);let s=r(e),o=r(e),a=0;const u=()=>{s.fill(1),o.fill(0),a=0},c=(...e)=>n(o,s,...e),d=(e=r(0))=>{o=c(i(0),e),s=c(),0!==e.length&&(o=c(i(1),e),s=c())},h=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){s=c();const t=s.slice();n.push(t),e+=s.length}return V(...n)};return(e,t)=>{let n;for(u(),d(e);!(n=t(h()));)d();return u(),n}}(t.hash.outputLen,o.BYTES,i)(s,a)},verify:function(n,r,i,s=b){const a=n;r=fe("msgHash",r),i=fe("publicKey",i),Ye(s);const{lowS:u,prehash:c,format:d}=s;if("strict"in s)throw new Error("options.strict was renamed to lowS");if(void 0!==d&&!["compact","der","js"].includes(d))throw new Error('format must be "compact", "der" or "js"');const f="string"==typeof a||x(a),l=!f&&!d&&"object"==typeof a&&null!==a&&"bigint"==typeof a.r&&"bigint"==typeof a.s;if(!f&&!l)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let p,g;try{if(l){if(void 0!==d&&"js"!==d)throw new Error("invalid format");p=new h(a.r,a.s)}if(f){try{"compact"!==d&&(p=h.fromDER(a))}catch(e){if(!(e instanceof Je.Err))throw e}p||"der"===d||(p=h.fromCompact(a))}g=e.fromHex(i)}catch(e){return!1}if(!p)return!1;if(u&&p.hasHighS())return!1;c&&(r=t.hash(r));const{r:y,s:w}=p,v=m(r),_=o.inv(w),E=o.create(v*_),S=o.create(y*_),k=e.BASE.multiplyUnsafe(E).add(g.multiplyUnsafe(S));return!k.is0()&&o.create(k.x)===y},utils:l,Point:e,Signature:h})}function ut(e){const{CURVE:t,curveOpts:n}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy};return{CURVE:t,curveOpts:{Fp:e.Fp,Fn:Be(t.n,e.nBitLength),allowedPrivateKeyLengths:e.allowedPrivateKeyLengths,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,wrapPrivateKey:e.wrapPrivateKey,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e);return{CURVE:t,curveOpts:n,ecdsaOpts:{hash:e.hash,hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN}}}function ct(e){const{CURVE:t,curveOpts:n,ecdsaOpts:r}=ut(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,at(st(t,n),r,n))}
9
+ function Ye(e){void 0!==e.lowS&&se("lowS",e.lowS),void 0!==e.prehash&&se("prehash",e.prehash)}class Qe extends Error{constructor(e=""){super(e)}}const Je={Err:Qe,_tlv:{encode:(e,t)=>{const{Err:n}=Je;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(1&t.length)throw new n("tlv.encode: unpadded data");const r=t.length/2,i=oe(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?oe(i.length/2|128):"";return oe(e)+s+i+t},decode(e,t){const{Err:n}=Je;let r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");const i=t[r++];let s=0;if(!!(128&i)){const e=127&i;if(!e)throw new n("tlv.decode(long): indefinite length not supported");if(e>4)throw new n("tlv.decode(long): byte length is too big");const o=t.subarray(r,r+e);if(o.length!==e)throw new n("tlv.decode: length bytes not complete");if(0===o[0])throw new n("tlv.decode(long): zero leftmost byte");for(const e of o)s=s<<8|e;if(r+=e,s<128)throw new n("tlv.decode(long): not minimal encoding")}else s=i;const o=t.subarray(r,r+s);if(o.length!==s)throw new n("tlv.decode: wrong value length");return{v:o,l:t.subarray(r+s)}}},_int:{encode(e){const{Err:t}=Je;if(e<Xe)throw new t("integer: negative integers are not allowed");let n=oe(e);if(8&Number.parseInt(n[0],16)&&(n="00"+n),1&n.length)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=Je;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return ue(e)}},toSig(e){const{Err:t,_int:n,_tlv:r}=Je,i=fe("signature",e),{v:s,l:o}=r.decode(48,i);if(o.length)throw new t("invalid signature: left bytes after parsing");const{v:a,l:u}=r.decode(2,s),{v:c,l:d}=r.decode(2,u);if(d.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(c)}},hexFromSig(e){const{_tlv:t,_int:n}=Je,r=t.encode(2,n.encode(e.r))+t.encode(2,n.encode(e.s));return t.encode(48,r)}},Xe=BigInt(0),et=BigInt(1),tt=BigInt(2),nt=BigInt(3),rt=BigInt(4);function it(e,t,n){const{BYTES:r}=e;return function(i){let s;if("bigint"==typeof i)s=i;else{let n=fe("private key",i);if(t){if(!t.includes(2*n.length))throw new Error("invalid private key");const e=new Uint8Array(r);e.set(n,e.length-n.length),n=e}try{s=e.fromBytes(n)}catch(e){throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof i}`)}}if(n&&(s=e.create(s)),!e.isValidNot0(s))throw new Error("invalid private key: out of range [1..N-1]");return s}}function st(e,t={}){const{Fp:n,Fn:r}=function(e,t,n={}){if(!t||"object"!=typeof t)throw new Error(`expected valid ${e} CURVE object`);for(const e of["p","n","h"]){const n=t[e];if(!("bigint"==typeof n&&n>ze))throw new Error(`CURVE.${e} must be positive bigint`)}const r=Ge(t.p,n.Fp),i=Ge(t.n,n.Fn),s=["Gx","Gy","a","b"];for(const e of s)if(!r.isValid(t[e]))throw new Error(`CURVE.${e} must be valid field element of CURVE.Fp`);return{Fp:r,Fn:i}}("weierstrass",e,t),{h:i,n:s}=e;ye(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:o}=t;if(o&&(!n.is0(e.a)||"bigint"!=typeof o.beta||"function"!=typeof o.splitScalar))throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function');function a(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}const u=t.toBytes||function(e,t,r){const{x:i,y:s}=t.toAffine(),o=n.toBytes(i);if(se("isCompressed",r),r){a();return V(ot(!n.isOdd(s)),o)}return V(Uint8Array.of(4),o,n.toBytes(s))},c=t.fromBytes||function(e){k(e);const t=n.BYTES,r=t+1,i=2*t+1,s=e.length,o=e[0],u=e.subarray(1);if(s!==r||2!==o&&3!==o){if(s===i&&4===o){const e=n.fromBytes(u.subarray(0*t,1*t)),r=n.fromBytes(u.subarray(1*t,2*t));if(!h(e,r))throw new Error("bad point: is not on curve");return{x:e,y:r}}throw new Error(`bad point: got length ${s}, expected compressed=${r} or uncompressed=${i}`)}{const e=n.fromBytes(u);if(!n.isValid(e))throw new Error("bad point: is not on curve, wrong x");const t=d(e);let r;try{r=n.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("bad point: is not on curve, sqrt error"+t)}a();return!(1&~o)!==n.isOdd(r)&&(r=n.neg(r)),{x:e,y:r}}},d=function(e,t,n){return function(r){const i=e.sqr(r),s=e.mul(i,r);return e.add(e.add(s,e.mul(r,t)),n)}}(n,e.a,e.b);function h(e,t){const r=n.sqr(t),i=d(e);return n.eql(r,i)}if(!h(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const f=n.mul(n.pow(e.a,nt),rt),l=n.mul(n.sqr(e.b),BigInt(27));if(n.is0(n.add(f,l)))throw new Error("bad curve params: a or b");function p(e,t,r=!1){if(!n.isValid(t)||r&&n.is0(t))throw new Error(`bad point coordinate ${e}`);return t}function g(e){if(!(e instanceof _))throw new Error("ProjectivePoint expected")}const m=we((e,t)=>{const{px:r,py:i,pz:s}=e;if(n.eql(s,n.ONE))return{x:r,y:i};const o=e.is0();null==t&&(t=o?n.ONE:n.inv(s));const a=n.mul(r,t),u=n.mul(i,t),c=n.mul(s,t);if(o)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:a,y:u}}),y=we(e=>{if(e.is0()){if(t.allowInfinityPoint&&!n.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:r,y:i}=e.toAffine();if(!n.isValid(r)||!n.isValid(i))throw new Error("bad point: x or y not field elements");if(!h(r,i))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function w(e,t,r,i,s){return r=new _(n.mul(r.px,e),r.py,r.pz),t=He(i,t),r=He(s,r),t.add(r)}class _{constructor(e,t,n){this.px=p("x",e),this.py=p("y",t,!0),this.pz=p("z",n),Object.freeze(this)}static fromAffine(e){const{x:t,y:r}=e||{};if(!e||!n.isValid(t)||!n.isValid(r))throw new Error("invalid affine point");if(e instanceof _)throw new Error("projective point not allowed");return n.is0(t)&&n.is0(r)?_.ZERO:new _(t,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){return function(e,t,n){const r=$e(e.Fp,n.map(e=>e.pz));return n.map((e,t)=>e.toAffine(r[t])).map(e.fromAffine)}(_,0,e)}static fromBytes(e){return k(e),_.fromHex(e)}static fromHex(e){const t=_.fromAffine(c(fe("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){const n=it(r,t.allowedPrivateKeyLengths,t.wrapPrivateKey);return _.BASE.multiply(n(e))}static msm(e,t){return Me(_,r,e,t)}precompute(e=8,t=!0){return b.setWindowSize(this,e),t||this.multiply(nt),this}_setWindowSize(e){this.precompute(e)}assertValidity(){y(this)}hasEvenY(){const{y:e}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(e)}equals(e){g(e);const{px:t,py:r,pz:i}=this,{px:s,py:o,pz:a}=e,u=n.eql(n.mul(t,a),n.mul(s,i)),c=n.eql(n.mul(r,a),n.mul(o,i));return u&&c}negate(){return new _(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,i=n.mul(r,nt),{px:s,py:o,pz:a}=this;let u=n.ZERO,c=n.ZERO,d=n.ZERO,h=n.mul(s,s),f=n.mul(o,o),l=n.mul(a,a),p=n.mul(s,o);return p=n.add(p,p),d=n.mul(s,a),d=n.add(d,d),u=n.mul(t,d),c=n.mul(i,l),c=n.add(u,c),u=n.sub(f,c),c=n.add(f,c),c=n.mul(u,c),u=n.mul(p,u),d=n.mul(i,d),l=n.mul(t,l),p=n.sub(h,l),p=n.mul(t,p),p=n.add(p,d),d=n.add(h,h),h=n.add(d,h),h=n.add(h,l),h=n.mul(h,p),c=n.add(c,h),l=n.mul(o,a),l=n.add(l,l),h=n.mul(l,p),u=n.sub(u,h),d=n.mul(l,f),d=n.add(d,d),d=n.add(d,d),new _(u,c,d)}add(t){g(t);const{px:r,py:i,pz:s}=this,{px:o,py:a,pz:u}=t;let c=n.ZERO,d=n.ZERO,h=n.ZERO;const f=e.a,l=n.mul(e.b,nt);let p=n.mul(r,o),m=n.mul(i,a),y=n.mul(s,u),w=n.add(r,i),v=n.add(o,a);w=n.mul(w,v),v=n.add(p,m),w=n.sub(w,v),v=n.add(r,s);let b=n.add(o,u);return v=n.mul(v,b),b=n.add(p,y),v=n.sub(v,b),b=n.add(i,s),c=n.add(a,u),b=n.mul(b,c),c=n.add(m,y),b=n.sub(b,c),h=n.mul(f,v),c=n.mul(l,y),h=n.add(c,h),c=n.sub(m,h),h=n.add(m,h),d=n.mul(c,h),m=n.add(p,p),m=n.add(m,p),y=n.mul(f,y),v=n.mul(l,v),m=n.add(m,y),y=n.sub(p,y),y=n.mul(f,y),v=n.add(v,y),p=n.mul(m,v),d=n.add(d,p),p=n.mul(b,v),c=n.mul(w,c),c=n.sub(c,p),p=n.mul(w,m),h=n.mul(b,h),h=n.add(h,p),new _(c,d,h)}subtract(e){return this.add(e.negate())}is0(){return this.equals(_.ZERO)}multiply(e){const{endo:n}=t;if(!r.isValidNot0(e))throw new Error("invalid scalar: out of range");let i,s;const o=e=>b.wNAFCached(this,e,_.normalizeZ);if(n){const{k1neg:t,k1:r,k2neg:a,k2:u}=n.splitScalar(e),{p:c,f:d}=o(r),{p:h,f:f}=o(u);s=d.add(f),i=w(n.beta,c,h,t,a)}else{const{p:t,f:n}=o(e);i=t,s=n}return _.normalizeZ([i,s])[0]}multiplyUnsafe(e){const{endo:n}=t,i=this;if(!r.isValid(e))throw new Error("invalid scalar: out of range");if(e===Xe||i.is0())return _.ZERO;if(e===et)return i;if(b.hasPrecomputes(this))return this.multiply(e);if(n){const{k1neg:t,k1:r,k2neg:s,k2:o}=n.splitScalar(e),{p1:a,p2:u}=function(e,t,n,r){let i=t,s=e.ZERO,o=e.ZERO;for(;n>ze||r>ze;)n&je&&(s=s.add(i)),r&je&&(o=o.add(i)),i=i.double(),n>>=je,r>>=je;return{p1:s,p2:o}}(_,i,r,o);return w(n.beta,a,u,t,s)}return b.wNAFCachedUnsafe(i,e)}multiplyAndAddUnsafe(e,t,n){const r=this.multiplyUnsafe(t).add(e.multiplyUnsafe(n));return r.is0()?void 0:r}toAffine(e){return m(this,e)}isTorsionFree(){const{isTorsionFree:e}=t;return i===et||(e?e(_,this):b.wNAFCachedUnsafe(this,s).is0())}clearCofactor(){const{clearCofactor:e}=t;return i===et?this:e?e(_,this):this.multiplyUnsafe(i)}toBytes(e=!0){return se("isCompressed",e),this.assertValidity(),u(_,this,e)}toRawBytes(e=!0){return this.toBytes(e)}toHex(e=!0){return $(this.toBytes(e))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}_.BASE=new _(e.Gx,e.Gy,n.ONE),_.ZERO=new _(n.ZERO,n.ONE,n.ZERO),_.Fp=n,_.Fn=r;const v=r.BITS,b=function(e,t){return{constTimeNegate:He,hasPrecomputes:e=>1!==We(e),unsafeLadder(t,n,r=e.ZERO){let i=t;for(;n>ze;)n&je&&(r=r.add(i)),i=i.double(),n>>=je;return r},precomputeWindow(e,n){const{windows:r,windowSize:i}=Fe(n,t),s=[];let o=e,a=o;for(let e=0;e<r;e++){a=o,s.push(a);for(let e=1;e<i;e++)a=a.add(o),s.push(a);o=a.double()}return s},wNAF(n,r,i){let s=e.ZERO,o=e.BASE;const a=Fe(n,t);for(let e=0;e<a.windows;e++){const{nextN:t,offset:n,isZero:u,isNeg:c,isNegF:d,offsetF:h}=Ve(i,e,a);i=t,u?o=o.add(He(d,r[h])):s=s.add(He(c,r[n]))}return qe(i),{p:s,f:o}},wNAFUnsafe(n,r,i,s=e.ZERO){const o=Fe(n,t);for(let e=0;e<o.windows&&i!==ze;e++){const{nextN:t,offset:n,isZero:a,isNeg:u}=Ve(i,e,o);if(i=t,!a){const e=r[n];s=s.add(u?e.negate():e)}}return qe(i),s},getPrecomputes(e,t,n){let r=Ze.get(t);return r||(r=this.precomputeWindow(t,e),1!==e&&("function"==typeof n&&(r=n(r)),Ze.set(t,r))),r},wNAFCached(e,t,n){const r=We(e);return this.wNAF(r,this.getPrecomputes(r,e,n),t)},wNAFCachedUnsafe(e,t,n,r){const i=We(e);return 1===i?this.unsafeLadder(e,t,r):this.wNAFUnsafe(i,this.getPrecomputes(i,e,n),t,r)},setWindowSize(e,n){De(n,t),Ke.set(e,n),Ze.delete(e)}}}(_,t.endo?Math.ceil(v/2):v);return _}function ot(e){return Uint8Array.of(e?2:3)}function at(e,t,n={}){ye(t,{hash:"function"},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=t.randomBytes||W,i=t.hmac||((e,...n)=>ne(t.hash,e,V(...n))),{Fp:s,Fn:o}=e,{ORDER:a,BITS:u}=o;function c(e){return e>a>>et}function d(e,t){if(!o.isValidNot0(t))throw new Error(`invalid signature ${e}: out of range 1..CURVE.n`)}class h{constructor(e,t,n){d("r",e),d("s",t),this.r=e,this.s=t,null!=n&&(this.recovery=n),Object.freeze(this)}static fromCompact(e){const t=o.BYTES,n=fe("compactSignature",e,2*t);return new h(o.fromBytes(n.subarray(0,t)),o.fromBytes(n.subarray(t,2*t)))}static fromDER(e){const{r:t,s:n}=Je.toSig(fe("DER",e));return new h(t,n)}assertValidity(){}addRecoveryBit(e){return new h(this.r,this.s,e)}recoverPublicKey(t){const n=s.ORDER,{r:r,s:i,recovery:u}=this;if(null==u||![0,1,2,3].includes(u))throw new Error("recovery id invalid");if(a*tt<n&&u>1)throw new Error("recovery id is ambiguous for h>1 curve");const c=2===u||3===u?r+a:r;if(!s.isValid(c))throw new Error("recovery id 2 or 3 invalid");const d=s.toBytes(c),h=e.fromHex(V(ot(!(1&u)),d)),f=o.inv(c),l=m(fe("msgHash",t)),p=o.create(-l*f),g=o.create(i*f),y=e.BASE.multiplyUnsafe(p).add(h.multiplyUnsafe(g));if(y.is0())throw new Error("point at infinify");return y.assertValidity(),y}hasHighS(){return c(this.s)}normalizeS(){return this.hasHighS()?new h(this.r,o.neg(this.s),this.recovery):this}toBytes(e){if("compact"===e)return V(o.toBytes(this.r),o.toBytes(this.s));if("der"===e)return D(Je.hexFromSig(this));throw new Error("invalid format")}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return $(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return $(this.toBytes("compact"))}}const f=it(o,n.allowedPrivateKeyLengths,n.wrapPrivateKey),l={isValidPrivateKey(e){try{return f(e),!0}catch(e){return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{const e=a;return function(e,t,n=!1){const r=e.length,i=Re(t),s=Le(t);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=Oe(n?ce(e):ue(e),t-ve)+ve;return n?he(o,i):de(o,i)}(r(Le(e)),e)},precompute:(t=8,n=e.BASE)=>n.precompute(t,!1)};function p(t){if("bigint"==typeof t)return!1;if(t instanceof e)return!0;const r=fe("key",t).length,i=s.BYTES,a=i+1,u=2*i+1;return n.allowedPrivateKeyLengths||o.BYTES===a?void 0:r===a||r===u}const g=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const t=ue(e),n=8*e.length-u;return n>0?t>>BigInt(n):t},m=t.bits2int_modN||function(e){return o.create(g(e))},y=me(u);function w(e){return ge("num < 2^"+u,e,Xe,y),o.toBytes(e)}function _(n,i,a=v){if(["recovered","canonical"].some(e=>e in a))throw new Error("sign() legacy options not supported");const{hash:u}=t;let{lowS:d,prehash:l,extraEntropy:p}=a;null==d&&(d=!0),n=fe("msgHash",n),Ye(a),l&&(n=fe("prehashed msgHash",u(n)));const y=m(n),_=f(i),b=[w(_),w(y)];if(null!=p&&!1!==p){const e=!0===p?r(s.BYTES):p;b.push(fe("extraEntropy",e))}const E=V(...b),x=y;return{seed:E,k2sig:function(t){const n=g(t);if(!o.isValidNot0(n))return;const r=o.inv(n),i=e.BASE.multiply(n).toAffine(),s=o.create(i.x);if(s===Xe)return;const a=o.create(r*o.create(x+s*_));if(a===Xe)return;let u=(i.x===s?0:2)|Number(i.y&et),f=a;return d&&c(a)&&(f=function(e){return c(e)?o.neg(e):e}(a),u^=1),new h(s,f,u)}}}const v={lowS:t.lowS,prehash:!1},b={lowS:t.lowS,prehash:!1};return e.BASE.precompute(8),Object.freeze({getPublicKey:function(t,n=!0){return e.fromPrivateKey(t).toBytes(n)},getSharedSecret:function(t,n,r=!0){if(!0===p(t))throw new Error("first arg must be private key");if(!1===p(n))throw new Error("second arg must be public key");return e.fromHex(n).multiply(f(t)).toBytes(r)},sign:function(e,n,r=v){const{seed:s,k2sig:a}=_(e,n,r);return function(e,t,n){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");const r=e=>new Uint8Array(e),i=e=>Uint8Array.of(e);let s=r(e),o=r(e),a=0;const u=()=>{s.fill(1),o.fill(0),a=0},c=(...e)=>n(o,s,...e),d=(e=r(0))=>{o=c(i(0),e),s=c(),0!==e.length&&(o=c(i(1),e),s=c())},h=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const n=[];for(;e<t;){s=c();const t=s.slice();n.push(t),e+=s.length}return V(...n)};return(e,t)=>{let n;for(u(),d(e);!(n=t(h()));)d();return u(),n}}(t.hash.outputLen,o.BYTES,i)(s,a)},verify:function(n,r,i,s=b){const a=n;r=fe("msgHash",r),i=fe("publicKey",i),Ye(s);const{lowS:u,prehash:c,format:d}=s;if("strict"in s)throw new Error("options.strict was renamed to lowS");if(void 0!==d&&!["compact","der","js"].includes(d))throw new Error('format must be "compact", "der" or "js"');const f="string"==typeof a||x(a),l=!f&&!d&&"object"==typeof a&&null!==a&&"bigint"==typeof a.r&&"bigint"==typeof a.s;if(!f&&!l)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let p,g;try{if(l){if(void 0!==d&&"js"!==d)throw new Error("invalid format");p=new h(a.r,a.s)}if(f){try{"compact"!==d&&(p=h.fromDER(a))}catch(e){if(!(e instanceof Je.Err))throw e}p||"der"===d||(p=h.fromCompact(a))}g=e.fromHex(i)}catch(e){return!1}if(!p)return!1;if(u&&p.hasHighS())return!1;c&&(r=t.hash(r));const{r:y,s:w}=p,_=m(r),v=o.inv(w),E=o.create(_*v),S=o.create(y*v),k=e.BASE.multiplyUnsafe(E).add(g.multiplyUnsafe(S));return!k.is0()&&o.create(k.x)===y},utils:l,Point:e,Signature:h})}function ut(e){const{CURVE:t,curveOpts:n}=function(e){const t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy};return{CURVE:t,curveOpts:{Fp:e.Fp,Fn:Be(t.n,e.nBitLength),allowedPrivateKeyLengths:e.allowedPrivateKeyLengths,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,wrapPrivateKey:e.wrapPrivateKey,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes}}}(e);return{CURVE:t,curveOpts:n,ecdsaOpts:{hash:e.hash,hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN}}}function ct(e){const{CURVE:t,curveOpts:n,ecdsaOpts:r}=ut(e);return function(e,t){return Object.assign({},t,{ProjectivePoint:t.Point,CURVE:e})}(e,at(st(t,n),r,n))}
10
10
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
11
11
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
12
- const dt={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ht=BigInt(0),ft=BigInt(1),lt=BigInt(2),pt=(e,t)=>(e+t/lt)/t;function gt(e){const t=dt.p,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),u=BigInt(88),c=e*e*e%t,d=c*c*e%t,h=Ae(d,n,t)*d%t,f=Ae(h,n,t)*d%t,l=Ae(f,lt,t)*c%t,p=Ae(l,i,t)*l%t,g=Ae(p,s,t)*p%t,m=Ae(g,a,t)*g%t,y=Ae(m,u,t)*m%t,w=Ae(y,a,t)*g%t,v=Ae(w,n,t)*d%t,_=Ae(v,o,t)*p%t,b=Ae(_,r,t)*c%t,E=Ae(b,lt,t);if(!mt.eql(mt.sqr(E),e))throw new Error("Cannot find square root");return E}const mt=Be(dt.p,void 0,void 0,{sqrt:gt}),yt=function(e,t){const n=t=>ct({...e,hash:t});return{...n(t),create:n}}({...dt,Fp:mt,lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=dt.n,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-ft*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=pt(s*e,t),u=pt(-r*e,t);let c=Oe(e-a*n-u*i,t),d=Oe(-a*r-u*s,t);const h=c>o,f=d>o;if(h&&(c=t-c),f&&(d=t-d),c>o||d>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:h,k1:c,k2neg:f,k2:d}}}},ee),wt={};function vt(e,...t){let n=wt[e];if(void 0===n){const t=ee(Uint8Array.from(e,e=>e.charCodeAt(0)));n=V(t,t),wt[e]=n}return ee(V(n,...t))}const _t=e=>e.toBytes(!0).slice(1),bt=e=>de(e,32),Et=e=>Oe(e,dt.p),xt=e=>Oe(e,dt.n),St=(()=>yt.Point)(),kt=e=>e%lt===ht;function Ot(e){let t=yt.utils.normPrivateKeyToScalar(e),n=St.fromPrivateKey(t);return{scalar:kt(n.y)?t:xt(-t),bytes:_t(n)}}function At(e){ge("x",e,ft,dt.p);const t=Et(e*e);let n=gt(Et(t*e+BigInt(7)));kt(n)||(n=Et(-n));const r=St.fromAffine({x:e,y:n});return r.assertValidity(),r}const Pt=ue;function Tt(...e){return xt(Pt(vt("BIP0340/challenge",...e)))}function It(e){return Ot(e).bytes}function Nt(e,t,n=W(32)){const r=fe("message",e),{bytes:i,scalar:s}=Ot(t),o=fe("auxRand",n,32),a=bt(s^Pt(vt("BIP0340/aux",o))),u=vt("BIP0340/nonce",a,i,r),c=xt(Pt(u));if(c===ht)throw new Error("sign failed: k is zero");const{bytes:d,scalar:h}=Ot(c),f=Tt(d,i,r),l=new Uint8Array(64);if(l.set(d,0),l.set(bt(xt(h+f*s)),32),!Ut(l,r,i))throw new Error("sign: Invalid signature produced");return l}function Ut(e,t,n){const r=fe("signature",e,64),i=fe("message",t),s=fe("publicKey",n,32);try{const e=At(Pt(s)),t=Pt(r.subarray(0,32));if(!pe(t,ft,dt.p))return!1;const n=Pt(r.subarray(32,64));if(!pe(n,ft,dt.n))return!1;const o=Tt(bt(t),_t(e),i),a=St.BASE.multiplyUnsafe(n).add(e.multiplyUnsafe(xt(-o))),{x:u,y:c}=a.toAffine();return!(a.is0()||!kt(c)||u!==t)}catch(e){return!1}}const $t=(()=>({getPublicKey:It,sign:Nt,verify:Ut,utils:{randomPrivateKey:yt.utils.randomPrivateKey,lift_x:At,pointToBytes:_t,numberToBytesBE:de,bytesToNumberBE:ue,taggedHash:vt,mod:Oe}}))();BigInt(0),BigInt(2);Be(yt.CURVE.n,32,!0);const Ct=yt.Point.BASE;function Bt(e,t){const n=Ht(e).big;return jt(Ct.multiply(n).toHex(!0),t)}function Rt(e,t,n,r=!1){const i=Ht(t).big,s=function(e){try{const t=jt(e,"ecdsa");return yt.Point.fromHex(t)}catch(t){throw new Error("invalid pubkey: "+e)}}(e),o=Ct.multiply(i);let a=s.add(o);r&&!a.hasEvenY()&&(a=a.negate());return jt(a.toHex(!0),n)}function Lt(e,t){const n=Ht(t),r=yt.sign(n,e).toDERRawBytes();return m.bytes(r)}function zt(e,t){const n=Ht(t);return Ht($t.sign(n,e))}function jt(e,t){try{const n=Ht(e);if(33===n.length&&"bip340"===t)return n.slice(1);if(32===n.length&&"ecdsa"===t){const e=m.num(2,1);return m.join([e,n])}return n}catch(t){throw new Error("invalid pubkey: "+String(e))}}function Ht(e){try{return m.bytes(e)}catch(t){throw new Error("invalid bytes: "+String(e))}}const Dt=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Ft=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),Vt=(()=>Ft.map(e=>(9*e+5)%16))(),Zt=(()=>{const e=[[Ft],[Vt]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>Dt[e]));return e})(),Kt=(()=>Zt[0])(),Wt=(()=>Zt[1])(),qt=[[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=>Uint8Array.from(e)),Mt=Kt.map((e,t)=>e.map(e=>qt[t][e])),Gt=Wt.map((e,t)=>e.map(e=>qt[t][e])),Yt=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Qt=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Jt(e,t,n,r){return 0===e?t^n^r:1===e?t&n|~t&r:2===e?(t|~n)^r:3===e?t&r|n&~r:t^(n|~r)}const Xt=new Uint32Array(16);class en extends G{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:n,h3:r,h4:i}=this;return[e,t,n,r,i]}set(e,t,n,r,i){this.h0=0|e,this.h1=0|t,this.h2=0|n,this.h3=0|r,this.h4=0|i}process(e,t){for(let n=0;n<16;n++,t+=4)Xt[n]=e.getUint32(t,!0);let n=0|this.h0,r=n,i=0|this.h1,s=i,o=0|this.h2,a=o,u=0|this.h3,c=u,d=0|this.h4,h=d;for(let e=0;e<5;e++){const t=4-e,f=Yt[e],l=Qt[e],p=Kt[e],g=Wt[e],m=Mt[e],y=Gt[e];for(let t=0;t<16;t++){const r=I(n+Jt(e,i,o,u)+Xt[p[t]]+f,m[t])+d|0;n=d,d=u,u=0|I(o,10),o=i,i=r}for(let e=0;e<16;e++){const n=I(r+Jt(t,s,a,c)+Xt[g[e]]+l,y[e])+h|0;r=h,h=c,c=0|I(a,10),a=s,s=n}}this.set(this.h1+o+c|0,this.h2+u+h|0,this.h3+d+r|0,this.h4+n+s|0,this.h0+i+a|0)}roundClean(){A(Xt)}destroy(){this.destroyed=!0,A(this.buffer),this.set(0,0,0,0,0)}}const tn=K(()=>new en);function nn(...e){const t=m.join(e),n=tn(ee(t));return new m(n)}function rn(...e){const t=m.join(e),n=ee(t);return new m(n)}function sn(...e){const t=m.join(e),n=ee(ee(t));return new m(n)}function on(e,...t){const n=function(e){const t=rn(m.str(e));return m.join([t,t])}(e),r=t.map(e=>new m(e));return rn(m.join([n,...r]))}var an,un;!function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(an||(an={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(un||(un={}));const cn=an.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),dn=e=>{switch(typeof e){case"undefined":return cn.undefined;case"string":return cn.string;case"number":return Number.isNaN(e)?cn.nan:cn.number;case"boolean":return cn.boolean;case"function":return cn.function;case"bigint":return cn.bigint;case"symbol":return cn.symbol;case"object":return Array.isArray(e)?cn.array:null===e?cn.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?cn.promise:"undefined"!=typeof Map&&e instanceof Map?cn.map:"undefined"!=typeof Set&&e instanceof Set?cn.set:"undefined"!=typeof Date&&e instanceof Date?cn.date:cn.object;default:return cn.unknown}},hn=an.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class fn extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(r);else if("invalid_return_type"===i.code)r(i.returnTypeError);else if("invalid_arguments"===i.code)r(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){const n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof fn))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,an.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},n=[];for(const r of this.issues)r.path.length>0?(t[r.path[0]]=t[r.path[0]]||[],t[r.path[0]].push(e(r))):n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}fn.create=e=>new fn(e);const ln=(e,t)=>{let n;switch(e.code){case hn.invalid_type:n=e.received===cn.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case hn.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,an.jsonStringifyReplacer)}`;break;case hn.unrecognized_keys:n=`Unrecognized key(s) in object: ${an.joinValues(e.keys,", ")}`;break;case hn.invalid_union:n="Invalid input";break;case hn.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${an.joinValues(e.options)}`;break;case hn.invalid_enum_value:n=`Invalid enum value. Expected ${an.joinValues(e.options)}, received '${e.received}'`;break;case hn.invalid_arguments:n="Invalid function arguments";break;case hn.invalid_return_type:n="Invalid function return type";break;case hn.invalid_date:n="Invalid date";break;case hn.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:an.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case hn.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case hn.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case hn.custom:n="Invalid input";break;case hn.invalid_intersection_types:n="Intersection results could not be merged";break;case hn.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case hn.not_finite:n="Number must be finite";break;default:n=t.defaultError,an.assertNever(e)}return{message:n}};let pn=ln;function gn(e,t){const n=pn,r=(e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(void 0!==i.message)return{...i,path:s,message:i.message};let a="";const u=r.filter(e=>!!e).slice().reverse();for(const e of u)a=e(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}})({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ln?void 0:ln].filter(e=>!!e)});e.common.issues.push(r)}class mn{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const r of t){if("aborted"===r.status)return yn;"dirty"===r.status&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,r=await e.value;n.push({key:t,value:r})}return mn.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const r of t){const{key:t,value:i}=r;if("aborted"===t.status)return yn;if("aborted"===i.status)return yn;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!r.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const yn=Object.freeze({status:"aborted"}),wn=e=>({status:"dirty",value:e}),vn=e=>({status:"valid",value:e}),_n=e=>"aborted"===e.status,bn=e=>"dirty"===e.status,En=e=>"valid"===e.status,xn=e=>"undefined"!=typeof Promise&&e instanceof Promise;var Sn;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(Sn||(Sn={}));class kn{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const On=(e,t)=>{if(En(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new fn(e.common.issues);return this._error=t,this._error}}};function An(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{const{message:s}=e;return"invalid_enum_value"===t.code?{message:s??i.defaultError}:void 0===i.data?{message:s??r??i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:s??n??i.defaultError}},description:i}}class Pn{get description(){return this._def.description}_getType(e){return dn(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:dn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new mn,ctx:{common:e.parent.common,data:e.data,parsedType:dn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(xn(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:dn(e)},r=this._parseSync({data:e,path:n.path,parent:n});return On(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:dn(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return En(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>En(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:dn(e)},r=this._parse({data:e,path:n.path,parent:n}),i=await(xn(r)?r:Promise.resolve(r));return On(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,r)=>{const i=e(t),s=()=>r.addIssue({code:hn.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then(e=>!!e||(s(),!1)):!!i||(s(),!1)})}refinement(e,t){return this._refinement((n,r)=>!!e(n)||(r.addIssue("function"==typeof t?t(n,r):t),!1))}_refinement(e){return new Ar({schema:this,typeName:Lr.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Pr.create(this,this._def)}nullable(){return Tr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return hr.create(this)}promise(){return Or.create(this,this._def)}or(e){return pr.create([this,e],this._def)}and(e){return mr.create(this,e,this._def)}transform(e){return new Ar({...An(this._def),schema:this,typeName:Lr.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new Ir({...An(this._def),innerType:this,defaultValue:t,typeName:Lr.ZodDefault})}brand(){return new $r({typeName:Lr.ZodBranded,type:this,...An(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new Nr({...An(this._def),innerType:this,catchValue:t,typeName:Lr.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return Cr.create(this,e)}readonly(){return Br.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Tn=/^c[^\s-]{8,}$/i,In=/^[0-9a-z]+$/,Nn=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Un=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,$n=/^[a-z0-9_-]{21}$/i,Cn=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Bn=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rn=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Ln;const zn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Hn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Dn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fn=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vn=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Zn="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Kn=new RegExp(`^${Zn}$`);function Wn(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`);return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function qn(e){return new RegExp(`^${Wn(e)}$`)}function Mn(e){let t=`${Zn}T${Wn(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Gn(e,t){return!("v4"!==t&&t||!zn.test(e))||!("v6"!==t&&t||!Hn.test(e))}function Yn(e,t){if(!Cn.test(e))return!1;try{const[n]=e.split("."),r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return"object"==typeof i&&null!==i&&((!("typ"in i)||"JWT"===i?.typ)&&(!!i.alg&&(!t||i.alg===t)))}catch{return!1}}function Qn(e,t){return!("v4"!==t&&t||!jn.test(e))||!("v6"!==t&&t||!Dn.test(e))}class Jn extends Pn{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==cn.string){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.string,received:t.parsedType}),yn}const t=new mn;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("max"===r.kind)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("length"===r.kind){const i=e.data.length>r.value,s=e.data.length<r.value;(i||s)&&(n=this._getOrReturnCtx(e,n),i?gn(n,{code:hn.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):s&&gn(n,{code:hn.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)Rn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"email",code:hn.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)Ln||(Ln=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Ln.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"emoji",code:hn.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)Un.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"uuid",code:hn.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)$n.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"nanoid",code:hn.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)Tn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"cuid",code:hn.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)In.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"cuid2",code:hn.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)Nn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"ulid",code:hn.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),gn(n,{validation:"url",code:hn.invalid_string,message:r.message}),t.dirty()}else if("regex"===r.kind){r.regex.lastIndex=0;r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"regex",code:hn.invalid_string,message:r.message}),t.dirty())}else if("trim"===r.kind)e.data=e.data.trim();else if("includes"===r.kind)e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty());else if("toLowerCase"===r.kind)e.data=e.data.toLowerCase();else if("toUpperCase"===r.kind)e.data=e.data.toUpperCase();else if("startsWith"===r.kind)e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty());else if("endsWith"===r.kind)e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){Mn(r).test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){Kn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){qn(r).test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?Bn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"duration",code:hn.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Gn(e.data,r.version)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"ip",code:hn.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?Yn(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"jwt",code:hn.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?Qn(e.data,r.version)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"cidr",code:hn.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?Fn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"base64",code:hn.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Vn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"base64url",code:hn.invalid_string,message:r.message}),t.dirty()):an.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:hn.invalid_string,...Sn.errToObj(n)})}_addCheck(e){return new Jn({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Sn.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Sn.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Sn.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Sn.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Sn.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Sn.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Sn.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Sn.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Sn.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Sn.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Sn.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Sn.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Sn.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...Sn.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...Sn.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...Sn.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Sn.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...Sn.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Sn.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Sn.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Sn.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Sn.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Sn.errToObj(t)})}nonempty(e){return this.min(1,Sn.errToObj(e))}trim(){return new Jn({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Jn({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Jn({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function Xn(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}Jn.create=e=>new Jn({checks:[],typeName:Lr.ZodString,coerce:e?.coerce??!1,...An(e)});class er extends Pn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==cn.number){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.number,received:t.parsedType}),yn}let t;const n=new mn;for(const r of this._def.checks)if("int"===r.kind)an.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.invalid_type,expected:"integer",received:"float",message:r.message}),n.dirty());else if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_small,minimum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==Xn(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.not_finite,message:r.message}),n.dirty()):an.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Sn.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Sn.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Sn.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Sn.toString(t))}setLimit(e,t,n,r){return new er({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Sn.toString(r)}]})}_addCheck(e){return new er({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Sn.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Sn.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Sn.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Sn.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Sn.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Sn.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Sn.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Sn.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Sn.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&an.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}er.create=e=>new er({checks:[],typeName:Lr.ZodNumber,coerce:e?.coerce||!1,...An(e)});class tr extends Pn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==cn.bigint)return this._getInvalidInput(e);let t;const n=new mn;for(const r of this._def.checks)if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_small,type:"bigint",minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else"multipleOf"===r.kind?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):an.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.bigint,received:t.parsedType}),yn}gte(e,t){return this.setLimit("min",e,!0,Sn.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Sn.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Sn.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Sn.toString(t))}setLimit(e,t,n,r){return new tr({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Sn.toString(r)}]})}_addCheck(e){return new tr({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Sn.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Sn.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Sn.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Sn.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Sn.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}tr.create=e=>new tr({checks:[],typeName:Lr.ZodBigInt,coerce:e?.coerce??!1,...An(e)});class nr extends Pn{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==cn.boolean){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.boolean,received:t.parsedType}),yn}return vn(e.data)}}nr.create=e=>new nr({typeName:Lr.ZodBoolean,coerce:e?.coerce||!1,...An(e)});class rr extends Pn{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==cn.date){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.date,received:t.parsedType}),yn}if(Number.isNaN(e.data.getTime())){return gn(this._getOrReturnCtx(e),{code:hn.invalid_date}),yn}const t=new mn;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:"date"}),t.dirty()):"max"===r.kind?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):an.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new rr({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Sn.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Sn.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}rr.create=e=>new rr({checks:[],coerce:e?.coerce||!1,typeName:Lr.ZodDate,...An(e)});class ir extends Pn{_parse(e){if(this._getType(e)!==cn.symbol){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.symbol,received:t.parsedType}),yn}return vn(e.data)}}ir.create=e=>new ir({typeName:Lr.ZodSymbol,...An(e)});class sr extends Pn{_parse(e){if(this._getType(e)!==cn.undefined){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.undefined,received:t.parsedType}),yn}return vn(e.data)}}sr.create=e=>new sr({typeName:Lr.ZodUndefined,...An(e)});class or extends Pn{_parse(e){if(this._getType(e)!==cn.null){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.null,received:t.parsedType}),yn}return vn(e.data)}}or.create=e=>new or({typeName:Lr.ZodNull,...An(e)});class ar extends Pn{constructor(){super(...arguments),this._any=!0}_parse(e){return vn(e.data)}}ar.create=e=>new ar({typeName:Lr.ZodAny,...An(e)});class ur extends Pn{constructor(){super(...arguments),this._unknown=!0}_parse(e){return vn(e.data)}}ur.create=e=>new ur({typeName:Lr.ZodUnknown,...An(e)});class cr extends Pn{_parse(e){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.never,received:t.parsedType}),yn}}cr.create=e=>new cr({typeName:Lr.ZodNever,...An(e)});class dr extends Pn{_parse(e){if(this._getType(e)!==cn.undefined){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.void,received:t.parsedType}),yn}return vn(e.data)}}dr.create=e=>new dr({typeName:Lr.ZodVoid,...An(e)});class hr extends Pn{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==cn.array)return gn(t,{code:hn.invalid_type,expected:cn.array,received:t.parsedType}),yn;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(gn(t,{code:e?hn.too_big:hn.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&(gn(t,{code:hn.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&(gn(t,{code:hn.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new kn(t,e,t.path,n)))).then(e=>mn.mergeArray(n,e));const i=[...t.data].map((e,n)=>r.type._parseSync(new kn(t,e,t.path,n)));return mn.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new hr({...this._def,minLength:{value:e,message:Sn.toString(t)}})}max(e,t){return new hr({...this._def,maxLength:{value:e,message:Sn.toString(t)}})}length(e,t){return new hr({...this._def,exactLength:{value:e,message:Sn.toString(t)}})}nonempty(e){return this.min(1,e)}}function fr(e){if(e instanceof lr){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Pr.create(fr(r))}return new lr({...e._def,shape:()=>t})}return e instanceof hr?new hr({...e._def,type:fr(e.element)}):e instanceof Pr?Pr.create(fr(e.unwrap())):e instanceof Tr?Tr.create(fr(e.unwrap())):e instanceof yr?yr.create(e.items.map(e=>fr(e))):e}hr.create=(e,t)=>new hr({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Lr.ZodArray,...An(t)});class lr extends Pn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=an.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==cn.object){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.object,received:t.parsedType}),yn}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),s=[];if(!(this._def.catchall instanceof cr&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||s.push(e);const o=[];for(const e of i){const t=r[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new kn(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof cr){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of s)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)s.length>0&&(gn(n,{code:hn.unrecognized_keys,keys:s}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of s){const r=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new kn(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const e=[];for(const t of o){const n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>mn.mergeObjectSync(t,e)):mn.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return new lr({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{const r=this._def.errorMap?.(t,n).message??n.defaultError;return"unrecognized_keys"===t.code?{message:Sn.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new lr({...this._def,unknownKeys:"strip"})}passthrough(){return new lr({...this._def,unknownKeys:"passthrough"})}extend(e){return new lr({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new lr({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Lr.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new lr({...this._def,catchall:e})}pick(e){const t={};for(const n of an.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new lr({...this._def,shape:()=>t})}omit(e){const t={};for(const n of an.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new lr({...this._def,shape:()=>t})}deepPartial(){return fr(this)}partial(e){const t={};for(const n of an.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new lr({...this._def,shape:()=>t})}required(e){const t={};for(const n of an.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Pr;)e=e._def.innerType;t[n]=e}return new lr({...this._def,shape:()=>t})}keyof(){return xr(an.objectKeys(this.shape))}}lr.create=(e,t)=>new lr({shape:()=>e,unknownKeys:"strip",catchall:cr.create(),typeName:Lr.ZodObject,...An(t)}),lr.strictCreate=(e,t)=>new lr({shape:()=>e,unknownKeys:"strict",catchall:cr.create(),typeName:Lr.ZodObject,...An(t)}),lr.lazycreate=(e,t)=>new lr({shape:e,unknownKeys:"strip",catchall:cr.create(),typeName:Lr.ZodObject,...An(t)});class pr extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map(e=>new fn(e.ctx.common.issues));return gn(t,{code:hn.invalid_union,unionErrors:n}),yn});{let e;const r=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},s=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===s.status)return s;"dirty"!==s.status||e||(e={result:s,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=r.map(e=>new fn(e));return gn(t,{code:hn.invalid_union,unionErrors:i}),yn}}get options(){return this._def.options}}function gr(e,t){const n=dn(e),r=dn(t);if(e===t)return{valid:!0,data:e};if(n===cn.object&&r===cn.object){const n=an.objectKeys(t),r=an.objectKeys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const n of r){const r=gr(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}if(n===cn.array&&r===cn.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const i=gr(e[r],t[r]);if(!i.valid)return{valid:!1};n.push(i.data)}return{valid:!0,data:n}}return n===cn.date&&r===cn.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}pr.create=(e,t)=>new pr({options:e,typeName:Lr.ZodUnion,...An(t)});class mr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(_n(e)||_n(r))return yn;const i=gr(e.value,r.value);return i.valid?((bn(e)||bn(r))&&t.dirty(),{status:t.value,value:i.data}):(gn(n,{code:hn.invalid_intersection_types}),yn)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}mr.create=(e,t,n)=>new mr({left:e,right:t,typeName:Lr.ZodIntersection,...An(n)});class yr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.array)return gn(n,{code:hn.invalid_type,expected:cn.array,received:n.parsedType}),yn;if(n.data.length<this._def.items.length)return gn(n,{code:hn.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),yn;!this._def.rest&&n.data.length>this._def.items.length&&(gn(n,{code:hn.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map((e,t)=>{const r=this._def.items[t]||this._def.rest;return r?r._parse(new kn(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>mn.mergeArray(t,e)):mn.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new yr({...this._def,rest:e})}}yr.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new yr({items:e,typeName:Lr.ZodTuple,rest:null,...An(t)})};class wr extends Pn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.object)return gn(n,{code:hn.invalid_type,expected:cn.object,received:n.parsedType}),yn;const r=[],i=this._def.keyType,s=this._def.valueType;for(const e in n.data)r.push({key:i._parse(new kn(n,e,n.path,e)),value:s._parse(new kn(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?mn.mergeObjectAsync(t,r):mn.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new wr(t instanceof Pn?{keyType:e,valueType:t,typeName:Lr.ZodRecord,...An(n)}:{keyType:Jn.create(),valueType:e,typeName:Lr.ZodRecord,...An(t)})}}class vr extends Pn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.map)return gn(n,{code:hn.invalid_type,expected:cn.map,received:n.parsedType}),yn;const r=this._def.keyType,i=this._def.valueType,s=[...n.data.entries()].map(([e,t],s)=>({key:r._parse(new kn(n,e,n.path,[s,"key"])),value:i._parse(new kn(n,t,n.path,[s,"value"]))}));if(n.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const n of s){const r=await n.key,i=await n.value;if("aborted"===r.status||"aborted"===i.status)return yn;"dirty"!==r.status&&"dirty"!==i.status||t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}{const e=new Map;for(const n of s){const r=n.key,i=n.value;if("aborted"===r.status||"aborted"===i.status)return yn;"dirty"!==r.status&&"dirty"!==i.status||t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}}vr.create=(e,t,n)=>new vr({valueType:t,keyType:e,typeName:Lr.ZodMap,...An(n)});class _r extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.set)return gn(n,{code:hn.invalid_type,expected:cn.set,received:n.parsedType}),yn;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(gn(n,{code:hn.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&(gn(n,{code:hn.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const i=this._def.valueType;function s(e){const n=new Set;for(const r of e){if("aborted"===r.status)return yn;"dirty"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map((e,t)=>i._parse(new kn(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>s(e)):s(o)}min(e,t){return new _r({...this._def,minSize:{value:e,message:Sn.toString(t)}})}max(e,t){return new _r({...this._def,maxSize:{value:e,message:Sn.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}_r.create=(e,t)=>new _r({valueType:e,minSize:null,maxSize:null,typeName:Lr.ZodSet,...An(t)});class br extends Pn{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}br.create=(e,t)=>new br({getter:e,typeName:Lr.ZodLazy,...An(t)});class Er extends Pn{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return gn(t,{received:t.data,code:hn.invalid_literal,expected:this._def.value}),yn}return{status:"valid",value:e.data}}get value(){return this._def.value}}function xr(e,t){return new Sr({values:e,typeName:Lr.ZodEnum,...An(t)})}Er.create=(e,t)=>new Er({value:e,typeName:Lr.ZodLiteral,...An(t)});class Sr extends Pn{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return gn(t,{expected:an.joinValues(n),received:t.parsedType,code:hn.invalid_type}),yn}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return gn(t,{received:t.data,code:hn.invalid_enum_value,options:n}),yn}return vn(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Sr.create(e,{...this._def,...t})}exclude(e,t=this._def){return Sr.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}Sr.create=xr;class kr extends Pn{_parse(e){const t=an.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==cn.string&&n.parsedType!==cn.number){const e=an.objectValues(t);return gn(n,{expected:an.joinValues(e),received:n.parsedType,code:hn.invalid_type}),yn}if(this._cache||(this._cache=new Set(an.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=an.objectValues(t);return gn(n,{received:n.data,code:hn.invalid_enum_value,options:e}),yn}return vn(e.data)}get enum(){return this._def.values}}kr.create=(e,t)=>new kr({values:e,typeName:Lr.ZodNativeEnum,...An(t)});class Or extends Pn{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==cn.promise&&!1===t.common.async)return gn(t,{code:hn.invalid_type,expected:cn.promise,received:t.parsedType}),yn;const n=t.parsedType===cn.promise?t.data:Promise.resolve(t.data);return vn(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Or.create=(e,t)=>new Or({type:e,typeName:Lr.ZodPromise,...An(t)});class Ar extends Pn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Lr.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{gn(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===r.type){const e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return yn;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?yn:"dirty"===r.status||"dirty"===t.value?wn(r.value):r});{if("aborted"===t.value)return yn;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?yn:"dirty"===r.status||"dirty"===t.value?wn(r.value):r}}if("refinement"===r.type){const e=e=>{const t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===r.status?yn:("dirty"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>"aborted"===n.status?yn:("dirty"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if("transform"===r.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!En(e))return yn;const s=r.transform(e.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:s}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>En(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):yn)}an.assertNever(r)}}Ar.create=(e,t,n)=>new Ar({schema:e,typeName:Lr.ZodEffects,effect:t,...An(n)}),Ar.createWithPreprocess=(e,t,n)=>new Ar({schema:t,effect:{type:"preprocess",transform:e},typeName:Lr.ZodEffects,...An(n)});class Pr extends Pn{_parse(e){return this._getType(e)===cn.undefined?vn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Pr.create=(e,t)=>new Pr({innerType:e,typeName:Lr.ZodOptional,...An(t)});class Tr extends Pn{_parse(e){return this._getType(e)===cn.null?vn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Tr.create=(e,t)=>new Tr({innerType:e,typeName:Lr.ZodNullable,...An(t)});class Ir extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===cn.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ir.create=(e,t)=>new Ir({innerType:e,typeName:Lr.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...An(t)});class Nr extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return xn(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new fn(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new fn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}Nr.create=(e,t)=>new Nr({innerType:e,typeName:Lr.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...An(t)});class Ur extends Pn{_parse(e){if(this._getType(e)!==cn.nan){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.nan,received:t.parsedType}),yn}return{status:"valid",value:e.data}}}Ur.create=e=>new Ur({typeName:Lr.ZodNaN,...An(e)});class $r extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class Cr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?yn:"dirty"===e.status?(t.dirty(),wn(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?yn:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new Cr({in:e,out:t,typeName:Lr.ZodPipeline})}}class Br extends Pn{_parse(e){const t=this._def.innerType._parse(e),n=e=>(En(e)&&(e.value=Object.freeze(e.value)),e);return xn(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}function Rr(e,t){const n="function"==typeof e?e(t):"string"==typeof e?{message:e}:e;return"string"==typeof n?{message:n}:n}var Lr;Br.create=(e,t)=>new Br({innerType:e,typeName:Lr.ZodReadonly,...An(t)}),function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Lr||(Lr={}));const zr=Jn.create,jr=er.create,Hr=tr.create,Dr=nr.create,Fr=rr.create,Vr=or.create,Zr=ar.create,Kr=hr.create,Wr=lr.create,qr=pr.create,Mr=wr.create,Gr=br.create,Yr=Hr();Dr(),Fr();const Qr=jr().min(Number.MIN_SAFE_INTEGER).max(Number.MAX_SAFE_INTEGER).int(),Jr=((e,t={message:`Input not instance of ${e.name}`})=>function(e,t={},n){return e?ar.create().superRefine((r,i)=>{const s=e(r);if(s instanceof Promise)return s.then(e=>{if(!e){const e=Rr(t,r),s=e.fatal??n??!0;i.addIssue({code:"custom",...e,fatal:s})}});if(!s){const e=Rr(t,r),s=e.fatal??n??!0;i.addIssue({code:"custom",...e,fatal:s})}}):ar.create()}(t=>t instanceof e,t))(Uint8Array);zr(),Qr.min(5e8),Zr(),Qr.min(0).max(255),Qr.min(0).max(65535);const Xr=Qr.min(0).max(4294967295);jr().refine(e=>String(e).includes(".")).refine(e=>{const t=String(e).split(".").at(1);return void 0!==t&&t.length<=2});const ei=zr().regex(/^[0-9a-fA-F]*$/).refine(e=>e.length%2==0),ti=qr([zr(),jr(),Dr(),Vr()]),ni=Gr(()=>qr([ti,Kr(ni),Mr(ni)]));Jr.refine(e=>20===e.length);const ri=Jr.refine(e=>32===e.length),ii=Jr.refine(e=>33===e.length),si=Jr.refine(e=>64===e.length);ei.refine(e=>40===e.length);const oi=ei.refine(e=>64===e.length),ai=ei.refine(e=>66===e.length),ui=ei.refine(e=>128===e.length);qr([ei,Jr]);const ci=qr([oi,ri]);
12
+ const dt={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ht=BigInt(0),ft=BigInt(1),lt=BigInt(2),pt=(e,t)=>(e+t/lt)/t;function gt(e){const t=dt.p,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),u=BigInt(88),c=e*e*e%t,d=c*c*e%t,h=Ae(d,n,t)*d%t,f=Ae(h,n,t)*d%t,l=Ae(f,lt,t)*c%t,p=Ae(l,i,t)*l%t,g=Ae(p,s,t)*p%t,m=Ae(g,a,t)*g%t,y=Ae(m,u,t)*m%t,w=Ae(y,a,t)*g%t,_=Ae(w,n,t)*d%t,v=Ae(_,o,t)*p%t,b=Ae(v,r,t)*c%t,E=Ae(b,lt,t);if(!mt.eql(mt.sqr(E),e))throw new Error("Cannot find square root");return E}const mt=Be(dt.p,void 0,void 0,{sqrt:gt}),yt=function(e,t){const n=t=>ct({...e,hash:t});return{...n(t),create:n}}({...dt,Fp:mt,lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=dt.n,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-ft*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=pt(s*e,t),u=pt(-r*e,t);let c=Oe(e-a*n-u*i,t),d=Oe(-a*r-u*s,t);const h=c>o,f=d>o;if(h&&(c=t-c),f&&(d=t-d),c>o||d>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:h,k1:c,k2neg:f,k2:d}}}},ee),wt={};function _t(e,...t){let n=wt[e];if(void 0===n){const t=ee(Uint8Array.from(e,e=>e.charCodeAt(0)));n=V(t,t),wt[e]=n}return ee(V(n,...t))}const vt=e=>e.toBytes(!0).slice(1),bt=e=>de(e,32),Et=e=>Oe(e,dt.p),xt=e=>Oe(e,dt.n),St=(()=>yt.Point)(),kt=e=>e%lt===ht;function Ot(e){let t=yt.utils.normPrivateKeyToScalar(e),n=St.fromPrivateKey(t);return{scalar:kt(n.y)?t:xt(-t),bytes:vt(n)}}function At(e){ge("x",e,ft,dt.p);const t=Et(e*e);let n=gt(Et(t*e+BigInt(7)));kt(n)||(n=Et(-n));const r=St.fromAffine({x:e,y:n});return r.assertValidity(),r}const Pt=ue;function Tt(...e){return xt(Pt(_t("BIP0340/challenge",...e)))}function It(e){return Ot(e).bytes}function Nt(e,t,n=W(32)){const r=fe("message",e),{bytes:i,scalar:s}=Ot(t),o=fe("auxRand",n,32),a=bt(s^Pt(_t("BIP0340/aux",o))),u=_t("BIP0340/nonce",a,i,r),c=xt(Pt(u));if(c===ht)throw new Error("sign failed: k is zero");const{bytes:d,scalar:h}=Ot(c),f=Tt(d,i,r),l=new Uint8Array(64);if(l.set(d,0),l.set(bt(xt(h+f*s)),32),!Ut(l,r,i))throw new Error("sign: Invalid signature produced");return l}function Ut(e,t,n){const r=fe("signature",e,64),i=fe("message",t),s=fe("publicKey",n,32);try{const e=At(Pt(s)),t=Pt(r.subarray(0,32));if(!pe(t,ft,dt.p))return!1;const n=Pt(r.subarray(32,64));if(!pe(n,ft,dt.n))return!1;const o=Tt(bt(t),vt(e),i),a=St.BASE.multiplyUnsafe(n).add(e.multiplyUnsafe(xt(-o))),{x:u,y:c}=a.toAffine();return!(a.is0()||!kt(c)||u!==t)}catch(e){return!1}}const $t=(()=>({getPublicKey:It,sign:Nt,verify:Ut,utils:{randomPrivateKey:yt.utils.randomPrivateKey,lift_x:At,pointToBytes:vt,numberToBytesBE:de,bytesToNumberBE:ue,taggedHash:_t,mod:Oe}}))();BigInt(0),BigInt(2);Be(yt.CURVE.n,32,!0);const Ct=yt.Point.BASE;function Bt(e,t){const n=Ht(e).big;return jt(Ct.multiply(n).toHex(!0),t)}function Rt(e,t,n,r=!1){const i=Ht(t).big,s=function(e){try{const t=jt(e,"ecdsa");return yt.Point.fromHex(t)}catch(t){throw new Error("invalid pubkey: "+e)}}(e),o=Ct.multiply(i);let a=s.add(o);r&&!a.hasEvenY()&&(a=a.negate());return jt(a.toHex(!0),n)}function Lt(e,t){const n=Ht(t),r=yt.sign(n,e).toDERRawBytes();return m.bytes(r)}function zt(e,t){const n=Ht(t);return Ht($t.sign(n,e))}function jt(e,t){try{const n=Ht(e);if(33===n.length&&"bip340"===t)return n.slice(1);if(32===n.length&&"ecdsa"===t){const e=m.num(2,1);return m.join([e,n])}return n}catch(t){throw new Error("invalid pubkey: "+String(e))}}function Ht(e){try{return m.bytes(e)}catch(t){throw new Error("invalid bytes: "+String(e))}}const Dt=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Ft=(()=>Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)))(),Vt=(()=>Ft.map(e=>(9*e+5)%16))(),Zt=(()=>{const e=[[Ft],[Vt]];for(let t=0;t<4;t++)for(let n of e)n.push(n[t].map(e=>Dt[e]));return e})(),Kt=(()=>Zt[0])(),Wt=(()=>Zt[1])(),qt=[[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=>Uint8Array.from(e)),Mt=Kt.map((e,t)=>e.map(e=>qt[t][e])),Gt=Wt.map((e,t)=>e.map(e=>qt[t][e])),Yt=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),Qt=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Jt(e,t,n,r){return 0===e?t^n^r:1===e?t&n|~t&r:2===e?(t|~n)^r:3===e?t&r|n&~r:t^(n|~r)}const Xt=new Uint32Array(16);class en extends G{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:e,h1:t,h2:n,h3:r,h4:i}=this;return[e,t,n,r,i]}set(e,t,n,r,i){this.h0=0|e,this.h1=0|t,this.h2=0|n,this.h3=0|r,this.h4=0|i}process(e,t){for(let n=0;n<16;n++,t+=4)Xt[n]=e.getUint32(t,!0);let n=0|this.h0,r=n,i=0|this.h1,s=i,o=0|this.h2,a=o,u=0|this.h3,c=u,d=0|this.h4,h=d;for(let e=0;e<5;e++){const t=4-e,f=Yt[e],l=Qt[e],p=Kt[e],g=Wt[e],m=Mt[e],y=Gt[e];for(let t=0;t<16;t++){const r=I(n+Jt(e,i,o,u)+Xt[p[t]]+f,m[t])+d|0;n=d,d=u,u=0|I(o,10),o=i,i=r}for(let e=0;e<16;e++){const n=I(r+Jt(t,s,a,c)+Xt[g[e]]+l,y[e])+h|0;r=h,h=c,c=0|I(a,10),a=s,s=n}}this.set(this.h1+o+c|0,this.h2+u+h|0,this.h3+d+r|0,this.h4+n+s|0,this.h0+i+a|0)}roundClean(){A(Xt)}destroy(){this.destroyed=!0,A(this.buffer),this.set(0,0,0,0,0)}}const tn=K(()=>new en);function nn(...e){const t=m.join(e),n=tn(ee(t));return new m(n)}function rn(...e){const t=m.join(e),n=ee(t);return new m(n)}function sn(...e){const t=m.join(e),n=ee(ee(t));return new m(n)}function on(e,...t){const n=function(e){const t=rn(m.str(e));return m.join([t,t])}(e),r=t.map(e=>new m(e));return rn(m.join([n,...r]))}var an,un;!function(e){e.assertEqual=e=>{},e.assertIs=function(e){},e.assertNever=function(e){throw new Error},e.arrayToEnum=e=>{const t={};for(const n of e)t[n]=n;return t},e.getValidEnumValues=t=>{const n=e.objectKeys(t).filter(e=>"number"!=typeof t[t[e]]),r={};for(const e of n)r[e]=t[e];return e.objectValues(r)},e.objectValues=t=>e.objectKeys(t).map(function(e){return t[e]}),e.objectKeys="function"==typeof Object.keys?e=>Object.keys(e):e=>{const t=[];for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},e.find=(e,t)=>{for(const n of e)if(t(n))return n},e.isInteger="function"==typeof Number.isInteger?e=>Number.isInteger(e):e=>"number"==typeof e&&Number.isFinite(e)&&Math.floor(e)===e,e.joinValues=function(e,t=" | "){return e.map(e=>"string"==typeof e?`'${e}'`:e).join(t)},e.jsonStringifyReplacer=(e,t)=>"bigint"==typeof t?t.toString():t}(an||(an={})),function(e){e.mergeShapes=(e,t)=>({...e,...t})}(un||(un={}));const cn=an.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),dn=e=>{switch(typeof e){case"undefined":return cn.undefined;case"string":return cn.string;case"number":return Number.isNaN(e)?cn.nan:cn.number;case"boolean":return cn.boolean;case"function":return cn.function;case"bigint":return cn.bigint;case"symbol":return cn.symbol;case"object":return Array.isArray(e)?cn.array:null===e?cn.null:e.then&&"function"==typeof e.then&&e.catch&&"function"==typeof e.catch?cn.promise:"undefined"!=typeof Map&&e instanceof Map?cn.map:"undefined"!=typeof Set&&e instanceof Set?cn.set:"undefined"!=typeof Date&&e instanceof Date?cn.date:cn.object;default:return cn.unknown}},hn=an.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);class fn extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=e=>{this.issues=[...this.issues,e]},this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(e){return e.message},n={_errors:[]},r=e=>{for(const i of e.issues)if("invalid_union"===i.code)i.unionErrors.map(r);else if("invalid_return_type"===i.code)r(i.returnTypeError);else if("invalid_arguments"===i.code)r(i.argumentsError);else if(0===i.path.length)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){const n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(this),n}static assert(e){if(!(e instanceof fn))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,an.jsonStringifyReplacer,2)}get isEmpty(){return 0===this.issues.length}flatten(e=e=>e.message){const t={},n=[];for(const r of this.issues)r.path.length>0?(t[r.path[0]]=t[r.path[0]]||[],t[r.path[0]].push(e(r))):n.push(e(r));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}fn.create=e=>new fn(e);const ln=(e,t)=>{let n;switch(e.code){case hn.invalid_type:n=e.received===cn.undefined?"Required":`Expected ${e.expected}, received ${e.received}`;break;case hn.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,an.jsonStringifyReplacer)}`;break;case hn.unrecognized_keys:n=`Unrecognized key(s) in object: ${an.joinValues(e.keys,", ")}`;break;case hn.invalid_union:n="Invalid input";break;case hn.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${an.joinValues(e.options)}`;break;case hn.invalid_enum_value:n=`Invalid enum value. Expected ${an.joinValues(e.options)}, received '${e.received}'`;break;case hn.invalid_arguments:n="Invalid function arguments";break;case hn.invalid_return_type:n="Invalid function return type";break;case hn.invalid_date:n="Invalid date";break;case hn.invalid_string:"object"==typeof e.validation?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,"number"==typeof e.validation.position&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:an.assertNever(e.validation):n="regex"!==e.validation?`Invalid ${e.validation}`:"Invalid";break;case hn.too_small:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:"date"===e.type?`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:"Invalid input";break;case hn.too_big:n="array"===e.type?`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:"string"===e.type?`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:"number"===e.type?`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"bigint"===e.type?`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:"date"===e.type?`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:"Invalid input";break;case hn.custom:n="Invalid input";break;case hn.invalid_intersection_types:n="Intersection results could not be merged";break;case hn.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case hn.not_finite:n="Number must be finite";break;default:n=t.defaultError,an.assertNever(e)}return{message:n}};let pn=ln;function gn(e,t){const n=pn,r=(e=>{const{data:t,path:n,errorMaps:r,issueData:i}=e,s=[...n,...i.path||[]],o={...i,path:s};if(void 0!==i.message)return{...i,path:s,message:i.message};let a="";const u=r.filter(e=>!!e).slice().reverse();for(const e of u)a=e(o,{data:t,defaultError:a}).message;return{...i,path:s,message:a}})({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===ln?void 0:ln].filter(e=>!!e)});e.common.issues.push(r)}class mn{constructor(){this.value="valid"}dirty(){"valid"===this.value&&(this.value="dirty")}abort(){"aborted"!==this.value&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const r of t){if("aborted"===r.status)return yn;"dirty"===r.status&&e.dirty(),n.push(r.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const e of t){const t=await e.key,r=await e.value;n.push({key:t,value:r})}return mn.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const r of t){const{key:t,value:i}=r;if("aborted"===t.status)return yn;if("aborted"===i.status)return yn;"dirty"===t.status&&e.dirty(),"dirty"===i.status&&e.dirty(),"__proto__"===t.value||void 0===i.value&&!r.alwaysSet||(n[t.value]=i.value)}return{status:e.value,value:n}}}const yn=Object.freeze({status:"aborted"}),wn=e=>({status:"dirty",value:e}),_n=e=>({status:"valid",value:e}),vn=e=>"aborted"===e.status,bn=e=>"dirty"===e.status,En=e=>"valid"===e.status,xn=e=>"undefined"!=typeof Promise&&e instanceof Promise;var Sn;!function(e){e.errToObj=e=>"string"==typeof e?{message:e}:e||{},e.toString=e=>"string"==typeof e?e:e?.message}(Sn||(Sn={}));class kn{constructor(e,t,n,r){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=r}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const On=(e,t)=>{if(En(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new fn(e.common.issues);return this._error=t,this._error}}};function An(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error('Can\'t use "invalid_type_error" or "required_error" in conjunction with custom error map.');if(t)return{errorMap:t,description:i};return{errorMap:(t,i)=>{const{message:s}=e;return"invalid_enum_value"===t.code?{message:s??i.defaultError}:void 0===i.data?{message:s??r??i.defaultError}:"invalid_type"!==t.code?{message:i.defaultError}:{message:s??n??i.defaultError}},description:i}}class Pn{get description(){return this._def.description}_getType(e){return dn(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:dn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new mn,ctx:{common:e.parent.common,data:e.data,parsedType:dn(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(xn(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){const n={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:dn(e)},r=this._parseSync({data:e,path:n.path,parent:n});return On(n,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:dn(e)};if(!this["~standard"].async)try{const n=this._parseSync({data:e,path:[],parent:t});return En(n)?{value:n.value}:{issues:t.common.issues}}catch(e){e?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(e=>En(e)?{value:e.value}:{issues:t.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:dn(e)},r=this._parse({data:e,path:n.path,parent:n}),i=await(xn(r)?r:Promise.resolve(r));return On(n,i)}refine(e,t){const n=e=>"string"==typeof t||void 0===t?{message:t}:"function"==typeof t?t(e):t;return this._refinement((t,r)=>{const i=e(t),s=()=>r.addIssue({code:hn.custom,...n(t)});return"undefined"!=typeof Promise&&i instanceof Promise?i.then(e=>!!e||(s(),!1)):!!i||(s(),!1)})}refinement(e,t){return this._refinement((n,r)=>!!e(n)||(r.addIssue("function"==typeof t?t(n,r):t),!1))}_refinement(e){return new Ar({schema:this,typeName:Lr.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Pr.create(this,this._def)}nullable(){return Tr.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return hr.create(this)}promise(){return Or.create(this,this._def)}or(e){return pr.create([this,e],this._def)}and(e){return mr.create(this,e,this._def)}transform(e){return new Ar({...An(this._def),schema:this,typeName:Lr.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t="function"==typeof e?e:()=>e;return new Ir({...An(this._def),innerType:this,defaultValue:t,typeName:Lr.ZodDefault})}brand(){return new $r({typeName:Lr.ZodBranded,type:this,...An(this._def)})}catch(e){const t="function"==typeof e?e:()=>e;return new Nr({...An(this._def),innerType:this,catchValue:t,typeName:Lr.ZodCatch})}describe(e){return new(0,this.constructor)({...this._def,description:e})}pipe(e){return Cr.create(this,e)}readonly(){return Br.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Tn=/^c[^\s-]{8,}$/i,In=/^[0-9a-z]+$/,Nn=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Un=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,$n=/^[a-z0-9_-]{21}$/i,Cn=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Bn=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rn=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;let Ln;const zn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,jn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Hn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Dn=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Fn=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Vn=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Zn="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Kn=new RegExp(`^${Zn}$`);function Wn(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:null==e.precision&&(t=`${t}(\\.\\d+)?`);return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${e.precision?"+":"?"}`}function qn(e){return new RegExp(`^${Wn(e)}$`)}function Mn(e){let t=`${Zn}T${Wn(e)}`;const n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Gn(e,t){return!("v4"!==t&&t||!zn.test(e))||!("v6"!==t&&t||!Hn.test(e))}function Yn(e,t){if(!Cn.test(e))return!1;try{const[n]=e.split("."),r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return"object"==typeof i&&null!==i&&((!("typ"in i)||"JWT"===i?.typ)&&(!!i.alg&&(!t||i.alg===t)))}catch{return!1}}function Qn(e,t){return!("v4"!==t&&t||!jn.test(e))||!("v6"!==t&&t||!Dn.test(e))}class Jn extends Pn{_parse(e){this._def.coerce&&(e.data=String(e.data));if(this._getType(e)!==cn.string){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.string,received:t.parsedType}),yn}const t=new mn;let n;for(const r of this._def.checks)if("min"===r.kind)e.data.length<r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("max"===r.kind)e.data.length>r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!1,message:r.message}),t.dirty());else if("length"===r.kind){const i=e.data.length>r.value,s=e.data.length<r.value;(i||s)&&(n=this._getOrReturnCtx(e,n),i?gn(n,{code:hn.too_big,maximum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}):s&&gn(n,{code:hn.too_small,minimum:r.value,type:"string",inclusive:!0,exact:!0,message:r.message}),t.dirty())}else if("email"===r.kind)Rn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"email",code:hn.invalid_string,message:r.message}),t.dirty());else if("emoji"===r.kind)Ln||(Ln=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),Ln.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"emoji",code:hn.invalid_string,message:r.message}),t.dirty());else if("uuid"===r.kind)Un.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"uuid",code:hn.invalid_string,message:r.message}),t.dirty());else if("nanoid"===r.kind)$n.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"nanoid",code:hn.invalid_string,message:r.message}),t.dirty());else if("cuid"===r.kind)Tn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"cuid",code:hn.invalid_string,message:r.message}),t.dirty());else if("cuid2"===r.kind)In.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"cuid2",code:hn.invalid_string,message:r.message}),t.dirty());else if("ulid"===r.kind)Nn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"ulid",code:hn.invalid_string,message:r.message}),t.dirty());else if("url"===r.kind)try{new URL(e.data)}catch{n=this._getOrReturnCtx(e,n),gn(n,{validation:"url",code:hn.invalid_string,message:r.message}),t.dirty()}else if("regex"===r.kind){r.regex.lastIndex=0;r.regex.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"regex",code:hn.invalid_string,message:r.message}),t.dirty())}else if("trim"===r.kind)e.data=e.data.trim();else if("includes"===r.kind)e.data.includes(r.value,r.position)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:{includes:r.value,position:r.position},message:r.message}),t.dirty());else if("toLowerCase"===r.kind)e.data=e.data.toLowerCase();else if("toUpperCase"===r.kind)e.data=e.data.toUpperCase();else if("startsWith"===r.kind)e.data.startsWith(r.value)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:{startsWith:r.value},message:r.message}),t.dirty());else if("endsWith"===r.kind)e.data.endsWith(r.value)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:{endsWith:r.value},message:r.message}),t.dirty());else if("datetime"===r.kind){Mn(r).test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:"datetime",message:r.message}),t.dirty())}else if("date"===r.kind){Kn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:"date",message:r.message}),t.dirty())}else if("time"===r.kind){qn(r).test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.invalid_string,validation:"time",message:r.message}),t.dirty())}else"duration"===r.kind?Bn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"duration",code:hn.invalid_string,message:r.message}),t.dirty()):"ip"===r.kind?Gn(e.data,r.version)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"ip",code:hn.invalid_string,message:r.message}),t.dirty()):"jwt"===r.kind?Yn(e.data,r.alg)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"jwt",code:hn.invalid_string,message:r.message}),t.dirty()):"cidr"===r.kind?Qn(e.data,r.version)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"cidr",code:hn.invalid_string,message:r.message}),t.dirty()):"base64"===r.kind?Fn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"base64",code:hn.invalid_string,message:r.message}),t.dirty()):"base64url"===r.kind?Vn.test(e.data)||(n=this._getOrReturnCtx(e,n),gn(n,{validation:"base64url",code:hn.invalid_string,message:r.message}),t.dirty()):an.assertNever(r);return{status:t.value,value:e.data}}_regex(e,t,n){return this.refinement(t=>e.test(t),{validation:t,code:hn.invalid_string,...Sn.errToObj(n)})}_addCheck(e){return new Jn({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Sn.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Sn.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Sn.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Sn.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Sn.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Sn.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Sn.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Sn.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Sn.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Sn.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Sn.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Sn.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Sn.errToObj(e)})}datetime(e){return"string"==typeof e?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:void 0===e?.precision?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...Sn.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return"string"==typeof e?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:void 0===e?.precision?null:e?.precision,...Sn.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...Sn.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Sn.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...Sn.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Sn.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Sn.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Sn.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Sn.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Sn.errToObj(t)})}nonempty(e){return this.min(1,Sn.errToObj(e))}trim(){return new Jn({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Jn({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Jn({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>"datetime"===e.kind)}get isDate(){return!!this._def.checks.find(e=>"date"===e.kind)}get isTime(){return!!this._def.checks.find(e=>"time"===e.kind)}get isDuration(){return!!this._def.checks.find(e=>"duration"===e.kind)}get isEmail(){return!!this._def.checks.find(e=>"email"===e.kind)}get isURL(){return!!this._def.checks.find(e=>"url"===e.kind)}get isEmoji(){return!!this._def.checks.find(e=>"emoji"===e.kind)}get isUUID(){return!!this._def.checks.find(e=>"uuid"===e.kind)}get isNANOID(){return!!this._def.checks.find(e=>"nanoid"===e.kind)}get isCUID(){return!!this._def.checks.find(e=>"cuid"===e.kind)}get isCUID2(){return!!this._def.checks.find(e=>"cuid2"===e.kind)}get isULID(){return!!this._def.checks.find(e=>"ulid"===e.kind)}get isIP(){return!!this._def.checks.find(e=>"ip"===e.kind)}get isCIDR(){return!!this._def.checks.find(e=>"cidr"===e.kind)}get isBase64(){return!!this._def.checks.find(e=>"base64"===e.kind)}get isBase64url(){return!!this._def.checks.find(e=>"base64url"===e.kind)}get minLength(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}function Xn(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r;return Number.parseInt(e.toFixed(i).replace(".",""))%Number.parseInt(t.toFixed(i).replace(".",""))/10**i}Jn.create=e=>new Jn({checks:[],typeName:Lr.ZodString,coerce:e?.coerce??!1,...An(e)});class er extends Pn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){this._def.coerce&&(e.data=Number(e.data));if(this._getType(e)!==cn.number){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.number,received:t.parsedType}),yn}let t;const n=new mn;for(const r of this._def.checks)if("int"===r.kind)an.isInteger(e.data)||(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.invalid_type,expected:"integer",received:"float",message:r.message}),n.dirty());else if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_small,minimum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_big,maximum:r.value,type:"number",inclusive:r.inclusive,exact:!1,message:r.message}),n.dirty())}else"multipleOf"===r.kind?0!==Xn(e.data,r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):"finite"===r.kind?Number.isFinite(e.data)||(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.not_finite,message:r.message}),n.dirty()):an.assertNever(r);return{status:n.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Sn.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Sn.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Sn.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Sn.toString(t))}setLimit(e,t,n,r){return new er({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Sn.toString(r)}]})}_addCheck(e){return new er({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Sn.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Sn.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Sn.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Sn.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Sn.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Sn.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Sn.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Sn.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Sn.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>"int"===e.kind||"multipleOf"===e.kind&&an.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if("finite"===n.kind||"int"===n.kind||"multipleOf"===n.kind)return!0;"min"===n.kind?(null===t||n.value>t)&&(t=n.value):"max"===n.kind&&(null===e||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}er.create=e=>new er({checks:[],typeName:Lr.ZodNumber,coerce:e?.coerce||!1,...An(e)});class tr extends Pn{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==cn.bigint)return this._getInvalidInput(e);let t;const n=new mn;for(const r of this._def.checks)if("min"===r.kind){(r.inclusive?e.data<r.value:e.data<=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_small,type:"bigint",minimum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else if("max"===r.kind){(r.inclusive?e.data>r.value:e.data>=r.value)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.too_big,type:"bigint",maximum:r.value,inclusive:r.inclusive,message:r.message}),n.dirty())}else"multipleOf"===r.kind?e.data%r.value!==BigInt(0)&&(t=this._getOrReturnCtx(e,t),gn(t,{code:hn.not_multiple_of,multipleOf:r.value,message:r.message}),n.dirty()):an.assertNever(r);return{status:n.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.bigint,received:t.parsedType}),yn}gte(e,t){return this.setLimit("min",e,!0,Sn.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Sn.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Sn.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Sn.toString(t))}setLimit(e,t,n,r){return new tr({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Sn.toString(r)}]})}_addCheck(e){return new tr({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Sn.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Sn.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Sn.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Sn.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Sn.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return e}}tr.create=e=>new tr({checks:[],typeName:Lr.ZodBigInt,coerce:e?.coerce??!1,...An(e)});class nr extends Pn{_parse(e){this._def.coerce&&(e.data=Boolean(e.data));if(this._getType(e)!==cn.boolean){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.boolean,received:t.parsedType}),yn}return _n(e.data)}}nr.create=e=>new nr({typeName:Lr.ZodBoolean,coerce:e?.coerce||!1,...An(e)});class rr extends Pn{_parse(e){this._def.coerce&&(e.data=new Date(e.data));if(this._getType(e)!==cn.date){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.date,received:t.parsedType}),yn}if(Number.isNaN(e.data.getTime())){return gn(this._getOrReturnCtx(e),{code:hn.invalid_date}),yn}const t=new mn;let n;for(const r of this._def.checks)"min"===r.kind?e.data.getTime()<r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_small,message:r.message,inclusive:!0,exact:!1,minimum:r.value,type:"date"}),t.dirty()):"max"===r.kind?e.data.getTime()>r.value&&(n=this._getOrReturnCtx(e,n),gn(n,{code:hn.too_big,message:r.message,inclusive:!0,exact:!1,maximum:r.value,type:"date"}),t.dirty()):an.assertNever(r);return{status:t.value,value:new Date(e.data.getTime())}}_addCheck(e){return new rr({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Sn.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Sn.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)"min"===t.kind&&(null===e||t.value>e)&&(e=t.value);return null!=e?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)"max"===t.kind&&(null===e||t.value<e)&&(e=t.value);return null!=e?new Date(e):null}}rr.create=e=>new rr({checks:[],coerce:e?.coerce||!1,typeName:Lr.ZodDate,...An(e)});class ir extends Pn{_parse(e){if(this._getType(e)!==cn.symbol){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.symbol,received:t.parsedType}),yn}return _n(e.data)}}ir.create=e=>new ir({typeName:Lr.ZodSymbol,...An(e)});class sr extends Pn{_parse(e){if(this._getType(e)!==cn.undefined){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.undefined,received:t.parsedType}),yn}return _n(e.data)}}sr.create=e=>new sr({typeName:Lr.ZodUndefined,...An(e)});class or extends Pn{_parse(e){if(this._getType(e)!==cn.null){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.null,received:t.parsedType}),yn}return _n(e.data)}}or.create=e=>new or({typeName:Lr.ZodNull,...An(e)});class ar extends Pn{constructor(){super(...arguments),this._any=!0}_parse(e){return _n(e.data)}}ar.create=e=>new ar({typeName:Lr.ZodAny,...An(e)});class ur extends Pn{constructor(){super(...arguments),this._unknown=!0}_parse(e){return _n(e.data)}}ur.create=e=>new ur({typeName:Lr.ZodUnknown,...An(e)});class cr extends Pn{_parse(e){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.never,received:t.parsedType}),yn}}cr.create=e=>new cr({typeName:Lr.ZodNever,...An(e)});class dr extends Pn{_parse(e){if(this._getType(e)!==cn.undefined){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.void,received:t.parsedType}),yn}return _n(e.data)}}dr.create=e=>new dr({typeName:Lr.ZodVoid,...An(e)});class hr extends Pn{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),r=this._def;if(t.parsedType!==cn.array)return gn(t,{code:hn.invalid_type,expected:cn.array,received:t.parsedType}),yn;if(null!==r.exactLength){const e=t.data.length>r.exactLength.value,i=t.data.length<r.exactLength.value;(e||i)&&(gn(t,{code:e?hn.too_big:hn.too_small,minimum:i?r.exactLength.value:void 0,maximum:e?r.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:r.exactLength.message}),n.dirty())}if(null!==r.minLength&&t.data.length<r.minLength.value&&(gn(t,{code:hn.too_small,minimum:r.minLength.value,type:"array",inclusive:!0,exact:!1,message:r.minLength.message}),n.dirty()),null!==r.maxLength&&t.data.length>r.maxLength.value&&(gn(t,{code:hn.too_big,maximum:r.maxLength.value,type:"array",inclusive:!0,exact:!1,message:r.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((e,n)=>r.type._parseAsync(new kn(t,e,t.path,n)))).then(e=>mn.mergeArray(n,e));const i=[...t.data].map((e,n)=>r.type._parseSync(new kn(t,e,t.path,n)));return mn.mergeArray(n,i)}get element(){return this._def.type}min(e,t){return new hr({...this._def,minLength:{value:e,message:Sn.toString(t)}})}max(e,t){return new hr({...this._def,maxLength:{value:e,message:Sn.toString(t)}})}length(e,t){return new hr({...this._def,exactLength:{value:e,message:Sn.toString(t)}})}nonempty(e){return this.min(1,e)}}function fr(e){if(e instanceof lr){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Pr.create(fr(r))}return new lr({...e._def,shape:()=>t})}return e instanceof hr?new hr({...e._def,type:fr(e.element)}):e instanceof Pr?Pr.create(fr(e.unwrap())):e instanceof Tr?Tr.create(fr(e.unwrap())):e instanceof yr?yr.create(e.items.map(e=>fr(e))):e}hr.create=(e,t)=>new hr({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Lr.ZodArray,...An(t)});class lr extends Pn{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(null!==this._cached)return this._cached;const e=this._def.shape(),t=an.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==cn.object){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.object,received:t.parsedType}),yn}const{status:t,ctx:n}=this._processInputParams(e),{shape:r,keys:i}=this._getCached(),s=[];if(!(this._def.catchall instanceof cr&&"strip"===this._def.unknownKeys))for(const e in n.data)i.includes(e)||s.push(e);const o=[];for(const e of i){const t=r[e],i=n.data[e];o.push({key:{status:"valid",value:e},value:t._parse(new kn(n,i,n.path,e)),alwaysSet:e in n.data})}if(this._def.catchall instanceof cr){const e=this._def.unknownKeys;if("passthrough"===e)for(const e of s)o.push({key:{status:"valid",value:e},value:{status:"valid",value:n.data[e]}});else if("strict"===e)s.length>0&&(gn(n,{code:hn.unrecognized_keys,keys:s}),t.dirty());else if("strip"!==e)throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const e=this._def.catchall;for(const t of s){const r=n.data[t];o.push({key:{status:"valid",value:t},value:e._parse(new kn(n,r,n.path,t)),alwaysSet:t in n.data})}}return n.common.async?Promise.resolve().then(async()=>{const e=[];for(const t of o){const n=await t.key,r=await t.value;e.push({key:n,value:r,alwaysSet:t.alwaysSet})}return e}).then(e=>mn.mergeObjectSync(t,e)):mn.mergeObjectSync(t,o)}get shape(){return this._def.shape()}strict(e){return new lr({...this._def,unknownKeys:"strict",...void 0!==e?{errorMap:(t,n)=>{const r=this._def.errorMap?.(t,n).message??n.defaultError;return"unrecognized_keys"===t.code?{message:Sn.errToObj(e).message??r}:{message:r}}}:{}})}strip(){return new lr({...this._def,unknownKeys:"strip"})}passthrough(){return new lr({...this._def,unknownKeys:"passthrough"})}extend(e){return new lr({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new lr({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Lr.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new lr({...this._def,catchall:e})}pick(e){const t={};for(const n of an.objectKeys(e))e[n]&&this.shape[n]&&(t[n]=this.shape[n]);return new lr({...this._def,shape:()=>t})}omit(e){const t={};for(const n of an.objectKeys(this.shape))e[n]||(t[n]=this.shape[n]);return new lr({...this._def,shape:()=>t})}deepPartial(){return fr(this)}partial(e){const t={};for(const n of an.objectKeys(this.shape)){const r=this.shape[n];e&&!e[n]?t[n]=r:t[n]=r.optional()}return new lr({...this._def,shape:()=>t})}required(e){const t={};for(const n of an.objectKeys(this.shape))if(e&&!e[n])t[n]=this.shape[n];else{let e=this.shape[n];for(;e instanceof Pr;)e=e._def.innerType;t[n]=e}return new lr({...this._def,shape:()=>t})}keyof(){return xr(an.objectKeys(this.shape))}}lr.create=(e,t)=>new lr({shape:()=>e,unknownKeys:"strip",catchall:cr.create(),typeName:Lr.ZodObject,...An(t)}),lr.strictCreate=(e,t)=>new lr({shape:()=>e,unknownKeys:"strict",catchall:cr.create(),typeName:Lr.ZodObject,...An(t)}),lr.lazycreate=(e,t)=>new lr({shape:e,unknownKeys:"strip",catchall:cr.create(),typeName:Lr.ZodObject,...An(t)});class pr extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;if(t.common.async)return Promise.all(n.map(async e=>{const n={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:n}),ctx:n}})).then(function(e){for(const t of e)if("valid"===t.result.status)return t.result;for(const n of e)if("dirty"===n.result.status)return t.common.issues.push(...n.ctx.common.issues),n.result;const n=e.map(e=>new fn(e.ctx.common.issues));return gn(t,{code:hn.invalid_union,unionErrors:n}),yn});{let e;const r=[];for(const i of n){const n={...t,common:{...t.common,issues:[]},parent:null},s=i._parseSync({data:t.data,path:t.path,parent:n});if("valid"===s.status)return s;"dirty"!==s.status||e||(e={result:s,ctx:n}),n.common.issues.length&&r.push(n.common.issues)}if(e)return t.common.issues.push(...e.ctx.common.issues),e.result;const i=r.map(e=>new fn(e));return gn(t,{code:hn.invalid_union,unionErrors:i}),yn}}get options(){return this._def.options}}function gr(e,t){const n=dn(e),r=dn(t);if(e===t)return{valid:!0,data:e};if(n===cn.object&&r===cn.object){const n=an.objectKeys(t),r=an.objectKeys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const n of r){const r=gr(e[n],t[n]);if(!r.valid)return{valid:!1};i[n]=r.data}return{valid:!0,data:i}}if(n===cn.array&&r===cn.array){if(e.length!==t.length)return{valid:!1};const n=[];for(let r=0;r<e.length;r++){const i=gr(e[r],t[r]);if(!i.valid)return{valid:!1};n.push(i.data)}return{valid:!0,data:n}}return n===cn.date&&r===cn.date&&+e===+t?{valid:!0,data:e}:{valid:!1}}pr.create=(e,t)=>new pr({options:e,typeName:Lr.ZodUnion,...An(t)});class mr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=(e,r)=>{if(vn(e)||vn(r))return yn;const i=gr(e.value,r.value);return i.valid?((bn(e)||bn(r))&&t.dirty(),{status:t.value,value:i.data}):(gn(n,{code:hn.invalid_intersection_types}),yn)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([e,t])=>r(e,t)):r(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}mr.create=(e,t,n)=>new mr({left:e,right:t,typeName:Lr.ZodIntersection,...An(n)});class yr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.array)return gn(n,{code:hn.invalid_type,expected:cn.array,received:n.parsedType}),yn;if(n.data.length<this._def.items.length)return gn(n,{code:hn.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),yn;!this._def.rest&&n.data.length>this._def.items.length&&(gn(n,{code:hn.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const r=[...n.data].map((e,t)=>{const r=this._def.items[t]||this._def.rest;return r?r._parse(new kn(n,e,n.path,t)):null}).filter(e=>!!e);return n.common.async?Promise.all(r).then(e=>mn.mergeArray(t,e)):mn.mergeArray(t,r)}get items(){return this._def.items}rest(e){return new yr({...this._def,rest:e})}}yr.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new yr({items:e,typeName:Lr.ZodTuple,rest:null,...An(t)})};class wr extends Pn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.object)return gn(n,{code:hn.invalid_type,expected:cn.object,received:n.parsedType}),yn;const r=[],i=this._def.keyType,s=this._def.valueType;for(const e in n.data)r.push({key:i._parse(new kn(n,e,n.path,e)),value:s._parse(new kn(n,n.data[e],n.path,e)),alwaysSet:e in n.data});return n.common.async?mn.mergeObjectAsync(t,r):mn.mergeObjectSync(t,r)}get element(){return this._def.valueType}static create(e,t,n){return new wr(t instanceof Pn?{keyType:e,valueType:t,typeName:Lr.ZodRecord,...An(n)}:{keyType:Jn.create(),valueType:e,typeName:Lr.ZodRecord,...An(t)})}}class _r extends Pn{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.map)return gn(n,{code:hn.invalid_type,expected:cn.map,received:n.parsedType}),yn;const r=this._def.keyType,i=this._def.valueType,s=[...n.data.entries()].map(([e,t],s)=>({key:r._parse(new kn(n,e,n.path,[s,"key"])),value:i._parse(new kn(n,t,n.path,[s,"value"]))}));if(n.common.async){const e=new Map;return Promise.resolve().then(async()=>{for(const n of s){const r=await n.key,i=await n.value;if("aborted"===r.status||"aborted"===i.status)return yn;"dirty"!==r.status&&"dirty"!==i.status||t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}})}{const e=new Map;for(const n of s){const r=n.key,i=n.value;if("aborted"===r.status||"aborted"===i.status)return yn;"dirty"!==r.status&&"dirty"!==i.status||t.dirty(),e.set(r.value,i.value)}return{status:t.value,value:e}}}}_r.create=(e,t,n)=>new _r({valueType:t,keyType:e,typeName:Lr.ZodMap,...An(n)});class vr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==cn.set)return gn(n,{code:hn.invalid_type,expected:cn.set,received:n.parsedType}),yn;const r=this._def;null!==r.minSize&&n.data.size<r.minSize.value&&(gn(n,{code:hn.too_small,minimum:r.minSize.value,type:"set",inclusive:!0,exact:!1,message:r.minSize.message}),t.dirty()),null!==r.maxSize&&n.data.size>r.maxSize.value&&(gn(n,{code:hn.too_big,maximum:r.maxSize.value,type:"set",inclusive:!0,exact:!1,message:r.maxSize.message}),t.dirty());const i=this._def.valueType;function s(e){const n=new Set;for(const r of e){if("aborted"===r.status)return yn;"dirty"===r.status&&t.dirty(),n.add(r.value)}return{status:t.value,value:n}}const o=[...n.data.values()].map((e,t)=>i._parse(new kn(n,e,n.path,t)));return n.common.async?Promise.all(o).then(e=>s(e)):s(o)}min(e,t){return new vr({...this._def,minSize:{value:e,message:Sn.toString(t)}})}max(e,t){return new vr({...this._def,maxSize:{value:e,message:Sn.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}vr.create=(e,t)=>new vr({valueType:e,minSize:null,maxSize:null,typeName:Lr.ZodSet,...An(t)});class br extends Pn{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}br.create=(e,t)=>new br({getter:e,typeName:Lr.ZodLazy,...An(t)});class Er extends Pn{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return gn(t,{received:t.data,code:hn.invalid_literal,expected:this._def.value}),yn}return{status:"valid",value:e.data}}get value(){return this._def.value}}function xr(e,t){return new Sr({values:e,typeName:Lr.ZodEnum,...An(t)})}Er.create=(e,t)=>new Er({value:e,typeName:Lr.ZodLiteral,...An(t)});class Sr extends Pn{_parse(e){if("string"!=typeof e.data){const t=this._getOrReturnCtx(e),n=this._def.values;return gn(t,{expected:an.joinValues(n),received:t.parsedType,code:hn.invalid_type}),yn}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return gn(t,{received:t.data,code:hn.invalid_enum_value,options:n}),yn}return _n(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Sr.create(e,{...this._def,...t})}exclude(e,t=this._def){return Sr.create(this.options.filter(t=>!e.includes(t)),{...this._def,...t})}}Sr.create=xr;class kr extends Pn{_parse(e){const t=an.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==cn.string&&n.parsedType!==cn.number){const e=an.objectValues(t);return gn(n,{expected:an.joinValues(e),received:n.parsedType,code:hn.invalid_type}),yn}if(this._cache||(this._cache=new Set(an.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const e=an.objectValues(t);return gn(n,{received:n.data,code:hn.invalid_enum_value,options:e}),yn}return _n(e.data)}get enum(){return this._def.values}}kr.create=(e,t)=>new kr({values:e,typeName:Lr.ZodNativeEnum,...An(t)});class Or extends Pn{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==cn.promise&&!1===t.common.async)return gn(t,{code:hn.invalid_type,expected:cn.promise,received:t.parsedType}),yn;const n=t.parsedType===cn.promise?t.data:Promise.resolve(t.data);return _n(n.then(e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Or.create=(e,t)=>new Or({type:e,typeName:Lr.ZodPromise,...An(t)});class Ar extends Pn{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Lr.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),r=this._def.effect||null,i={addIssue:e=>{gn(n,e),e.fatal?t.abort():t.dirty()},get path(){return n.path}};if(i.addIssue=i.addIssue.bind(i),"preprocess"===r.type){const e=r.transform(n.data,i);if(n.common.async)return Promise.resolve(e).then(async e=>{if("aborted"===t.value)return yn;const r=await this._def.schema._parseAsync({data:e,path:n.path,parent:n});return"aborted"===r.status?yn:"dirty"===r.status||"dirty"===t.value?wn(r.value):r});{if("aborted"===t.value)return yn;const r=this._def.schema._parseSync({data:e,path:n.path,parent:n});return"aborted"===r.status?yn:"dirty"===r.status||"dirty"===t.value?wn(r.value):r}}if("refinement"===r.type){const e=e=>{const t=r.refinement(e,i);if(n.common.async)return Promise.resolve(t);if(t instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return e};if(!1===n.common.async){const r=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===r.status?yn:("dirty"===r.status&&t.dirty(),e(r.value),{status:t.value,value:r.value})}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(n=>"aborted"===n.status?yn:("dirty"===n.status&&t.dirty(),e(n.value).then(()=>({status:t.value,value:n.value}))))}if("transform"===r.type){if(!1===n.common.async){const e=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!En(e))return yn;const s=r.transform(e.value,i);if(s instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:s}}return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(e=>En(e)?Promise.resolve(r.transform(e.value,i)).then(e=>({status:t.value,value:e})):yn)}an.assertNever(r)}}Ar.create=(e,t,n)=>new Ar({schema:e,typeName:Lr.ZodEffects,effect:t,...An(n)}),Ar.createWithPreprocess=(e,t,n)=>new Ar({schema:t,effect:{type:"preprocess",transform:e},typeName:Lr.ZodEffects,...An(n)});class Pr extends Pn{_parse(e){return this._getType(e)===cn.undefined?_n(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Pr.create=(e,t)=>new Pr({innerType:e,typeName:Lr.ZodOptional,...An(t)});class Tr extends Pn{_parse(e){return this._getType(e)===cn.null?_n(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Tr.create=(e,t)=>new Tr({innerType:e,typeName:Lr.ZodNullable,...An(t)});class Ir extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===cn.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}Ir.create=(e,t)=>new Ir({innerType:e,typeName:Lr.ZodDefault,defaultValue:"function"==typeof t.default?t.default:()=>t.default,...An(t)});class Nr extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},r=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return xn(r)?r.then(e=>({status:"valid",value:"valid"===e.status?e.value:this._def.catchValue({get error(){return new fn(n.common.issues)},input:n.data})})):{status:"valid",value:"valid"===r.status?r.value:this._def.catchValue({get error(){return new fn(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}Nr.create=(e,t)=>new Nr({innerType:e,typeName:Lr.ZodCatch,catchValue:"function"==typeof t.catch?t.catch:()=>t.catch,...An(t)});class Ur extends Pn{_parse(e){if(this._getType(e)!==cn.nan){const t=this._getOrReturnCtx(e);return gn(t,{code:hn.invalid_type,expected:cn.nan,received:t.parsedType}),yn}return{status:"valid",value:e.data}}}Ur.create=e=>new Ur({typeName:Lr.ZodNaN,...An(e)});class $r extends Pn{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class Cr extends Pn{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async){return(async()=>{const e=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?yn:"dirty"===e.status?(t.dirty(),wn(e.value)):this._def.out._parseAsync({data:e.value,path:n.path,parent:n})})()}{const e=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return"aborted"===e.status?yn:"dirty"===e.status?(t.dirty(),{status:"dirty",value:e.value}):this._def.out._parseSync({data:e.value,path:n.path,parent:n})}}static create(e,t){return new Cr({in:e,out:t,typeName:Lr.ZodPipeline})}}class Br extends Pn{_parse(e){const t=this._def.innerType._parse(e),n=e=>(En(e)&&(e.value=Object.freeze(e.value)),e);return xn(t)?t.then(e=>n(e)):n(t)}unwrap(){return this._def.innerType}}function Rr(e,t){const n="function"==typeof e?e(t):"string"==typeof e?{message:e}:e;return"string"==typeof n?{message:n}:n}var Lr;Br.create=(e,t)=>new Br({innerType:e,typeName:Lr.ZodReadonly,...An(t)}),function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"}(Lr||(Lr={}));const zr=Jn.create,jr=er.create,Hr=tr.create,Dr=nr.create,Fr=rr.create,Vr=or.create,Zr=ar.create,Kr=hr.create,Wr=lr.create,qr=pr.create,Mr=wr.create,Gr=br.create,Yr=Hr();Dr(),Fr();const Qr=jr().min(Number.MIN_SAFE_INTEGER).max(Number.MAX_SAFE_INTEGER).int(),Jr=((e,t={message:`Input not instance of ${e.name}`})=>function(e,t={},n){return e?ar.create().superRefine((r,i)=>{const s=e(r);if(s instanceof Promise)return s.then(e=>{if(!e){const e=Rr(t,r),s=e.fatal??n??!0;i.addIssue({code:"custom",...e,fatal:s})}});if(!s){const e=Rr(t,r),s=e.fatal??n??!0;i.addIssue({code:"custom",...e,fatal:s})}}):ar.create()}(t=>t instanceof e,t))(Uint8Array);zr(),Qr.min(5e8),Zr(),Qr.min(0).max(255),Qr.min(0).max(65535);const Xr=Qr.min(0).max(4294967295);jr().refine(e=>String(e).includes(".")).refine(e=>{const t=String(e).split(".").at(1);return void 0!==t&&t.length<=2});const ei=zr().regex(/^[0-9a-fA-F]*$/).refine(e=>e.length%2==0),ti=qr([zr(),jr(),Dr(),Vr()]),ni=Gr(()=>qr([ti,Kr(ni),Mr(ni)]));Jr.refine(e=>20===e.length);const ri=Jr.refine(e=>32===e.length),ii=Jr.refine(e=>33===e.length),si=Jr.refine(e=>64===e.length);ei.refine(e=>40===e.length);const oi=ei.refine(e=>64===e.length),ai=ei.refine(e=>66===e.length),ui=ei.refine(e=>128===e.length);qr([ei,Jr]);const ci=qr([oi,ri]);
13
13
  /*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */
14
- function di(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function hi(e,...t){if(!di(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 fi(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function li(e){if("function"!=typeof e)throw new Error("function expected");return!0}function pi(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function gi(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function mi(e){if(!Array.isArray(e))throw new Error("array expected")}function yi(e,t){if(!fi(!0,t))throw new Error(`${e}: array of strings expected`)}function wi(e,t){if(!fi(!1,t))throw new Error(`${e}: array of numbers expected`)}function vi(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function _i(e){const t="string"==typeof e?e.split(""):e,n=t.length;yi("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(mi(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(mi(t),t.map(t=>{pi("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function bi(e=""){return pi("join",e),{encode:t=>(yi("join.decode",t),t.join(e)),decode:t=>(pi("join.decode",t),t.split(e))}}function Ei(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(mi(e),!e.length)return[];let r=0;const i=[],s=Array.from(e,e=>{if(gi(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),o=s.length;for(;;){let e=0,a=!0;for(let i=r;i<o;i++){const o=s[i],u=t*e,c=u+o;if(!Number.isSafeInteger(c)||u/t!==e||c-o!==u)throw new Error("convertRadix: carry overflow");const d=c/n;e=c%n;const h=Math.floor(d);if(s[i]=h,!Number.isSafeInteger(h)||h*n+e!==c)throw new Error("convertRadix: carry overflow");a&&(h?a=!1:r=i)}if(i.push(e),a)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}qr([ai,ii]),qr([ui,si]),zr().regex(/^[1-9A-HJ-NP-Za-km-z]+$/),zr().regex(/^[a-zA-Z0-9+/]+={0,2}$/),zr().regex(/^[a-zA-Z0-9\-_]+={0,2}$/),zr().regex(/^[a-z]+1[023456789acdefghjklmnpqrstuvwxyz]+$/);const xi=(e,t)=>0===t?e:xi(t,e%t),Si=(e,t)=>e+(t-xi(e,t)),ki=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Oi(e,t,n,r){if(mi(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Si(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Si(t,n)}`);let i=0,s=0;const o=ki[t],a=ki[n]-1,u=[];for(const r of e){if(gi(r),r>=o)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(i=i<<t|r,s+t>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${t}`);for(s+=t;s>=n;s-=n)u.push((i>>s-n&a)>>>0);const e=ki[s];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-s&a,!r&&s>=t)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&u.push(i>>>0),u}function Ai(e,t=!1){if(gi(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Si(8,e)>32||Si(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!di(n))throw new Error("radix2.encode input should be Uint8Array");return Oi(Array.from(n),8,e,!t)},decode:n=>(wi("radix2.decode",n),Uint8Array.from(Oi(n,e,8,t)))}}function Pi(e){return li(e),function(...t){try{return e.apply(null,t)}catch(e){}}}const Ti=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)()?{encode:e=>(hi(e),e.toBase64()),decode:e=>(e=>{if(pi("base64",e),e.length>0&&!/^[A-Za-z0-9=+/]+$/.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:"base64",lastChunkHandling:"strict"})})(e)}:vi(Ai(6),_i("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),function(e,t="="){return gi(e),pi("padding",t),{encode(n){for(yi("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){yi("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}(6),bi("")),Ii=vi(Ai(6),_i("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),bi("")),Ni=(Ui="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",vi(function(e){return gi(e),{encode:t=>{if(!di(t))throw new Error("radix.encode input should be Uint8Array");return Ei(Array.from(t),256,e)},decode:t=>(wi("radix.decode",t),Uint8Array.from(Ei(t,e,256)))}}(58),_i(Ui),bi("")));var Ui;const $i=e=>{return vi((n=t=>e(e(t)),gi(t=4),li(n),{encode(e){if(!di(e))throw new Error("checksum.encode: input should be Uint8Array");const r=n(e).slice(0,t),i=new Uint8Array(e.length+t);return i.set(e),i.set(r,e.length),i},decode(e){if(!di(e))throw new Error("checksum.decode: input should be Uint8Array");const r=e.slice(0,-t),i=e.slice(-t),s=n(r).slice(0,t);for(let e=0;e<t;e++)if(s[e]!==i[e])throw new Error("Invalid checksum");return r}}),Ni);var t,n},Ci=vi(_i("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),bi("")),Bi=[996825010,642813549,513874426,1027748829,705979059];function Ri(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Bi.length;e++)1==(t>>e&1)&&(n^=Bi[e]);return n}function Li(e,t,n=1){const r=e.length;let i=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=Ri(i)^n>>5}i=Ri(i);for(let t=0;t<r;t++)i=Ri(i)^31&e.charCodeAt(t);for(let e of t)i=Ri(i)^e;for(let e=0;e<6;e++)i=Ri(i);return i^=n,Ci.encode(Oi([i%ki[30]],30,5,!1))}function zi(e){const t="bech32"===e?1:734539939,n=Ai(5),r=n.decode,i=n.encode,s=Pi(r);function o(e,n,r=90){pi("bech32.encode prefix",e),di(n)&&(n=Array.from(n)),wi("bech32.encode",n);const i=e.length;if(0===i)throw new TypeError(`Invalid prefix length ${i}`);const s=i+7+n.length;if(!1!==r&&s>r)throw new TypeError(`Length ${s} exceeds limit ${r}`);const o=e.toLowerCase(),a=Li(o,n,t);return`${o}1${Ci.encode(n)}${a}`}function a(e,n=90){pi("bech32.decode input",e);const r=e.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=i.lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=i.slice(0,s),a=i.slice(s+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const u=Ci.decode(a).slice(0,-6),c=Li(o,u,t);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${e}: expected "${c}"`);return{prefix:o,words:u}}return{encode:o,decode:a,encodeFromBytes:function(e,t){return o(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=a(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:Pi(a),fromWords:r,fromWordsUnsafe:s,toWords:i}}const ji=zi("bech32"),Hi=zi("bech32m"),Di={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},Fi=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()?{encode:e=>(hi(e),e.toHex()),decode:e=>(pi("hex",e),Uint8Array.fromHex(e))}:vi(Ai(4),_i("0123456789abcdef"),bi(""),(li(Vi=e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}),{encode:e=>e,decode:e=>Vi(e)}));var Vi,Zi,Ki,Wi,qi,Mi;function Gi(e){if("string"!=typeof e||0===e.length)throw new Error(`invalid prefix: ${String(e)}`)}function Yi(e){if(!Array.isArray(e)||!e.every(e=>"number"==typeof e))throw new Error(`invalid words: ${String(e)}`)}!function(e){e.encode=e=>(b.is_uint(e),$i(ee).encode(e)),e.decode=e=>(b.is_base58(e),$i(ee).decode(e))}(Zi||(Zi={})),function(e){e.encode=e=>(b.is_uint(e),Ti.encode(e)),e.decode=e=>(b.is_base64(e),Ti.decode(e))}(Ki||(Ki={})),function(e){e.encode=e=>(b.is_uint(e),Ii.encode(e)),e.decode=e=>(b.is_b64url(e),Ii.decode(e))}(Wi||(Wi={})),function(e){e.to_words=ji.toWords,e.to_bytes=ji.fromWords,e.encode=(e,t,n=!1)=>(Gi(e),Yi(t),ji.encode(e,t,n)),e.decode=(e,t=!1)=>(b.is_bech32(e),ji.decode(e,t))}(qi||(qi={})),function(e){e.to_words=Hi.toWords,e.to_bytes=Hi.fromWords,e.encode=(e,t,n=!1)=>(Gi(e),Yi(t),Hi.encode(e,t,n)),e.decode=(e,t=!1)=>(b.is_bech32(e),Hi.decode(e,t))}(Mi||(Mi={}));const Qi={TXID:"00".repeat(32),VOUT:4294967295},Ji={LOCKTIME:0,SEQUENCE:4294967295,VERSION:2},Xi=[192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,102,126,128,132,150,152,186,188,190],es={p2pkh:/^76a914[0-9a-f]{40}88ac$/i,p2sh:/^a914[0-9a-f]{40}87$/i,p2wpkh:/^0014[0-9a-f]{40}$/i,p2wsh:/^0020[0-9a-f]{64}$/i,p2tr:/^5120[0-9a-f]{64}$/i,opreturn:/^6a[0-9a-f]{2,}$/i},ts=[1,2,3,129,130,131],ns=[0,...ts];var rs=Object.freeze({__proto__:null,COINBASE:Qi,DEFAULT:Ji,LOCK_SCRIPT_REGEX:es,SCRIPT_INT_KEY:"",SIGHASH_DEFAULT:1,SIGHASH_SEGWIT:ts,SIGHASH_TAPROOT:ns,TAPLEAF_DEFAULT_VERSION:192,TAPLEAF_VERSIONS:Xi,TX_SIZE:{GLOBAL_BASE:8,GLOBAL_WIT:10,TXIN_BASE:40,TXOUT_BASE:8}});const is={prevouts:[],segwit:!0};function ss(e,t={}){const n={...is,...t};b.is_bytes(e,"txbytes must be hex or a unit array");const r=new y(e),i=function(e){return e.read(4).reverse().to_num()}(r),s=!!n.segwit&&function(e){const[t,n]=[...e.peek(2)];if(0===t){if(e.read(2),1===n)return!0;throw new Error(`Invalid witness flag: ${n}`)}return!1}(r),o=function(e,t){const n=[],r=e.varint();for(let i=0;i<r;i++){const r=os(e,t.at(i));n.push(r)}return n}(r,n.prevouts),a=function(e){const t=[],n=e.varint();for(let r=0;r<n;r++)try{t.push(as(e))}catch(e){throw new Error(`failed to decode output: ${r}: ${v(e)}`)}return t}(r);if(s)for(const e of o)e.witness=us(r);const u=function(e){return e.read(4).reverse().to_num()}(r);return{version:i,vin:o,vout:a,locktime:u}}function os(e,t=null){const n=e.read(32).reverse().hex,r=e.read(4).reverse().num,i=cs(e,!0),s=e.read(4).reverse().num,o=[];return n===Qi.TXID&&r===Qi.VOUT?{coinbase:i,prevout:null,script_sig:null,sequence:s,txid:n,vout:r,witness:o}:{coinbase:null,prevout:t,script_sig:i,sequence:s,txid:n,vout:r,witness:o}}function as(e){const t=e.read(8).reverse().big,n=cs(e,!0);return b.exists(n,"failed to decode script_pk"),{value:t,script_pk:n}}function us(e){const t=[],n=e.varint();for(let r=0;r<n;r++){const n=cs(e,!0);if(null===n)throw new Error("failed to decode witness element: "+r);t.push(n)}return t}function cs(e,t){const n=!0===t?e.varint("le"):e.size;return n>0?e.read(n).hex:null}const ds=qr([Kr(ci),ci]),hs=Wr({pubkey:ci,leaves:ds.array().optional(),target:ci.optional(),version:Xr.optional()});var fs=Object.freeze({__proto__:null,config:hs,taptree:ds});const ls=Yr.max(2100000000000000n),ps=Wr({value:ls,script_pk:ei}),gs=Wr({coinbase:ei.nullable(),txid:oi,vout:Xr,prevout:ps.nullable(),script_sig:ei.nullable(),sequence:Xr,witness:Kr(ei)}),ms=Wr({version:Xr,vin:Kr(gs),vout:Kr(ps),locktime:Xr}),ys=gs.extend({coinbase:ei.nullable().optional(),prevout:ps.nullable().optional(),script_sig:ei.nullable().optional(),sequence:Xr.optional(),witness:Kr(ei).optional()}),ws=Wr({version:Xr.optional(),vin:Kr(ys).default([]),vout:Kr(ps).default([]),locktime:Xr.optional()});var vs=Object.freeze({__proto__:null,sats:ls,tx_data:ms,tx_input:gs,tx_output:ps,tx_template:ws,vin_template:ys}),_s=Object.freeze({__proto__:null,taproot:fs,tx:vs});function bs(e){ws.parse(e)}function Es(e){ps.parse(e)}function xs(e){ys.parse(e)}function Ss(e){xs(e),b.exists(e.coinbase,"coinbase is required");const t=e.coinbase,n=e.sequence??Ji.SEQUENCE,r=Qi.TXID,i=Qi.VOUT;return{coinbase:t,prevout:null,script_sig:null,sequence:n,witness:e.witness??[],txid:r,vout:i}}function ks(e){xs(e),b.exists(e.prevout,"prevout is required");const t=e.prevout,n=e.script_sig??null,r=e.sequence??Ji.SEQUENCE,i=e.witness??[];return{...e,coinbase:null,prevout:t,script_sig:n,sequence:r,witness:i}}function Os(e){xs(e),b.exists(e.txid,"txid is required"),b.exists(e.vout,"vout is required");const t=e.coinbase??null,n=e.prevout??null,r=e.script_sig??null,i=e.sequence??Ji.SEQUENCE,s=e.witness??[];return null!==t?Ss(e):null!==n?ks(e):{...e,coinbase:t,prevout:n,script_sig:r,sequence:i,witness:s}}function As(e){Es(e);const{script_pk:t,value:n}=e;return{script_pk:t,value:BigInt(n)}}function Ps(e){bs(e);const{vin:t=[],vout:n=[]}=e,r=e.locktime??Ji.LOCKTIME,i=e.version??Ji.VERSION;return{locktime:r,vin:t.map(e=>Os(e)),vout:n.map(e=>As(e)),version:i}}function Ts(e){return"string"==typeof e?ss(e):(bs(e),Ps(e))}function Is(e,t){let{txindex:n,txinput:r}=t??{};if(void 0!==n){if(n>=e.vin.length)throw new Error("Input index out of bounds: "+String(n));r=e.vin.at(n)}return b.ok(void 0!==r),r}function Ns(e){return 0!==e?m.num(e,1).hex:""}const Us={OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_SUCCESS80:80,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_SUCCESS98:98,OP_IF:99,OP_NOTIF:100,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_SUCCESS126:126,OP_SUCCESS127:127,OP_SUCCESS128:128,OP_SUCCESS129:129,OP_SIZE:130,OP_SUCCESS131:131,OP_SUCCESS132:132,OP_SUCCESS133:133,OP_SUCCESS134:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_SUCCESS137:137,OP_SUCCESS138:138,OP_1ADD:139,OP_1SUB:140,OP_SUCCESS141:141,OP_SUCCESS142:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_SUCCESS149:149,OP_SUCCESS150:150,OP_SUCCESS151:151,OP_SUCCESS152:152,OP_SUCCESS153: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_CHECKLOCKTIMEVERIFY:177,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};function $s(e){if(e>186&&e<255)return"OP_SUCCESS"+String(e);for(const[t,n]of Object.entries(Us))if(n===e)return t;throw new Error("OPCODE not found:"+String(e))}function Cs(e){for(const[t,n]of Object.entries(Us))if(t===e)return Number(n);throw new Error("OPCODE not found:"+e)}function Bs(e){switch(!0){case 0===e:return"opcode";case e>=1&&e<=75:return"varint";case 76===e:return"pushdata1";case 77===e:return"pushdata2";case 78===e:return"pushdata4";case e<=254:return"opcode";default:throw new Error(`Invalid word range: ${e}`)}}function Rs(e){switch(!0){case"number"!=typeof e:return!1;case 0===e:return!0;case[].includes(e):return!1;case 75<e&&e<254:return!0;default:return!1}}const Ls=520;function zs(e,t=!1){if(0===e.length)return"00";const n=[];for(const t of e)n.push(js(t));const r=m.join(n);return t?r.prepend(m.varint(r.length,"le")).hex:r.hex}function js(e){let t;if("string"==typeof e){if(e.startsWith("OP_")){const t=Cs(e);return m.num(t,1)}t=m.is_hex(e)?m.hex(e):m.str(e)}else if("number"==typeof e)t=m.num(e);else{if(!(e instanceof Uint8Array))throw new Error("invalid word type:"+typeof e);t=new m(e)}if(1===t.length&&t[0]<=16)0!==t[0]&&(t[0]+=80);else if(t.length>Ls){let e;e=Hs(t),e=e.map(e=>Ds(e)),t=m.join(e)}else t=Ds(t);return t}function Hs(e){const t=[],n=new y(e);for(;n.size>Ls;)t.push(n.read(Ls));return t.push(n.read(n.size)),t}function Ds(e){const t=Fs(e.length);return m.join([t,e])}function Fs(e){const t=m.num(76,1),n=m.num(77,1);switch(!0){case e<=75:return m.num(e);case e>75&&e<256:return m.join([t,m.num(e,1,"le")]);case e>=256&&e<=Ls:return m.join([n,m.num(e,2,"le")]);default:throw new Error("Invalid word size:"+e.toString())}}function Vs(e){const t=new y(e),n=[],r=t.size;let i,s,o,a=0;for(;a<r;)switch(i=t.read(1).num,s=Bs(i),a++,s){case"varint":n.push(t.read(i).hex),a+=i;break;case"pushdata1":o=t.read(1).reverse().num,n.push(t.read(o).hex),a+=o+1;break;case"pushdata2":o=t.read(2).reverse().num,n.push(t.read(o).hex),a+=o+2;break;case"pushdata4":o=t.read(4).reverse().num,n.push(t.read(o).hex),a+=o+4;break;case"opcode":if(!Rs(i))throw new Error(`Invalid OPCODE: ${i}`);n.push($s(i));break;default:throw new Error(`Word type undefined: ${i}`)}return n}function Zs(e){try{return Vs(e).length>0}catch{return!1}}function Ks(e){return m.bytes(e).prefix_varint("le").hex}function Ws(e){return[...("string"==typeof e?e:m.bytes(e).hex).matchAll(/20([0-9a-f]{64})(ac|ad|ba)/gi)].map(e=>e[1])}var qs;!function(e){e.prefix_size=Ks,e.decode=Vs,e.encode=zs,e.is_valid=Zs,e.get_pubkeys=Ws,e.OPCODES=Us}(qs||(qs={}));var Ms=Object.freeze({__proto__:null,OPCODE_MAP:Us,get ScriptUtil(){return qs},decode_script:Vs,encode_script:zs,encode_script_word:js,get_asm_code:Cs,get_op_code:$s,get_op_type:Bs,get_size_varint:Fs,is_valid_op:Rs,is_valid_script:Zs,parse_script_pubkeys:Ws,prefix_script_size:Ks,prefix_word_size:Ds,split_script_word:Hs});function Gs(e,t=!0){const n=Ts(e),{version:r,vin:i,vout:s,locktime:o}=n,a=[Ys(r)];if(t&&a.push(m.hex("0001")),a.push(eo(i)),a.push(ro(s)),t)for(const e of i)a.push(so(e.witness));return a.push(oo(o)),m.join(a)}function Ys(e){return m.num(e,4).reverse()}function Qs(e){return m.hex(e,32).reverse()}function Js(e){return m.num(e,4).reverse()}function Xs(e){return m.num(e,4).reverse()}function eo(e){const t=[m.varint(e.length,"le")];for(const n of e)t.push(to(n));return m.join(t)}function to(e){return null!==e.coinbase?m.join([Qs(Qi.TXID),Js(Qi.VOUT),ao(e.coinbase),Xs(e.sequence)]):m.join([Qs(e.txid),Js(e.vout),ao(e.script_sig),Xs(e.sequence)])}function no(e){return m.big(e,8).reverse()}function ro(e){const t=[m.varint(e.length,"le")];for(const n of e)t.push(io(n));return m.join(t)}function io(e){const{value:t,script_pk:n}=e;return m.join([no(t),ao(n)])}function so(e){const t=[m.varint(e.length)];for(const n of e)t.push(ao(n));return m.join(t)}function oo(e){return m.num(e,4).reverse()}function ao(e){return null!==e?(b.is_hex(e),m.hex(e).prefix_varint("le")):m.hex("00")}function uo(e){return e.startsWith("6a")}function co(e){return{type:ho(e.script_pk),version:fo(e.script_pk)}}function ho(e){for(const[t,n]of Object.entries(es))if(n.test(e))return t;return"unknown"}function fo(e){switch(e.slice(0,4)){case"0014":return 0;case"5120":return 1;default:return null}}function lo(e){return sn(Gs(Ts(e),!1)).reverse().hex}function po(e){return sn(Gs(Ts(e),!0)).reverse().hex}function go(e){const t=Ts(e),n=t.vin.reduce((e,t)=>e+(t.prevout?.value??0n),0n),r=t.vout.reduce((e,t)=>e+t.value,0n);return{fees:n>r?n-r:0n,vin:n,vout:r}}function mo(e){const t=Ts(e),n=Gs(t,!1).length,r=Gs(t,!0).length,i=3*n+r,s=i%4>0?1:0;return{base:n,real:r,vsize:Math.floor(i/4)+s,weight:i}}function yo(e){return to(e).length}function wo(e){return io(e).length}var vo=Object.freeze({__proto__:null,assert_has_prevouts:function(e){if(e.some(e=>null===e.prevout))throw new Error("transaction missing prevouts")},assert_tx_data:function(e){ms.parse(e)},assert_tx_input:function(e){gs.parse(e)},assert_tx_output:Es,assert_tx_template:bs,assert_vin_template:xs,create_coinbase_input:Ss,create_spend_input:ks,create_tx:Ps,create_tx_input:Os,create_tx_output:As,decode_tx:ss,encode_script_data:ao,encode_tx:Gs,encode_tx_inputs:eo,encode_tx_locktime:oo,encode_tx_outputs:ro,encode_tx_version:Ys,encode_tx_vout:io,encode_txin_sequence:Xs,encode_txin_txid:Qs,encode_txin_vout:Js,encode_vin:to,encode_vin_witness:so,encode_vout_value:no,get_segwit_size:function(e){return 2+e.filter(e=>e.witness.length>0).map(e=>e.witness).reduce((e,t)=>e+so(t).length,0)},get_tx_value:go,get_txhash:po,get_txid:lo,get_txin_size:yo,get_txout_size:wo,get_txsize:mo,get_vin_size:function(e){return eo(e).length},get_vout_info:co,get_vout_size:function(e){return ro(e).length},get_vout_type:ho,get_vout_version:fo,get_vsize:function(e){const t=m.bytes(e).length,n=t%4>0?1:0;return Math.floor(t/4)+n},is_return_script:uo,parse_tx:Ts,read_script:cs});function _o(e,t={}){const{sigflag:n=1,txindex:r}=t,i=Ts(e),s=!(128&~n),o=n%128;if(!ts.includes(o))throw new Error("Invalid hash type: "+String(n));const{version:a,vin:u,vout:c,locktime:d}=i,h=Is(i,t),{txid:f,vout:l,prevout:p,sequence:g}=h,{value:y}=p??{};if(void 0===y)throw new Error("Prevout value is empty!");let{pubkey:w,script:v}=t;if(void 0===v&&void 0!==w){const e=nn(w).hex;v=`76a914${String(e)}88ac`}if(void 0===v)throw new Error("No pubkey / script has been set!");if(Vs(v).includes("OP_CODESEPARATOR"))throw new Error("This library does not currently support the use of OP_CODESEPARATOR in segwit scripts.");const _=[Ys(a),bo(u,s),Eo(u,o,s),Qs(f),Js(l),Ks(v),no(y),Xs(g),xo(c,o,r),oo(d),m.num(n,4).reverse()];return sn(m.join(_))}function bo(e,t){if(!0===t)return m.num(0,32);const n=[];for(const{txid:t,vout:r}of e)n.push(Qs(t)),n.push(Js(r));return sn(m.join(n))}function Eo(e,t,n){if(n||1!==t)return m.num(0,32);const r=[];for(const{sequence:t}of e)r.push(Xs(t));return sn(m.join(r))}function xo(e,t,n){const r=[];if(1===t){for(const{value:t,script_pk:n}of e)r.push(no(t)),r.push(Ks(n));return sn(m.join(r))}if(3===t&&(b.ok(void 0!==n),n<e.length)){const{value:t,script_pk:i}=e[n];return r.push(no(t)),r.push(Ks(i)),sn(m.join(r))}return m.num(0,32)}function So(e,t=192){return ko(Ks(e),t)}function ko(e,t=192){return on("TapLeaf",Ao(t),e)}function Oo(e,t){return t<e&&([e,t]=[t,e]),on("TapBranch",e,t)}function Ao(e=192){return 254&e}function Po(e,t=new Uint8Array){return b.size(e,32),on("TapTweak",e,t)}function To(e,t={}){const{script:n,txindex:r,sigflag:i=0,extflag:s=0,key_version:o=0,separator_pos:a=4294967295}=t,u=Ts(e),{version:c,vin:d,vout:h,locktime:f}=u,l=Is(u,t),{txid:p,vout:g,sequence:y,witness:w=[]}=l;if(!ns.includes(i))throw new Error("Invalid hash type: "+String(i));if(s<0||s>127)throw new Error("Extention flag out of range: "+String(s));let{extension:v}=t;void 0!==n&&(v=So(n).hex);const _=!(128&~i),E=function(e){if(void 0===e)return;if(e.length<2)return;const t=e.at(-1);if("string"==typeof t&&t.startsWith("50")){return rn(m.hex(t).prefix_varint("be"))}return}(w),x=2*(s+(void 0!==v?1:0))+(void 0!==E?1:0),S=[on("TapSighash"),m.num(0,1),m.num(i,1),Ys(c),oo(f)];if(!_){const e=d.map(e=>Ro(e));S.push(Io(d),Uo(e),$o(e),No(d))}if(((3&i)<2||(3&i)>3)&&S.push(Co(h)),S.push(m.num(x,1)),_){const{value:e,script_pk:t}=Ro(l);S.push(Qs(p),Js(g),no(e),Ks(t),Xs(y))}else b.ok("number"==typeof r),S.push(m.num(r,4).reverse());return void 0!==E&&S.push(E),3&~i||(b.ok("number"==typeof r),S.push(Bo(h[r]))),void 0!==v&&S.push(m.bytes(v),m.num(o),m.num(a,4)),rn(m.join(S))}function Io(e){const t=[];for(const{txid:n,vout:r}of e)t.push(Qs(n)),t.push(Js(r));return rn(m.join(t))}function No(e){const t=[];for(const{sequence:n}of e)t.push(Xs(n));return rn(m.join(t))}function Uo(e){const t=[];for(const{value:n}of e)t.push(no(n));return rn(m.join(t))}function $o(e){const t=[];for(const{script_pk:n}of e)t.push(Ks(n));return rn(m.join(t))}function Co(e){const t=[];for(const{value:n,script_pk:r}of e)t.push(no(n)),t.push(Ks(r));return rn(m.join(t))}function Bo(e){return rn(no(e.value),Ks(e.script_pk))}function Ro(e){if(null===e.prevout)throw new Error("Prevout data missing for input: "+String(e.txid));return e.prevout}function Lo(e,t,n){return Lt(e,_o(Ts(t),n)).hex+Ns(n.sigflag??1)}function zo(e,t,n){return zt(e,To(Ts(t),n)).hex+Ns(n.sigflag??0)}const jo=5e8;var Ho,Do;function Fo(e){switch(e.type){case"timelock":return b.ok(e.stamp>=jo,"Invalid timestamp"),e.stamp;case"heightlock":return b.ok(e.height>0,"height must be greater than 0"),b.ok(e.height<jo,"invalid block height"),e.height;default:throw new Error("Invalid locktime type")}}function Vo(e){return isNaN(e)||e<=0?null:e<jo?{type:"heightlock",height:e}:{type:"timelock",stamp:e}}function Zo(e,t=0){return`${e}i${t}`}function Ko(e){qo(e);const[t,n]=e.split("i");return{txid:t,order:parseInt(n)}}function Wo(e){return null!==e.match(/^[a-f0-9]{64}i\d+$/)}function qo(e){if(!Wo(e))throw new Error(`invalid inscription id: ${e}`)}function Mo(e,t){return`${e}:${t}`}function Go(e){Qo(e);const[t,n]=e.split(":");return{block_height:parseInt(t),block_index:parseInt(n)}}function Yo(e){return null!==e.match(/^\d+:\d+$/)}function Qo(e){if(!Yo(e))throw new Error(`invalid rune id: ${e}`)}function Jo(e,t){return`${e}:${t}`}function Xo(e){ta(e);const[t,n]=e.split(":");return{txid:t,vout:parseInt(n)}}function ea(e){return null!==e.match(/^[a-f0-9]{64}:[0-9]+$/)}function ta(e){if(!ea(e))throw new Error(`invalid outpoint: ${e}`)}!function(e){e.encode=Fo,e.decode=Vo}(Ho||(Ho={})),function(e){e.outpoint={encode:Jo,decode:Xo,verify:ea,assert:ta},e.record_id={encode:Zo,decode:Ko,verify:Wo,assert:qo},e.rune_id={encode:Mo,decode:Go,verify:Yo,assert:Qo}}(Do||(Do={}));const na=BigInt(0),ra=BigInt(1),ia=BigInt(26);var sa;function oa(e){const t=function(e){const t=Vs(e),n=t.findIndex(e=>"OP_0"===e);b.ok(-1!==n,"inscription envelope not found");const r=[];for(let e=n;e<t.length;e++){b.ok("OP_IF"===t[e+1],"OP_IF missing from envelope"),b.ok("6f7264"===t[e+2],"magic bytes missing from envelope");const n=t.findIndex(e=>"OP_ENDIF"===e);b.ok(-1!==n,"inscription envelope missing END_IF statement");const i=t.slice(e+3,n);r.push(i),e+=n}return r}(e);return t.map(ca)}function aa(e){return e.map(ua).join("")}function ua(e){let t=["OP_0","OP_IF","6f7264"];if("string"==typeof e.delegate){const n=da(e.delegate);t.push("OP_11",n)}if("string"==typeof e.ref&&t.push("OP_WITHIN",e.ref),"string"==typeof e.parent){const n=da(e.parent);t.push("OP_3",n)}if("number"==typeof e.opcode){const n=fa(e.opcode);t.push("OP_NOP",n)}if("number"==typeof e.pointer){const n=fa(e.pointer);t.push("OP_2",n)}if("string"==typeof e.rune){const n=function(e){const t=e.toUpperCase();let n=na;for(const e of t)e>="A"&&e<="Z"&&(n=n*ia+BigInt(e.charCodeAt(0)-("A".charCodeAt(0)-1)));return n-=ra,m.big(n).reverse().hex}(e.rune);t.push("OP_13",n)}if("string"==typeof e.mimetype){const n=function(e){return m.str(e).hex}(e.mimetype);t.push("OP_1",n)}if("string"==typeof e.content){const n=function(e){const t=m.is_hex(e)?m.hex(e):m.str(e),n=new y(t),r=[];for(;n.size>0;)if(n.size>520){const e=n.read(520);r.push(e.hex)}else{const e=n.read(n.size);r.push(e.hex)}return r}(e.content);t.push("OP_0",...n)}return t.push("OP_ENDIF"),zs(t)}function ca(e){const t={};for(let n=0;n<e.length;n++)switch(e[n]){case"OP_1":t.mimetype=pa(e[n+1]),n+=1;break;case"OP_2":t.pointer=la(e[n+1]),n+=1;break;case"OP_3":t.parent=ha(e[n+1]),n+=1;break;case"OP_11":t.delegate=ha(e[n+1]),n+=1;break;case"OP_13":t.rune=ma(e[n+1]),n+=1;break;case"OP_WITHIN":t.ref=e[n+1],n+=1;break;case"OP_NOP":t.opcode=la(e[n+1]),n+=1;break;case"OP_0":return t.content=ga(e.slice(n+1)),t}return t}function da(e){b.ok(e.includes("i"),"identifier must include an index");const t=e.split("i"),n=m.hex(t[0]),r=Number(t[1]),i=n.reverse().hex;return 0!==r?i+m.num(r).hex:i}function ha(e){const t=m.hex(e),n=t.at(-1)??0;return t.slice(0,-1).reverse().hex+"i"+String(n)}function fa(e){return m.num(e).reverse().hex}function la(e){return m.hex(e).reverse().num}function pa(e){return m.hex(e).str}function ga(e,t="hex"){const n=m.join(e);return"hex"===t?n.hex:n.str}function ma(e){let t=m.hex(e).reverse().big;t+=ra;let n="";for(;t>na;){const e=t%ia;if(e===na)n="Z"+n,t=t/ia-ra;else{const r=Number(e)+"A".charCodeAt(0)-1;n=String.fromCharCode(r)+n,t/=ia}}return n}!function(e){e.encode=aa,e.decode=oa}(sa||(sa={}));const ya=4194304,wa=65535,va=65535;var _a;function ba(e){if("height"===e.mode){return(function(e){if(void 0===e||!Number.isInteger(e)||e<0||e>va)throw new Error("Heightlock value must be an integer between 0 and 65535");return e}(e.height)&wa)>>>0}if("stamp"===e.mode){const t=function(e){if(void 0===e||!Number.isInteger(e))throw new Error("timestamp must be a number");const t=Math.floor(e/512);if(!Number.isInteger(t)||t<0||t>va)throw new Error("timelock value must be an integer between 0 and 65535 (in 512-second increments)");return t}(e.stamp);return(ya|t&wa)>>>0}throw new Error("invalid timelock mode: "+e.mode)}function Ea(e){const t=function(e){const t="string"==typeof e?parseInt(e,16):e;if(!Number.isInteger(t)||t<0||t>4294967295)throw new Error(`invalid sequence value: ${t}`);return t}(e);if(2147483648&t)return null;const n=t&wa;if(t&ya){const e=512*n;if(e>4294967295)throw new Error("Decoded timestamp exceeds 32-bit limit");return{mode:"stamp",stamp:e}}if(n>va)throw new Error("Decoded height exceeds maximum");return{mode:"height",height:n}}!function(e){e.encode=ba,e.decode=Ea}(_a||(_a={}));var xa=Object.freeze({__proto__:null,get LocktimeUtil(){return Ho},get RefEncoder(){return Do},get ScribeEncoder(){return sa},get SequenceUtil(){return _a},decode_inscription:oa,decode_locktime:Vo,decode_sequence:Ea,encode_inscription:aa,encode_locktime:Fo,encode_sequence:ba});class Sa{constructor(e){this._info=co(e),this._size=wo(e),this._txout=e}get data(){return{script_pk:this.script_pk,size:this.size,type:this.type,value:this.value,version:this.version}}get script_pk(){return{hex:this._txout.script_pk,asm:Vs(this._txout.script_pk)}}get size(){return this._size}get type(){return this._info.type}get value(){return this._txout.value}get version(){return this._info.version}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}}function ka(e){const t=e.map(e=>m.bytes(e)),n=function(e){let t=e.at(-1);return e.length>1&&t instanceof Uint8Array&&80===t[0]?new m(t).hex:null}(t);null!==n&&t.pop();const r=function(e){let t=e.at(-1);return e.length>1&&t instanceof Uint8Array&&t.length>32&&Xi.includes(254&t[0])?new m(t).hex:null}(t);null!==r&&t.pop();const i=function(e,t){let n=e.at(0),r=e.at(1),i=e.at(-1);return null!==t&&void 0!==i?"p2tr-ts":2===e.length&&void 0!==n&&void 0!==r&&n.length>=64&&33===r.length?"p2w-pkh":1===e.length&&void 0!==n&&64===n.length?"p2tr-pk":e.length>1&&void 0!==i&&Zs(i)?"p2w-sh":"unknown"}(t,r),s=function(e){return e.startsWith("p2tr")?1:e.startsWith("p2w")?0:null}(i),o=function(e,t){let n;switch(t){case"p2tr-ts":n=e.at(-1);case"p2w-sh":n=e.at(-1)}return void 0!==n?new m(n).hex:null}(t,i);null!==o&&t.pop();return{annex:n,cblock:r,params:t.map(e=>e.hex),script:o,type:i,version:s}}function Oa(e){const t=e.map(e=>m.bytes(e)).reduce((e,t)=>e+t.length,0);return{size:t,vsize:Math.ceil(1+t/4)}}var Aa=Object.freeze({__proto__:null,get_witness_size:Oa,parse_witness_data:ka});class Pa{constructor(e){this._data=e.map(e=>m.bytes(e)),this._meta=ka(e),this._size=Oa(e)}get annex(){return this._meta.annex}get cblock(){return this._meta.cblock}get data(){return{annex:this.annex,cblock:this.cblock,params:this.params,script:this.script,size:this.size,stack:this.stack,type:this.type,version:this.version,vsize:this.vsize}}get params(){return this._meta.params}get script(){return null===this._meta.script?null:{hex:this._meta.script,asm:Vs(this._meta.script)}}get size(){return this._size.size}get stack(){return this._data.map(e=>e.hex)}get type(){return this._meta.type}get version(){return this._meta.version}get vsize(){return this._size.vsize}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}}class Ta{constructor(e){this._size=yo(e),this._txin=e,this._witness=e.witness.length>0?new Pa(e.witness):null}get coinbase(){return this._txin.coinbase}get data(){return{coinbase:this.coinbase,prevout:this.prevout?.data??null,script_sig:this.script_sig,sequence:this.sequence,size:this.size,txid:this.txid,vout:this.vout,witness:this.witness?.data??null}}get has_prevout(){return null!==this._txin.prevout}get is_coinbase(){return null!==this._txin.coinbase}get prevout(){return this._txin.prevout?new Sa(this._txin.prevout):null}get script_sig(){return null===this._txin.script_sig?null:{asm:Vs(this._txin.script_sig),hex:this._txin.script_sig}}get sequence(){return{hex:Xs(this._txin.sequence).hex,data:_a.decode(this._txin.sequence),value:this._txin.sequence}}get size(){return this._size}get txid(){return this._txin.txid}get vout(){return this._txin.vout}get witness(){return this._witness}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}}const Ia={base58:/^[13mn2][a-km-zA-HJ-NP-Z1-9]{25,34}$/,bech32:/^(bc|tb|bcrt)1q[ac-hj-np-z02-9]{6,87}$/,bech32m:/^(bc|tb|bcrt)1p[ac-hj-np-z02-9]{6,87}$/},Na=0,Ua=1;function $a(e){const t=function(e){for(const[t,n]of Object.entries(Ia))if(n.test(e))return t;return null}(e);if(null===t)throw new Error("unrecognized address format: "+t);if("base58"===t)return function(e){const t=Zi.decode(e),n=t.slice(1),r=t[0];return{data:n,format:"base58",version:r}}(e);if("bech32"===t)return function(e){const{prefix:t,words:n}=qi.decode(e),[r,...i]=n;b.ok(r===Na,"bech32 version mismatch");return{data:qi.to_bytes(i),format:"bech32",prefix:t,version:r}}(e);if("bech32m"===t)return function(e){const{prefix:t,words:n}=Mi.decode(e),[r,...i]=n;b.ok(r===Ua,"bech32m version mismatch");return{data:Mi.to_bytes(i),format:"bech32m",prefix:t,version:r}}(e);throw new Error("unable to find a matching address configuration")}function Ca(e){if("base58"===e.format)return function(e){b.ok("base58"===e.format,"encoding mismatch"),b.exists(e.version,"must specify a version");const t=m.join([e.version,e.data]);return Zi.encode(t)}(e);if("bech32"===e.format)return function(e){b.ok("bech32"===e.format,"encoding mismatch"),b.exists(e.prefix,"prefix is required");const t=m.bytes(e.data),n=qi.to_words(t);return qi.encode(e.prefix,[Na,...n])}(e);if("bech32m"===e.format)return function(e){b.ok("bech32m"===e.format,"encoding mismatch"),b.exists(e.prefix,"prefix is required");const t=m.bytes(e.data),n=Mi.to_words(t);return Mi.encode(e.prefix,[Ua,...n])}(e);throw new Error("unrecognized encoding format: "+e.format)}const Ba=[["1","p2pkh","main",20,"base58",0],["3","p2sh","main",20,"base58",5],["m","p2pkh","testnet",20,"base58",111],["n","p2pkh","testnet",20,"base58",111],["2","p2sh","testnet",20,"base58",196],["m","p2pkh","regtest",20,"base58",111],["n","p2pkh","regtest",20,"base58",111],["2","p2sh","regtest",20,"base58",196],["bc","p2w-pkh","main",20,"bech32",0],["tb","p2w-pkh","testnet",20,"bech32",0],["bcrt","p2w-pkh","regtest",20,"bech32",0],["bc","p2w-sh","main",32,"bech32",0],["tb","p2w-sh","testnet",32,"bech32",0],["bcrt","p2w-sh","regtest",32,"bech32",0],["bc","p2tr","main",32,"bech32m",1],["tb","p2tr","testnet",32,"bech32m",1],["bcrt","p2tr","regtest",32,"bech32m",1]];function Ra(e,t){for(const[n,r,i,s,o,a]of Ba)if(r===t&&i===e)return{type:r,prefix:n,network:i,size:s,format:o,version:a};return null}function La(e){const t=function(e){const t=$a(e);for(const[n,r,i,s,o,a]of Ba){if(o!==t.format)continue;if(s!==t.data.length)continue;if(a!==t.version)continue;if(t.prefix){if(n!==t.prefix)continue}else if(!e.startsWith(n))continue;const u=m.uint(t.data).hex;return{data:t.data,hex:u,type:r,prefix:n,network:i,size:s,format:o,version:a}}throw new Error("address configuration is invalid")}(e),n=function(e,t){switch(t){case"p2pkh":return function(e){return{script_hex:"76a914"+e+"88ac",script_asm:["OP_DUP","OP_HASH160",e,"OP_EQUALVERIFY","OP_CHECKSIG"]}}(e);case"p2sh":return function(e){return{script_hex:"a914"+e+"87",script_asm:["OP_HASH160",e,"OP_EQUAL"]}}(e);case"p2w-pkh":return function(e){return{script_hex:"0014"+e,script_asm:["OP_0",e]}}(e);case"p2w-sh":return function(e){return{script_hex:"0020"+e,script_asm:["OP_0",e]}}(e);case"p2tr":return function(e){return{script_hex:"5120"+e,script_asm:["OP_1",e]}}(e);default:throw new Error("unrecognized script type: "+t)}}(t.hex,t.type);return{...t,...n}}const za="p2pkh";var ja;function Ha(e,t="main"){return Da(nn(m.bytes(e)),t)}function Da(e,t="main"){const n=m.bytes(e),r=Ra(t,za);return b.exists(r,`unrecognized address config: ${za} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),Ca({data:n,format:"base58",version:r.version})}function Fa(e){const t=La(e);return b.ok("p2pkh"===t.type,`address type mismatch: ${t.type} !== ${za}`),t}!function(e){e.create=Ha,e.encode=Da,e.decode=Fa}(ja||(ja={}));const Va="p2sh";var Za;function Ka(e,t="main"){return Wa(nn(m.bytes(e)),t)}function Wa(e,t="main"){const n=m.bytes(e),r=Ra(t,Va);return b.exists(r,`unrecognized address config: ${Va} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),Ca({data:n,format:"base58",version:r.version})}function qa(e){const t=La(e);return b.ok("p2sh"===t.type,`address type mismatch: ${t.type} !== ${Va}`),t}!function(e){e.create=Ka,e.encode=Wa,e.decode=qa}(Za||(Za={}));const Ma="p2w-pkh";var Ga;function Ya(e,t="main"){const n=m.bytes(e);b.size(n,33,`invalid payload size: ${n.length} !== 33`);return Qa(nn(n),t)}function Qa(e,t="main"){const n=m.bytes(e),r=Ra(t,Ma);return b.exists(r,`unrecognized address config: ${Ma} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),Ca({data:n,format:"bech32",prefix:r.prefix})}function Ja(e){const t=La(e);return b.ok("p2w-pkh"===t.type,`address type mismatch: ${t.type} !== ${Ma}`),t}!function(e){e.create=Ya,e.encode=Qa,e.decode=Ja}(Ga||(Ga={}));const Xa="p2w-sh";var eu;function tu(e,t="main"){return nu(rn(m.bytes(e)),t)}function nu(e,t="main"){const n=m.bytes(e),r=Ra(t,Xa);return b.exists(r,`unrecognized address config: ${Xa} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),Ca({data:n,format:"bech32",prefix:r.prefix})}function ru(e){const t=La(e);return b.ok("p2w-sh"===t.type,`address type mismatch: ${t.type} !== ${Xa}`),t}!function(e){e.create=tu,e.encode=nu,e.decode=ru}(eu||(eu={}));const iu="p2tr";var su,ou;function au(e,t="main"){const n=m.bytes(e),r=Ra(t,iu);return b.exists(r,`unrecognized address config: ${iu} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),Ca({data:n,format:"bech32m",prefix:r.prefix})}function uu(e){const t=La(e);return b.ok("p2tr"===t.type,`address type mismatch: ${t.type} !== ${iu}`),t}!function(e){e.encode=au,e.decode=uu}(su||(su={})),function(e){e.P2PKH=ja,e.P2SH=Za,e.P2WPKH=Ga,e.P2WSH=eu,e.P2TR=su,e.parse=La}(ou||(ou={}));var cu=Object.freeze({__proto__:null,get AddressTool(){return ou},get P2PKH(){return ja},get P2SH(){return Za},get P2TR(){return su},get P2WPKH(){return Ga},get P2WSH(){return eu},parse_address:La});const du=new Uint8Array,hu=new Uint8Array([0]);function fu(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function lu(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}const pu=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function gu(e){return"[object Object]"===Object.prototype.toString.call(e)}function mu(e){return Number.isSafeInteger(e)}const yu=fu,wu=lu,vu=function(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];if(!lu(r))throw new Error("Uint8Array expected");t+=r.length}const n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){const i=e[t];n.set(i,r),r+=i.length}return n},_u=e=>{if(null!==e&&"string"!=typeof e&&!Iu(e)&&!lu(e)&&!mu(e))throw new Error(`lengthCoder: expected null | number | Uint8Array | CoderType, got ${e} (${typeof e})`);return{encodeStream(t,n){if(null===e)return;if(Iu(e))return e.encodeStream(t,n);let r;if("number"==typeof e?r=e:"string"==typeof e&&(r=Eu.resolve(t.stack,e)),"bigint"==typeof r&&(r=Number(r)),void 0===r||r!==n)throw t.err(`Wrong length: ${r} len=${e} exp=${n} (${typeof n})`)},decodeStream(t){let n;if(Iu(e)?n=Number(e.decodeStream(t)):"number"==typeof e?n=e:"string"==typeof e&&(n=Eu.resolve(t.stack,e)),"bigint"==typeof n&&(n=Number(n)),"number"!=typeof n)throw t.err(`Wrong length: ${n}`);return n}}},bu={BITS:32,FULL_MASK:-1>>>0,len:e=>Math.ceil(e/32),create:e=>new Uint32Array(bu.len(e)),clean:e=>e.fill(0),debug:e=>Array.from(e).map(e=>(e>>>0).toString(2).padStart(32,"0")),checkLen:(e,t)=>{if(bu.len(t)!==e.length)throw new Error(`wrong length=${e.length}. Expected: ${bu.len(t)}`)},chunkLen:(e,t,n)=>{if(t<0)throw new Error(`wrong pos=${t}`);if(t+n>e)throw new Error(`wrong range=${t}/${n} of ${e}`)},set:(e,t,n,r=!0)=>!(!r&&0!==(e[t]&n))&&(e[t]|=n,!0),pos:(e,t)=>({chunk:Math.floor((e+t)/32),mask:1<<32-(e+t)%32-1}),indices:(e,t,n=!1)=>{bu.checkLen(e,t);const{FULL_MASK:r,BITS:i}=bu,s=i-t%i,o=s?r>>>s<<s:r,a=[];for(let t=0;t<e.length;t++){let r=e[t];if(n&&(r=~r),t===e.length-1&&(r&=o),0!==r)for(let e=0;e<i;e++){r&1<<i-e-1&&a.push(t*i+e)}}return a},range:e=>{const t=[];let n;for(const r of e)void 0===n||r!==n.pos+n.length?t.push(n={pos:r,length:1}):n.length+=1;return t},rangeDebug:(e,t,n=!1)=>`[${bu.range(bu.indices(e,t,n)).map(e=>`(${e.pos}/${e.length})`).join(", ")}]`,setRange:(e,t,n,r,i=!0)=>{bu.chunkLen(t,n,r);const{FULL_MASK:s,BITS:o}=bu,a=n%o?Math.floor(n/o):void 0,u=n+r,c=u%o?Math.floor(u/o):void 0;if(void 0!==a&&a===c)return bu.set(e,a,s>>>o-r<<o-r-n,i);if(void 0!==a&&!bu.set(e,a,s>>>n%o,i))return!1;const d=void 0!==c?c:u/o;for(let t=void 0!==a?a+1:n/o;t<d;t++)if(!bu.set(e,t,s,i))return!1;return!(void 0!==c&&a!==c&&!bu.set(e,c,s<<o-u%o,i))}},Eu={pushObj:(e,t,n)=>{const r={obj:t};e.push(r),n((e,t)=>{r.field=e,t(),r.field=void 0}),e.pop()},path:e=>{const t=[];for(const n of e)void 0!==n.field&&t.push(n.field);return t.join("/")},err:(e,t,n)=>{const r=new Error(`${e}(${Eu.path(t)}): ${"string"==typeof n?n:n.message}`);return n instanceof Error&&n.stack&&(r.stack=n.stack),r},resolve:(e,t)=>{const n=t.split("/"),r=e.map(e=>e.obj);let i=0;for(;i<n.length&&".."===n[i];i++)r.pop();let s=r.pop();for(;i<n.length;i++){if(!s||void 0===s[n[i]])return;s=s[n[i]]}return s}};class xu{constructor(e,t={},n=[],r=void 0,i=0){this.pos=0,this.bitBuf=0,this.bitPos=0,this.data=e,this.opts=t,this.stack=n,this.parent=r,this.parentOffset=i,this.view=pu(e)}_enablePointers(){if(this.parent)return this.parent._enablePointers();this.bs||(this.bs=bu.create(this.data.length),bu.setRange(this.bs,this.data.length,0,this.pos,this.opts.allowMultipleReads))}markBytesBS(e,t){return this.parent?this.parent.markBytesBS(this.parentOffset+e,t):!t||(!this.bs||bu.setRange(this.bs,this.data.length,e,t,!1))}markBytes(e){const t=this.pos;this.pos+=e;const n=this.markBytesBS(t,e);if(!this.opts.allowMultipleReads&&!n)throw this.err(`multiple read pos=${this.pos} len=${e}`);return n}pushObj(e,t){return Eu.pushObj(this.stack,e,t)}readView(e,t){if(!Number.isFinite(e))throw this.err(`readView: wrong length=${e}`);if(this.pos+e>this.data.length)throw this.err("readView: Unexpected end of buffer");const n=t(this.view,this.pos);return this.markBytes(e),n}absBytes(e){if(e>this.data.length)throw new Error("Unexpected end of buffer");return this.data.subarray(e)}finish(){if(!this.opts.allowUnreadBytes){if(this.bitPos)throw this.err(`${this.bitPos} bits left after unpack: ${Fi.encode(this.data.slice(this.pos))}`);if(this.bs&&!this.parent){const e=bu.indices(this.bs,this.data.length,!0);if(e.length){const t=bu.range(e).map(({pos:e,length:t})=>`(${e}/${t})[${Fi.encode(this.data.subarray(e,e+t))}]`).join(", ");throw this.err(`unread byte ranges: ${t} (total=${this.data.length})`)}return}if(!this.isEnd())throw this.err(`${this.leftBytes} bytes ${this.bitPos} bits left after unpack: ${Fi.encode(this.data.slice(this.pos))}`)}}err(e){return Eu.err("Reader",this.stack,e)}offsetReader(e){if(e>this.data.length)throw this.err("offsetReader: Unexpected end of buffer");return new xu(this.absBytes(e),this.opts,this.stack,this,e)}bytes(e,t=!1){if(this.bitPos)throw this.err("readBytes: bitPos not empty");if(!Number.isFinite(e))throw this.err(`readBytes: wrong length=${e}`);if(this.pos+e>this.data.length)throw this.err("readBytes: Unexpected end of buffer");const n=this.data.subarray(this.pos,this.pos+e);return t||this.markBytes(e),n}byte(e=!1){if(this.bitPos)throw this.err("readByte: bitPos not empty");if(this.pos+1>this.data.length)throw this.err("readBytes: Unexpected end of buffer");const t=this.data[this.pos];return e||this.markBytes(1),t}get leftBytes(){return this.data.length-this.pos}get totalBytes(){return this.data.length}isEnd(){return this.pos>=this.data.length&&!this.bitPos}bits(e){if(e>32)throw this.err("BitReader: cannot read more than 32 bits in single call");let t=0;for(;e;){this.bitPos||(this.bitBuf=this.byte(),this.bitPos=8);const n=Math.min(e,this.bitPos);this.bitPos-=n,t=t<<n|this.bitBuf>>this.bitPos&2**n-1,this.bitBuf&=2**this.bitPos-1,e-=n}return t>>>0}find(e,t=this.pos){if(!lu(e))throw this.err(`find: needle is not bytes! ${e}`);if(this.bitPos)throw this.err("findByte: bitPos not empty");if(!e.length)throw this.err("find: needle is empty");for(let n=t;-1!==(n=this.data.indexOf(e[0],n));n++){if(-1===n)return;if(this.data.length-n<e.length)return;if(fu(e,this.data.subarray(n,n+e.length)))return n}}}class Su{constructor(e=[]){this.pos=0,this.buffers=[],this.ptrs=[],this.bitBuf=0,this.bitPos=0,this.viewBuf=new Uint8Array(8),this.finished=!1,this.stack=e,this.view=pu(this.viewBuf)}pushObj(e,t){return Eu.pushObj(this.stack,e,t)}writeView(e,t){if(this.finished)throw this.err("buffer: finished");if(!mu(e)||e>8)throw new Error(`wrong writeView length=${e}`);t(this.view),this.bytes(this.viewBuf.slice(0,e)),this.viewBuf.fill(0)}err(e){if(this.finished)throw this.err("buffer: finished");return Eu.err("Reader",this.stack,e)}bytes(e){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("writeBytes: ends with non-empty bit buffer");this.buffers.push(e),this.pos+=e.length}byte(e){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("writeByte: ends with non-empty bit buffer");this.buffers.push(new Uint8Array([e])),this.pos++}finish(e=!0){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("buffer: ends with non-empty bit buffer");const t=this.buffers.concat(this.ptrs.map(e=>e.buffer)),n=t.map(e=>e.length).reduce((e,t)=>e+t,0),r=new Uint8Array(n);for(let e=0,n=0;e<t.length;e++){const i=t[e];r.set(i,n),n+=i.length}for(let e=this.pos,t=0;t<this.ptrs.length;t++){const n=this.ptrs[t];r.set(n.ptr.encode(e),n.pos),e+=n.buffer.length}if(e){this.buffers=[];for(const e of this.ptrs)e.buffer.fill(0);this.ptrs=[],this.finished=!0,this.bitBuf=0}return r}bits(e,t){if(t>32)throw this.err("writeBits: cannot write more than 32 bits in single call");if(e>=2**t)throw this.err(`writeBits: value (${e}) >= 2**bits (${t})`);for(;t;){const n=Math.min(t,8-this.bitPos);this.bitBuf=this.bitBuf<<n|e>>t-n,this.bitPos+=n,e&=2**(t-=n)-1,8===this.bitPos&&(this.bitPos=0,this.buffers.push(new Uint8Array([this.bitBuf])),this.pos++)}}}const ku=e=>Uint8Array.from(e).reverse();function Ou(e){return{encodeStream:e.encodeStream,decodeStream:e.decodeStream,size:e.size,encode:t=>{const n=new Su;return e.encodeStream(n,t),n.finish()},decode:(t,n={})=>{const r=new xu(t,n),i=e.decodeStream(r);return r.finish(),i}}}function Au(e,t){if(!Iu(e))throw new Error(`validate: invalid inner value ${e}`);if("function"!=typeof t)throw new Error("validate: fn should be function");return Ou({size:e.size,encodeStream:(n,r)=>{let i;try{i=t(r)}catch(e){throw n.err(e)}e.encodeStream(n,i)},decodeStream:n=>{const r=e.decodeStream(n);try{return t(r)}catch(e){throw n.err(e)}}})}const Pu=e=>{const t=Ou(e);return e.validate?Au(t,e.validate):t},Tu=e=>gu(e)&&"function"==typeof e.decode&&"function"==typeof e.encode;function Iu(e){return gu(e)&&Tu(e)&&"function"==typeof e.encodeStream&&"function"==typeof e.decodeStream&&(void 0===e.size||mu(e.size))}const Nu=e=>{if(!Tu(e))throw new Error("BaseCoder expected");return{encode:e.decode,decode:e.encode}},Uu={dict:function(){return{encode:e=>{if(!Array.isArray(e))throw new Error("array expected");const t={};for(const n of e){if(!Array.isArray(n)||2!==n.length)throw new Error("array of two elements expected");const e=n[0],r=n[1];if(void 0!==t[e])throw new Error(`key(${e}) appears twice in struct`);t[e]=r}return t},decode:e=>{if(!gu(e))throw new Error(`expected plain object, got ${e}`);return Object.entries(e)}}},numberBigint:{encode:e=>{if("bigint"!=typeof e)throw new Error("expected bigint, got "+typeof e);if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error(`element bigger than MAX_SAFE_INTEGER=${e}`);return Number(e)},decode:e=>{if(!mu(e))throw new Error("element is not a safe integer");return BigInt(e)}},tsEnum:function(e){if(!gu(e))throw new Error("plain object expected");return{encode:t=>{if(!mu(t)||!(t in e))throw new Error(`wrong value ${t}`);return e[t]},decode:t=>{if("string"!=typeof t)throw new Error("wrong value "+typeof t);return e[t]}}},decimal:function(e,t=!1){if(!mu(e))throw new Error(`decimal/precision: wrong value ${e}`);if("boolean"!=typeof t)throw new Error("decimal/round: expected boolean, got "+typeof t);const n=10n**BigInt(e);return{encode:t=>{if("bigint"!=typeof t)throw new Error("expected bigint, got "+typeof t);let n=(t<0n?-t:t).toString(10),r=n.length-e;r<0&&(n=n.padStart(n.length-r,"0"),r=0);let i=n.length-1;for(;i>=r&&"0"===n[i];i--);let s=n.slice(0,r),o=n.slice(r,i+1);return s||(s="0"),t<0n&&(s="-"+s),o?`${s}.${o}`:s},decode:r=>{if("string"!=typeof r)throw new Error("expected string, got "+typeof r);if("-0"===r)throw new Error("negative zero is not allowed");let i=!1;if(r.startsWith("-")&&(i=!0,r=r.slice(1)),!/^(0|[1-9]\d*)(\.\d+)?$/.test(r))throw new Error(`wrong string value=${r}`);let s=r.indexOf(".");s=-1===s?r.length:s;const o=r.slice(0,s),a=r.slice(s+1).replace(/0+$/,""),u=BigInt(o)*n;if(!t&&a.length>e)throw new Error(`fractional part cannot be represented with this precision (num=${r}, prec=${e})`);const c=Math.min(a.length,e),d=u+BigInt(a.slice(0,c))*10n**BigInt(e-c);return i?-d:d}}},match:function(e){if(!Array.isArray(e))throw new Error("expected array, got "+typeof e);for(const t of e)if(!Tu(t))throw new Error(`wrong base coder ${t}`);return{encode:t=>{for(const n of e){const e=n.encode(t);if(void 0!==e)return e}throw new Error(`match/encode: cannot find match in ${t}`)},decode:t=>{for(const n of e){const e=n.decode(t);if(void 0!==e)return e}throw new Error(`match/decode: cannot find match in ${t}`)}}},reverse:Nu},$u=(e,t=!1,n=!1,r=!0)=>{if(!mu(e))throw new Error(`bigint/size: wrong value ${e}`);if("boolean"!=typeof t)throw new Error("bigint/le: expected boolean, got "+typeof t);if("boolean"!=typeof n)throw new Error("bigint/signed: expected boolean, got "+typeof n);if("boolean"!=typeof r)throw new Error("bigint/sized: expected boolean, got "+typeof r);const i=BigInt(e),s=2n**(8n*i-1n);return Pu({size:r?e:void 0,encodeStream:(i,o)=>{n&&o<0&&(o|=s);const a=[];for(let t=0;t<e;t++)a.push(Number(255n&o)),o>>=8n;let u=new Uint8Array(a).reverse();if(!r){let e=0;for(e=0;e<u.length&&0===u[e];e++);u=u.subarray(e)}i.bytes(t?u.reverse():u)},decodeStream:i=>{const o=i.bytes(r?e:Math.min(e,i.leftBytes)),a=t?o:ku(o);let u=0n;for(let e=0;e<a.length;e++)u|=BigInt(a[e])<<8n*BigInt(e);return n&&u&s&&(u=(u^s)-s),u},validate:e=>{if("bigint"!=typeof e)throw new Error(`bigint: invalid value: ${e}`);return function(e,t,n){if(n){const n=2n**(t-1n);if(e<-n||e>=n)throw new Error(`value out of signed bounds. Expected ${-n} <= ${e} < ${n}`)}else if(0n>e||e>=2n**t)throw new Error(`value out of unsigned bounds. Expected 0 <= ${e} < ${2n**t}`)}(e,8n*i,!!n),e}})},Cu=$u(32,!1),Bu=$u(8,!0),Ru=$u(8,!0,!0),Lu=(e,t,n)=>{const r=8*e,i=2**(r-1),s=2**r;return((e,t)=>Pu({size:e,encodeStream:(n,r)=>n.writeView(e,e=>t.write(e,r)),decodeStream:n=>n.readView(e,t.read),validate:e=>{if("number"!=typeof e)throw new Error("viewCoder: expected number, got "+typeof e);return t.validate&&t.validate(e),e}}))(e,{write:n.write,read:n.read,validate:t?e=>{if(!mu(e))throw new Error(`sintView: value is not safe integer: ${e}`);if(e<-i||e>=i)throw new Error(`sintView: value out of bounds. Expected ${-i} <= ${e} < ${i}`)}:e=>{if(!mu(e))throw new Error(`uintView: value is not safe integer: ${e}`);if(0>e||e>=s)throw new Error(`uintView: value out of bounds. Expected 0 <= ${e} < ${s}`)}})},zu=Lu(4,!1,{read:(e,t)=>e.getUint32(t,!0),write:(e,t)=>e.setUint32(0,t,!0)}),ju=Lu(4,!1,{read:(e,t)=>e.getUint32(t,!1),write:(e,t)=>e.setUint32(0,t,!1)}),Hu=Lu(4,!0,{read:(e,t)=>e.getInt32(t,!0),write:(e,t)=>e.setInt32(0,t,!0)}),Du=Lu(2,!1,{read:(e,t)=>e.getUint16(t,!0),write:(e,t)=>e.setUint16(0,t,!0)}),Fu=Lu(1,!1,{read:(e,t)=>e.getUint8(t),write:(e,t)=>e.setUint8(0,t)}),Vu=(e,t=!1)=>{if("boolean"!=typeof t)throw new Error("bytes/le: expected boolean, got "+typeof t);const n=_u(e),r=lu(e);return Pu({size:"number"==typeof e?e:void 0,encodeStream:(i,s)=>{r||n.encodeStream(i,s.length),i.bytes(t?ku(s):s),r&&i.bytes(e)},decodeStream:i=>{let s;if(r){const t=i.find(e);if(!t)throw i.err("bytes: cannot find terminator");s=i.bytes(t-i.pos),i.bytes(e.length)}else s=i.bytes(null===e?i.leftBytes:n.decodeStream(i));return t?ku(s):s},validate:e=>{if(!lu(e))throw new Error(`bytes: invalid value ${e}`);return e}})};const Zu=(e,t=!1)=>Au(Ku(Vu(e,t),Di),e=>{if("string"!=typeof e)throw new Error("expected string, got "+typeof e);return e});function Ku(e,t){if(!Iu(e))throw new Error(`apply: invalid inner value ${e}`);if(!Tu(t))throw new Error(`apply: invalid base value ${e}`);return Pu({size:e.size,encodeStream:(n,r)=>{let i;try{i=t.decode(r)}catch(e){throw n.err(""+e)}return e.encodeStream(n,i)},decodeStream:n=>{const r=e.decodeStream(n);try{return t.encode(r)}catch(e){throw n.err(""+e)}}})}function Wu(e,t,n=!0){if(!Iu(e))throw new Error(`magic: invalid inner value ${e}`);if("boolean"!=typeof n)throw new Error("magic: expected boolean, got "+typeof n);return Pu({size:e.size,encodeStream:(n,r)=>e.encodeStream(n,t),decodeStream:r=>{const i=e.decodeStream(r);if(n&&"object"!=typeof i&&i!==t||lu(t)&&!fu(t,i))throw r.err(`magic: invalid value: ${i} !== ${t}`)},validate:e=>{if(void 0!==e)throw new Error("magic: wrong value="+typeof e);return e}})}function qu(e){let t=0;for(const n of e){if(void 0===n.size)return;if(!mu(n.size))throw new Error(`sizeof: wrong element size=${t}`);t+=n.size}return t}function Mu(e){if(!gu(e))throw new Error(`struct: expected plain object, got ${e}`);for(const t in e)if(!Iu(e[t]))throw new Error(`struct: field ${t} is not CoderType`);return Pu({size:qu(Object.values(e)),encodeStream:(t,n)=>{t.pushObj(n,r=>{for(const i in e)r(i,()=>e[i].encodeStream(t,n[i]))})},decodeStream:t=>{const n={};return t.pushObj(n,r=>{for(const i in e)r(i,()=>n[i]=e[i].decodeStream(t))}),n},validate:e=>{if("object"!=typeof e||null===e)throw new Error(`struct: invalid value ${e}`);return e}})}function Gu(e,t){if(!Iu(t))throw new Error(`array: invalid inner value ${t}`);const n=_u("string"==typeof e?`../${e}`:e);return Pu({size:"number"==typeof e&&t.size?e*t.size:void 0,encodeStream:(r,i)=>{const s=r;s.pushObj(i,o=>{lu(e)||n.encodeStream(r,i.length);for(let n=0;n<i.length;n++)o(`${n}`,()=>{const o=i[n],a=r.pos;if(t.encodeStream(r,o),lu(e)){if(e.length>s.pos-a)return;const t=s.finish(!1).subarray(a,s.pos);if(fu(t.subarray(0,e.length),e))throw s.err(`array: inner element encoding same as separator. elm=${o} data=${t}`)}})}),lu(e)&&r.bytes(e)},decodeStream:r=>{const i=[];return r.pushObj(i,s=>{if(null===e)for(let e=0;!r.isEnd()&&(s(`${e}`,()=>i.push(t.decodeStream(r))),!(t.size&&r.leftBytes<t.size));e++);else if(lu(e))for(let n=0;;n++){if(fu(r.bytes(e.length,!0),e)){r.bytes(e.length);break}s(`${n}`,()=>i.push(t.decodeStream(r)))}else{let e;s("arrayLen",()=>e=n.decodeStream(r));for(let n=0;n<e;n++)s(`${n}`,()=>i.push(t.decodeStream(r)))}}),i},validate:e=>{if(!Array.isArray(e))throw new Error(`array: invalid value ${e}`);return e}})}const Yu=yt.ProjectivePoint,Qu=yt.CURVE.n,Ju=wu,Xu=vu,ec=yu,tc=e=>tn(ee(e)),nc=(...e)=>ee(ee(Xu(...e))),rc=$t.getPublicKey,ic=yt.getPublicKey,sc=e=>e.r<Qu/2n;const oc=$t.sign,ac=$t.utils.taggedHash;var uc;function cc(e,t){const n=e.length;if(t===uc.ecdsa){if(32===n)throw new Error("Expected non-Schnorr key");return Yu.fromHex(e),e}if(t===uc.schnorr){if(32!==n)throw new Error("Expected 32-byte Schnorr key");return $t.utils.lift_x($t.utils.bytesToNumberBE(e)),e}throw new Error("Unknown key type")}function dc(e,t){const n=$t.utils,r=n.taggedHash("TapTweak",e,t),i=n.bytesToNumberBE(r);if(i>=Qu)throw new Error("tweak higher than curve order");return i}!function(e){e[e.ecdsa=0]="ecdsa",e[e.schnorr=1]="schnorr"}(uc||(uc={})),ee(Yu.BASE.toRawBytes(!1));const hc={bech32:"bc",pubKeyHash:0,scriptHash:5,wif:128};function fc(e,t){if(!Ju(e)||!Ju(t))throw new Error(`cmp: wrong type a=${typeof e} b=${typeof t}`);const n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!=t[r])return Math.sign(e[r]-t[r]);return Math.sign(e.length-t.length)}var lc;function pc(e=6,t=!1){return Pu({encodeStream:(e,t)=>{if(0n===t)return;const n=t<0,r=BigInt(t),i=[];for(let e=n?-r:r;e;e>>=8n)i.push(Number(0xffn&e));i[i.length-1]>=128?i.push(n?128:0):n&&(i[i.length-1]|=128),e.bytes(new Uint8Array(i))},decodeStream:n=>{const r=n.leftBytes;if(r>e)throw new Error(`ScriptNum: number (${r}) bigger than limit=${e}`);if(0===r)return 0n;if(t){const e=n.bytes(r,!0);if(!(127&e[e.length-1]||!(r<=1)&&128&e[e.length-2]))throw new Error("Non-minimally encoded ScriptNum")}let i=0,s=0n;for(let e=0;e<r;++e)i=n.byte(),s|=BigInt(i)<<8n*BigInt(e);return i>=128&&(s&=2n**BigInt(8*r)-1n>>1n,s=-s),s}})}!function(e){e[e.OP_0=0]="OP_0",e[e.PUSHDATA1=76]="PUSHDATA1",e[e.PUSHDATA2=77]="PUSHDATA2",e[e.PUSHDATA4=78]="PUSHDATA4",e[e["1NEGATE"]=79]="1NEGATE",e[e.RESERVED=80]="RESERVED",e[e.OP_1=81]="OP_1",e[e.OP_2=82]="OP_2",e[e.OP_3=83]="OP_3",e[e.OP_4=84]="OP_4",e[e.OP_5=85]="OP_5",e[e.OP_6=86]="OP_6",e[e.OP_7=87]="OP_7",e[e.OP_8=88]="OP_8",e[e.OP_9=89]="OP_9",e[e.OP_10=90]="OP_10",e[e.OP_11=91]="OP_11",e[e.OP_12=92]="OP_12",e[e.OP_13=93]="OP_13",e[e.OP_14=94]="OP_14",e[e.OP_15=95]="OP_15",e[e.OP_16=96]="OP_16",e[e.NOP=97]="NOP",e[e.VER=98]="VER",e[e.IF=99]="IF",e[e.NOTIF=100]="NOTIF",e[e.VERIF=101]="VERIF",e[e.VERNOTIF=102]="VERNOTIF",e[e.ELSE=103]="ELSE",e[e.ENDIF=104]="ENDIF",e[e.VERIFY=105]="VERIFY",e[e.RETURN=106]="RETURN",e[e.TOALTSTACK=107]="TOALTSTACK",e[e.FROMALTSTACK=108]="FROMALTSTACK",e[e["2DROP"]=109]="2DROP",e[e["2DUP"]=110]="2DUP",e[e["3DUP"]=111]="3DUP",e[e["2OVER"]=112]="2OVER",e[e["2ROT"]=113]="2ROT",e[e["2SWAP"]=114]="2SWAP",e[e.IFDUP=115]="IFDUP",e[e.DEPTH=116]="DEPTH",e[e.DROP=117]="DROP",e[e.DUP=118]="DUP",e[e.NIP=119]="NIP",e[e.OVER=120]="OVER",e[e.PICK=121]="PICK",e[e.ROLL=122]="ROLL",e[e.ROT=123]="ROT",e[e.SWAP=124]="SWAP",e[e.TUCK=125]="TUCK",e[e.CAT=126]="CAT",e[e.SUBSTR=127]="SUBSTR",e[e.LEFT=128]="LEFT",e[e.RIGHT=129]="RIGHT",e[e.SIZE=130]="SIZE",e[e.INVERT=131]="INVERT",e[e.AND=132]="AND",e[e.OR=133]="OR",e[e.XOR=134]="XOR",e[e.EQUAL=135]="EQUAL",e[e.EQUALVERIFY=136]="EQUALVERIFY",e[e.RESERVED1=137]="RESERVED1",e[e.RESERVED2=138]="RESERVED2",e[e["1ADD"]=139]="1ADD",e[e["1SUB"]=140]="1SUB",e[e["2MUL"]=141]="2MUL",e[e["2DIV"]=142]="2DIV",e[e.NEGATE=143]="NEGATE",e[e.ABS=144]="ABS",e[e.NOT=145]="NOT",e[e["0NOTEQUAL"]=146]="0NOTEQUAL",e[e.ADD=147]="ADD",e[e.SUB=148]="SUB",e[e.MUL=149]="MUL",e[e.DIV=150]="DIV",e[e.MOD=151]="MOD",e[e.LSHIFT=152]="LSHIFT",e[e.RSHIFT=153]="RSHIFT",e[e.BOOLAND=154]="BOOLAND",e[e.BOOLOR=155]="BOOLOR",e[e.NUMEQUAL=156]="NUMEQUAL",e[e.NUMEQUALVERIFY=157]="NUMEQUALVERIFY",e[e.NUMNOTEQUAL=158]="NUMNOTEQUAL",e[e.LESSTHAN=159]="LESSTHAN",e[e.GREATERTHAN=160]="GREATERTHAN",e[e.LESSTHANOREQUAL=161]="LESSTHANOREQUAL",e[e.GREATERTHANOREQUAL=162]="GREATERTHANOREQUAL",e[e.MIN=163]="MIN",e[e.MAX=164]="MAX",e[e.WITHIN=165]="WITHIN",e[e.RIPEMD160=166]="RIPEMD160",e[e.SHA1=167]="SHA1",e[e.SHA256=168]="SHA256",e[e.HASH160=169]="HASH160",e[e.HASH256=170]="HASH256",e[e.CODESEPARATOR=171]="CODESEPARATOR",e[e.CHECKSIG=172]="CHECKSIG",e[e.CHECKSIGVERIFY=173]="CHECKSIGVERIFY",e[e.CHECKMULTISIG=174]="CHECKMULTISIG",e[e.CHECKMULTISIGVERIFY=175]="CHECKMULTISIGVERIFY",e[e.NOP1=176]="NOP1",e[e.CHECKLOCKTIMEVERIFY=177]="CHECKLOCKTIMEVERIFY",e[e.CHECKSEQUENCEVERIFY=178]="CHECKSEQUENCEVERIFY",e[e.NOP4=179]="NOP4",e[e.NOP5=180]="NOP5",e[e.NOP6=181]="NOP6",e[e.NOP7=182]="NOP7",e[e.NOP8=183]="NOP8",e[e.NOP9=184]="NOP9",e[e.NOP10=185]="NOP10",e[e.CHECKSIGADD=186]="CHECKSIGADD",e[e.INVALID=255]="INVALID"}(lc||(lc={}));const gc=Pu({encodeStream:(e,t)=>{for(let n of t){if("string"==typeof n){if(void 0===lc[n])throw new Error(`Unknown opcode=${n}`);e.byte(lc[n]);continue}if("number"==typeof n){if(0===n){e.byte(0);continue}if(1<=n&&n<=16){e.byte(lc.OP_1-1+n);continue}}if("number"==typeof n&&(n=pc().encode(BigInt(n))),!Ju(n))throw new Error(`Wrong Script OP=${n} (${typeof n})`);const t=n.length;t<lc.PUSHDATA1?e.byte(t):t<=255?(e.byte(lc.PUSHDATA1),e.byte(t)):t<=65535?(e.byte(lc.PUSHDATA2),e.bytes(Du.encode(t))):(e.byte(lc.PUSHDATA4),e.bytes(zu.encode(t))),e.bytes(n)}},decodeStream:e=>{const t=[];for(;!e.isEnd();){const n=e.byte();if(lc.OP_0<n&&n<=lc.PUSHDATA4){let r;if(n<lc.PUSHDATA1)r=n;else if(n===lc.PUSHDATA1)r=Fu.decodeStream(e);else if(n===lc.PUSHDATA2)r=Du.decodeStream(e);else{if(n!==lc.PUSHDATA4)throw new Error("Should be not possible");r=zu.decodeStream(e)}t.push(e.bytes(r))}else if(0===n)t.push(0);else if(lc.OP_1<=n&&n<=lc.OP_16)t.push(n-(lc.OP_1-1));else{const e=lc[n];if(void 0===e)throw new Error(`Unknown opcode=${n.toString(16)}`);t.push(e)}}return t}}),mc={253:[253,2,253n,65535n],254:[254,4,65536n,4294967295n],255:[255,8,4294967296n,18446744073709551615n]},yc=Pu({encodeStream:(e,t)=>{if("number"==typeof t&&(t=BigInt(t)),0n<=t&&t<=252n)return e.byte(Number(t));for(const[n,r,i,s]of Object.values(mc))if(!(i>t||t>s)){e.byte(n);for(let n=0;n<r;n++)e.byte(Number(t>>8n*BigInt(n)&0xffn));return}throw e.err(`VarInt too big: ${t}`)},decodeStream:e=>{const t=e.byte();if(t<=252)return BigInt(t);const[n,r,i]=mc[t];let s=0n;for(let t=0;t<r;t++)s|=BigInt(e.byte())<<8n*BigInt(t);if(s<i)throw e.err(`Wrong CompactSize(${8*r})`);return s}}),wc=Ku(yc,Uu.numberBigint),vc=Vu(yc),_c=Gu(wc,vc),bc=e=>Gu(yc,e),Ec=Mu({txid:Vu(32,!0),index:zu,finalScriptSig:vc,sequence:zu}),xc=Mu({amount:Bu,script:vc});const Sc=Au(Mu({version:Hu,segwitFlag:((e,t=!1)=>{if(!lu(e))throw new Error("flag/flagValue: expected Uint8Array, got "+typeof e);if("boolean"!=typeof t)throw new Error("flag/xor: expected boolean, got "+typeof t);return Pu({size:e.length,encodeStream:(n,r)=>{!!r!==t&&n.bytes(e)},decodeStream:n=>{let r=n.leftBytes>=e.length;return r&&(r=fu(n.bytes(e.length,!0),e),r&&n.bytes(e.length)),r!==t},validate:e=>{if(void 0!==e&&"boolean"!=typeof e)throw new Error("flag: expected boolean value or undefined, got "+typeof e);return e}})})(new Uint8Array([0,1])),inputs:bc(Ec),outputs:bc(xc),witnesses:function(e,t){if(!Iu(t))throw new Error(`flagged: invalid inner value ${t}`);return Pu({encodeStream:(n,r)=>{Eu.resolve(n.stack,e)&&t.encodeStream(n,r)},decodeStream:n=>{let r=!1;if(r=!!Eu.resolve(n.stack,e),r)return t.decodeStream(n)}})}("segwitFlag",Gu("inputs/length",_c)),lockTime:zu}),function(e){if(e.segwitFlag&&e.witnesses&&!e.witnesses.length)throw new Error("Segwit flag with empty witnesses array");return e}),kc=Mu({version:Hu,inputs:bc(Ec),outputs:bc(xc),lockTime:zu}),Oc=Au(Vu(null),e=>cc(e,uc.ecdsa)),Ac=Au(Vu(32),e=>cc(e,uc.schnorr)),Pc=Au(Vu(null),e=>{if(64!==e.length&&65!==e.length)throw new Error("Schnorr signature should be 64 or 65 bytes long");return e}),Tc=Mu({fingerprint:ju,path:Gu(null,zu)}),Ic=Mu({hashes:Gu(wc,Vu(32)),der:Tc}),Nc=Vu(78),Uc=Mu({pubKey:Ac,leafHash:Vu(32)}),$c=Au(Mu({version:Fu,internalKey:Vu(32),merklePath:Gu(null,Vu(32))}),e=>{if(e.merklePath.length>128)throw new Error("TaprootControlBlock: merklePath should be of length 0..128 (inclusive)");return e}),Cc=Gu(null,Mu({depth:Fu,version:Fu,script:vc})),Bc=Vu(null),Rc=Vu(20),Lc=Vu(32),zc={unsignedTx:[0,!1,kc,[0],[0],!1],xpub:[1,Nc,Tc,[],[0,2],!1],txVersion:[2,!1,zu,[2],[2],!1],fallbackLocktime:[3,!1,zu,[],[2],!1],inputCount:[4,!1,wc,[2],[2],!1],outputCount:[5,!1,wc,[2],[2],!1],txModifiable:[6,!1,Fu,[],[2],!1],version:[251,!1,zu,[],[0,2],!1],proprietary:[252,Bc,Bc,[],[0,2],!1]},jc={nonWitnessUtxo:[0,!1,Sc,[],[0,2],!1],witnessUtxo:[1,!1,xc,[],[0,2],!1],partialSig:[2,Oc,Bc,[],[0,2],!1],sighashType:[3,!1,zu,[],[0,2],!1],redeemScript:[4,!1,Bc,[],[0,2],!1],witnessScript:[5,!1,Bc,[],[0,2],!1],bip32Derivation:[6,Oc,Tc,[],[0,2],!1],finalScriptSig:[7,!1,Bc,[],[0,2],!1],finalScriptWitness:[8,!1,_c,[],[0,2],!1],porCommitment:[9,!1,Bc,[],[0,2],!1],ripemd160:[10,Rc,Bc,[],[0,2],!1],sha256:[11,Lc,Bc,[],[0,2],!1],hash160:[12,Rc,Bc,[],[0,2],!1],hash256:[13,Lc,Bc,[],[0,2],!1],txid:[14,!1,Lc,[2],[2],!0],index:[15,!1,zu,[2],[2],!0],sequence:[16,!1,zu,[],[2],!0],requiredTimeLocktime:[17,!1,zu,[],[2],!1],requiredHeightLocktime:[18,!1,zu,[],[2],!1],tapKeySig:[19,!1,Pc,[],[0,2],!1],tapScriptSig:[20,Uc,Pc,[],[0,2],!1],tapLeafScript:[21,$c,Bc,[],[0,2],!1],tapBip32Derivation:[22,Lc,Ic,[],[0,2],!1],tapInternalKey:[23,!1,Ac,[],[0,2],!1],tapMerkleRoot:[24,!1,Lc,[],[0,2],!1],proprietary:[252,Bc,Bc,[],[0,2],!1]},Hc=["txid","sequence","index","witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknown"],Dc=["partialSig","finalScriptSig","finalScriptWitness","tapKeySig","tapScriptSig"],Fc={redeemScript:[0,!1,Bc,[],[0,2],!1],witnessScript:[1,!1,Bc,[],[0,2],!1],bip32Derivation:[2,Oc,Tc,[],[0,2],!1],amount:[3,!1,Ru,[2],[2],!0],script:[4,!1,Bc,[2],[2],!0],tapInternalKey:[5,!1,Ac,[],[0,2],!1],tapTree:[6,!1,Cc,[],[0,2],!1],tapBip32Derivation:[7,Ac,Ic,[],[0,2],!1],proprietary:[252,Bc,Bc,[],[0,2],!1]},Vc=[],Zc=Gu(hu,Mu({key:function(e,t){if(!Iu(t))throw new Error(`prefix: invalid inner value ${t}`);return Ku(Vu(e),Nu(t))}(wc,Mu({type:wc,key:Vu(null)})),value:Vu(wc)}));function Kc(e){const[t,n,r,i,s,o]=e;return{type:t,kc:n,vc:r,reqInc:i,allowInc:s,silentIgnore:o}}function Wc(e){const t={};for(const n in e){const[r,i,s]=e[n];t[r]=[n,i,s]}return Pu({encodeStream:(t,n)=>{let r=[];for(const t in e){const i=n[t];if(void 0===i)continue;const[s,o,a]=e[t];if(o){const e=i.map(([e,t])=>[o.encode(e),a.encode(t)]);e.sort((e,t)=>fc(e[0],t[0]));for(const[t,n]of e)r.push({key:{key:t,type:s},value:n})}else r.push({key:{type:s,key:du},value:a.encode(i)})}if(n.unknown){n.unknown.sort((e,t)=>fc(e[0].key,t[0].key));for(const[e,t]of n.unknown)r.push({key:e,value:t})}Zc.encodeStream(t,r)},decodeStream:e=>{const n=Zc.decodeStream(e),r={},i={};for(const e of n){let n="unknown",s=e.key.key,o=e.value;if(t[e.key.type]){const[a,u,c]=t[e.key.type];if(n=a,!u&&s.length)throw new Error(`PSBT: Non-empty key for ${n} (key=${Fi.encode(s)} value=${Fi.encode(o)}`);if(s=u?u.decode(s):void 0,o=c.decode(o),!u){if(r[n])throw new Error(`PSBT: Same keys: ${n} (key=${s} value=${o})`);r[n]=o,i[n]=!0;continue}}else s={type:e.key.type,key:e.key.key};if(i[n])throw new Error(`PSBT: Key type with empty key and no key=${n} val=${o}`);r[n]||(r[n]=[]),r[n].push([s,o])}return r}})}Mu({type:wc,key:Vu(null)});const qc=Au(Wc(jc),e=>{if(e.finalScriptWitness&&!e.finalScriptWitness.length)throw new Error("validateInput: empty finalScriptWitness");if(e.partialSig&&!e.partialSig.length)throw new Error("Empty partialSig");if(e.partialSig)for(const[t]of e.partialSig)cc(t,uc.ecdsa);if(e.bip32Derivation)for(const[t]of e.bip32Derivation)cc(t,uc.ecdsa);if(void 0!==e.requiredTimeLocktime&&e.requiredTimeLocktime<5e8)throw new Error(`validateInput: wrong timeLocktime=${e.requiredTimeLocktime}`);if(void 0!==e.requiredHeightLocktime&&(e.requiredHeightLocktime<=0||e.requiredHeightLocktime>=5e8))throw new Error(`validateInput: wrong heighLocktime=${e.requiredHeightLocktime}`);if(e.tapLeafScript)for(const[t,n]of e.tapLeafScript){if((254&t.version)!==n[n.length-1])throw new Error("validateInput: tapLeafScript version mimatch");if(1&n[n.length-1])throw new Error("validateInput: tapLeafScript version has parity bit!")}return e}),Mc=Au(Wc(Fc),e=>{if(e.bip32Derivation)for(const[t]of e.bip32Derivation)cc(t,uc.ecdsa);return e}),Gc=Au(Wc(zc),e=>{if(0===(e.version||0)){if(!e.unsignedTx)throw new Error("PSBTv0: missing unsignedTx");for(const t of e.unsignedTx.inputs)if(t.finalScriptSig&&t.finalScriptSig.length)throw new Error("PSBTv0: input scriptSig found in unsignedTx")}return e}),Yc=Mu({magic:Wu(Zu(new Uint8Array([255])),"psbt"),global:Gc,inputs:Gu("global/unsignedTx/inputs/length",qc),outputs:Gu(null,Mc)}),Qc=Mu({magic:Wu(Zu(new Uint8Array([255])),"psbt"),global:Gc,inputs:Gu("global/inputCount",qc),outputs:Gu("global/outputCount",Mc)});function Jc(e,t,n){for(const r in n){if("unknown"===r)continue;if(!t[r])continue;const{allowInc:n}=Kc(t[r]);if(!n.includes(e))throw new Error(`PSBTv${e}: field ${r} is not allowed`)}for(const r in t){const{reqInc:i}=Kc(t[r]);if(i.includes(e)&&void 0===n[r])throw new Error(`PSBTv${e}: missing required field ${r}`)}}function Xc(e,t,n){const r={};for(const i in n){const s=i;if("unknown"!==s){if(!t[s])continue;const{allowInc:n,silentIgnore:r}=Kc(t[s]);if(!n.includes(e)){if(r)continue;throw new Error(`Failed to serialize in PSBTv${e}: ${s} but versions allows inclusion=${n}`)}}r[s]=n[s]}return r}function ed(e){const t=e&&e.global&&e.global.version||0;Jc(t,zc,e.global);for(const n of e.inputs)Jc(t,jc,n);for(const n of e.outputs)Jc(t,Fc,n);const n=t?e.global.inputCount:e.global.unsignedTx.inputs.length;if(e.inputs.length<n)throw new Error("Not enough inputs");const r=e.inputs.slice(n);if(r.length>1||r.length&&Object.keys(r[0]).length)throw new Error(`Unexpected inputs left in tx=${r}`);const i=t?e.global.outputCount:e.global.unsignedTx.outputs.length;if(e.outputs.length<i)throw new Error("Not outputs inputs");const s=e.outputs.slice(i);if(s.length>1||s.length&&Object.keys(s[0]).length)throw new Error(`Unexpected outputs left in tx=${s}`);return e}function td(e,t,n,r,i){const s={...n,...t};for(const i in e){const o=i,[a,u,c]=e[o],d=r&&!r.includes(i);if(void 0===t[i]&&i in t){if(d)throw new Error(`Cannot remove signed field=${i}`);delete s[i]}else if(u){const e=n&&n[i]?n[i]:[];let r=t[o];if(r){if(!Array.isArray(r))throw new Error(`keyMap(${i}): KV pairs should be [k, v][]`);r=r.map(e=>{if(2!==e.length)throw new Error(`keyMap(${i}): KV pairs should be [k, v][]`);return["string"==typeof e[0]?u.decode(Fi.decode(e[0])):e[0],"string"==typeof e[1]?c.decode(Fi.decode(e[1])):e[1]]});const t={},n=(e,n,r)=>{if(void 0===t[e])return void(t[e]=[n,r]);const i=Fi.encode(c.encode(t[e][1])),s=Fi.encode(c.encode(r));if(i!==s)throw new Error(`keyMap(${o}): same key=${e} oldVal=${i} newVal=${s}`)};for(const[t,r]of e){n(Fi.encode(u.encode(t)),t,r)}for(const[e,i]of r){const r=Fi.encode(u.encode(e));if(void 0===i){if(d)throw new Error(`Cannot remove signed field=${o}/${e}`);delete t[r]}else n(r,e,i)}s[o]=Object.values(t)}}else if("string"==typeof s[i])s[i]=c.decode(Fi.decode(s[i]));else if(d&&i in t&&n&&void 0!==n[i]&&!ec(c.encode(t[i]),c.encode(n[i])))throw new Error(`Cannot change signed field=${i}`)}for(const t in s)if(!e[t]){if(i&&"unknown"===t)continue;delete s[t]}return s}Mu({magic:Wu(Zu(new Uint8Array([255])),"psbt"),items:Gu(null,Ku(Gu(hu,function(e){if(!Array.isArray(e))throw new Error(`Packed.Tuple: got ${typeof e} instead of array`);for(let t=0;t<e.length;t++)if(!Iu(e[t]))throw new Error(`tuple: field ${t} is not CoderType`);return Pu({size:qu(e),encodeStream:(t,n)=>{if(!Array.isArray(n))throw t.err(`tuple: invalid value ${n}`);t.pushObj(n,r=>{for(let i=0;i<e.length;i++)r(`${i}`,()=>e[i].encodeStream(t,n[i]))})},decodeStream:t=>{const n=[];return t.pushObj(n,r=>{for(let i=0;i<e.length;i++)r(`${i}`,()=>n.push(e[i].decodeStream(t)))}),n},validate:t=>{if(!Array.isArray(t))throw new Error(`tuple: invalid value ${t}`);if(t.length!==e.length)throw new Error(`tuple: wrong length=${t.length}, expected ${e.length}`);return t}})}([((e,t={isLE:!1,with0x:!1})=>{let n=Ku(Vu(e,t.isLE),Fi);const r=t.with0x;if("boolean"!=typeof r)throw new Error("hex/with0x: expected boolean, got "+typeof r);return r&&(n=Ku(n,{encode:e=>`0x${e}`,decode:e=>{if(!e.startsWith("0x"))throw new Error("hex(with0x=true).encode input should start with 0x");return e.slice(2)}})),n})(wc),Vu(yc)])),Uu.dict()))});const nd=Au(Yc,ed),rd=Au(Qc,ed);function id(e,t){try{return cc(e,t),!0}catch(e){return!1}}const sd=[{encode(e){if(2===e.length&&1===e[0]&&Ju(e[1])&&"4e73"===Fi.encode(e[1]))return{type:"p2a",script:gc.encode(e)}},decode:e=>{if("p2a"===e.type)return[1,Fi.decode("4e73")]}},{encode(e){if(2===e.length&&Ju(e[0])&&id(e[0],uc.ecdsa)&&"CHECKSIG"===e[1])return{type:"pk",pubkey:e[0]}},decode:e=>"pk"===e.type?[e.pubkey,"CHECKSIG"]:void 0},{encode(e){if(5===e.length&&"DUP"===e[0]&&"HASH160"===e[1]&&Ju(e[2])&&"EQUALVERIFY"===e[3]&&"CHECKSIG"===e[4])return{type:"pkh",hash:e[2]}},decode:e=>"pkh"===e.type?["DUP","HASH160",e.hash,"EQUALVERIFY","CHECKSIG"]:void 0},{encode(e){if(3===e.length&&"HASH160"===e[0]&&Ju(e[1])&&"EQUAL"===e[2])return{type:"sh",hash:e[1]}},decode:e=>"sh"===e.type?["HASH160",e.hash,"EQUAL"]:void 0},{encode(e){if(2===e.length&&0===e[0]&&Ju(e[1])&&32===e[1].length)return{type:"wsh",hash:e[1]}},decode:e=>"wsh"===e.type?[0,e.hash]:void 0},{encode(e){if(2===e.length&&0===e[0]&&Ju(e[1])&&20===e[1].length)return{type:"wpkh",hash:e[1]}},decode:e=>"wpkh"===e.type?[0,e.hash]:void 0},{encode(e){const t=e.length-1;if("CHECKMULTISIG"!==e[t])return;const n=e[0],r=e[t-1];if("number"!=typeof n||"number"!=typeof r)return;const i=e.slice(1,-2);if(r===i.length){for(const e of i)if(!Ju(e))return;return{type:"ms",m:n,pubkeys:i}}},decode:e=>"ms"===e.type?[e.m,...e.pubkeys,e.pubkeys.length,"CHECKMULTISIG"]:void 0},{encode(e){if(2===e.length&&1===e[0]&&Ju(e[1]))return{type:"tr",pubkey:e[1]}},decode:e=>"tr"===e.type?[1,e.pubkey]:void 0},{encode(e){const t=e.length-1;if("CHECKSIG"!==e[t])return;const n=[];for(let r=0;r<t;r++){const i=e[r];if(1&r){if("CHECKSIGVERIFY"!==i||r===t-1)return}else{if(!Ju(i))return;n.push(i)}}return{type:"tr_ns",pubkeys:n}},decode:e=>{if("tr_ns"!==e.type)return;const t=[];for(let n=0;n<e.pubkeys.length-1;n++)t.push(e.pubkeys[n],"CHECKSIGVERIFY");return t.push(e.pubkeys[e.pubkeys.length-1],"CHECKSIG"),t}},{encode(e){const t=e.length-1;if("NUMEQUAL"!==e[t]||"CHECKSIG"!==e[1])return;const n=[],r=function(e,t=4,n=!0){if("number"==typeof e)return e;if(Ju(e))try{const r=pc(t,n).decode(e);if(r>Number.MAX_SAFE_INTEGER)return;return Number(r)}catch(e){return}}(e[t-1]);if("number"==typeof r){for(let r=0;r<t-1;r++){const t=e[r];if(1&r){if(t!==(1===r?"CHECKSIG":"CHECKSIGADD"))throw new Error("OutScript.encode/tr_ms: wrong element")}else{if(!Ju(t))throw new Error("OutScript.encode/tr_ms: wrong key element");n.push(t)}}return{type:"tr_ms",pubkeys:n,m:r}}},decode:e=>{if("tr_ms"!==e.type)return;const t=[e.pubkeys[0],"CHECKSIG"];for(let n=1;n<e.pubkeys.length;n++)t.push(e.pubkeys[n],"CHECKSIGADD");return t.push(e.m,"NUMEQUAL"),t}},{encode:e=>({type:"unknown",script:gc.encode(e)}),decode:e=>"unknown"===e.type?gc.decode(e.script):void 0}],od=Au(Ku(gc,Uu.match(sd)),e=>{if("pk"===e.type&&!id(e.pubkey,uc.ecdsa))throw new Error("OutScript/pk: wrong key");if(!("pkh"!==e.type&&"sh"!==e.type&&"wpkh"!==e.type||Ju(e.hash)&&20===e.hash.length))throw new Error(`OutScript/${e.type}: wrong hash`);if("wsh"===e.type&&(!Ju(e.hash)||32!==e.hash.length))throw new Error("OutScript/wsh: wrong hash");if(!("tr"!==e.type||Ju(e.pubkey)&&id(e.pubkey,uc.schnorr)))throw new Error("OutScript/tr: wrong taproot public key");if(("ms"===e.type||"tr_ns"===e.type||"tr_ms"===e.type)&&!Array.isArray(e.pubkeys))throw new Error("OutScript/multisig: wrong pubkeys array");if("ms"===e.type){const t=e.pubkeys.length;for(const t of e.pubkeys)if(!id(t,uc.ecdsa))throw new Error("OutScript/multisig: wrong pubkey");if(e.m<=0||t>16||e.m>t)throw new Error("OutScript/multisig: invalid params")}if("tr_ns"===e.type||"tr_ms"===e.type)for(const t of e.pubkeys)if(!id(t,uc.schnorr))throw new Error(`OutScript/${e.type}: wrong pubkey`);if("tr_ms"===e.type){const t=e.pubkeys.length;if(e.m<=0||t>999||e.m>t)throw new Error("OutScript/tr_ms: invalid params")}return e});function ad(e,t){if(!ec(e.hash,ee(t)))throw new Error("checkScript: wsh wrong witnessScript hash");const n=od.decode(t);if("tr"===n.type||"tr_ns"===n.type||"tr_ms"===n.type)throw new Error(`checkScript: P2${n.type} cannot be wrapped in P2SH`);if("wpkh"===n.type||"sh"===n.type)throw new Error(`checkScript: P2${n.type} cannot be wrapped in P2WSH`)}function ud(e,t,n){if(e){const r=od.decode(e);if("tr_ns"===r.type||"tr_ms"===r.type||"ms"===r.type||"pk"==r.type)throw new Error(`checkScript: non-wrapped ${r.type}`);if("sh"===r.type&&t){if(!ec(r.hash,tc(t)))throw new Error("checkScript: sh wrong redeemScript hash");const e=od.decode(t);if("tr"===e.type||"tr_ns"===e.type||"tr_ms"===e.type)throw new Error(`checkScript: P2${e.type} cannot be wrapped in P2SH`);if("sh"===e.type)throw new Error("checkScript: P2SH cannot be wrapped in P2SH")}"wsh"===r.type&&n&&ad(r,n)}if(t){const e=od.decode(t);"wsh"===e.type&&n&&ad(e,n)}}const cd=(e,t=192)=>ac("TapLeaf",new Uint8Array([t]),vc.encode(e)),dd=$i(ee);function hd(e,t){if(t.length<2||t.length>40)throw new Error("Witness: invalid length");if(e>16)throw new Error("Witness: invalid version");if(0===e&&20!==t.length&&32!==t.length)throw new Error("Witness: invalid length for version")}function fd(e,t,n=hc){hd(e,t);const r=0===e?ji:Hi;return r.encode(n.bech32,[e].concat(r.toWords(t)))}function ld(e,t){return dd.encode(Xu(Uint8Array.from(t),e))}function pd(e=hc){return{encode(t){const{type:n}=t;if("wpkh"===n)return fd(0,t.hash,e);if("wsh"===n)return fd(0,t.hash,e);if("tr"===n)return fd(1,t.pubkey,e);if("pkh"===n)return ld(t.hash,[e.pubKeyHash]);if("sh"===n)return ld(t.hash,[e.scriptHash]);throw new Error(`Unknown address type=${n}`)},decode(t){if(t.length<14||t.length>74)throw new Error("Invalid address length");if(e.bech32&&t.toLowerCase().startsWith(`${e.bech32}1`)){let n;try{if(n=ji.decode(t),0!==n.words[0])throw new Error(`bech32: wrong version=${n.words[0]}`)}catch(e){if(n=Hi.decode(t),0===n.words[0])throw new Error(`bech32m: wrong version=${n.words[0]}`)}if(n.prefix!==e.bech32)throw new Error(`wrong bech32 prefix=${n.prefix}`);const[r,...i]=n.words,s=ji.fromWords(i);if(hd(r,s),0===r&&32===s.length)return{type:"wsh",hash:s};if(0===r&&20===s.length)return{type:"wpkh",hash:s};if(1===r&&32===s.length)return{type:"tr",pubkey:s};throw new Error("Unknown witness program")}const n=dd.decode(t);if(21!==n.length)throw new Error("Invalid base58 address");if(n[0]===e.pubKeyHash)return{type:"pkh",hash:n.slice(1)};if(n[0]===e.scriptHash)return{type:"sh",hash:n.slice(1)};throw new Error(`Invalid address prefix=${n[0]}`)}}}const gd=new Uint8Array(32),md={amount:0xffffffffffffffffn,script:du},yd=4294967295;Uu.decimal(8);const wd=(e,t)=>void 0===e?t:e;function vd(e){if(Array.isArray(e))return e.map(e=>vd(e));if(Ju(e))return Uint8Array.from(e);if(["number","bigint","boolean","string","undefined"].includes(typeof e))return e;if(null===e)return e;if("object"==typeof e)return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,vd(t)]));throw new Error(`cloneDeep: unknown type=${e} (${typeof e})`)}var _d,bd;function Ed(e,t,n,r=du){return ec(n,t)&&(e=function(e,t=Uint8Array.of()){const n=$t.utils,r=n.bytesToNumberBE(e),i=Yu.fromPrivateKey(r),s=i.hasEvenY()?r:n.mod(-r,Qu),o=dc(n.pointToBytes(i),t);return n.numberToBytesBE(n.mod(s+o,Qu),32)}(e,r),t=rc(e)),{privKey:e,pubKey:t}}function xd(e){if(void 0===e.script||void 0===e.amount)throw new Error("Transaction/output: script and amount required");return{script:e.script,amount:e.amount}}function Sd(e){if(void 0===e.txid||void 0===e.index)throw new Error("Transaction/input: txid and index required");return{txid:e.txid,index:e.index,sequence:wd(e.sequence,yd),finalScriptSig:wd(e.finalScriptSig,du)}}function kd(e){for(const t in e){const n=t;Hc.includes(n)||delete e[n]}}!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.ALL=1]="ALL",e[e.NONE=2]="NONE",e[e.SINGLE=3]="SINGLE",e[e.ANYONECANPAY=128]="ANYONECANPAY"}(_d||(_d={})),function(e){e[e.DEFAULT=0]="DEFAULT",e[e.ALL=1]="ALL",e[e.NONE=2]="NONE",e[e.SINGLE=3]="SINGLE",e[e.DEFAULT_ANYONECANPAY=128]="DEFAULT_ANYONECANPAY",e[e.ALL_ANYONECANPAY=129]="ALL_ANYONECANPAY",e[e.NONE_ANYONECANPAY=130]="NONE_ANYONECANPAY",e[e.SINGLE_ANYONECANPAY=131]="SINGLE_ANYONECANPAY"}(bd||(bd={}));const Od=Mu({txid:Vu(32,!0),index:zu});function Ad(e){if("number"!=typeof e||"string"!=typeof bd[e])throw new Error(`Invalid SigHash=${e}`);return e}function Pd(e){const t=31&e;return{isAny:!!(e&_d.ANYONECANPAY),isNone:t===_d.NONE,isSingle:t===_d.SINGLE}}function Td(e){if(e.nonWitnessUtxo&&void 0!==e.index){const t=e.nonWitnessUtxo.outputs.length-1;if(e.index>t)throw new Error(`validateInput: index(${e.index}) not in nonWitnessUtxo`);const n=e.nonWitnessUtxo.outputs[e.index];if(e.witnessUtxo&&(!ec(e.witnessUtxo.script,n.script)||e.witnessUtxo.amount!==n.amount))throw new Error("validateInput: witnessUtxo different from nonWitnessUtxo");if(e.txid){if(e.nonWitnessUtxo.outputs.length-1<e.index)throw new Error("nonWitnessUtxo: incorect output index");const t=$d.fromRaw(Sc.encode(e.nonWitnessUtxo),{allowUnknownOutputs:!0,disableScriptCheck:!0,allowUnknownInputs:!0}),n=Fi.encode(e.txid);if(t.isFinal&&t.id!==n)throw new Error(`nonWitnessUtxo: wrong txid, exp=${n} got=${t.id}`)}}return e}function Id(e){if(e.nonWitnessUtxo){if(void 0===e.index)throw new Error("Unknown input index");return e.nonWitnessUtxo.outputs[e.index]}if(e.witnessUtxo)return e.witnessUtxo;throw new Error("Cannot find previous output info")}function Nd(e,t,n,r=!1,i=!1){let{nonWitnessUtxo:s,txid:o}=e;"string"==typeof s&&(s=Fi.decode(s)),Ju(s)&&(s=Sc.decode(s)),"nonWitnessUtxo"in e||void 0!==s||(s=t?.nonWitnessUtxo),"string"==typeof o&&(o=Fi.decode(o)),void 0===o&&(o=t?.txid);let a,u={...t,...e,nonWitnessUtxo:s,txid:o};return"nonWitnessUtxo"in e||void 0!==u.nonWitnessUtxo||delete u.nonWitnessUtxo,void 0===u.sequence&&(u.sequence=yd),null===u.tapMerkleRoot&&delete u.tapMerkleRoot,u=td(jc,u,t,n,i),qc.encode(u),u.nonWitnessUtxo&&void 0!==u.index?a=u.nonWitnessUtxo.outputs[u.index]:u.witnessUtxo&&(a=u.witnessUtxo),a&&!r&&ud(a&&a.script,u.redeemScript,u.witnessScript),u}function Ud(e,t=!1){let n="legacy",r=_d.ALL;const i=Id(e),s=od.decode(i.script);let o=s.type,a=s;const u=[s];if("tr"===s.type)return r=_d.DEFAULT,{txType:"taproot",type:"tr",last:s,lastScript:i.script,defaultSighash:r,sighash:e.sighashType||r};{if("wpkh"!==s.type&&"wsh"!==s.type||(n="segwit"),"sh"===s.type){if(!e.redeemScript)throw new Error("inputType: sh without redeemScript");let t=od.decode(e.redeemScript);"wpkh"!==t.type&&"wsh"!==t.type||(n="segwit"),u.push(t),a=t,o+=`-${t.type}`}if("wsh"===a.type){if(!e.witnessScript)throw new Error("inputType: wsh without witnessScript");let t=od.decode(e.witnessScript);"wsh"===t.type&&(n="segwit"),u.push(t),a=t,o+=`-${t.type}`}const i=u[u.length-1];if("sh"===i.type||"wsh"===i.type)throw new Error("inputType: sh/wsh cannot be terminal type");const c={type:o,txType:n,last:i,lastScript:od.encode(i),defaultSighash:r,sighash:e.sighashType||r};if("legacy"===n&&!t&&!e.nonWitnessUtxo)throw new Error("Transaction/sign: legacy input without nonWitnessUtxo, can result in attack that forces paying higher fees. Pass allowLegacyWitnessUtxo=true, if you sure");return c}}class $d{constructor(e={}){this.global={},this.inputs=[],this.outputs=[];const t=this.opts=function(e){if(void 0!==e&&"[object Object]"!=={}.toString.call(e))throw new Error(`Wrong object type for transaction options: ${e}`);const t={...e,version:wd(e.version,2),lockTime:wd(e.lockTime,0),PSBTVersion:wd(e.PSBTVersion,0)};if(void 0!==t.allowUnknowInput&&(e.allowUnknownInputs=t.allowUnknowInput),void 0!==t.allowUnknowOutput&&(e.allowUnknownOutputs=t.allowUnknowOutput),"number"!=typeof t.lockTime)throw new Error("Transaction lock time should be number");if(zu.encode(t.lockTime),0!==t.PSBTVersion&&2!==t.PSBTVersion)throw new Error(`Unknown PSBT version ${t.PSBTVersion}`);for(const e of["allowUnknownVersion","allowUnknownOutputs","allowUnknownInputs","disableScriptCheck","bip174jsCompat","allowLegacyWitnessUtxo","lowR"]){const n=t[e];if(void 0!==n&&"boolean"!=typeof n)throw new Error(`Transation options wrong type: ${e}=${n} (${typeof n})`)}if(t.allowUnknownVersion?"number"==typeof t.version:![-1,0,1,2,3].includes(t.version))throw new Error(`Unknown version: ${t.version}`);if(void 0!==t.customScripts){const e=t.customScripts;if(!Array.isArray(e))throw new Error(`wrong custom scripts type (expected array): customScripts=${e} (${typeof e})`);for(const t of e){if("function"!=typeof t.encode||"function"!=typeof t.decode)throw new Error(`wrong script=${t} (${typeof t})`);if(void 0!==t.finalizeTaproot&&"function"!=typeof t.finalizeTaproot)throw new Error(`wrong script=${t} (${typeof t})`)}}return Object.freeze(t)}(e);0!==t.lockTime&&(this.global.fallbackLocktime=t.lockTime),this.global.txVersion=t.version}static fromRaw(e,t={}){const n=Sc.decode(e),r=new $d({...t,version:n.version,lockTime:n.lockTime});for(const e of n.outputs)r.addOutput(e);if(r.outputs=n.outputs,r.inputs=n.inputs,n.witnesses)for(let e=0;e<n.witnesses.length;e++)r.inputs[e].finalScriptWitness=n.witnesses[e];return r}static fromPSBT(e,t={}){let n;try{n=nd.decode(e)}catch(t){try{n=rd.decode(e)}catch(e){throw t}}const r=n.global.version||0;if(0!==r&&2!==r)throw new Error(`Wrong PSBT version=${r}`);const i=n.global.unsignedTx,s=0===r?i?.version:n.global.txVersion,o=0===r?i?.lockTime:n.global.fallbackLocktime,a=new $d({...t,version:s,lockTime:o,PSBTVersion:r}),u=0===r?i?.inputs.length:n.global.inputCount;a.inputs=n.inputs.slice(0,u).map((e,t)=>Td({finalScriptSig:du,...n.global.unsignedTx?.inputs[t],...e}));const c=0===r?i?.outputs.length:n.global.outputCount;return a.outputs=n.outputs.slice(0,c).map((e,t)=>({...e,...n.global.unsignedTx?.outputs[t]})),a.global={...n.global,txVersion:s},0!==o&&(a.global.fallbackLocktime=o),a}toPSBT(e=this.opts.PSBTVersion){if(0!==e&&2!==e)throw new Error(`Wrong PSBT version=${e}`);const t=this.inputs.map(t=>Td(Xc(e,jc,t)));for(const e of t)e.partialSig&&!e.partialSig.length&&delete e.partialSig,e.finalScriptSig&&!e.finalScriptSig.length&&delete e.finalScriptSig,e.finalScriptWitness&&!e.finalScriptWitness.length&&delete e.finalScriptWitness;const n=this.outputs.map(t=>Xc(e,Fc,t)),r={...this.global};return 0===e?(r.unsignedTx=kc.decode(kc.encode({version:this.version,lockTime:this.lockTime,inputs:this.inputs.map(Sd).map(e=>({...e,finalScriptSig:du})),outputs:this.outputs.map(xd)})),delete r.fallbackLocktime,delete r.txVersion):(r.version=e,r.txVersion=this.version,r.inputCount=this.inputs.length,r.outputCount=this.outputs.length,r.fallbackLocktime&&0===r.fallbackLocktime&&delete r.fallbackLocktime),this.opts.bip174jsCompat&&(t.length||t.push({}),n.length||n.push({})),(0===e?nd:rd).encode({global:r,inputs:t,outputs:n})}get lockTime(){let e=0,t=0,n=0,r=0;for(const i of this.inputs)i.requiredHeightLocktime&&(e=Math.max(e,i.requiredHeightLocktime),t++),i.requiredTimeLocktime&&(n=Math.max(n,i.requiredTimeLocktime),r++);return t&&t>=r?e:0!==n?n:this.global.fallbackLocktime||0}get version(){if(void 0===this.global.txVersion)throw new Error("No global.txVersion");return this.global.txVersion}inputStatus(e){this.checkInputIdx(e);const t=this.inputs[e];return t.finalScriptSig&&t.finalScriptSig.length||t.finalScriptWitness&&t.finalScriptWitness.length?"finalized":t.tapKeySig||t.tapScriptSig&&t.tapScriptSig.length||t.partialSig&&t.partialSig.length?"signed":"unsigned"}inputSighash(e){this.checkInputIdx(e);const t=this.inputs[e].sighashType,n=void 0===t?_d.DEFAULT:t,r=n===_d.DEFAULT?_d.ALL:3&n;return{sigInputs:n&_d.ANYONECANPAY,sigOutputs:r}}signStatus(){let e=!0,t=!0,n=[],r=[];for(let i=0;i<this.inputs.length;i++){if("unsigned"===this.inputStatus(i))continue;const{sigInputs:s,sigOutputs:o}=this.inputSighash(i);if(s===_d.ANYONECANPAY?n.push(i):e=!1,o===_d.ALL)t=!1;else if(o===_d.SINGLE)r.push(i);else if(o!==_d.NONE)throw new Error(`Wrong signature hash output type: ${o}`)}return{addInput:e,addOutput:t,inputs:n,outputs:r}}get isFinal(){for(let e=0;e<this.inputs.length;e++)if("finalized"!==this.inputStatus(e))return!1;return!0}get hasWitnesses(){let e=!1;for(const t of this.inputs)t.finalScriptWitness&&t.finalScriptWitness.length&&(e=!0);return e}get weight(){if(!this.isFinal)throw new Error("Transaction is not finalized");let e=32;const t=this.outputs.map(xd);e+=4*wc.encode(this.outputs.length).length;for(const n of t)e+=32+4*vc.encode(n.script).length;this.hasWitnesses&&(e+=2),e+=4*wc.encode(this.inputs.length).length;for(const t of this.inputs)e+=160+4*vc.encode(t.finalScriptSig||du).length,this.hasWitnesses&&t.finalScriptWitness&&(e+=_c.encode(t.finalScriptWitness).length);return e}get vsize(){return e=this.weight,Math.ceil(e/4);var e}toBytes(e=!1,t=!1){return Sc.encode({version:this.version,lockTime:this.lockTime,inputs:this.inputs.map(Sd).map(t=>({...t,finalScriptSig:e&&t.finalScriptSig||du})),outputs:this.outputs.map(xd),witnesses:this.inputs.map(e=>e.finalScriptWitness||[]),segwitFlag:t&&this.hasWitnesses})}get unsignedTx(){return this.toBytes(!1,!1)}get hex(){return Fi.encode(this.toBytes(!0,this.hasWitnesses))}get hash(){if(!this.isFinal)throw new Error("Transaction is not finalized");return Fi.encode(nc(this.toBytes(!0)))}get id(){if(!this.isFinal)throw new Error("Transaction is not finalized");return Fi.encode(nc(this.toBytes(!0)).reverse())}checkInputIdx(e){if(!Number.isSafeInteger(e)||0>e||e>=this.inputs.length)throw new Error(`Wrong input index=${e}`)}getInput(e){return this.checkInputIdx(e),vd(this.inputs[e])}get inputsLength(){return this.inputs.length}addInput(e,t=!1){if(!t&&!this.signStatus().addInput)throw new Error("Tx has signed inputs, cannot add new one");return this.inputs.push(Nd(e,void 0,void 0,this.opts.disableScriptCheck)),this.inputs.length-1}updateInput(e,t,n=!1){let r;if(this.checkInputIdx(e),!n){const t=this.signStatus();t.addInput&&!t.inputs.includes(e)||(r=Dc)}this.inputs[e]=Nd(t,this.inputs[e],r,this.opts.disableScriptCheck,this.opts.allowUnknown)}checkOutputIdx(e){if(!Number.isSafeInteger(e)||0>e||e>=this.outputs.length)throw new Error(`Wrong output index=${e}`)}getOutput(e){return this.checkOutputIdx(e),vd(this.outputs[e])}getOutputAddress(e,t=hc){const n=this.getOutput(e);if(n.script)return pd(t).encode(od.decode(n.script))}get outputsLength(){return this.outputs.length}normalizeOutput(e,t,n){let{amount:r,script:i}=e;if(void 0===r&&(r=t?.amount),"bigint"!=typeof r)throw new Error(`Wrong amount type, should be of type bigint in sats, but got ${r} of type ${typeof r}`);"string"==typeof i&&(i=Fi.decode(i)),void 0===i&&(i=t?.script);let s={...t,...e,amount:r,script:i};if(void 0===s.amount&&delete s.amount,s=td(Fc,s,t,n,this.opts.allowUnknown),Mc.encode(s),s.script&&!this.opts.allowUnknownOutputs&&"unknown"===od.decode(s.script).type)throw new Error("Transaction/output: unknown output script type, there is a chance that input is unspendable. Pass allowUnknownOutputs=true, if you sure");return this.opts.disableScriptCheck||ud(s.script,s.redeemScript,s.witnessScript),s}addOutput(e,t=!1){if(!t&&!this.signStatus().addOutput)throw new Error("Tx has signed outputs, cannot add new one");return this.outputs.push(this.normalizeOutput(e)),this.outputs.length-1}updateOutput(e,t,n=!1){let r;if(this.checkOutputIdx(e),!n){const t=this.signStatus();t.addOutput&&!t.outputs.includes(e)||(r=Vc)}this.outputs[e]=this.normalizeOutput(t,this.outputs[e],r)}addOutputAddress(e,t,n=hc){return this.addOutput({script:od.encode(pd(n).decode(e)),amount:t})}get fee(){let e=0n;for(const t of this.inputs){const n=Id(t);if(!n)throw new Error("Empty input amount");e+=n.amount}const t=this.outputs.map(xd);for(const n of t)e-=n.amount;return e}preimageLegacy(e,t,n){const{isAny:r,isNone:i,isSingle:s}=Pd(n);if(e<0||!Number.isSafeInteger(e))throw new Error(`Invalid input idx=${e}`);if(s&&e>=this.outputs.length||e>=this.inputs.length)return Cu.encode(1n);t=gc.encode(gc.decode(t).filter(e=>"CODESEPARATOR"!==e));let o=this.inputs.map(Sd).map((n,r)=>({...n,finalScriptSig:r===e?t:du}));r?o=[o[e]]:(i||s)&&(o=o.map((t,n)=>({...t,sequence:n===e?t.sequence:0})));let a=this.outputs.map(xd);i?a=[]:s&&(a=a.slice(0,e).fill(md).concat([a[e]]));const u=Sc.encode({lockTime:this.lockTime,version:this.version,segwitFlag:!1,inputs:o,outputs:a});return nc(u,Hu.encode(n))}preimageWitnessV0(e,t,n,r){const{isAny:i,isNone:s,isSingle:o}=Pd(n);let a=gd,u=gd,c=gd;const d=this.inputs.map(Sd),h=this.outputs.map(xd);i||(a=nc(...d.map(Od.encode))),i||o||s||(u=nc(...d.map(e=>zu.encode(e.sequence)))),o||s?o&&e<h.length&&(c=nc(xc.encode(h[e]))):c=nc(...h.map(xc.encode));const f=d[e];return nc(Hu.encode(this.version),a,u,Vu(32,!0).encode(f.txid),zu.encode(f.index),vc.encode(t),Bu.encode(r),zu.encode(f.sequence),c,zu.encode(this.lockTime),zu.encode(n))}preimageWitnessV1(e,t,n,r,i=-1,s,o=192,a){if(!Array.isArray(r)||this.inputs.length!==r.length)throw new Error(`Invalid amounts array=${r}`);if(!Array.isArray(t)||this.inputs.length!==t.length)throw new Error(`Invalid prevOutScript array=${t}`);const u=[Fu.encode(0),Fu.encode(n),Hu.encode(this.version),zu.encode(this.lockTime)],c=n===_d.DEFAULT?_d.ALL:3&n,d=n&_d.ANYONECANPAY,h=this.inputs.map(Sd),f=this.outputs.map(xd);d!==_d.ANYONECANPAY&&u.push(...[h.map(Od.encode),r.map(Bu.encode),t.map(vc.encode),h.map(e=>zu.encode(e.sequence))].map(e=>ee(Xu(...e)))),c===_d.ALL&&u.push(ee(Xu(...f.map(xc.encode))));const l=(a?1:0)|(s?2:0);if(u.push(new Uint8Array([l])),d===_d.ANYONECANPAY){const n=h[e];u.push(Od.encode(n),Bu.encode(r[e]),vc.encode(t[e]),zu.encode(n.sequence))}else u.push(zu.encode(e));return 1&l&&u.push(ee(vc.encode(a||du))),c===_d.SINGLE&&u.push(e<f.length?ee(xc.encode(f[e])):gd),s&&u.push(cd(s,o),Fu.encode(0),Hu.encode(i)),ac("TapSighash",...u)}signIdx(e,t,n,r){this.checkInputIdx(t);const i=this.inputs[t],s=Ud(i,this.opts.allowLegacyWitnessUtxo);if(!Ju(e)){if(!i.bip32Derivation||!i.bip32Derivation.length)throw new Error("bip32Derivation: empty");const n=i.bip32Derivation.filter(t=>t[1].fingerprint==e.fingerprint).map(([t,{path:n}])=>{let r=e;for(const e of n)r=r.deriveChild(e);if(!ec(r.publicKey,t))throw new Error("bip32Derivation: wrong pubKey");if(!r.privateKey)throw new Error("bip32Derivation: no privateKey");return r});if(!n.length)throw new Error(`bip32Derivation: no items with fingerprint=${e.fingerprint}`);let r=!1;for(const e of n)this.signIdx(e.privateKey,t)&&(r=!0);return r}n?n.forEach(Ad):n=[s.defaultSighash];const o=s.sighash;if(!n.includes(o))throw new Error(`Input with not allowed sigHash=${o}. Allowed: ${n.join(", ")}`);const{sigOutputs:a}=this.inputSighash(t);if(a===_d.SINGLE&&t>=this.outputs.length)throw new Error(`Input with sighash SINGLE, but there is no output with corresponding index=${t}`);const u=Id(i);if("taproot"===s.txType){const n=this.inputs.map(Id),s=n.map(e=>e.script),a=n.map(e=>e.amount);let u=!1,c=rc(e),d=i.tapMerkleRoot||du;if(i.tapInternalKey){const{pubKey:n,privKey:h}=Ed(e,c,i.tapInternalKey,d),[f,l]=function(e,t){const n=$t.utils,r=dc(e,t),i=n.lift_x(n.bytesToNumberBE(e)).add(Yu.fromPrivateKey(r)),s=i.hasEvenY()?0:1;return[n.pointToBytes(i),s]}(i.tapInternalKey,d);if(ec(f,n)){const e=this.preimageWitnessV1(t,s,o,a),n=Xu(oc(e,h,r),o!==_d.DEFAULT?new Uint8Array([o]):du);this.updateInput(t,{tapKeySig:n},!0),u=!0}}if(i.tapLeafScript){i.tapScriptSig=i.tapScriptSig||[];for(const[n,d]of i.tapLeafScript){const n=d.subarray(0,-1),i=gc.decode(n),h=d[d.length-1],f=cd(n,h);if(-1===i.findIndex(e=>Ju(e)&&ec(e,c)))continue;const l=this.preimageWitnessV1(t,s,o,a,void 0,n,h),p=Xu(oc(l,e,r),o!==_d.DEFAULT?new Uint8Array([o]):du);this.updateInput(t,{tapScriptSig:[[{pubKey:c,leafHash:f},p]]},!0),u=!0}}if(!u)throw new Error("No taproot scripts signed");return!0}{const n=ic(e);let r=!1;const i=tc(n);for(const e of gc.decode(s.lastScript))Ju(e)&&(ec(e,n)||ec(e,i))&&(r=!0);if(!r)throw new Error(`Input script doesn't have pubKey: ${s.lastScript}`);let a;if("legacy"===s.txType)a=this.preimageLegacy(t,s.lastScript,o);else{if("segwit"!==s.txType)throw new Error(`Transaction/sign: unknown tx type: ${s.txType}`);{let e=s.lastScript;"wpkh"===s.last.type&&(e=od.encode({type:"pkh",hash:s.last.hash})),a=this.preimageWitnessV0(t,e,o,u.amount)}}const c=function(e,t,n=!1){let r=yt.sign(e,t);if(n&&!sc(r)){const n=new Uint8Array(32);let i=0;for(;!sc(r);)if(n.set(zu.encode(i++)),r=yt.sign(e,t,{extraEntropy:n}),i>4294967295)throw new Error("lowR counter overflow: report the error")}return r.toDERRawBytes()}(a,e,this.opts.lowR);this.updateInput(t,{partialSig:[[n,Xu(c,new Uint8Array([o]))]]},!0)}return!0}sign(e,t,n){let r=0;for(let i=0;i<this.inputs.length;i++)try{this.signIdx(e,i,t,n)&&r++}catch(e){}if(!r)throw new Error("No inputs signed");return r}finalizeIdx(e){if(this.checkInputIdx(e),this.fee<0n)throw new Error("Outputs spends more than inputs amount");const t=this.inputs[e],n=Ud(t,this.opts.allowLegacyWitnessUtxo);if("taproot"===n.txType){if(t.tapKeySig)t.finalScriptWitness=[t.tapKeySig];else{if(!t.tapLeafScript||!t.tapScriptSig)throw new Error("finalize/taproot: unknown input");{const e=t.tapLeafScript.sort((e,t)=>$c.encode(e[0]).length-$c.encode(t[0]).length);for(const[n,r]of e){const e=r.slice(0,-1),i=r[r.length-1],s=od.decode(e),o=cd(e,i),a=t.tapScriptSig.filter(e=>ec(e[0].leafHash,o));let u=[];if("tr_ms"===s.type){const e=s.m,t=s.pubkeys;let n=0;for(const r of t){const t=a.findIndex(e=>ec(e[0].pubKey,r));n!==e&&-1!==t?(u.push(a[t][1]),n++):u.push(du)}if(n!==e)continue}else if("tr_ns"===s.type){for(const e of s.pubkeys){const t=a.findIndex(t=>ec(t[0].pubKey,e));-1!==t&&u.push(a[t][1])}if(u.length!==s.pubkeys.length)continue}else{if("unknown"!==s.type||!this.opts.allowUnknownInputs){const r=this.opts.customScripts;if(r)for(const i of r){if(!i.finalizeTaproot)continue;const r=gc.decode(e),s=i.encode(r);if(void 0===s)continue;const o=i.finalizeTaproot(e,s,a);if(o)return t.finalScriptWitness=o.concat($c.encode(n)),t.finalScriptSig=du,void kd(t)}throw new Error("Finalize: Unknown tapLeafScript")}{const t=gc.decode(e);if(u=a.map(([{pubKey:e},n])=>{const r=t.findIndex(t=>Ju(t)&&ec(t,e));if(-1===r)throw new Error("finalize/taproot: cannot find position of pubkey in script");return{signature:n,pos:r}}).sort((e,t)=>e.pos-t.pos).map(e=>e.signature),!u.length)continue}}t.finalScriptWitness=u.reverse().concat([e,$c.encode(n)]);break}if(!t.finalScriptWitness)throw new Error("finalize/taproot: empty witness")}}return t.finalScriptSig=du,void kd(t)}if(!t.partialSig||!t.partialSig.length)throw new Error("Not enough partial sign");let r,i,s=du,o=[];if("ms"===n.last.type){const e=n.last.m,r=n.last.pubkeys;let i=[];for(const e of r){const n=t.partialSig.find(t=>ec(e,t[0]));n&&i.push(n[1])}if(i=i.slice(0,e),i.length!==e)throw new Error(`Multisig: wrong signatures count, m=${e} n=${r.length} signatures=${i.length}`);s=gc.encode([0,...i])}else if("pk"===n.last.type)s=gc.encode([t.partialSig[0][1]]);else if("pkh"===n.last.type)s=gc.encode([t.partialSig[0][1],t.partialSig[0][0]]);else if("wpkh"===n.last.type)s=du,o=[t.partialSig[0][1],t.partialSig[0][0]];else if("unknown"===n.last.type&&!this.opts.allowUnknownInputs)throw new Error("Unknown inputs not allowed");if(n.type.includes("wsh-")&&(s.length&&n.lastScript.length&&(o=gc.decode(s).map(e=>{if(0===e)return du;if(Ju(e))return e;throw new Error(`Wrong witness op=${e}`)})),o=o.concat(n.lastScript)),"segwit"===n.txType&&(i=o),n.type.startsWith("sh-wsh-")?r=gc.encode([gc.encode([0,ee(n.lastScript)])]):n.type.startsWith("sh-")?r=gc.encode([...gc.decode(s),n.lastScript]):n.type.startsWith("wsh-")||"segwit"!==n.txType&&(r=s),!r&&!i)throw new Error("Unknown error finalizing input");r&&(t.finalScriptSig=r),i&&(t.finalScriptWitness=i),kd(t)}finalize(){for(let e=0;e<this.inputs.length;e++)this.finalizeIdx(e)}extract(){if(!this.isFinal)throw new Error("Transaction has unfinalized inputs");if(!this.outputs.length)throw new Error("Transaction has no outputs");if(this.fee<0n)throw new Error("Outputs spends more than inputs amount");return this.toBytes(!0,!0)}combine(e){for(const t of["PSBTVersion","version","lockTime"])if(this.opts[t]!==e.opts[t])throw new Error(`Transaction/combine: different ${t} this=${this.opts[t]} other=${e.opts[t]}`);for(const t of["inputs","outputs"])if(this[t].length!==e[t].length)throw new Error(`Transaction/combine: different ${t} length this=${this[t].length} other=${e[t].length}`);const t=this.global.unsignedTx?kc.encode(this.global.unsignedTx):du,n=e.global.unsignedTx?kc.encode(e.global.unsignedTx):du;if(!ec(t,n))throw new Error("Transaction/combine: different unsigned tx");this.global=td(zc,this.global,e.global,void 0,this.opts.allowUnknown);for(let t=0;t<this.inputs.length;t++)this.updateInput(t,e.inputs[t],!0);for(let t=0;t<this.outputs.length;t++)this.updateOutput(t,e.outputs[t],!0);return this}clone(){return $d.fromPSBT(this.toPSBT(this.opts.PSBTVersion),this.opts)}}function Cd(e){const t=Ki.decode(e);return $d.fromPSBT(t,{allowUnknownOutputs:!0})}function Bd(e){if(e instanceof $d)return e;if("string"==typeof e)return Cd(e);throw new Error("invalid psbt input: "+e)}function Rd(e){const t=Bd(e),n=t.inputsLength,r=[];for(let e=0;e<n;e++){const n=t.getInput(e);r.push(n)}return r}function Ld(e){const t=Bd(e),n=t.outputsLength,r=[];for(let e=0;e<n;e++){const n=t.getOutput(e);r.push(n)}return r}function zd(e){for(let t=0;t<e.inputsLength;t++){const n=e.getInput(t),r=n.redeemScript,i=n.partialSig?.at(0);void 0!==r&&void 0!==i&&e.finalizeIdx(t)}return e}var jd=Object.freeze({__proto__:null,assert_psbt_is_funded:function(e){const t=Bd(e),n=Rd(t),r=Ld(t),i=n.reduce((e,t)=>e+Number(t.witnessUtxo?.amount??0),0),s=r.reduce((e,t)=>e+Number(t.amount??0),0);b.ok(i>=s,`value in (${i}) < value out (${s})`)},collect_prevouts:function(e){const t=[],n=[],r=Bd(e);for(let e=0;e<r.inputsLength;e++){const i=r.getInput(e);b.exists(i.witnessUtxo,`witness utxo does not exist for input ${e}`),t.push(i.witnessUtxo.amount),n.push(i.witnessUtxo.script)}return{amounts:t,scripts:n}},collect_vins:Rd,collect_vouts:Ld,decode_psbt:Cd,encode_psbt:function(e){const t=e.toPSBT(0);return Ki.encode(t)},finalize_legacy_inputs:zd,get_txhex:function(e){let t=Bd(e);return t=zd(t),t.hex},get_vsize:function(e){return Bd(e).vsize},parse_psbt:Bd}),Hd=Object.freeze({__proto__:null,format_sigflag:Ns,hash_amounts:Uo,hash_outpoints:Io,hash_output:Bo,hash_outputs:Co,hash_scripts:$o,hash_segwit_tx:_o,hash_sequence:No,hash_taproot_tx:To,parse_txinput:Is});var Dd=Object.freeze({__proto__:null,sign_segwit_tx:Lo,sign_taproot_tx:zo,verify_segwit_tx:function(e,t={}){return console.warn("verify_segwit_tx is not implemented"),!0},verify_taproot_tx:function(e,t={}){return console.warn("verify_taproot_tx is not implemented"),!0}});function Fd(e,t,n=[]){const r=[],i=[];if(e.length<1)throw new Error("Tree is empty!");for(let i=0;i<e.length;i++){const s=e[i];if(Array.isArray(s)){let[e,i,o]=Fd(s,t);t=i,r.push(e);for(const e of o)n.push(e)}else{const e=m.bytes(s).hex;r.push(e)}}if(1===r.length)return[r[0],t,n];r.sort(),r.length%2!=0&&r.push(r[r.length-1]);for(let e=0;e<r.length-1;e+=2){const s=Oo(r[e],r[e+1]).hex;i.push(s),"string"==typeof t&&(t===r[e]?(n.push(r[e+1]),t=s):t===r[e+1]&&(n.push(r[e]),t=s))}return Fd(i,t,n)}function Vd(e){const t=new y(e),n=t.read(1).num,r=t.read(32).hex,[i,s]=Zd(n),o=[];for(;t.size>=32;)o.push(t.read(32).hex);if(0!==t.size)throw new Error("Non-empty buffer on control block: "+String(t));return{int_key:r,path:o,parity:s,version:i}}function Zd(e){return e%2==0?[e-0,2]:[e-1,3]}function Kd(e){b.size(e,33,"invalid pubkey size");const[t]=m.bytes(e);if(2===t)return 0;if(3===t)return 1;throw new Error("Invalid parity bit: "+String(t))}const Wd=192;var qd=Object.freeze({__proto__:null,create_taproot:function(e){hs.parse(e);const{pubkey:t,version:n=Wd}=e,r=e.leaves??[],i=void 0!==e.target?m.bytes(e.target).hex:void 0;let s,o=[];if(r.length>0){const[e,t,n]=Fd(r,i);o=n,s=e}else s=i;const a=Po(t,s),u=Rt(t,a,"ecdsa"),c=Kd(u),d=jt(u,"bip340"),h=[m.num(n+c),m.bytes(t)];o.length>0&&o.forEach(e=>h.push(e));const f=m.join(h);return{int_key:m.bytes(t).hex,parity:c,taproot:s??null,cblock:f.hex,tapkey:d.hex,taptweak:a.hex}},encode_leaf_version:Ao,encode_tapbranch:Oo,encode_tapleaf:ko,encode_tapscript:So,encode_taptweak:Po,get_merkle_root:function(e){return Fd(e)[0]},merkleize:Fd,parse_cblock:Vd,parse_cblock_parity:Zd,parse_pubkey_parity:Kd,parse_taproot_witness:function(e){const{cblock:t,params:n,script:r}=ka(e);b.exists(t,"cblock is null"),b.exists(r,"script is null");const i=Vd(t);let s=So(r,i.version).hex;for(const e of i.path)s=Oo(s,e).hex;const o=Po(i.int_key,s),a=Rt(i.int_key,o,"bip340");return n.map(e=>m.bytes(e).hex),{cblock:i,params:n,script:r,tapkey:a.hex,tweak:o.hex}},verify_taproot:function(e,t,n){b.size(e,32);const{parity:r,path:i,int_key:s}=Vd(n),o=m.join([r,e]);let a=m.bytes(t).hex;for(const e of i)a=Oo(a,e).hex;const u=Rt(s,Po(s,a),"ecdsa");return o.hex===u.hex}});return e.ADDRESS=cu,e.CONST=rs,e.META=xa,e.PSBT=jd,e.SCHEMA=_s,e.SCRIPT=Ms,e.SIGHASH=Hd,e.SIGNER=Dd,e.TAPROOT=qd,e.TX=vo,e.Transaction=class{constructor(e){this._tx="string"!=typeof e?Ts(e):ss(e),this._vin=this._tx.vin.map(e=>new Ta(e)),this._vout=this._tx.vout.map(e=>new Sa(e)),this._size=mo(this._tx),this._hash=po(this._tx),this._value=go(this._tx)}get data(){return{hash:this.hash,locktime:this.locktime,return:this.return,size:this.size,spends:this.spends,txid:this.txid,value:this.value,version:this.version,vin:this.vin.map(e=>e.data),vout:this.vout.map(e=>e.data)}}get hash(){return this._hash}get locktime(){return{hex:oo(this._tx.locktime).hex,data:Ho.decode(this._tx.locktime),value:this._tx.locktime}}get return(){return this._tx.vout.find(e=>uo(e.script_pk))||null}get size(){return{...this._size,segwit:this._vin.reduce((e,t)=>e+(t.witness?.vsize??0),0),vin:this._vin.reduce((e,t)=>e+t.size,0),vout:this._vout.reduce((e,t)=>e+t.size,0),witness:this._vin.reduce((e,t)=>e+(t.witness?.size??0),0)}}get spends(){return this._tx.vin.filter(e=>null!==e.prevout).map(e=>new Sa(e.prevout))}get txid(){return lo(this._tx)}get value(){return this._value}get version(){return this._tx.version}get vin(){return this._vin}get vout(){return this._vout}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}},e.TransactionInput=Ta,e.TransactionOutput=Sa,e.TransactionWitness=Pa,e.TxSigner=class{constructor(e){this._seckey=m.bytes(e).hex}get pubkey(){return{segwit:Bt(this._seckey,"ecdsa"),taproot:Bt(this._seckey,"bip340")}}get sign_msg(){return{ecdsa:e=>{const t=m.bytes(e);return Lt(this._seckey,t)},bip340:e=>{const t=m.bytes(e);return zt(this._seckey,t)}}}get sign_tx(){return{segwit:(e,t)=>Lo(this._seckey,e,t),taproot:(e,t)=>zo(this._seckey,e,t)}}},e.WITNESS=Aa,e}({});
14
+ function di(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function hi(e,...t){if(!di(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 fi(e,t){return!!Array.isArray(t)&&(0===t.length||(e?t.every(e=>"string"==typeof e):t.every(e=>Number.isSafeInteger(e))))}function li(e){if("function"!=typeof e)throw new Error("function expected");return!0}function pi(e,t){if("string"!=typeof t)throw new Error(`${e}: string expected`);return!0}function gi(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function mi(e){if(!Array.isArray(e))throw new Error("array expected")}function yi(e,t){if(!fi(!0,t))throw new Error(`${e}: array of strings expected`)}function wi(e,t){if(!fi(!1,t))throw new Error(`${e}: array of numbers expected`)}function _i(...e){const t=e=>e,n=(e,t)=>n=>e(t(n));return{encode:e.map(e=>e.encode).reduceRight(n,t),decode:e.map(e=>e.decode).reduce(n,t)}}function vi(e){const t="string"==typeof e?e.split(""):e,n=t.length;yi("alphabet",t);const r=new Map(t.map((e,t)=>[e,t]));return{encode:r=>(mi(r),r.map(r=>{if(!Number.isSafeInteger(r)||r<0||r>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${r}". Allowed: ${e}`);return t[r]})),decode:t=>(mi(t),t.map(t=>{pi("alphabet.decode",t);const n=r.get(t);if(void 0===n)throw new Error(`Unknown letter: "${t}". Allowed: ${e}`);return n}))}}function bi(e=""){return pi("join",e),{encode:t=>(yi("join.decode",t),t.join(e)),decode:t=>(pi("join.decode",t),t.split(e))}}function Ei(e,t,n){if(t<2)throw new Error(`convertRadix: invalid from=${t}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(mi(e),!e.length)return[];let r=0;const i=[],s=Array.from(e,e=>{if(gi(e),e<0||e>=t)throw new Error(`invalid integer: ${e}`);return e}),o=s.length;for(;;){let e=0,a=!0;for(let i=r;i<o;i++){const o=s[i],u=t*e,c=u+o;if(!Number.isSafeInteger(c)||u/t!==e||c-o!==u)throw new Error("convertRadix: carry overflow");const d=c/n;e=c%n;const h=Math.floor(d);if(s[i]=h,!Number.isSafeInteger(h)||h*n+e!==c)throw new Error("convertRadix: carry overflow");a&&(h?a=!1:r=i)}if(i.push(e),a)break}for(let t=0;t<e.length-1&&0===e[t];t++)i.push(0);return i.reverse()}qr([ai,ii]),qr([ui,si]),zr().regex(/^[1-9A-HJ-NP-Za-km-z]+$/),zr().regex(/^[a-zA-Z0-9+/]+={0,2}$/),zr().regex(/^[a-zA-Z0-9\-_]+={0,2}$/),zr().regex(/^[a-z]+1[023456789acdefghjklmnpqrstuvwxyz]+$/);const xi=(e,t)=>0===t?e:xi(t,e%t),Si=(e,t)=>e+(t-xi(e,t)),ki=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Oi(e,t,n,r){if(mi(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Si(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Si(t,n)}`);let i=0,s=0;const o=ki[t],a=ki[n]-1,u=[];for(const r of e){if(gi(r),r>=o)throw new Error(`convertRadix2: invalid data word=${r} from=${t}`);if(i=i<<t|r,s+t>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${t}`);for(s+=t;s>=n;s-=n)u.push((i>>s-n&a)>>>0);const e=ki[s];if(void 0===e)throw new Error("invalid carry");i&=e-1}if(i=i<<n-s&a,!r&&s>=t)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&u.push(i>>>0),u}function Ai(e,t=!1){if(gi(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Si(8,e)>32||Si(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!di(n))throw new Error("radix2.encode input should be Uint8Array");return Oi(Array.from(n),8,e,!t)},decode:n=>(wi("radix2.decode",n),Uint8Array.from(Oi(n,e,8,t)))}}function Pi(e){return li(e),function(...t){try{return e.apply(null,t)}catch(e){}}}const Ti=(()=>"function"==typeof Uint8Array.from([]).toBase64&&"function"==typeof Uint8Array.fromBase64)()?{encode:e=>(hi(e),e.toBase64()),decode:e=>(e=>{if(pi("base64",e),e.length>0&&!/^[A-Za-z0-9=+/]+$/.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:"base64",lastChunkHandling:"strict"})})(e)}:_i(Ai(6),vi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),function(e,t="="){return gi(e),pi("padding",t),{encode(n){for(yi("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){yi("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--){if((r-1)*e%8==0)throw new Error("padding: invalid, string has too much padding")}return n.slice(0,r)}}}(6),bi("")),Ii=_i(Ai(6),vi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"),bi("")),Ni=(Ui="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",_i(function(e){return gi(e),{encode:t=>{if(!di(t))throw new Error("radix.encode input should be Uint8Array");return Ei(Array.from(t),256,e)},decode:t=>(wi("radix.decode",t),Uint8Array.from(Ei(t,e,256)))}}(58),vi(Ui),bi("")));var Ui;const $i=e=>{return _i((n=t=>e(e(t)),gi(t=4),li(n),{encode(e){if(!di(e))throw new Error("checksum.encode: input should be Uint8Array");const r=n(e).slice(0,t),i=new Uint8Array(e.length+t);return i.set(e),i.set(r,e.length),i},decode(e){if(!di(e))throw new Error("checksum.decode: input should be Uint8Array");const r=e.slice(0,-t),i=e.slice(-t),s=n(r).slice(0,t);for(let e=0;e<t;e++)if(s[e]!==i[e])throw new Error("Invalid checksum");return r}}),Ni);var t,n},Ci=_i(vi("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),bi("")),Bi=[996825010,642813549,513874426,1027748829,705979059];function Ri(e){const t=e>>25;let n=(33554431&e)<<5;for(let e=0;e<Bi.length;e++)1==(t>>e&1)&&(n^=Bi[e]);return n}function Li(e,t,n=1){const r=e.length;let i=1;for(let t=0;t<r;t++){const n=e.charCodeAt(t);if(n<33||n>126)throw new Error(`Invalid prefix (${e})`);i=Ri(i)^n>>5}i=Ri(i);for(let t=0;t<r;t++)i=Ri(i)^31&e.charCodeAt(t);for(let e of t)i=Ri(i)^e;for(let e=0;e<6;e++)i=Ri(i);return i^=n,Ci.encode(Oi([i%ki[30]],30,5,!1))}function zi(e){const t="bech32"===e?1:734539939,n=Ai(5),r=n.decode,i=n.encode,s=Pi(r);function o(e,n,r=90){pi("bech32.encode prefix",e),di(n)&&(n=Array.from(n)),wi("bech32.encode",n);const i=e.length;if(0===i)throw new TypeError(`Invalid prefix length ${i}`);const s=i+7+n.length;if(!1!==r&&s>r)throw new TypeError(`Length ${s} exceeds limit ${r}`);const o=e.toLowerCase(),a=Li(o,n,t);return`${o}1${Ci.encode(n)}${a}`}function a(e,n=90){pi("bech32.decode input",e);const r=e.length;if(r<8||!1!==n&&r>n)throw new TypeError(`invalid string length: ${r} (${e}). Expected (8..${n})`);const i=e.toLowerCase();if(e!==i&&e!==e.toUpperCase())throw new Error("String must be lowercase or uppercase");const s=i.lastIndexOf("1");if(0===s||-1===s)throw new Error('Letter "1" must be present between prefix and data only');const o=i.slice(0,s),a=i.slice(s+1);if(a.length<6)throw new Error("Data must be at least 6 characters long");const u=Ci.decode(a).slice(0,-6),c=Li(o,u,t);if(!a.endsWith(c))throw new Error(`Invalid checksum in ${e}: expected "${c}"`);return{prefix:o,words:u}}return{encode:o,decode:a,encodeFromBytes:function(e,t){return o(e,i(t))},decodeToBytes:function(e){const{prefix:t,words:n}=a(e,!1);return{prefix:t,words:n,bytes:r(n)}},decodeUnsafe:Pi(a),fromWords:r,fromWordsUnsafe:s,toWords:i}}const ji=zi("bech32"),Hi=zi("bech32m"),Di={encode:e=>(new TextDecoder).decode(e),decode:e=>(new TextEncoder).encode(e)},Fi=(()=>"function"==typeof Uint8Array.from([]).toHex&&"function"==typeof Uint8Array.fromHex)()?{encode:e=>(hi(e),e.toHex()),decode:e=>(pi("hex",e),Uint8Array.fromHex(e))}:_i(Ai(4),vi("0123456789abcdef"),bi(""),(li(Vi=e=>{if("string"!=typeof e||e.length%2!=0)throw new TypeError(`hex.decode: expected string, got ${typeof e} with length ${e.length}`);return e.toLowerCase()}),{encode:e=>e,decode:e=>Vi(e)}));var Vi,Zi,Ki,Wi,qi,Mi;function Gi(e){if("string"!=typeof e||0===e.length)throw new Error(`invalid prefix: ${String(e)}`)}function Yi(e){if(!Array.isArray(e)||!e.every(e=>"number"==typeof e))throw new Error(`invalid words: ${String(e)}`)}!function(e){e.encode=e=>(b.is_uint(e),$i(ee).encode(e)),e.decode=e=>(b.is_base58(e),$i(ee).decode(e))}(Zi||(Zi={})),function(e){e.encode=e=>(b.is_uint(e),Ti.encode(e)),e.decode=e=>(b.is_base64(e),Ti.decode(e))}(Ki||(Ki={})),function(e){e.encode=e=>(b.is_uint(e),Ii.encode(e)),e.decode=e=>(b.is_b64url(e),Ii.decode(e))}(Wi||(Wi={})),function(e){e.to_words=ji.toWords,e.to_bytes=ji.fromWords,e.encode=(e,t,n=!1)=>(Gi(e),Yi(t),ji.encode(e,t,n)),e.decode=(e,t=!1)=>(b.is_bech32(e),ji.decode(e,t))}(qi||(qi={})),function(e){e.to_words=Hi.toWords,e.to_bytes=Hi.fromWords,e.encode=(e,t,n=!1)=>(Gi(e),Yi(t),Hi.encode(e,t,n)),e.decode=(e,t=!1)=>(b.is_bech32(e),Hi.decode(e,t))}(Mi||(Mi={}));const Qi={TXID:"00".repeat(32),VOUT:4294967295},Ji={LOCKTIME:0,SEQUENCE:4294967295,VERSION:2},Xi=[192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,102,126,128,132,150,152,186,188,190],es={p2pkh:/^76a914[0-9a-f]{40}88ac$/i,p2sh:/^a914[0-9a-f]{40}87$/i,p2wpkh:/^0014[0-9a-f]{40}$/i,p2wsh:/^0020[0-9a-f]{64}$/i,p2tr:/^5120[0-9a-f]{64}$/i,opreturn:/^6a[0-9a-f]{2,}$/i},ts=[1,2,3,129,130,131],ns=[0,...ts];var rs=Object.freeze({__proto__:null,COINBASE:Qi,DEFAULT:Ji,LOCK_SCRIPT_REGEX:es,SCRIPT_INT_KEY:"",SIGHASH_DEFAULT:1,SIGHASH_SEGWIT:ts,SIGHASH_TAPROOT:ns,TAPLEAF_DEFAULT_VERSION:192,TAPLEAF_VERSIONS:Xi,TX_SIZE:{GLOBAL_BASE:8,GLOBAL_WIT:10,TXIN_BASE:40,TXOUT_BASE:8}});const is={prevouts:[],segwit:!0};function ss(e,t={}){const n={...is,...t};b.is_bytes(e,"txbytes must be hex or a unit array");const r=new y(e),i=function(e){return e.read(4).reverse().to_num()}(r),s=!!n.segwit&&function(e){const[t,n]=[...e.peek(2)];if(0===t){if(e.read(2),1===n)return!0;throw new Error(`Invalid witness flag: ${n}`)}return!1}(r),o=function(e,t){const n=[],r=e.varint();for(let i=0;i<r;i++){const r=os(e,t.at(i));n.push(r)}return n}(r,n.prevouts),a=function(e){const t=[],n=e.varint();for(let r=0;r<n;r++)try{t.push(as(e))}catch(e){throw new Error(`failed to decode output: ${r}: ${_(e)}`)}return t}(r);if(s)for(const e of o)e.witness=us(r);const u=function(e){return e.read(4).reverse().to_num()}(r);return{version:i,vin:o,vout:a,locktime:u}}function os(e,t=null){const n=e.read(32).reverse().hex,r=e.read(4).reverse().num,i=cs(e,!0),s=e.read(4).reverse().num,o=[];return n===Qi.TXID&&r===Qi.VOUT?{coinbase:i,prevout:null,script_sig:null,sequence:s,txid:n,vout:r,witness:o}:{coinbase:null,prevout:t,script_sig:i,sequence:s,txid:n,vout:r,witness:o}}function as(e){const t=e.read(8).reverse().big,n=cs(e,!0);return b.exists(n,"failed to decode script_pk"),{value:t,script_pk:n}}function us(e){const t=[],n=e.varint();for(let r=0;r<n;r++){const n=cs(e,!0);if(null===n)throw new Error("failed to decode witness element: "+r);t.push(n)}return t}function cs(e,t){const n=!0===t?e.varint("le"):e.size;return n>0?e.read(n).hex:null}const ds=qr([Kr(ci),ci]),hs=Wr({pubkey:ci,leaves:ds.array().optional(),target:ci.optional(),version:Xr.optional()});var fs=Object.freeze({__proto__:null,config:hs,taptree:ds});const ls=Yr.max(2100000000000000n),ps=Wr({value:ls,script_pk:ei}),gs=Wr({coinbase:ei.nullable(),txid:oi,vout:Xr,prevout:ps.nullable(),script_sig:ei.nullable(),sequence:Xr,witness:Kr(ei)}),ms=Wr({version:Xr,vin:Kr(gs),vout:Kr(ps),locktime:Xr}),ys=gs.extend({coinbase:ei.nullable().optional(),prevout:ps.nullable().optional(),script_sig:ei.nullable().optional(),sequence:Xr.optional(),witness:Kr(ei).optional()}),ws=Wr({version:Xr.optional(),vin:Kr(ys).default([]),vout:Kr(ps).default([]),locktime:Xr.optional()});var _s=Object.freeze({__proto__:null,sats:ls,tx_data:ms,tx_input:gs,tx_output:ps,tx_template:ws,vin_template:ys}),vs=Object.freeze({__proto__:null,taproot:fs,tx:_s});function bs(e){ws.parse(e)}function Es(e){ps.parse(e)}function xs(e){ys.parse(e)}function Ss(e){xs(e),b.exists(e.coinbase,"coinbase is required");const t=e.coinbase,n=e.sequence??Ji.SEQUENCE,r=Qi.TXID,i=Qi.VOUT;return{coinbase:t,prevout:null,script_sig:null,sequence:n,witness:e.witness??[],txid:r,vout:i}}function ks(e){xs(e),b.exists(e.prevout,"prevout is required");const t=e.prevout,n=e.script_sig??null,r=e.sequence??Ji.SEQUENCE,i=e.witness??[];return{...e,coinbase:null,prevout:t,script_sig:n,sequence:r,witness:i}}function Os(e){xs(e),b.exists(e.txid,"txid is required"),b.exists(e.vout,"vout is required");const t=e.coinbase??null,n=e.prevout??null,r=e.script_sig??null,i=e.sequence??Ji.SEQUENCE,s=e.witness??[];return null!==t?Ss(e):null!==n?ks(e):{...e,coinbase:t,prevout:n,script_sig:r,sequence:i,witness:s}}function As(e){Es(e);const{script_pk:t,value:n}=e;return{script_pk:t,value:BigInt(n)}}function Ps(e){bs(e);const{vin:t=[],vout:n=[]}=e,r=e.locktime??Ji.LOCKTIME,i=e.version??Ji.VERSION;return{locktime:r,vin:t.map(e=>Os(e)),vout:n.map(e=>As(e)),version:i}}function Ts(e){return"string"==typeof e?ss(e):(bs(e),Ps(e))}function Is(e,t){let{txindex:n,txinput:r}=t??{};if(void 0!==n){if(n>=e.vin.length)throw new Error("Input index out of bounds: "+String(n));r=e.vin.at(n)}return b.ok(void 0!==r),r}function Ns(e){return 0!==e?m.num(e,1).hex:""}const Us={OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_SUCCESS80:80,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_SUCCESS98:98,OP_IF:99,OP_NOTIF:100,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_SUCCESS126:126,OP_SUCCESS127:127,OP_SUCCESS128:128,OP_SUCCESS129:129,OP_SIZE:130,OP_SUCCESS131:131,OP_SUCCESS132:132,OP_SUCCESS133:133,OP_SUCCESS134:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_SUCCESS137:137,OP_SUCCESS138:138,OP_1ADD:139,OP_1SUB:140,OP_SUCCESS141:141,OP_SUCCESS142:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_SUCCESS149:149,OP_SUCCESS150:150,OP_SUCCESS151:151,OP_SUCCESS152:152,OP_SUCCESS153: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_CHECKLOCKTIMEVERIFY:177,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};function $s(e){if(e>186&&e<255)return"OP_SUCCESS"+String(e);for(const[t,n]of Object.entries(Us))if(n===e)return t;throw new Error("OPCODE not found:"+String(e))}function Cs(e){for(const[t,n]of Object.entries(Us))if(t===e)return Number(n);throw new Error("OPCODE not found:"+e)}function Bs(e){switch(!0){case 0===e:return"opcode";case e>=1&&e<=75:return"varint";case 76===e:return"pushdata1";case 77===e:return"pushdata2";case 78===e:return"pushdata4";case e<=254:return"opcode";default:throw new Error(`Invalid word range: ${e}`)}}function Rs(e){switch(!0){case"number"!=typeof e:return!1;case 0===e:return!0;case[].includes(e):return!1;case 75<e&&e<254:return!0;default:return!1}}const Ls=520;function zs(e,t=!1){if(0===e.length)return"00";const n=[];for(const t of e)n.push(js(t));const r=m.join(n);return t?r.prepend(m.varint(r.length,"le")).hex:r.hex}function js(e){let t;if("string"==typeof e){if(e.startsWith("OP_")){const t=Cs(e);return m.num(t,1)}t=m.is_hex(e)?m.hex(e):m.str(e)}else if("number"==typeof e)t=m.num(e);else{if(!(e instanceof Uint8Array))throw new Error("invalid word type:"+typeof e);t=new m(e)}if(1===t.length&&t[0]<=16)0!==t[0]&&(t[0]+=80);else if(t.length>Ls){let e;e=Hs(t),e=e.map(e=>Ds(e)),t=m.join(e)}else t=Ds(t);return t}function Hs(e){const t=[],n=new y(e);for(;n.size>Ls;)t.push(n.read(Ls));return t.push(n.read(n.size)),t}function Ds(e){const t=Fs(e.length);return m.join([t,e])}function Fs(e){const t=m.num(76,1),n=m.num(77,1);switch(!0){case e<=75:return m.num(e);case e>75&&e<256:return m.join([t,m.num(e,1,"le")]);case e>=256&&e<=Ls:return m.join([n,m.num(e,2,"le")]);default:throw new Error("Invalid word size:"+e.toString())}}function Vs(e){const t=new y(e),n=[],r=t.size;let i,s,o,a=0;for(;a<r;)switch(i=t.read(1).num,s=Bs(i),a++,s){case"varint":n.push(t.read(i).hex),a+=i;break;case"pushdata1":o=t.read(1).reverse().num,n.push(t.read(o).hex),a+=o+1;break;case"pushdata2":o=t.read(2).reverse().num,n.push(t.read(o).hex),a+=o+2;break;case"pushdata4":o=t.read(4).reverse().num,n.push(t.read(o).hex),a+=o+4;break;case"opcode":if(!Rs(i))throw new Error(`Invalid OPCODE: ${i}`);n.push($s(i));break;default:throw new Error(`Word type undefined: ${i}`)}return n}function Zs(e){try{return Vs(e).length>0}catch{return!1}}function Ks(e){return m.bytes(e).prefix_varint("le").hex}function Ws(e){return[...("string"==typeof e?e:m.bytes(e).hex).matchAll(/20([0-9a-f]{64})(ac|ad|ba)/gi)].map(e=>e[1])}var qs;!function(e){e.prefix_size=Ks,e.decode=Vs,e.encode=zs,e.is_valid=Zs,e.get_pubkeys=Ws,e.OPCODES=Us}(qs||(qs={}));var Ms=Object.freeze({__proto__:null,OPCODE_MAP:Us,get ScriptUtil(){return qs},decode_script:Vs,encode_script:zs,encode_script_word:js,get_asm_code:Cs,get_op_code:$s,get_op_type:Bs,get_size_varint:Fs,is_valid_op:Rs,is_valid_script:Zs,parse_script_pubkeys:Ws,prefix_script_size:Ks,prefix_word_size:Ds,split_script_word:Hs});function Gs(e,t=!0){const n=Ts(e),{version:r,vin:i,vout:s,locktime:o}=n,a=[Ys(r)];if(t&&a.push(m.hex("0001")),a.push(eo(i)),a.push(ro(s)),t)for(const e of i)a.push(so(e.witness));return a.push(oo(o)),m.join(a)}function Ys(e){return m.num(e,4).reverse()}function Qs(e){return m.hex(e,32).reverse()}function Js(e){return m.num(e,4).reverse()}function Xs(e){return m.num(e,4).reverse()}function eo(e){const t=[m.varint(e.length,"le")];for(const n of e)t.push(to(n));return m.join(t)}function to(e){return null!==e.coinbase?m.join([Qs(Qi.TXID),Js(Qi.VOUT),ao(e.coinbase),Xs(e.sequence)]):m.join([Qs(e.txid),Js(e.vout),ao(e.script_sig),Xs(e.sequence)])}function no(e){return m.big(e,8).reverse()}function ro(e){const t=[m.varint(e.length,"le")];for(const n of e)t.push(io(n));return m.join(t)}function io(e){const{value:t,script_pk:n}=e;return m.join([no(t),ao(n)])}function so(e){const t=[m.varint(e.length)];for(const n of e)t.push(ao(n));return m.join(t)}function oo(e){return m.num(e,4).reverse()}function ao(e){return null!==e?(b.is_hex(e),m.hex(e).prefix_varint("le")):m.hex("00")}function uo(e){return e.startsWith("6a")}function co(e){for(const[t,n]of Object.entries(es))if(n.test(e))return t;return"unknown"}function ho(e){switch(e.slice(0,4)){case"0014":return 0;case"5120":return 1;default:return null}}function fo(e){return sn(Gs(Ts(e),!1)).reverse().hex}function lo(e){return sn(Gs(Ts(e),!0)).reverse().hex}function po(e){const t=Ts(e),n=t.vin.reduce((e,t)=>e+(t.prevout?.value??0n),0n),r=t.vout.reduce((e,t)=>e+t.value,0n);return{fees:n>r?n-r:0n,vin:n,vout:r}}function go(e){const t=Ts(e),n=Gs(t,!1).length,r=Gs(t,!0).length,i=3*n+r,s=i%4>0?1:0;return{base:n,total:r,vsize:Math.floor(i/4)+s,weight:i}}function mo(e){return to(e).length}function yo(e){return io(e).length}var wo=Object.freeze({__proto__:null,assert_has_prevouts:function(e){if(e.some(e=>null===e.prevout))throw new Error("transaction missing prevouts")},assert_tx_data:function(e){ms.parse(e)},assert_tx_input:function(e){gs.parse(e)},assert_tx_output:Es,assert_tx_template:bs,assert_vin_template:xs,create_coinbase_input:Ss,create_spend_input:ks,create_tx:Ps,create_tx_input:Os,create_tx_output:As,decode_tx:ss,encode_script_data:ao,encode_tx:Gs,encode_tx_inputs:eo,encode_tx_locktime:oo,encode_tx_outputs:ro,encode_tx_version:Ys,encode_tx_vout:io,encode_txin_sequence:Xs,encode_txin_txid:Qs,encode_txin_vout:Js,encode_vin:to,encode_vin_witness:so,encode_vout_value:no,get_segwit_size:function(e){return 2+e.filter(e=>e.witness.length>0).map(e=>e.witness).reduce((e,t)=>e+so(t).length,0)},get_tx_value:po,get_txhash:lo,get_txid:fo,get_txin_size:mo,get_txout_size:yo,get_txsize:go,get_vin_size:function(e){return eo(e).length},get_vout_info:function(e){return{type:co(e.script_pk),version:ho(e.script_pk)}},get_vout_size:function(e){return ro(e).length},get_vout_type:co,get_vout_version:ho,get_vsize:function(e){const t=m.bytes(e).length,n=t%4>0?1:0;return Math.floor(t/4)+n},is_return_script:uo,parse_tx:Ts,read_script:cs});function _o(e,t={}){const{sigflag:n=1,txindex:r}=t,i=Ts(e),s=!(128&~n),o=n%128;if(!ts.includes(o))throw new Error("Invalid hash type: "+String(n));const{version:a,vin:u,vout:c,locktime:d}=i,h=Is(i,t),{txid:f,vout:l,prevout:p,sequence:g}=h,{value:y}=p??{};if(void 0===y)throw new Error("Prevout value is empty!");let{pubkey:w,script:_}=t;if(void 0===_&&void 0!==w){const e=nn(w).hex;_=`76a914${String(e)}88ac`}if(void 0===_)throw new Error("No pubkey / script has been set!");if(Vs(_).includes("OP_CODESEPARATOR"))throw new Error("This library does not currently support the use of OP_CODESEPARATOR in segwit scripts.");const v=[Ys(a),vo(u,s),bo(u,o,s),Qs(f),Js(l),Ks(_),no(y),Xs(g),Eo(c,o,r),oo(d),m.num(n,4).reverse()];return sn(m.join(v))}function vo(e,t){if(!0===t)return m.num(0,32);const n=[];for(const{txid:t,vout:r}of e)n.push(Qs(t)),n.push(Js(r));return sn(m.join(n))}function bo(e,t,n){if(n||1!==t)return m.num(0,32);const r=[];for(const{sequence:t}of e)r.push(Xs(t));return sn(m.join(r))}function Eo(e,t,n){const r=[];if(1===t){for(const{value:t,script_pk:n}of e)r.push(no(t)),r.push(Ks(n));return sn(m.join(r))}if(3===t&&(b.ok(void 0!==n),n<e.length)){const{value:t,script_pk:i}=e[n];return r.push(no(t)),r.push(Ks(i)),sn(m.join(r))}return m.num(0,32)}function xo(e,t=192){return So(Ks(e),t)}function So(e,t=192){return on("TapLeaf",Oo(t),e)}function ko(e,t){return t<e&&([e,t]=[t,e]),on("TapBranch",e,t)}function Oo(e=192){return 254&e}function Ao(e,t=new Uint8Array){return b.size(e,32),on("TapTweak",e,t)}function Po(e,t={}){const{script:n,txindex:r,sigflag:i=0,extflag:s=0,key_version:o=0,separator_pos:a=4294967295}=t,u=Ts(e),{version:c,vin:d,vout:h,locktime:f}=u,l=Is(u,t),{txid:p,vout:g,sequence:y,witness:w=[]}=l;if(!ns.includes(i))throw new Error("Invalid hash type: "+String(i));if(s<0||s>127)throw new Error("Extention flag out of range: "+String(s));let{extension:_}=t;void 0!==n&&(_=xo(n).hex);const v=!(128&~i),E=function(e){if(void 0===e)return;if(e.length<2)return;const t=e.at(-1);if("string"==typeof t&&t.startsWith("50")){return rn(m.hex(t).prefix_varint("be"))}return}(w),x=2*(s+(void 0!==_?1:0))+(void 0!==E?1:0),S=[on("TapSighash"),m.num(0,1),m.num(i,1),Ys(c),oo(f)];if(!v){const e=d.map(e=>Bo(e));S.push(To(d),No(e),Uo(e),Io(d))}if(((3&i)<2||(3&i)>3)&&S.push($o(h)),S.push(m.num(x,1)),v){const{value:e,script_pk:t}=Bo(l);S.push(Qs(p),Js(g),no(e),Ks(t),Xs(y))}else b.ok("number"==typeof r),S.push(m.num(r,4).reverse());return void 0!==E&&S.push(E),3&~i||(b.ok("number"==typeof r),S.push(Co(h[r]))),void 0!==_&&S.push(m.bytes(_),m.num(o),m.num(a,4)),rn(m.join(S))}function To(e){const t=[];for(const{txid:n,vout:r}of e)t.push(Qs(n)),t.push(Js(r));return rn(m.join(t))}function Io(e){const t=[];for(const{sequence:n}of e)t.push(Xs(n));return rn(m.join(t))}function No(e){const t=[];for(const{value:n}of e)t.push(no(n));return rn(m.join(t))}function Uo(e){const t=[];for(const{script_pk:n}of e)t.push(Ks(n));return rn(m.join(t))}function $o(e){const t=[];for(const{value:n,script_pk:r}of e)t.push(no(n)),t.push(Ks(r));return rn(m.join(t))}function Co(e){return rn(no(e.value),Ks(e.script_pk))}function Bo(e){if(null===e.prevout)throw new Error("Prevout data missing for input: "+String(e.txid));return e.prevout}function Ro(e,t,n){return Lt(e,_o(Ts(t),n)).hex+Ns(n.sigflag??1)}function Lo(e,t,n){return zt(e,Po(Ts(t),n)).hex+Ns(n.sigflag??0)}const zo=5e8;var jo,Ho;function Do(e){switch(e.type){case"timelock":return b.ok(e.stamp>=zo,"Invalid timestamp"),e.stamp;case"heightlock":return b.ok(e.height>0,"height must be greater than 0"),b.ok(e.height<zo,"invalid block height"),e.height;default:throw new Error("Invalid locktime type")}}function Fo(e){return isNaN(e)||e<=0?null:e<zo?{type:"heightlock",height:e}:{type:"timelock",stamp:e}}function Vo(e,t=0){return`${e}i${t}`}function Zo(e){Wo(e);const[t,n]=e.split("i");return{txid:t,order:parseInt(n)}}function Ko(e){return null!==e.match(/^[a-f0-9]{64}i\d+$/)}function Wo(e){if(!Ko(e))throw new Error(`invalid inscription id: ${e}`)}function qo(e,t){return`${e}:${t}`}function Mo(e){Yo(e);const[t,n]=e.split(":");return{block_height:parseInt(t),block_index:parseInt(n)}}function Go(e){return null!==e.match(/^\d+:\d+$/)}function Yo(e){if(!Go(e))throw new Error(`invalid rune id: ${e}`)}function Qo(e,t){return`${e}:${t}`}function Jo(e){ea(e);const[t,n]=e.split(":");return{txid:t,vout:parseInt(n)}}function Xo(e){return null!==e.match(/^[a-f0-9]{64}:[0-9]+$/)}function ea(e){if(!Xo(e))throw new Error(`invalid outpoint: ${e}`)}!function(e){e.encode=Do,e.decode=Fo}(jo||(jo={})),function(e){e.outpoint={encode:Qo,decode:Jo,verify:Xo,assert:ea},e.record_id={encode:Vo,decode:Zo,verify:Ko,assert:Wo},e.rune_id={encode:qo,decode:Mo,verify:Go,assert:Yo}}(Ho||(Ho={}));const ta=BigInt(0),na=BigInt(1),ra=BigInt(26);var ia;function sa(e){const t=function(e){const t=Vs(e),n=t.findIndex(e=>"OP_0"===e);b.ok(-1!==n,"inscription envelope not found");const r=[];for(let e=n;e<t.length;e++){b.ok("OP_IF"===t[e+1],"OP_IF missing from envelope"),b.ok("6f7264"===t[e+2],"magic bytes missing from envelope");const n=t.findIndex(e=>"OP_ENDIF"===e);b.ok(-1!==n,"inscription envelope missing END_IF statement");const i=t.slice(e+3,n);r.push(i),e+=n}return r}(e);return t.map(ua)}function oa(e){return e.map(aa).join("")}function aa(e){let t=["OP_0","OP_IF","6f7264"];if("string"==typeof e.delegate){const n=ca(e.delegate);t.push("OP_11",n)}if("string"==typeof e.ref&&t.push("OP_WITHIN",e.ref),"string"==typeof e.parent){const n=ca(e.parent);t.push("OP_3",n)}if("number"==typeof e.opcode){const n=ha(e.opcode);t.push("OP_NOP",n)}if("number"==typeof e.pointer){const n=ha(e.pointer);t.push("OP_2",n)}if("string"==typeof e.rune){const n=function(e){const t=e.toUpperCase();let n=ta;for(const e of t)e>="A"&&e<="Z"&&(n=n*ra+BigInt(e.charCodeAt(0)-("A".charCodeAt(0)-1)));return n-=na,m.big(n).reverse().hex}(e.rune);t.push("OP_13",n)}if("string"==typeof e.mimetype){const n=function(e){return m.str(e).hex}(e.mimetype);t.push("OP_1",n)}if("string"==typeof e.content){const n=function(e){const t=m.is_hex(e)?m.hex(e):m.str(e),n=new y(t),r=[];for(;n.size>0;)if(n.size>520){const e=n.read(520);r.push(e.hex)}else{const e=n.read(n.size);r.push(e.hex)}return r}(e.content);t.push("OP_0",...n)}return t.push("OP_ENDIF"),zs(t)}function ua(e){const t={};for(let n=0;n<e.length;n++)switch(e[n]){case"OP_1":t.mimetype=la(e[n+1]),n+=1;break;case"OP_2":t.pointer=fa(e[n+1]),n+=1;break;case"OP_3":t.parent=da(e[n+1]),n+=1;break;case"OP_11":t.delegate=da(e[n+1]),n+=1;break;case"OP_13":t.rune=ga(e[n+1]),n+=1;break;case"OP_WITHIN":t.ref=e[n+1],n+=1;break;case"OP_NOP":t.opcode=fa(e[n+1]),n+=1;break;case"OP_0":return t.content=pa(e.slice(n+1)),t}return t}function ca(e){b.ok(e.includes("i"),"identifier must include an index");const t=e.split("i"),n=m.hex(t[0]),r=Number(t[1]),i=n.reverse().hex;return 0!==r?i+m.num(r).hex:i}function da(e){const t=m.hex(e),n=t.at(-1)??0;return t.slice(0,-1).reverse().hex+"i"+String(n)}function ha(e){return m.num(e).reverse().hex}function fa(e){return m.hex(e).reverse().num}function la(e){return m.hex(e).str}function pa(e,t="hex"){const n=m.join(e);return"hex"===t?n.hex:n.str}function ga(e){let t=m.hex(e).reverse().big;t+=na;let n="";for(;t>ta;){const e=t%ra;if(e===ta)n="Z"+n,t=t/ra-na;else{const r=Number(e)+"A".charCodeAt(0)-1;n=String.fromCharCode(r)+n,t/=ra}}return n}!function(e){e.encode=oa,e.decode=sa}(ia||(ia={}));const ma=4194304,ya=65535,wa=65535;var _a;function va(e){if("height"===e.mode){return(function(e){if(void 0===e||!Number.isInteger(e)||e<0||e>wa)throw new Error("Heightlock value must be an integer between 0 and 65535");return e}(e.height)&ya)>>>0}if("stamp"===e.mode){const t=function(e){if(void 0===e||!Number.isInteger(e))throw new Error("timestamp must be a number");const t=Math.floor(e/512);if(!Number.isInteger(t)||t<0||t>wa)throw new Error("timelock value must be an integer between 0 and 65535 (in 512-second increments)");return t}(e.stamp);return(ma|t&ya)>>>0}throw new Error("invalid timelock mode: "+e.mode)}function ba(e){const t=function(e){const t="string"==typeof e?parseInt(e,16):e;if(!Number.isInteger(t)||t<0||t>4294967295)throw new Error(`invalid sequence value: ${t}`);return t}(e);if(2147483648&t)return null;const n=t&ya;if(t&ma){const e=512*n;if(e>4294967295)throw new Error("Decoded timestamp exceeds 32-bit limit");return{mode:"stamp",stamp:e}}if(n>wa)throw new Error("Decoded height exceeds maximum");return{mode:"height",height:n}}!function(e){e.encode=va,e.decode=ba}(_a||(_a={}));var Ea=Object.freeze({__proto__:null,get LocktimeUtil(){return jo},get RefEncoder(){return Ho},get ScribeEncoder(){return ia},get SequenceUtil(){return _a},decode_inscription:sa,decode_locktime:Fo,decode_sequence:ba,encode_inscription:oa,encode_locktime:Do,encode_sequence:va});class xa{constructor(e){this._txout=e}get data(){return{script_pk:this.script_pk,size:this.size,type:this.type,value:this.value,version:this.version}}get script_pk(){return{hex:this._txout.script_pk,asm:Vs(this._txout.script_pk)}}get size(){return yo(this._txout)}get type(){return co(this._txout.script_pk)}get value(){return this._txout.value}get version(){return ho(this._txout.script_pk)}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}}function Sa(e){const t=e.map(e=>m.bytes(e)),n=e.map(e=>m.bytes(e).hex),r=function(e){let t=e.at(-1);return e.length>1&&t instanceof Uint8Array&&80===t[0]?new m(t).hex:null}(t);null!==r&&t.pop();const i=function(e){let t=e.at(-1);return e.length>1&&t instanceof Uint8Array&&t.length>32&&Xi.includes(254&t[0])?new m(t).hex:null}(t);null!==i&&t.pop();const s=function(e,t){let n=e.at(0),r=e.at(1),i=e.at(-1);return null!==t&&void 0!==i?"p2tr-ts":2===e.length&&void 0!==n&&void 0!==r&&n.length>=64&&33===r.length?"p2w-pkh":1===e.length&&void 0!==n&&64===n.length?"p2tr-pk":e.length>1&&void 0!==i&&Zs(i)?"p2w-sh":"unknown"}(t,i),o=function(e){return e.startsWith("p2tr")?1:e.startsWith("p2w")?0:null}(s),a=function(e,t){let n;switch(t){case"p2tr-ts":n=e.at(-1);case"p2w-sh":n=e.at(-1)}return void 0!==n?new m(n).hex:null}(t,s);null!==a&&t.pop();return{annex:r,cblock:i,params:t.map(e=>e.hex),script:a,stack:n,type:s,version:o}}function ka(e){const t=e.map(e=>m.bytes(e)).reduce((e,t)=>e+t.length,0);return{total:t,vsize:Math.ceil(1+t/4)}}var Oa=Object.freeze({__proto__:null,get_witness_size:ka,parse_witness:Sa});class Aa{constructor(e){this._elems=e.map(e=>m.bytes(e)),this._data=Sa(this._elems),this._size=ka(this._elems)}get annex(){return this._data.annex}get cblock(){return this._data.cblock}get data(){return this._data}get params(){return this._data.params}get script(){return null===this._data.script?null:{hex:this._data.script,asm:Vs(this._data.script)}}get size(){return this._size}get stack(){return this._elems.map(e=>e.hex)}get type(){return this._data.type}get version(){return this._data.version}_update(){this._data=Sa(this._elems),this._size=ka(this._elems)}add(e){this._elems.push(m.bytes(e)),this._update()}insert(e,t){b.ok(e>=0&&e<=this._elems.length,"index out of bounds"),e===this._elems.length?this._elems.push(m.bytes(t)):this._elems.splice(e,0,m.bytes(t)),this._update()}remove(e){this._elems.splice(e,1),this._update()}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}}class Pa{constructor(e){this._txin=e}get coinbase(){return this._txin.coinbase}get data(){return{coinbase:this.coinbase,prevout:this.prevout?.data??null,script_sig:this.script_sig,sequence:this.sequence,size:this.size,txid:this.txid,vout:this.vout,witness:this.witness?.data??null}}get has_prevout(){return null!==this._txin.prevout}get is_coinbase(){return null!==this._txin.coinbase}get prevout(){return this._txin.prevout?new xa(this._txin.prevout):null}get script_sig(){return null===this._txin.script_sig?null:{asm:Vs(this._txin.script_sig),hex:this._txin.script_sig}}get sequence(){return{hex:Xs(this._txin.sequence).hex,data:_a.decode(this._txin.sequence),value:this._txin.sequence}}get size(){return mo(this._txin)}get txid(){return this._txin.txid}get vout(){return this._txin.vout}get witness(){return this._txin.witness.length>0?new Aa(this._txin.witness):null}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}}const Ta={base58:/^[13mn2][a-km-zA-HJ-NP-Z1-9]{25,34}$/,bech32:/^(bc|tb|bcrt)1q[ac-hj-np-z02-9]{6,87}$/,bech32m:/^(bc|tb|bcrt)1p[ac-hj-np-z02-9]{6,87}$/},Ia=0,Na=1;function Ua(e){const t=function(e){for(const[t,n]of Object.entries(Ta))if(n.test(e))return t;return null}(e);if(null===t)throw new Error("unrecognized address format: "+t);if("base58"===t)return function(e){const t=Zi.decode(e),n=t.slice(1),r=t[0];return{data:n,format:"base58",version:r}}(e);if("bech32"===t)return function(e){const{prefix:t,words:n}=qi.decode(e),[r,...i]=n;b.ok(r===Ia,"bech32 version mismatch");return{data:qi.to_bytes(i),format:"bech32",prefix:t,version:r}}(e);if("bech32m"===t)return function(e){const{prefix:t,words:n}=Mi.decode(e),[r,...i]=n;b.ok(r===Na,"bech32m version mismatch");return{data:Mi.to_bytes(i),format:"bech32m",prefix:t,version:r}}(e);throw new Error("unable to find a matching address configuration")}function $a(e){if("base58"===e.format)return function(e){b.ok("base58"===e.format,"encoding mismatch"),b.exists(e.version,"must specify a version");const t=m.join([e.version,e.data]);return Zi.encode(t)}(e);if("bech32"===e.format)return function(e){b.ok("bech32"===e.format,"encoding mismatch"),b.exists(e.prefix,"prefix is required");const t=m.bytes(e.data),n=qi.to_words(t);return qi.encode(e.prefix,[Ia,...n])}(e);if("bech32m"===e.format)return function(e){b.ok("bech32m"===e.format,"encoding mismatch"),b.exists(e.prefix,"prefix is required");const t=m.bytes(e.data),n=Mi.to_words(t);return Mi.encode(e.prefix,[Na,...n])}(e);throw new Error("unrecognized encoding format: "+e.format)}const Ca=[["1","p2pkh","main",20,"base58",0],["3","p2sh","main",20,"base58",5],["m","p2pkh","testnet",20,"base58",111],["n","p2pkh","testnet",20,"base58",111],["2","p2sh","testnet",20,"base58",196],["m","p2pkh","regtest",20,"base58",111],["n","p2pkh","regtest",20,"base58",111],["2","p2sh","regtest",20,"base58",196],["bc","p2w-pkh","main",20,"bech32",0],["tb","p2w-pkh","testnet",20,"bech32",0],["bcrt","p2w-pkh","regtest",20,"bech32",0],["bc","p2w-sh","main",32,"bech32",0],["tb","p2w-sh","testnet",32,"bech32",0],["bcrt","p2w-sh","regtest",32,"bech32",0],["bc","p2tr","main",32,"bech32m",1],["tb","p2tr","testnet",32,"bech32m",1],["bcrt","p2tr","regtest",32,"bech32m",1]];function Ba(e,t){for(const[n,r,i,s,o,a]of Ca)if(r===t&&i===e)return{type:r,prefix:n,network:i,size:s,format:o,version:a};return null}function Ra(e){const t=function(e){const t=Ua(e);for(const[n,r,i,s,o,a]of Ca){if(o!==t.format)continue;if(s!==t.data.length)continue;if(a!==t.version)continue;if(t.prefix){if(n!==t.prefix)continue}else if(!e.startsWith(n))continue;const u=m.uint(t.data).hex;return{data:t.data,hex:u,type:r,prefix:n,network:i,size:s,format:o,version:a}}throw new Error("address configuration is invalid")}(e),n=function(e,t){switch(t){case"p2pkh":return function(e){return{script_hex:"76a914"+e+"88ac",script_asm:["OP_DUP","OP_HASH160",e,"OP_EQUALVERIFY","OP_CHECKSIG"]}}(e);case"p2sh":return function(e){return{script_hex:"a914"+e+"87",script_asm:["OP_HASH160",e,"OP_EQUAL"]}}(e);case"p2w-pkh":return function(e){return{script_hex:"0014"+e,script_asm:["OP_0",e]}}(e);case"p2w-sh":return function(e){return{script_hex:"0020"+e,script_asm:["OP_0",e]}}(e);case"p2tr":return function(e){return{script_hex:"5120"+e,script_asm:["OP_1",e]}}(e);default:throw new Error("unrecognized script type: "+t)}}(t.hex,t.type);return{...t,...n}}const La="p2pkh";var za;function ja(e,t="main"){return Ha(nn(m.bytes(e)),t)}function Ha(e,t="main"){const n=m.bytes(e),r=Ba(t,La);return b.exists(r,`unrecognized address config: ${La} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),$a({data:n,format:"base58",version:r.version})}function Da(e){const t=Ra(e);return b.ok("p2pkh"===t.type,`address type mismatch: ${t.type} !== ${La}`),t}!function(e){e.create=ja,e.encode=Ha,e.decode=Da}(za||(za={}));const Fa="p2sh";var Va;function Za(e,t="main"){return Ka(nn(m.bytes(e)),t)}function Ka(e,t="main"){const n=m.bytes(e),r=Ba(t,Fa);return b.exists(r,`unrecognized address config: ${Fa} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),$a({data:n,format:"base58",version:r.version})}function Wa(e){const t=Ra(e);return b.ok("p2sh"===t.type,`address type mismatch: ${t.type} !== ${Fa}`),t}!function(e){e.create=Za,e.encode=Ka,e.decode=Wa}(Va||(Va={}));const qa="p2w-pkh";var Ma;function Ga(e,t="main"){const n=m.bytes(e);b.size(n,33,`invalid payload size: ${n.length} !== 33`);return Ya(nn(n),t)}function Ya(e,t="main"){const n=m.bytes(e),r=Ba(t,qa);return b.exists(r,`unrecognized address config: ${qa} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),$a({data:n,format:"bech32",prefix:r.prefix})}function Qa(e){const t=Ra(e);return b.ok("p2w-pkh"===t.type,`address type mismatch: ${t.type} !== ${qa}`),t}!function(e){e.create=Ga,e.encode=Ya,e.decode=Qa}(Ma||(Ma={}));const Ja="p2w-sh";var Xa;function eu(e,t="main"){return tu(rn(m.bytes(e)),t)}function tu(e,t="main"){const n=m.bytes(e),r=Ba(t,Ja);return b.exists(r,`unrecognized address config: ${Ja} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),$a({data:n,format:"bech32",prefix:r.prefix})}function nu(e){const t=Ra(e);return b.ok("p2w-sh"===t.type,`address type mismatch: ${t.type} !== ${Ja}`),t}!function(e){e.create=eu,e.encode=tu,e.decode=nu}(Xa||(Xa={}));const ru="p2tr";var iu,su;function ou(e,t="main"){const n=m.bytes(e),r=Ba(t,ru);return b.exists(r,`unrecognized address config: ${ru} on ${t}`),b.size(n,r.size,`invalid payload size: ${n.length} !== ${r.size}`),$a({data:n,format:"bech32m",prefix:r.prefix})}function au(e){const t=Ra(e);return b.ok("p2tr"===t.type,`address type mismatch: ${t.type} !== ${ru}`),t}!function(e){e.encode=ou,e.decode=au}(iu||(iu={})),function(e){e.P2PKH=za,e.P2SH=Va,e.P2WPKH=Ma,e.P2WSH=Xa,e.P2TR=iu,e.parse=Ra}(su||(su={}));var uu=Object.freeze({__proto__:null,get AddressTool(){return su},get P2PKH(){return za},get P2SH(){return Va},get P2TR(){return iu},get P2WPKH(){return Ma},get P2WSH(){return Xa},parse_address:Ra});const cu=new Uint8Array,du=new Uint8Array([0]);function hu(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function fu(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}const lu=e=>new DataView(e.buffer,e.byteOffset,e.byteLength);function pu(e){return"[object Object]"===Object.prototype.toString.call(e)}function gu(e){return Number.isSafeInteger(e)}const mu=hu,yu=fu,wu=function(...e){let t=0;for(let n=0;n<e.length;n++){const r=e[n];if(!fu(r))throw new Error("Uint8Array expected");t+=r.length}const n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){const i=e[t];n.set(i,r),r+=i.length}return n},_u=e=>{if(null!==e&&"string"!=typeof e&&!Tu(e)&&!fu(e)&&!gu(e))throw new Error(`lengthCoder: expected null | number | Uint8Array | CoderType, got ${e} (${typeof e})`);return{encodeStream(t,n){if(null===e)return;if(Tu(e))return e.encodeStream(t,n);let r;if("number"==typeof e?r=e:"string"==typeof e&&(r=bu.resolve(t.stack,e)),"bigint"==typeof r&&(r=Number(r)),void 0===r||r!==n)throw t.err(`Wrong length: ${r} len=${e} exp=${n} (${typeof n})`)},decodeStream(t){let n;if(Tu(e)?n=Number(e.decodeStream(t)):"number"==typeof e?n=e:"string"==typeof e&&(n=bu.resolve(t.stack,e)),"bigint"==typeof n&&(n=Number(n)),"number"!=typeof n)throw t.err(`Wrong length: ${n}`);return n}}},vu={BITS:32,FULL_MASK:-1>>>0,len:e=>Math.ceil(e/32),create:e=>new Uint32Array(vu.len(e)),clean:e=>e.fill(0),debug:e=>Array.from(e).map(e=>(e>>>0).toString(2).padStart(32,"0")),checkLen:(e,t)=>{if(vu.len(t)!==e.length)throw new Error(`wrong length=${e.length}. Expected: ${vu.len(t)}`)},chunkLen:(e,t,n)=>{if(t<0)throw new Error(`wrong pos=${t}`);if(t+n>e)throw new Error(`wrong range=${t}/${n} of ${e}`)},set:(e,t,n,r=!0)=>!(!r&&0!==(e[t]&n))&&(e[t]|=n,!0),pos:(e,t)=>({chunk:Math.floor((e+t)/32),mask:1<<32-(e+t)%32-1}),indices:(e,t,n=!1)=>{vu.checkLen(e,t);const{FULL_MASK:r,BITS:i}=vu,s=i-t%i,o=s?r>>>s<<s:r,a=[];for(let t=0;t<e.length;t++){let r=e[t];if(n&&(r=~r),t===e.length-1&&(r&=o),0!==r)for(let e=0;e<i;e++){r&1<<i-e-1&&a.push(t*i+e)}}return a},range:e=>{const t=[];let n;for(const r of e)void 0===n||r!==n.pos+n.length?t.push(n={pos:r,length:1}):n.length+=1;return t},rangeDebug:(e,t,n=!1)=>`[${vu.range(vu.indices(e,t,n)).map(e=>`(${e.pos}/${e.length})`).join(", ")}]`,setRange:(e,t,n,r,i=!0)=>{vu.chunkLen(t,n,r);const{FULL_MASK:s,BITS:o}=vu,a=n%o?Math.floor(n/o):void 0,u=n+r,c=u%o?Math.floor(u/o):void 0;if(void 0!==a&&a===c)return vu.set(e,a,s>>>o-r<<o-r-n,i);if(void 0!==a&&!vu.set(e,a,s>>>n%o,i))return!1;const d=void 0!==c?c:u/o;for(let t=void 0!==a?a+1:n/o;t<d;t++)if(!vu.set(e,t,s,i))return!1;return!(void 0!==c&&a!==c&&!vu.set(e,c,s<<o-u%o,i))}},bu={pushObj:(e,t,n)=>{const r={obj:t};e.push(r),n((e,t)=>{r.field=e,t(),r.field=void 0}),e.pop()},path:e=>{const t=[];for(const n of e)void 0!==n.field&&t.push(n.field);return t.join("/")},err:(e,t,n)=>{const r=new Error(`${e}(${bu.path(t)}): ${"string"==typeof n?n:n.message}`);return n instanceof Error&&n.stack&&(r.stack=n.stack),r},resolve:(e,t)=>{const n=t.split("/"),r=e.map(e=>e.obj);let i=0;for(;i<n.length&&".."===n[i];i++)r.pop();let s=r.pop();for(;i<n.length;i++){if(!s||void 0===s[n[i]])return;s=s[n[i]]}return s}};class Eu{constructor(e,t={},n=[],r=void 0,i=0){this.pos=0,this.bitBuf=0,this.bitPos=0,this.data=e,this.opts=t,this.stack=n,this.parent=r,this.parentOffset=i,this.view=lu(e)}_enablePointers(){if(this.parent)return this.parent._enablePointers();this.bs||(this.bs=vu.create(this.data.length),vu.setRange(this.bs,this.data.length,0,this.pos,this.opts.allowMultipleReads))}markBytesBS(e,t){return this.parent?this.parent.markBytesBS(this.parentOffset+e,t):!t||(!this.bs||vu.setRange(this.bs,this.data.length,e,t,!1))}markBytes(e){const t=this.pos;this.pos+=e;const n=this.markBytesBS(t,e);if(!this.opts.allowMultipleReads&&!n)throw this.err(`multiple read pos=${this.pos} len=${e}`);return n}pushObj(e,t){return bu.pushObj(this.stack,e,t)}readView(e,t){if(!Number.isFinite(e))throw this.err(`readView: wrong length=${e}`);if(this.pos+e>this.data.length)throw this.err("readView: Unexpected end of buffer");const n=t(this.view,this.pos);return this.markBytes(e),n}absBytes(e){if(e>this.data.length)throw new Error("Unexpected end of buffer");return this.data.subarray(e)}finish(){if(!this.opts.allowUnreadBytes){if(this.bitPos)throw this.err(`${this.bitPos} bits left after unpack: ${Fi.encode(this.data.slice(this.pos))}`);if(this.bs&&!this.parent){const e=vu.indices(this.bs,this.data.length,!0);if(e.length){const t=vu.range(e).map(({pos:e,length:t})=>`(${e}/${t})[${Fi.encode(this.data.subarray(e,e+t))}]`).join(", ");throw this.err(`unread byte ranges: ${t} (total=${this.data.length})`)}return}if(!this.isEnd())throw this.err(`${this.leftBytes} bytes ${this.bitPos} bits left after unpack: ${Fi.encode(this.data.slice(this.pos))}`)}}err(e){return bu.err("Reader",this.stack,e)}offsetReader(e){if(e>this.data.length)throw this.err("offsetReader: Unexpected end of buffer");return new Eu(this.absBytes(e),this.opts,this.stack,this,e)}bytes(e,t=!1){if(this.bitPos)throw this.err("readBytes: bitPos not empty");if(!Number.isFinite(e))throw this.err(`readBytes: wrong length=${e}`);if(this.pos+e>this.data.length)throw this.err("readBytes: Unexpected end of buffer");const n=this.data.subarray(this.pos,this.pos+e);return t||this.markBytes(e),n}byte(e=!1){if(this.bitPos)throw this.err("readByte: bitPos not empty");if(this.pos+1>this.data.length)throw this.err("readBytes: Unexpected end of buffer");const t=this.data[this.pos];return e||this.markBytes(1),t}get leftBytes(){return this.data.length-this.pos}get totalBytes(){return this.data.length}isEnd(){return this.pos>=this.data.length&&!this.bitPos}bits(e){if(e>32)throw this.err("BitReader: cannot read more than 32 bits in single call");let t=0;for(;e;){this.bitPos||(this.bitBuf=this.byte(),this.bitPos=8);const n=Math.min(e,this.bitPos);this.bitPos-=n,t=t<<n|this.bitBuf>>this.bitPos&2**n-1,this.bitBuf&=2**this.bitPos-1,e-=n}return t>>>0}find(e,t=this.pos){if(!fu(e))throw this.err(`find: needle is not bytes! ${e}`);if(this.bitPos)throw this.err("findByte: bitPos not empty");if(!e.length)throw this.err("find: needle is empty");for(let n=t;-1!==(n=this.data.indexOf(e[0],n));n++){if(-1===n)return;if(this.data.length-n<e.length)return;if(hu(e,this.data.subarray(n,n+e.length)))return n}}}class xu{constructor(e=[]){this.pos=0,this.buffers=[],this.ptrs=[],this.bitBuf=0,this.bitPos=0,this.viewBuf=new Uint8Array(8),this.finished=!1,this.stack=e,this.view=lu(this.viewBuf)}pushObj(e,t){return bu.pushObj(this.stack,e,t)}writeView(e,t){if(this.finished)throw this.err("buffer: finished");if(!gu(e)||e>8)throw new Error(`wrong writeView length=${e}`);t(this.view),this.bytes(this.viewBuf.slice(0,e)),this.viewBuf.fill(0)}err(e){if(this.finished)throw this.err("buffer: finished");return bu.err("Reader",this.stack,e)}bytes(e){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("writeBytes: ends with non-empty bit buffer");this.buffers.push(e),this.pos+=e.length}byte(e){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("writeByte: ends with non-empty bit buffer");this.buffers.push(new Uint8Array([e])),this.pos++}finish(e=!0){if(this.finished)throw this.err("buffer: finished");if(this.bitPos)throw this.err("buffer: ends with non-empty bit buffer");const t=this.buffers.concat(this.ptrs.map(e=>e.buffer)),n=t.map(e=>e.length).reduce((e,t)=>e+t,0),r=new Uint8Array(n);for(let e=0,n=0;e<t.length;e++){const i=t[e];r.set(i,n),n+=i.length}for(let e=this.pos,t=0;t<this.ptrs.length;t++){const n=this.ptrs[t];r.set(n.ptr.encode(e),n.pos),e+=n.buffer.length}if(e){this.buffers=[];for(const e of this.ptrs)e.buffer.fill(0);this.ptrs=[],this.finished=!0,this.bitBuf=0}return r}bits(e,t){if(t>32)throw this.err("writeBits: cannot write more than 32 bits in single call");if(e>=2**t)throw this.err(`writeBits: value (${e}) >= 2**bits (${t})`);for(;t;){const n=Math.min(t,8-this.bitPos);this.bitBuf=this.bitBuf<<n|e>>t-n,this.bitPos+=n,e&=2**(t-=n)-1,8===this.bitPos&&(this.bitPos=0,this.buffers.push(new Uint8Array([this.bitBuf])),this.pos++)}}}const Su=e=>Uint8Array.from(e).reverse();function ku(e){return{encodeStream:e.encodeStream,decodeStream:e.decodeStream,size:e.size,encode:t=>{const n=new xu;return e.encodeStream(n,t),n.finish()},decode:(t,n={})=>{const r=new Eu(t,n),i=e.decodeStream(r);return r.finish(),i}}}function Ou(e,t){if(!Tu(e))throw new Error(`validate: invalid inner value ${e}`);if("function"!=typeof t)throw new Error("validate: fn should be function");return ku({size:e.size,encodeStream:(n,r)=>{let i;try{i=t(r)}catch(e){throw n.err(e)}e.encodeStream(n,i)},decodeStream:n=>{const r=e.decodeStream(n);try{return t(r)}catch(e){throw n.err(e)}}})}const Au=e=>{const t=ku(e);return e.validate?Ou(t,e.validate):t},Pu=e=>pu(e)&&"function"==typeof e.decode&&"function"==typeof e.encode;function Tu(e){return pu(e)&&Pu(e)&&"function"==typeof e.encodeStream&&"function"==typeof e.decodeStream&&(void 0===e.size||gu(e.size))}const Iu=e=>{if(!Pu(e))throw new Error("BaseCoder expected");return{encode:e.decode,decode:e.encode}},Nu={dict:function(){return{encode:e=>{if(!Array.isArray(e))throw new Error("array expected");const t={};for(const n of e){if(!Array.isArray(n)||2!==n.length)throw new Error("array of two elements expected");const e=n[0],r=n[1];if(void 0!==t[e])throw new Error(`key(${e}) appears twice in struct`);t[e]=r}return t},decode:e=>{if(!pu(e))throw new Error(`expected plain object, got ${e}`);return Object.entries(e)}}},numberBigint:{encode:e=>{if("bigint"!=typeof e)throw new Error("expected bigint, got "+typeof e);if(e>BigInt(Number.MAX_SAFE_INTEGER))throw new Error(`element bigger than MAX_SAFE_INTEGER=${e}`);return Number(e)},decode:e=>{if(!gu(e))throw new Error("element is not a safe integer");return BigInt(e)}},tsEnum:function(e){if(!pu(e))throw new Error("plain object expected");return{encode:t=>{if(!gu(t)||!(t in e))throw new Error(`wrong value ${t}`);return e[t]},decode:t=>{if("string"!=typeof t)throw new Error("wrong value "+typeof t);return e[t]}}},decimal:function(e,t=!1){if(!gu(e))throw new Error(`decimal/precision: wrong value ${e}`);if("boolean"!=typeof t)throw new Error("decimal/round: expected boolean, got "+typeof t);const n=10n**BigInt(e);return{encode:t=>{if("bigint"!=typeof t)throw new Error("expected bigint, got "+typeof t);let n=(t<0n?-t:t).toString(10),r=n.length-e;r<0&&(n=n.padStart(n.length-r,"0"),r=0);let i=n.length-1;for(;i>=r&&"0"===n[i];i--);let s=n.slice(0,r),o=n.slice(r,i+1);return s||(s="0"),t<0n&&(s="-"+s),o?`${s}.${o}`:s},decode:r=>{if("string"!=typeof r)throw new Error("expected string, got "+typeof r);if("-0"===r)throw new Error("negative zero is not allowed");let i=!1;if(r.startsWith("-")&&(i=!0,r=r.slice(1)),!/^(0|[1-9]\d*)(\.\d+)?$/.test(r))throw new Error(`wrong string value=${r}`);let s=r.indexOf(".");s=-1===s?r.length:s;const o=r.slice(0,s),a=r.slice(s+1).replace(/0+$/,""),u=BigInt(o)*n;if(!t&&a.length>e)throw new Error(`fractional part cannot be represented with this precision (num=${r}, prec=${e})`);const c=Math.min(a.length,e),d=u+BigInt(a.slice(0,c))*10n**BigInt(e-c);return i?-d:d}}},match:function(e){if(!Array.isArray(e))throw new Error("expected array, got "+typeof e);for(const t of e)if(!Pu(t))throw new Error(`wrong base coder ${t}`);return{encode:t=>{for(const n of e){const e=n.encode(t);if(void 0!==e)return e}throw new Error(`match/encode: cannot find match in ${t}`)},decode:t=>{for(const n of e){const e=n.decode(t);if(void 0!==e)return e}throw new Error(`match/decode: cannot find match in ${t}`)}}},reverse:Iu},Uu=(e,t=!1,n=!1,r=!0)=>{if(!gu(e))throw new Error(`bigint/size: wrong value ${e}`);if("boolean"!=typeof t)throw new Error("bigint/le: expected boolean, got "+typeof t);if("boolean"!=typeof n)throw new Error("bigint/signed: expected boolean, got "+typeof n);if("boolean"!=typeof r)throw new Error("bigint/sized: expected boolean, got "+typeof r);const i=BigInt(e),s=2n**(8n*i-1n);return Au({size:r?e:void 0,encodeStream:(i,o)=>{n&&o<0&&(o|=s);const a=[];for(let t=0;t<e;t++)a.push(Number(255n&o)),o>>=8n;let u=new Uint8Array(a).reverse();if(!r){let e=0;for(e=0;e<u.length&&0===u[e];e++);u=u.subarray(e)}i.bytes(t?u.reverse():u)},decodeStream:i=>{const o=i.bytes(r?e:Math.min(e,i.leftBytes)),a=t?o:Su(o);let u=0n;for(let e=0;e<a.length;e++)u|=BigInt(a[e])<<8n*BigInt(e);return n&&u&s&&(u=(u^s)-s),u},validate:e=>{if("bigint"!=typeof e)throw new Error(`bigint: invalid value: ${e}`);return function(e,t,n){if(n){const n=2n**(t-1n);if(e<-n||e>=n)throw new Error(`value out of signed bounds. Expected ${-n} <= ${e} < ${n}`)}else if(0n>e||e>=2n**t)throw new Error(`value out of unsigned bounds. Expected 0 <= ${e} < ${2n**t}`)}(e,8n*i,!!n),e}})},$u=Uu(32,!1),Cu=Uu(8,!0),Bu=Uu(8,!0,!0),Ru=(e,t,n)=>{const r=8*e,i=2**(r-1),s=2**r;return((e,t)=>Au({size:e,encodeStream:(n,r)=>n.writeView(e,e=>t.write(e,r)),decodeStream:n=>n.readView(e,t.read),validate:e=>{if("number"!=typeof e)throw new Error("viewCoder: expected number, got "+typeof e);return t.validate&&t.validate(e),e}}))(e,{write:n.write,read:n.read,validate:t?e=>{if(!gu(e))throw new Error(`sintView: value is not safe integer: ${e}`);if(e<-i||e>=i)throw new Error(`sintView: value out of bounds. Expected ${-i} <= ${e} < ${i}`)}:e=>{if(!gu(e))throw new Error(`uintView: value is not safe integer: ${e}`);if(0>e||e>=s)throw new Error(`uintView: value out of bounds. Expected 0 <= ${e} < ${s}`)}})},Lu=Ru(4,!1,{read:(e,t)=>e.getUint32(t,!0),write:(e,t)=>e.setUint32(0,t,!0)}),zu=Ru(4,!1,{read:(e,t)=>e.getUint32(t,!1),write:(e,t)=>e.setUint32(0,t,!1)}),ju=Ru(4,!0,{read:(e,t)=>e.getInt32(t,!0),write:(e,t)=>e.setInt32(0,t,!0)}),Hu=Ru(2,!1,{read:(e,t)=>e.getUint16(t,!0),write:(e,t)=>e.setUint16(0,t,!0)}),Du=Ru(1,!1,{read:(e,t)=>e.getUint8(t),write:(e,t)=>e.setUint8(0,t)}),Fu=(e,t=!1)=>{if("boolean"!=typeof t)throw new Error("bytes/le: expected boolean, got "+typeof t);const n=_u(e),r=fu(e);return Au({size:"number"==typeof e?e:void 0,encodeStream:(i,s)=>{r||n.encodeStream(i,s.length),i.bytes(t?Su(s):s),r&&i.bytes(e)},decodeStream:i=>{let s;if(r){const t=i.find(e);if(!t)throw i.err("bytes: cannot find terminator");s=i.bytes(t-i.pos),i.bytes(e.length)}else s=i.bytes(null===e?i.leftBytes:n.decodeStream(i));return t?Su(s):s},validate:e=>{if(!fu(e))throw new Error(`bytes: invalid value ${e}`);return e}})};const Vu=(e,t=!1)=>Ou(Zu(Fu(e,t),Di),e=>{if("string"!=typeof e)throw new Error("expected string, got "+typeof e);return e});function Zu(e,t){if(!Tu(e))throw new Error(`apply: invalid inner value ${e}`);if(!Pu(t))throw new Error(`apply: invalid base value ${e}`);return Au({size:e.size,encodeStream:(n,r)=>{let i;try{i=t.decode(r)}catch(e){throw n.err(""+e)}return e.encodeStream(n,i)},decodeStream:n=>{const r=e.decodeStream(n);try{return t.encode(r)}catch(e){throw n.err(""+e)}}})}function Ku(e,t,n=!0){if(!Tu(e))throw new Error(`magic: invalid inner value ${e}`);if("boolean"!=typeof n)throw new Error("magic: expected boolean, got "+typeof n);return Au({size:e.size,encodeStream:(n,r)=>e.encodeStream(n,t),decodeStream:r=>{const i=e.decodeStream(r);if(n&&"object"!=typeof i&&i!==t||fu(t)&&!hu(t,i))throw r.err(`magic: invalid value: ${i} !== ${t}`)},validate:e=>{if(void 0!==e)throw new Error("magic: wrong value="+typeof e);return e}})}function Wu(e){let t=0;for(const n of e){if(void 0===n.size)return;if(!gu(n.size))throw new Error(`sizeof: wrong element size=${t}`);t+=n.size}return t}function qu(e){if(!pu(e))throw new Error(`struct: expected plain object, got ${e}`);for(const t in e)if(!Tu(e[t]))throw new Error(`struct: field ${t} is not CoderType`);return Au({size:Wu(Object.values(e)),encodeStream:(t,n)=>{t.pushObj(n,r=>{for(const i in e)r(i,()=>e[i].encodeStream(t,n[i]))})},decodeStream:t=>{const n={};return t.pushObj(n,r=>{for(const i in e)r(i,()=>n[i]=e[i].decodeStream(t))}),n},validate:e=>{if("object"!=typeof e||null===e)throw new Error(`struct: invalid value ${e}`);return e}})}function Mu(e,t){if(!Tu(t))throw new Error(`array: invalid inner value ${t}`);const n=_u("string"==typeof e?`../${e}`:e);return Au({size:"number"==typeof e&&t.size?e*t.size:void 0,encodeStream:(r,i)=>{const s=r;s.pushObj(i,o=>{fu(e)||n.encodeStream(r,i.length);for(let n=0;n<i.length;n++)o(`${n}`,()=>{const o=i[n],a=r.pos;if(t.encodeStream(r,o),fu(e)){if(e.length>s.pos-a)return;const t=s.finish(!1).subarray(a,s.pos);if(hu(t.subarray(0,e.length),e))throw s.err(`array: inner element encoding same as separator. elm=${o} data=${t}`)}})}),fu(e)&&r.bytes(e)},decodeStream:r=>{const i=[];return r.pushObj(i,s=>{if(null===e)for(let e=0;!r.isEnd()&&(s(`${e}`,()=>i.push(t.decodeStream(r))),!(t.size&&r.leftBytes<t.size));e++);else if(fu(e))for(let n=0;;n++){if(hu(r.bytes(e.length,!0),e)){r.bytes(e.length);break}s(`${n}`,()=>i.push(t.decodeStream(r)))}else{let e;s("arrayLen",()=>e=n.decodeStream(r));for(let n=0;n<e;n++)s(`${n}`,()=>i.push(t.decodeStream(r)))}}),i},validate:e=>{if(!Array.isArray(e))throw new Error(`array: invalid value ${e}`);return e}})}const Gu=yt.ProjectivePoint,Yu=yt.CURVE.n,Qu=yu,Ju=wu,Xu=mu,ec=e=>tn(ee(e)),tc=(...e)=>ee(ee(Ju(...e))),nc=$t.getPublicKey,rc=yt.getPublicKey,ic=e=>e.r<Yu/2n;const sc=$t.sign,oc=$t.utils.taggedHash;var ac;function uc(e,t){const n=e.length;if(t===ac.ecdsa){if(32===n)throw new Error("Expected non-Schnorr key");return Gu.fromHex(e),e}if(t===ac.schnorr){if(32!==n)throw new Error("Expected 32-byte Schnorr key");return $t.utils.lift_x($t.utils.bytesToNumberBE(e)),e}throw new Error("Unknown key type")}function cc(e,t){const n=$t.utils,r=n.taggedHash("TapTweak",e,t),i=n.bytesToNumberBE(r);if(i>=Yu)throw new Error("tweak higher than curve order");return i}!function(e){e[e.ecdsa=0]="ecdsa",e[e.schnorr=1]="schnorr"}(ac||(ac={})),ee(Gu.BASE.toRawBytes(!1));const dc={bech32:"bc",pubKeyHash:0,scriptHash:5,wif:128};function hc(e,t){if(!Qu(e)||!Qu(t))throw new Error(`cmp: wrong type a=${typeof e} b=${typeof t}`);const n=Math.min(e.length,t.length);for(let r=0;r<n;r++)if(e[r]!=t[r])return Math.sign(e[r]-t[r]);return Math.sign(e.length-t.length)}var fc;function lc(e=6,t=!1){return Au({encodeStream:(e,t)=>{if(0n===t)return;const n=t<0,r=BigInt(t),i=[];for(let e=n?-r:r;e;e>>=8n)i.push(Number(0xffn&e));i[i.length-1]>=128?i.push(n?128:0):n&&(i[i.length-1]|=128),e.bytes(new Uint8Array(i))},decodeStream:n=>{const r=n.leftBytes;if(r>e)throw new Error(`ScriptNum: number (${r}) bigger than limit=${e}`);if(0===r)return 0n;if(t){const e=n.bytes(r,!0);if(!(127&e[e.length-1]||!(r<=1)&&128&e[e.length-2]))throw new Error("Non-minimally encoded ScriptNum")}let i=0,s=0n;for(let e=0;e<r;++e)i=n.byte(),s|=BigInt(i)<<8n*BigInt(e);return i>=128&&(s&=2n**BigInt(8*r)-1n>>1n,s=-s),s}})}!function(e){e[e.OP_0=0]="OP_0",e[e.PUSHDATA1=76]="PUSHDATA1",e[e.PUSHDATA2=77]="PUSHDATA2",e[e.PUSHDATA4=78]="PUSHDATA4",e[e["1NEGATE"]=79]="1NEGATE",e[e.RESERVED=80]="RESERVED",e[e.OP_1=81]="OP_1",e[e.OP_2=82]="OP_2",e[e.OP_3=83]="OP_3",e[e.OP_4=84]="OP_4",e[e.OP_5=85]="OP_5",e[e.OP_6=86]="OP_6",e[e.OP_7=87]="OP_7",e[e.OP_8=88]="OP_8",e[e.OP_9=89]="OP_9",e[e.OP_10=90]="OP_10",e[e.OP_11=91]="OP_11",e[e.OP_12=92]="OP_12",e[e.OP_13=93]="OP_13",e[e.OP_14=94]="OP_14",e[e.OP_15=95]="OP_15",e[e.OP_16=96]="OP_16",e[e.NOP=97]="NOP",e[e.VER=98]="VER",e[e.IF=99]="IF",e[e.NOTIF=100]="NOTIF",e[e.VERIF=101]="VERIF",e[e.VERNOTIF=102]="VERNOTIF",e[e.ELSE=103]="ELSE",e[e.ENDIF=104]="ENDIF",e[e.VERIFY=105]="VERIFY",e[e.RETURN=106]="RETURN",e[e.TOALTSTACK=107]="TOALTSTACK",e[e.FROMALTSTACK=108]="FROMALTSTACK",e[e["2DROP"]=109]="2DROP",e[e["2DUP"]=110]="2DUP",e[e["3DUP"]=111]="3DUP",e[e["2OVER"]=112]="2OVER",e[e["2ROT"]=113]="2ROT",e[e["2SWAP"]=114]="2SWAP",e[e.IFDUP=115]="IFDUP",e[e.DEPTH=116]="DEPTH",e[e.DROP=117]="DROP",e[e.DUP=118]="DUP",e[e.NIP=119]="NIP",e[e.OVER=120]="OVER",e[e.PICK=121]="PICK",e[e.ROLL=122]="ROLL",e[e.ROT=123]="ROT",e[e.SWAP=124]="SWAP",e[e.TUCK=125]="TUCK",e[e.CAT=126]="CAT",e[e.SUBSTR=127]="SUBSTR",e[e.LEFT=128]="LEFT",e[e.RIGHT=129]="RIGHT",e[e.SIZE=130]="SIZE",e[e.INVERT=131]="INVERT",e[e.AND=132]="AND",e[e.OR=133]="OR",e[e.XOR=134]="XOR",e[e.EQUAL=135]="EQUAL",e[e.EQUALVERIFY=136]="EQUALVERIFY",e[e.RESERVED1=137]="RESERVED1",e[e.RESERVED2=138]="RESERVED2",e[e["1ADD"]=139]="1ADD",e[e["1SUB"]=140]="1SUB",e[e["2MUL"]=141]="2MUL",e[e["2DIV"]=142]="2DIV",e[e.NEGATE=143]="NEGATE",e[e.ABS=144]="ABS",e[e.NOT=145]="NOT",e[e["0NOTEQUAL"]=146]="0NOTEQUAL",e[e.ADD=147]="ADD",e[e.SUB=148]="SUB",e[e.MUL=149]="MUL",e[e.DIV=150]="DIV",e[e.MOD=151]="MOD",e[e.LSHIFT=152]="LSHIFT",e[e.RSHIFT=153]="RSHIFT",e[e.BOOLAND=154]="BOOLAND",e[e.BOOLOR=155]="BOOLOR",e[e.NUMEQUAL=156]="NUMEQUAL",e[e.NUMEQUALVERIFY=157]="NUMEQUALVERIFY",e[e.NUMNOTEQUAL=158]="NUMNOTEQUAL",e[e.LESSTHAN=159]="LESSTHAN",e[e.GREATERTHAN=160]="GREATERTHAN",e[e.LESSTHANOREQUAL=161]="LESSTHANOREQUAL",e[e.GREATERTHANOREQUAL=162]="GREATERTHANOREQUAL",e[e.MIN=163]="MIN",e[e.MAX=164]="MAX",e[e.WITHIN=165]="WITHIN",e[e.RIPEMD160=166]="RIPEMD160",e[e.SHA1=167]="SHA1",e[e.SHA256=168]="SHA256",e[e.HASH160=169]="HASH160",e[e.HASH256=170]="HASH256",e[e.CODESEPARATOR=171]="CODESEPARATOR",e[e.CHECKSIG=172]="CHECKSIG",e[e.CHECKSIGVERIFY=173]="CHECKSIGVERIFY",e[e.CHECKMULTISIG=174]="CHECKMULTISIG",e[e.CHECKMULTISIGVERIFY=175]="CHECKMULTISIGVERIFY",e[e.NOP1=176]="NOP1",e[e.CHECKLOCKTIMEVERIFY=177]="CHECKLOCKTIMEVERIFY",e[e.CHECKSEQUENCEVERIFY=178]="CHECKSEQUENCEVERIFY",e[e.NOP4=179]="NOP4",e[e.NOP5=180]="NOP5",e[e.NOP6=181]="NOP6",e[e.NOP7=182]="NOP7",e[e.NOP8=183]="NOP8",e[e.NOP9=184]="NOP9",e[e.NOP10=185]="NOP10",e[e.CHECKSIGADD=186]="CHECKSIGADD",e[e.INVALID=255]="INVALID"}(fc||(fc={}));const pc=Au({encodeStream:(e,t)=>{for(let n of t){if("string"==typeof n){if(void 0===fc[n])throw new Error(`Unknown opcode=${n}`);e.byte(fc[n]);continue}if("number"==typeof n){if(0===n){e.byte(0);continue}if(1<=n&&n<=16){e.byte(fc.OP_1-1+n);continue}}if("number"==typeof n&&(n=lc().encode(BigInt(n))),!Qu(n))throw new Error(`Wrong Script OP=${n} (${typeof n})`);const t=n.length;t<fc.PUSHDATA1?e.byte(t):t<=255?(e.byte(fc.PUSHDATA1),e.byte(t)):t<=65535?(e.byte(fc.PUSHDATA2),e.bytes(Hu.encode(t))):(e.byte(fc.PUSHDATA4),e.bytes(Lu.encode(t))),e.bytes(n)}},decodeStream:e=>{const t=[];for(;!e.isEnd();){const n=e.byte();if(fc.OP_0<n&&n<=fc.PUSHDATA4){let r;if(n<fc.PUSHDATA1)r=n;else if(n===fc.PUSHDATA1)r=Du.decodeStream(e);else if(n===fc.PUSHDATA2)r=Hu.decodeStream(e);else{if(n!==fc.PUSHDATA4)throw new Error("Should be not possible");r=Lu.decodeStream(e)}t.push(e.bytes(r))}else if(0===n)t.push(0);else if(fc.OP_1<=n&&n<=fc.OP_16)t.push(n-(fc.OP_1-1));else{const e=fc[n];if(void 0===e)throw new Error(`Unknown opcode=${n.toString(16)}`);t.push(e)}}return t}}),gc={253:[253,2,253n,65535n],254:[254,4,65536n,4294967295n],255:[255,8,4294967296n,18446744073709551615n]},mc=Au({encodeStream:(e,t)=>{if("number"==typeof t&&(t=BigInt(t)),0n<=t&&t<=252n)return e.byte(Number(t));for(const[n,r,i,s]of Object.values(gc))if(!(i>t||t>s)){e.byte(n);for(let n=0;n<r;n++)e.byte(Number(t>>8n*BigInt(n)&0xffn));return}throw e.err(`VarInt too big: ${t}`)},decodeStream:e=>{const t=e.byte();if(t<=252)return BigInt(t);const[n,r,i]=gc[t];let s=0n;for(let t=0;t<r;t++)s|=BigInt(e.byte())<<8n*BigInt(t);if(s<i)throw e.err(`Wrong CompactSize(${8*r})`);return s}}),yc=Zu(mc,Nu.numberBigint),wc=Fu(mc),_c=Mu(yc,wc),vc=e=>Mu(mc,e),bc=qu({txid:Fu(32,!0),index:Lu,finalScriptSig:wc,sequence:Lu}),Ec=qu({amount:Cu,script:wc});const xc=Ou(qu({version:ju,segwitFlag:((e,t=!1)=>{if(!fu(e))throw new Error("flag/flagValue: expected Uint8Array, got "+typeof e);if("boolean"!=typeof t)throw new Error("flag/xor: expected boolean, got "+typeof t);return Au({size:e.length,encodeStream:(n,r)=>{!!r!==t&&n.bytes(e)},decodeStream:n=>{let r=n.leftBytes>=e.length;return r&&(r=hu(n.bytes(e.length,!0),e),r&&n.bytes(e.length)),r!==t},validate:e=>{if(void 0!==e&&"boolean"!=typeof e)throw new Error("flag: expected boolean value or undefined, got "+typeof e);return e}})})(new Uint8Array([0,1])),inputs:vc(bc),outputs:vc(Ec),witnesses:function(e,t){if(!Tu(t))throw new Error(`flagged: invalid inner value ${t}`);return Au({encodeStream:(n,r)=>{bu.resolve(n.stack,e)&&t.encodeStream(n,r)},decodeStream:n=>{let r=!1;if(r=!!bu.resolve(n.stack,e),r)return t.decodeStream(n)}})}("segwitFlag",Mu("inputs/length",_c)),lockTime:Lu}),function(e){if(e.segwitFlag&&e.witnesses&&!e.witnesses.length)throw new Error("Segwit flag with empty witnesses array");return e}),Sc=qu({version:ju,inputs:vc(bc),outputs:vc(Ec),lockTime:Lu}),kc=Ou(Fu(null),e=>uc(e,ac.ecdsa)),Oc=Ou(Fu(32),e=>uc(e,ac.schnorr)),Ac=Ou(Fu(null),e=>{if(64!==e.length&&65!==e.length)throw new Error("Schnorr signature should be 64 or 65 bytes long");return e}),Pc=qu({fingerprint:zu,path:Mu(null,Lu)}),Tc=qu({hashes:Mu(yc,Fu(32)),der:Pc}),Ic=Fu(78),Nc=qu({pubKey:Oc,leafHash:Fu(32)}),Uc=Ou(qu({version:Du,internalKey:Fu(32),merklePath:Mu(null,Fu(32))}),e=>{if(e.merklePath.length>128)throw new Error("TaprootControlBlock: merklePath should be of length 0..128 (inclusive)");return e}),$c=Mu(null,qu({depth:Du,version:Du,script:wc})),Cc=Fu(null),Bc=Fu(20),Rc=Fu(32),Lc={unsignedTx:[0,!1,Sc,[0],[0],!1],xpub:[1,Ic,Pc,[],[0,2],!1],txVersion:[2,!1,Lu,[2],[2],!1],fallbackLocktime:[3,!1,Lu,[],[2],!1],inputCount:[4,!1,yc,[2],[2],!1],outputCount:[5,!1,yc,[2],[2],!1],txModifiable:[6,!1,Du,[],[2],!1],version:[251,!1,Lu,[],[0,2],!1],proprietary:[252,Cc,Cc,[],[0,2],!1]},zc={nonWitnessUtxo:[0,!1,xc,[],[0,2],!1],witnessUtxo:[1,!1,Ec,[],[0,2],!1],partialSig:[2,kc,Cc,[],[0,2],!1],sighashType:[3,!1,Lu,[],[0,2],!1],redeemScript:[4,!1,Cc,[],[0,2],!1],witnessScript:[5,!1,Cc,[],[0,2],!1],bip32Derivation:[6,kc,Pc,[],[0,2],!1],finalScriptSig:[7,!1,Cc,[],[0,2],!1],finalScriptWitness:[8,!1,_c,[],[0,2],!1],porCommitment:[9,!1,Cc,[],[0,2],!1],ripemd160:[10,Bc,Cc,[],[0,2],!1],sha256:[11,Rc,Cc,[],[0,2],!1],hash160:[12,Bc,Cc,[],[0,2],!1],hash256:[13,Rc,Cc,[],[0,2],!1],txid:[14,!1,Rc,[2],[2],!0],index:[15,!1,Lu,[2],[2],!0],sequence:[16,!1,Lu,[],[2],!0],requiredTimeLocktime:[17,!1,Lu,[],[2],!1],requiredHeightLocktime:[18,!1,Lu,[],[2],!1],tapKeySig:[19,!1,Ac,[],[0,2],!1],tapScriptSig:[20,Nc,Ac,[],[0,2],!1],tapLeafScript:[21,Uc,Cc,[],[0,2],!1],tapBip32Derivation:[22,Rc,Tc,[],[0,2],!1],tapInternalKey:[23,!1,Oc,[],[0,2],!1],tapMerkleRoot:[24,!1,Rc,[],[0,2],!1],proprietary:[252,Cc,Cc,[],[0,2],!1]},jc=["txid","sequence","index","witnessUtxo","nonWitnessUtxo","finalScriptSig","finalScriptWitness","unknown"],Hc=["partialSig","finalScriptSig","finalScriptWitness","tapKeySig","tapScriptSig"],Dc={redeemScript:[0,!1,Cc,[],[0,2],!1],witnessScript:[1,!1,Cc,[],[0,2],!1],bip32Derivation:[2,kc,Pc,[],[0,2],!1],amount:[3,!1,Bu,[2],[2],!0],script:[4,!1,Cc,[2],[2],!0],tapInternalKey:[5,!1,Oc,[],[0,2],!1],tapTree:[6,!1,$c,[],[0,2],!1],tapBip32Derivation:[7,Oc,Tc,[],[0,2],!1],proprietary:[252,Cc,Cc,[],[0,2],!1]},Fc=[],Vc=Mu(du,qu({key:function(e,t){if(!Tu(t))throw new Error(`prefix: invalid inner value ${t}`);return Zu(Fu(e),Iu(t))}(yc,qu({type:yc,key:Fu(null)})),value:Fu(yc)}));function Zc(e){const[t,n,r,i,s,o]=e;return{type:t,kc:n,vc:r,reqInc:i,allowInc:s,silentIgnore:o}}function Kc(e){const t={};for(const n in e){const[r,i,s]=e[n];t[r]=[n,i,s]}return Au({encodeStream:(t,n)=>{let r=[];for(const t in e){const i=n[t];if(void 0===i)continue;const[s,o,a]=e[t];if(o){const e=i.map(([e,t])=>[o.encode(e),a.encode(t)]);e.sort((e,t)=>hc(e[0],t[0]));for(const[t,n]of e)r.push({key:{key:t,type:s},value:n})}else r.push({key:{type:s,key:cu},value:a.encode(i)})}if(n.unknown){n.unknown.sort((e,t)=>hc(e[0].key,t[0].key));for(const[e,t]of n.unknown)r.push({key:e,value:t})}Vc.encodeStream(t,r)},decodeStream:e=>{const n=Vc.decodeStream(e),r={},i={};for(const e of n){let n="unknown",s=e.key.key,o=e.value;if(t[e.key.type]){const[a,u,c]=t[e.key.type];if(n=a,!u&&s.length)throw new Error(`PSBT: Non-empty key for ${n} (key=${Fi.encode(s)} value=${Fi.encode(o)}`);if(s=u?u.decode(s):void 0,o=c.decode(o),!u){if(r[n])throw new Error(`PSBT: Same keys: ${n} (key=${s} value=${o})`);r[n]=o,i[n]=!0;continue}}else s={type:e.key.type,key:e.key.key};if(i[n])throw new Error(`PSBT: Key type with empty key and no key=${n} val=${o}`);r[n]||(r[n]=[]),r[n].push([s,o])}return r}})}qu({type:yc,key:Fu(null)});const Wc=Ou(Kc(zc),e=>{if(e.finalScriptWitness&&!e.finalScriptWitness.length)throw new Error("validateInput: empty finalScriptWitness");if(e.partialSig&&!e.partialSig.length)throw new Error("Empty partialSig");if(e.partialSig)for(const[t]of e.partialSig)uc(t,ac.ecdsa);if(e.bip32Derivation)for(const[t]of e.bip32Derivation)uc(t,ac.ecdsa);if(void 0!==e.requiredTimeLocktime&&e.requiredTimeLocktime<5e8)throw new Error(`validateInput: wrong timeLocktime=${e.requiredTimeLocktime}`);if(void 0!==e.requiredHeightLocktime&&(e.requiredHeightLocktime<=0||e.requiredHeightLocktime>=5e8))throw new Error(`validateInput: wrong heighLocktime=${e.requiredHeightLocktime}`);if(e.tapLeafScript)for(const[t,n]of e.tapLeafScript){if((254&t.version)!==n[n.length-1])throw new Error("validateInput: tapLeafScript version mimatch");if(1&n[n.length-1])throw new Error("validateInput: tapLeafScript version has parity bit!")}return e}),qc=Ou(Kc(Dc),e=>{if(e.bip32Derivation)for(const[t]of e.bip32Derivation)uc(t,ac.ecdsa);return e}),Mc=Ou(Kc(Lc),e=>{if(0===(e.version||0)){if(!e.unsignedTx)throw new Error("PSBTv0: missing unsignedTx");for(const t of e.unsignedTx.inputs)if(t.finalScriptSig&&t.finalScriptSig.length)throw new Error("PSBTv0: input scriptSig found in unsignedTx")}return e}),Gc=qu({magic:Ku(Vu(new Uint8Array([255])),"psbt"),global:Mc,inputs:Mu("global/unsignedTx/inputs/length",Wc),outputs:Mu(null,qc)}),Yc=qu({magic:Ku(Vu(new Uint8Array([255])),"psbt"),global:Mc,inputs:Mu("global/inputCount",Wc),outputs:Mu("global/outputCount",qc)});function Qc(e,t,n){for(const r in n){if("unknown"===r)continue;if(!t[r])continue;const{allowInc:n}=Zc(t[r]);if(!n.includes(e))throw new Error(`PSBTv${e}: field ${r} is not allowed`)}for(const r in t){const{reqInc:i}=Zc(t[r]);if(i.includes(e)&&void 0===n[r])throw new Error(`PSBTv${e}: missing required field ${r}`)}}function Jc(e,t,n){const r={};for(const i in n){const s=i;if("unknown"!==s){if(!t[s])continue;const{allowInc:n,silentIgnore:r}=Zc(t[s]);if(!n.includes(e)){if(r)continue;throw new Error(`Failed to serialize in PSBTv${e}: ${s} but versions allows inclusion=${n}`)}}r[s]=n[s]}return r}function Xc(e){const t=e&&e.global&&e.global.version||0;Qc(t,Lc,e.global);for(const n of e.inputs)Qc(t,zc,n);for(const n of e.outputs)Qc(t,Dc,n);const n=t?e.global.inputCount:e.global.unsignedTx.inputs.length;if(e.inputs.length<n)throw new Error("Not enough inputs");const r=e.inputs.slice(n);if(r.length>1||r.length&&Object.keys(r[0]).length)throw new Error(`Unexpected inputs left in tx=${r}`);const i=t?e.global.outputCount:e.global.unsignedTx.outputs.length;if(e.outputs.length<i)throw new Error("Not outputs inputs");const s=e.outputs.slice(i);if(s.length>1||s.length&&Object.keys(s[0]).length)throw new Error(`Unexpected outputs left in tx=${s}`);return e}function ed(e,t,n,r,i){const s={...n,...t};for(const i in e){const o=i,[a,u,c]=e[o],d=r&&!r.includes(i);if(void 0===t[i]&&i in t){if(d)throw new Error(`Cannot remove signed field=${i}`);delete s[i]}else if(u){const e=n&&n[i]?n[i]:[];let r=t[o];if(r){if(!Array.isArray(r))throw new Error(`keyMap(${i}): KV pairs should be [k, v][]`);r=r.map(e=>{if(2!==e.length)throw new Error(`keyMap(${i}): KV pairs should be [k, v][]`);return["string"==typeof e[0]?u.decode(Fi.decode(e[0])):e[0],"string"==typeof e[1]?c.decode(Fi.decode(e[1])):e[1]]});const t={},n=(e,n,r)=>{if(void 0===t[e])return void(t[e]=[n,r]);const i=Fi.encode(c.encode(t[e][1])),s=Fi.encode(c.encode(r));if(i!==s)throw new Error(`keyMap(${o}): same key=${e} oldVal=${i} newVal=${s}`)};for(const[t,r]of e){n(Fi.encode(u.encode(t)),t,r)}for(const[e,i]of r){const r=Fi.encode(u.encode(e));if(void 0===i){if(d)throw new Error(`Cannot remove signed field=${o}/${e}`);delete t[r]}else n(r,e,i)}s[o]=Object.values(t)}}else if("string"==typeof s[i])s[i]=c.decode(Fi.decode(s[i]));else if(d&&i in t&&n&&void 0!==n[i]&&!Xu(c.encode(t[i]),c.encode(n[i])))throw new Error(`Cannot change signed field=${i}`)}for(const t in s)if(!e[t]){if(i&&"unknown"===t)continue;delete s[t]}return s}qu({magic:Ku(Vu(new Uint8Array([255])),"psbt"),items:Mu(null,Zu(Mu(du,function(e){if(!Array.isArray(e))throw new Error(`Packed.Tuple: got ${typeof e} instead of array`);for(let t=0;t<e.length;t++)if(!Tu(e[t]))throw new Error(`tuple: field ${t} is not CoderType`);return Au({size:Wu(e),encodeStream:(t,n)=>{if(!Array.isArray(n))throw t.err(`tuple: invalid value ${n}`);t.pushObj(n,r=>{for(let i=0;i<e.length;i++)r(`${i}`,()=>e[i].encodeStream(t,n[i]))})},decodeStream:t=>{const n=[];return t.pushObj(n,r=>{for(let i=0;i<e.length;i++)r(`${i}`,()=>n.push(e[i].decodeStream(t)))}),n},validate:t=>{if(!Array.isArray(t))throw new Error(`tuple: invalid value ${t}`);if(t.length!==e.length)throw new Error(`tuple: wrong length=${t.length}, expected ${e.length}`);return t}})}([((e,t={isLE:!1,with0x:!1})=>{let n=Zu(Fu(e,t.isLE),Fi);const r=t.with0x;if("boolean"!=typeof r)throw new Error("hex/with0x: expected boolean, got "+typeof r);return r&&(n=Zu(n,{encode:e=>`0x${e}`,decode:e=>{if(!e.startsWith("0x"))throw new Error("hex(with0x=true).encode input should start with 0x");return e.slice(2)}})),n})(yc),Fu(mc)])),Nu.dict()))});const td=Ou(Gc,Xc),nd=Ou(Yc,Xc);function rd(e,t){try{return uc(e,t),!0}catch(e){return!1}}const id=[{encode(e){if(2===e.length&&1===e[0]&&Qu(e[1])&&"4e73"===Fi.encode(e[1]))return{type:"p2a",script:pc.encode(e)}},decode:e=>{if("p2a"===e.type)return[1,Fi.decode("4e73")]}},{encode(e){if(2===e.length&&Qu(e[0])&&rd(e[0],ac.ecdsa)&&"CHECKSIG"===e[1])return{type:"pk",pubkey:e[0]}},decode:e=>"pk"===e.type?[e.pubkey,"CHECKSIG"]:void 0},{encode(e){if(5===e.length&&"DUP"===e[0]&&"HASH160"===e[1]&&Qu(e[2])&&"EQUALVERIFY"===e[3]&&"CHECKSIG"===e[4])return{type:"pkh",hash:e[2]}},decode:e=>"pkh"===e.type?["DUP","HASH160",e.hash,"EQUALVERIFY","CHECKSIG"]:void 0},{encode(e){if(3===e.length&&"HASH160"===e[0]&&Qu(e[1])&&"EQUAL"===e[2])return{type:"sh",hash:e[1]}},decode:e=>"sh"===e.type?["HASH160",e.hash,"EQUAL"]:void 0},{encode(e){if(2===e.length&&0===e[0]&&Qu(e[1])&&32===e[1].length)return{type:"wsh",hash:e[1]}},decode:e=>"wsh"===e.type?[0,e.hash]:void 0},{encode(e){if(2===e.length&&0===e[0]&&Qu(e[1])&&20===e[1].length)return{type:"wpkh",hash:e[1]}},decode:e=>"wpkh"===e.type?[0,e.hash]:void 0},{encode(e){const t=e.length-1;if("CHECKMULTISIG"!==e[t])return;const n=e[0],r=e[t-1];if("number"!=typeof n||"number"!=typeof r)return;const i=e.slice(1,-2);if(r===i.length){for(const e of i)if(!Qu(e))return;return{type:"ms",m:n,pubkeys:i}}},decode:e=>"ms"===e.type?[e.m,...e.pubkeys,e.pubkeys.length,"CHECKMULTISIG"]:void 0},{encode(e){if(2===e.length&&1===e[0]&&Qu(e[1]))return{type:"tr",pubkey:e[1]}},decode:e=>"tr"===e.type?[1,e.pubkey]:void 0},{encode(e){const t=e.length-1;if("CHECKSIG"!==e[t])return;const n=[];for(let r=0;r<t;r++){const i=e[r];if(1&r){if("CHECKSIGVERIFY"!==i||r===t-1)return}else{if(!Qu(i))return;n.push(i)}}return{type:"tr_ns",pubkeys:n}},decode:e=>{if("tr_ns"!==e.type)return;const t=[];for(let n=0;n<e.pubkeys.length-1;n++)t.push(e.pubkeys[n],"CHECKSIGVERIFY");return t.push(e.pubkeys[e.pubkeys.length-1],"CHECKSIG"),t}},{encode(e){const t=e.length-1;if("NUMEQUAL"!==e[t]||"CHECKSIG"!==e[1])return;const n=[],r=function(e,t=4,n=!0){if("number"==typeof e)return e;if(Qu(e))try{const r=lc(t,n).decode(e);if(r>Number.MAX_SAFE_INTEGER)return;return Number(r)}catch(e){return}}(e[t-1]);if("number"==typeof r){for(let r=0;r<t-1;r++){const t=e[r];if(1&r){if(t!==(1===r?"CHECKSIG":"CHECKSIGADD"))throw new Error("OutScript.encode/tr_ms: wrong element")}else{if(!Qu(t))throw new Error("OutScript.encode/tr_ms: wrong key element");n.push(t)}}return{type:"tr_ms",pubkeys:n,m:r}}},decode:e=>{if("tr_ms"!==e.type)return;const t=[e.pubkeys[0],"CHECKSIG"];for(let n=1;n<e.pubkeys.length;n++)t.push(e.pubkeys[n],"CHECKSIGADD");return t.push(e.m,"NUMEQUAL"),t}},{encode:e=>({type:"unknown",script:pc.encode(e)}),decode:e=>"unknown"===e.type?pc.decode(e.script):void 0}],sd=Ou(Zu(pc,Nu.match(id)),e=>{if("pk"===e.type&&!rd(e.pubkey,ac.ecdsa))throw new Error("OutScript/pk: wrong key");if(!("pkh"!==e.type&&"sh"!==e.type&&"wpkh"!==e.type||Qu(e.hash)&&20===e.hash.length))throw new Error(`OutScript/${e.type}: wrong hash`);if("wsh"===e.type&&(!Qu(e.hash)||32!==e.hash.length))throw new Error("OutScript/wsh: wrong hash");if(!("tr"!==e.type||Qu(e.pubkey)&&rd(e.pubkey,ac.schnorr)))throw new Error("OutScript/tr: wrong taproot public key");if(("ms"===e.type||"tr_ns"===e.type||"tr_ms"===e.type)&&!Array.isArray(e.pubkeys))throw new Error("OutScript/multisig: wrong pubkeys array");if("ms"===e.type){const t=e.pubkeys.length;for(const t of e.pubkeys)if(!rd(t,ac.ecdsa))throw new Error("OutScript/multisig: wrong pubkey");if(e.m<=0||t>16||e.m>t)throw new Error("OutScript/multisig: invalid params")}if("tr_ns"===e.type||"tr_ms"===e.type)for(const t of e.pubkeys)if(!rd(t,ac.schnorr))throw new Error(`OutScript/${e.type}: wrong pubkey`);if("tr_ms"===e.type){const t=e.pubkeys.length;if(e.m<=0||t>999||e.m>t)throw new Error("OutScript/tr_ms: invalid params")}return e});function od(e,t){if(!Xu(e.hash,ee(t)))throw new Error("checkScript: wsh wrong witnessScript hash");const n=sd.decode(t);if("tr"===n.type||"tr_ns"===n.type||"tr_ms"===n.type)throw new Error(`checkScript: P2${n.type} cannot be wrapped in P2SH`);if("wpkh"===n.type||"sh"===n.type)throw new Error(`checkScript: P2${n.type} cannot be wrapped in P2WSH`)}function ad(e,t,n){if(e){const r=sd.decode(e);if("tr_ns"===r.type||"tr_ms"===r.type||"ms"===r.type||"pk"==r.type)throw new Error(`checkScript: non-wrapped ${r.type}`);if("sh"===r.type&&t){if(!Xu(r.hash,ec(t)))throw new Error("checkScript: sh wrong redeemScript hash");const e=sd.decode(t);if("tr"===e.type||"tr_ns"===e.type||"tr_ms"===e.type)throw new Error(`checkScript: P2${e.type} cannot be wrapped in P2SH`);if("sh"===e.type)throw new Error("checkScript: P2SH cannot be wrapped in P2SH")}"wsh"===r.type&&n&&od(r,n)}if(t){const e=sd.decode(t);"wsh"===e.type&&n&&od(e,n)}}const ud=(e,t=192)=>oc("TapLeaf",new Uint8Array([t]),wc.encode(e)),cd=$i(ee);function dd(e,t){if(t.length<2||t.length>40)throw new Error("Witness: invalid length");if(e>16)throw new Error("Witness: invalid version");if(0===e&&20!==t.length&&32!==t.length)throw new Error("Witness: invalid length for version")}function hd(e,t,n=dc){dd(e,t);const r=0===e?ji:Hi;return r.encode(n.bech32,[e].concat(r.toWords(t)))}function fd(e,t){return cd.encode(Ju(Uint8Array.from(t),e))}function ld(e=dc){return{encode(t){const{type:n}=t;if("wpkh"===n)return hd(0,t.hash,e);if("wsh"===n)return hd(0,t.hash,e);if("tr"===n)return hd(1,t.pubkey,e);if("pkh"===n)return fd(t.hash,[e.pubKeyHash]);if("sh"===n)return fd(t.hash,[e.scriptHash]);throw new Error(`Unknown address type=${n}`)},decode(t){if(t.length<14||t.length>74)throw new Error("Invalid address length");if(e.bech32&&t.toLowerCase().startsWith(`${e.bech32}1`)){let n;try{if(n=ji.decode(t),0!==n.words[0])throw new Error(`bech32: wrong version=${n.words[0]}`)}catch(e){if(n=Hi.decode(t),0===n.words[0])throw new Error(`bech32m: wrong version=${n.words[0]}`)}if(n.prefix!==e.bech32)throw new Error(`wrong bech32 prefix=${n.prefix}`);const[r,...i]=n.words,s=ji.fromWords(i);if(dd(r,s),0===r&&32===s.length)return{type:"wsh",hash:s};if(0===r&&20===s.length)return{type:"wpkh",hash:s};if(1===r&&32===s.length)return{type:"tr",pubkey:s};throw new Error("Unknown witness program")}const n=cd.decode(t);if(21!==n.length)throw new Error("Invalid base58 address");if(n[0]===e.pubKeyHash)return{type:"pkh",hash:n.slice(1)};if(n[0]===e.scriptHash)return{type:"sh",hash:n.slice(1)};throw new Error(`Invalid address prefix=${n[0]}`)}}}const pd=new Uint8Array(32),gd={amount:0xffffffffffffffffn,script:cu},md=4294967295;Nu.decimal(8);const yd=(e,t)=>void 0===e?t:e;function wd(e){if(Array.isArray(e))return e.map(e=>wd(e));if(Qu(e))return Uint8Array.from(e);if(["number","bigint","boolean","string","undefined"].includes(typeof e))return e;if(null===e)return e;if("object"==typeof e)return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,wd(t)]));throw new Error(`cloneDeep: unknown type=${e} (${typeof e})`)}var _d,vd;function bd(e,t,n,r=cu){return Xu(n,t)&&(e=function(e,t=Uint8Array.of()){const n=$t.utils,r=n.bytesToNumberBE(e),i=Gu.fromPrivateKey(r),s=i.hasEvenY()?r:n.mod(-r,Yu),o=cc(n.pointToBytes(i),t);return n.numberToBytesBE(n.mod(s+o,Yu),32)}(e,r),t=nc(e)),{privKey:e,pubKey:t}}function Ed(e){if(void 0===e.script||void 0===e.amount)throw new Error("Transaction/output: script and amount required");return{script:e.script,amount:e.amount}}function xd(e){if(void 0===e.txid||void 0===e.index)throw new Error("Transaction/input: txid and index required");return{txid:e.txid,index:e.index,sequence:yd(e.sequence,md),finalScriptSig:yd(e.finalScriptSig,cu)}}function Sd(e){for(const t in e){const n=t;jc.includes(n)||delete e[n]}}!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.ALL=1]="ALL",e[e.NONE=2]="NONE",e[e.SINGLE=3]="SINGLE",e[e.ANYONECANPAY=128]="ANYONECANPAY"}(_d||(_d={})),function(e){e[e.DEFAULT=0]="DEFAULT",e[e.ALL=1]="ALL",e[e.NONE=2]="NONE",e[e.SINGLE=3]="SINGLE",e[e.DEFAULT_ANYONECANPAY=128]="DEFAULT_ANYONECANPAY",e[e.ALL_ANYONECANPAY=129]="ALL_ANYONECANPAY",e[e.NONE_ANYONECANPAY=130]="NONE_ANYONECANPAY",e[e.SINGLE_ANYONECANPAY=131]="SINGLE_ANYONECANPAY"}(vd||(vd={}));const kd=qu({txid:Fu(32,!0),index:Lu});function Od(e){if("number"!=typeof e||"string"!=typeof vd[e])throw new Error(`Invalid SigHash=${e}`);return e}function Ad(e){const t=31&e;return{isAny:!!(e&_d.ANYONECANPAY),isNone:t===_d.NONE,isSingle:t===_d.SINGLE}}function Pd(e){if(e.nonWitnessUtxo&&void 0!==e.index){const t=e.nonWitnessUtxo.outputs.length-1;if(e.index>t)throw new Error(`validateInput: index(${e.index}) not in nonWitnessUtxo`);const n=e.nonWitnessUtxo.outputs[e.index];if(e.witnessUtxo&&(!Xu(e.witnessUtxo.script,n.script)||e.witnessUtxo.amount!==n.amount))throw new Error("validateInput: witnessUtxo different from nonWitnessUtxo");if(e.txid){if(e.nonWitnessUtxo.outputs.length-1<e.index)throw new Error("nonWitnessUtxo: incorect output index");const t=Ud.fromRaw(xc.encode(e.nonWitnessUtxo),{allowUnknownOutputs:!0,disableScriptCheck:!0,allowUnknownInputs:!0}),n=Fi.encode(e.txid);if(t.isFinal&&t.id!==n)throw new Error(`nonWitnessUtxo: wrong txid, exp=${n} got=${t.id}`)}}return e}function Td(e){if(e.nonWitnessUtxo){if(void 0===e.index)throw new Error("Unknown input index");return e.nonWitnessUtxo.outputs[e.index]}if(e.witnessUtxo)return e.witnessUtxo;throw new Error("Cannot find previous output info")}function Id(e,t,n,r=!1,i=!1){let{nonWitnessUtxo:s,txid:o}=e;"string"==typeof s&&(s=Fi.decode(s)),Qu(s)&&(s=xc.decode(s)),"nonWitnessUtxo"in e||void 0!==s||(s=t?.nonWitnessUtxo),"string"==typeof o&&(o=Fi.decode(o)),void 0===o&&(o=t?.txid);let a,u={...t,...e,nonWitnessUtxo:s,txid:o};return"nonWitnessUtxo"in e||void 0!==u.nonWitnessUtxo||delete u.nonWitnessUtxo,void 0===u.sequence&&(u.sequence=md),null===u.tapMerkleRoot&&delete u.tapMerkleRoot,u=ed(zc,u,t,n,i),Wc.encode(u),u.nonWitnessUtxo&&void 0!==u.index?a=u.nonWitnessUtxo.outputs[u.index]:u.witnessUtxo&&(a=u.witnessUtxo),a&&!r&&ad(a&&a.script,u.redeemScript,u.witnessScript),u}function Nd(e,t=!1){let n="legacy",r=_d.ALL;const i=Td(e),s=sd.decode(i.script);let o=s.type,a=s;const u=[s];if("tr"===s.type)return r=_d.DEFAULT,{txType:"taproot",type:"tr",last:s,lastScript:i.script,defaultSighash:r,sighash:e.sighashType||r};{if("wpkh"!==s.type&&"wsh"!==s.type||(n="segwit"),"sh"===s.type){if(!e.redeemScript)throw new Error("inputType: sh without redeemScript");let t=sd.decode(e.redeemScript);"wpkh"!==t.type&&"wsh"!==t.type||(n="segwit"),u.push(t),a=t,o+=`-${t.type}`}if("wsh"===a.type){if(!e.witnessScript)throw new Error("inputType: wsh without witnessScript");let t=sd.decode(e.witnessScript);"wsh"===t.type&&(n="segwit"),u.push(t),a=t,o+=`-${t.type}`}const i=u[u.length-1];if("sh"===i.type||"wsh"===i.type)throw new Error("inputType: sh/wsh cannot be terminal type");const c={type:o,txType:n,last:i,lastScript:sd.encode(i),defaultSighash:r,sighash:e.sighashType||r};if("legacy"===n&&!t&&!e.nonWitnessUtxo)throw new Error("Transaction/sign: legacy input without nonWitnessUtxo, can result in attack that forces paying higher fees. Pass allowLegacyWitnessUtxo=true, if you sure");return c}}class Ud{constructor(e={}){this.global={},this.inputs=[],this.outputs=[];const t=this.opts=function(e){if(void 0!==e&&"[object Object]"!=={}.toString.call(e))throw new Error(`Wrong object type for transaction options: ${e}`);const t={...e,version:yd(e.version,2),lockTime:yd(e.lockTime,0),PSBTVersion:yd(e.PSBTVersion,0)};if(void 0!==t.allowUnknowInput&&(e.allowUnknownInputs=t.allowUnknowInput),void 0!==t.allowUnknowOutput&&(e.allowUnknownOutputs=t.allowUnknowOutput),"number"!=typeof t.lockTime)throw new Error("Transaction lock time should be number");if(Lu.encode(t.lockTime),0!==t.PSBTVersion&&2!==t.PSBTVersion)throw new Error(`Unknown PSBT version ${t.PSBTVersion}`);for(const e of["allowUnknownVersion","allowUnknownOutputs","allowUnknownInputs","disableScriptCheck","bip174jsCompat","allowLegacyWitnessUtxo","lowR"]){const n=t[e];if(void 0!==n&&"boolean"!=typeof n)throw new Error(`Transation options wrong type: ${e}=${n} (${typeof n})`)}if(t.allowUnknownVersion?"number"==typeof t.version:![-1,0,1,2,3].includes(t.version))throw new Error(`Unknown version: ${t.version}`);if(void 0!==t.customScripts){const e=t.customScripts;if(!Array.isArray(e))throw new Error(`wrong custom scripts type (expected array): customScripts=${e} (${typeof e})`);for(const t of e){if("function"!=typeof t.encode||"function"!=typeof t.decode)throw new Error(`wrong script=${t} (${typeof t})`);if(void 0!==t.finalizeTaproot&&"function"!=typeof t.finalizeTaproot)throw new Error(`wrong script=${t} (${typeof t})`)}}return Object.freeze(t)}(e);0!==t.lockTime&&(this.global.fallbackLocktime=t.lockTime),this.global.txVersion=t.version}static fromRaw(e,t={}){const n=xc.decode(e),r=new Ud({...t,version:n.version,lockTime:n.lockTime});for(const e of n.outputs)r.addOutput(e);if(r.outputs=n.outputs,r.inputs=n.inputs,n.witnesses)for(let e=0;e<n.witnesses.length;e++)r.inputs[e].finalScriptWitness=n.witnesses[e];return r}static fromPSBT(e,t={}){let n;try{n=td.decode(e)}catch(t){try{n=nd.decode(e)}catch(e){throw t}}const r=n.global.version||0;if(0!==r&&2!==r)throw new Error(`Wrong PSBT version=${r}`);const i=n.global.unsignedTx,s=0===r?i?.version:n.global.txVersion,o=0===r?i?.lockTime:n.global.fallbackLocktime,a=new Ud({...t,version:s,lockTime:o,PSBTVersion:r}),u=0===r?i?.inputs.length:n.global.inputCount;a.inputs=n.inputs.slice(0,u).map((e,t)=>Pd({finalScriptSig:cu,...n.global.unsignedTx?.inputs[t],...e}));const c=0===r?i?.outputs.length:n.global.outputCount;return a.outputs=n.outputs.slice(0,c).map((e,t)=>({...e,...n.global.unsignedTx?.outputs[t]})),a.global={...n.global,txVersion:s},0!==o&&(a.global.fallbackLocktime=o),a}toPSBT(e=this.opts.PSBTVersion){if(0!==e&&2!==e)throw new Error(`Wrong PSBT version=${e}`);const t=this.inputs.map(t=>Pd(Jc(e,zc,t)));for(const e of t)e.partialSig&&!e.partialSig.length&&delete e.partialSig,e.finalScriptSig&&!e.finalScriptSig.length&&delete e.finalScriptSig,e.finalScriptWitness&&!e.finalScriptWitness.length&&delete e.finalScriptWitness;const n=this.outputs.map(t=>Jc(e,Dc,t)),r={...this.global};return 0===e?(r.unsignedTx=Sc.decode(Sc.encode({version:this.version,lockTime:this.lockTime,inputs:this.inputs.map(xd).map(e=>({...e,finalScriptSig:cu})),outputs:this.outputs.map(Ed)})),delete r.fallbackLocktime,delete r.txVersion):(r.version=e,r.txVersion=this.version,r.inputCount=this.inputs.length,r.outputCount=this.outputs.length,r.fallbackLocktime&&0===r.fallbackLocktime&&delete r.fallbackLocktime),this.opts.bip174jsCompat&&(t.length||t.push({}),n.length||n.push({})),(0===e?td:nd).encode({global:r,inputs:t,outputs:n})}get lockTime(){let e=0,t=0,n=0,r=0;for(const i of this.inputs)i.requiredHeightLocktime&&(e=Math.max(e,i.requiredHeightLocktime),t++),i.requiredTimeLocktime&&(n=Math.max(n,i.requiredTimeLocktime),r++);return t&&t>=r?e:0!==n?n:this.global.fallbackLocktime||0}get version(){if(void 0===this.global.txVersion)throw new Error("No global.txVersion");return this.global.txVersion}inputStatus(e){this.checkInputIdx(e);const t=this.inputs[e];return t.finalScriptSig&&t.finalScriptSig.length||t.finalScriptWitness&&t.finalScriptWitness.length?"finalized":t.tapKeySig||t.tapScriptSig&&t.tapScriptSig.length||t.partialSig&&t.partialSig.length?"signed":"unsigned"}inputSighash(e){this.checkInputIdx(e);const t=this.inputs[e].sighashType,n=void 0===t?_d.DEFAULT:t,r=n===_d.DEFAULT?_d.ALL:3&n;return{sigInputs:n&_d.ANYONECANPAY,sigOutputs:r}}signStatus(){let e=!0,t=!0,n=[],r=[];for(let i=0;i<this.inputs.length;i++){if("unsigned"===this.inputStatus(i))continue;const{sigInputs:s,sigOutputs:o}=this.inputSighash(i);if(s===_d.ANYONECANPAY?n.push(i):e=!1,o===_d.ALL)t=!1;else if(o===_d.SINGLE)r.push(i);else if(o!==_d.NONE)throw new Error(`Wrong signature hash output type: ${o}`)}return{addInput:e,addOutput:t,inputs:n,outputs:r}}get isFinal(){for(let e=0;e<this.inputs.length;e++)if("finalized"!==this.inputStatus(e))return!1;return!0}get hasWitnesses(){let e=!1;for(const t of this.inputs)t.finalScriptWitness&&t.finalScriptWitness.length&&(e=!0);return e}get weight(){if(!this.isFinal)throw new Error("Transaction is not finalized");let e=32;const t=this.outputs.map(Ed);e+=4*yc.encode(this.outputs.length).length;for(const n of t)e+=32+4*wc.encode(n.script).length;this.hasWitnesses&&(e+=2),e+=4*yc.encode(this.inputs.length).length;for(const t of this.inputs)e+=160+4*wc.encode(t.finalScriptSig||cu).length,this.hasWitnesses&&t.finalScriptWitness&&(e+=_c.encode(t.finalScriptWitness).length);return e}get vsize(){return e=this.weight,Math.ceil(e/4);var e}toBytes(e=!1,t=!1){return xc.encode({version:this.version,lockTime:this.lockTime,inputs:this.inputs.map(xd).map(t=>({...t,finalScriptSig:e&&t.finalScriptSig||cu})),outputs:this.outputs.map(Ed),witnesses:this.inputs.map(e=>e.finalScriptWitness||[]),segwitFlag:t&&this.hasWitnesses})}get unsignedTx(){return this.toBytes(!1,!1)}get hex(){return Fi.encode(this.toBytes(!0,this.hasWitnesses))}get hash(){if(!this.isFinal)throw new Error("Transaction is not finalized");return Fi.encode(tc(this.toBytes(!0)))}get id(){if(!this.isFinal)throw new Error("Transaction is not finalized");return Fi.encode(tc(this.toBytes(!0)).reverse())}checkInputIdx(e){if(!Number.isSafeInteger(e)||0>e||e>=this.inputs.length)throw new Error(`Wrong input index=${e}`)}getInput(e){return this.checkInputIdx(e),wd(this.inputs[e])}get inputsLength(){return this.inputs.length}addInput(e,t=!1){if(!t&&!this.signStatus().addInput)throw new Error("Tx has signed inputs, cannot add new one");return this.inputs.push(Id(e,void 0,void 0,this.opts.disableScriptCheck)),this.inputs.length-1}updateInput(e,t,n=!1){let r;if(this.checkInputIdx(e),!n){const t=this.signStatus();t.addInput&&!t.inputs.includes(e)||(r=Hc)}this.inputs[e]=Id(t,this.inputs[e],r,this.opts.disableScriptCheck,this.opts.allowUnknown)}checkOutputIdx(e){if(!Number.isSafeInteger(e)||0>e||e>=this.outputs.length)throw new Error(`Wrong output index=${e}`)}getOutput(e){return this.checkOutputIdx(e),wd(this.outputs[e])}getOutputAddress(e,t=dc){const n=this.getOutput(e);if(n.script)return ld(t).encode(sd.decode(n.script))}get outputsLength(){return this.outputs.length}normalizeOutput(e,t,n){let{amount:r,script:i}=e;if(void 0===r&&(r=t?.amount),"bigint"!=typeof r)throw new Error(`Wrong amount type, should be of type bigint in sats, but got ${r} of type ${typeof r}`);"string"==typeof i&&(i=Fi.decode(i)),void 0===i&&(i=t?.script);let s={...t,...e,amount:r,script:i};if(void 0===s.amount&&delete s.amount,s=ed(Dc,s,t,n,this.opts.allowUnknown),qc.encode(s),s.script&&!this.opts.allowUnknownOutputs&&"unknown"===sd.decode(s.script).type)throw new Error("Transaction/output: unknown output script type, there is a chance that input is unspendable. Pass allowUnknownOutputs=true, if you sure");return this.opts.disableScriptCheck||ad(s.script,s.redeemScript,s.witnessScript),s}addOutput(e,t=!1){if(!t&&!this.signStatus().addOutput)throw new Error("Tx has signed outputs, cannot add new one");return this.outputs.push(this.normalizeOutput(e)),this.outputs.length-1}updateOutput(e,t,n=!1){let r;if(this.checkOutputIdx(e),!n){const t=this.signStatus();t.addOutput&&!t.outputs.includes(e)||(r=Fc)}this.outputs[e]=this.normalizeOutput(t,this.outputs[e],r)}addOutputAddress(e,t,n=dc){return this.addOutput({script:sd.encode(ld(n).decode(e)),amount:t})}get fee(){let e=0n;for(const t of this.inputs){const n=Td(t);if(!n)throw new Error("Empty input amount");e+=n.amount}const t=this.outputs.map(Ed);for(const n of t)e-=n.amount;return e}preimageLegacy(e,t,n){const{isAny:r,isNone:i,isSingle:s}=Ad(n);if(e<0||!Number.isSafeInteger(e))throw new Error(`Invalid input idx=${e}`);if(s&&e>=this.outputs.length||e>=this.inputs.length)return $u.encode(1n);t=pc.encode(pc.decode(t).filter(e=>"CODESEPARATOR"!==e));let o=this.inputs.map(xd).map((n,r)=>({...n,finalScriptSig:r===e?t:cu}));r?o=[o[e]]:(i||s)&&(o=o.map((t,n)=>({...t,sequence:n===e?t.sequence:0})));let a=this.outputs.map(Ed);i?a=[]:s&&(a=a.slice(0,e).fill(gd).concat([a[e]]));const u=xc.encode({lockTime:this.lockTime,version:this.version,segwitFlag:!1,inputs:o,outputs:a});return tc(u,ju.encode(n))}preimageWitnessV0(e,t,n,r){const{isAny:i,isNone:s,isSingle:o}=Ad(n);let a=pd,u=pd,c=pd;const d=this.inputs.map(xd),h=this.outputs.map(Ed);i||(a=tc(...d.map(kd.encode))),i||o||s||(u=tc(...d.map(e=>Lu.encode(e.sequence)))),o||s?o&&e<h.length&&(c=tc(Ec.encode(h[e]))):c=tc(...h.map(Ec.encode));const f=d[e];return tc(ju.encode(this.version),a,u,Fu(32,!0).encode(f.txid),Lu.encode(f.index),wc.encode(t),Cu.encode(r),Lu.encode(f.sequence),c,Lu.encode(this.lockTime),Lu.encode(n))}preimageWitnessV1(e,t,n,r,i=-1,s,o=192,a){if(!Array.isArray(r)||this.inputs.length!==r.length)throw new Error(`Invalid amounts array=${r}`);if(!Array.isArray(t)||this.inputs.length!==t.length)throw new Error(`Invalid prevOutScript array=${t}`);const u=[Du.encode(0),Du.encode(n),ju.encode(this.version),Lu.encode(this.lockTime)],c=n===_d.DEFAULT?_d.ALL:3&n,d=n&_d.ANYONECANPAY,h=this.inputs.map(xd),f=this.outputs.map(Ed);d!==_d.ANYONECANPAY&&u.push(...[h.map(kd.encode),r.map(Cu.encode),t.map(wc.encode),h.map(e=>Lu.encode(e.sequence))].map(e=>ee(Ju(...e)))),c===_d.ALL&&u.push(ee(Ju(...f.map(Ec.encode))));const l=(a?1:0)|(s?2:0);if(u.push(new Uint8Array([l])),d===_d.ANYONECANPAY){const n=h[e];u.push(kd.encode(n),Cu.encode(r[e]),wc.encode(t[e]),Lu.encode(n.sequence))}else u.push(Lu.encode(e));return 1&l&&u.push(ee(wc.encode(a||cu))),c===_d.SINGLE&&u.push(e<f.length?ee(Ec.encode(f[e])):pd),s&&u.push(ud(s,o),Du.encode(0),ju.encode(i)),oc("TapSighash",...u)}signIdx(e,t,n,r){this.checkInputIdx(t);const i=this.inputs[t],s=Nd(i,this.opts.allowLegacyWitnessUtxo);if(!Qu(e)){if(!i.bip32Derivation||!i.bip32Derivation.length)throw new Error("bip32Derivation: empty");const n=i.bip32Derivation.filter(t=>t[1].fingerprint==e.fingerprint).map(([t,{path:n}])=>{let r=e;for(const e of n)r=r.deriveChild(e);if(!Xu(r.publicKey,t))throw new Error("bip32Derivation: wrong pubKey");if(!r.privateKey)throw new Error("bip32Derivation: no privateKey");return r});if(!n.length)throw new Error(`bip32Derivation: no items with fingerprint=${e.fingerprint}`);let r=!1;for(const e of n)this.signIdx(e.privateKey,t)&&(r=!0);return r}n?n.forEach(Od):n=[s.defaultSighash];const o=s.sighash;if(!n.includes(o))throw new Error(`Input with not allowed sigHash=${o}. Allowed: ${n.join(", ")}`);const{sigOutputs:a}=this.inputSighash(t);if(a===_d.SINGLE&&t>=this.outputs.length)throw new Error(`Input with sighash SINGLE, but there is no output with corresponding index=${t}`);const u=Td(i);if("taproot"===s.txType){const n=this.inputs.map(Td),s=n.map(e=>e.script),a=n.map(e=>e.amount);let u=!1,c=nc(e),d=i.tapMerkleRoot||cu;if(i.tapInternalKey){const{pubKey:n,privKey:h}=bd(e,c,i.tapInternalKey,d),[f,l]=function(e,t){const n=$t.utils,r=cc(e,t),i=n.lift_x(n.bytesToNumberBE(e)).add(Gu.fromPrivateKey(r)),s=i.hasEvenY()?0:1;return[n.pointToBytes(i),s]}(i.tapInternalKey,d);if(Xu(f,n)){const e=this.preimageWitnessV1(t,s,o,a),n=Ju(sc(e,h,r),o!==_d.DEFAULT?new Uint8Array([o]):cu);this.updateInput(t,{tapKeySig:n},!0),u=!0}}if(i.tapLeafScript){i.tapScriptSig=i.tapScriptSig||[];for(const[n,d]of i.tapLeafScript){const n=d.subarray(0,-1),i=pc.decode(n),h=d[d.length-1],f=ud(n,h);if(-1===i.findIndex(e=>Qu(e)&&Xu(e,c)))continue;const l=this.preimageWitnessV1(t,s,o,a,void 0,n,h),p=Ju(sc(l,e,r),o!==_d.DEFAULT?new Uint8Array([o]):cu);this.updateInput(t,{tapScriptSig:[[{pubKey:c,leafHash:f},p]]},!0),u=!0}}if(!u)throw new Error("No taproot scripts signed");return!0}{const n=rc(e);let r=!1;const i=ec(n);for(const e of pc.decode(s.lastScript))Qu(e)&&(Xu(e,n)||Xu(e,i))&&(r=!0);if(!r)throw new Error(`Input script doesn't have pubKey: ${s.lastScript}`);let a;if("legacy"===s.txType)a=this.preimageLegacy(t,s.lastScript,o);else{if("segwit"!==s.txType)throw new Error(`Transaction/sign: unknown tx type: ${s.txType}`);{let e=s.lastScript;"wpkh"===s.last.type&&(e=sd.encode({type:"pkh",hash:s.last.hash})),a=this.preimageWitnessV0(t,e,o,u.amount)}}const c=function(e,t,n=!1){let r=yt.sign(e,t);if(n&&!ic(r)){const n=new Uint8Array(32);let i=0;for(;!ic(r);)if(n.set(Lu.encode(i++)),r=yt.sign(e,t,{extraEntropy:n}),i>4294967295)throw new Error("lowR counter overflow: report the error")}return r.toDERRawBytes()}(a,e,this.opts.lowR);this.updateInput(t,{partialSig:[[n,Ju(c,new Uint8Array([o]))]]},!0)}return!0}sign(e,t,n){let r=0;for(let i=0;i<this.inputs.length;i++)try{this.signIdx(e,i,t,n)&&r++}catch(e){}if(!r)throw new Error("No inputs signed");return r}finalizeIdx(e){if(this.checkInputIdx(e),this.fee<0n)throw new Error("Outputs spends more than inputs amount");const t=this.inputs[e],n=Nd(t,this.opts.allowLegacyWitnessUtxo);if("taproot"===n.txType){if(t.tapKeySig)t.finalScriptWitness=[t.tapKeySig];else{if(!t.tapLeafScript||!t.tapScriptSig)throw new Error("finalize/taproot: unknown input");{const e=t.tapLeafScript.sort((e,t)=>Uc.encode(e[0]).length-Uc.encode(t[0]).length);for(const[n,r]of e){const e=r.slice(0,-1),i=r[r.length-1],s=sd.decode(e),o=ud(e,i),a=t.tapScriptSig.filter(e=>Xu(e[0].leafHash,o));let u=[];if("tr_ms"===s.type){const e=s.m,t=s.pubkeys;let n=0;for(const r of t){const t=a.findIndex(e=>Xu(e[0].pubKey,r));n!==e&&-1!==t?(u.push(a[t][1]),n++):u.push(cu)}if(n!==e)continue}else if("tr_ns"===s.type){for(const e of s.pubkeys){const t=a.findIndex(t=>Xu(t[0].pubKey,e));-1!==t&&u.push(a[t][1])}if(u.length!==s.pubkeys.length)continue}else{if("unknown"!==s.type||!this.opts.allowUnknownInputs){const r=this.opts.customScripts;if(r)for(const i of r){if(!i.finalizeTaproot)continue;const r=pc.decode(e),s=i.encode(r);if(void 0===s)continue;const o=i.finalizeTaproot(e,s,a);if(o)return t.finalScriptWitness=o.concat(Uc.encode(n)),t.finalScriptSig=cu,void Sd(t)}throw new Error("Finalize: Unknown tapLeafScript")}{const t=pc.decode(e);if(u=a.map(([{pubKey:e},n])=>{const r=t.findIndex(t=>Qu(t)&&Xu(t,e));if(-1===r)throw new Error("finalize/taproot: cannot find position of pubkey in script");return{signature:n,pos:r}}).sort((e,t)=>e.pos-t.pos).map(e=>e.signature),!u.length)continue}}t.finalScriptWitness=u.reverse().concat([e,Uc.encode(n)]);break}if(!t.finalScriptWitness)throw new Error("finalize/taproot: empty witness")}}return t.finalScriptSig=cu,void Sd(t)}if(!t.partialSig||!t.partialSig.length)throw new Error("Not enough partial sign");let r,i,s=cu,o=[];if("ms"===n.last.type){const e=n.last.m,r=n.last.pubkeys;let i=[];for(const e of r){const n=t.partialSig.find(t=>Xu(e,t[0]));n&&i.push(n[1])}if(i=i.slice(0,e),i.length!==e)throw new Error(`Multisig: wrong signatures count, m=${e} n=${r.length} signatures=${i.length}`);s=pc.encode([0,...i])}else if("pk"===n.last.type)s=pc.encode([t.partialSig[0][1]]);else if("pkh"===n.last.type)s=pc.encode([t.partialSig[0][1],t.partialSig[0][0]]);else if("wpkh"===n.last.type)s=cu,o=[t.partialSig[0][1],t.partialSig[0][0]];else if("unknown"===n.last.type&&!this.opts.allowUnknownInputs)throw new Error("Unknown inputs not allowed");if(n.type.includes("wsh-")&&(s.length&&n.lastScript.length&&(o=pc.decode(s).map(e=>{if(0===e)return cu;if(Qu(e))return e;throw new Error(`Wrong witness op=${e}`)})),o=o.concat(n.lastScript)),"segwit"===n.txType&&(i=o),n.type.startsWith("sh-wsh-")?r=pc.encode([pc.encode([0,ee(n.lastScript)])]):n.type.startsWith("sh-")?r=pc.encode([...pc.decode(s),n.lastScript]):n.type.startsWith("wsh-")||"segwit"!==n.txType&&(r=s),!r&&!i)throw new Error("Unknown error finalizing input");r&&(t.finalScriptSig=r),i&&(t.finalScriptWitness=i),Sd(t)}finalize(){for(let e=0;e<this.inputs.length;e++)this.finalizeIdx(e)}extract(){if(!this.isFinal)throw new Error("Transaction has unfinalized inputs");if(!this.outputs.length)throw new Error("Transaction has no outputs");if(this.fee<0n)throw new Error("Outputs spends more than inputs amount");return this.toBytes(!0,!0)}combine(e){for(const t of["PSBTVersion","version","lockTime"])if(this.opts[t]!==e.opts[t])throw new Error(`Transaction/combine: different ${t} this=${this.opts[t]} other=${e.opts[t]}`);for(const t of["inputs","outputs"])if(this[t].length!==e[t].length)throw new Error(`Transaction/combine: different ${t} length this=${this[t].length} other=${e[t].length}`);const t=this.global.unsignedTx?Sc.encode(this.global.unsignedTx):cu,n=e.global.unsignedTx?Sc.encode(e.global.unsignedTx):cu;if(!Xu(t,n))throw new Error("Transaction/combine: different unsigned tx");this.global=ed(Lc,this.global,e.global,void 0,this.opts.allowUnknown);for(let t=0;t<this.inputs.length;t++)this.updateInput(t,e.inputs[t],!0);for(let t=0;t<this.outputs.length;t++)this.updateOutput(t,e.outputs[t],!0);return this}clone(){return Ud.fromPSBT(this.toPSBT(this.opts.PSBTVersion),this.opts)}}function $d(e){const t=Ki.decode(e);return Ud.fromPSBT(t,{allowUnknownOutputs:!0})}function Cd(e){if(e instanceof Ud)return e;if("string"==typeof e)return $d(e);throw new Error("invalid psbt input: "+e)}function Bd(e){const t=Cd(e),n=t.inputsLength,r=[];for(let e=0;e<n;e++){const n=t.getInput(e);r.push(n)}return r}function Rd(e){const t=Cd(e),n=t.outputsLength,r=[];for(let e=0;e<n;e++){const n=t.getOutput(e);r.push(n)}return r}function Ld(e){for(let t=0;t<e.inputsLength;t++){const n=e.getInput(t),r=n.redeemScript,i=n.partialSig?.at(0);void 0!==r&&void 0!==i&&e.finalizeIdx(t)}return e}var zd=Object.freeze({__proto__:null,assert_psbt_is_funded:function(e){const t=Cd(e),n=Bd(t),r=Rd(t),i=n.reduce((e,t)=>e+Number(t.witnessUtxo?.amount??0),0),s=r.reduce((e,t)=>e+Number(t.amount??0),0);b.ok(i>=s,`value in (${i}) < value out (${s})`)},collect_prevouts:function(e){const t=[],n=[],r=Cd(e);for(let e=0;e<r.inputsLength;e++){const i=r.getInput(e);b.exists(i.witnessUtxo,`witness utxo does not exist for input ${e}`),t.push(i.witnessUtxo.amount),n.push(i.witnessUtxo.script)}return{amounts:t,scripts:n}},collect_vins:Bd,collect_vouts:Rd,decode_psbt:$d,encode_psbt:function(e){const t=e.toPSBT(0);return Ki.encode(t)},finalize_legacy_inputs:Ld,get_txhex:function(e){let t=Cd(e);return t=Ld(t),t.hex},get_vsize:function(e){return Cd(e).vsize},parse_psbt:Cd}),jd=Object.freeze({__proto__:null,format_sigflag:Ns,hash_amounts:No,hash_outpoints:To,hash_output:Co,hash_outputs:$o,hash_scripts:Uo,hash_segwit_tx:_o,hash_sequence:Io,hash_taproot_tx:Po,parse_txinput:Is});var Hd=Object.freeze({__proto__:null,sign_segwit_tx:Ro,sign_taproot_tx:Lo,verify_segwit_tx:function(e,t={}){return console.warn("verify_segwit_tx is not implemented"),!0},verify_taproot_tx:function(e,t={}){return console.warn("verify_taproot_tx is not implemented"),!0}});function Dd(e,t,n=[]){const r=[],i=[];if(e.length<1)throw new Error("Tree is empty!");for(let i=0;i<e.length;i++){const s=e[i];if(Array.isArray(s)){let[e,i,o]=Dd(s,t);t=i,r.push(e);for(const e of o)n.push(e)}else{const e=m.bytes(s).hex;r.push(e)}}if(1===r.length)return[r[0],t,n];r.sort(),r.length%2!=0&&r.push(r[r.length-1]);for(let e=0;e<r.length-1;e+=2){const s=ko(r[e],r[e+1]).hex;i.push(s),"string"==typeof t&&(t===r[e]?(n.push(r[e+1]),t=s):t===r[e+1]&&(n.push(r[e]),t=s))}return Dd(i,t,n)}function Fd(e){const t=new y(e),n=t.read(1).num,r=t.read(32).hex,[i,s]=Vd(n),o=[];for(;t.size>=32;)o.push(t.read(32).hex);if(0!==t.size)throw new Error("Non-empty buffer on control block: "+String(t));return{int_key:r,path:o,parity:s,version:i}}function Vd(e){return e%2==0?[e-0,2]:[e-1,3]}function Zd(e){b.size(e,33,"invalid pubkey size");const[t]=m.bytes(e);if(2===t)return 0;if(3===t)return 1;throw new Error("Invalid parity bit: "+String(t))}const Kd=192;var Wd=Object.freeze({__proto__:null,create_taproot:function(e){hs.parse(e);const{pubkey:t,version:n=Kd}=e,r=e.leaves??[],i=void 0!==e.target?m.bytes(e.target).hex:void 0;let s,o=[];if(r.length>0){const[e,t,n]=Dd(r,i);o=n,s=e}else s=i;const a=Ao(t,s),u=Rt(t,a,"ecdsa"),c=Zd(u),d=jt(u,"bip340"),h=[m.num(n+c),m.bytes(t)];o.length>0&&o.forEach(e=>h.push(e));const f=m.join(h);return{int_key:m.bytes(t).hex,parity:c,taproot:s??null,cblock:f.hex,tapkey:d.hex,taptweak:a.hex}},encode_leaf_version:Oo,encode_tapbranch:ko,encode_tapleaf:So,encode_tapscript:xo,encode_taptweak:Ao,get_merkle_root:function(e){return Dd(e)[0]},merkleize:Dd,parse_cblock:Fd,parse_cblock_parity:Vd,parse_pubkey_parity:Zd,parse_taproot_witness:function(e){const{cblock:t,params:n,script:r}=Sa(e);b.exists(t,"cblock is null"),b.exists(r,"script is null");const i=Fd(t);let s=xo(r,i.version).hex;for(const e of i.path)s=ko(s,e).hex;const o=Ao(i.int_key,s),a=Rt(i.int_key,o,"bip340");return n.map(e=>m.bytes(e).hex),{cblock:i,params:n,script:r,tapkey:a.hex,tweak:o.hex}},verify_taproot:function(e,t,n){b.size(e,32);const{parity:r,path:i,int_key:s}=Fd(n),o=m.join([r,e]);let a=m.bytes(t).hex;for(const e of i)a=ko(a,e).hex;const u=Rt(s,Ao(s,a),"ecdsa");return o.hex===u.hex}});return e.ADDRESS=uu,e.CONST=rs,e.META=Ea,e.PSBT=zd,e.SCHEMA=vs,e.SCRIPT=Ms,e.SIGHASH=jd,e.SIGNER=Hd,e.TAPROOT=Wd,e.TX=wo,e.Transaction=class{constructor(e={}){this._tx="string"!=typeof e?Ts(e):ss(e),this._size=this._get_size(),this._hash=lo(this._tx),this._txid=fo(this._tx),this._value=po(this._tx),this._vin=this._tx.vin.map(e=>new Pa(e)),this._vout=this._tx.vout.map(e=>new xa(e))}get data(){return{hash:this.hash,locktime:this.locktime,return:this.return,size:this.size,spends:this.spends,txid:this.txid,value:this.value,version:this.version,vin:this.vin.map(e=>e.data),vout:this.vout.map(e=>e.data)}}get hash(){return this._hash}get locktime(){return{hex:oo(this._tx.locktime).hex,data:jo.decode(this._tx.locktime),value:this._tx.locktime}}get return(){return this._tx.vout.find(e=>uo(e.script_pk))||null}get size(){return this._size}get spends(){return this._tx.vin.filter(e=>null!==e.prevout).map(e=>new xa(e.prevout))}get txid(){return this._txid}get value(){return this._value}get version(){return this._tx.version}get vin(){return this._vin}get vout(){return this._vout}add_vin(e){const t=Os(e);this._tx.vin.push(t),this._update_vin()}add_vout(e){const t=As(e);this._tx.vout.push(t),this._update_vout()}insert_vin(e,t){b.ok(e>=0&&e<=this._tx.vin.length,"input goes out of bounds");const n=Os(t);e===this._tx.vin.length?this._tx.vin.push(n):this._tx.vin.splice(e,0,n),this._update_vin()}insert_vout(e,t){b.ok(e>=0&&e<=this._tx.vout.length,"output goes out of bounds");const n=As(t);e===this._tx.vout.length?this._tx.vout.push(n):this._tx.vout.splice(e,0,n),this._update_vout()}remove_vin(e){b.ok(void 0!==this._tx.vin.at(e),"input does not exist at index"),this._tx.vin.splice(e,1),this._update_vin()}remove_vout(e){b.ok(void 0!==this._tx.vout.at(e),"output does not exist at index"),this._tx.vout.splice(e,1),this._update_vout()}_get_size(){return{...go(this._tx),segwit:this.vin.reduce((e,t)=>e+(t.witness?.size.vsize??0),0),vin:this.vin.reduce((e,t)=>e+t.size,0),vout:this.vout.reduce((e,t)=>e+t.size,0),witness:this.vin.reduce((e,t)=>e+(t.witness?.size.total??0),0)}}_update_tx(){this._size=this._get_size(),this._hash=lo(this._tx),this._txid=fo(this._tx),this._value=po(this._tx)}_update_vin(){this._vin=this._tx.vin.map(e=>new Pa(e)),this._update_tx()}_update_vout(){this._vout=this._tx.vout.map(e=>new xa(e)),this._update_tx()}toJSON(){return this.data}toString(){return JSON.stringify(this.data)}},e.TransactionInput=Pa,e.TransactionOutput=xa,e.TransactionWitness=Aa,e.TxSigner=class{constructor(e){this._seckey=m.bytes(e).hex}get pubkey(){return{segwit:Bt(this._seckey,"ecdsa"),taproot:Bt(this._seckey,"bip340")}}get sign_msg(){return{ecdsa:e=>{const t=m.bytes(e);return Lt(this._seckey,t)},bip340:e=>{const t=m.bytes(e);return zt(this._seckey,t)}}}get sign_tx(){return{segwit:(e,t)=>Ro(this._seckey,e,t),taproot:(e,t)=>Lo(this._seckey,e,t)}}},e.WITNESS=Oa,e}({});
15
15
  //# sourceMappingURL=script.js.map