diff --git a/ventures/lineage/orgchain/assets/index-DXb8Kdrd.js b/ventures/lineage/orgchain/assets/index-DXb8Kdrd.js deleted file mode 100644 index 1cf9eb1..0000000 --- a/ventures/lineage/orgchain/assets/index-DXb8Kdrd.js +++ /dev/null @@ -1,2065 +0,0 @@ -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();const ro=5e9,Yc=2**52,uf=(e,t)=>[[Yc+e*ro,Yc+e*ro+t]];function ff(e,t,n){const r=[];for(const[s,o]of e){const i=o-s;if(t>=i){t-=i;continue}const a=Math.min(n,i-t);if(a&&r.push([s+t,s+t+a]),n-=a,t=0,!n)break}return r}function lf(e,t){var n;return(n=ff(e,t,1)[0])==null?void 0:n[0]}function Xs(e,t){let n=0;for(const[r,s]of e){if(t>=r&&ti.ranges);let o=0;return e.vout.map(i=>{const a=ff(s,o,Number(i.value));return o+=Number(i.value),a})}function Di(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function O0(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function hf(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function C0(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Di(e.outputLen),Di(e.blockLen)}function P0(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 U0(e,t){hf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),kt=(e,t)=>e<<32-t|e>>>t,L0=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!L0)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function R0(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function pf(e){if(typeof e=="string"&&(e=R0(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let H0=class{clone(){return this._cloneInto()}};function gf(e){const t=r=>e().update(pf(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function j0(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let K0=class extends H0{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=ci(this.buffer)}update(t){ai.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=pf(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;le&t^~e&n,M0=(e,t,n)=>e&t^e&n^t&n,Z0=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Gt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Yt=new Uint32Array(64);let mf=class extends K0{constructor(){super(64,32,8,!1),this.A=Gt[0]|0,this.B=Gt[1]|0,this.C=Gt[2]|0,this.D=Gt[3]|0,this.E=Gt[4]|0,this.F=Gt[5]|0,this.G=Gt[6]|0,this.H=Gt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)Yt[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){const d=Yt[l-15],p=Yt[l-2],h=kt(d,7)^kt(d,18)^d>>>3,g=kt(p,17)^kt(p,19)^p>>>10;Yt[l]=g+Yt[l-7]+h+Yt[l-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const d=kt(a,6)^kt(a,11)^kt(a,25),p=f+d+D0(a,c,u)+Z0[l]+Yt[l]|0,g=(kt(r,2)^kt(r,13)^kt(r,22))+M0(r,s,o)|0;f=u,u=c,c=a,a=i+p|0,i=o,o=s,s=r,r=p+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(r,s,o,i,a,c,u,f)}roundClean(){Yt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},V0=class extends mf{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Mi=gf(()=>new mf);gf(()=>new V0);function q0(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function z0(e){if(e.match(/[^a-fA-f0-9]/)!==null)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}`)}function F0(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:W0}=crypto??globalThis.crypto??window.crypto;function G0(e=32){if(typeof W0=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function Y0(e,t,n="be"){t===void 0&&(t=e.length),q0(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function yf(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)f=o[c],f=f>0?f*256+u:u,u=f/s|0,o[c]=f%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function ep(e,t){const n=bf(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function wf(e){return Mi(Mi(e))}function tp(e){const t=wf(e);return yf([e,t.slice(0,4)])}function np(e){const t=e.slice(0,-4),n=e.slice(-4);if(wf(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const Xc={encode:Q0,decode:ep},xf={encode:e=>{const t=tp(e);return Xc.encode(t,"base58")},decode:e=>{const t=Xc.decode(e,"base58");return np(t)}},vf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",rp=[996825010,642813549,513874426,1027748829,705979059],so=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function Ef(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=rp[s])}return t}function kf(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function Sf(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function ip(e,t,n){const r=t.concat(op(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??so[0];if(!sp(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function ap(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function cp(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function up(e,t="bc",n=0){const r=[n,...Sf([...e],8,5)],s=so.find(i=>i.version===n)??so[0],o=ip(t,r,s);return _f(o),o}function _f(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=$f(e),s=Sf(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function fp(e){e=e.toLowerCase();const[t,n]=$f(e);return n[0]}const Af={encode:up,decode:_f,version:fp},Bf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Tf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",lp=new TextEncoder;function If(e,t=!1,n=!0){typeof e=="string"&&(e=lp.encode(e));const r=t?Tf:Bf;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function Of(e,t=!1){const n=t||e.includes("-")||e.includes("_")?Tf.split(""):Bf.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const Cf={encode:If,decode:Of},Pf={encode:e=>If(e,!0,!1),decode:e=>Of(e,!0)},dp=BigInt(0),hp=BigInt(255),Uf=BigInt(256);function pp(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.")}function gp(e,t,n="be"){t===void 0&&(t=pp(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>dp;){const a=e&hp,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/Uf}return new Uint8Array(s)}function mp(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*Uf+BigInt(e[n]);return BigInt(t)}function yp(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 r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function wp(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!")}function xp(e,t,n="be"){t===void 0&&(t=wp(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function vp(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],F0(t);return t}const Ep=new TextEncoder,kp=new TextDecoder;function _a(e){return Ep.encode(e)}function ui(e){return kp.decode(e)}function Sp(e,t){z0(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function $p(e,t,n="le"){t=Sp(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return _a(t)}function Bp(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return Y0(e,t,n);if(typeof e=="string")return $p(e,t,n);if(typeof e=="bigint")return gp(e,t,n);if(typeof e=="number")return xp(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}var ee;let S=(ee=class extends Uint8Array{static random(t=32){const n=G0(t);return new ee(n,t)}constructor(t,n,r){const s=Bp(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new Cr(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return vp(n)}toBin(){return bp(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return mp(n)}toHash(){const t=Mi(this);return new ee(t)}toJson(){const t=ui(this);return JSON.parse(t)}toBech32(t,n=0){return Af.encode(this,t,n)}toStr(){return ui(this)}toHex(){return _p(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return xf.encode(this)}toBase64(){return Cf.encode(this)}toB64url(){return Pf.encode(this)}prepend(t){return ee.join([ee.bytes(t),this])}append(t){return ee.join([this,ee.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new ee(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new ee(r)}reverse(){const t=new Uint8Array(this).reverse();return new ee(t)}write(t,n){const r=ee.bytes(t);this.set(r,n)}prefixSize(t){const n=ee.varInt(this.length,t);return ee.join([n,this])}static from(t){return new ee(Uint8Array.from(t))}static of(...t){return new ee(Uint8Array.of(...t))}static join(t){const n=t.map(s=>ee.bytes(s)),r=yf(n);return new ee(r)}static varInt(t,n){if(t<253)return ee.num(t,1);if(t<65536)return ee.of(253,...ee.num(t,2,n));if(t<4294967296)return ee.of(254,...ee.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return ee.of(255,...ee.num(t,8,n));throw new Error(`Value is too large: ${t}`)}},ee.num=Tp,ee.big=Op,ee.bin=Ip,ee.raw=Cp,ee.str=Pp,ee.hex=Up,ee.bytes=Np,ee.json=Lp,ee.base64=Rp,ee.b64url=Hp,ee.bech32=jp,ee.b58chk=Kp,ee.encode=_a,ee.decode=ui,ee);function Tp(e,t,n){return new S(e,t,n)}function Ip(e,t,n){return new S(yp(e),t,n)}function Op(e,t,n){return new S(e,t,n)}function Cp(e,t,n){return new S(e,t,n)}function Pp(e,t,n){return new S(_a(e),t,n)}function Up(e,t,n){return new S(e,t,n)}function Np(e,t,n){return new S(e,t,n)}function Lp(e){return new S(Ap(e))}function Rp(e){return new S(Cf.decode(e))}function Hp(e){return new S(Pf.decode(e))}function jp(e){return new S(Af.decode(e))}function Kp(e){return new S(xf.decode(e))}let Cr=class{constructor(t){this.data=S.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new S(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}};function Nt(e,t){const n=S.bytes(e);if(n.length!==t)throw new Error(`Invalid input size: ${n.hex} !== ${t}`)}function qe(e,t){if(t)throw new Error(e);return!1}function Js(e,...t){const n=S.str(e).digest.raw,r=t.map(s=>S.bytes(s));return S.join([n,n,S.join(r)]).digest}const Nf={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,OP_SUCCESS187:187,OP_SUCCESS188:188,OP_SUCCESS189:189,OP_SUCCESS190:190,OP_SUCCESS191:191,OP_SUCCESS192:192,OP_SUCCESS193:193,OP_SUCCESS194:194,OP_SUCCESS195:195,OP_SUCCESS196:196,OP_SUCCESS197:197,OP_SUCCESS198:198,OP_SUCCESS199:199,OP_SUCCESS200:200,OP_SUCCESS201:201,OP_SUCCESS202:202,OP_SUCCESS203:203,OP_SUCCESS204:204,OP_SUCCESS205:205,OP_SUCCESS206:206,OP_SUCCESS207:207,OP_SUCCESS208:208,OP_SUCCESS209:209,OP_SUCCESS210:210,OP_SUCCESS211:211,OP_SUCCESS212:212,OP_SUCCESS213:213,OP_SUCCESS214:214,OP_SUCCESS215:215,OP_SUCCESS216:216,OP_SUCCESS217:217,OP_SUCCESS218:218,OP_SUCCESS219:219,OP_SUCCESS220:220,OP_SUCCESS221:221,OP_SUCCESS222:222,OP_SUCCESS223:223,OP_SUCCESS224:224,OP_SUCCESS225:225,OP_SUCCESS226:226,OP_SUCCESS227:227,OP_SUCCESS228:228,OP_SUCCESS229:229,OP_SUCCESS230:230,OP_SUCCESS231:231,OP_SUCCESS232:232,OP_SUCCESS233:233,OP_SUCCESS234:234,OP_SUCCESS235:235,OP_SUCCESS236:236,OP_SUCCESS237:237,OP_SUCCESS238:238,OP_SUCCESS239:239,OP_SUCCESS240:240,OP_SUCCESS241:241,OP_SUCCESS242:242,OP_SUCCESS243:243,OP_SUCCESS244:244,OP_SUCCESS245:245,OP_SUCCESS246:246,OP_SUCCESS247:247,OP_SUCCESS248:248,OP_SUCCESS249:249,OP_SUCCESS250:250,OP_SUCCESS251:251,OP_SUCCESS252:252,OP_SUCCESS253:253,OP_SUCCESS254:254};function Dp(e){if(e>186&&e<255)return"OP_SUCCESS"+String(e);for(const[t,n]of Object.entries(Nf))if(n===e)return t;throw new Error("OPCODE not found:"+String(e))}function Mp(e){for(const[t,n]of Object.entries(Nf))if(t===e)return Number(n);throw new Error("OPCODE not found:"+e)}function Zp(e){switch(!0){case e===0:return"opcode";case(e>=1&&e<=75):return"varint";case e===76:return"pushdata1";case e===77:return"pushdata2";case e===78:return"pushdata4";case e<=254:return"opcode";default:throw new Error(`Invalid word range: ${e}`)}}function Vp(e){const r=[];switch(!0){case typeof e!="number":return!1;case e===0:return!0;case r.includes(e):return!1;case(750?S.join(t):new Uint8Array}function qp(e){let t=new Uint8Array;if(typeof e=="string"){if(e.startsWith("OP_"))return S.num(Mp(e),1);Wt(e)?t=S.hex(e):t=S.str(e)}else t=S.bytes(e);if(t.length===1)return t[0]!==0&&t[0]<=16?(t[0]+=80,t):(t[0]>128&&t[0]<=255&&(t=new Uint8Array([t[0],0])),S.join([Jc(t.length),t]));if(t.length>oo){const n=zp(t);return Rf(n)}else return S.join([Jc(t.length),t])}function Jc(e){const t=S.num(76,1),n=S.num(77,1);switch(!0){case e<=75:return S.num(e);case(e>75&&e<256):return S.join([t,S.num(e,1,"le")]);case(e>=256&&e<=oo):return S.join([n,S.num(e,2,"le")]);default:throw new Error("Invalid word size:"+e.toString())}}function zp(e){const t=[],n=new Cr(e);for(;n.size>oo;)t.push(n.read(oo));return t.push(n.read(n.size)),t}function Aa(e,t=!1){let n=S.bytes(e);if(t){const s=n.stream.readSize("le");if(n=n.slice(1),n.length!==s)throw new Error(`Varint does not match stream size: ${s} !== ${n.length}`)}return Fp(n)}function Fp(e){const t=new Cr(e),n=[],r=t.size;let s,o,i,a=0;for(;a0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Qp(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Zi(e.outputLen),Zi(e.blockLen)}function eg(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 tg(e,t){Hf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),St=(e,t)=>e<<32-t|e>>>t,rg=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!rg)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function sg(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function Ba(e){if(typeof e=="string"&&(e=sg(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}function og(...e){if(!e.every(r=>r instanceof Uint8Array))throw new Error("Uint8Array list expected");if(e.length===1)return e[0];const t=e.reduce((r,s)=>r+s.length,0),n=new Uint8Array(t);for(let r=0,s=0;re().update(Ba(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ig(e=32){if(fi&&typeof fi.getRandomValues=="function")return fi.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function ag(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let cg=class extends jf{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=li(this.buffer)}update(t){Un.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Ba(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;le&t^~e&n,fg=(e,t,n)=>e&t^e&n^t&n,lg=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Xt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Jt=new Uint32Array(64);let Df=class extends cg{constructor(){super(64,32,8,!1),this.A=Xt[0]|0,this.B=Xt[1]|0,this.C=Xt[2]|0,this.D=Xt[3]|0,this.E=Xt[4]|0,this.F=Xt[5]|0,this.G=Xt[6]|0,this.H=Xt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)Jt[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){const d=Jt[l-15],p=Jt[l-2],h=St(d,7)^St(d,18)^d>>>3,g=St(p,17)^St(p,19)^p>>>10;Jt[l]=g+Jt[l-7]+h+Jt[l-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const d=St(a,6)^St(a,11)^St(a,25),p=f+d+ug(a,c,u)+lg[l]+Jt[l]|0,g=(St(r,2)^St(r,13)^St(r,22))+fg(r,s,o)|0;f=u,u=c,c=a,a=i+p|0,i=o,o=s,s=r,r=p+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(r,s,o,i,a,c,u,f)}roundClean(){Jt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},dg=class extends Df{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Mf=Kf(()=>new Df);Kf(()=>new dg);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const hg=BigInt(0),Ta=BigInt(1),pg=BigInt(2),Ho=e=>e instanceof Uint8Array,gg=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function mr(e){if(!Ho(e))throw new Error("Uint8Array expected");let t="";for(let n=0;nyr(e.toString(16).padStart(t*2,"0")),Vf=(e,t)=>fr(e,t).reverse(),mg=e=>yr(Zf(e));function ot(e,t,n){let r;if(typeof t=="string")try{r=yr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Ho(t))r=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(`${e} expected ${n} bytes, got ${s}`);return r}function dt(...e){const t=new Uint8Array(e.reduce((r,s)=>r+s.length,0));let n=0;return e.forEach(r=>{if(!Ho(r))throw new Error("Uint8Array expected");t.set(r,n),n+=r.length}),t}function yg(e,t){if(e.length!==t.length)return!1;for(let n=0;n0n;e>>=Ta,t+=1);return t}const wg=(e,t)=>e>>BigInt(t)&1n,xg=(e,t,n)=>e|(n?Ta:hg)<(pg<new Uint8Array(e),Qc=e=>Uint8Array.from(e);function qf(e,t,n){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let r=di(e),s=di(e),o=0;const i=()=>{r.fill(1),s.fill(0),o=0},a=(...l)=>n(s,r,...l),c=(l=di())=>{s=a(Qc([0]),l),r=a(),l.length!==0&&(s=a(Qc([1]),l),r=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const d=[];for(;l{i(),c(l);let p;for(;!(p=d(u()));)c();return i(),p}}const vg={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function Pr(e,t,n={}){const r=(s,o,i)=>{const a=vg[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);const c=e[s];if(!(i&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};for(const[s,o]of Object.entries(t))r(s,o,!1);for(const[s,o]of Object.entries(n))r(s,o,!0);return e}var Eg=Object.freeze({__proto__:null,bitGet:wg,bitLen:bg,bitMask:Ca,bitSet:xg,bytesToHex:mr,bytesToNumberBE:yn,bytesToNumberLE:Oa,concatBytes:dt,createHmacDrbg:qf,ensureBytes:ot,equalBytes:yg,hexToBytes:yr,hexToNumber:Ia,numberToBytesBE:fr,numberToBytesLE:Vf,numberToHexUnpadded:Zf,numberToVarBytesBE:mg,utf8ToBytes:jo,validateObject:Pr});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const je=BigInt(0),Oe=BigInt(1),On=BigInt(2),kg=BigInt(3),Vi=BigInt(4),eu=BigInt(5),tu=BigInt(8);BigInt(9);BigInt(16);function ze(e,t){const n=e%t;return n>=je?n:t+n}function Sg(e,t,n){if(n<=je||t 0");if(n===Oe)return je;let r=Oe;for(;t>je;)t&Oe&&(r=r*e%n),e=e*e%n,t>>=Oe;return r}function st(e,t,n){let r=e;for(;t-- >je;)r*=r,r%=n;return r}function qi(e,t){if(e===je||t<=je)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=ze(e,t),r=t,s=je,o=Oe;for(;n!==je;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Oe)throw new Error("invert: does not exist");return ze(s,t)}function $g(e){const t=(e-Oe)/On;let n,r,s;for(n=e-Oe,r=0;n%On===je;n/=On,r++);for(s=On;s(r[s]="function",r),t);return Pr(e,n)}function Bg(e,t,n){if(n 0");if(n===je)return e.ONE;if(n===Oe)return t;let r=e.ONE,s=t;for(;n>je;)n&Oe&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Oe;return r}function Tg(e,t){const n=new Array(t.length),r=t.reduce((o,i,a)=>e.is0(i)?o:(n[a]=o,e.mul(o,i)),e.ONE),s=e.inv(r);return t.reduceRight((o,i,a)=>e.is0(i)?o:(n[a]=e.mul(o,n[a]),e.mul(o,i)),s),n}function Pa(e,t){const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Ff(e,t,n=!1,r={}){if(e<=je)throw new Error(`Expected Fp ORDER > 0, got ${e}`);const{nBitLength:s,nByteLength:o}=Pa(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const i=_g(e),a=Object.freeze({ORDER:e,BITS:s,BYTES:o,MASK:Ca(s),ZERO:je,ONE:Oe,create:c=>ze(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return je<=c&&cc===je,isOdd:c=>(c&Oe)===Oe,neg:c=>ze(-c,e),eql:(c,u)=>c===u,sqr:c=>ze(c*c,e),add:(c,u)=>ze(c+u,e),sub:(c,u)=>ze(c-u,e),mul:(c,u)=>ze(c*u,e),pow:(c,u)=>Bg(a,c,u),div:(c,u)=>ze(c*qi(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>qi(c,e),sqrt:r.sqrt||(c=>i(a,c)),invertBatch:c=>Tg(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>n?Vf(c,o):fr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return n?Oa(c):yn(c)}});return Object.freeze(a)}function Ig(e,t,n=!1){e=ot("privateHash",e);const r=e.length,s=Pa(t).nByteLength+8;if(s<24||r1024)throw new Error(`hashToPrivateScalar: expected ${s}-1024 bytes of input, got ${r}`);const o=n?Oa(e):yn(e);return ze(o,t-Oe)+Oe}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Og=BigInt(0),hi=BigInt(1);function Cg(e,t){const n=(s,o)=>{const i=o.negate();return s?i:o},r=s=>{const o=Math.ceil(t/s)+1,i=2**(s-1);return{windows:o,windowSize:i}};return{constTimeNegate:n,unsafeLadder(s,o){let i=e.ZERO,a=s;for(;o>Og;)o&hi&&(i=i.add(a)),a=a.double(),o>>=hi;return i},precomputeWindow(s,o){const{windows:i,windowSize:a}=r(o),c=[];let u=s,f=u;for(let l=0;l>=p,m>c&&(m-=d,i+=hi);const b=g,w=g+Math.abs(m)-1,y=h%2!==0,x=m<0;m===0?f=f.add(n(y,o[b])):u=u.add(n(x,o[w]))}return{p:u,f}},wNAFCached(s,o,i,a){const c=s._WINDOW_SIZE||1;let u=o.get(s);return u||(u=this.precomputeWindow(s,c),c!==1&&o.set(s,a(u))),this.wNAF(c,u,i)}}}function Wf(e){return zf(e.Fp),Pr(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Pa(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Pg(e){const t=Wf(e);Pr(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:s}=t;if(n){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:Ug,hexToBytes:Ng}=Eg,Nn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){const{Err:t}=Nn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new t("Invalid signature integer: trailing length");return{d:Ug(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=Nn,n=typeof e=="string"?Ng(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||n[0]!=48)throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:s,l:o}=Nn._parseInt(n.subarray(2)),{d:i,l:a}=Nn._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(e){const t=u=>Number.parseInt(u[0],16)>=8?"00"+u:u,n=u=>{const f=u.toString(16);return f.length&1?`0${f}`:f},r=t(n(e.s)),s=t(n(e.r)),o=r.length/2,i=s.length/2,a=n(o),c=n(i);return`30${n(i+o+4)}02${c}${s}02${a}${r}`}},ht=BigInt(0),Ue=BigInt(1),Ht=BigInt(2),io=BigInt(3),nu=BigInt(4);function Lg(e){const t=Pg(e),{Fp:n}=t,r=t.toBytes||((h,g,m)=>{const b=g.toAffine();return dt(Uint8Array.from([4]),n.toBytes(b.x),n.toBytes(b.y))}),s=t.fromBytes||(h=>{const g=h.subarray(1),m=n.fromBytes(g.subarray(0,n.BYTES)),b=n.fromBytes(g.subarray(n.BYTES,2*n.BYTES));return{x:m,y:b}});function o(h){const{a:g,b:m}=t,b=n.sqr(h),w=n.mul(b,h);return n.add(n.add(w,n.mul(h,g)),m)}function i(h){return typeof h=="bigint"&&htn.eql(y,n.ZERO);return w(m)&&w(b)?l.ZERO:new l(m,b,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){const m=n.invertBatch(g.map(b=>b.pz));return g.map((b,w)=>b.toAffine(m[w])).map(l.fromAffine)}static fromHex(g){const m=l.fromAffine(s(ot("pointHex",g)));return m.assertValidity(),m}static fromPrivateKey(g){return l.BASE.multiply(c(g))}_setWindowSize(g){this._WINDOW_SIZE=g,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint)return;throw new Error("bad point: ZERO")}const{x:g,y:m}=this.toAffine();if(!n.isValid(g)||!n.isValid(m))throw new Error("bad point: x or y not FE");const b=n.sqr(m),w=o(g);if(!n.eql(b,w))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:g}=this.toAffine();if(n.isOdd)return!n.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){f(g);const{px:m,py:b,pz:w}=this,{px:y,py:x,pz:$}=g,E=n.eql(n.mul(m,$),n.mul(y,w)),I=n.eql(n.mul(b,$),n.mul(x,w));return E&&I}negate(){return new l(this.px,n.neg(this.py),this.pz)}double(){const{a:g,b:m}=t,b=n.mul(m,io),{px:w,py:y,pz:x}=this;let $=n.ZERO,E=n.ZERO,I=n.ZERO,P=n.mul(w,w),B=n.mul(y,y),U=n.mul(x,x),L=n.mul(w,y);return L=n.add(L,L),I=n.mul(w,x),I=n.add(I,I),$=n.mul(g,I),E=n.mul(b,U),E=n.add($,E),$=n.sub(B,E),E=n.add(B,E),E=n.mul($,E),$=n.mul(L,$),I=n.mul(b,I),U=n.mul(g,U),L=n.sub(P,U),L=n.mul(g,L),L=n.add(L,I),I=n.add(P,P),P=n.add(I,P),P=n.add(P,U),P=n.mul(P,L),E=n.add(E,P),U=n.mul(y,x),U=n.add(U,U),P=n.mul(U,L),$=n.sub($,P),I=n.mul(U,B),I=n.add(I,I),I=n.add(I,I),new l($,E,I)}add(g){f(g);const{px:m,py:b,pz:w}=this,{px:y,py:x,pz:$}=g;let E=n.ZERO,I=n.ZERO,P=n.ZERO;const B=t.a,U=n.mul(t.b,io);let L=n.mul(m,y),D=n.mul(b,x),k=n.mul(w,$),_=n.add(m,b),v=n.add(y,x);_=n.mul(_,v),v=n.add(L,D),_=n.sub(_,v),v=n.add(m,w);let A=n.add(y,$);return v=n.mul(v,A),A=n.add(L,k),v=n.sub(v,A),A=n.add(b,w),E=n.add(x,$),A=n.mul(A,E),E=n.add(D,k),A=n.sub(A,E),P=n.mul(B,v),E=n.mul(U,k),P=n.add(E,P),E=n.sub(D,P),P=n.add(D,P),I=n.mul(E,P),D=n.add(L,L),D=n.add(D,L),k=n.mul(B,k),v=n.mul(U,v),D=n.add(D,k),k=n.sub(L,k),k=n.mul(B,k),v=n.add(v,k),L=n.mul(D,v),I=n.add(I,L),L=n.mul(A,v),E=n.mul(_,E),E=n.sub(E,L),L=n.mul(_,D),P=n.mul(A,P),P=n.add(P,L),new l(E,I,P)}subtract(g){return this.add(g.negate())}is0(){return this.equals(l.ZERO)}wNAF(g){return p.wNAFCached(this,u,g,m=>{const b=n.invertBatch(m.map(w=>w.pz));return m.map((w,y)=>w.toAffine(b[y])).map(l.fromAffine)})}multiplyUnsafe(g){const m=l.ZERO;if(g===ht)return m;if(a(g),g===Ue)return this;const{endo:b}=t;if(!b)return p.unsafeLadder(this,g);let{k1neg:w,k1:y,k2neg:x,k2:$}=b.splitScalar(g),E=m,I=m,P=this;for(;y>ht||$>ht;)y&Ue&&(E=E.add(P)),$&Ue&&(I=I.add(P)),P=P.double(),y>>=Ue,$>>=Ue;return w&&(E=E.negate()),x&&(I=I.negate()),I=new l(n.mul(I.px,b.beta),I.py,I.pz),E.add(I)}multiply(g){a(g);let m=g,b,w;const{endo:y}=t;if(y){const{k1neg:x,k1:$,k2neg:E,k2:I}=y.splitScalar(m);let{p:P,f:B}=this.wNAF($),{p:U,f:L}=this.wNAF(I);P=p.constTimeNegate(x,P),U=p.constTimeNegate(E,U),U=new l(n.mul(U.px,y.beta),U.py,U.pz),b=P.add(U),w=B.add(L)}else{const{p:x,f:$}=this.wNAF(m);b=x,w=$}return l.normalizeZ([b,w])[0]}multiplyAndAddUnsafe(g,m,b){const w=l.BASE,y=($,E)=>E===ht||E===Ue||!$.equals(w)?$.multiplyUnsafe(E):$.multiply(E),x=y(this,m).add(y(g,b));return x.is0()?void 0:x}toAffine(g){const{px:m,py:b,pz:w}=this,y=this.is0();g==null&&(g=y?n.ONE:n.inv(w));const x=n.mul(m,g),$=n.mul(b,g),E=n.mul(w,g);if(y)return{x:n.ZERO,y:n.ZERO};if(!n.eql(E,n.ONE))throw new Error("invZ was invalid");return{x,y:$}}isTorsionFree(){const{h:g,isTorsionFree:m}=t;if(g===Ue)return!0;if(m)return m(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:g,clearCofactor:m}=t;return g===Ue?this:m?m(l,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return this.assertValidity(),r(l,this,g)}toHex(g=!0){return mr(this.toRawBytes(g))}}l.BASE=new l(t.Gx,t.Gy,n.ONE),l.ZERO=new l(n.ZERO,n.ONE,n.ZERO);const d=t.nBitLength,p=Cg(l,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:i}}function Rg(e){const t=Wf(e);return Pr(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Hg(e){const t=Rg(e),{Fp:n,n:r}=t,s=n.BYTES+1,o=2*n.BYTES+1;function i(v){return htmr(fr(v,t.nByteLength));function h(v){const A=r>>Ue;return v>A}function g(v){return h(v)?a(-v):v}const m=(v,A,C)=>yn(v.slice(A,C));class b{constructor(A,C,R){this.r=A,this.s=C,this.recovery=R,this.assertValidity()}static fromCompact(A){const C=t.nByteLength;return A=ot("compactSignature",A,C*2),new b(m(A,0,C),m(A,C,2*C))}static fromDER(A){const{r:C,s:R}=Nn.toSig(ot("DER",A));return new b(C,R)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(A){return new b(this.r,this.s,A)}recoverPublicKey(A){const{r:C,s:R,recovery:N}=this,j=I(ot("msgHash",A));if(N==null||![0,1,2,3].includes(N))throw new Error("recovery id invalid");const M=N===2||N===3?C+t.n:C;if(M>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const F=(N&1)===0?"02":"03",ue=u.fromHex(F+p(M)),oe=c(M),Q=a(-j*oe),he=a(R*oe),pe=u.BASE.multiplyAndAddUnsafe(ue,Q,he);if(!pe)throw new Error("point at infinify");return pe.assertValidity(),pe}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new b(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return yr(this.toDERHex())}toDERHex(){return Nn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return yr(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}const w={isValidPrivateKey(v){try{return f(v),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{const v=t.randomBytes(n.BYTES+8),A=Ig(v,r);return fr(A,t.nByteLength)},precompute(v=8,A=u.BASE){return A._setWindowSize(v),A.multiply(BigInt(3)),A}};function y(v,A=!0){return u.fromPrivateKey(v).toRawBytes(A)}function x(v){const A=v instanceof Uint8Array,C=typeof v=="string",R=(A||C)&&v.length;return A?R===s||R===o:C?R===2*s||R===2*o:v instanceof u}function $(v,A,C=!0){if(x(v))throw new Error("first arg must be private key");if(!x(A))throw new Error("second arg must be public key");return u.fromHex(A).multiply(f(v)).toRawBytes(C)}const E=t.bits2int||function(v){const A=yn(v),C=v.length*8-t.nBitLength;return C>0?A>>BigInt(C):A},I=t.bits2int_modN||function(v){return a(E(v))},P=Ca(t.nBitLength);function B(v){if(typeof v!="bigint")throw new Error("bigint expected");if(!(ht<=v&&vfe in C))throw new Error("sign() legacy options not supported");const{hash:R,randomBytes:N}=t;let{lowS:j,prehash:M,extraEntropy:F}=C;j==null&&(j=!0),v=ot("msgHash",v),M&&(v=ot("prehashed msgHash",R(v)));const ue=I(v),oe=f(A),Q=[B(oe),B(ue)];if(F!=null){const fe=F===!0?N(n.BYTES):F;Q.push(ot("extraEntropy",fe,n.BYTES))}const he=dt(...Q),pe=ue;function Ie(fe){const we=E(fe);if(!d(we))return;const Lt=c(we),rt=u.BASE.multiply(we).toAffine(),De=a(rt.x);if(De===ht)return;const Rt=a(Lt*a(pe+De*oe));if(Rt===ht)return;let jr=(rt.x===De?0:2)|Number(rt.y&Ue),Gc=Rt;return j&&h(Rt)&&(Gc=g(Rt),jr^=1),new b(De,Gc,jr)}return{seed:he,k2sig:Ie}}const L={lowS:t.lowS,prehash:!1},D={lowS:t.lowS,prehash:!1};function k(v,A,C=L){const{seed:R,k2sig:N}=U(v,A,C);return qf(t.hash.outputLen,t.nByteLength,t.hmac)(R,N)}u.BASE._setWindowSize(8);function _(v,A,C,R=D){var rt;const N=v;if(A=ot("msgHash",A),C=ot("publicKey",C),"strict"in R)throw new Error("options.strict was renamed to lowS");const{lowS:j,prehash:M}=R;let F,ue;try{if(typeof N=="string"||N instanceof Uint8Array)try{F=b.fromDER(N)}catch(De){if(!(De instanceof Nn.Err))throw De;F=b.fromCompact(N)}else if(typeof N=="object"&&typeof N.r=="bigint"&&typeof N.s=="bigint"){const{r:De,s:Rt}=N;F=new b(De,Rt)}else throw new Error("PARSE");ue=u.fromHex(C)}catch(De){if(De.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(j&&F.hasHighS())return!1;M&&(A=t.hash(A));const{r:oe,s:Q}=F,he=I(A),pe=c(Q),Ie=a(he*pe),fe=a(oe*pe),we=(rt=u.BASE.multiplyAndAddUnsafe(ue,Ie,fe))==null?void 0:rt.toAffine();return we?a(we.x)===oe:!1}return{CURVE:t,getPublicKey:y,getSharedSecret:$,sign:k,verify:_,ProjectivePoint:u,Signature:b,utils:w}}function jg(e,t){const n=e.ORDER;let r=ht;for(let d=n-Ue;d%Ht===ht;d/=Ht)r+=Ue;const s=r,o=(n-Ue)/Ht**s,i=(o-Ue)/Ht,a=Ht**s-Ue,c=Ht**(s-Ue),u=e.pow(t,o),f=e.pow(t,(o+Ue)/Ht);let l=(d,p)=>{let h=u,g=e.pow(p,a),m=e.sqr(g);m=e.mul(m,p);let b=e.mul(d,m);b=e.pow(b,i),b=e.mul(b,g),g=e.mul(b,p),m=e.mul(b,d);let w=e.mul(m,g);b=e.pow(w,c);let y=e.eql(b,e.ONE);g=e.mul(m,f),b=e.mul(w,h),m=e.cmov(g,m,y),w=e.cmov(b,w,y);for(let x=s;x>1;x--){let $=Ht**(x-Ht),E=e.pow(w,$);const I=e.eql(E,e.ONE);g=e.mul(m,h),h=e.mul(h,h),E=e.mul(w,h),m=e.cmov(g,m,I),w=e.cmov(E,w,I)}return{isValid:y,value:m}};if(e.ORDER%nu===io){const d=(e.ORDER-io)/nu,p=e.sqrt(e.neg(t));l=(h,g)=>{let m=e.sqr(g);const b=e.mul(h,g);m=e.mul(m,b);let w=e.pow(m,d);w=e.mul(w,b);const y=e.mul(w,p),x=e.mul(e.sqr(w),g),$=e.eql(x,h);let E=e.cmov(y,w,$);return{isValid:$,value:E}}}return l}function Kg(e,t){if(zf(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const n=jg(e,t.Z);if(!e.isOdd)throw new Error("Fp.isOdd is not implemented!");return r=>{let s,o,i,a,c,u,f,l;s=e.sqr(r),s=e.mul(s,t.Z),o=e.sqr(s),o=e.add(o,s),i=e.add(o,e.ONE),i=e.mul(i,t.B),a=e.cmov(t.Z,e.neg(o),!e.eql(o,e.ZERO)),a=e.mul(a,t.A),o=e.sqr(i),u=e.sqr(a),c=e.mul(u,t.A),o=e.add(o,c),o=e.mul(o,i),u=e.mul(u,a),c=e.mul(u,t.B),o=e.add(o,c),f=e.mul(s,i);const{isValid:d,value:p}=n(o,u);l=e.mul(s,r),l=e.mul(l,p),f=e.cmov(f,i,d),l=e.cmov(l,p,d);const h=e.isOdd(r)===e.isOdd(l);return l=e.cmov(e.neg(l),l,h),f=e.div(f,a),{x:f,y:l}}}function Dg(e){if(e instanceof Uint8Array)return e;if(typeof e=="string")return jo(e);throw new Error("DST must be Uint8Array or string")}const Mg=yn;function ln(e,t){if(e<0||e>=1<<8*t)throw new Error(`bad I2OSP call: value=${e} length=${t}`);const n=Array.from({length:t}).fill(0);for(let r=t-1;r>=0;r--)n[r]=e&255,e>>>=8;return new Uint8Array(n)}function Zg(e,t){const n=new Uint8Array(e.length);for(let r=0;r255&&(t=r(dt(jo("H2C-OVERSIZE-DST-"),t)));const{outputLen:s,blockLen:o}=r,i=Math.ceil(n/s);if(i>255)throw new Error("Invalid xmd length");const a=dt(t,ln(t.length,1)),c=ln(0,o),u=ln(n,2),f=new Array(i),l=r(dt(c,e,u,ln(0,1),a));f[0]=r(dt(l,ln(1,1),a));for(let p=1;p<=i;p++){const h=[Zg(l,f[p-1]),ln(p+1,1),a];f[p]=r(dt(...h))}return dt(...f).slice(0,n)}function qg(e,t,n,r,s){if(Jr(e),Jr(t),Ua(n),t.length>255){const o=Math.ceil(2*r/8);t=s.create({dkLen:o}).update(jo("H2C-OVERSIZE-DST-")).update(t).digest()}if(n>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:n}).update(e).update(ln(n,2)).update(t).update(ln(t.length,1)).digest()}function ru(e,t,n){Pr(n,{DST:"string",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:r,k:s,m:o,hash:i,expand:a,DST:c}=n;Jr(e),Ua(t);const u=Dg(c),f=r.toString(2).length,l=Math.ceil((f+s)/8),d=t*o*l;let p;if(a==="xmd")p=Vg(e,u,d,i);else if(a==="xof")p=qg(e,u,d,s,i);else if(a===void 0)p=e;else throw new Error('expand must be "xmd", "xof" or undefined');const h=new Array(t);for(let g=0;gArray.from(r).reverse());return(r,s)=>{const[o,i,a,c]=n.map(u=>u.reduce((f,l)=>e.add(e.mul(f,r),l)));return r=e.div(o,i),s=e.mul(s,e.div(a,c)),{x:r,y:s}}}function Fg(e,t,n){if(typeof t!="function")throw new Error("mapToCurve() must be defined");return{hashToCurve(r,s){const o=ru(r,2,{...n,DST:n.DST,...s}),i=e.fromAffine(t(o[0])),a=e.fromAffine(t(o[1])),c=i.add(a).clearCofactor();return c.assertValidity(),c},encodeToCurve(r,s){const o=ru(r,1,{...n,DST:n.encodeDST,...s}),i=e.fromAffine(t(o[0])).clearCofactor();return i.assertValidity(),i}}}let Gf=class extends jf{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Un.hash(t);const r=Ba(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew Gf(e,t).update(n).digest();Yf.create=(e,t)=>new Gf(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Wg(e){return{hash:e,hmac:(t,...n)=>Yf(e,t,og(...n)),randomBytes:ig}}function Gg(e,t){const n=r=>Hg({...e,...Wg(r)});return Object.freeze({...n(t),create:n})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Xf=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),su=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Yg=BigInt(1),zi=BigInt(2),ou=(e,t)=>(e+t/zi)/t;function Xg(e){const t=Xf,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=st(f,n,t)*f%t,d=st(l,n,t)*f%t,p=st(d,zi,t)*u%t,h=st(p,s,t)*p%t,g=st(h,o,t)*h%t,m=st(g,a,t)*g%t,b=st(m,c,t)*m%t,w=st(b,a,t)*g%t,y=st(w,n,t)*f%t,x=st(y,i,t)*h%t,$=st(x,r,t)*u%t,E=st($,zi,t);if(!wn.eql(wn.sqr(E),e))throw new Error("Cannot find square root");return E}const wn=Ff(Xf,void 0,void 0,{sqrt:Xg}),qt=Gg({a:BigInt(0),b:BigInt(7),Fp:wn,n:su,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=su,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Yg*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=n,i=BigInt("0x100000000000000000000000000000000"),a=ou(o*e,t),c=ou(-r*e,t);let u=ze(e-a*n-c*s,t),f=ze(-a*r-c*o,t);const l=u>i,d=f>i;if(l&&(u=t-u),d&&(f=t-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:d,k2:f}}}},Mf);BigInt(0);qt.ProjectivePoint;qt.utils.randomPrivateKey;const Jg=zg(wn,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),Qg=Kg(wn,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:wn.create(BigInt("-11"))});Fg(qt.ProjectivePoint,e=>{const{x:t,y:n}=Qg(wn.create(e[0]));return Jg(t,n)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:wn.ORDER,m:1,k:128,expand:"xmd",hash:Mf});function Fi(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function em(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Jf(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function tm(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Fi(e.outputLen),Fi(e.blockLen)}function nm(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 rm(e,t){Jf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),$t=(e,t)=>e<<32-t|e>>>t,om=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!om)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function im(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function Qf(e){if(typeof e=="string"&&(e=im(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let am=class{clone(){return this._cloneInto()}};function el(e){const t=r=>e().update(Qf(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function cm(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let um=class extends am{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=gi(this.buffer)}update(t){pi.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Qf(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;le&t^~e&n,lm=(e,t,n)=>e&t^e&n^t&n,dm=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Qt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),en=new Uint32Array(64);let tl=class extends um{constructor(){super(64,32,8,!1),this.A=Qt[0]|0,this.B=Qt[1]|0,this.C=Qt[2]|0,this.D=Qt[3]|0,this.E=Qt[4]|0,this.F=Qt[5]|0,this.G=Qt[6]|0,this.H=Qt[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)en[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){const d=en[l-15],p=en[l-2],h=$t(d,7)^$t(d,18)^d>>>3,g=$t(p,17)^$t(p,19)^p>>>10;en[l]=g+en[l-7]+h+en[l-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const d=$t(a,6)^$t(a,11)^$t(a,25),p=f+d+fm(a,c,u)+dm[l]+en[l]|0,g=($t(r,2)^$t(r,13)^$t(r,22))+lm(r,s,o)|0;f=u,u=c,c=a,a=i+p|0,i=o,o=s,s=r,r=p+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(r,s,o,i,a,c,u,f)}roundClean(){en.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},hm=class extends tl{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const Wi=el(()=>new tl);el(()=>new hm);function pm(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function gm(e){if(e.match(/[^a-fA-f0-9]/)!==null)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}`)}function mm(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:ym}=crypto??globalThis.crypto??window.crypto;function bm(e=32){if(typeof ym=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function wm(e,t,n="be"){t===void 0&&(t=e.length),pm(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function nl(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)f=o[c],f=f>0?f*256+u:u,u=f/s|0,o[c]=f%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function km(e,t){const n=rl(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function sl(e){return Wi(Wi(e))}function Sm(e){const t=sl(e);return nl([e,t.slice(0,4)])}function $m(e){const t=e.slice(0,-4),n=e.slice(-4);if(sl(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const iu={encode:Em,decode:km},ol={encode:e=>{const t=Sm(e);return iu.encode(t,"base58")},decode:e=>{const t=iu.decode(e,"base58");return $m(t)}},il="qpzry9x8gf2tvdw0s3jn54khce6mua7l",_m=[996825010,642813549,513874426,1027748829,705979059],ao=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function al(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=_m[s])}return t}function cl(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function ul(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function Tm(e,t,n){const r=t.concat(Bm(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??ao[0];if(!Am(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function Im(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function Om(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function Cm(e,t="bc",n=0){const r=[n,...ul([...e],8,5)],s=ao.find(i=>i.version===n)??ao[0],o=Tm(t,r,s);return ll(o),o}function ll(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=fl(e),s=ul(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function Pm(e){e=e.toLowerCase();const[t,n]=fl(e);return n[0]}const dl={encode:Cm,decode:ll,version:Pm},hl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",Um=new TextEncoder;function gl(e,t=!1,n=!0){typeof e=="string"&&(e=Um.encode(e));const r=t?pl:hl;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function ml(e,t=!1){const n=t||e.includes("-")||e.includes("_")?pl.split(""):hl.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const yl={encode:gl,decode:ml},bl={encode:e=>gl(e,!0,!1),decode:e=>ml(e,!0)},Nm=BigInt(0),Lm=BigInt(255),wl=BigInt(256);function Rm(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.")}function Hm(e,t,n="be"){t===void 0&&(t=Rm(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>Nm;){const a=e&Lm,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/wl}return new Uint8Array(s)}function jm(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*wl+BigInt(e[n]);return BigInt(t)}function Km(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 r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function Mm(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!")}function Zm(e,t,n="be"){t===void 0&&(t=Mm(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function Vm(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],mm(t);return t}const qm=new TextEncoder,zm=new TextDecoder;function Na(e){return qm.encode(e)}function mi(e){return zm.decode(e)}function Fm(e,t){gm(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function Wm(e,t,n="le"){t=Fm(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return Na(t)}function Xm(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return wm(e,t,n);if(typeof e=="string")return Wm(e,t,n);if(typeof e=="bigint")return Hm(e,t,n);if(typeof e=="number")return Zm(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}const re=class re extends Uint8Array{static random(t=32){const n=bm(t);return new re(n,t)}constructor(t,n,r){const s=Xm(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new fy(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return Vm(n)}toBin(){return Dm(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return jm(n)}toHash(){const t=Wi(this);return new re(t)}toJson(){const t=mi(this);return JSON.parse(t)}toBech32(t,n=0){return dl.encode(this,t,n)}toStr(){return mi(this)}toHex(){return Gm(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return ol.encode(this)}toBase64(){return yl.encode(this)}toB64url(){return bl.encode(this)}prepend(t){return re.join([re.bytes(t),this])}append(t){return re.join([this,re.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new re(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new re(r)}reverse(){const t=new Uint8Array(this).reverse();return new re(t)}write(t,n){const r=re.bytes(t);this.set(r,n)}prefixSize(t){const n=re.varInt(this.length,t);return re.join([n,this])}static from(t){return new re(Uint8Array.from(t))}static of(...t){return new re(Uint8Array.of(...t))}static join(t){const n=t.map(s=>re.bytes(s)),r=nl(n);return new re(r)}static varInt(t,n){if(t<253)return re.num(t,1);if(t<65536)return re.of(253,...re.num(t,2,n));if(t<4294967296)return re.of(254,...re.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return re.of(255,...re.num(t,8,n));throw new Error(`Value is too large: ${t}`)}};re.num=Jm,re.big=ey,re.bin=Qm,re.raw=ty,re.str=ny,re.hex=ry,re.bytes=sy,re.json=oy,re.base64=iy,re.b64url=ay,re.bech32=cy,re.b58chk=uy,re.encode=Na,re.decode=mi;let X=re;function Jm(e,t,n){return new X(e,t,n)}function Qm(e,t,n){return new X(Km(e),t,n)}function ey(e,t,n){return new X(e,t,n)}function ty(e,t,n){return new X(e,t,n)}function ny(e,t,n){return new X(Na(e),t,n)}function ry(e,t,n){return new X(e,t,n)}function sy(e,t,n){return new X(e,t,n)}function oy(e){return new X(Ym(e))}function iy(e){return new X(yl.decode(e))}function ay(e){return new X(bl.decode(e))}function cy(e){return new X(dl.decode(e))}function uy(e){return new X(ol.decode(e))}class fy{constructor(t){this.data=X.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new X(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}}const co=qt.CURVE,La=co.n,ly=co.p,dy={x:co.Gx,y:co.Gy},hy=BigInt(0);BigInt(1);BigInt(2);BigInt(3);BigInt(4);const Gi={N:La,P:ly,G:dy,_0n:hy},Kr=Ff(La,32,!0),xl=e=>ze(e,La);function Ra(e,t=!1){if(t)throw new Error(e);return!1}function vl(e){return X.random(e)}function py(e){const t=X.bytes(e).big;return X.big(xl(t),32)}var gy=Object.freeze({__proto__:null,fail:Ra,mod_bytes:py,random:vl});const{N:my,_0n:yy}=Gi;function by(e,t,n){const r=X.bytes(e);return r.length!==t?Ra(`Invalid byte size: ${r.hex} !== ${t}`,n):!0}function wy(e,t){return typeof e=="bigint"&&yythis.big}lt(t){return new ve(t).big0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function ky(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Yi(e.outputLen),Yi(e.blockLen)}function Sy(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 $y(e,t){El(e);const n=t.outputLen;if(e.lengthe instanceof Uint8Array,yi=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),_t=(e,t)=>e<<32-t|e>>>t,By=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!By)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ty(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Ha(e){if(typeof e=="string"&&(e=Ty(e)),!Ay(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}let kl=class{clone(){return this._cloneInto()}};function Qn(e){const t=r=>e().update(Ha(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Iy(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}class ja extends kl{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=yi(this.buffer)}update(t){Ln.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Ha(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;le&t^~e&n,Cy=(e,t,n)=>e&t^e&n^t&n,Py=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),tn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),nn=new Uint32Array(64);let Sl=class extends ja{constructor(){super(64,32,8,!1),this.A=tn[0]|0,this.B=tn[1]|0,this.C=tn[2]|0,this.D=tn[3]|0,this.E=tn[4]|0,this.F=tn[5]|0,this.G=tn[6]|0,this.H=tn[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)nn[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){const d=nn[l-15],p=nn[l-2],h=_t(d,7)^_t(d,18)^d>>>3,g=_t(p,17)^_t(p,19)^p>>>10;nn[l]=g+nn[l-7]+h+nn[l-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const d=_t(a,6)^_t(a,11)^_t(a,25),p=f+d+Oy(a,c,u)+Py[l]+nn[l]|0,g=(_t(r,2)^_t(r,13)^_t(r,22))+Cy(r,s,o)|0;f=u,u=c,c=a,a=i+p|0,i=o,o=s,s=r,r=p+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(r,s,o,i,a,c,u,f)}roundClean(){nn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};class Uy extends Sl{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const uo=Qn(()=>new Sl);Qn(()=>new Uy);const Ps=BigInt(2**32-1),Xi=BigInt(32);function $l(e,t=!1){return t?{h:Number(e&Ps),l:Number(e>>Xi&Ps)}:{h:Number(e>>Xi&Ps)|0,l:Number(e&Ps)|0}}function Ny(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let s=0;sBigInt(e>>>0)<>>0),Ry=(e,t,n)=>e>>>n,Hy=(e,t,n)=>e<<32-n|t>>>n,jy=(e,t,n)=>e>>>n|t<<32-n,Ky=(e,t,n)=>e<<32-n|t>>>n,Dy=(e,t,n)=>e<<64-n|t>>>n-32,My=(e,t,n)=>e>>>n-32|t<<64-n,Zy=(e,t)=>t,Vy=(e,t)=>e,qy=(e,t,n)=>e<>>32-n,zy=(e,t,n)=>t<>>32-n,Fy=(e,t,n)=>t<>>64-n,Wy=(e,t,n)=>e<>>64-n;function Gy(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const Yy=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Xy=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Jy=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),Qy=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,eb=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),tb=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,nb={fromBig:$l,split:Ny,toBig:Ly,shrSH:Ry,shrSL:Hy,rotrSH:jy,rotrSL:Ky,rotrBH:Dy,rotrBL:My,rotr32H:Zy,rotr32L:Vy,rotlSH:qy,rotlSL:zy,rotlBH:Fy,rotlBL:Wy,add:Gy,add3L:Yy,add3H:Xy,add4L:Jy,add4H:Qy,add5H:tb,add5L:eb};var ne=nb;const[rb,sb]=ne.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),rn=new Uint32Array(80),sn=new Uint32Array(80);let Ko=class extends ja{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:d,Gh:p,Gl:h,Hh:g,Hl:m}=this;return[t,n,r,s,o,i,a,c,u,f,l,d,p,h,g,m]}set(t,n,r,s,o,i,a,c,u,f,l,d,p,h,g,m){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=g|0,this.Hl=m|0}process(t,n){for(let y=0;y<16;y++,n+=4)rn[y]=t.getUint32(n),sn[y]=t.getUint32(n+=4);for(let y=16;y<80;y++){const x=rn[y-15]|0,$=sn[y-15]|0,E=ne.rotrSH(x,$,1)^ne.rotrSH(x,$,8)^ne.shrSH(x,$,7),I=ne.rotrSL(x,$,1)^ne.rotrSL(x,$,8)^ne.shrSL(x,$,7),P=rn[y-2]|0,B=sn[y-2]|0,U=ne.rotrSH(P,B,19)^ne.rotrBH(P,B,61)^ne.shrSH(P,B,6),L=ne.rotrSL(P,B,19)^ne.rotrBL(P,B,61)^ne.shrSL(P,B,6),D=ne.add4L(I,L,sn[y-7],sn[y-16]),k=ne.add4H(D,E,U,rn[y-7],rn[y-16]);rn[y]=k|0,sn[y]=D|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:d,Fh:p,Fl:h,Gh:g,Gl:m,Hh:b,Hl:w}=this;for(let y=0;y<80;y++){const x=ne.rotrSH(l,d,14)^ne.rotrSH(l,d,18)^ne.rotrBH(l,d,41),$=ne.rotrSL(l,d,14)^ne.rotrSL(l,d,18)^ne.rotrBL(l,d,41),E=l&p^~l&g,I=d&h^~d&m,P=ne.add5L(w,$,I,sb[y],sn[y]),B=ne.add5H(P,b,x,E,rb[y],rn[y]),U=P|0,L=ne.rotrSH(r,s,28)^ne.rotrBH(r,s,34)^ne.rotrBH(r,s,39),D=ne.rotrSL(r,s,28)^ne.rotrBL(r,s,34)^ne.rotrBL(r,s,39),k=r&o^r&a^o&a,_=s&i^s&c^i&c;b=g|0,w=m|0,g=p|0,m=h|0,p=l|0,h=d|0,{h:l,l:d}=ne.add(u|0,f|0,B|0,U|0),u=a|0,f=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const v=ne.add3L(U,D,_);r=ne.add3H(v,B,L,k),s=v|0}({h:r,l:s}=ne.add(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=ne.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=ne.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=ne.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:d}=ne.add(this.Eh|0,this.El|0,l|0,d|0),{h:p,l:h}=ne.add(this.Fh|0,this.Fl|0,p|0,h|0),{h:g,l:m}=ne.add(this.Gh|0,this.Gl|0,g|0,m|0),{h:b,l:w}=ne.add(this.Hh|0,this.Hl|0,b|0,w|0),this.set(r,s,o,i,a,c,u,f,l,d,p,h,g,m,b,w)}roundClean(){rn.fill(0),sn.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};class ob extends Ko{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class ib extends Ko{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class ab extends Ko{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const cb=Qn(()=>new Ko);Qn(()=>new ob);Qn(()=>new ib);Qn(()=>new ab);const ub=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),_l=Uint8Array.from({length:16},(e,t)=>t),fb=_l.map(e=>(9*e+5)%16);let Ka=[_l],Da=[fb];for(let e=0;e<4;e++)for(let t of[Ka,Da])t.push(t[e].map(n=>ub[n]));const Al=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),lb=Ka.map((e,t)=>e.map(n=>Al[t][n])),db=Da.map((e,t)=>e.map(n=>Al[t][n])),hb=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),pb=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),Us=(e,t)=>e<>>32-t;function cu(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const Ns=new Uint32Array(16);let gb=class extends ja{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let p=0;p<16;p++,n+=4)Ns[p]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,f=u,l=this.h4|0,d=l;for(let p=0;p<5;p++){const h=4-p,g=hb[p],m=pb[p],b=Ka[p],w=Da[p],y=lb[p],x=db[p];for(let $=0;$<16;$++){const E=Us(r+cu(p,o,a,u)+Ns[b[$]]+g,y[$])+l|0;r=l,l=u,u=Us(a,10)|0,a=o,o=E}for(let $=0;$<16;$++){const E=Us(s+cu(h,i,c,f)+Ns[w[$]]+m,x[$])+d|0;s=d,d=f,f=Us(c,10)|0,c=i,i=E}}this.set(this.h1+a+f|0,this.h2+u+d|0,this.h3+l+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){Ns.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}};const mb=Qn(()=>new gb);let Bl=class extends kl{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Ln.hash(t);const r=Ha(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew Bl(e,t).update(n).digest();Tl.create=(e,t)=>new Bl(e,t);function yb(e){const t=X.bytes(e);return X.raw(uo(t))}function br(e){const t=X.bytes(e);return X.raw(uo(uo(t)))}function Ma(e){const t=X.bytes(e);return X.raw(mb(uo(t)))}function bb(e,t){const n=X.bytes(e),r=X.bytes(t);return X.raw(Tl(cb,n,r))}function wb(e){const t=X.str(e).digest;return X.join([t,t])}function xb(e=32){return Za(vl(e))}function Za(e){return Ge.mod(e).buff}function Il(e,t=!1){const n=Ge.mod(e).point;return t?n.x:n.buff}function Ol(e,t){const n=Jn.from_x(t),r=Ge.mod(e);return n.mul(r).buff}function vb(e,t,n="ecdh/code"){const r=wb(n),s=Za(e),o=Il(s),i=X.bytes(t),a=Ol(s,i),c=[o.hex,i.hex];return c.sort(),bb(a,X.join([r,...c]))}function Eb(e){const t=X.bytes(e);switch(!0){case t.length===32:return!0;case(t.length===33&&t[0]===2):return!0;case(t.length===33&&t[0]===3):return!1;default:throw new TypeError(`Invalid public key: ${t.hex}`)}}function kb(e){const t=X.bytes(e);switch(t.length){case 32:return t;case 33:return t.slice(1,33);default:throw new Error(`Invalid key length: ${t.length}`)}}var Sb=Object.freeze({__proto__:null,genSecretKey:xb,getPublicKey:Il,getSecretKey:Za,getSharedCode:vb,getSharedKey:Ol,is_even_pub:Eb,xonly_pub:kb});X.random(32);const Cl={secp:qt},Ji={...Sb,...gy};function Do(e){const t=S.bytes(e);return Nt(t,33),Ma(t)}function Pl(e){const t=Be.fmt.toBytes(e,!1);return Ma(t)}function Ul(e){const t=Be.fmt.toBytes(e,!1);return yb(t)}function Nl(e,t="main"){const n=t==="main"?["1"]:["m","n"];for(const r of n)if(e.startsWith(r))return!0;return!1}function Ll(e,t="main"){const n=S.bytes(e),r=t==="main"?S.num(0):S.num(111);return Nt(e,20),n.prepend(r).tob58chk()}function $b(e,t="main"){if(!Nl(e,t))throw new TypeError("Invalid p2pkh address!");return S.b58chk(e).slice(1)}function _b(e){const t=S.bytes(e);return Nt(t,20),["OP_DUP","OP_HASH160",t.hex,"OP_EQUALVERIFY","OP_CHECKSIG"]}function Ab(e,t){const n=Do(e);return Ll(n,t)}const Rl={check:Nl,encode:Ll,decode:$b,hash:Do,scriptPubKey:_b,fromPubKey:Ab};function Hl(e,t="main"){const n=t==="main"?["3"]:["2"];for(const r of n)if(e.startsWith(r))return!0;return!1}function jl(e,t="main"){const n=t==="main"?S.num(5):S.num(196),r=S.bytes(e);return Nt(r,20),r.prepend(n).tob58chk()}function Bb(e,t="main"){if(!Hl(e,t))throw new TypeError(`Invalid p2sh address for network ${t}:`+e);return S.b58chk(e).slice(1)}function Tb(e){return["OP_HASH160",S.bytes(e).hex,"OP_EQUAL"]}function Ib(e,t){const n=Pl(e);return jl(n,t)}const Kl={check:Hl,encode:jl,decode:Bb,hash:Pl,scriptPubKey:Tb,fromScript:Ib},Va={main:"bc",testnet:"tb",signet:"tb",regtest:"bcrt"},Ob=["bc1q","tb1q","bcrt1q"];function Dl(e){for(const t of Ob)if(e.startsWith(t))return!0;return!1}function Ml(e,t="main"){const n=Va[t],r=S.bytes(e);return Nt(r,20),r.toBech32(n,0)}function Cb(e){if(!Dl(e))throw new TypeError("Invalid segwit address!");return S.bech32(e)}function Pb(e){const t=S.bytes(e);return Nt(t,20),["OP_0",t.hex]}function Ub(e,t){const n=Do(e);return Ml(n,t)}const Zl={check:Dl,encode:Ml,decode:Cb,hash:Do,scriptPubKey:Pb,fromPubKey:Ub},Nb=["bc1q","tb1q","bcrt1q"];function Vl(e){for(const t of Nb)if(e.startsWith(t))return!0;return!1}function ql(e,t="main"){const n=Va[t],r=S.bytes(e);return Nt(r,32),r.toBech32(n,0)}function Lb(e){if(!Vl(e))throw new TypeError("Invalid segwit address!");return S.bech32(e)}function Rb(e){const t=S.bytes(e);return Nt(t,32),["OP_0",t.hex]}function Hb(e,t){const n=Ul(e);return ql(n,t)}const zl={check:Vl,encode:ql,decode:Lb,hash:Ul,scriptPubKey:Rb,fromScript:Hb};function Zn(e){const t=S.bytes(e);return t.length>32?t.slice(1,33):t}const jb=["bc1p","tb1p","bcrt1p"];function Fl(e){for(const t of jb)if(e.startsWith(t))return!0;return!1}function Wl(e,t="main"){const n=Va[t],r=S.bytes(e);return Nt(r,32),r.toBech32(n,1)}function Kb(e){if(!Fl(e))throw new TypeError("Invalid taproot address!");return S.bech32(e)}function Db(e){const t=S.bytes(e);return Nt(t,32),["OP_1",t.hex]}function Mb(e,t){const n=Zn(e);return Wl(n,t)}const Gl={check:Fl,encode:Wl,decode:Kb,scriptPubKey:Db,fromPubKey:Mb},Zb={version:2,vin:[],vout:[],locktime:0},Vb={scriptSig:[],sequence:4294967293,witness:[]},qb={value:0n,scriptPubKey:[]};function qa(e){const t={...Zb,...e};return t.vin=t.vin.map(n=>({...Vb,...n})),t.vout=t.vout.map(n=>({...qb,...n})),t}function wr(e,t){const{version:n,vin:r,vout:s,locktime:o}=qa(e),i=t!==!0&&zb(r),a=[za(n)];i&&a.push(S.hex("0001")),a.push(Fb(r)),a.push(Wb(s));for(const c of r)i&&a.push(Yb(c.witness));return a.push(Fa(o)),S.join(a)}function zb(e){for(const t of e){const{witness:n}=t;if(typeof n=="string"||n instanceof Uint8Array||Array.isArray(n)&&n.length>0)return!0}return!1}function za(e){return S.num(e,4).reverse()}function ys(e){return S.hex(e,32).reverse()}function bs(e){return S.num(e,4).reverse()}function ws(e){if(typeof e=="string")return S.hex(e,4).reverse();if(typeof e=="number")return S.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function Fb(e){const t=[S.varInt(e.length,"le")];for(const n of e){const{txid:r,vout:s,scriptSig:o,sequence:i}=n;t.push(ys(r)),t.push(bs(s)),t.push(Xn(o,!0)),t.push(ws(i))}return S.join(t)}function xn(e){if(typeof e=="number"){if(e%1!==0)throw new Error("Value must be an integer:"+String(e));return S.num(e,8).reverse()}return S.big(e,8).reverse()}function Wb(e){const t=[S.varInt(e.length,"le")];for(const n of e)t.push(Gb(n));return S.join(t)}function Gb(e){const{value:t,scriptPubKey:n}=e,r=[];return r.push(xn(t)),r.push(Xn(n,!0)),S.join(r)}function Yb(e=[]){const t=[];if(Array.isArray(e)){const n=S.varInt(e.length);t.push(n);for(const r of e)t.push(Xb(r));return S.join(t)}else return S.bytes(e)}function Xb(e){return Jb(e)?new S(0):Xn(e,!0)}function Jb(e){if(Array.isArray(e))return e.length===0;if(typeof e=="string"&&e==="")return!0;const t=S.bytes(e);return t.length===1&&t[0]===0}function Fa(e){if(typeof e=="string")return S.hex(e,4);if(typeof e=="number")return S.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function Wa(e){typeof e=="string"&&(e=S.hex(e).raw);const t=new Cr(e),n=Qb(t),r=ew(t),s=tw(t),o=rw(t);if(r)for(const a of s)a.witness=ow(t);const i=iw(t);return{version:n,vin:s,vout:o,locktime:i}}function Qb(e){return e.read(4).reverse().toNum()}function ew(e){const[t,n]=[...e.peek(2)];if(t===0){if(e.read(2),n===1)return!0;throw new Error(`Invalid witness flag: ${n}`)}return!1}function tw(e){const t=[],n=e.readSize("le");for(let r=0;r0?e.read(n).hex:null}function Xl(e,t){const n=Yl(e);return n!==null?n:[]}function iw(e){return e.read(4).reverse().toNum()}function aw(e){if(Lf(e))return Wa(e);if(typeof e=="object"&&!(e instanceof Uint8Array))return wr(e),qa(e);throw new Error("Invalid format: "+typeof e)}function cw(e){if(Lf(e))return Wa(e),S.bytes(e);if(typeof e=="object")return wr(e);throw new Error("Invalid format: "+typeof e)}const Ga={toBytes:cw,toJson:aw},uw=[["p2pkh",/^76a914(?\w{40})88ac$/],["p2sh",/^a914(?\w{40})87$/],["p2w-pkh",/^0014(?\w{40})$/],["p2w-sh",/^0020(?\w{64})$/],["p2tr",/^5120(?\w{64})$/]],fw=[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];function lw(e){let t=e.at(-1);return Wt(t)&&(t=S.hex(t)),e.length>1&&t instanceof Uint8Array&&t[0]===80?(e.pop(),S.raw(t)):null}function dw(e){let t=e.at(-1);return Wt(t)&&(t=S.hex(t)),e.length>1&&t instanceof Uint8Array&&t.length>32&&fw.includes(t[0]&254)?(e.pop(),S.raw(t)):null}function hw(e){if(e.length>1){const t=e.at(-1);try{const n=Be.fmt.toBytes(t);return e.pop(),n}catch{return null}}return null}function pw(e){const t=[];for(const n of e)if(Wt(n)||n instanceof Uint8Array||typeof n=="number")t.push(S.bytes(n));else throw new Error("unrecognized value: "+String(n));return t}function gw(e=[]){const t=[...e],n=lw(t),r=dw(t),s=hw(t),o=pw(t);return{annex:n,cblock:r,script:s,params:o}}function mw(e){const t=Be.fmt.toBytes(e,!1).hex;for(const[n,r]of uw){const s=n,{groups:o}=r.exec(t)??{},{hash:i}=o??{};if(Wt(i))return{type:s,data:S.hex(i)}}return{type:"raw",data:S.hex(t)}}function yw(e){const t=Ga.toJson(e),n=wr(t,!0);return br(n).reverse().hex}function bw(e){const t=Ga.toJson(e),n=wr(t,!0).length,r=wr(t,!1).length,s=n*3+r,o=s%4>0?1:0,i=Math.floor(s/4)+o;return{size:r,bsize:n,vsize:i,weight:s}}const ie={create:qa,encode:wr,decode:Wa,fmt:Ga,util:{getTxSize:bw,getTxid:yw,readScriptPubKey:mw,readWitness:gw}},ww=[["1","p2pkh","main",20,"base58"],["3","p2sh","main",20,"base58"],["m","p2pkh","testnet",20,"base58"],["n","p2pkh","testnet",20,"base58"],["2","p2sh","testnet",20,"base58"],["bc1q","p2w-pkh","main",20,"bech32"],["tb1q","p2w-pkh","testnet",20,"bech32"],["bcrt1q","p2w-pkh","regtest",20,"bech32"],["bc1q","p2w-sh","main",32,"bech32"],["tb1q","p2w-sh","testnet",32,"bech32"],["bcrt1q","p2w-sh","regtest",32,"bech32"],["bc1p","p2tr","main",32,"bech32m"],["tb1p","p2tr","testnet",32,"bech32m"],["bcrt1p","p2tr","regtest",32,"bech32m"]];function xw(e,t){switch(t){case"base58":return S.b58chk(e).slice(1);case"bech32":return S.bech32(e);case"bech32m":return S.bech32(e);default:throw new Error("Invalid address format: "+t)}}function vw(e){for(const t of ww){const[n,r,s,o,i]=t;if(e.startsWith(n)&&xw(e,i).length===o)return t}throw new Error("Invalid address: "+e)}function Jl(e){switch(e){case"p2pkh":return Rl;case"p2sh":return Kl;case"p2w-pkh":return Zl;case"p2w-sh":return zl;case"p2tr":return Gl;default:throw new Error("Invalid address type: "+e)}}function Ql(e){const[t,n,r]=vw(e),s=Jl(n),o=s.decode(e,r),i=s.scriptPubKey(o);return{prefix:t,type:n,network:r,data:o,script:i}}function Ew(e,t){const{type:n,data:r}=ie.util.readScriptPubKey(e);return Jl(n).encode(r,t)}function kw(e){const{script:t}=Ql(e);return Be.fmt.toAsm(t,!1)}const Qr={p2pkh:Rl,p2sh:Kl,p2wpkh:Zl,p2wsh:zl,p2tr:Gl,decode:Ql,fromScriptPubKey:Ew,toScriptPubKey:kw},Sw=[1,2,3];function Ya(e,t,n={}){const{sigflag:r=1}=n,s=(r&128)===128,o=r%128;if(!Sw.includes(o))throw new Error("Invalid hash type: "+String(r));const i=ie.fmt.toJson(e),{version:a,vin:c,vout:u,locktime:f}=i,{txid:l,vout:d,prevout:p,sequence:h}=c[t],{value:g}=p??{};if(g===void 0)throw new Error("Prevout value is empty!");let m=n.script;if(m===void 0&&n.pubkey!==void 0&&(m=`76a914${Ma(n.pubkey).hex}88ac`),m===void 0)throw new Error("No pubkey / script has been set!");if(Be.fmt.toAsm(m).includes("OP_CODESEPARATOR"))throw new Error("This library does not currently support the use of OP_CODESEPARATOR in segwit scripts.");const b=[za(a),$w(c,s),_w(c,o,s),ys(l),bs(d),Be.encode(m,!0),xn(g),ws(h),Aw(u,t,o),Fa(f),S.num(r,4).reverse()];return br(S.join(b))}function $w(e,t){if(t===!0)return S.num(0,32);const n=[];for(const{txid:r,vout:s}of e)n.push(ys(r)),n.push(bs(s));return br(S.join(n))}function _w(e,t,n){if(n||t!==1)return S.num(0,32);const r=[];for(const{sequence:s}of e)r.push(ws(s));return br(S.join(r))}function Aw(e,t,n){const r=[];if(n===1){for(const{value:s,scriptPubKey:o}of e)r.push(xn(s)),r.push(Be.encode(o,!0));return br(S.join(r))}if(n===3&&t1&&c[1].length===33)u=S.bytes(c[1]);else return qe("No pubkey provided!",s);const f=Be.fmt.toParam(c[0]),l=f.slice(0,-1),d=f.slice(-1)[0],p=Ya(r,t,{...n,sigflag:d});return Cl.secp.verify(l,p,u)?!0:qe("Invalid signature!",s)}const Iw={hash:Ya,sign:Bw,verify:Tw},Ow=[0,1,2,3,129,130,131];function Xa(e,t,n={}){const{extension:r,sigflag:s=0,extflag:o=0,key_version:i=0,separator_pos:a=4294967295}=n,c=ie.fmt.toJson(e),{version:u,vin:f,vout:l,locktime:d}=c;if(t>=f.length)throw new Error("Index out of bounds: "+String(t));if(!Ow.includes(s))throw new Error("Invalid hash type: "+String(s));if(o<0||o>127)throw new Error("Extention flag out of range: "+String(o));const{txid:p,vout:h,sequence:g,witness:m=[]}=f[t],b=(s&128)===128,w=Hw(m),y=w!==void 0?1:0,$=(o+(r!==void 0?1:0))*2+y,E=S.str("TapSighash").digest,I=[E,E,S.num(0,1),S.num(s,1),za(u),Fa(d)];if(!b){const P=f.map(B=>uu(B));I.push(Cw(f),Uw(P),Nw(P),Pw(f))}if(((s&3)<2||(s&3)>3)&&I.push(Lw(l)),I.push(S.num($,1)),b){const{value:P,scriptPubKey:B}=uu(f[t]);I.push(ys(p),bs(h),xn(P),Be.encode(B,!0),ws(g))}else I.push(S.num(t,4).reverse());return w!==void 0&&I.push(w),(s&3)===3&&I.push(Rw(l[t])),r!==void 0&&I.push(S.bytes(r),S.num(i),S.num(a,4,"le")),S.join(I).digest}function Cw(e){const t=[];for(const{txid:n,vout:r}of e)t.push(ys(n)),t.push(bs(r));return S.join(t).digest}function Pw(e){const t=[];for(const{sequence:n}of e)t.push(ws(n));return S.join(t).digest}function Uw(e){const t=[];for(const{value:n}of e)t.push(xn(n));return S.join(t).digest}function Nw(e){const t=[];for(const{scriptPubKey:n}of e)t.push(Xn(n,!0));return S.join(t).digest}function Lw(e){const t=[];for(const{value:n,scriptPubKey:r}of e)t.push(xn(n)),t.push(Be.encode(r,!0));return S.join(t).digest}function Rw(e){return S.join([xn(e.value),Be.encode(e.scriptPubKey,!0)]).digest}function Hw(e){if(e===void 0||e.length<2)return;let t=e.at(-1);if(typeof t=="string"&&(t=S.hex(t)),t instanceof Uint8Array&&t[0]===80)return S.raw(t).prefixSize("be").digest}function uu(e){if(e.prevout===void 0)throw new Error("Prevout data missing for input: "+String(e.txid));return e.prevout}const jw=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,Kw=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;function Dw(e,t,n,r={}){const{sigflag:s=0}=r,o=Xa(t,n,r),i=Mw(e,o);return s===0?S.raw(i):S.join([i,s])}function Mw(e,t,n=S.random(32)){const r=S.bytes(t),s=new Ge(e),o=s.point,i=o.hasEvenY?s.big:s.negated.big,a=Js("BIP0340/aux",S.bytes(n)),c=i^a.big,u=Js("BIP0340/nonce",c,o.x.raw,r),f=new Ge(u),l=f.point,d=l.hasEvenY?f.big:f.negated.big,p=new Ge(Js("BIP0340/challenge",l.x.raw,o.x.raw,r)),h=new Ge(d+p.big*i);return S.join([l.x.raw,h.raw])}function Zw(e,t,n,r=!1){const s=Jn.from_x(Zn(n)),o=S.bytes(t),i=S.bytes(e).stream;i.size<64&&qe("Signature length is too small: "+String(i.size),r);const a=i.read(32);a.big>jw&&qe("Signature r value greater than field size!",r);const c=i.read(32);c.big>Kw&&qe("Signature s value greater than curve order!",r);const u=new Ge(Js("BIP0340/challenge",a.raw,s.x.raw,o)),f=new Ge(c).point,l=s.mul(u.big),d=f.sub(l);return d.hasOddY&&qe("Signature R value has odd Y coordinate!",r),d.x.big===0n&&qe("Signature R value is infinite!",r),d.x.big===a.big}const Vw=192;function Mo(e){const t=S.str(e).digest;return S.join([t,t])}function Ja(e,t=Vw){return S.join([Mo("TapLeaf"),Fw(t),S.bytes(e)]).digest.hex}function qw(e,t){return Ja(Be.fmt.toBytes(e),t)}function Qa(e,t){return t0){const[p,h,g]=fo(r,i);c=g,a=lr(e,p,n)}else i!==void 0?a=lr(e,i,n):a=lr(e,void 0,n);const u=n?Ji.getPublicKey(a)[0]:a[0],l=[S.num(s+od(u)),o];c.length>0&&c.forEach(p=>l.push(S.hex(p)));const d=S.join(l);if(i!==void 0&&!ec(a,i,d,t))throw new Error("Path checking failed! Unable to generate path.");return[Zn(a).hex,d.hex]}function ec(e,t,n,r={}){const{isPrivate:s=!1,throws:o=!1}=r,{parity:i,paths:a,intkey:c}=sd(n),u=s?Ji.getPublicKey(e,!0):Zn(e),f=S.join([i,u]);if(f.length!==33)return qe("Invalid tapkey: "+f.hex,o);let l=S.bytes(t).hex;for(const p of a)l=Qa(l,p);const d=lr(c,l);return S.raw(d).hex===S.raw(f).hex}function sd(e){const t=new Cr(S.bytes(e)),n=t.read(1).num,r=t.read(32),[s,o]=n%2===0?[n,2]:[n-1,3],i=[];for(;t.size>=32;)i.push(t.read(32).hex);if(t.size!==0)throw new Error("Non-empty buffer on control block: "+String(t));return{intkey:r,paths:i,parity:o,version:s}}function od(e=2){if(e===0||e===1)return e;if(e===2||e==="02")return 0;if(e===3||e==="03")return 1;throw new Error("Invalid parity bit: "+String(e))}function t1(e,t,n={}){const r=ie.fmt.toJson(e),{throws:s=!1}=n,{prevout:o,witness:i=[]}=r.vin[t],a=ie.util.readWitness(i),{cblock:c,script:u,params:f}=a;let l;if(f.length<1)return qe("Invalid witness data: "+String(i),s);const{scriptPubKey:d}=o??{};if(d===void 0)return qe("Prevout scriptPubKey is empty!",s);const{type:p,data:h}=ie.util.readScriptPubKey(d);if(p!=="p2tr")return qe("Prevout script is not a valid taproot output:"+h.hex,s);if(h.length!==32)return qe("Invalid tapkey length: "+String(h.length),s);if(c!==null&&u!==null){const y=c[0]&254,x=Ja(u,y);if(n.extension=x,!ec(h,x,c,{throws:s}))return qe("cblock verification failed!",s)}n.pubkey!==void 0?l=S.bytes(n.pubkey):f.length>1&&f[1].length===32?l=S.bytes(f[1]):l=S.bytes(h);const g=Be.fmt.toParam(f[0]),m=new Cr(g),b=m.read(64).raw;if(m.size===1&&(n.sigflag=m.read(1).num,n.sigflag===0))return qe("0x00 is not a valid appended sigflag!",s);const w=Xa(r,t,n);return Zw(b,w,l,s)?!0:qe("Invalid signature!",s)}const n1={hash:Xa,sign:Dw,verify:t1},xr={segwit:Iw,taproot:n1},r1={getTag:Mo,getLeaf:Ja,getBranch:Qa,getRoot:zw},s1={readCtrlBlock:sd,readParityBit:od},o1={getPubKey:Ww,getSecKey:Gw,getTweak:ed,tweakSecKey:td,tweakPubKey:nd},Zo={getPubKey:e1,getSecKey:Qw,encodeScript:qw,checkPath:ec,tree:r1,tweak:o1,util:s1,SCRIPT_PUBKEY:Xw};var ge;(function(e){e.assertEqual=s=>s;function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{const o={};for(const i of s)o[i]=i;return o},e.getValidEnumValues=s=>{const o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(const a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const o=[];for(const i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(const i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(ge||(ge={}));var Qi;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Qi||(Qi={}));const Z=ge.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),hn=e=>{switch(typeof e){case"undefined":return Z.undefined;case"string":return Z.string;case"number":return isNaN(e)?Z.nan:Z.number;case"boolean":return Z.boolean;case"function":return Z.function;case"bigint":return Z.bigint;case"symbol":return Z.symbol;case"object":return Array.isArray(e)?Z.array:e===null?Z.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?Z.promise:typeof Map<"u"&&e instanceof Map?Z.map:typeof Set<"u"&&e instanceof Set?Z.set:typeof Date<"u"&&e instanceof Date?Z.date:Z.object;default:return Z.unknown}},H=ge.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"]),i1=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class yt extends Error{constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}get errors(){return this.issues}format(t){const n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(const i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,c=0;for(;cn.message){const n={},r=[];for(const s of this.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}yt.create=e=>new yt(e);const es=(e,t)=>{let n;switch(e.code){case H.invalid_type:e.received===Z.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case H.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,ge.jsonStringifyReplacer)}`;break;case H.unrecognized_keys:n=`Unrecognized key(s) in object: ${ge.joinValues(e.keys,", ")}`;break;case H.invalid_union:n="Invalid input";break;case H.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${ge.joinValues(e.options)}`;break;case H.invalid_enum_value:n=`Invalid enum value. Expected ${ge.joinValues(e.options)}, received '${e.received}'`;break;case H.invalid_arguments:n="Invalid function arguments";break;case H.invalid_return_type:n="Invalid function return type";break;case H.invalid_date:n="Invalid date";break;case H.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(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}"`:ge.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case H.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case H.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case H.custom:n="Invalid input";break;case H.invalid_intersection_types:n="Intersection results could not be merged";break;case H.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case H.not_finite:n="Number must be finite";break;default:n=t.defaultError,ge.assertNever(e)}return{message:n}};let id=es;function a1(e){id=e}function lo(){return id}const ho=e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};let a="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:s.message||a}},c1=[];function V(e,t){const n=ho({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,lo(),es].filter(r=>!!r)});e.common.issues.push(n)}class Fe{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const s of n){if(s.status==="aborted")return J;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const s of n)r.push({key:await s.key,value:await s.value});return Fe.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const s of n){const{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return J;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}}const J=Object.freeze({status:"aborted"}),ad=e=>({status:"dirty",value:e}),Je=e=>({status:"valid",value:e}),ea=e=>e.status==="aborted",ta=e=>e.status==="dirty",po=e=>e.status==="valid",go=e=>typeof Promise<"u"&&e instanceof Promise;var W;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(W||(W={}));class Ct{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const fu=(e,t)=>{if(po(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 n=new yt(e.common.issues);return this._error=n,this._error}}};function te(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>i.code!=="invalid_type"?{message:a.defaultError}:typeof a.data>"u"?{message:r??a.defaultError}:{message:n??a.defaultError},description:s}}class se{constructor(t){this.spa=this.safeParseAsync,this._def=t,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.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(t){return hn(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:hn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Fe,ctx:{common:t.parent.common,data:t.data,parsedType:hn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(go(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const s={common:{issues:[],async:(r=n==null?void 0:n.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:hn(t)},o=this._parseSync({data:t,path:s.path,parent:s});return fu(s,o)}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:hn(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(go(s)?s:Promise.resolve(s));return fu(r,o)}refine(t,n){const r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{const i=t(s),a=()=>o.addIssue({code:H.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new xt({schema:this,typeName:Y.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}optional(){return Zt.create(this,this._def)}nullable(){return zn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return bt.create(this,this._def)}promise(){return Er.create(this,this._def)}or(t){return ss.create([this,t],this._def)}and(t){return os.create(this,t,this._def)}transform(t){return new xt({...te(this._def),schema:this,typeName:Y.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new fs({...te(this._def),innerType:this,defaultValue:n,typeName:Y.ZodDefault})}brand(){return new ud({typeName:Y.ZodBranded,type:this,...te(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new wo({...te(this._def),innerType:this,catchValue:n,typeName:Y.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return xs.create(this,t)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const u1=/^c[^\s-]{8,}$/i,f1=/^[a-z][a-z0-9]*$/,l1=/[0-9A-HJKMNP-TV-Z]{26}/,d1=/^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i,h1=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/,p1=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u"),g1=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,m1=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,y1=e=>e.precision?e.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}Z$`):e.precision===0?e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function b1(e,t){return!!((t==="v4"||!t)&&g1.test(e)||(t==="v6"||!t)&&m1.test(e))}class pt extends se{constructor(){super(...arguments),this._regex=(t,n,r)=>this.refinement(s=>t.test(s),{validation:n,code:H.invalid_string,...W.errToObj(r)}),this.nonempty=t=>this.min(1,W.errToObj(t)),this.trim=()=>new pt({...this._def,checks:[...this._def.checks,{kind:"trim"}]}),this.toLowerCase=()=>new pt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]}),this.toUpperCase=()=>new pt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==Z.string){const o=this._getOrReturnCtx(t);return V(o,{code:H.invalid_type,expected:Z.string,received:o.parsedType}),J}const r=new Fe;let s;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:H.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const i=t.data.length>o.value,a=t.data.length"u"?null:t==null?void 0:t.precision,offset:(n=t==null?void 0:t.offset)!==null&&n!==void 0?n:!1,...W.errToObj(t==null?void 0:t.message)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...W.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...W.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...W.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...W.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...W.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...W.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...W.errToObj(n)})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new pt({checks:[],typeName:Y.ZodString,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...te(e)})};function w1(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=parseInt(e.toFixed(s).replace(".","")),i=parseInt(t.toFixed(s).replace(".",""));return o%i/Math.pow(10,s)}class vn extends se{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==Z.number){const o=this._getOrReturnCtx(t);return V(o,{code:H.invalid_type,expected:Z.number,received:o.parsedType}),J}let r;const s=new Fe;for(const o of this._def.checks)o.kind==="int"?ge.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:H.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:H.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?w1(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),V(r,{code:H.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),V(r,{code:H.not_finite,message:o.message}),s.dirty()):ge.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,W.toString(n))}gt(t,n){return this.setLimit("min",t,!1,W.toString(n))}lte(t,n){return this.setLimit("max",t,!0,W.toString(n))}lt(t,n){return this.setLimit("max",t,!1,W.toString(n))}setLimit(t,n,r,s){return new vn({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:W.toString(s)}]})}_addCheck(t){return new vn({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:W.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:W.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:W.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:W.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:W.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:W.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:W.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:W.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:W.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&ge.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew vn({checks:[],typeName:Y.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...te(e)});class En extends se{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce&&(t.data=BigInt(t.data)),this._getType(t)!==Z.bigint){const o=this._getOrReturnCtx(t);return V(o,{code:H.invalid_type,expected:Z.bigint,received:o.parsedType}),J}let r;const s=new Fe;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),V(r,{code:H.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),V(r,{code:H.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):ge.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,W.toString(n))}gt(t,n){return this.setLimit("min",t,!1,W.toString(n))}lte(t,n){return this.setLimit("max",t,!0,W.toString(n))}lt(t,n){return this.setLimit("max",t,!1,W.toString(n))}setLimit(t,n,r,s){return new En({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:W.toString(s)}]})}_addCheck(t){return new En({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:W.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:W.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:W.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:W.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:W.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new En({checks:[],typeName:Y.ZodBigInt,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...te(e)})};class ts extends se{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==Z.boolean){const r=this._getOrReturnCtx(t);return V(r,{code:H.invalid_type,expected:Z.boolean,received:r.parsedType}),J}return Je(t.data)}}ts.create=e=>new ts({typeName:Y.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...te(e)});class Vn extends se{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==Z.date){const o=this._getOrReturnCtx(t);return V(o,{code:H.invalid_type,expected:Z.date,received:o.parsedType}),J}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return V(o,{code:H.invalid_date}),J}const r=new Fe;let s;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(s=this._getOrReturnCtx(t,s),V(s,{code:H.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):ge.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Vn({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:W.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:W.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Vn({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:Y.ZodDate,...te(e)});class mo extends se{_parse(t){if(this._getType(t)!==Z.symbol){const r=this._getOrReturnCtx(t);return V(r,{code:H.invalid_type,expected:Z.symbol,received:r.parsedType}),J}return Je(t.data)}}mo.create=e=>new mo({typeName:Y.ZodSymbol,...te(e)});class ns extends se{_parse(t){if(this._getType(t)!==Z.undefined){const r=this._getOrReturnCtx(t);return V(r,{code:H.invalid_type,expected:Z.undefined,received:r.parsedType}),J}return Je(t.data)}}ns.create=e=>new ns({typeName:Y.ZodUndefined,...te(e)});class rs extends se{_parse(t){if(this._getType(t)!==Z.null){const r=this._getOrReturnCtx(t);return V(r,{code:H.invalid_type,expected:Z.null,received:r.parsedType}),J}return Je(t.data)}}rs.create=e=>new rs({typeName:Y.ZodNull,...te(e)});class vr extends se{constructor(){super(...arguments),this._any=!0}_parse(t){return Je(t.data)}}vr.create=e=>new vr({typeName:Y.ZodAny,...te(e)});class Dn extends se{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Je(t.data)}}Dn.create=e=>new Dn({typeName:Y.ZodUnknown,...te(e)});class zt extends se{_parse(t){const n=this._getOrReturnCtx(t);return V(n,{code:H.invalid_type,expected:Z.never,received:n.parsedType}),J}}zt.create=e=>new zt({typeName:Y.ZodNever,...te(e)});class yo extends se{_parse(t){if(this._getType(t)!==Z.undefined){const r=this._getOrReturnCtx(t);return V(r,{code:H.invalid_type,expected:Z.void,received:r.parsedType}),J}return Je(t.data)}}yo.create=e=>new yo({typeName:Y.ZodVoid,...te(e)});class bt extends se{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==Z.array)return V(n,{code:H.invalid_type,expected:Z.array,received:n.parsedType}),J;if(s.exactLength!==null){const i=n.data.length>s.exactLength.value,a=n.data.lengths.maxLength.value&&(V(n,{code:H.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new Ct(n,i,n.path,a)))).then(i=>Fe.mergeArray(r,i));const o=[...n.data].map((i,a)=>s.type._parseSync(new Ct(n,i,n.path,a)));return Fe.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new bt({...this._def,minLength:{value:t,message:W.toString(n)}})}max(t,n){return new bt({...this._def,maxLength:{value:t,message:W.toString(n)}})}length(t,n){return new bt({...this._def,exactLength:{value:t,message:W.toString(n)}})}nonempty(t){return this.min(1,t)}}bt.create=(e,t)=>new bt({type:e,minLength:null,maxLength:null,exactLength:null,typeName:Y.ZodArray,...te(t)});function cr(e){if(e instanceof Ae){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Zt.create(cr(r))}return new Ae({...e._def,shape:()=>t})}else return e instanceof bt?new bt({...e._def,type:cr(e.element)}):e instanceof Zt?Zt.create(cr(e.unwrap())):e instanceof zn?zn.create(cr(e.unwrap())):e instanceof Pt?Pt.create(e.items.map(t=>cr(t))):e}class Ae extends se{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=ge.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==Z.object){const u=this._getOrReturnCtx(t);return V(u,{code:H.invalid_type,expected:Z.object,received:u.parsedType}),J}const{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof zt&&this._def.unknownKeys==="strip"))for(const u in s.data)i.includes(u)||a.push(u);const c=[];for(const u of i){const f=o[u],l=s.data[u];c.push({key:{status:"valid",value:u},value:f._parse(new Ct(s,l,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof zt){const u=this._def.unknownKeys;if(u==="passthrough")for(const f of a)c.push({key:{status:"valid",value:f},value:{status:"valid",value:s.data[f]}});else if(u==="strict")a.length>0&&(V(s,{code:H.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const f of a){const l=s.data[f];c.push({key:{status:"valid",value:f},value:u._parse(new Ct(s,l,s.path,f)),alwaysSet:f in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const f of c){const l=await f.key;u.push({key:l,value:await f.value,alwaysSet:f.alwaysSet})}return u}).then(u=>Fe.mergeObjectSync(r,u)):Fe.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return new Ae({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var s,o,i,a;const c=(i=(o=(s=this._def).errorMap)===null||o===void 0?void 0:o.call(s,n,r).message)!==null&&i!==void 0?i:r.defaultError;return n.code==="unrecognized_keys"?{message:(a=W.errToObj(t).message)!==null&&a!==void 0?a:c}:{message:c}}}:{}})}strip(){return new Ae({...this._def,unknownKeys:"strip"})}passthrough(){return new Ae({...this._def,unknownKeys:"passthrough"})}extend(t){return new Ae({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Ae({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:Y.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Ae({...this._def,catchall:t})}pick(t){const n={};return ge.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new Ae({...this._def,shape:()=>n})}omit(t){const n={};return ge.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new Ae({...this._def,shape:()=>n})}deepPartial(){return cr(this)}partial(t){const n={};return ge.objectKeys(this.shape).forEach(r=>{const s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}),new Ae({...this._def,shape:()=>n})}required(t){const n={};return ge.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Zt;)o=o._def.innerType;n[r]=o}}),new Ae({...this._def,shape:()=>n})}keyof(){return cd(ge.objectKeys(this.shape))}}Ae.create=(e,t)=>new Ae({shape:()=>e,unknownKeys:"strip",catchall:zt.create(),typeName:Y.ZodObject,...te(t)});Ae.strictCreate=(e,t)=>new Ae({shape:()=>e,unknownKeys:"strict",catchall:zt.create(),typeName:Y.ZodObject,...te(t)});Ae.lazycreate=(e,t)=>new Ae({shape:e,unknownKeys:"strip",catchall:zt.create(),typeName:Y.ZodObject,...te(t)});class ss extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(const a of o)if(a.result.status==="valid")return a.result;for(const a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(a=>new yt(a.ctx.common.issues));return V(n,{code:H.invalid_union,unionErrors:i}),J}if(n.common.async)return Promise.all(r.map(async o=>{const i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o;const i=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},f=c._parseSync({data:n.data,path:n.path,parent:u});if(f.status==="valid")return f;f.status==="dirty"&&!o&&(o={result:f,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(c=>new yt(c));return V(n,{code:H.invalid_union,unionErrors:a}),J}}get options(){return this._def.options}}ss.create=(e,t)=>new ss({options:e,typeName:Y.ZodUnion,...te(t)});const Qs=e=>e instanceof as?Qs(e.schema):e instanceof xt?Qs(e.innerType()):e instanceof cs?[e.value]:e instanceof kn?e.options:e instanceof us?Object.keys(e.enum):e instanceof fs?Qs(e._def.innerType):e instanceof ns?[void 0]:e instanceof rs?[null]:null;class Vo extends se{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.object)return V(n,{code:H.invalid_type,expected:Z.object,received:n.parsedType}),J;const r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(V(n,{code:H.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),J)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const s=new Map;for(const o of n){const i=Qs(o.shape[t]);if(!i)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new Vo({typeName:Y.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...te(r)})}}function na(e,t){const n=hn(e),r=hn(t);if(e===t)return{valid:!0,data:e};if(n===Z.object&&r===Z.object){const s=ge.objectKeys(t),o=ge.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(const a of o){const c=na(e[a],t[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(n===Z.array&&r===Z.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let o=0;o{if(ea(o)||ea(i))return J;const a=na(o.value,i.value);return a.valid?((ta(o)||ta(i))&&n.dirty(),{status:n.value,value:a.data}):(V(r,{code:H.invalid_intersection_types}),J)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}os.create=(e,t,n)=>new os({left:e,right:t,typeName:Y.ZodIntersection,...te(n)});class Pt extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.array)return V(r,{code:H.invalid_type,expected:Z.array,received:r.parsedType}),J;if(r.data.lengththis._def.items.length&&(V(r,{code:H.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((i,a)=>{const c=this._def.items[a]||this._def.rest;return c?c._parse(new Ct(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>Fe.mergeArray(n,i)):Fe.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new Pt({...this._def,rest:t})}}Pt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Pt({items:e,typeName:Y.ZodTuple,rest:null,...te(t)})};class is extends se{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.object)return V(r,{code:H.invalid_type,expected:Z.object,received:r.parsedType}),J;const s=[],o=this._def.keyType,i=this._def.valueType;for(const a in r.data)s.push({key:o._parse(new Ct(r,a,r.path,a)),value:i._parse(new Ct(r,r.data[a],r.path,a))});return r.common.async?Fe.mergeObjectAsync(n,s):Fe.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof se?new is({keyType:t,valueType:n,typeName:Y.ZodRecord,...te(r)}):new is({keyType:pt.create(),valueType:t,typeName:Y.ZodRecord,...te(n)})}}class bo extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.map)return V(r,{code:H.invalid_type,expected:Z.map,received:r.parsedType}),J;const s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,c],u)=>({key:s._parse(new Ct(r,a,r.path,[u,"key"])),value:o._parse(new Ct(r,c,r.path,[u,"value"]))}));if(r.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const c of i){const u=await c.key,f=await c.value;if(u.status==="aborted"||f.status==="aborted")return J;(u.status==="dirty"||f.status==="dirty")&&n.dirty(),a.set(u.value,f.value)}return{status:n.value,value:a}})}else{const a=new Map;for(const c of i){const u=c.key,f=c.value;if(u.status==="aborted"||f.status==="aborted")return J;(u.status==="dirty"||f.status==="dirty")&&n.dirty(),a.set(u.value,f.value)}return{status:n.value,value:a}}}}bo.create=(e,t,n)=>new bo({valueType:t,keyType:e,typeName:Y.ZodMap,...te(n)});class qn extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==Z.set)return V(r,{code:H.invalid_type,expected:Z.set,received:r.parsedType}),J;const s=this._def;s.minSize!==null&&r.data.sizes.maxSize.value&&(V(r,{code:H.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());const o=this._def.valueType;function i(c){const u=new Set;for(const f of c){if(f.status==="aborted")return J;f.status==="dirty"&&n.dirty(),u.add(f.value)}return{status:n.value,value:u}}const a=[...r.data.values()].map((c,u)=>o._parse(new Ct(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(t,n){return new qn({...this._def,minSize:{value:t,message:W.toString(n)}})}max(t,n){return new qn({...this._def,maxSize:{value:t,message:W.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}qn.create=(e,t)=>new qn({valueType:e,minSize:null,maxSize:null,typeName:Y.ZodSet,...te(t)});class dr extends se{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.function)return V(n,{code:H.invalid_type,expected:Z.function,received:n.parsedType}),J;function r(a,c){return ho({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,lo(),es].filter(u=>!!u),issueData:{code:H.invalid_arguments,argumentsError:c}})}function s(a,c){return ho({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,lo(),es].filter(u=>!!u),issueData:{code:H.invalid_return_type,returnTypeError:c}})}const o={errorMap:n.common.contextualErrorMap},i=n.data;return this._def.returns instanceof Er?Je(async(...a)=>{const c=new yt([]),u=await this._def.args.parseAsync(a,o).catch(d=>{throw c.addIssue(r(a,d)),c}),f=await i(...u);return await this._def.returns._def.type.parseAsync(f,o).catch(d=>{throw c.addIssue(s(f,d)),c})}):Je((...a)=>{const c=this._def.args.safeParse(a,o);if(!c.success)throw new yt([r(a,c.error)]);const u=i(...c.data),f=this._def.returns.safeParse(u,o);if(!f.success)throw new yt([s(u,f.error)]);return f.data})}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new dr({...this._def,args:Pt.create(t).rest(Dn.create())})}returns(t){return new dr({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new dr({args:t||Pt.create([]).rest(Dn.create()),returns:n||Dn.create(),typeName:Y.ZodFunction,...te(r)})}}class as extends se{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}as.create=(e,t)=>new as({getter:e,typeName:Y.ZodLazy,...te(t)});class cs extends se{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return V(n,{received:n.data,code:H.invalid_literal,expected:this._def.value}),J}return{status:"valid",value:t.data}}get value(){return this._def.value}}cs.create=(e,t)=>new cs({value:e,typeName:Y.ZodLiteral,...te(t)});function cd(e,t){return new kn({values:e,typeName:Y.ZodEnum,...te(t)})}class kn extends se{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{expected:ge.joinValues(r),received:n.parsedType,code:H.invalid_type}),J}if(this._def.values.indexOf(t.data)===-1){const n=this._getOrReturnCtx(t),r=this._def.values;return V(n,{received:n.data,code:H.invalid_enum_value,options:r}),J}return Je(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t){return kn.create(t)}exclude(t){return kn.create(this.options.filter(n=>!t.includes(n)))}}kn.create=cd;class us extends se{_parse(t){const n=ge.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==Z.string&&r.parsedType!==Z.number){const s=ge.objectValues(n);return V(r,{expected:ge.joinValues(s),received:r.parsedType,code:H.invalid_type}),J}if(n.indexOf(t.data)===-1){const s=ge.objectValues(n);return V(r,{received:r.data,code:H.invalid_enum_value,options:s}),J}return Je(t.data)}get enum(){return this._def.values}}us.create=(e,t)=>new us({values:e,typeName:Y.ZodNativeEnum,...te(t)});class Er extends se{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==Z.promise&&n.common.async===!1)return V(n,{code:H.invalid_type,expected:Z.promise,received:n.parsedType}),J;const r=n.parsedType===Z.promise?n.data:Promise.resolve(n.data);return Je(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Er.create=(e,t)=>new Er({type:e,typeName:Y.ZodPromise,...te(t)});class xt extends se{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Y.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null;if(s.type==="preprocess"){const i=s.transform(r.data);return r.common.async?Promise.resolve(i).then(a=>this._def.schema._parseAsync({data:a,path:r.path,parent:r})):this._def.schema._parseSync({data:i,path:r.path,parent:r})}const o={addIssue:i=>{V(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="refinement"){const i=a=>{const c=s.refinement(a,o);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?J:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?J:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){const i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!po(i))return i;const a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>po(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):i);ge.assertNever(s)}}xt.create=(e,t,n)=>new xt({schema:e,typeName:Y.ZodEffects,effect:t,...te(n)});xt.createWithPreprocess=(e,t,n)=>new xt({schema:t,effect:{type:"preprocess",transform:e},typeName:Y.ZodEffects,...te(n)});class Zt extends se{_parse(t){return this._getType(t)===Z.undefined?Je(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Zt.create=(e,t)=>new Zt({innerType:e,typeName:Y.ZodOptional,...te(t)});class zn extends se{_parse(t){return this._getType(t)===Z.null?Je(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}zn.create=(e,t)=>new zn({innerType:e,typeName:Y.ZodNullable,...te(t)});class fs extends se{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===Z.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}fs.create=(e,t)=>new fs({innerType:e,typeName:Y.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...te(t)});class wo extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return go(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new yt(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new yt(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}wo.create=(e,t)=>new wo({innerType:e,typeName:Y.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...te(t)});class xo extends se{_parse(t){if(this._getType(t)!==Z.nan){const r=this._getOrReturnCtx(t);return V(r,{code:H.invalid_type,expected:Z.nan,received:r.parsedType}),J}return{status:"valid",value:t.data}}}xo.create=e=>new xo({typeName:Y.ZodNaN,...te(e)});const x1=Symbol("zod_brand");class ud extends se{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class xs extends se{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?J:o.status==="dirty"?(n.dirty(),ad(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?J:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new xs({in:t,out:n,typeName:Y.ZodPipeline})}}const fd=(e,t={},n)=>e?vr.create().superRefine((r,s)=>{var o,i;if(!e(r)){const a=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,c=(i=(o=a.fatal)!==null&&o!==void 0?o:n)!==null&&i!==void 0?i:!0,u=typeof a=="string"?{message:a}:a;s.addIssue({code:"custom",...u,fatal:c})}}):vr.create(),v1={object:Ae.lazycreate};var Y;(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"})(Y||(Y={}));const E1=(e,t={message:`Input not instance of ${e.name}`})=>fd(n=>n instanceof e,t),ld=pt.create,dd=vn.create,k1=xo.create,S1=En.create,hd=ts.create,$1=Vn.create,_1=mo.create,A1=ns.create,B1=rs.create,T1=vr.create,I1=Dn.create,O1=zt.create,C1=yo.create,P1=bt.create,U1=Ae.create,N1=Ae.strictCreate,L1=ss.create,R1=Vo.create,H1=os.create,j1=Pt.create,K1=is.create,D1=bo.create,M1=qn.create,Z1=dr.create,V1=as.create,q1=cs.create,z1=kn.create,F1=us.create,W1=Er.create,lu=xt.create,G1=Zt.create,Y1=zn.create,X1=xt.createWithPreprocess,J1=xs.create,Q1=()=>ld().optional(),ex=()=>dd().optional(),tx=()=>hd().optional(),nx={string:(e=>pt.create({...e,coerce:!0})),number:(e=>vn.create({...e,coerce:!0})),boolean:(e=>ts.create({...e,coerce:!0})),bigint:(e=>En.create({...e,coerce:!0})),date:(e=>Vn.create({...e,coerce:!0}))},rx=J;var Xe=Object.freeze({__proto__:null,defaultErrorMap:es,setErrorMap:a1,getErrorMap:lo,makeIssue:ho,EMPTY_PATH:c1,addIssueToContext:V,ParseStatus:Fe,INVALID:J,DIRTY:ad,OK:Je,isAborted:ea,isDirty:ta,isValid:po,isAsync:go,get util(){return ge},get objectUtil(){return Qi},ZodParsedType:Z,getParsedType:hn,ZodType:se,ZodString:pt,ZodNumber:vn,ZodBigInt:En,ZodBoolean:ts,ZodDate:Vn,ZodSymbol:mo,ZodUndefined:ns,ZodNull:rs,ZodAny:vr,ZodUnknown:Dn,ZodNever:zt,ZodVoid:yo,ZodArray:bt,ZodObject:Ae,ZodUnion:ss,ZodDiscriminatedUnion:Vo,ZodIntersection:os,ZodTuple:Pt,ZodRecord:is,ZodMap:bo,ZodSet:qn,ZodFunction:dr,ZodLazy:as,ZodLiteral:cs,ZodEnum:kn,ZodNativeEnum:us,ZodPromise:Er,ZodEffects:xt,ZodTransformer:xt,ZodOptional:Zt,ZodNullable:zn,ZodDefault:fs,ZodCatch:wo,ZodNaN:xo,BRAND:x1,ZodBranded:ud,ZodPipeline:xs,custom:fd,Schema:se,ZodSchema:se,late:v1,get ZodFirstPartyTypeKind(){return Y},coerce:nx,any:T1,array:P1,bigint:S1,boolean:hd,date:$1,discriminatedUnion:R1,effect:lu,enum:z1,function:Z1,instanceof:E1,intersection:H1,lazy:V1,literal:q1,map:D1,nan:k1,nativeEnum:F1,never:O1,null:B1,nullable:Y1,number:dd,object:U1,oboolean:tx,onumber:ex,optional:G1,ostring:Q1,pipeline:J1,preprocess:X1,promise:W1,record:K1,set:M1,strictObject:N1,string:ld,symbol:_1,transformer:lu,tuple:j1,undefined:A1,union:L1,unknown:I1,void:C1,NEVER:rx,ZodIssueCode:H,quotelessJson:i1,ZodError:yt});const pd=Xe.string().regex(/^[a-fA-F0-9]$/),sx=Xe.string().regex(/^[a-fA-F0-9]{64}$/),kr=Xe.number().min(0).max(4294967295),ox=Xe.bigint(),gd=Xe.instanceof(Uint8Array),ix=Xe.union([pd,kr,Xe.string(),gd]).array(),tc=Xe.union([ix,pd,gd]),ax=Xe.array(tc),md=Xe.object({value:Xe.union([kr,ox]),scriptPubKey:tc}),cx=Xe.object({txid:sx,vout:kr,scriptSig:tc,sequence:kr,prevout:md.optional(),witness:ax});Xe.object({version:kr,vin:Xe.array(cx),vout:Xe.array(md),locktime:kr});const ra=2048,ux=new TextEncoder;function yd(e){const t=[],n=(s,o)=>{if(o<24)t.push(s*32+o);else if(o<=255)t.push(s*32+24,o);else if(o<=65535)t.push(s*32+25,o>>>8,o&255);else if(o<=4294967295){const i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,o),t.push(s*32+26,...i)}else{t.push(s*32+27);const i=new Uint8Array(8);new DataView(i.buffer).setBigUint64(0,BigInt(o)),t.push(...i)}},r=(s,o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");if(s===null)t.push(246);else if(typeof s=="boolean")t.push(s?245:244);else if(typeof s=="number"&&Number.isFinite(s))if(Number.isSafeInteger(s)&&!Object.is(s,-0))n(s>=0?0:1,s>=0?s:-1-s);else{const i=new Uint8Array(8);new DataView(i.buffer).setFloat64(0,s),t.push(251,...i)}else if(typeof s=="string"){const i=ux.encode(s);n(3,i.length);for(const a of i)t.push(a)}else if(Array.isArray(s))n(4,s.length),s.forEach(i=>r(i,o+1));else if(typeof s=="object"&&Object.getPrototypeOf(s)===Object.prototype){const i=Object.entries(s);n(5,i.length);for(const[a,c]of i)r(a,o+1),r(c,o+1)}else throw new Error("Metadata must contain only JSON values.");if(t.length>ra)throw new Error(`Metadata must be at most ${ra} CBOR bytes.`)};return r(e),Uint8Array.from(t)}function fx(e){if(e=new Uint8Array(e),!e.length||e.length>ra)throw new Error("Invalid CBOR metadata size.");let t=0;const n=o=>{if(t+o>e.length)throw new Error("Truncated CBOR metadata.");const i=e.slice(t,t+o);return t+=o,i},r=(o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");const i=n(1)[0],a=i>>5,c=i&31;if(a===7){if(c===20)return!1;if(c===21)return!0;if(c===22)return null;if(c===27){const f=new DataView(n(8).buffer).getFloat64(0);if(Number.isFinite(f))return f}throw new Error("Unsupported CBOR value.")}let u=c;if(c>=24&&c<=27){u=0;for(const f of n(2**(c-24)))u=u*256+f}else if(c>=28)throw new Error("Unsupported CBOR length.");if(!Number.isSafeInteger(u))throw new Error("CBOR integer exceeds JSON precision.");if(a===0)return u;if(a===1)return-1-u;if(a===3)return new TextDecoder("utf-8",{fatal:!0}).decode(n(u));if((a===4||a===5)&&u>e.length)throw new Error("Invalid CBOR collection length.");if(a===4)return Array.from({length:u},()=>r(o+1));if(a===5){const f={};for(let l=0;l({txid:e,vout:t,sequence:4294967295,prevout:{value:n,scriptPubKey:r}}),Ke=(e,t)=>({value:e,scriptPubKey:t}),du=16*1024,Bt=1e3,de=500,vo="text/plain;charset=utf-8",lx=["text/plain","application/json","text/html","image/svg+xml","image/png","image/jpeg","image/webp"],bd=new TextEncoder,Wr=e=>Array.from(e,t=>t.toString(16).padStart(2,"0")).join(""),Cn=e=>Uint8Array.from(e.match(/../g)??[],t=>parseInt(t,16)),Eo=e=>Wr(bd.encode(e));function nc(e){const t=typeof e=="string"?{contentType:vo,bytes:bd.encode(e)}:e;if(!t||![...lx,vo].includes(t.contentType))throw new Error("Unsupported MIME type.");if(!(t.bytes instanceof Uint8Array)||!t.bytes.length)throw new Error("Enter non-empty inscription bytes.");if(t.bytes.length>du)throw new Error(`Body must be at most ${du} bytes.`);return{contentType:t.contentType,bytes:new Uint8Array(t.bytes)}}function ko(e){const t=/^([0-9a-f]{64})i(0|[1-9][0-9]*)$/.exec(e);if(!t||Number(t[2])>4294967295)throw new Error("Invalid parent inscription id.");let n=Number(t[2]),r="";for(;n;)r+=(n%256).toString(16).padStart(2,"0"),n=Math.floor(n/256);return t[1].match(/../g).reverse().join("")+r}function hu(e){if(typeof e!="string"||!/^[0-9a-f]{64,72}$/.test(e)||e.length%2)throw new Error("Invalid parent tag.");const t=[...Cn(e.slice(64))].reduce((r,s,o)=>r+s*256**o,0),n=`${e.slice(0,64).match(/../g).reverse().join("")}i${t}`;if(ko(n)!==e)throw new Error("Non-canonical parent tag.");return n}function wd(e,t,n=null,r=void 0,s={}){const{contentType:o,bytes:i}=nc(t),{delegate:a=null,pointer:c,metaprotocol:u=null}=s,f=u==null||u===""?null:new TextEncoder().encode(String(u));if(f&&f.length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");const l=r===void 0?void 0:yd(r),d=[];for(let h=0;h{const g=h.length/2;return(g<=75?g.toString(16).padStart(2,"0"):g<=255?"4c"+g.toString(16).padStart(2,"0"):"4d"+(g%256).toString(16).padStart(2,"0")+Math.floor(g/256).toString(16).padStart(2,"0"))+h};return p(e)+"ac0063"+p(Eo("ord"))+p("01")+p(Eo(o))+(a?p("0b")+p(ko(a)):"")+(c===void 0?"":p("02")+p(xd(c)))+(n?p("03")+p(ko(n)):"")+(l===void 0?"":Array.from({length:Math.ceil(l.length/520)},(h,g)=>p("05")+p(Wr(l.slice(g*520,(g+1)*520)))).join(""))+(f?p("07")+p(Wr(f)):"")+"00"+d.map(p).join("")+"68"}const dx=e=>Zo.tree.getLeaf(Be.encode(e,!0));function rc(e){if(!Array.isArray(e)||e.length!==3)throw new Error("Unsupported script-path witness.");const t=Be.decode(e[1]);let n=7,r=null,s=null,o;t[n]==="0b"&&(s=hu(t[n+1]),n+=2),t[n]==="02"&&(o=px(t[n+1]==="OP_0"?"":t[n+1]),n+=2),t[n]==="03"&&(r=hu(t[n+1]),n+=2);const i=[];for(;t[n]==="05";){const h=t[n+1];if(typeof h!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(h))throw new Error("Invalid metadata push.");i.push(h),n+=2}const a=i.length?fx(Cn(i.join(""))):void 0;let c=null;if(t[n]==="07"){const h=t[n+1];if(typeof h!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(h))throw new Error("Invalid metaprotocol field.");c=new TextDecoder().decode(Cn(h)),n+=2}if(t[n]!=="OP_0")throw new Error("Unsupported ord tag or missing body separator.");const u=t.slice(n+1,-1);if(!u.length||u.some(h=>typeof h!="string"||!/^(?:[0-9a-f]{2})+$/.test(h)))throw new Error("Invalid body envelope.");const f=new TextDecoder().decode(Cn(t[6])),l=nc({contentType:f,bytes:Cn(u.join(""))}),d=wd(t[0],l,r,a,{delegate:s,pointer:o,metaprotocol:c}),p=a===void 0&&!r&&f===vo&&l.bytes.length<=280&&Be.encode([t[0],"OP_CHECKSIG","OP_0","OP_IF",Eo("ord"),"01",Eo(vo),"OP_0",Wr(l.bytes),"OP_ENDIF"],!1).hex;if(d!==e[1]&&p!==e[1])throw new Error("Unsupported ord envelope.");if(!/^[0-9a-f]{64}$/.test(t[0]))throw new Error("Invalid inscription signing key.");return{...l,parent:r,delegate:s,pointer:o,metaprotocol:c,metadata:a,metadataBytes:i.length?Cn(i.join("")):void 0,text:new TextDecoder().decode(l.bytes),pubkey:t[0]}}class hx{constructor(t,n){this.chain=t,this.wallet=n}prepare(t,n=null,r=void 0,s={}){const o=nc(t);if(r!==void 0&&yd(r),s.delegate&&ko(s.delegate),s.pointer!==void 0&&xd(s.pointer),s.metaprotocol!==void 0&&s.metaprotocol!==null&&s.metaprotocol!==""&&new TextEncoder().encode(String(s.metaprotocol)).length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");if(n&&s.reinscribe)throw new Error("Choose parent or reinscription, not both.");const i=this.chain.coins(this.wallet.script),a=n?i.find(f=>{var l;return(l=f.inscriptions)==null?void 0:l.some(d=>d.id===n)}):null;if(n&&!a)throw new Error("Parent must be an owned, unspent inscription.");const c=s.reinscribe?i.find(f=>{var l;return(l=f.inscriptions)==null?void 0:l.some(d=>d.id===s.reinscribe)}):null;if(s.reinscribe&&!c)throw new Error("Reinscription must spend an owned sat.");const u=i.find(f=>!f.inscription&&f.value>=Bt+2*de+330);if(!u)throw new Error("Mine a block first to get spendable fake BTC.");return{...o,coin:u,parent:a,reinscribe:c,totalFee:de*2,postage:Bt}}inscribe(t,n=null,r=void 0,s={}){const{coin:o,parent:i,reinscribe:a,...c}=this.prepare(t,n,r,s),u=i??a,f=a==null?void 0:a.inscriptions.find(x=>x.id===s.reinscribe),l=f?this.chain.satLocation(f.sat).offset:s.pointer??(i?i.value:void 0),d=wd(this.wallet.pubkey,c,n,r,{...s,pointer:l}),p=dx(d),[h,g]=Zo.getPubKey(this.wallet.pubkey,{target:p}),m=ie.create({vin:[Vt(o.txid,o.vout,o.value,o.scriptPubKey)],vout:[Ke(Bt+de,["OP_1",h]),Ke(o.value-Bt-2*de,this.wallet.script)]});m.vin[0].witness=[this.wallet.sign(m)];const b=ie.util.getTxid(m),w=ie.create({vin:[...u?[Vt(u.txid,u.vout,u.value,u.scriptPubKey)]:[],Vt(b,0,Bt+de,["OP_1",h])],vout:[...u?[Ke(u.value,this.wallet.script)]:[],Ke(Bt,this.wallet.script)]}),y=u?1:0;return w.vin[y].witness=[this.wallet.sign(w,p,y),Be.encode(d,!1).hex,g],u&&(w.vin[0].witness=[this.wallet.sign(w)]),this.chain.submitPackage([ie.encode(m).hex,ie.encode(w).hex]),`${ie.util.getTxid(w)}i0`}list(){return this.chain.coins(this.wallet.script).flatMap(t=>t.inscriptions??[])}}function xd(e){let t;try{t=BigInt(e)}catch{throw new Error("Invalid pointer.")}if(t<0n||t>0xffffffffffffffffn||typeof e=="number"&&!Number.isSafeInteger(e))throw new Error("Invalid pointer.");let n="";for(;t;)n+=Number(t&255n).toString(16).padStart(2,"0"),t>>=8n;return n}function px(e){if(typeof e!="string"||!/^(?:[0-9a-f]{2}){0,8}$/.test(e))throw new Error("Invalid pointer tag.");return[...Cn(e)].reduce((t,n,r)=>t+(BigInt(n)<this.utxos.set(`${r.txid}:${r.vout}`,{txid:r.txid,vout:r.vout,value:r.value,ranges:uf(s,r.value)}));const n=(r,s,o)=>{var b;const i=ie.decode(r),a=ie.util.getTxid(i),c=i.vin[0].txid==="0".repeat(64),u=c?[]:i.vin.map(w=>this.utxos.get(`${w.txid}:${w.vout}`)),f=df(i,u,s,c);i.vin.forEach(w=>this.utxos.delete(`${w.txid}:${w.vout}`)),i.vout.forEach((w,y)=>this.utxos.set(`${a}:${y}`,{txid:a,vout:y,value:Number(w.value),ranges:f[y]}));const l=(b=i.vin.find(w=>{var y;return((y=w.witness)==null?void 0:y.length)===3}))==null?void 0:b.witness;if(!l)return;const d=rc(l),p=BigInt(d.pointer??0),h=i.vout.reduce((w,y)=>w+Number(y.value),0),g=lf(f.flat(),pw.sat===g).length,status:s===null?"pending":"confirmed",height:s,block:o,metadata:m??null,hasMetadata:m!==void 0,parent:d.parent,protocol:d.metaprotocol??(m&&!Array.isArray(m)&&typeof m=="object"&&Object.hasOwn(m,"protocol")&&typeof m.protocol=="string"?m.protocol:null)})};for(const r of t.blocks)for(const s of r.raws)n(s,r.height,r.hash);for(const r of t.mempool)n(r,null,null);for(const r of this.events){r.location=null;for(const s of this.utxos.values()){const o=Xs(s.ranges,r.sat);if(o!==null){r.location={txid:s.txid,vout:s.vout,offset:o};break}}r.delegatedBy=this.events.filter(s=>s.delegate===r.id).map(s=>s.id),r.inscriptions=this.events.filter(s=>s.sat===r.sat).map(s=>s.id)}}forProtocol(t){return this.events.filter(n=>n.protocol===t)}get protocols(){return[...new Set(this.events.filter(t=>t.protocol!==null).map(t=>t.protocol))].sort()}get stats(){return{events:this.events.length,withMetadata:this.events.filter(t=>t.hasMetadata).length,confirmed:this.events.filter(t=>t.status==="confirmed").length,pending:this.events.filter(t=>t.status==="pending").length,protocols:this.protocols}}}const rr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Es(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function It(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function He(e,...t){if(!Es(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 ks(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");It(e.outputLen),It(e.blockLen)}function Sr(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 vd(e,t){He(e);const n=t.outputLen;if(e.length>>t}function Ls(e,t){return e<>>32-t>>>0}const mx=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function yx(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function bx(e){for(let t=0;te:bx,Ed=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",wx=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Se(e){if(He(e),Ed)return e.toHex();let t="";for(let n=0;n=jt._0&&e<=jt._9)return e-jt._0;if(e>=jt.A&&e<=jt.F)return e-(jt.A-10);if(e>=jt.a&&e<=jt.f)return e-(jt.a-10)}function ut(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Ed)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 s=0,o=0;se().update($r(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function er(e=32){if(rr&&typeof rr.getRandomValues=="function")return rr.getRandomValues(new Uint8Array(e));if(rr&&typeof rr.randomBytes=="function")return Uint8Array.from(rr.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function vx(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}function Ex(e,t,n){return e&t^~e&n}function kx(e,t,n){return e&t^e&n^t&n}class oc extends sc{constructor(t,n,r,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Mn(this.buffer)}update(t){Sr(this),t=$r(t),He(t);const{view:n,buffer:r,blockLen:s}=this,o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let l=i;lf.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l>yu&Rs)}:{h:Number(e>>yu&Rs)|0,l:Number(e&Rs)|0}}function kd(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;oe>>>n,wu=(e,t,n)=>e<<32-n|t>>>n,sr=(e,t,n)=>e>>>n|t<<32-n,or=(e,t,n)=>e<<32-n|t>>>n,Hs=(e,t,n)=>e<<64-n|t>>>n-32,js=(e,t,n)=>e>>>n-32|t<<64-n,$x=(e,t,n)=>e<>>32-n,_x=(e,t,n)=>t<>>32-n,Ax=(e,t,n)=>t<>>64-n,Bx=(e,t,n)=>e<>>64-n;function Kt(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const Tx=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),Ix=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Ox=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),Cx=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,Px=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),Ux=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,Nx=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]),an=new Uint32Array(64);class Lx extends oc{constructor(t=32){super(64,t,8,!1),this.A=on[0]|0,this.B=on[1]|0,this.C=on[2]|0,this.D=on[3]|0,this.E=on[4]|0,this.F=on[5]|0,this.G=on[6]|0,this.H=on[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let l=0;l<16;l++,n+=4)an[l]=t.getUint32(n,!1);for(let l=16;l<64;l++){const d=an[l-15],p=an[l-2],h=At(d,7)^At(d,18)^d>>>3,g=At(p,17)^At(p,19)^p>>>10;an[l]=g+an[l-7]+h+an[l-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){const d=At(a,6)^At(a,11)^At(a,25),p=f+d+Ex(a,c,u)+Nx[l]+an[l]|0,g=(At(r,2)^At(r,13)^At(r,22))+kx(r,s,o)|0;f=u,u=c,c=a,a=i+p|0,i=o,o=s,s=r,r=p+g|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(r,s,o,i,a,c,u,f)}roundClean(){ct(an)}destroy(){this.set(0,0,0,0,0,0,0,0),ct(this.buffer)}}const Sd=kd(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Rx=Sd[0],Hx=Sd[1],cn=new Uint32Array(80),un=new Uint32Array(80);class jx extends oc{constructor(t=64){super(128,t,16,!1),this.Ah=Ve[0]|0,this.Al=Ve[1]|0,this.Bh=Ve[2]|0,this.Bl=Ve[3]|0,this.Ch=Ve[4]|0,this.Cl=Ve[5]|0,this.Dh=Ve[6]|0,this.Dl=Ve[7]|0,this.Eh=Ve[8]|0,this.El=Ve[9]|0,this.Fh=Ve[10]|0,this.Fl=Ve[11]|0,this.Gh=Ve[12]|0,this.Gl=Ve[13]|0,this.Hh=Ve[14]|0,this.Hl=Ve[15]|0}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:d,Gh:p,Gl:h,Hh:g,Hl:m}=this;return[t,n,r,s,o,i,a,c,u,f,l,d,p,h,g,m]}set(t,n,r,s,o,i,a,c,u,f,l,d,p,h,g,m){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=g|0,this.Hl=m|0}process(t,n){for(let y=0;y<16;y++,n+=4)cn[y]=t.getUint32(n),un[y]=t.getUint32(n+=4);for(let y=16;y<80;y++){const x=cn[y-15]|0,$=un[y-15]|0,E=sr(x,$,1)^sr(x,$,8)^bu(x,$,7),I=or(x,$,1)^or(x,$,8)^wu(x,$,7),P=cn[y-2]|0,B=un[y-2]|0,U=sr(P,B,19)^Hs(P,B,61)^bu(P,B,6),L=or(P,B,19)^js(P,B,61)^wu(P,B,6),D=Ox(I,L,un[y-7],un[y-16]),k=Cx(D,E,U,cn[y-7],cn[y-16]);cn[y]=k|0,un[y]=D|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:d,Fh:p,Fl:h,Gh:g,Gl:m,Hh:b,Hl:w}=this;for(let y=0;y<80;y++){const x=sr(l,d,14)^sr(l,d,18)^Hs(l,d,41),$=or(l,d,14)^or(l,d,18)^js(l,d,41),E=l&p^~l&g,I=d&h^~d&m,P=Px(w,$,I,Hx[y],un[y]),B=Ux(P,b,x,E,Rx[y],cn[y]),U=P|0,L=sr(r,s,28)^Hs(r,s,34)^Hs(r,s,39),D=or(r,s,28)^js(r,s,34)^js(r,s,39),k=r&o^r&a^o&a,_=s&i^s&c^i&c;b=g|0,w=m|0,g=p|0,m=h|0,p=l|0,h=d|0,{h:l,l:d}=Kt(u|0,f|0,B|0,U|0),u=a|0,f=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const v=Tx(U,D,_);r=Ix(v,B,L,k),s=v|0}({h:r,l:s}=Kt(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=Kt(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=Kt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Kt(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:d}=Kt(this.Eh|0,this.El|0,l|0,d|0),{h:p,l:h}=Kt(this.Fh|0,this.Fl|0,p|0,h|0),{h:g,l:m}=Kt(this.Gh|0,this.Gl|0,g|0,m|0),{h:b,l:w}=Kt(this.Hh|0,this.Hl|0,b|0,w|0),this.set(r,s,o,i,a,c,u,f,l,d,p,h,g,m,b,w)}roundClean(){ct(cn,un)}destroy(){ct(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const xe=qo(()=>new Lx),ls=qo(()=>new jx);class $d extends sc{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,ks(t);const r=$r(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew $d(e,t).update(n).digest();Sn.create=(e,t)=>new $d(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ic=BigInt(0),sa=BigInt(1);function Fn(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}"`;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function gt(e,t,n=""){const r=Es(e),s=e==null?void 0:e.length,o=t!==void 0;if(!r||o&&s!==t){const i=n&&`"${n}" `,a=o?` of length ${t}`:"",c=r?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function Ks(e){const t=e.toString(16);return t.length&1?"0"+t:t}function _d(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?ic:BigInt("0x"+e)}function tr(e){return _d(Se(e))}function Wn(e){return He(e),_d(Se(Uint8Array.from(e).reverse()))}function zo(e,t){return ut(e.toString(16).padStart(t*2,"0"))}function ac(e,t){return zo(e,t).reverse()}function me(e,t,n){let r;if(typeof t=="string")try{r=ut(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(Es(t))r=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return r}function xu(e){return Uint8Array.from(e)}const bi=e=>typeof e=="bigint"&&ic<=e;function oa(e,t,n){return bi(e)&&bi(t)&&bi(n)&&t<=e&&eic;e>>=sa,t+=1);return t}const Ss=e=>(sa<new Uint8Array(p),s=p=>Uint8Array.of(p);let o=r(e),i=r(e),a=0;const c=()=>{o.fill(1),i.fill(0),a=0},u=(...p)=>n(i,o,...p),f=(p=r(0))=>{i=u(s(0),p),o=u(),p.length!==0&&(i=u(s(1),p),o=u())},l=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let p=0;const h=[];for(;p{c(),f(p);let g;for(;!(g=h(l()));)f();return c(),g}}function Ur(e,t,n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function r(s,o,i){const a=e[s];if(i&&a===void 0)return;const c=typeof a;if(c!==o||a===null)throw new Error(`param "${s}" is invalid: expected ${o}, got ${c}`)}Object.entries(t).forEach(([s,o])=>r(s,o,!1)),Object.entries(n).forEach(([s,o])=>r(s,o,!0))}function So(e){const t=new WeakMap;return(n,...r)=>{const s=t.get(n);if(s!==void 0)return s;const o=e(n,...r);return t.set(n,o),o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const et=BigInt(0),Ze=BigInt(1),Rn=BigInt(2),Bd=BigInt(3),Td=BigInt(4),Id=BigInt(5),Dx=BigInt(7),Od=BigInt(8),Mx=BigInt(9),Cd=BigInt(16);function Ee(e,t){const n=e%t;return n>=et?n:t+n}function _e(e,t,n){let r=e;for(;t-- >et;)r*=r,r%=n;return r}function vu(e,t){if(e===et)throw new Error("invert: expected non-zero number");if(t<=et)throw new Error("invert: expected positive modulus, got "+t);let n=Ee(e,t),r=t,s=et,o=Ze;for(;n!==et;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Ze)throw new Error("invert: does not exist");return Ee(s,t)}function cc(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Pd(e,t){const n=(e.ORDER+Ze)/Td,r=e.pow(t,n);return cc(e,r,t),r}function Zx(e,t){const n=(e.ORDER-Id)/Od,r=e.mul(t,Rn),s=e.pow(r,n),o=e.mul(t,s),i=e.mul(e.mul(o,Rn),s),a=e.mul(o,e.sub(i,e.ONE));return cc(e,a,t),a}function Vx(e){const t=nr(e),n=Ud(e),r=n(t,t.neg(t.ONE)),s=n(t,r),o=n(t,t.neg(r)),i=(e+Dx)/Cd;return(a,c)=>{let u=a.pow(c,i),f=a.mul(u,r);const l=a.mul(u,s),d=a.mul(u,o),p=a.eql(a.sqr(f),c),h=a.eql(a.sqr(l),c);u=a.cmov(u,f,p),f=a.cmov(d,l,h);const g=a.eql(a.sqr(f),c),m=a.cmov(u,f,g);return cc(a,m,c),m}}function Ud(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Pd;let o=s.pow(r,t);const i=(t+Ze)/Rn;return function(c,u){if(c.is0(u))return u;if(Eu(c,u)!==1)throw new Error("Cannot find square root");let f=n,l=c.mul(c.ONE,o),d=c.pow(u,t),p=c.pow(u,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let h=1,g=c.sqr(d);for(;!c.eql(g,c.ONE);)if(h++,g=c.sqr(g),h===f)throw new Error("Cannot find square root");const m=Ze<(Ee(e,t)&Ze)===Ze,Fx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Wx(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=Fx.reduce((r,s)=>(r[s]="function",r),t);return Ur(e,n),e}function Gx(e,t,n){if(net;)n&Ze&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Ze;return r}function Nd(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(r[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(r[c]=e.mul(i,r[c]),e.mul(i,a)),o),r}function Eu(e,t){const n=(e.ORDER-Ze)/Rn,r=e.pow(t,n),s=e.eql(r,e.ONE),o=e.eql(r,e.ZERO),i=e.eql(r,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function Ld(e,t){t!==void 0&&It(t);const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function nr(e,t,n=!1,r={}){if(e<=et)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=t;d.BITS&&(s=d.BITS),d.sqrt&&(o=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(i=d.modFromBytes),a=d.allowedLengths}else typeof t=="number"&&(s=t),r.sqrt&&(o=r.sqrt);const{nBitLength:c,nByteLength:u}=Ld(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const l=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:u,MASK:Ss(c),ZERO:et,ONE:Ze,allowedLengths:a,create:d=>Ee(d,e),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return et<=d&&dd===et,isValidNot0:d=>!l.is0(d)&&l.isValid(d),isOdd:d=>(d&Ze)===Ze,neg:d=>Ee(-d,e),eql:(d,p)=>d===p,sqr:d=>Ee(d*d,e),add:(d,p)=>Ee(d+p,e),sub:(d,p)=>Ee(d-p,e),mul:(d,p)=>Ee(d*p,e),pow:(d,p)=>Gx(l,d,p),div:(d,p)=>Ee(d*vu(p,e),e),sqrN:d=>d*d,addN:(d,p)=>d+p,subN:(d,p)=>d-p,mulN:(d,p)=>d*p,inv:d=>vu(d,e),sqrt:o||(d=>(f||(f=qx(e)),f(l,d))),toBytes:d=>n?ac(d,u):zo(d,u),fromBytes:(d,p=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const g=new Uint8Array(u);g.set(d,n?0:g.length-d.length),d=g}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let h=n?Wn(d):tr(d);if(i&&(h=Ee(h,e)),!p&&!l.isValid(h))throw new Error("invalid field element: outside of range 0..ORDER");return h},invertBatch:d=>Nd(l,d),cmov:(d,p,h)=>h?p:d});return Object.freeze(l)}function Rd(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Hd(e){const t=Rd(e);return t+Math.ceil(t/2)}function jd(e,t,n=!1){const r=e.length,s=Rd(t),o=Hd(t);if(r<16||r1024)throw new Error("expected "+o+"-1024 bytes of input, got "+r);const i=n?Wn(e):tr(e),a=Ee(i,t-Ze)+Ze;return n?ac(a,s):zo(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _r=BigInt(0),Hn=BigInt(1);function $o(e,t){const n=t.negate();return e?n:t}function jn(e,t){const n=Nd(e.Fp,t.map(r=>r.Z));return t.map((r,s)=>e.fromAffine(r.toAffine(n[s])))}function Kd(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function wi(e,t){Kd(e,t);const n=Math.ceil(t/e)+1,r=2**(e-1),s=2**e,o=Ss(e),i=BigInt(e);return{windows:n,windowSize:r,mask:o,maxNumber:s,shiftBy:i}}function ku(e,t,n){const{windowSize:r,mask:s,maxNumber:o,shiftBy:i}=n;let a=Number(e&s),c=e>>i;a>r&&(a-=o,c+=Hn);const u=t*r,f=u+Math.abs(a)-1,l=a===0,d=a<0,p=t%2!==0;return{nextN:c,offset:f,isZero:l,isNeg:d,isNegF:p,offsetF:u}}function Yx(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((n,r)=>{if(!(n instanceof t))throw new Error("invalid point at index "+r)})}function Xx(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((n,r)=>{if(!t.isValid(n))throw new Error("invalid scalar at index "+r)})}const xi=new WeakMap,Dd=new WeakMap;function vi(e){return Dd.get(e)||1}function Su(e){if(e!==_r)throw new Error("invalid wNAF")}class Md{constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,r=this.ZERO){let s=t;for(;n>_r;)n&Hn&&(r=r.add(s)),s=s.double(),n>>=Hn;return r}precomputeWindow(t,n){const{windows:r,windowSize:s}=wi(n,this.bits),o=[];let i=t,a=i;for(let c=0;c_r||r>_r;)n&Hn&&(o=o.add(s)),r&Hn&&(i=i.add(s)),s=s.double(),n>>=Hn,r>>=Hn;return{p1:o,p2:i}}function Zd(e,t,n,r){Yx(n,e),Xx(r,t);const s=n.length,o=r.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");const i=e.ZERO,a=Ad(BigInt(s));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Ss(c),f=new Array(Number(u)+1).fill(i),l=Math.floor((t.BITS-1)/c)*c;let d=i;for(let p=l;p>=0;p-=c){f.fill(i);for(let g=0;g>BigInt(p)&u);f[b]=f[b].add(n[g])}let h=i;for(let g=f.length-1,m=i;g>0;g--)m=m.add(f[g]),h=h.add(m);if(d=d.add(h),p!==0)for(let g=0;g_r))throw new Error(`CURVE.${c} must be positive bigint`)}const s=$u(t.p,n.Fp,r),o=$u(t.n,n.Fn,r),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(const c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _u=(e,t)=>(e+(e>=0?t:-t)/qd)/t;function Qx(e,t,n){const[[r,s],[o,i]]=t,a=_u(i*e,n),c=_u(-s*e,n);let u=e-a*r-c*o,f=-a*s-c*i;const l=u=p||f=p)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:l,k1:u,k2neg:d,k2:f}}function ia(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Ei(e,t){const n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return Fn(n.lowS,"lowS"),Fn(n.prehash,"prehash"),n.format!==void 0&&ia(n.format),n}class e2 extends Error{constructor(t=""){super(t)}}const Dt={Err:e2,_tlv:{encode:(e,t)=>{const{Err:n}=Dt;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const r=t.length/2,s=Ks(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const o=r>127?Ks(s.length/2|128):"";return Ks(e)+o+s+t},decode(e,t){const{Err:n}=Dt;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 s=t[r++],o=!!(s&128);let i=0;if(!o)i=s;else{const c=s&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=t.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)i=i<<8|f;if(r+=c,i<128)throw new n("tlv.decode(long): not minimal encoding")}const a=t.subarray(r,r+i);if(a.length!==i)throw new n("tlv.decode: wrong value length");return{v:a,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=Dt;if(e{const{X:_,Y:v,Z:A}=D;if(r.eql(A,r.ONE))return{x:_,y:v};const C=D.is0();k==null&&(k=C?r.ONE:r.inv(A));const R=r.mul(_,k),N=r.mul(v,k),j=r.mul(A,k);if(C)return{x:r.ZERO,y:r.ZERO};if(!r.eql(j,r.ONE))throw new Error("invZ was invalid");return{x:R,y:N}}),I=So(D=>{if(D.is0()){if(t.allowInfinityPoint&&!r.is0(D.Y))return;throw new Error("bad point: ZERO")}const{x:k,y:_}=D.toAffine();if(!r.isValid(k)||!r.isValid(_))throw new Error("bad point: x or y not field elements");if(!m(k,_))throw new Error("bad point: equation left != right");if(!D.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function P(D,k,_,v,A){return _=new B(r.mul(_.X,D),_.Y,_.Z),k=$o(v,k),_=$o(A,_),k.add(_)}class B{constructor(k,_,v){this.X=y("x",k),this.Y=y("y",_,!0),this.Z=y("z",v),Object.freeze(this)}static CURVE(){return o}static fromAffine(k){const{x:_,y:v}=k||{};if(!k||!r.isValid(_)||!r.isValid(v))throw new Error("invalid affine point");if(k instanceof B)throw new Error("projective point not allowed");return r.is0(_)&&r.is0(v)?B.ZERO:new B(_,v,r.ONE)}static fromBytes(k){const _=B.fromAffine(h(gt(k,void 0,"point")));return _.assertValidity(),_}static fromHex(k){return B.fromBytes(me("pointHex",k))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(k=8,_=!0){return L.createCache(this,k),_||this.multiply(Ds),this}assertValidity(){I(this)}hasEvenY(){const{y:k}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(k)}equals(k){x(k);const{X:_,Y:v,Z:A}=this,{X:C,Y:R,Z:N}=k,j=r.eql(r.mul(_,N),r.mul(C,A)),M=r.eql(r.mul(v,N),r.mul(R,A));return j&&M}negate(){return new B(this.X,r.neg(this.Y),this.Z)}double(){const{a:k,b:_}=o,v=r.mul(_,Ds),{X:A,Y:C,Z:R}=this;let N=r.ZERO,j=r.ZERO,M=r.ZERO,F=r.mul(A,A),ue=r.mul(C,C),oe=r.mul(R,R),Q=r.mul(A,C);return Q=r.add(Q,Q),M=r.mul(A,R),M=r.add(M,M),N=r.mul(k,M),j=r.mul(v,oe),j=r.add(N,j),N=r.sub(ue,j),j=r.add(ue,j),j=r.mul(N,j),N=r.mul(Q,N),M=r.mul(v,M),oe=r.mul(k,oe),Q=r.sub(F,oe),Q=r.mul(k,Q),Q=r.add(Q,M),M=r.add(F,F),F=r.add(M,F),F=r.add(F,oe),F=r.mul(F,Q),j=r.add(j,F),oe=r.mul(C,R),oe=r.add(oe,oe),F=r.mul(oe,Q),N=r.sub(N,F),M=r.mul(oe,ue),M=r.add(M,M),M=r.add(M,M),new B(N,j,M)}add(k){x(k);const{X:_,Y:v,Z:A}=this,{X:C,Y:R,Z:N}=k;let j=r.ZERO,M=r.ZERO,F=r.ZERO;const ue=o.a,oe=r.mul(o.b,Ds);let Q=r.mul(_,C),he=r.mul(v,R),pe=r.mul(A,N),Ie=r.add(_,v),fe=r.add(C,R);Ie=r.mul(Ie,fe),fe=r.add(Q,he),Ie=r.sub(Ie,fe),fe=r.add(_,A);let we=r.add(C,N);return fe=r.mul(fe,we),we=r.add(Q,pe),fe=r.sub(fe,we),we=r.add(v,A),j=r.add(R,N),we=r.mul(we,j),j=r.add(he,pe),we=r.sub(we,j),F=r.mul(ue,fe),j=r.mul(oe,pe),F=r.add(j,F),j=r.sub(he,F),F=r.add(he,F),M=r.mul(j,F),he=r.add(Q,Q),he=r.add(he,Q),pe=r.mul(ue,pe),fe=r.mul(oe,fe),he=r.add(he,pe),pe=r.sub(Q,pe),pe=r.mul(ue,pe),fe=r.add(fe,pe),Q=r.mul(he,fe),M=r.add(M,Q),Q=r.mul(we,fe),j=r.mul(Ie,j),j=r.sub(j,Q),Q=r.mul(Ie,he),F=r.mul(we,F),F=r.add(F,Q),new B(j,M,F)}subtract(k){return this.add(k.negate())}is0(){return this.equals(B.ZERO)}multiply(k){const{endo:_}=t;if(!s.isValidNot0(k))throw new Error("invalid scalar: out of range");let v,A;const C=R=>L.cached(this,R,N=>jn(B,N));if(_){const{k1neg:R,k1:N,k2neg:j,k2:M}=$(k),{p:F,f:ue}=C(N),{p:oe,f:Q}=C(M);A=ue.add(Q),v=P(_.beta,F,oe,R,j)}else{const{p:R,f:N}=C(k);v=R,A=N}return jn(B,[v,A])[0]}multiplyUnsafe(k){const{endo:_}=t,v=this;if(!s.isValid(k))throw new Error("invalid scalar: out of range");if(k===Mt||v.is0())return B.ZERO;if(k===hr)return v;if(L.hasCache(this))return this.multiply(k);if(_){const{k1neg:A,k1:C,k2neg:R,k2:N}=$(k),{p1:j,p2:M}=Jx(B,v,C,N);return P(_.beta,j,M,A,R)}else return L.unsafe(v,k)}multiplyAndAddUnsafe(k,_,v){const A=this.multiplyUnsafe(_).add(k.multiplyUnsafe(v));return A.is0()?void 0:A}toAffine(k){return E(this,k)}isTorsionFree(){const{isTorsionFree:k}=t;return i===hr?!0:k?k(B,this):L.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:k}=t;return i===hr?this:k?k(B,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(k=!0){return Fn(k,"isCompressed"),this.assertValidity(),p(B,this,k)}toHex(k=!0){return Se(this.toBytes(k))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(k=!0){return this.toBytes(k)}_setWindowSize(k){this.precompute(k)}static normalizeZ(k){return jn(B,k)}static msm(k,_){return Zd(B,s,k,_)}static fromPrivateKey(k){return B.BASE.multiply(Kn(s,k))}}B.BASE=new B(o.Gx,o.Gy,r.ONE),B.ZERO=new B(r.ZERO,r.ONE,r.ZERO),B.Fp=r,B.Fn=s;const U=s.BITS,L=new Md(B,t.endo?Math.ceil(U/2):U);return B.BASE.precompute(8),B}function zd(e){return Uint8Array.of(e?2:3)}function Fd(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function r2(e,t={}){const{Fn:n}=e,r=t.randomBytes||er,s=Object.assign(Fd(e.Fp,n),{seed:Hd(n.ORDER)});function o(p){try{return!!Kn(n,p)}catch{return!1}}function i(p,h){const{publicKey:g,publicKeyUncompressed:m}=s;try{const b=p.length;return h===!0&&b!==g||h===!1&&b!==m?!1:!!e.fromBytes(p)}catch{return!1}}function a(p=r(s.seed)){return jd(gt(p,s.seed,"seed"),n.ORDER)}function c(p,h=!0){return e.BASE.multiply(Kn(n,p)).toBytes(h)}function u(p){const h=a(p);return{secretKey:h,publicKey:c(h)}}function f(p){if(typeof p=="bigint")return!1;if(p instanceof e)return!0;const{secretKey:h,publicKey:g,publicKeyUncompressed:m}=s;if(n.allowedLengths||h===g)return;const b=me("key",p).length;return b===g||b===m}function l(p,h,g=!0){if(f(p)===!0)throw new Error("first arg must be private key");if(f(h)===!1)throw new Error("second arg must be public key");const m=Kn(n,p);return e.fromHex(h).multiply(m).toBytes(g)}return Object.freeze({getPublicKey:c,getSharedSecret:l,keygen:u,Point:e,utils:{isValidSecretKey:o,isValidPublicKey:i,randomSecretKey:a,isValidPrivateKey:o,randomPrivateKey:a,normPrivateKeyToScalar:p=>Kn(n,p),precompute(p=8,h=e.BASE){return h.precompute(p,!1)}},lengths:s})}function s2(e,t,n={}){ks(t),Ur(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||er,s=n.hmac||((_,...v)=>Sn(t,_,ae(...v))),{Fp:o,Fn:i}=e,{ORDER:a,BITS:c}=i,{keygen:u,getPublicKey:f,getSharedSecret:l,utils:d,lengths:p}=r2(e,n),h={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},g="compact";function m(_){const v=a>>hr;return _>v}function b(_,v){if(!i.isValidNot0(v))throw new Error(`invalid signature ${_}: out of range 1..Point.Fn.ORDER`);return v}function w(_,v){ia(v);const A=p.signature,C=v==="compact"?A:v==="recovered"?A+1:void 0;return gt(_,C,`${v} signature`)}class y{constructor(v,A,C){this.r=b("r",v),this.s=b("s",A),C!=null&&(this.recovery=C),Object.freeze(this)}static fromBytes(v,A=g){w(v,A);let C;if(A==="der"){const{r:M,s:F}=Dt.toSig(gt(v));return new y(M,F)}A==="recovered"&&(C=v[0],A="compact",v=v.subarray(1));const R=i.BYTES,N=v.subarray(0,R),j=v.subarray(R,R*2);return new y(i.fromBytes(N),i.fromBytes(j),C)}static fromHex(v,A){return this.fromBytes(ut(v),A)}addRecoveryBit(v){return new y(this.r,this.s,v)}recoverPublicKey(v){const A=o.ORDER,{r:C,s:R,recovery:N}=this;if(N==null||![0,1,2,3].includes(N))throw new Error("recovery id invalid");if(a*qd1)throw new Error("recovery id is ambiguous for h>1 curve");const M=N===2||N===3?C+a:C;if(!o.isValid(M))throw new Error("recovery id 2 or 3 invalid");const F=o.toBytes(M),ue=e.fromBytes(ae(zd((N&1)===0),F)),oe=i.inv(M),Q=$(me("msgHash",v)),he=i.create(-Q*oe),pe=i.create(R*oe),Ie=e.BASE.multiplyUnsafe(he).add(ue.multiplyUnsafe(pe));if(Ie.is0())throw new Error("point at infinify");return Ie.assertValidity(),Ie}hasHighS(){return m(this.s)}toBytes(v=g){if(ia(v),v==="der")return ut(Dt.hexFromSig(this));const A=i.toBytes(this.r),C=i.toBytes(this.s);if(v==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return ae(Uint8Array.of(this.recovery),A,C)}return ae(A,C)}toHex(v){return Se(this.toBytes(v))}assertValidity(){}static fromCompact(v){return y.fromBytes(me("sig",v),"compact")}static fromDER(v){return y.fromBytes(me("sig",v),"der")}normalizeS(){return this.hasHighS()?new y(this.r,i.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Se(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Se(this.toBytes("compact"))}}const x=n.bits2int||function(v){if(v.length>8192)throw new Error("input is too large");const A=tr(v),C=v.length*8-c;return C>0?A>>BigInt(C):A},$=n.bits2int_modN||function(v){return i.create(x(v))},E=Ss(c);function I(_){return ds("num < 2^"+c,_,Mt,E),i.toBytes(_)}function P(_,v){return gt(_,void 0,"message"),v?gt(t(_),void 0,"prehashed message"):_}function B(_,v,A){if(["recovered","canonical"].some(he=>he in A))throw new Error("sign() legacy options not supported");const{lowS:C,prehash:R,extraEntropy:N}=Ei(A,h);_=P(_,R);const j=$(_),M=Kn(i,v),F=[I(M),I(j)];if(N!=null&&N!==!1){const he=N===!0?r(p.secretKey):N;F.push(me("extraEntropy",he))}const ue=ae(...F),oe=j;function Q(he){const pe=x(he);if(!i.isValidNot0(pe))return;const Ie=i.inv(pe),fe=e.BASE.multiply(pe).toAffine(),we=i.create(fe.x);if(we===Mt)return;const Lt=i.create(Ie*i.create(oe+we*M));if(Lt===Mt)return;let rt=(fe.x===we?0:2)|Number(fe.y&hr),De=Lt;return C&&m(Lt)&&(De=i.neg(Lt),rt^=1),new y(we,De,rt)}return{seed:ue,k2sig:Q}}function U(_,v,A={}){_=me("message",_);const{seed:C,k2sig:R}=B(_,v,A);return Kx(t.outputLen,i.BYTES,s)(C,R)}function L(_){let v;const A=typeof _=="string"||Es(_),C=!A&&_!==null&&typeof _=="object"&&typeof _.r=="bigint"&&typeof _.s=="bigint";if(!A&&!C)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(C)v=new y(_.r,_.s);else if(A){try{v=y.fromBytes(me("sig",_),"der")}catch(R){if(!(R instanceof Dt.Err))throw R}if(!v)try{v=y.fromBytes(me("sig",_),"compact")}catch{return!1}}return v||!1}function D(_,v,A,C={}){const{lowS:R,prehash:N,format:j}=Ei(C,h);if(A=me("publicKey",A),v=P(me("message",v),N),"strict"in C)throw new Error("options.strict was renamed to lowS");const M=j===void 0?L(_):y.fromBytes(me("sig",_),j);if(M===!1)return!1;try{const F=e.fromBytes(A);if(R&&M.hasHighS())return!1;const{r:ue,s:oe}=M,Q=$(v),he=i.inv(oe),pe=i.create(Q*he),Ie=i.create(ue*he),fe=e.BASE.multiplyUnsafe(pe).add(F.multiplyUnsafe(Ie));return fe.is0()?!1:i.create(fe.x)===ue}catch{return!1}}function k(_,v,A={}){const{prehash:C}=Ei(A,h);return v=P(v,C),y.fromBytes(_,"recovered").recoverPublicKey(v).toBytes()}return Object.freeze({keygen:u,getPublicKey:f,getSharedSecret:l,utils:d,lengths:p,Point:e,sign:U,verify:D,recoverPublicKey:k,Signature:y,hash:t})}function o2(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},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0;const s=nr(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),o={Fp:n,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function i2(e){const{CURVE:t,curveOpts:n}=o2(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function a2(e,t){const n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,Ld(n.Fn.ORDER,n.Fn.BITS))})}function c2(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=i2(e),o=n2(t,n),i=s2(o,r,s);return a2(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function u2(e,t){const n=r=>c2({...e,hash:r});return{...n(t),create:n}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ar={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},f2={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},l2=BigInt(0),Au=BigInt(1),aa=BigInt(2);function d2(e){const t=Ar.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=_e(f,n,t)*f%t,d=_e(l,n,t)*f%t,p=_e(d,aa,t)*u%t,h=_e(p,s,t)*p%t,g=_e(h,o,t)*h%t,m=_e(g,a,t)*g%t,b=_e(m,c,t)*m%t,w=_e(b,a,t)*g%t,y=_e(w,n,t)*f%t,x=_e(y,i,t)*h%t,$=_e(x,r,t)*u%t,E=_e($,aa,t);if(!_o.eql(_o.sqr(E),e))throw new Error("Cannot find square root");return E}const _o=nr(Ar.p,{sqrt:d2}),ke=u2({...Ar,Fp:_o,lowS:!0,endo:f2},xe),Bu={};function Ao(e,...t){let n=Bu[e];if(n===void 0){const r=xe(Ne(e));n=ae(r,r),Bu[e]=n}return xe(ae(n,...t))}const uc=e=>e.toBytes(!0).slice(1),Nr=ke.Point,fc=e=>e%aa===l2;function ca(e){const{Fn:t,BASE:n}=Nr,r=Kn(t,e),s=n.multiply(r);return{scalar:fc(s.y)?r:t.neg(r),bytes:uc(s)}}function Wd(e){const t=_o;if(!t.isValidNot0(e))throw new Error("invalid x: Fail if x ≥ p");const n=t.create(e*e),r=t.create(n*e+BigInt(7));let s=t.sqrt(r);fc(s)||(s=t.neg(s));const o=Nr.fromAffine({x:e,y:s});return o.assertValidity(),o}const Gr=tr;function Gd(...e){return Nr.Fn.create(Gr(Ao("BIP0340/challenge",...e)))}function Tu(e){return ca(e).bytes}function h2(e,t,n=er(32)){const{Fn:r}=Nr,s=me("message",e),{bytes:o,scalar:i}=ca(t),a=me("auxRand",n,32),c=r.toBytes(i^Gr(Ao("BIP0340/aux",a))),u=Ao("BIP0340/nonce",c,o,s),{bytes:f,scalar:l}=ca(u),d=Gd(f,o,s),p=new Uint8Array(64);if(p.set(f,0),p.set(r.toBytes(r.create(l+d*i)),32),!Yd(p,s,o))throw new Error("sign: Invalid signature produced");return p}function Yd(e,t,n){const{Fn:r,BASE:s}=Nr,o=me("signature",e,64),i=me("message",t),a=me("publicKey",n,32);try{const c=Wd(Gr(a)),u=Gr(o.subarray(0,32));if(!oa(u,Au,Ar.p))return!1;const f=Gr(o.subarray(32,64));if(!oa(f,Au,Ar.n))return!1;const l=Gd(r.toBytes(u),uc(c),i),d=s.multiplyUnsafe(f).add(c.multiplyUnsafe(r.neg(l))),{x:p,y:h}=d.toAffine();return!(d.is0()||!fc(h)||p!==u)}catch{return!1}}const $n=(()=>{const n=(s=er(48))=>jd(s,Ar.n);ke.utils.randomSecretKey;function r(s){const o=n(s);return{secretKey:o,publicKey:Tu(o)}}return{keygen:r,getPublicKey:Tu,sign:h2,verify:Yd,Point:Nr,utils:{randomSecretKey:n,randomPrivateKey:n,taggedHash:Ao,lift_x:Wd,pointToBytes:uc,numberToBytesBE:zo,bytesToNumberBE:tr,mod:Ee},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),p2=BigInt(0),Dr=BigInt(1),g2=BigInt(2),m2=BigInt(7),y2=BigInt(256),b2=BigInt(113),Xd=[],Jd=[],Qd=[];for(let e=0,t=Dr,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Xd.push(2*(5*r+n)),Jd.push((e+1)*(e+2)/2%64);let s=p2;for(let o=0;o<7;o++)t=(t<>m2)*b2)%y2,t&g2&&(s^=Dr<<(Dr<n>32?Ax(e,t,n):$x(e,t,n),Ou=(e,t,n)=>n>32?Bx(e,t,n):_x(e,t,n);function v2(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let i=0;i<10;i++)n[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){const a=(i+8)%10,c=(i+2)%10,u=n[c],f=n[c+1],l=Iu(u,f,1)^n[a],d=Ou(u,f,1)^n[a+1];for(let p=0;p<50;p+=10)e[i+p]^=l,e[i+p+1]^=d}let s=e[2],o=e[3];for(let i=0;i<24;i++){const a=Jd[i],c=Iu(s,o,a),u=Ou(s,o,a),f=Xd[i];s=e[f],o=e[f+1],e[f]=c,e[f+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)n[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=w2[r],e[1]^=x2[r]}ct(n)}class lc extends sc{constructor(t,n,r,s=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=o,It(r),!(0=r&&this.keccak();const i=Math.min(r-this.posOut,o-s);t.set(n.subarray(this.posOut,this.posOut+i),s),this.posOut+=i,s+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return It(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(vd(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,ct(this.state)}_cloneInto(t){const{blockLen:n,suffix:r,outputLen:s,rounds:o,enableXOF:i}=this;return t||(t=new lc(n,r,s,i,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=s,t.enableXOF=i,t.destroyed=this.destroyed,t}}const E2=(e,t,n)=>qo(()=>new lc(t,e,n)),dc=E2(1,136,256/8),k2=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),th=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),S2=th.map(e=>(9*e+5)%16),nh=(()=>{const n=[[th],[S2]];for(let r=0;r<4;r++)for(let s of n)s.push(s[r].map(o=>k2[o]));return n})(),rh=nh[0],sh=nh[1],oh=[[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)),$2=rh.map((e,t)=>e.map(n=>oh[t][n])),_2=sh.map((e,t)=>e.map(n=>oh[t][n])),A2=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),B2=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function Cu(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const Ms=new Uint32Array(16);class T2 extends oc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let p=0;p<16;p++,n+=4)Ms[p]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,f=u,l=this.h4|0,d=l;for(let p=0;p<5;p++){const h=4-p,g=A2[p],m=B2[p],b=rh[p],w=sh[p],y=$2[p],x=_2[p];for(let $=0;$<16;$++){const E=Ls(r+Cu(p,o,a,u)+Ms[b[$]]+g,y[$])+l|0;r=l,l=u,u=Ls(a,10)|0,a=o,o=E}for(let $=0;$<16;$++){const E=Ls(s+Cu(h,i,c,f)+Ms[w[$]]+m,x[$])+d|0;s=d,d=f,f=Ls(c,10)|0,c=i,i=E}}this.set(this.h1+a+f|0,this.h2+u+d|0,this.h3+l+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){ct(Ms)}destroy(){this.destroyed=!0,ct(this.buffer),this.set(0,0,0,0,0)}}const hc=qo(()=>new T2);/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Br(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function I2(e,...t){if(!Br(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 ih(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function ah(e){if(typeof e!="function")throw new Error("function expected");return!0}function Gn(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function Lr(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Bo(e){if(!Array.isArray(e))throw new Error("array expected")}function To(e,t){if(!ih(!0,t))throw new Error(`${e}: array of strings expected`)}function pc(e,t){if(!ih(!1,t))throw new Error(`${e}: array of numbers expected`)}function $s(...e){const t=o=>o,n=(o,i)=>a=>o(i(a)),r=e.map(o=>o.encode).reduceRight(n,t),s=e.map(o=>o.decode).reduce(n,t);return{encode:r,decode:s}}function Fo(e){const t=typeof e=="string"?e.split(""):e,n=t.length;To("alphabet",t);const r=new Map(t.map((s,o)=>[s,o]));return{encode:s=>(Bo(s),s.map(o=>{if(!Number.isSafeInteger(o)||o<0||o>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${o}". Allowed: ${e}`);return t[o]})),decode:s=>(Bo(s),s.map(o=>{Gn("alphabet.decode",o);const i=r.get(o);if(i===void 0)throw new Error(`Unknown letter: "${o}". Allowed: ${e}`);return i}))}}function Wo(e=""){return Gn("join",e),{encode:t=>(To("join.decode",t),t.join(e)),decode:t=>(Gn("join.decode",t),t.split(e))}}function ch(e,t="="){return Lr(e),Gn("padding",t),{encode(n){for(To("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){To("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)}}}function ua(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(Bo(e),!e.length)return[];let r=0;const s=[],o=Array.from(e,a=>{if(Lr(a),a<0||a>=t)throw new Error(`invalid integer: ${a}`);return a}),i=o.length;for(;;){let a=0,c=!0;for(let u=r;ut===0?e:uh(t,e%t),Io=(e,t)=>e+(t-uh(e,t)),eo=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Oo(e,t,n,r){if(Bo(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(Io(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${Io(t,n)}`);let s=0,o=0;const i=eo[t],a=eo[n]-1,c=[];for(const u of e){if(Lr(u),u>=i)throw new Error(`convertRadix2: invalid data word=${u} from=${t}`);if(s=s<32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)c.push((s>>o-n&a)>>>0);const f=eo[o];if(f===void 0)throw new Error("invalid carry");s&=f-1}if(s=s<=t)throw new Error("Excess padding");if(!r&&s>0)throw new Error(`Non-zero padding: ${s}`);return r&&o>0&&c.push(s>>>0),c}function fh(e){Lr(e);const t=2**8;return{encode:n=>{if(!Br(n))throw new Error("radix.encode input should be Uint8Array");return ua(Array.from(n),t,e)},decode:n=>(pc("radix.decode",n),Uint8Array.from(ua(n,e,t)))}}function gc(e,t=!1){if(Lr(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(Io(8,e)>32||Io(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Br(n))throw new Error("radix2.encode input should be Uint8Array");return Oo(Array.from(n),8,e,!t)},decode:n=>(pc("radix2.decode",n),Uint8Array.from(Oo(n,e,8,t)))}}function Pu(e){return ah(e),function(...t){try{return e.apply(null,t)}catch{}}}function lh(e,t){return Lr(e),ah(t),{encode(n){if(!Br(n))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),s=new Uint8Array(n.length+e);return s.set(n),s.set(r,n.length),s},decode(n){if(!Br(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),s=n.slice(-e),o=t(r).slice(0,e);for(let i=0;i{Gn("base64",e);const n=/^[A-Za-z0-9=+/]+$/,r="base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})},it=O2?{encode(e){return I2(e),e.toBase64()},decode(e){return C2(e)}}:$s(gc(6),Fo("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),ch(6),Wo("")),P2=e=>$s(fh(58),Fo(e),Wo("")),U2=P2("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),dh=e=>$s(lh(4,t=>e(e(t))),U2),fa=$s(Fo("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Wo("")),Uu=[996825010,642813549,513874426,1027748829,705979059];function Mr(e){const t=e>>25;let n=(e&33554431)<<5;for(let r=0;r>r&1)===1&&(n^=Uu[r]);return n}function Nu(e,t,n=1){const r=e.length;let s=1;for(let o=0;o126)throw new Error(`Invalid prefix (${e})`);s=Mr(s)^i>>5}s=Mr(s);for(let o=0;op)throw new TypeError(`Length ${g} exceeds limit ${p}`);const m=l.toLowerCase(),b=Nu(m,d,t);return`${m}1${fa.encode(d)}${b}`}function a(l,d=90){Gn("bech32.decode input",l);const p=l.length;if(p<8||d!==!1&&p>d)throw new TypeError(`invalid string length: ${p} (${l}). Expected (8..${d})`);const h=l.toLowerCase();if(l!==h&&l!==l.toUpperCase())throw new Error("String must be lowercase or uppercase");const g=h.lastIndexOf("1");if(g===0||g===-1)throw new Error('Letter "1" must be present between prefix and data only');const m=h.slice(0,g),b=h.slice(g+1);if(b.length<6)throw new Error("Data must be at least 6 characters long");const w=fa.decode(b).slice(0,-6),y=Nu(m,w,t);if(!b.endsWith(y))throw new Error(`Invalid checksum in ${l}: expected "${y}"`);return{prefix:m,words:w}}const c=Pu(a);function u(l){const{prefix:d,words:p}=a(l,!1);return{prefix:d,words:p,bytes:r(p)}}function f(l,d){return i(l,s(d))}return{encode:i,decode:a,encodeFromBytes:f,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:o,toWords:s}}const Yn=hh("bech32"),N2=hh("bech32m");/*! scure-bip32 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */const Vs=ke.ProjectivePoint,ki=dh(xe);function Lu(e){He(e);const t=e.length===0?"0":Se(e);return BigInt("0x"+t)}function L2(e){if(typeof e!="bigint")throw new Error("bigint expected");return ut(e.toString(16).padStart(64,"0"))}const R2=Ne("Bitcoin seed"),Si={private:76066276,public:76067358},$i=2147483648,H2=e=>hc(xe(e)),j2=e=>Mn(e).getUint32(0,!1),qs=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+e);const t=new Uint8Array(4);return Mn(t).setUint32(0,e,!1),t};class Pn{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return j2(this.pubHash)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const t=this.privateKey;if(!t)throw new Error("No private key");return ki.encode(this.serialize(this.versions.private,ae(new Uint8Array([0]),t)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return ki.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(t,n=Si){if(He(t),8*t.length<128||8*t.length>512)throw new Error("HDKey: seed length must be between 128 and 512 bits; 256 bits is advised, got "+t.length);const r=Sn(ls,R2,t);return new Pn({versions:n,chainCode:r.slice(32),privateKey:r.slice(0,32)})}static fromExtendedKey(t,n=Si){const r=ki.decode(t),s=Mn(r),o=s.getUint32(0,!1),i={versions:n,depth:r[4],parentFingerprint:s.getUint32(5,!1),index:s.getUint32(9,!1),chainCode:r.slice(13,45)},a=r.slice(45),c=a[0]===0;if(o!==n[c?"private":"public"])throw new Error("Version mismatch");return c?new Pn({...i,privateKey:a.slice(1)}):new Pn({...i,publicKey:a})}static fromJSON(t){return Pn.fromExtendedKey(t.xpriv)}constructor(t){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!t||typeof t!="object")throw new Error("HDKey.constructor must not be called directly");if(this.versions=t.versions||Si,this.depth=t.depth||0,this.chainCode=t.chainCode||null,this.index=t.index||0,this.parentFingerprint=t.parentFingerprint||0,!this.depth&&(this.parentFingerprint||this.index))throw new Error("HDKey: zero depth with non-zero index/parent fingerprint");if(t.publicKey&&t.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(t.privateKey){if(!ke.utils.isValidPrivateKey(t.privateKey))throw new Error("Invalid private key");this.privKey=typeof t.privateKey=="bigint"?t.privateKey:Lu(t.privateKey),this.privKeyBytes=L2(this.privKey),this.pubKey=ke.getPublicKey(t.privateKey,!0)}else if(t.publicKey)this.pubKey=Vs.fromHex(t.publicKey).toRawBytes(!0);else throw new Error("HDKey: no public or private key provided");this.pubHash=H2(this.pubKey)}derive(t){if(!/^[mM]'?/.test(t))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(t))return this;const n=t.replace(/^[mM]'?\//,"").split("/");let r=this;for(const s of n){const o=/^(\d+)('?)$/.exec(s),i=o&&o[1];if(!o||o.length!==3||typeof i!="string")throw new Error("invalid child index: "+s);let a=+i;if(!Number.isSafeInteger(a)||a>=$i)throw new Error("Invalid index");o[2]==="'"&&(a+=$i),r=r.deriveChild(a)}return r}deriveChild(t){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let n=qs(t);if(t>=$i){const a=this.privateKey;if(!a)throw new Error("Could not derive hardened child key");n=ae(new Uint8Array([0]),a,n)}else n=ae(this.pubKey,n);const r=Sn(ls,this.chainCode,n),s=Lu(r.slice(0,32)),o=r.slice(32);if(!ke.utils.isValidPrivateKey(s))throw new Error("Tweak bigger than curve order");const i={versions:this.versions,chainCode:o,depth:this.depth+1,parentFingerprint:this.fingerprint,index:t};try{if(this.privateKey){const a=Ee(this.privKey+s,ke.CURVE.n);if(!ke.utils.isValidPrivateKey(a))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=a}else{const a=Vs.fromHex(this.pubKey).add(Vs.fromPrivateKey(s));if(a.equals(Vs.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=a.toRawBytes(!0)}return new Pn(i)}catch{return this.deriveChild(t+1)}}sign(t){if(!this.privateKey)throw new Error("No privateKey set!");return He(t,32),ke.sign(t,this.privKey).toCompactRawBytes()}verify(t,n){if(He(t,32),He(n,64),!this.publicKey)throw new Error("No publicKey set!");let r;try{r=ke.Signature.fromCompact(n)}catch{return!1}return ke.verify(r,t,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(t,n){if(!this.chainCode)throw new Error("No chainCode set");return He(n,33),ae(qs(t),new Uint8Array([this.depth]),qs(this.parentFingerprint),qs(this.index),this.chainCode,n)}}function K2(e,t,n,r){ks(e);const s=xx({dkLen:32,asyncTick:10},r),{c:o,dkLen:i,asyncTick:a}=s;if(It(o),It(i),It(a),o<1)throw new Error("iterations (c) should be >= 1");const c=mu(t),u=mu(n),f=new Uint8Array(i),l=Sn.create(e,c),d=l._cloneInto().update(u);return{c:o,dkLen:i,asyncTick:a,DK:f,PRF:l,PRFSalt:d}}function D2(e,t,n,r,s){return e.destroy(),t.destroy(),r&&r.destroy(),ct(s),n}function M2(e,t,n,r){const{c:s,dkLen:o,DK:i,PRF:a,PRFSalt:c}=K2(e,t,n,r);let u;const f=new Uint8Array(4),l=Mn(f),d=new Uint8Array(a.outputLen);for(let p=1,h=0;he[0]==="あいこくしん";function ph(e){if(typeof e!="string")throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function gh(e){const t=ph(e),n=t.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:n}}function mh(e){He(e,16,20,24,28,32)}function V2(e,t=128){if(It(t),t%32!==0||t>256)throw new TypeError("Invalid entropy");return bh(er(t/8),e)}const q2=e=>{const t=8-e.length/4;return new Uint8Array([xe(e)[0]>>t<{if(typeof t!="string")throw new Error("wordlist: non-string element: "+t)}),Zs.chain(Zs.checksum(1,q2),Zs.radix2(11,!0),Zs.alphabet(e))}function z2(e,t){const{words:n}=gh(e),r=yh(t).decode(n);return mh(r),r}function bh(e,t){return mh(e),yh(t).encode(e).join(Z2(t)?" ":" ")}function F2(e,t){try{z2(e,t)}catch{return!1}return!0}const W2=e=>ph("mnemonic"+e);function G2(e,t=""){return M2(ls,gh(e).nfkd,W2(t),{c:2048,dkLen:64})}const mc=`abandon -ability -able -about -above -absent -absorb -abstract -absurd -abuse -access -accident -account -accuse -achieve -acid -acoustic -acquire -across -act -action -actor -actress -actual -adapt -add -addict -address -adjust -admit -adult -advance -advice -aerobic -affair -afford -afraid -again -age -agent -agree -ahead -aim -air -airport -aisle -alarm -album -alcohol -alert -alien -all -alley -allow -almost -alone -alpha -already -also -alter -always -amateur -amazing -among -amount -amused -analyst -anchor -ancient -anger -angle -angry -animal -ankle -announce -annual -another -answer -antenna -antique -anxiety -any -apart -apology -appear -apple -approve -april -arch -arctic -area -arena -argue -arm -armed -armor -army -around -arrange -arrest -arrive -arrow -art -artefact -artist -artwork -ask -aspect -assault -asset -assist -assume -asthma -athlete -atom -attack -attend -attitude -attract -auction -audit -august -aunt -author -auto -autumn -average -avocado -avoid -awake -aware -away -awesome -awful -awkward -axis -baby -bachelor -bacon -badge -bag -balance -balcony -ball -bamboo -banana -banner -bar -barely -bargain -barrel -base -basic -basket -battle -beach -bean -beauty -because -become -beef -before -begin -behave -behind -believe -below -belt -bench -benefit -best -betray -better -between -beyond -bicycle -bid -bike -bind -biology -bird -birth -bitter -black -blade -blame -blanket -blast -bleak -bless -blind -blood -blossom -blouse -blue -blur -blush -board -boat -body -boil -bomb -bone -bonus -book -boost -border -boring -borrow -boss -bottom -bounce -box -boy -bracket -brain -brand -brass -brave -bread -breeze -brick -bridge -brief -bright -bring -brisk -broccoli -broken -bronze -broom -brother -brown -brush -bubble -buddy -budget -buffalo -build -bulb -bulk -bullet -bundle -bunker -burden -burger -burst -bus -business -busy -butter -buyer -buzz -cabbage -cabin -cable -cactus -cage -cake -call -calm -camera -camp -can -canal -cancel -candy -cannon -canoe -canvas -canyon -capable -capital -captain -car -carbon -card -cargo -carpet -carry -cart -case -cash -casino -castle -casual -cat -catalog -catch -category -cattle -caught -cause -caution -cave -ceiling -celery -cement -census -century -cereal -certain -chair -chalk -champion -change -chaos -chapter -charge -chase -chat -cheap -check -cheese -chef -cherry -chest -chicken -chief -child -chimney -choice -choose -chronic -chuckle -chunk -churn -cigar -cinnamon -circle -citizen -city -civil -claim -clap -clarify -claw -clay -clean -clerk -clever -click -client -cliff -climb -clinic -clip -clock -clog -close -cloth -cloud -clown -club -clump -cluster -clutch -coach -coast -coconut -code -coffee -coil -coin -collect -color -column -combine -come -comfort -comic -common -company -concert -conduct -confirm -congress -connect -consider -control -convince -cook -cool -copper -copy -coral -core -corn -correct -cost -cotton -couch -country -couple -course -cousin -cover -coyote -crack -cradle -craft -cram -crane -crash -crater -crawl -crazy -cream -credit -creek -crew -cricket -crime -crisp -critic -crop -cross -crouch -crowd -crucial -cruel -cruise -crumble -crunch -crush -cry -crystal -cube -culture -cup -cupboard -curious -current -curtain -curve -cushion -custom -cute -cycle -dad -damage -damp -dance -danger -daring -dash -daughter -dawn -day -deal -debate -debris -decade -december -decide -decline -decorate -decrease -deer -defense -define -defy -degree -delay -deliver -demand -demise -denial -dentist -deny -depart -depend -deposit -depth -deputy -derive -describe -desert -design -desk -despair -destroy -detail -detect -develop -device -devote -diagram -dial -diamond -diary -dice -diesel -diet -differ -digital -dignity -dilemma -dinner -dinosaur -direct -dirt -disagree -discover -disease -dish -dismiss -disorder -display -distance -divert -divide -divorce -dizzy -doctor -document -dog -doll -dolphin -domain -donate -donkey -donor -door -dose -double -dove -draft -dragon -drama -drastic -draw -dream -dress -drift -drill -drink -drip -drive -drop -drum -dry -duck -dumb -dune -during -dust -dutch -duty -dwarf -dynamic -eager -eagle -early -earn -earth -easily -east -easy -echo -ecology -economy -edge -edit -educate -effort -egg -eight -either -elbow -elder -electric -elegant -element -elephant -elevator -elite -else -embark -embody -embrace -emerge -emotion -employ -empower -empty -enable -enact -end -endless -endorse -enemy -energy -enforce -engage -engine -enhance -enjoy -enlist -enough -enrich -enroll -ensure -enter -entire -entry -envelope -episode -equal -equip -era -erase -erode -erosion -error -erupt -escape -essay -essence -estate -eternal -ethics -evidence -evil -evoke -evolve -exact -example -excess -exchange -excite -exclude -excuse -execute -exercise -exhaust -exhibit -exile -exist -exit -exotic -expand -expect -expire -explain -expose -express -extend -extra -eye -eyebrow -fabric -face -faculty -fade -faint -faith -fall -false -fame -family -famous -fan -fancy -fantasy -farm -fashion -fat -fatal -father -fatigue -fault -favorite -feature -february -federal -fee -feed -feel -female -fence -festival -fetch -fever -few -fiber -fiction -field -figure -file -film -filter -final -find -fine -finger -finish -fire -firm -first -fiscal -fish -fit -fitness -fix -flag -flame -flash -flat -flavor -flee -flight -flip -float -flock -floor -flower -fluid -flush -fly -foam -focus -fog -foil -fold -follow -food -foot -force -forest -forget -fork -fortune -forum -forward -fossil -foster -found -fox -fragile -frame -frequent -fresh -friend -fringe -frog -front -frost -frown -frozen -fruit -fuel -fun -funny -furnace -fury -future -gadget -gain -galaxy -gallery -game -gap -garage -garbage -garden -garlic -garment -gas -gasp -gate -gather -gauge -gaze -general -genius -genre -gentle -genuine -gesture -ghost -giant -gift -giggle -ginger -giraffe -girl -give -glad -glance -glare -glass -glide -glimpse -globe -gloom -glory -glove -glow -glue -goat -goddess -gold -good -goose -gorilla -gospel -gossip -govern -gown -grab -grace -grain -grant -grape -grass -gravity -great -green -grid -grief -grit -grocery -group -grow -grunt -guard -guess -guide -guilt -guitar -gun -gym -habit -hair -half -hammer -hamster -hand -happy -harbor -hard -harsh -harvest -hat -have -hawk -hazard -head -health -heart -heavy -hedgehog -height -hello -helmet -help -hen -hero -hidden -high -hill -hint -hip -hire -history -hobby -hockey -hold -hole -holiday -hollow -home -honey -hood -hope -horn -horror -horse -hospital -host -hotel -hour -hover -hub -huge -human -humble -humor -hundred -hungry -hunt -hurdle -hurry -hurt -husband -hybrid -ice -icon -idea -identify -idle -ignore -ill -illegal -illness -image -imitate -immense -immune -impact -impose -improve -impulse -inch -include -income -increase -index -indicate -indoor -industry -infant -inflict -inform -inhale -inherit -initial -inject -injury -inmate -inner -innocent -input -inquiry -insane -insect -inside -inspire -install -intact -interest -into -invest -invite -involve -iron -island -isolate -issue -item -ivory -jacket -jaguar -jar -jazz -jealous -jeans -jelly -jewel -job -join -joke -journey -joy -judge -juice -jump -jungle -junior -junk -just -kangaroo -keen -keep -ketchup -key -kick -kid -kidney -kind -kingdom -kiss -kit -kitchen -kite -kitten -kiwi -knee -knife -knock -know -lab -label -labor -ladder -lady -lake -lamp -language -laptop -large -later -latin -laugh -laundry -lava -law -lawn -lawsuit -layer -lazy -leader -leaf -learn -leave -lecture -left -leg -legal -legend -leisure -lemon -lend -length -lens -leopard -lesson -letter -level -liar -liberty -library -license -life -lift -light -like -limb -limit -link -lion -liquid -list -little -live -lizard -load -loan -lobster -local -lock -logic -lonely -long -loop -lottery -loud -lounge -love -loyal -lucky -luggage -lumber -lunar -lunch -luxury -lyrics -machine -mad -magic -magnet -maid -mail -main -major -make -mammal -man -manage -mandate -mango -mansion -manual -maple -marble -march -margin -marine -market -marriage -mask -mass -master -match -material -math -matrix -matter -maximum -maze -meadow -mean -measure -meat -mechanic -medal -media -melody -melt -member -memory -mention -menu -mercy -merge -merit -merry -mesh -message -metal -method -middle -midnight -milk -million -mimic -mind -minimum -minor -minute -miracle -mirror -misery -miss -mistake -mix -mixed -mixture -mobile -model -modify -mom -moment -monitor -monkey -monster -month -moon -moral -more -morning -mosquito -mother -motion -motor -mountain -mouse -move -movie -much -muffin -mule -multiply -muscle -museum -mushroom -music -must -mutual -myself -mystery -myth -naive -name -napkin -narrow -nasty -nation -nature -near -neck -need -negative -neglect -neither -nephew -nerve -nest -net -network -neutral -never -news -next -nice -night -noble -noise -nominee -noodle -normal -north -nose -notable -note -nothing -notice -novel -now -nuclear -number -nurse -nut -oak -obey -object -oblige -obscure -observe -obtain -obvious -occur -ocean -october -odor -off -offer -office -often -oil -okay -old -olive -olympic -omit -once -one -onion -online -only -open -opera -opinion -oppose -option -orange -orbit -orchard -order -ordinary -organ -orient -original -orphan -ostrich -other -outdoor -outer -output -outside -oval -oven -over -own -owner -oxygen -oyster -ozone -pact -paddle -page -pair -palace -palm -panda -panel -panic -panther -paper -parade -parent -park -parrot -party -pass -patch -path -patient -patrol -pattern -pause -pave -payment -peace -peanut -pear -peasant -pelican -pen -penalty -pencil -people -pepper -perfect -permit -person -pet -phone -photo -phrase -physical -piano -picnic -picture -piece -pig -pigeon -pill -pilot -pink -pioneer -pipe -pistol -pitch -pizza -place -planet -plastic -plate -play -please -pledge -pluck -plug -plunge -poem -poet -point -polar -pole -police -pond -pony -pool -popular -portion -position -possible -post -potato -pottery -poverty -powder -power -practice -praise -predict -prefer -prepare -present -pretty -prevent -price -pride -primary -print -priority -prison -private -prize -problem -process -produce -profit -program -project -promote -proof -property -prosper -protect -proud -provide -public -pudding -pull -pulp -pulse -pumpkin -punch -pupil -puppy -purchase -purity -purpose -purse -push -put -puzzle -pyramid -quality -quantum -quarter -question -quick -quit -quiz -quote -rabbit -raccoon -race -rack -radar -radio -rail -rain -raise -rally -ramp -ranch -random -range -rapid -rare -rate -rather -raven -raw -razor -ready -real -reason -rebel -rebuild -recall -receive -recipe -record -recycle -reduce -reflect -reform -refuse -region -regret -regular -reject -relax -release -relief -rely -remain -remember -remind -remove -render -renew -rent -reopen -repair -repeat -replace -report -require -rescue -resemble -resist -resource -response -result -retire -retreat -return -reunion -reveal -review -reward -rhythm -rib -ribbon -rice -rich -ride -ridge -rifle -right -rigid -ring -riot -ripple -risk -ritual -rival -river -road -roast -robot -robust -rocket -romance -roof -rookie -room -rose -rotate -rough -round -route -royal -rubber -rude -rug -rule -run -runway -rural -sad -saddle -sadness -safe -sail -salad -salmon -salon -salt -salute -same -sample -sand -satisfy -satoshi -sauce -sausage -save -say -scale -scan -scare -scatter -scene -scheme -school -science -scissors -scorpion -scout -scrap -screen -script -scrub -sea -search -season -seat -second -secret -section -security -seed -seek -segment -select -sell -seminar -senior -sense -sentence -series -service -session -settle -setup -seven -shadow -shaft -shallow -share -shed -shell -sheriff -shield -shift -shine -ship -shiver -shock -shoe -shoot -shop -short -shoulder -shove -shrimp -shrug -shuffle -shy -sibling -sick -side -siege -sight -sign -silent -silk -silly -silver -similar -simple -since -sing -siren -sister -situate -six -size -skate -sketch -ski -skill -skin -skirt -skull -slab -slam -sleep -slender -slice -slide -slight -slim -slogan -slot -slow -slush -small -smart -smile -smoke -smooth -snack -snake -snap -sniff -snow -soap -soccer -social -sock -soda -soft -solar -soldier -solid -solution -solve -someone -song -soon -sorry -sort -soul -sound -soup -source -south -space -spare -spatial -spawn -speak -special -speed -spell -spend -sphere -spice -spider -spike -spin -spirit -split -spoil -sponsor -spoon -sport -spot -spray -spread -spring -spy -square -squeeze -squirrel -stable -stadium -staff -stage -stairs -stamp -stand -start -state -stay -steak -steel -stem -step -stereo -stick -still -sting -stock -stomach -stone -stool -story -stove -strategy -street -strike -strong -struggle -student -stuff -stumble -style -subject -submit -subway -success -such -sudden -suffer -sugar -suggest -suit -summer -sun -sunny -sunset -super -supply -supreme -sure -surface -surge -surprise -surround -survey -suspect -sustain -swallow -swamp -swap -swarm -swear -sweet -swift -swim -swing -switch -sword -symbol -symptom -syrup -system -table -tackle -tag -tail -talent -talk -tank -tape -target -task -taste -tattoo -taxi -teach -team -tell -ten -tenant -tennis -tent -term -test -text -thank -that -theme -then -theory -there -they -thing -this -thought -three -thrive -throw -thumb -thunder -ticket -tide -tiger -tilt -timber -time -tiny -tip -tired -tissue -title -toast -tobacco -today -toddler -toe -together -toilet -token -tomato -tomorrow -tone -tongue -tonight -tool -tooth -top -topic -topple -torch -tornado -tortoise -toss -total -tourist -toward -tower -town -toy -track -trade -traffic -tragic -train -transfer -trap -trash -travel -tray -treat -tree -trend -trial -tribe -trick -trigger -trim -trip -trophy -trouble -truck -true -truly -trumpet -trust -truth -try -tube -tuition -tumble -tuna -tunnel -turkey -turn -turtle -twelve -twenty -twice -twin -twist -two -type -typical -ugly -umbrella -unable -unaware -uncle -uncover -under -undo -unfair -unfold -unhappy -uniform -unique -unit -universe -unknown -unlock -until -unusual -unveil -update -upgrade -uphold -upon -upper -upset -urban -urge -usage -use -used -useful -useless -usual -utility -vacant -vacuum -vague -valid -valley -valve -van -vanish -vapor -various -vast -vault -vehicle -velvet -vendor -venture -venue -verb -verify -version -very -vessel -veteran -viable -vibrant -vicious -victory -video -view -village -vintage -violin -virtual -virus -visa -visit -visual -vital -vivid -vocal -voice -void -volcano -volume -vote -voyage -wage -wagon -wait -walk -wall -walnut -want -warfare -warm -warrior -wash -wasp -waste -water -wave -way -wealth -weapon -wear -weasel -weather -web -wedding -weekend -weird -welcome -west -wet -whale -what -wheat -wheel -when -where -whip -whisper -wide -width -wife -wild -will -win -window -wine -wing -wink -winner -winter -wire -wisdom -wise -wish -witness -wolf -woman -wonder -wood -wool -word -work -world -worry -worth -wrap -wreck -wrestle -wrist -write -wrong -yard -year -yellow -you -young -youth -zebra -zero -zone -zoo`.split(` -`),Ye={orgSeed:e=>`m/83696968'/39'/0'/24'/${e}'`,wallet:(e,t=1)=>`m/86'/${t}'/${e}'/0/0`,segwit:(e,t=1)=>`m/84'/${t}'/${e}'/0/0`,nostr:e=>`m/44'/1237'/${e}'/0/0`,ethereum:e=>`m/44'/60'/${e}'/0/0`},Y2=2**31-1,_i=new Map,Ai=new Map,Ru=()=>V2(mc,256);function wh(e,t=0){if(typeof e!="string"||!F2(e,mc)||t&&e.split(" ").length!==t)throw new Error("Invalid lab mnemonic.");return e}function Tn(e,t){if(!Number.isSafeInteger(e)||e<0||e>Y2)throw new Error(`Invalid ${t}.`);return e}const Bi=new Map;function yc(e){return Bi.has(e)||Bi.set(e,G2(wh(e))),Bi.get(e)}function In(e){return _i.has(e)||_i.set(e,Pn.fromMasterSeed(yc(e))),_i.get(e)}function X2(e,t){const n=e.derive(t).privateKey;if(!n)throw new Error("BIP-85 path produced no private key.");return Sn(ls,Ne("bip-entropy-from-k"),n)}function J2(e,t){const n=`${e}|${Tn(t,"child index")}`;return Ai.has(n)||Ai.set(n,bh(X2(In(e),Ye.orgSeed(t)).slice(0,32),mc)),Ai.get(n)}function la(e,t=0,n=1){return Se(In(e).derive(Ye.wallet(Tn(t,"account"),n)).privateKey)}function bc(e,t=0,n=1){return Se(In(e).derive(Ye.segwit(Tn(t,"account"),n)).privateKey)}function xh(e,t=0,n=1){return Se(In(e).derive(Ye.segwit(Tn(t,"account"),n)).publicKey)}function Go(e,t=0){return Se(In(e).derive(Ye.nostr(Tn(t,"account"))).privateKey)}function vh(e){const t=e.toLowerCase(),n=Se(dc(Ne(t)));return`0x${[...t].map((r,s)=>parseInt(n[s],16)>=8?r.toUpperCase():r).join("")}`}const Eh=e=>vh(Se(dc(ke.ProjectivePoint.fromHex(e).toRawBytes(!1).slice(1)).slice(-20)));function kh(e,t=0){return Se(In(e).derive(Ye.ethereum(Tn(t,"account"))).privateKey)}const Ti=new Map;function Q2(e,t=0){const n=`${e}|${t}`;return Ti.has(n)||Ti.set(n,Eh(In(e).derive(Ye.ethereum(Tn(t,"account"))).publicKey)),Ti.get(n)}function ev(e,t=0){const n=$n.getPublicKey(In(e).derive(Ye.nostr(Tn(t,"account"))).privateKey);return{pubkey:Se(n),npub:Yn.encode("npub",Yn.toWords(n))}}const vt=["taproot","segwit","nostr","ethereum"],Yo=(e,t)=>["lineage/v0 keyring",`node: ${e}`,...vt.map(n=>`${n}: ${t[n]}`)].join(` -`),tv=["bc","tb","bcrt"],Sh=new Uint8Array(32),Qe=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),t},hs=e=>ae(e.length<253?Uint8Array.of(e.length):Uint8Array.of(253,e.length&255,e.length>>8),e),Fr=e=>xe(xe(e)),$h=(e,...t)=>{const n=xe(Ne(e));return xe(ae(n,n,...t))},nv=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function ps(e){if(typeof e!="string"||e!==e.toLowerCase())return null;for(const[t,n]of[[Yn,0],[N2,1]])try{const{prefix:r,words:s}=t.decode(e,90);if(s[0]===n&&tv.includes(r))return{network:r,version:n,program:Uint8Array.from(t.fromWords(s.slice(1)))}}catch{}return null}const wc=e=>(e==null?void 0:e.version)===1&&e.program.length===32,xc=e=>(e==null?void 0:e.version)===0&&e.program.length===20,_h=({version:e,program:t})=>ae(Uint8Array.of(e?80+e:0,t.length),t),rv=e=>$h("BIP0322-signed-message",Ne(e)),Co=new Uint8Array(8),Hu=ae(Co,hs(Uint8Array.of(106)));function sv(e,t){const n=_h(e),r=ae(Uint8Array.of(0,32),rv(t));return Fr(ae(Qe(0),Uint8Array.of(1),new Uint8Array(32),Qe(4294967295),hs(r),Qe(0),Uint8Array.of(1),Co,hs(n),Qe(0)))}function Po(e,t,n=0){const r=_h(e),s=ae(sv(e,t),Qe(0));if(e.version===0){const o=ae(Uint8Array.of(25,118,169,20),e.program,Uint8Array.of(136,172));return Fr(ae(Qe(0),Fr(s),Fr(Qe(0)),s,o,Co,Qe(0),Fr(Hu),Qe(0),Qe(1)))}return $h("TapSighash",Uint8Array.of(0,n),Qe(0),Qe(0),xe(s),xe(Co),xe(hs(r)),xe(Qe(0)),xe(Hu),Uint8Array.of(0),Qe(0))}const ju=e=>it.encode(ae(Uint8Array.of(e.length),...e.map(hs)));function ov(e){try{const t=it.decode(e);let n=0;const r=()=>{if(n>=t.length)throw new Error("short");const o=t[n++];if(o<253)return o;if(o>253||n+2>t.length)throw new Error("size");return n+=2,t[n-2]|t[n-1]<<8},s=Array.from({length:r()},()=>{const o=r();if(n+o>t.length)throw new Error("short");return n+=o,t.slice(n-o,n)});return n===t.length?s:null}catch{return null}}function Ku(e,t,n){const r=ps(e);if(wc(r))return ju([$n.sign(Po(r,t),n,Sh)]);if(!xc(r))throw new Error("BIP-322 here signs for Taproot and P2WPKH addresses only.");const s=ke.sign(Po(r,t),n).toDERRawBytes();return ju([ae(s,Uint8Array.of(1)),ke.getPublicKey(n,!0)])}function Du(e,t,n){const r=ps(e),s=typeof n=="string"?ov(n):null;if(!r||!s)return!1;try{if(wc(r)){const[o]=s;return s.length!==1||!(o.length===64||o.length===65&&o[64]===1)?!1:$n.verify(o.slice(0,64),Po(r,t,o.length===65?1:0),r.program)}if(xc(r)){const[o,i]=s;return s.length!==2||i.length!==33||o.at(-1)!==1||!nv(hc(xe(i)),r.program)?!1:ke.verify(ke.Signature.fromDER(o.slice(0,-1)),Po(r,t),i)}}catch{}return!1}const Ah=e=>{const t=Ne(e);return dc(ae(Ne(`Ethereum Signed Message: -${t.length}`),t))},Bh=e=>typeof e=="string"&&/^0x[0-9a-fA-F]{40}$/.test(e)&&vh(e.slice(2))===e;function iv(e,t){const n=ke.sign(Ah(e),t);return`0x${Se(n.toCompactRawBytes())}${(27+n.recovery).toString(16)}`}function av(e,t,n){if(!Bh(e)||typeof n!="string"||!/^0x[0-9a-f]{130}$/.test(n))return!1;try{const r=ut(n.slice(2)),s=r[64]-27;if(s!==0&&s!==1)return!1;const o=ke.Signature.fromCompact(r.slice(0,64)).addRecoveryBit(s).recoverPublicKey(Ah(t));return Eh(o.toRawBytes(!1))===e}catch{return!1}}const Th=(e,t)=>xe(Ne(JSON.stringify([0,e,0,1,[],t])));function vc(e){try{const{prefix:t,words:n}=Yn.decode(e,90),r=Yn.fromWords(n);return t==="npub"&&r.length===32&&e===e.toLowerCase()?Se(Uint8Array.from(r)):null}catch{return null}}const cv=(e,t)=>Se($n.sign(Th(Se($n.getPublicKey(t)),e),t,Sh));function uv(e,t,n){const r=vc(e);try{return!!r&&typeof n=="string"&&/^[0-9a-f]{128}$/.test(n)&&$n.verify(n,Th(r,t),r)}catch{return!1}}const fv={taproot:Ku,segwit:Ku,nostr:(e,t,n)=>cv(t,n),ethereum:(e,t,n)=>iv(t,n)},lv={taproot:Du,segwit:Du,nostr:uv,ethereum:av};function Ih(e){const t=ps(e.taproot),n=ps(e.segwit);return wc(t)?xc(n)?t.network!==n.network?"its Taproot and SegWit addresses must be on one network":vc(e.nostr)?Bh(e.ethereum)?"":"ethereum must be an EIP-55 address":"nostr must be an npub":"segwit must be a P2WPKH address":"taproot must be a Taproot address"}function dv(e,t,n){const r=Ih(t);if(r)throw new Error(`${r[0].toUpperCase()}${r.slice(1)}.`);const s=Yo(e,t);return{...Object.fromEntries(vt.map(o=>[o,t[o]])),proof:Object.fromEntries(vt.map(o=>[o,fv[o](t[o],s,n[o])]))}}const Zr=new Map;function hv(e,t){const n=t.proof&&typeof t.proof=="object"&&!Array.isArray(t.proof)?t.proof:{},r=JSON.stringify([e,...vt.map(s=>[t[s]??null,n[s]??null])]);if(!Zr.has(r)){Zr.size>=1e3&&Zr.clear();let s=Ih(t);if(!s){const o=Yo(e,t),i=vt.find(a=>!lv[a](t[a],o,n[a]));i&&(s=`the ${i} key did not sign this keyring`)}Zr.set(r,s)}return Zr.get(r)}const Mu=e=>vt.map(t=>`${t}:${t==="nostr"?vc(e[t]):t==="ethereum"?e[t].toLowerCase():Se(ps(e[t]).program)}`),Ec="lineage/v0",pv=["white","green","black"],Zu=["sole","llc","series-llc","series","corp"],gv={sole:"sole proprietor",llc:"LLC","series-llc":"series LLC",series:"series",corp:"corporation"},Vu=/^[A-Z]{2}(-[A-Z0-9]{1,3})?$/,mv=/^[0-9a-f]{64}$/,bn=e=>e.kind==="agent"&&e.root!==e.id,zs="names are 1-40 lowercase letters, digits or hyphens (they become domains)",yv=/^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$/,Vr=e=>typeof e=="string"&&yv.test(e),ur=(e,t)=>typeof e=="string"?e.trim().slice(0,t):"";function _s(e){return String(e??"").toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")}const Xo=e=>e.events.filter(t=>t.protocol===Ec);function _n(e,{upTo:t=1/0,pending:n=!1}={}){var l;const r=new Map,s=[],o=[],i=new Map,a=new Map,c=d=>d.status==="active",u=d=>{if(d.keyring&&!d.keyring.retired)for(const p of Mu(d.keyring.keys))a.delete(p)},f=(d,p,h,g)=>{d.keyring&&!d.keyring.retired&&(u(d),d.keyring.retired={cause:p,by:h,beat:g})};for(const d of e){const p=d.status==="confirmed";if(p?d.height>t:!n)continue;const h=d.metadata&&typeof d.metadata=="object"&&!Array.isArray(d.metadata)?d.metadata:{},g={id:d.id,op:typeof h.op=="string"?h.op.slice(0,20):"?",beat:p?d.height:null,pending:!p,meta:h,parent:d.parent??null,ok:!0,why:"",node:null,root:null,also:[]},m=g.parent?r.get(g.parent):null,b=g.beat??"cued",w=E=>{g.ok=!1,g.why=E},y=E=>m?c(m)?"":`the ${E} is ${m.status}`:`the ${E} is not in this lineage`;let x="";switch(g.op){case"found":if(g.parent)w("a holding has no parent");else if(!Vr(h.name))w(zs);else if(s.some(E=>c(E)&&E.name===h.name))w(`an active holding is already named ${h.name}`);else{const E=qu(d,h.name,null,"holding");r.set(E.id,E),s.push(E),g.node=E.id}break;case"birth":{const E=h.kind==="agent"?"agent":"org";if(x=y("parent"))w(x);else if(bn(m))w("agents give birth only once they graduate");else if(!Vr(h.name))w(zs);else if(m.children.some(I=>c(r.get(I))&&r.get(I).name===h.name))w(`${m.name} already has an active ${h.name}`);else{const I=qu(d,h.name,m,E);I.index=m.children.filter(P=>r.get(P).kind===E).length,m.children.push(I.id),r.set(I.id,I),g.node=I.id}break}case"award":{const E=r.get(h.to);(x=y("issuer"))?w(x):bn(m)?w("agents award belts only once they graduate"):!E||E.id===m.id?w("the recipient must be another node in this lineage"):c(E)?!Vr(h.skill)||!pv.includes(h.belt)?w("an award needs a skill name and a belt (white, green or black)"):(E.badges=E.badges.filter(I=>I.skill!==h.skill),E.badges.push({skill:h.skill,belt:h.belt,by:m.id,beat:b,id:d.id}),g.node=E.id):w(`the recipient is ${E.status}`);break}case"decide":(x=y("decider"))?w(x):ur(h.title,140)?(m.decisions.push({title:ur(h.title,140),why:ur(h.why,400),beat:b,id:d.id}),g.node=m.id):w("a decision needs a title");break;case"make":(x=y("maker"))?w(x):Vr(h.name)?m.made.some(E=>i.get(E).name===h.name)?w(`there is already a ${h.name} by ${m.name}`):(i.set(d.id,{id:d.id,name:h.name,note:ur(h.note,280),maker:m.id,beat:b}),m.made.push(d.id),g.node=m.id):w(zs);break;case"graduate":{const E=r.get(h.of);if(x=y("parent"))w(x);else if(!E||E.parent!==m.id)w("only its parent can graduate a child");else if(!c(E))w(`the child is ${E.status}`);else if(E.edge==="adopted")w("already graduated");else{const I=E.root,P=U=>{U.root=E.id;for(const L of U.children)r.get(L).root===I&&P(r.get(L))};E.edge="adopted",E.graduated=b,g.node=E.id,P(E),s.push(E);const B=U=>{f(U,"graduate",E.id,b);for(const L of U.children)r.get(L).edge==="derived"&&B(r.get(L))};B(E)}break}case"close":if(!m)w(g.parent?"that node is not in this lineage":"a close spends the node it closes");else if(!c(m))w(`already ${m.status}`);else{const E=I=>{I.status="closed",I.closed=b,f(I,"close",m.id,b);for(const P of I.children){const B=r.get(P);B.edge==="derived"&&c(B)&&(g.also.push(B.id),E(B))}};E(m),g.node=m.id}break;case"charter":{const E=h.form==="series",I=E?r.get(h.of):m,P=m&&(m.kind==="holding"||m.kind==="agent");(x=y(E?"master":"node"))?w(x):Zu.includes(h.form)?!E&&h.of!==void 0&&h.of!==m.id?w("a node charters itself; only a series is chartered by its master"):E&&(!I||!bv(r,I,m))?w("a series must descend from its master"):E&&!c(I)?w(`the series is ${I.status}`):E&&I.kind!=="org"?w("only orgs become series"):E&&((l=m.charter)==null?void 0:l.form)!=="series-llc"?w(`${m.name} is not chartered as a series LLC`):E&&h.jurisdiction!==void 0?w("a series takes its master's jurisdiction"):h.form==="sole"&&!P?w("a sole proprietor is a person: a holding or an agent"):h.form!=="sole"&&!E&&bn(m)?w("an agent graduates before it incorporates"):h.form!=="sole"&&!E&&!Vu.test(h.jurisdiction??"")||h.form==="sole"&&h.jurisdiction!==void 0&&!Vu.test(h.jurisdiction)?w("a jurisdiction is an ISO code such as US-WY"):h.provider!==void 0&&!Vr(h.provider)?w(`a provider's name follows the name rule: ${zs}`):h.filing!==void 0&&!mv.test(h.filing)?w("a filing is the SHA-256 of the filed documents, in hex"):(I.charter={id:d.id,beat:b,form:h.form,jurisdiction:E?null:h.jurisdiction??null,legal:ur(h.legal,120)||null,provider:h.provider??null,filing:h.filing??null,master:E?m.id:null},g.node=I.id):w(`a charter's form is ${Zu.join(", ")}`);break}case"keyring":{if(x=y("node"))w(x);else if(x=hv(m.id,h))w(x);else{const E=Object.fromEntries(vt.map(B=>[B,h[B]])),I=Mu(E),P=I.findIndex(B=>a.has(B)&&a.get(B)!==m.id);if(P>=0)w(`its ${vt[P]} key is already bound to ${r.get(a.get(I[P])).name}`);else{u(m),m.keyring={id:d.id,beat:b,keys:E,retired:null};for(const B of I)a.set(B,m.id);g.node=m.id}}break}default:w("not a lineage/v0 op")}const $=g.node?r.get(g.node).root:null;g.root=(m==null?void 0:m.root)??$,g.roots=[...new Set([g.root,$].filter(Boolean))],o.push(g)}return{nodes:r,roots:s,log:o,items:i,bound:a}}function qu(e,t,n,r){return{id:e.id,name:t,kind:r,parent:(n==null?void 0:n.id)??null,root:n?n.root:e.id,edge:n?"derived":null,status:"active",index:null,born:e.status==="confirmed"?e.height:"cued",children:[],badges:[],decisions:[],made:[],keyring:null,charter:null,graduated:null,closed:null}}function bv(e,t,n){for(let r=e.get(t.parent);r;r=e.get(r.parent))if(r.id===n.id)return!0;return!1}function Yr(e,t){var s;const n=t==null?void 0:t.charter;if(!n)return null;if(t.status!=="active")return{ok:!1,why:`${t.name} is closed`};if(n.form!=="series")return{ok:!0,why:""};const r=e.nodes.get(n.master);return r.status!=="active"?{ok:!1,why:`${r.name} is closed`}:((s=r.charter)==null?void 0:s.form)!=="series-llc"?{ok:!1,why:`${r.name} no longer holds series`}:t.root!==r.root?{ok:!1,why:`${t.name} is no longer in ${r.name}'s holding`}:{ok:!0,why:""}}function wv(e,t){const n=[],r=e.nodes.get(t),s=(o,i,a)=>{const c=o.root!==t;if(n.push({type:"node",node:o,guide:i,path:o.id===t?"●":`${o.index}'`,away:c}),c)return;const u=o.children.map(l=>e.nodes.get(l)),f=[["agents",u.filter(l=>l.kind==="agent")],["orgs",u.filter(l=>l.kind!=="agent")]].filter(([,l])=>l.length);f.forEach(([l,d],p)=>{const h=p===f.length-1,g=a+(h?" ":"│ ");n.push({type:"group",label:l,guide:a+(h?"└─ ":"├─ ")}),d.forEach((m,b)=>{const w=b===d.length-1;s(m,g+(w?"└─ ":"├─ "),g+(w?" ":"│ "))})})};return r&&s(r,"",""),n}function xv(e,t){const n={orgs:0,agents:0,belts:0,decisions:0,closed:0};for(const r of e.nodes.values())r.root===t&&(r.id!==t&&(n[r.kind==="agent"?"agents":"orgs"]++,r.status==="closed"&&n.closed++),n.belts+=r.badges.length,n.decisions+=r.decisions.length);return n}function Tr(e,t){const n=[];for(let r=e.nodes.get(t);r;r=r.id===r.root?null:e.nodes.get(r.parent))n.unshift(r.name);return n.join(" / ")}function Oh(e,t){const n=e.meta,r=s=>{var o;return((o=t.nodes.get(s))==null?void 0:o.name)??(typeof s=="string"?`${s.slice(0,8)}…`:"?")};if(!e.ok)return`${e.op}: ${e.why}`;switch(e.op){case"found":return`found ${n.name}`;case"birth":return`birth ${n.name}${n.kind==="agent"?" (agent)":""} ← ${r(e.parent)}`;case"award":return`award ${n.skill} · ${n.belt} → ${r(n.to)}, from ${r(e.parent)}`;case"decide":return`decide “${ur(n.title,140)}” · ${r(e.parent)}`;case"make":return`make ${n.name} · ${r(e.parent)}`;case"keyring":return`keyring · ${r(e.parent)}`;case"charter":return n.form==="series"?`charter ${r(n.of)} as a series of ${r(e.parent)}`:`charter ${r(e.parent)} · ${gv[n.form]}${n.jurisdiction?` (${n.jurisdiction})`:""}`;case"graduate":return`graduate ${r(n.of)} from ${r(e.parent)}`;case"close":return`close ${r(e.parent)}${e.also.length?` and ${e.also.length} derived`:""}`;default:return e.op}}const pn=Se,vv=ae,da=ut,Ev=tr,gn="super-testnet-local-v0";class An{constructor(t){if(!/^[0-9a-f]{64}$/.test(t)||!ke.utils.isValidPrivateKey(t))throw new Error("Invalid test wallet key. Load a Super Testnet v0 backup.");this.kind="test-wallet",this.secret=t,this.pubkey=pn($n.getPublicKey(t)),this.address=Qr.p2tr.fromPubKey(this.pubkey,"regtest"),this.script=["OP_1",this.pubkey]}static create(){return new An(pn(ke.utils.randomPrivateKey()))}static load(t){if((t==null?void 0:t.network)!==gn||(t==null?void 0:t.version)!==1||(t==null?void 0:t.kind)!=="test-wallet")throw new Error("Only Super Testnet v0 test-wallet backups are accepted.");return new An(t.secret)}backup(){return{kind:"test-wallet",version:1,network:gn,secret:this.secret}}sign(t,n,r=0){return xr.taproot.sign(this.secret,t,r,n?{extension:n}:{}).hex}}const Fs=50*1e8,Ws="0".repeat(64),zu=e=>pn(xe(new TextEncoder().encode(JSON.stringify(e)))),ir=(e,t)=>`${e}:${t}`,We=e=>Be.encode(e,!1).hex,le=(e,t)=>{if(!e)throw new Error(t)},Fu=/^5120[0-9a-f]{64}$/,Gs=/^0014[0-9a-f]{40}$/,Ch=64,wt=8,kv=e=>pn(hc(xe(da(e))));function Sv(e,t){const[n,r]=e.vin[t].witness;return ke.verify(n.slice(0,-2),xr.segwit.hash(e,t,{pubkey:r,sigflag:1}),r,{lowS:!0,format:"der"})}const Ii=(e,...t)=>{const n=xe(new TextEncoder().encode(e));return xe(vv(n,n,...t))},$v=e=>e<253?Uint8Array.of(e):Uint8Array.of(253,e&255,e>>8);function _v(e,t){const[n,r,s]=e.vin[t].witness,o=da(s),i=da(r);if(o.length<33||(o.length-33)%32||i.length>65535||!/^20[0-9a-f]{64}ac/.test(r))return!1;const a=Ii("TapLeaf",Uint8Array.of(o[0]&254),$v(i.length),i);let c=a;for(let l=33;l=ke.CURVE.n)return!1;const f=ke.ProjectivePoint.fromHex(`02${pn(o.slice(1,33))}`).add(ke.ProjectivePoint.BASE.multiply(u)).toAffine();return`5120${f.x.toString(16).padStart(64,"0")}`!==We(e.vin[t].prevout.scriptPubKey)||Number(f.y&1n)!==(o[0]&1)?!1:$n.verify(n,xr.taproot.hash(e,t,{extension:pn(a)}),r.slice(2,66))}class Jo{constructor(t){if(this.blocks=[],this.mempool=[],this.utxos=new Map,this.transactions=new Map,this.imports=[],t){le(t.network===gn&&t.version===1,"Unsupported local chain version/network."),le(Array.isArray(t.blocks)&&Array.isArray(t.mempool)&&Array.isArray(t.imports??[]),"Invalid chain snapshot.");for(const n of t.imports??[])this.importCoin(n);for(const n of t.blocks)this.acceptBlock(structuredClone(n));this.submitPackage(t.mempool)}}snapshot(){return{network:gn,version:1,blocks:structuredClone(this.blocks),mempool:[...this.mempool],...this.imports.length?{imports:structuredClone(this.imports)}:{}}}importCoin({txid:t,vout:n,value:r,script:s}){le(/^[0-9a-f]{64}$/.test(t)&&Number.isSafeInteger(n)&&n>=0&&Number.isSafeInteger(r)&&r>=330&&r<=Fs&&(Fu.test(s)||Gs.test(s)),"Invalid imported coin."),le(!this.utxos.has(ir(t,n))&&!this.transactions.has(t)&&!this.imported(t,n),"That coin is already in this chain."),this.utxos.set(ir(t,n),{txid:t,vout:n,value:r,scriptPubKey:s,height:0,ranges:uf(this.imports.length,r),inscriptions:[]}),this.imports.push({txid:t,vout:n,value:r,script:s})}imported(t,n){const r=this.imports.find(s=>s.txid===t&&s.vout===n);return r?{value:r.value,scriptPubKey:r.script}:null}coins(t){return[...this.utxos.values()].filter(n=>We(n.scriptPubKey)===We(t))}satLocation(t){for(const n of this.utxos.values()){const r=Xs(n.ranges,t);if(r!==null)return{txid:n.txid,vout:n.vout,offset:r}}return null}balance(t){return this.coins(t).reduce((n,r)=>n+r.value,0)}apply(t,n,r=!1){var m,b,w;le(typeof t=="string"&&t.length<4e4&&/^(?:[a-f0-9]{2})+$/.test(t),"Invalid raw transaction.");const s=ie.decode(t),o=ie.util.getTxid(s);le(!this.transactions.has(o),"Duplicate transaction."),le(s.version===2&&s.locktime===0,"Unsupported transaction version or locktime.");const i=!r&&s.vin.some(y=>{var x;return((x=y.witness)==null?void 0:x.length)===3}),a=r?1:i?2:wt,c=r?Ch:i?2:wt;le(s.vin.length>=1&&s.vin.length<=a&&s.vout.length>=1&&s.vout.length<=c,"Unsupported transaction shape.");let u=0;for(const y of s.vout){const x=Number(y.value);le(Number.isSafeInteger(x)&&x>=330&&x<=Fs,"Invalid output amount.");const $=We(y.scriptPubKey);le(Fu.test($)||Gs.test($),"Only Taproot and P2WPKH outputs are supported."),u+=x}let f,l=[];const d=s.vin.findIndex(y=>{var x;return((x=y.witness)==null?void 0:x.length)===3}),p=s.vin[d<0?0:d];if(r)le(p.txid===Ws&&p.vout===4294967295&&u===Fs,"Invalid local coinbase."),le(We(p.scriptSig)===Be.encode([new TextEncoder().encode(`${gn}:${n}`)],!1).hex,"Wrong coinbase height."),le(!((m=p.witness)!=null&&m.length),"Unexpected coinbase witness.");else{l=s.vin.map(x=>this.utxos.get(ir(x.txid,x.vout))),le(l.every(Boolean),"Input is missing or already spent."),le(new Set(s.vin.map(x=>ir(x.txid,x.vout))).size===s.vin.length,"Duplicate input."),s.vin.forEach((x,$)=>{var I,P,B;le(x.sequence==="ffffffff"&&We(x.scriptSig)==="","Unsupported input flags."),x.prevout={value:l[$].value,scriptPubKey:l[$].scriptPubKey};const E=We(l[$].scriptPubKey);if(Gs.test(E)){const[U,L]=x.witness??[];le($!==d&&((I=x.witness)==null?void 0:I.length)===2,"Unsupported witness."),le(/^30[0-9a-f]{12,140}01$/.test(U)&&/^0[23][0-9a-f]{64}$/.test(L)&&kv(L)===E.slice(4),"P2WPKH spends need a SIGHASH_ALL signature by the key they pay.");return}le(((P=x.witness)==null?void 0:P.length)===1||$===d&&((B=x.witness)==null?void 0:B.length)===3,"Unsupported witness."),le(/^[0-9a-f]{128}$/.test(x.witness[0])||!i&&/^[0-9a-f]{128}83$/.test(x.witness[0]),"Only default 64-byte Schnorr signatures, or SIGHASH_SINGLE|ANYONECANPAY outside reveals, are accepted.")}),le(l.reduce((x,$)=>x+$.value,0)-u===de,"v0 requires a fixed 500 sat fee per transaction.");let y={};if(p.witness.length===3){const x=rc(p.witness),$=d;if(le(Number(s.vout[$].value)===Bt,"Invalid reveal postage."),le(We(s.vout[$].scriptPubKey)===`5120${x.pubkey}`,"Reveal must return to its signing wallet."),x.parent){const E=d===0?1:0,I=l[E];le((b=I==null?void 0:I.inscriptions)==null?void 0:b.some(P=>P.id===x.parent),"Referenced parent inscription must actually be spent."),le(s.vout.length===2&&Number(s.vout[E].value)===I.value&&We(I.scriptPubKey)===`5120${x.pubkey}`&&We(s.vout[E].scriptPubKey)===We(I.scriptPubKey),"Parent must be owned and preserved in the same wallet.")}else s.vin.length===2&&(le(d===1&&((w=l[0].inscriptions)==null?void 0:w.length)&&x.pointer!==void 0,"Reinscription spend requires correct tag and owned sat."),le(Number(s.vout[0].value)===l[0].value&&We(s.vout[0].scriptPubKey)===We(l[0].scriptPubKey)&&We(l[0].scriptPubKey)===`5120${x.pubkey}`,"Reinscription sat must be returned to owner."));y={pubkey:x.pubkey},f={id:`${o}i0`,txid:o,commitTxid:p.txid,text:x.text,bytes:Array.from(x.bytes),contentType:x.contentType,parent:x.parent,delegate:x.delegate,pointer:x.pointer,metaprotocol:x.metaprotocol,metadata:x.metadata,height:n,value:Bt}}s.vin.forEach((x,$)=>{let E=!1;try{E=Gs.test(We(l[$].scriptPubKey))?Sv(s,$):$===d?_v(s,$)||xr.taproot.verify(s,$,y):xr.taproot.verify(s,$,{})}catch{}le(E,"Invalid signature or Taproot commitment.")})}const h=df(s,l,n,r),g=l.flatMap(y=>y.inscriptions??[]);if(f){const y=BigInt(f.pointer??0),x=y{var E;return((E=$.inscription)==null?void 0:E.sat)===f.sat}).length,g.push(f)}return le(g.every(y=>h.some(x=>Xs(x,y.sat)!==null)),"Local lab protects inscription sats from fee loss."),r||s.vin.forEach(y=>this.utxos.delete(ir(y.txid,y.vout))),s.vout.forEach((y,x)=>{const $=g.filter(E=>Xs(h[x],E.sat)!==null);this.utxos.set(ir(o,x),{txid:o,vout:x,value:Number(y.value),scriptPubKey:y.scriptPubKey,height:n,ranges:h[x],inscriptions:$,...$.length?{inscription:$[0]}:{}})}),this.transactions.set(o,{txid:o,raw:t,height:n,coinbase:r,tx:s,...f?{inscription:f}:{}}),o}submitPackage(t){le(Array.isArray(t)&&this.mempool.length+t.length<=1e3,"Invalid package or mempool full; mine a block first.");const n=new Map(this.utxos),r=new Map(this.transactions);try{t.forEach(s=>this.apply(s,null))}catch(s){throw this.utxos=n,this.transactions=r,s}this.mempool.push(...t)}acceptBlock(t){var i;le(t.height===this.blocks.length+1&&t.previous===(((i=this.blocks.at(-1))==null?void 0:i.hash)??Ws),"Invalid block ancestry."),le(Number.isSafeInteger(t.time)&&t.time>0&&Array.isArray(t.raws)&&t.raws.length>0&&t.raws.length<=1001,"Invalid block.");const{hash:n,...r}=t;le(zu(r)===n,"Invalid local block hash.");const s=new Map(this.utxos),o=new Map(this.transactions);try{t.raws.forEach((a,c)=>this.apply(a,t.height,c===0))}catch(a){throw this.utxos=s,this.transactions=o,a}this.blocks.push(t)}mine(t){return this.mineTo([Ke(Fs,t)])}mineTo(t){var a;const n=new Jo({...this.snapshot(),mempool:[]}),r=this.blocks.length+1,s=ie.create({vin:[{txid:Ws,vout:4294967295,scriptSig:[new TextEncoder().encode(`${gn}:${r}`)]}],vout:t}),o={height:r,previous:((a=this.blocks.at(-1))==null?void 0:a.hash)??Ws,time:Date.now(),raws:[ie.encode(s).hex,...this.mempool]},i={...o,hash:zu(o)};return n.acceptBlock(i),Object.assign(this,n),i}}const Ph="lineage-claim",ha=330,Uo=e=>Be.encode(e,!1).hex,Wu=e=>({txid:e.txid,vout:e.vout,value:e.value,script:Uo(e.scriptPubKey)}),Oi=/^[0-9a-f]{64}$/,Av=/^5120[0-9a-f]{64}$/;function Qo(e,t){var n;for(const r of e.utxos.values())if((n=r.inscriptions)!=null&&n.some(s=>s.id===t))return r;return null}function Uh(e){return ie.create({vin:[Vt(e.holder.txid,e.holder.vout,e.holder.value,e.holder.script),Vt(e.payer.txid,e.payer.vout,e.payer.value,e.payer.script)],vout:[Ke(e.holder.value,["OP_1",e.to]),Ke(e.payer.value-de,["OP_1",e.to])]})}function Bv(e,t,n,r=Date.now()){if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Claims are signed by local test wallets.");const s=Qo(e,t);if(!s)throw new Error("That inscription is not in an unspent output.");if(Uo(s.scriptPubKey)===Uo(n.script))throw new Error("The recipient already holds that inscription.");const o=e.coins(n.script).find(c=>{var u;return!((u=c.inscriptions)!=null&&u.length)&&c.value>=de+ha});if(!o)throw new Error("The recipient needs a plain coin for the 500-sat fee. Mine a block to it first.");const i={kind:Ph,version:1,inscription:t,carried:s.inscriptions.map(c=>c.id),holder:Wu(s),payer:Wu(o),to:n.pubkey,at:r},a=Uh(i);return i.txid=ie.util.getTxid(a),i.sig=n.sign(a,void 0,1),i}function Tv(e,t,n){const r=Ov(t);if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Countersigning needs a local test wallet.");if(Uo(n.script)!==r.holder.script)throw new Error("Only the current holder can countersign.");if(Iv(e,r)!=="open")throw new Error("This claim is stale: an input it spends was already spent.");const s=Uh(r);return s.vin[1].witness=[r.sig],s.vin[0].witness=[n.sign(s,void 0,0)],e.submitPackage([ie.encode(s).hex]),ie.util.getTxid(s)}function Iv(e,t){return e.utxos.has(`${t.holder.txid}:${t.holder.vout}`)&&e.utxos.has(`${t.payer.txid}:${t.payer.vout}`)?"open":"stale"}function Ov(e){const t=n=>n&&Oi.test(n.txid)&&Number.isSafeInteger(n.vout)&&n.vout>=0&&Number.isSafeInteger(n.value)&&n.value>=ha&&Av.test(n.script);if((e==null?void 0:e.kind)!==Ph||e.version!==1||!/^[0-9a-f]{64}i\d+$/.test(e.inscription)||!Array.isArray(e.carried)||!t(e.holder)||!t(e.payer)||e.payer.value255*s)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(r/s);n===void 0&&(n=Gu);const i=new Uint8Array(o*s),a=Sn.create(e,t),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let f=0;fPv(e,Cv(e,t,n),r,s);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const fn=BigInt(0),Re=BigInt(1),Pi=BigInt(2),Nv=BigInt(8);function Lv(e,t,n,r){const s=e.sqr(n),o=e.sqr(r),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function Rv(e,t={}){const n=Vd("edwards",e,t,t.FpFnLE),{Fp:r,Fn:s}=n;let o=n.CURVE;const{h:i}=o;Ur(t,{},{uvRatio:"function"});const a=Pi<r.create(m),u=t.uvRatio||((m,b)=>{try{return{isValid:!0,value:r.sqrt(r.div(m,b))}}catch{return{isValid:!1,value:fn}}});if(!Lv(r,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function f(m,b,w=!1){const y=w?Re:fn;return ds("coordinate "+m,b,y,a),b}function l(m){if(!(m instanceof h))throw new Error("ExtendedPoint expected")}const d=So((m,b)=>{const{X:w,Y:y,Z:x}=m,$=m.is0();b==null&&(b=$?Nv:r.inv(x));const E=c(w*b),I=c(y*b),P=r.mul(x,b);if($)return{x:fn,y:Re};if(P!==Re)throw new Error("invZ was invalid");return{x:E,y:I}}),p=So(m=>{const{a:b,d:w}=o;if(m.is0())throw new Error("bad point: ZERO");const{X:y,Y:x,Z:$,T:E}=m,I=c(y*y),P=c(x*x),B=c($*$),U=c(B*B),L=c(I*b),D=c(B*c(L+P)),k=c(U+c(w*c(I*P)));if(D!==k)throw new Error("bad point: equation left != right (1)");const _=c(y*x),v=c($*E);if(_!==v)throw new Error("bad point: equation left != right (2)");return!0});class h{constructor(b,w,y,x){this.X=f("x",b),this.Y=f("y",w),this.Z=f("z",y,!0),this.T=f("t",x),Object.freeze(this)}static CURVE(){return o}static fromAffine(b){if(b instanceof h)throw new Error("extended point not allowed");const{x:w,y}=b||{};return f("x",w),f("y",y),new h(w,y,Re,c(w*y))}static fromBytes(b,w=!1){const y=r.BYTES,{a:x,d:$}=o;b=xu(gt(b,y,"point")),Fn(w,"zip215");const E=xu(b),I=b[y-1];E[y-1]=I&-129;const P=Wn(E),B=w?a:r.ORDER;ds("point.y",P,fn,B);const U=c(P*P),L=c(U-Re),D=c($*U-x);let{isValid:k,value:_}=u(L,D);if(!k)throw new Error("bad point: invalid y coordinate");const v=(_&Re)===Re,A=(I&128)!==0;if(!w&&_===fn&&A)throw new Error("bad point: x=0 and x_0=1");return A!==v&&(_=c(-_)),h.fromAffine({x:_,y:P})}static fromHex(b,w=!1){return h.fromBytes(me("point",b),w)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(b=8,w=!0){return g.createCache(this,b),w||this.multiply(Pi),this}assertValidity(){p(this)}equals(b){l(b);const{X:w,Y:y,Z:x}=this,{X:$,Y:E,Z:I}=b,P=c(w*I),B=c($*x),U=c(y*I),L=c(E*x);return P===B&&U===L}is0(){return this.equals(h.ZERO)}negate(){return new h(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:b}=o,{X:w,Y:y,Z:x}=this,$=c(w*w),E=c(y*y),I=c(Pi*c(x*x)),P=c(b*$),B=w+y,U=c(c(B*B)-$-E),L=P+E,D=L-I,k=P-E,_=c(U*D),v=c(L*k),A=c(U*k),C=c(D*L);return new h(_,v,C,A)}add(b){l(b);const{a:w,d:y}=o,{X:x,Y:$,Z:E,T:I}=this,{X:P,Y:B,Z:U,T:L}=b,D=c(x*P),k=c($*B),_=c(I*y*L),v=c(E*U),A=c((x+$)*(P+B)-D-k),C=v-_,R=v+_,N=c(k-w*D),j=c(A*C),M=c(R*N),F=c(A*N),ue=c(C*R);return new h(j,M,ue,F)}subtract(b){return this.add(b.negate())}multiply(b){if(!s.isValidNot0(b))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:w,f:y}=g.cached(this,b,x=>jn(h,x));return jn(h,[w,y])[0]}multiplyUnsafe(b,w=h.ZERO){if(!s.isValid(b))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return b===fn?h.ZERO:this.is0()||b===Re?this:g.unsafe(this,b,y=>jn(h,y),w)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return g.unsafe(this,o.n).is0()}toAffine(b){return d(this,b)}clearCofactor(){return i===Re?this:this.multiplyUnsafe(i)}toBytes(){const{x:b,y:w}=this.toAffine(),y=r.toBytes(w);return y[y.length-1]|=b&Re?128:0,y}toHex(){return Se(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(b){return jn(h,b)}static msm(b,w){return Zd(h,s,b,w)}_setWindowSize(b){this.precompute(b)}toRawBytes(){return this.toBytes()}}h.BASE=new h(o.Gx,o.Gy,Re,c(o.Gx*o.Gy)),h.ZERO=new h(fn,Re,Re,fn),h.Fp=r,h.Fn=s;const g=new Md(h,s.BITS);return h.BASE.precompute(8),h}function Hv(e,t,n={}){if(typeof t!="function")throw new Error('"hash" function param is required');Ur(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:r}=n,{BASE:s,Fp:o,Fn:i}=e,a=n.randomBytes||er,c=n.adjustScalarBytes||(B=>B),u=n.domain||((B,U,L)=>{if(Fn(L,"phflag"),U.length||L)throw new Error("Contexts/pre-hash are not supported");return B});function f(B){return i.create(Wn(B))}function l(B){const U=y.secretKey;B=me("private key",B,U);const L=me("hashed private key",t(B),2*U),D=c(L.slice(0,U)),k=L.slice(U,2*U),_=f(D);return{head:D,prefix:k,scalar:_}}function d(B){const{head:U,prefix:L,scalar:D}=l(B),k=s.multiply(D),_=k.toBytes();return{head:U,prefix:L,scalar:D,point:k,pointBytes:_}}function p(B){return d(B).pointBytes}function h(B=Uint8Array.of(),...U){const L=ae(...U);return f(t(u(L,me("context",B),!!r)))}function g(B,U,L={}){B=me("message",B),r&&(B=r(B));const{prefix:D,scalar:k,pointBytes:_}=d(U),v=h(L.context,D,B),A=s.multiply(v).toBytes(),C=h(L.context,A,_,B),R=i.create(v+C*k);if(!i.isValid(R))throw new Error("sign failed: invalid s");const N=ae(A,i.toBytes(R));return gt(N,y.signature,"result")}const m={zip215:!0};function b(B,U,L,D=m){const{context:k,zip215:_}=D,v=y.signature;B=me("signature",B,v),U=me("message",U),L=me("publicKey",L,y.publicKey),_!==void 0&&Fn(_,"zip215"),r&&(U=r(U));const A=v/2,C=B.subarray(0,A),R=Wn(B.subarray(A,v));let N,j,M;try{N=e.fromBytes(L,_),j=e.fromBytes(C,_),M=s.multiplyUnsafe(R)}catch{return!1}if(!_&&N.isSmallOrder())return!1;const F=h(k,j.toBytes(),N.toBytes(),U);return j.add(N.multiplyUnsafe(F)).subtract(M).clearCofactor().is0()}const w=o.BYTES,y={secretKey:w,publicKey:w,signature:2*w,seed:w};function x(B=a(y.seed)){return gt(B,y.seed,"seed")}function $(B){const U=P.randomSecretKey(B);return{secretKey:U,publicKey:p(U)}}function E(B){return Es(B)&&B.length===i.BYTES}function I(B,U){try{return!!e.fromBytes(B,U)}catch{return!1}}const P={getExtendedPublicKey:d,randomSecretKey:x,isValidSecretKey:E,isValidPublicKey:I,toMontgomery(B){const{y:U}=e.fromBytes(B),L=y.publicKey,D=L===32;if(!D&&L!==57)throw new Error("only defined for 25519 and 448");const k=D?o.div(Re+U,Re-U):o.div(U-Re,U+Re);return o.toBytes(k)},toMontgomerySecret(B){const U=y.secretKey;gt(B,U);const L=t(B.subarray(0,U));return c(L).subarray(0,U)},randomPrivateKey:x,precompute(B=8,U=e.BASE){return U.precompute(B,!1)}};return Object.freeze({keygen:$,getPublicKey:p,sign:g,verify:b,utils:P,Point:e,lengths:y})}function jv(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp,r=nr(t.n,e.nBitLength,!0),s={Fp:n,Fn:r,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function Kv(e,t){const n=t.Point;return Object.assign({},t,{ExtendedPoint:n,CURVE:e,nBitLength:n.Fn.BITS,nByteLength:n.Fn.BYTES})}function Dv(e){const{CURVE:t,curveOpts:n,hash:r,eddsaOpts:s}=jv(e),o=Rv(t,n),i=Hv(o,r,s);return Kv(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const qr=BigInt(0),ar=BigInt(1),Ys=BigInt(2);function Mv(e){return Ur(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function Zv(e){const t=Mv(e),{P:n,type:r,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=t,a=r==="x25519";if(!a&&r!=="x448")throw new Error("invalid type");const c=i||er,u=a?255:448,f=a?32:56,l=BigInt(a?9:5),d=BigInt(a?121665:39081),p=a?Ys**BigInt(254):Ys**BigInt(447),h=a?BigInt(8)*Ys**BigInt(251)-ar:BigInt(4)*Ys**BigInt(445)-ar,g=p+h+ar,m=k=>Ee(k,n),b=w(l);function w(k){return ac(m(k),f)}function y(k){const _=me("u coordinate",k,f);return a&&(_[31]&=127),m(Wn(_))}function x(k){return Wn(s(me("scalar",k,f)))}function $(k,_){const v=P(y(_),x(k));if(v===qr)throw new Error("invalid private or public key received");return w(v)}function E(k){return $(k,b)}function I(k,_,v){const A=m(k*(_-v));return _=m(_-A),v=m(v+A),{x_2:_,x_3:v}}function P(k,_){ds("u",k,qr,n),ds("scalar",_,p,g);const v=_,A=k;let C=ar,R=qr,N=k,j=ar,M=qr;for(let ue=BigInt(u-1);ue>=qr;ue--){const oe=v>>ue&ar;M^=oe,{x_2:C,x_3:N}=I(M,C,N),{x_2:R,x_3:j}=I(M,R,j),M=oe;const Q=C+R,he=m(Q*Q),pe=C-R,Ie=m(pe*pe),fe=he-Ie,we=N+j,Lt=N-j,rt=m(Lt*Q),De=m(we*pe),Rt=rt+De,jr=rt-De;N=m(Rt*Rt),j=m(A*m(jr*jr)),C=m(he*Ie),R=m(fe*(he+m(d*fe)))}({x_2:C,x_3:N}=I(M,C,N)),{x_2:R,x_3:j}=I(M,R,j);const F=o(R);return m(C*F)}const B={secretKey:f,publicKey:f,seed:f},U=(k=c(f))=>(He(k,B.seed),k);function L(k){const _=U(k);return{secretKey:_,publicKey:E(_)}}return{keygen:L,getSharedSecret:(k,_)=>$(k,_),getPublicKey:k=>E(k),scalarMult:$,scalarMultBase:E,utils:{randomSecretKey:U,randomPrivateKey:U},GuBytes:b.slice(),lengths:B}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vv=BigInt(1),Yu=BigInt(2),qv=BigInt(3),zv=BigInt(5),Fv=BigInt(8),kc=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Nh={p:kc,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Fv,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Lh(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),o=kc,a=e*e%o*e%o,c=_e(a,Yu,o)*a%o,u=_e(c,Vv,o)*e%o,f=_e(u,zv,o)*u%o,l=_e(f,t,o)*f%o,d=_e(l,n,o)*l%o,p=_e(d,r,o)*d%o,h=_e(p,s,o)*p%o,g=_e(h,s,o)*p%o,m=_e(g,t,o)*f%o;return{pow_p_5_8:_e(m,Yu,o)*e%o,b2:a}}function Rh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const Xu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Wv(e,t){const n=kc,r=Ee(t*t*t,n),s=Ee(r*r*t,n),o=Lh(e*s).pow_p_5_8;let i=Ee(e*r*o,n);const a=Ee(t*i*i,n),c=i,u=Ee(i*Xu,n),f=a===e,l=a===Ee(-e,n),d=a===Ee(-e*Xu,n);return f&&(i=c),(l||d)&&(i=u),zx(i,n)&&(i=Ee(-i,n)),{isValid:f||l,value:i}}const Hh=nr(Nh.p,{isLE:!0}),Gv={...Nh,Fp:Hh,hash:ls,adjustScalarBytes:Rh,uvRatio:Wv},ei=Dv(Gv),jh=(()=>{const e=Hh.ORDER;return Zv({P:e,type:"x25519",powPminus2:t=>{const{pow_p_5_8:n,b2:r}=Lh(t);return Ee(_e(n,qv,e)*r,e)},adjustScalarBytes:Rh})})(),Yv=Ne("lineage/v0"),Ot=(e,t)=>Uv(xe,e,Yv,Ne(t),32),ti=e=>{const t=Uint8Array.from(e);return t[0]&=248,t[31]&=127,t[31]|=64,t},Kh=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t},lt=e=>ae(Kh(e.length),e),Sc=e=>ae(lt(Ne("ssh-ed25519")),lt(e)),pa=(e,t)=>`ssh-ed25519 ${it.encode(Sc(e))}${t?` ${t}`:""}`,ga=e=>`SHA256:${it.encode(xe(Sc(e))).replace(/=+$/,"")}`;function Xv(e){const t=ut(e),n=r=>ei.getPublicKey(Ot(t,r));return{ssh:n("ssh"),git:n("git"),dkim:n("dkim"),wg:jh.getPublicKey(ti(Ot(t,"wg")))}}function Jv(e){const t=n=>ei.getPublicKey(Ot(e,n));return{"ssh-ca":t("node/ssh-ca"),mtls:t("node/mtls"),noise:jh.getPublicKey(ti(Ot(e,"node/noise")))}}function Qv(e,t,n,r){return[["ssh",ga(e.ssh),pa(e.ssh,t)],["git",ga(e.git),`${t} namespaces="git" ${pa(e.git,t)}`],["dkim",`${n}._domainkey.${r}`,`${n}._domainkey.${r}. IN TXT "v=DKIM1; k=ed25519; p=${it.encode(e.dkim)}"`],["wg",it.encode(e.wg),`[Peer] -# ${t} -PublicKey = ${it.encode(e.wg)}`]]}function eE(e,t){return[["ssh-ca",ga(e["ssh-ca"]),pa(e["ssh-ca"],`lineage-ca@${t}`)],["mtls",it.encode(e.mtls),null],["noise",`mkey:${Se(e.noise)}`,null]]}const tE=ut("302e020100300506032b657004220420");function Dh(e,t,n){const r=xe(e).slice(0,4);let s=ae(r,r,lt(Ne("ssh-ed25519")),lt(t),lt(ae(e,t)),lt(Ne(n)));s=ae(s,new Uint8Array((8-s.length%8)%8).map((i,a)=>a+1));const o=ae(Ne("openssh-key-v1\0"),lt(Ne("none")),lt(Ne("none")),lt(new Uint8Array(0)),Kh(1),lt(Sc(t)),lt(s));return`-----BEGIN OPENSSH PRIVATE KEY----- -${it.encode(o).match(/.{1,70}/g).join(` -`)} ------END OPENSSH PRIVATE KEY----- -`}const nE=(e,t)=>`-----BEGIN ${e}----- -${it.encode(t).match(/.{1,64}/g).join(` -`)} ------END ${e}----- -`;function rE(e,t){const n=ut(e),r=s=>{const o=Ot(n,s);return Dh(o,ei.getPublicKey(o),t)};return[["ssh","OpenSSH private key",r("ssh")],["git","OpenSSH private key",r("git")],["dkim","Ed25519 private key (base64)",it.encode(Ot(n,"dkim"))],["wg","Interface entry",`[Interface] -PrivateKey = ${it.encode(ti(Ot(n,"wg")))}`]]}function sE(e,t){const n=Ot(e,"node/ssh-ca");return[["ssh-ca","OpenSSH private key",Dh(n,ei.getPublicKey(n),`lineage-ca@${t}`)],["mtls","Private key (PKCS#8 PEM)",nE("PRIVATE KEY",ae(tE,Ot(e,"node/mtls")))],["noise","noise_private.key",`privkey:${Se(ti(Ot(e,"node/noise")))}`]]}const oE=["bip86","tapkey","wallet"],$c=()=>({scheme:"bip86",roots:{},adopted:{}}),iE=e=>Zo.getPubKey(e)[0];function Mh(e,t,n){return e.scheme==="wallet"?la(t,n):Zo.getSecKey(e.scheme==="tapkey"?Go(t,n):la(t,n))[0]}const Zh=(e,t)=>e.scheme==="tapkey"?Ye.nostr(t):Ye.wallet(t),aE=(e,t)=>new An(Mh(e,t,0)),Pe=e=>Be.encode(e,!1).hex;function Ft(e,t,n){if(!n)return null;const r=i=>i?{mnemonic:i,account:0,origin:`${n.name} root`,steps:[]}:null;if(n.kind==="holding")return r(e.roots[n.id]);if(n.edge==="adopted")return r(e.adopted[n.id]);const s=t.nodes.get(n.parent);if(n.kind==="agent"){const i=Ft(e,t,s);return i&&{...i,account:n.index+1}}const o=Ft(e,t,s);return o&&{mnemonic:J2(o.mnemonic,n.index),account:0,origin:o.origin,steps:[...o.steps,`${n.index}'`]}}const Ui=new Map;function Ce(e,t,n){const r=Ft(e,t,n);if(!r)return null;const s=`${e.scheme}|${r.mnemonic}|${r.account}`;if(!Ui.has(s)){const{npub:u,pubkey:f}=ev(r.mnemonic,r.account);Ui.set(s,{wallet:new An(Mh(e,r.mnemonic,r.account)),npub:u,pubkey:f})}const{wallet:o,npub:i,pubkey:a}=Ui.get(s),c=[r.origin,...r.steps].join(" › ");return{wallet:o,npub:i,pubkey:a,scheme:e.scheme,account:r.account,from:c,path:`${c} · ${Zh(e,r.account)}`}}function _c(e,t,n){const r=Ft(e,t,n);if(!r)return null;const s=Ce(e,t,n),o=xh(r.mnemonic,r.account);return{taproot:{address:s.wallet.address,path:Zh(e,r.account)},segwit:{address:Qr.p2wpkh.fromPubKey(o,"regtest"),path:Ye.segwit(r.account)},tapkey:{address:Qr.p2tr.fromPubKey(iE(s.pubkey),"regtest"),path:Ye.nostr(r.account)},npub:{address:s.npub,path:Ye.nostr(r.account)},ethereum:{address:Q2(r.mnemonic,r.account),path:Ye.ethereum(r.account)}}}function cE(e,t,n){const r=Ft(e,t,n);if(!r)return null;const s=Ce(e,t,n),o=_c(e,t,n),{mnemonic:i,account:a}=r;return{keys:{taproot:o.taproot.address,segwit:o.segwit.address,nostr:o.npub.address,ethereum:o.ethereum.address},secrets:{taproot:s.wallet.secret,segwit:bc(i,a),nostr:Go(i,a),ethereum:kh(i,a)}}}function Ac(e,t,n){const r=Qo(e.chain,n);if(!r)return null;const s=Pe(r.scriptPubKey),o=t.nodes.get(n),i=Ce(e.keys,t,o),a=o&&Ce(e.keys,t,t.nodes.get(o.parent));return i&&Pe(i.wallet.script)===s?{wallet:i.wallet,who:"own"}:e.wallet&&Pe(e.wallet.script)===s?{wallet:e.wallet,who:"lab"}:a&&Pe(a.wallet.script)===s?{wallet:a.wallet,who:"parent"}:{wallet:null,who:"other",script:s}}function As(e,t){const n=e.nodes.get(t),r=[n];for(const s of n.children){const o=e.nodes.get(s);o.status==="active"&&o.edge==="derived"&&r.push(...As(e,s))}return r}function ma(e,t){const n=[];for(let r=t;r;r=e.nodes.get(r.parent))n.push(r.name);return n.join(".")}function uE(e,t,n){const r=Ft(e,t,n);if(!r)return null;if(n.kind!=="agent")return eE(Jv(yc(r.mnemonic)),ma(t,n));const s=ma(t,t.nodes.get(n.parent));return Qv(Xv(Go(r.mnemonic,r.account)),`${n.name}@${s}`,n.name,s)}const fE=dh(xe),zr=(e,t=239)=>fE.encode(ae(Uint8Array.of(t),ut(e),Uint8Array.of(1))),lE=e=>Yn.encode("nsec",Yn.toWords(ut(e))),dE="0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ ",hE=[0xf5dee51989n,0xa9fdca3312n,0x1bab10e32dn,0x3706b1677an,0x644d626ffdn];function Ni(e){const t=(i,a)=>{const c=i>>35n;return i=(i&0x7ffffffffn)<<5n^BigInt(a),hE.forEach((u,f)=>{c>>BigInt(f)&1n&&(i^=u)}),i};let n=1n,r=0,s=0;for(const i of e){const a=dE.indexOf(i);if(a<0)throw new Error("Invalid descriptor character.");n=t(n,a&31),r=r*3+(a>>5),++s===3&&(n=t(n,r),r=0,s=0)}s&&(n=t(n,r));for(let i=0;i<8;i++)n=t(n,0);n^=1n;let o="";for(let i=0;i<8;i++)o+="qpzry9x8gf2tvdw0s3jn54khce6mua7l"[Number(n>>BigInt(5*(7-i))&31n)];return`${e}#${o}`}function pE(e,t,n){const r=Ft(e,t,n);if(!r)return null;const s=Go(r.mnemonic,r.account),o=la(r.mnemonic,r.account),i={bip86:`tr(${zr(o)})`,tapkey:`tr(${zr(s)})`,wallet:`rawtr(${zr(o)})`}[e.scheme],a=n.kind==="agent",c=ma(t,a?t.nodes.get(n.parent):n);return{seed:a&&n.edge!=="adopted"?null:{from:[r.origin,...r.steps].join(" › "),mnemonic:r.mnemonic},account:[["nsec","NIP-06",lE(s)],["taproot","descriptor",Ni(i)],["segwit","descriptor",Ni(`wpkh(${zr(bc(r.mnemonic,r.account))})`)],["tapkey","descriptor",Ni(`tr(${zr(s)})`)],["ethereum","private key",`0x${kh(r.mnemonic,r.account)}`]],leaves:a?rE(s,`${n.name}@${c}`):sE(yc(r.mnemonic),c)}}const gs=1e8,nt=50*gs,Le=330,Vh=e=>(e/gs).toFixed(8).replace(/\.?0+$/,""),ce=e=>`${Vh(e)} tBTC`;function Bc(e){if(e<1e6)return ce(e);const t=Math.round(e/1e6)*1e6;return`${t===e?"":"≈"}${ce(t)}`}function Tc(e){const t=/^\s*(\d{0,7})(?:\.(\d{0,8}))?\s*$/.exec(String(e??""));return!t||!(t[1]||t[2])?null:Number(t[1]||0)*gs+Number((t[2]??"").padEnd(8,"0"))}class qh{constructor(t,n,r){this.secret=t,this.pubkey=n,this.path=r,this.address=Qr.p2wpkh.fromPubKey(n,"regtest"),this.script=Qr.toScriptPubKey(this.address)}sign(t,n){return[xr.segwit.sign(this.secret,t,n,{pubkey:this.pubkey}).hex,this.pubkey]}}const Li=new Map;function $e(e,t,n){const r=Ft(e,t,n);if(!r)return null;const s=`${r.mnemonic}|${r.account}`;return Li.has(s)||Li.set(s,new qh(bc(r.mnemonic,r.account),xh(r.mnemonic,r.account),Ye.segwit(r.account))),Li.get(s)}function gE(e,t,n){var s;const r=n?t.nodes.get(n):null;return r&&r.root===r.id&&r.status==="active"?((s=$e(e,t,r))==null?void 0:s.script)??null:null}const pr=(e,t)=>{var n,r;return((r=(n=e.mining)==null?void 0:n.rigs)==null?void 0:r[t])??1};function Ic(e,t){var n;return((n=e.mining)==null?void 0:n.rule)==="none"?[]:t.roots.filter(r=>r.status==="active"&&pr(e,r.id)>0&&$e(e.keys,t,r)).slice(0,Ch)}function zh(e,t,n){var i,a;if(((i=e.mining)==null?void 0:i.rule)==="none")return null;if(((a=e.mining)==null?void 0:a.rule)==="last"){const c=gE(e.keys,t,n);return c?[{script:c,value:nt}]:null}const r=Ic(e,t),s=r.reduce((c,u)=>c+pr(e,u.id),0);let o=nt;return r.length?r.map((c,u)=>{const f=u===r.length-1?o:Math.floor(nt*pr(e,c.id)/s);return o-=f,{script:$e(e.keys,t,c).script,value:f}}):null}function ms(e,t,n=wt){const r=t+de,s=u=>u===r||u-r>=Le&&u-r<=nt,o=[...e].sort((u,f)=>u.value-f.value),i=o.find(u=>s(u.value));if(i||n<2)return i?[i]:null;let a=null;for(let u=0;ue.reduce((t,n)=>t+n.value,0);function Cc(e,t=wt){let n=0,r=-de;for(const s of e.map(o=>o.value).sort((o,i)=>i-o).slice(0,t)){r+=s;const o=r<=nt?r:r-nt>=Le?nt:r-Le;o>=Le&&r-o<=nt&&(n=Math.max(n,o))}return n}function Fh(e,t,n,r=wt,s="send"){const o=Oc(t),i=n+de,a=Cc(t,r),c=`${s[0].toUpperCase()}${s.slice(1)}`;if(od.value).sort((d,p)=>p-d),f=u.slice(0,r).map((d,p)=>u.slice(0,p+1).reduce((h,g)=>h+g,0)),l=Math.min(...[...u,...u.flatMap((d,p)=>u.slice(p+1).map(h=>d+h)),...f].filter(d=>d>=i));return Number.isFinite(l)&&l-inew Set((e.offers??[]).flatMap(t=>t.payers.map(n=>`${n.txid}:${n.vout}`))),Gh=(e,t)=>e.chain.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}),Yh=(e,t,n=wt)=>!!ms(e,t,n),Xh=(e,t,n)=>Yh(Gh(e,t),n);function Pc(e,t,n,r,s="This node",o="send"){const i=Gh(e,t),a=Wh(e),c=ms(i.filter(d=>!a.has(`${d.txid}:${d.vout}`)),r)??ms(i,r);if(!c)throw new Error(Fh(s,i,r,wt,o));const u=Oc(c)-r-de,f=ie.create({vin:c.map(d=>Vt(d.txid,d.vout,d.value,d.scriptPubKey)),vout:[Ke(r,n),...u?[Ke(u,t.script)]:[]]});c.forEach((d,p)=>{f.vin[p].witness=t instanceof qh?t.sign(f,p):[t.sign(f,void 0,p)]});const l=ie.encode(f).hex;return e.chain.submitPackage([l]),ie.util.getTxid(l)}function Jh(e,t,n,r,s){const o=t.nodes.get(n),i=t.nodes.get(r);if(!o||!i)throw new Error("Pick who sends and who receives.");if(o.id===i.id)throw new Error(`${o.name} cannot send to itself.`);for(const u of[o,i])if(u.status!=="active")throw new Error(`${u.name} is ${u.status}.`);const a=$e(e.keys,t,o),c=$e(e.keys,t,i);if(!a||!c)throw new Error("A holding that predates lab keys has no SegWit addresses.");if(!Number.isSafeInteger(s)||snt)throw new Error("Send at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");return Pc(e,a,c.script,s,o.name)}function mE(e,t,n){if(!t||!n||Pe(t.script)===Pe(n.script))return 0;let r=0;for(const s of e.chain.coins(t.script)){if(s.value-de[t,...t.log.flatMap((n,r)=>n.ok&&n.op==="graduate"?[_n(e.slice(0,r),{pending:!0})]:[])];function Qh(e,t){const n=new Map;for(const r of e)for(const s of r.nodes.values()){const o=t(r,s);o&&!n.has(o)&&n.set(o,s.id)}return n}const yE=(e,t,n)=>Qh(Uc(t,n),(r,s)=>{const o=$e(e,r,s);return o&&Pe(o.script)}),Ri=new Map,bE=(e,t,n)=>Qh(Uc(t,n),(r,s)=>{const o=Ft(e,r,s),i=o&&`${e.scheme}|${o.mnemonic}|${o.account}`;return i&&!Ri.has(i)&&Ri.set(i,Pe(Ce(e,r,s).wallet.script)),i?Ri.get(i):null}),Nc=(e,t)=>e.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}).reduce((n,r)=>n+r.value,0);function wE(e,t,n,r){for(const s of Uc(t,n))for(const o of s.nodes.values()){const i=Ce(e,s,o);if(i&&Pe(i.wallet.script)===r)return{node:o.id,wallet:i.wallet}}return null}function xE(e,t,n=new Map,r=new Map){var a;const s=[],o=c=>t.get(Pe(c))??null,i=c=>c.reduce((u,f)=>u+f.value,0);for(const{txid:c,tx:u,height:f,coinbase:l}of e.transactions.values()){const d=u.vout.map(x=>({script:Pe(x.scriptPubKey),node:o(x.scriptPubKey),value:Number(x.value)}));if(l){d.forEach((x,$)=>{x.node&&s.push({kind:"mine",key:`${c}:${$}`,txid:c,beat:f,from:null,to:x.node,amount:x.value,fee:0,change:0})});continue}const p=u.vin.map(x=>{var E,I;const $=((E=e.transactions.get(x.txid))==null?void 0:E.tx.vout[x.vout])??((I=e.imported)==null?void 0:I.call(e,x.txid,x.vout));return $?{node:o($.scriptPubKey),value:Number($.value)}:null}),h=r.get(c);if(h&&p.length>1&&p[0]&&p.slice(1).every(x=>(x==null?void 0:x.node)===h.buyer)){s.push({kind:"deal",key:c,txid:c,beat:f,from:h.buyer,to:h.seller,amount:h.price,item:h.item,fee:i(p)-i(d),change:i(d.filter(x=>x.node===h.buyer))});continue}if(p.every(x=>x&&!x.node)){const x=d.filter($=>$.node);x.length&&s.push({kind:"fund",key:c,txid:c,beat:f,from:null,to:x[0].node,amount:x[0].value,fee:i(p)-i(d),change:i(d.filter($=>!$.node))});continue}const g=(a=p[0])==null?void 0:a.node;if(!g||!p.every(x=>(x==null?void 0:x.node)===g))continue;const m=d.filter(x=>x.node!==g),b=d.filter(x=>x.node===g),w=i(p)-i(d),y={key:c,txid:c,beat:f,from:g,fee:w};m.length&&m.every(x=>n.get(x.script)===g)?s.push({...y,kind:"gas",to:g,amount:i(m),change:i(b)}):m.length?s.push({...y,kind:"pay",to:m[0].node,amount:m[0].value,change:i(b)}):s.push({...y,kind:"move",to:g,amount:i(b),change:0})}return s}function ya(e,t,n=1/0){const r=new Map;for(const{txid:o,tx:i,height:a,coinbase:c}of e.transactions.values())if(!(a===null?n!==1/0:a>n)){if(!c)for(const u of i.vin)r.delete(`${u.txid}:${u.vout}`);i.vout.forEach((u,f)=>{const l=t.get(Pe(u.scriptPubKey));l&&r.set(`${o}:${f}`,{node:l,value:Number(u.value)})})}const s=new Map;for(const{node:o,value:i}of r.values())s.set(o,(s.get(o)??0)+i);return s}const ba="lineage-offer",Ju=/^[0-9a-f]{64}$/,Hi=/^[0-9a-f]{64}i0$/,Qu=/^5120[0-9a-f]{64}$/,ji=/^0014[0-9a-f]{40}$/,ef=e=>({txid:e.txid,vout:e.vout,value:e.value,script:Pe(e.scriptPubKey)}),tf=(e,t)=>!e.utxos.has(`${t.txid}:${t.vout}`),e0=e=>{const t=Xo(new vs(e.chain));return{events:t,state:_n(t,{pending:!0})}};function t0(e){return ie.create({vin:[e.holder,...e.payers].map(t=>Vt(t.txid,t.vout,t.value,t.script)),vout:[Ke(e.holder.value,e.to),...e.price?[Ke(e.price,e.pay)]:[],...e.change?[Ke(e.change,e.back)]:[]]})}function Lc(e,t,n,r){const s=Qo(e.chain,r),o=s&&wE(e.keys,t,n,Pe(s.scriptPubKey));return o?{coin:s,node:n.nodes.get(o.node),wallet:o.wallet}:null}function n0(e,t,n,r,s=Date.now()){const{events:o,state:i}=e0(e),a=i.items.get(t),c=i.nodes.get(n);if(!a)throw new Error("Pick an item to make an offer on.");if(!c)throw new Error("Pick who makes the offer.");if(!Number.isSafeInteger(r)||r<0||r>0&&rnt)throw new Error("Offer at most 50 test BTC: no output on this chain is bigger than one block reward.");const u=Lc(e,o,i,t),f=u==null?void 0:u.node;if(!f)throw new Error(`No node in this lab holds ${a.name}.`);if(f.id===c.id)throw new Error(`${c.name} already holds ${a.name}.`);for(const y of[c,f])if(y.status!=="active")throw new Error(`${y.name} is ${y.status}.`);const l=$e(e.keys,i,c),d=$e(e.keys,i,f),p=Ce(e.keys,i,c);if(!l||!d||!p)throw new Error("A holding that predates lab keys cannot trade.");if((e.offers??[]).some(y=>y.item===t&&y.buyer===c.id&&wa(e,i,y)==="open"))throw new Error(`${c.name} already has an open offer on ${a.name}. Withdraw it first.`);const h=e.chain.coins(l.script),g=Wh(e),m=ms(h.filter(y=>!g.has(`${y.txid}:${y.vout}`)),r,wt-1)??ms(h,r,wt-1);if(!m)throw new Error(Fh(c.name,h,r,wt-1,"offer"));const b={kind:ba,version:1,item:t,buyer:c.id,seller:f.id,price:r,holder:ef(u.coin),payers:m.map(ef),to:Pe(p.wallet.script),pay:Pe(d.script),back:Pe(l.script),change:m.reduce((y,x)=>y+x.value,0)-r-de,at:s},w=t0(b);return b.txid=ie.util.getTxid(w),b.witnesses=m.map((y,x)=>l.sign(w,x+1)),(e.offers??(e.offers=[])).push(b),b}function Rc(e,t,n){var c,u;const r=f=>{var l;return((l=t.nodes.get(f))==null?void 0:l.name)??"a node"},s=((c=t.items.get(n.item))==null?void 0:c.name)??"the item";if(tf(e.chain,n.holder))return`${s} has moved since`;if(n.payers.some(f=>tf(e.chain,f)))return`${r(n.buyer)} has spent a coin the offer promised`;for(const f of[n.buyer,n.seller]){const l=t.nodes.get(f);if((l==null?void 0:l.status)!=="active")return`${r(f)} is ${(l==null?void 0:l.status)??"gone"}`}const o=t.nodes.get(n.buyer),i=t.nodes.get(n.seller),a=f=>f?Pe(f.script):"";return a((u=Ce(e.keys,t,o))==null?void 0:u.wallet)!==n.to||a($e(e.keys,t,o))!==n.back?`${o.name} has new keys since`:n.price&&a($e(e.keys,t,i))!==n.pay?`${i.name} has new keys since`:""}const wa=(e,t,n)=>e.chain.transactions.has(n.txid)?"done":Rc(e,t,n)?"stale":"open";function vE(e,t){const n=(e.offers??[]).find(c=>c.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was already accepted.");const{events:r,state:s}=e0(e),o=Rc(e,s,n);if(o)throw new Error(`This offer is stale: ${o}.`);const i=Lc(e,r,s,n.item);if((i==null?void 0:i.node.id)!==n.seller)throw new Error("Only the holder can accept.");const a=t0(n);return n.witnesses.forEach((c,u)=>{a.vin[u+1].witness=c}),a.vin[0].witness=[i.wallet.sign(a,void 0,0)],e.chain.submitPackage([ie.encode(a).hex]),n}function EE(e,t){const n=(e.offers??[]).find(r=>r.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was accepted: it is on the chain now.");return e.offers=e.offers.filter(r=>r!==n),n}function kE(e){const t=(r,s)=>r&&Ju.test(r.txid)&&Number.isSafeInteger(r.vout)&&r.vout>=0&&Number.isSafeInteger(r.value)&&r.value>=Le&&r.value<=nt&&s.test(r.script),n=r=>Number.isSafeInteger(r)&&(r===0||r>=Le&&r<=nt);if((e==null?void 0:e.kind)!==ba||e.version!==1||!Hi.test(e.item)||!Hi.test(e.buyer)||!Hi.test(e.seller)||e.buyer===e.seller||!n(e.price)||!n(e.change)||!t(e.holder,Qu)||!Array.isArray(e.payers)||!e.payers.length||e.payers.length>wt-1||!e.payers.every(r=>t(r,ji))||!Qu.test(e.to)||!ji.test(e.pay)||!ji.test(e.back)||!Ju.test(e.txid)||!Array.isArray(e.witnesses)||e.witnesses.length!==e.payers.length||!e.witnesses.every(r=>Array.isArray(r)&&r.length===2&&/^30[0-9a-f]{12,140}01$/.test(r[0])&&/^0[23][0-9a-f]{64}$/.test(r[1]))||!Number.isSafeInteger(e.at))throw new Error("Invalid offer.");return{kind:ba,version:1,item:e.item,buyer:e.buyer,seller:e.seller,price:e.price,holder:{...e.holder},payers:e.payers.map(r=>({...r})),to:e.to,pay:e.pay,back:e.back,change:e.change,at:e.at,txid:e.txid,witnesses:e.witnesses.map(r=>[...r])}}const ni="orgchain:lab:v1",SE=["each",10,30,60,"manual"];function Bs(e={tempo:"each",nextAt:null}){const{tempo:t,nextAt:n}=e??{},r=typeof t=="number";if(!SE.includes(t)||!(n===null||r&&Number.isSafeInteger(n)&&n>0))throw new Error("Invalid clock.");return{tempo:t,nextAt:n}}function r0(e){const t=$c();for(const n of["roots","adopted"])for(const[r,s]of Object.entries((e==null?void 0:e[n])??{})){if(!/^[0-9a-f]{64}i0$/.test(r))throw new Error("Invalid lab keys.");t[n][r]=wh(s,24)}if(t.scheme=(e==null?void 0:e.scheme)??(Object.keys(t.roots).length?"wallet":"bip86"),!oE.includes(t.scheme))throw new Error("Invalid lab keys.");return t}const $E=["split","last","none"];function Ts(e){const t=(e==null?void 0:e.rule)??"split",n={};if(!$E.includes(t))throw new Error("Invalid mining rule.");for(const[r,s]of Object.entries((e==null?void 0:e.rigs)??{})){if(!/^[0-9a-f]{64}i0$/.test(r)||!Number.isSafeInteger(s)||s<0||s>9)throw new Error("Invalid hashrate.");s!==1&&(n[r]=s)}return{rule:t,rigs:n}}function s0(e=[]){if(!Array.isArray(e)||e.length>1e3)throw new Error("Invalid offers.");const t=e.map(kE);if(new Set(t.map(n=>n.txid)).size!==t.length)throw new Error("Invalid offers.");return t}const Is=()=>({wallet:null,chain:new Jo,clock:Bs(),keys:$c(),mining:Ts(),offers:[]});function o0(e){if(!e)return Is();const t=JSON.parse(e);if((t==null?void 0:t.kind)!=="orgchain-lab"||t.network!==gn||t.version!==1)throw new Error("That is not an Orgchain v1 lab.");return{wallet:t.wallet?An.load(t.wallet):null,chain:new Jo(t.chain),clock:Bs(t.clock),keys:r0(t.keys),mining:Ts(t.mining),offers:s0(t.offers)}}const i0=e=>{var t;return JSON.stringify({kind:"orgchain-lab",network:gn,version:1,wallet:((t=e.wallet)==null?void 0:t.backup())??null,chain:e.chain.snapshot(),clock:Bs(e.clock),keys:r0(e.keys),mining:Ts(e.mining),offers:s0(e.offers)})};function _E(e,t,n){var r;e.mining=Ts({...e.mining,rigs:{...(r=e.mining)==null?void 0:r.rigs,[t]:n}})}function AE(e,t){e.mining=Ts({...e.mining,rule:t})}const Hc=()=>o0(localStorage.getItem(ni));function BE(e){try{localStorage.setItem(ni,i0(e))}catch{throw new Error("Browser storage is full or unavailable, so nothing was saved. Save a backup, then reset.")}}async function TE(e,{locks:t=(s=>(s=globalThis.navigator)==null?void 0:s.locks)(),read:n=Hc,save:r=BE}={}){if(!t)throw new Error("Orgchain needs Web Locks: open it over HTTPS or on localhost.");return t.request(ni,async()=>{const o=n(),i=await e(o);return i!==!1&&r(o),{lab:o,result:i}})}function Et(e,t=null){e.wallet||(e.wallet=An.create());const n=t!=null&&t.length?e.chain.mineTo(t.map(r=>Ke(r.value,r.script))):e.chain.mine(e.wallet.script);return e.clock=Bs({tempo:e.clock.tempo,nextAt:null}),n}function Rr(e,t=Date.now()){const{tempo:n,nextAt:r}=e.clock;typeof n=="number"&&e.chain.mempool.length&&r===null&&(e.clock={tempo:n,nextAt:t+n*1e3})}function IE(e,t,n=Date.now(),r=null){e.clock=Bs({tempo:t,nextAt:null}),t==="each"&&e.chain.mempool.length?Et(e,r):Rr(e,n)}function OE(e,t=Date.now(),n=null){const{tempo:r,nextAt:s}=e.clock;return typeof r!="number"||!e.chain.mempool.length?!1:s===null?(Rr(e,t),!0):t`found ${e.name}`,birth:e=>`birth ${e.name}`,award:e=>`award ${e.skill} ${e.belt}`,decide:e=>`decide ${e.title}`,make:e=>`make ${e.name}`,keyring:(e,t)=>Yo(t,e),charter:e=>`charter ${e.form}${e.jurisdiction?` ${e.jurisdiction}`:""}`,graduate:()=>"graduate",close:()=>"close"};function PE(e,t={}){if(!Object.hasOwn(nf,e))throw new Error("Unknown verb.");const n={op:e};for(const s of nf[e]){const o=t[s];typeof o=="string"&&o.trim()&&(n[s]=o.trim())}const r=e==="keyring"&&t.proof&&typeof t.proof=="object"?t.proof:null;return r&&(n.proof=Object.fromEntries(vt.filter(s=>typeof r[s]=="string").map(s=>[s,r[s]]))),n}function a0(e,t){const n=at(e),r=n.nodes.get(t),s=r&&cE(e.keys,n,r);if(!s)throw new Error(`${(r==null?void 0:r.name)??"That node"} predates lab keys, so it has no keys to list.`);return dv(t,s.keys,s.secrets)}function jc(e,t,n,r={}){if(t==="keyring"){for(let s=e.nodes.get(n);s;s=s.edge==="derived"?e.nodes.get(s.parent):null)if(s.graduated==="cued")return`${s.name}'s graduation is cued, and it changes ${s.id===n?"its":`${e.nodes.get(n).name}'s`} keys. Publish the keyring once it lands`}if(t==="graduate"&&e.nodes.has(r.of)){const s=new Set(As(e,r.of).map(i=>i.id)),o=e.log.find(i=>i.pending&&i.ok&&i.op==="keyring"&&s.has(i.node));if(o)return`${e.nodes.get(o.node).name}'s keyring is cued. Graduate ${e.nodes.get(r.of).name} once it lands, so the graduation retires it`}return""}const at=e=>_n(Xo(new vs(e.chain)),{pending:!0});function c0(e,t,n,r){const s=PE(t,r),o=Xo(new vs(e.chain)),i={id:"check",status:"pending",height:null,metadata:s,parent:n??null,protocol:Ec},{ok:a,why:c}=_n([...o,i],{pending:!0}).log.at(-1);if(!a)throw new Error(`${c[0].toUpperCase()}${c.slice(1)}.`);return s}const xa=Bt+2*de+330,u0=1e5,Kc=1e4,Dc=(e,t=0)=>Bt+2*de+(e==="birth"?1:e==="graduate"?Math.max(0,t-1):0)*de+330,UE=(e,t=0)=>Dc(e,t)-330,Ir=(e,t,n)=>e.chain.coins(t.script).find(r=>{var s;return!((s=r.inscriptions)!=null&&s.length)&&r.value>=n}),va=e=>Vt(e.txid,e.vout,e.value,e.scriptPubKey),f0=(e,t)=>(t.forEach((n,r)=>{e.vin[r].witness=[n.sign(e,void 0,r)]}),ie.encode(e).hex);function Mc(e){e.keys??(e.keys=$c()),e.wallet||(e.wallet=An.create()),Ir(e,e.wallet,u0+de+330)||Et(e)}function l0(e,t,n=xa,r=u0){if(t===e.wallet||Ir(e,t,n))return;const s=Ir(e,e.wallet,r+de+330),o=ie.create({vin:[va(s)],vout:[Ke(r,t.script),Ke(s.value-r-de,e.wallet.script)]});e.chain.submitPackage([f0(o,[e.wallet])])}function rf(e,t,n,r,s){if(r===e.wallet||Ir(e,r,s))return;const o=n&&$e(e.keys,t,n);if(!o)return l0(e,r,s);Pc(e,o,r.script,Math.max(Kc,s),n.name)}function NE(e,t,n,r,s){if(r===e.wallet||Ir(e,r,s))return!0;const o=n&&$e(e.keys,t,n);return!o||Xh(e,o,Math.max(Kc,s))}function Zc(e,t,n,r,s={}){var f,l;const o=r?t.nodes.get(r):null,i=o&&((f=Ac(e,t,r))==null?void 0:f.wallet);if(n==="found"||!i)return"";const a=n==="graduate"?t.nodes.get(s.of):null,c=a&&Ce(e.keys,t,a)?As(t,a.id).length:0;if(!NE(e,t,o,i,Dc(n,c))){const d=t.nodes.get(o.parent);return`${o.name} has no test BTC for gas. ${d?`${d.name} can send some`:((l=e.mining)==null?void 0:l.rule)==="none"?"Fund it from the lab wallet":"It earns some each beat it mines"}`}const u=c?$e(e.keys,t,a):null;return u&&!Yh(e.chain.coins(u.script).filter(d=>d.value-de>=Le).map(d=>({value:d.value-de})),Kc)?`${a.name} needs test BTC of its own to claim its new root. Send it some first`:""}function sf(e,t,n,r,s=n){const o=Qo(e.chain,t),i=Ir(e,s,de+330),a=ie.create({vin:[va(o),va(i)],vout:[Ke(o.value,r.script),Ke(i.value-de,s.script)]});e.chain.submitPackage([f0(a,[n,s])])}function of(e,t,n,r,s){return new hx(e.chain,t).inscribe(CE[n](s,r),r??null,s,{metaprotocol:Ec})}const ri=(e,t)=>{var r;const n=at(e);return zh(e,n,((r=n.nodes.get(t))==null?void 0:r.root)??null)},si=(e,t)=>zh(e,at(e),t);function Vc(e){var r,s,o;const t=at(e),n=new Map;for(const i of t.nodes.values())for(const a of[$e(e.keys,t,i),(r=Ce(e.keys,t,i))==null?void 0:r.wallet])a&&n.set(Pe(a.script),i.root);for(const i of[...e.chain.mempool].reverse()){const a=e.chain.transactions.get(ie.util.getTxid(i));if(a!=null&&a.inscription){const c=(s=t.log.find(u=>u.id===a.inscription.id))==null?void 0:s.root;if(c)return c;continue}for(const c of(a==null?void 0:a.tx.vin)??[]){const u=((o=e.chain.transactions.get(c.txid))==null?void 0:o.tx.vout[c.vout])??e.chain.imported(c.txid,c.vout),f=u&&n.get(Pe(u.scriptPubKey));if(f)return f}}return null}function af(e,t,n){var s;const r=Ac(e,t,n);if(!(r!=null&&r.wallet))throw new Error(`No key in this lab holds ${((s=t.nodes.get(n))==null?void 0:s.name)??"that node"}'s inscription.`);return r.wallet}function d0(e,t,n,r){if(t==="found"){const f=Ru(),l=aE(e.keys,f);l0(e,l,xa,xa);const d=of(e,l,t,null,r);return e.keys.roots[d]=f,d}const s=at(e),o=af(e,s,n),i=s.nodes.get(n),a=t==="graduate"?s.nodes.get(r.of):null,c=a&&Ce(e.keys,s,a)?As(s,a.id).map(f=>[f.id,af(e,s,f.id)]):[];rf(e,s,i,o,Dc(t,c.length));const u=of(e,o,t,n,r);if(t==="birth"){const f=at(e),l=Ce(e.keys,f,f.nodes.get(u));l&&sf(e,u,o,l.wallet)}if(c.length){e.keys.adopted[a.id]=Ru();const f=at(e);for(const[l,d]of c){const p=Ce(e.keys,f,f.nodes.get(l)).wallet;if(mE(e,$e(e.keys,s,s.nodes.get(l)),$e(e.keys,f,f.nodes.get(l))),l!==a.id){sf(e,l,d,p,o);continue}rf(e,f,f.nodes.get(l),p,de+330),Tv(e.chain,Bv(e.chain,l,p),d)}}return u}function LE(e,t,n,r,s=Date.now()){const o=jc(at(e),t,n??null,r??{});if(o)throw new Error(`${o}.`);const i=c0(e,t,n,t==="keyring"?a0(e,n):r),a=Zc(e,at(e),t,n??null,i);if(a)throw new Error(`${a}.`);Mc(e);const c=d0(e,t,n??null,i);return e.clock.tempo==="each"?Et(e,ri(e,n??c)):Rr(e,s),c}function RE(e,t,n,r,s=Date.now()){const o=Jh(e,at(e),t,n,r);return e.clock.tempo==="each"?Et(e,ri(e,t)):Rr(e,s),o}const HE=(e,t,n,r,s=Date.now())=>n0(e,t,n,r,s);function jE(e,t,n=Date.now()){const r=vE(e,t);return e.clock.tempo==="each"?Et(e,ri(e,r.seller)):Rr(e,n),r}const KE=(e,t)=>EE(e,t);function DE(e,t,n,r=Date.now()){const s=at(e),o=s.nodes.get(t);if(!o||o.root!==o.id)throw new Error("Pick a holding to fund.");if(o.status!=="active")throw new Error(`${o.name} is closed.`);const i=$e(e.keys,s,o);if(!i)throw new Error("A holding that predates lab keys has no SegWit address to fund.");if(!Number.isSafeInteger(n)||nnt)throw new Error("Fund at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");Mc(e),Xh(e,e.wallet,n)||Et(e);const a=Pc(e,e.wallet,i.script,n,"The lab wallet","fund");return e.clock.tempo==="each"?Et(e,ri(e,t)):Rr(e,r),a}const Ea="yolopreneur",ME=[[["found",null,{name:"yolopreneur"}]],[["birth","yolopreneur",{name:"well-known",kind:"org"}],["birth","yolopreneur",{name:"time",kind:"org"}],["keyring","yolopreneur",{}],["charter","yolopreneur",{form:"series-llc",jurisdiction:"US-WY",legal:"Yolopreneur Holdings LLC",provider:"doola"}]],[["send","yolopreneur",{to:"time",amount:40}],["send","yolopreneur",{to:"well-known",amount:10}],["birth","well-known",{name:"mailr",kind:"org"}],["birth","well-known",{name:"lineage",kind:"org"}],["birth","time",{name:"luna",kind:"agent"}],["birth","time",{name:"sol",kind:"agent"}],["birth","time",{name:"astra",kind:"agent"}],["charter","yolopreneur",{form:"series",of:"well-known"}],["charter","yolopreneur",{form:"series",of:"time"}]],[["send","well-known",{to:"lineage",amount:2}],["birth","time",{name:"docscope",kind:"org"}],["birth","time",{name:"dollhouse",kind:"org"}],["birth","time",{name:"doodleloop",kind:"org"}],["birth","time",{name:"hearthframe",kind:"org"}],["charter","yolopreneur",{form:"series",of:"lineage"}]],[["send","time",{to:"sol",amount:1}],["send","time",{to:"luna",amount:.5}],["award","time",{to:"sol",skill:"launch",belt:"green"}],["award","time",{to:"luna",skill:"post",belt:"white"}],["decide","yolopreneur",{title:"Every venture gets a page",why:".yolopreneur.lol, served from one pages branch."}],["make","sol",{name:"launch-kit",note:"The page, the post and the checklist every venture launches with."}],["keyring","sol",{}],["keyring","lineage",{}]],[["graduate","well-known",{of:"lineage"}],["decide","lineage",{title:"Lineage gets its own org",why:"Its own repo on Teahub now, lineage.llc later: adopted, not derived."}],["charter","lineage",{form:"llc",jurisdiction:"US-WY",legal:"Lineage LLC",provider:"doola"}],["offer","lineage",{item:"launch-kit",price:.1}]]];function ZE(e){Mc(e),e.chain.mempool.length&&Et(e);const t={},n={};for(const r of ME){for(const[s,o,i]of r){if(s==="send"){Jh(e,at(e),t[o],t[i.to],i.amount*gs);continue}if(s==="offer"){n0(e,n[i.item],t[o],i.price*gs);continue}const a=s==="keyring"?a0(e,t[o]):Object.fromEntries(Object.entries(i).map(([f,l])=>[f,f==="to"||f==="of"?t[l]:l])),c=o?t[o]:null,u=d0(e,s,c,c0(e,s,c,a));(s==="found"||s==="birth")&&(t[i.name]=u),s==="make"&&(n[i.name]=u)}Et(e,si(e,t[Ea]))}return t[Ea]}const K=e=>document.getElementById(e);function T(e,t={},...n){const r=document.createElement(e);for(const[s,o]of Object.entries(t))o==null||o===!1||(s==="class"?r.className=o:s==="text"?r.textContent=o:s.startsWith("on")?r.addEventListener(s.slice(2),o):r.setAttribute(s,o===!0?"":String(o)));for(const s of n.flat(1/0))s!=null&&s!==!1&&s!==""&&r.append(s instanceof Node?s:String(s));return r}const Xr=(e,t)=>`${e} ${t}${e===1?"":"s"}`,mt=e=>e==="cued"?"cued":`beat ${e}`,VE=e=>new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}),cf=e=>JSON.stringify(e,(t,n)=>typeof n=="bigint"?String(n):n,2),O={holding:null,node:null,event:null,tx:null,beat:null,verb:"birth",busy:!1,replay:null,closing:null,reveal:null};let q=Is(),No=new vs(q.chain),dn=[],z=_n([]),Te=z,Me={owner:new Map,ledger:[],now:new Map,view:new Map},mn=new Map;const tt=()=>q.chain.blocks.length,ka=()=>dn.filter(e=>e.status==="pending").length,Sa=e=>Me.ledger.filter(t=>t.beat===null&&t.kind===e).length,to=[["pay","cued send"],["deal","cued deal"],["fund","cued deposit"]],qE=()=>ka()+to.reduce((e,[t])=>e+Sa(t),0),Bn=e=>{var t;return((t=z.items.get(e))==null?void 0:t.name)??"an item"},$a=()=>q.offers??[],no=e=>Me.view.get(e)??0,h0=e=>Me.now.get(e)??0,G=(e,t=z)=>e?t.nodes.get(e)??null:null,zE=e=>{var t;return!!e&&(e.root===O.holding||((t=G(e.parent))==null?void 0:t.root)===O.holding)},qc=e=>Object.assign(O,{event:null,tx:null,closing:null,reveal:null},e),Hr=e=>{qc(e),oi()};function ye(e,t=!1){const n=K("say");n.textContent=e,n.classList.toggle("bad",t)}function p0(){try{q=Hc()}catch(e){q=Is(),ye(`This browser's saved lab could not be read (${e.message}) Load a backup, or reset to start over.`,!0)}zc()}function zc(){var n;No=new vs(q.chain),dn=Xo(No),z=_n(dn,{pending:!0}),O.beat!==null&&O.beat>=tt()&&(O.beat=null),G(O.holding)||(O.holding=((n=z.roots.filter(r=>r.kind==="holding").at(-1)??z.roots.at(-1))==null?void 0:n.id)??null),zE(G(O.node))||(O.node=O.holding),O.event&&!z.log.some(r=>r.id===O.event)&&(O.event=null),Te=O.beat===null?z:_n(dn,{upTo:O.beat});const e=yE(q.keys,dn,z),t=new Map($a().map(r=>[r.txid,r]));Me={owner:e,ledger:xE(q.chain,e,bE(q.keys,dn,z),t),now:ya(q.chain,e)},mn=new Map([...z.items.keys()].map(r=>{var s;return[r,((s=Lc(q,dn,z,r))==null?void 0:s.node.id)??null]})),Me.view=O.beat===null?Me.now:ya(q.chain,e,O.beat),O.tx&&!Me.ledger.some(r=>r.key===O.tx)&&(O.tx=null),oi()}function Lo(e){O.beat=e>=tt()?null:Math.max(0,e),Te=O.beat===null?z:_n(dn,{upTo:O.beat}),Me.view=O.beat===null?Me.now:ya(q.chain,Me.owner,O.beat),oi()}async function ft(e,t){if(O.busy)return!1;O.busy=!0,document.body.classList.add("busy");try{return q=(await TE(e,t)).lab,!0}catch(n){return ye((n==null?void 0:n.message)||String(n),!0),!1}finally{O.busy=!1,document.body.classList.remove("busy"),zc()}}async function Ut(e,t,n,r){let s=null;if(!await ft(i=>{s=LE(i,e,t,n)}))return!1;const o=No.events.find(i=>i.id===s);return ye(r(s,(o==null?void 0:o.status)==="confirmed"?`at beat ${o.height}`:"cued for the next beat")),oi(),!0}async function g0(e){const t=[ka(),...to.map(([a])=>Sa(a))],n=tt();if(!await ft(e)||tt()===n)return;const r=[ka(),...to.map(([a])=>Sa(a))],s=["cued act",...to.map(([,a])=>a)],o=t.map((a,c)=>[a-r[c],s[c]]).filter(([a])=>a>0).map(([a,c])=>Xr(a,c)),i=FE(Me.ledger.filter(a=>a.kind==="mine"&&a.beat===tt()));ye(`Beat ${tt()}: ${o.length?`${o.join(" and ")} landed, and ${i}`:i}.`)}function FE(e){if(!e.length)return"the lab wallet earned 50 tBTC";const t=e.map(r=>{var s;return((s=G(r.to))==null?void 0:s.name)??"?"}),n=e.map(r=>Bc(r.amount));return e.length===1?`${t[0]} earned ${ce(e[0].amount)}`:n.every(r=>r===n[0])?`${t.slice(0,-1).join(", ")} and ${t.at(-1)} earned ${n[0]} each`:e.map((r,s)=>`${t[s]}${s?"":" earned"} ${n[s]}`).join(", ")}function WE(){var t;if(((t=q.mining)==null?void 0:t.rule)==="last")return"the holding that acts";const e=Ic(q,z);return e.length?e.length===1?e[0].name:`${e.length} holdings, split by hashrate`:"the lab wallet"}function oi(){m0(),XE(),JE(),Os(),_0(),Wc()}function m0(){const e=qE(),{tempo:t}=q.clock;for(const r of document.querySelectorAll("[data-tempo]"))r.setAttribute("aria-pressed",String(String(t)===r.dataset.tempo));K("clock-beat").textContent=String(tt()),K("clock-cued").textContent=e?`${e} cued · ${GE()}`:"nothing cued";const n=WE();K("clock-pays").textContent=`beats pay ${n}`,K("beat-now").title=`Beat now: ${e?"land what is cued, and ":""}pay ${n} 50 test BTC`}function GE(){const{tempo:e,nextAt:t}=q.clock;return e==="manual"?"waiting for Beat now":typeof e=="number"&&t?`next beat in ${Math.max(0,Math.ceil((t-Date.now())/1e3))}s`:"landing on the next beat"}const YE={split:"Every active holding mines: each beat's 50 tBTC splits by hashrate, set on each holding (0 sits out).",last:"The holding behind the latest act or send takes the whole beat; with nothing cued, Beat now pays the one you're working in. At a timed tempo it's a race for the next beat.",none:"Mainnet has no mining to join: beats pay the lab wallet, standing in for the world's miners. Fund a holding from it, the way you'd fund a seed from a wallet you already have."};function XE(){var a,c;const e=((a=q.mining)==null?void 0:a.rule)??"split",t=e==="split",n=t?Ic(q,z):[],r=n.reduce((u,f)=>u+pr(q,f.id),0);K("holdings-list").replaceChildren(...z.roots.map(u=>{var b;const f=xv(z,u.id),l=u.id===O.holding,d=u.status==="active",p=n.some(w=>w.id===u.id)?pr(q,u.id)/r:0,h=[...z.nodes.values()].reduce((w,y)=>w+(y.root===u.id?h0(y.id):0),0),m=[u.graduated!==null&&`from ${((b=G(u.parent))==null?void 0:b.name)??"?"}${u.graduated==="cued"?", cued":` at beat ${u.graduated}`}`||mt(u.born),Xr(f.orgs,"org"),Xr(f.agents,"agent"),Xr(f.belts,"belt"),h>0&&Bc(h),t&&d&&(p?`${Math.round(p*100)}% of each beat`:"not mining"),!d&&"closed"].filter(Boolean);return T("li",{},T("button",{type:"button",class:`hold${l?" on":""}${d?"":" gone"}`,"aria-pressed":String(l),onclick:()=>Hr({holding:u.id,node:u.id})},T("span",{class:"hn",text:u.name})," ",T("span",{class:"hm",text:m.join(" · ")})),t&&d&&$e(q.keys,z,u)&&ak(u,pr(q,u.id)))}));for(const u of document.querySelectorAll("[data-rule]"))u.setAttribute("aria-pressed",String(e===u.dataset.rule));K("mining-note").textContent=YE[e];const s=z.roots.filter(u=>u.status==="active"&&$e(q.keys,z,u)),o=K("fund-to"),i=o.value;K("f-fund").hidden=e!=="none"||!s.length||O.beat!==null,o.replaceChildren(...s.map(u=>T("option",{value:u.id,text:u.name}))),o.value=s.some(u=>u.id===i)?i:s.some(u=>u.id===O.holding)?O.holding:((c=s[0])==null?void 0:c.id)??"",K("fund-has").textContent=ce(q.wallet?Nc(q.chain,q.wallet):0),K("holdings-empty").hidden=z.roots.length>0,K("holdings-sub").textContent=z.roots.length?String(z.roots.length):"",K("sample").disabled=z.roots.some(u=>u.name===Ea&&u.status==="active")}function JE(){var r;const e=K("tree-rows"),t=G(O.holding);if(K("tree-sub").textContent=t?`${t.name} · ${O.beat===null?"now":`beat ${O.beat} of ${tt()}`}`:"",!t)return e.replaceChildren(T("p",{class:"wait",text:"No holding yet. Found one, or load the yolopreneur sample."}));if(!Te.nodes.has(t.id))return e.replaceChildren(T("p",{class:"wait",text:`${t.name} is founded at ${mt(t.born)}. Move the slider forward.`}));const n=e.contains(document.activeElement)?document.activeElement.dataset.id:null;e.replaceChildren(...wv(Te,t.id).map(s=>s.type==="group"?T("div",{class:"row grp"},T("span",{class:"g","aria-hidden":"true",text:s.guide}),T("span",{class:"gl",text:s.label})):QE(s))),n&&((r=e.querySelector(`[data-id="${n}"]`))==null||r.focus())}function QE({node:e,guide:t,path:n,away:r}){const s=e.id===O.node,o=["row",s&&"on",e.status==="closed"&&"gone",e.born==="cued"&&"cue"].filter(Boolean).join(" ");return T("div",{class:o},T("button",{type:"button",class:"sel","data-id":e.id,"aria-pressed":String(s),onclick:()=>Hr({node:e.id}),title:r?`${e.name} graduated into a holding of its own`:null},T("span",{class:"g","aria-hidden":"true",text:t}),T("span",{class:"p",text:`${n} `}),T("span",{class:"l",text:e.name})," ",T("span",{class:"v"},ek(e))))}function ek(e){var n;return[e.kind==="agent"&&T("span",{class:"mk",text:"agent"}),e.edge==="adopted"&&T("span",{class:"mk ok",text:"graduated"}),e.charter&&T("span",{class:`mk form${(n=Yr(Te,e))!=null&&n.ok?"":" lapsed"}`,title:Fc(e),text:tk[e.charter.form]}),e.status==="closed"&&T("span",{class:"mk bad",text:"closed"}),e.born==="cued"&&T("span",{class:"mk",text:"cued"}),...e.badges.map(y0),no(e.id)>0&&T("span",{class:"mk sats",title:`${ce(no(e.id))} at its SegWit address`,text:Bc(no(e.id))})].filter(Boolean).flatMap((r,s)=>s?[" ",r]:[r])}const y0=e=>T("span",{class:`belt ${e.belt}`,title:`${e.skill}: ${e.belt} belt`},e.skill,T("span",{class:"sr",text:` (${e.belt} belt)`})),tk={sole:"sole",llc:"llc","series-llc":"series llc",series:"series",corp:"corp"},nk={sole:"Sole proprietor",llc:"LLC","series-llc":"Series LLC",series:"Series",corp:"Corporation"},rk={sole:"a sole proprietor",llc:"an LLC","series-llc":"a series LLC",corp:"a corporation"};function Fc(e,t=Te){var o;const n=e.charter,r=n.master&&G(n.master,t),s=n.form==="series"?(o=r==null?void 0:r.charter)==null?void 0:o.jurisdiction:n.jurisdiction;return[n.form==="series"?`Series of ${(r==null?void 0:r.name)??"?"}`:nk[n.form],s,n.legal,n.provider&&`via ${n.provider}`,`since ${mt(n.beat)}`].filter(Boolean).join(" · ")}function ii(e){var t;for(let n=G(e.parent);n&&n.root===e.root;n=G(n.parent))if(n.status==="active"&&((t=n.charter)==null?void 0:t.form)==="series-llc")return n;return null}function sk(e){var r;const t=e.kind==="org"&&ii(e),n=e.kind==="org"&&e.edge==="derived";return[(e.kind==="holding"||e.kind==="agent")&&["sole","Sole proprietor","a person trading under their own name"],t&&["series",`Series of ${t.name}`,`a cell of ${t.name}'s LLC, chartered by ${t.name}`],!bn(e)&&["llc","LLC",n?`a company of its own, owned through ${(r=G(e.parent))==null?void 0:r.name} while it is derived`:"a company of its own"],!bn(e)&&["series-llc","Series LLC","an LLC that can hold series, one for each venture"],!bn(e)&&["corp","Corporation","a company with shares"]].filter(Boolean)}function b0(e){return sk(e).map(([t,n,r])=>{const s=t==="series"?ii(e):e,o=Zc(q,z,"charter",s.id);return{form:t,label:n,hint:o?`${o}.`:r,off:!!o}})}const ok=e=>{var n;const t=b0(e);return t.some(r=>!r.off)?"":((n=t[0])==null?void 0:n.hint.replace(/\.$/,""))??"No legal form fits"},Ro=()=>{var e;return((e=document.querySelector("#charter-forms input:checked"))==null?void 0:e.value)??null};function ik(e){var i;const t=K("charter-forms"),n=b0(e),r=n.map(a=>`${a.form}=${a.label}=${a.off}`).join("|");if(t.dataset.sig!==r){const a=Ro(),c=n.filter(f=>!f.off),u=c.some(f=>f.form===a)?a:(i=c[0])==null?void 0:i.form;t.dataset.sig=r,t.replaceChildren(T("legend",{class:"lab",text:"Form"}),...n.map(f=>T("label",{class:f.off?"off":null},T("input",{type:"radio",name:"form",value:f.form,checked:f.form===u,disabled:f.off}),` ${f.label} `,T("span",{text:f.hint}))))}const s=Ro()==="series",o=Yr(z,e);K("charter-where").hidden=s,K("charter-now").textContent=e.charter?`Now: ${Fc(e,z)}${o.ok?"":`, lapsed: ${o.why}`}.`:"It has no legal form yet."}const w0=(e,t)=>{for(let n=G(e.parent);n;n=G(n.parent))if(n.id===t.id)return!0;return!1},x0=e=>[...z.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(w0(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t),v0=e=>e.children.reduce((t,n)=>{const r=G(n);return r&&r.edge==="derived"&&r.status==="active"?t+1+v0(r):t},0);function ak(e,t){const n=async r=>{await ft(s=>_E(s,e.id,r))&&ye(r?`${e.name} mines at hashrate ${r}.`:`${e.name} sits out of mining.`)};return T("span",{class:"rig"},T("span",{class:"rl",text:"hashrate"}),T("span",{class:"rn"},T("button",{type:"button",class:"rb","aria-label":`Lower ${e.name}'s hashrate`,disabled:t<=0,onclick:()=>n(t-1)},"−"),T("b",{text:String(t)}),T("button",{type:"button",class:"rb","aria-label":`Raise ${e.name}'s hashrate`,disabled:t>=9,onclick:()=>n(t+1)},"+")))}const E0=e=>[...z.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(w0(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t);function ck(e){const t=$e(q.keys,z,e);return t?Cc(q.chain.coins(t.script))[...z.items.values()].map(t=>[t,G(mn.get(t.id))]).filter(([,t])=>t&&t.id!==e.id&&t.status==="active").sort((t,n)=>(t[1].root===e.root?0:1)-(n[1].root===e.root?0:1)).map(([t])=>t);function uk(e){const t=$e(q.keys,z,e);return t?S0(e).length?q.chain.coins(t.script).some(n=>n.value>=de+Le||n.value===de)?"":k0(e,"to pay with"):"Nobody else holds an item yet. Items come from Make":"This holding predates lab keys, so it has no SegWit address to pay from"}function $0(e,t=z){const n=_c(q.keys,t,e);return n&&{taproot:n.taproot.address,segwit:n.segwit.address,nostr:n.npub.address,ethereum:n.ethereum.address}}function fk(e){const t=$0(e),n=e.keyring;if(!t)return"This holding predates lab keys, so it has no keys to list";const r=jc(z,"keyring",e.id);return r||(!n||n.retired||vt.some(s=>n.keys[s]!==t[s])?"":n.beat==="cued"?`${e.name}'s keyring is cued for the next beat`:`${e.name}'s keyring already lists these keys, since beat ${n.beat}`)}function lk(e){const t=G(e.parent),n=e.status==="closed"?`${e.name} is closed`:"",r=(s,o=e.id,i={})=>Zc(q,z,s,o,i);return{birth:n||(bn(e)?"Agents give birth only once they graduate":r("birth")),award:n||(bn(e)?"Agents award belts only once they graduate":x0(e).length?r("award"):"There is nobody else to award yet"),charter:n||ok(e),decide:n||r("decide"),make:n||r("make"),keyring:n||fk(e)||r("keyring"),send:n||ck(e),offer:n||uk(e),graduate:n||(t?e.edge==="adopted"?`${e.name} has already graduated`:t.status!=="active"?`${t.name} is closed`:jc(z,"graduate",t.id,{of:e.id})||r("graduate",t.id,{of:e.id}):"A holding has no parent to graduate from"),close:n||r("close")}}function Os(){const e=G(O.node),t=O.beat!==null;if(K("act-none").hidden=!!e,K("act-past").hidden=!e||!t,K("act-on").hidden=!e||t,K("act-sub").textContent=(e==null?void 0:e.name)??"",K("past-beat").textContent=String(O.beat??""),!e||t)return;const n=lk(e),r=G(e.parent);for(const h of document.querySelectorAll("[data-verb]"))h.setAttribute("aria-pressed",String(h.dataset.verb===O.verb)),h.classList.toggle("off",!!n[h.dataset.verb]);for(const h of document.querySelectorAll("form[data-form]"))h.hidden=h.dataset.form!==O.verb||!!n[O.verb];K("act-why").textContent=n[O.verb]?`${n[O.verb]}.`:"";for(const h of document.querySelectorAll("#act-on [data-name]"))h.textContent=e.name;for(const h of document.querySelectorAll("#act-on [data-parent]"))h.textContent=(r==null?void 0:r.name)??"";const s=h=>h.map(g=>`${g.value}=${g.textContent}`).join("|"),o=[[K("award-to"),x0(e).map(h=>[h.id,`${Tr(z,h.id)}${h.kind==="agent"?" (agent)":""}`])],[K("send-to"),E0(e).map(h=>[h.id,`${Tr(z,h.id)}${h.kind==="agent"?" (agent)":""}`])],[K("offer-item"),S0(e).map(h=>[h.id,`${h.name} · held by ${Tt(mn.get(h.id))}`])]];for(const[h,g]of o){const m=h.value,b=g.map(([w,y])=>T("option",{value:w,text:y}));s(b)!==s([...h.options])&&(h.replaceChildren(...b),b.some(w=>w.value===m)&&(h.value=m))}for(const h of["send-has","offer-has"])K(h).textContent=ce(h0(e.id));K("graduate-go").textContent=`Graduate ${e.name}`,O.verb==="charter"&&!n.charter&&ik(e);const i=O.verb==="keyring"&&!n.keyring&&$0(e);i&&K("keyring-keys").replaceChildren(...[["Taproot",i.taproot],["SegWit",i.segwit],["nostr",i.nostr],["Ethereum",i.ethereum]].map(Or));const a=O.verb==="graduate"?r:O.verb==="charter"&&Ro()==="series"?ii(e):e,c=a&&Ce(q.keys,z,a),u=O.verb==="send"||O.verb==="offer",f=c&&(u?`${c.from} · ${$e(q.keys,z,a).path}`:c.path);K("act-key").textContent=!a||n[O.verb]?"":c?`Signs as ${a.name}: ${f}`:"Signs with the lab wallet: this holding predates lab keys.";const l=O.verb==="graduate"&&Ce(q.keys,z,e)?As(z,e.id).length:0;K("act-gas").textContent=!a||n[O.verb]||!c?"":O.verb==="send"?`Fee: ${de} sats, from ${e.name}'s balance.`:O.verb==="offer"?`Fee: ${de} sats, from ${e.name}'s balance, paid only if the holder accepts.`:`Gas: ${UE(O.verb,l).toLocaleString("en-US")} sats from ${a.name}'s tank (${ce(Nc(q.chain,c.wallet))}), which tops up from its balance.${l?` ${e.name} pays ${de} more, from its own money, to claim its new root.`:""}`;const d=v0(e),p=O.closing===e.id;K("close-note").textContent=d?`Closing ${e.name} spends it for the last time, and its ${Xr(d,"derived descendant")} close with it. Graduated children hold their own roots and stay open.`:`Closing ${e.name} spends its inscription for the last time. Nothing can act through it afterwards.`,K("close-go").textContent=p?`Yes, close ${e.name}`:`Close ${e.name}`,K("close-keep").hidden=!p}function _0(){const e=K("inspect-body"),t=O.event?z.log.find(o=>o.id===O.event):null;if(t)return K("inspect-sub").textContent="event",e.replaceChildren(..._k(t));const n=O.tx?Me.ledger.find(o=>o.key===O.tx):null;if(n)return K("inspect-sub").textContent="money",e.replaceChildren(...Ak(n));const r=G(O.node);if(K("inspect-sub").textContent=(r==null?void 0:r.kind)??"",!r)return e.replaceChildren(T("p",{class:"note pad",text:"Select a node in the tree, or an event in the timeline."}));const s=G(O.node,Te);if(!s)return e.replaceChildren(T("p",{class:"note pad",text:`${r.name} is not born yet at beat ${O.beat}.`}));e.replaceChildren(...dk(s))}const Or=([e,t,n])=>T("div",{class:"f"},T("dt",{text:e}),T("dd",{},t,n&&T("span",{class:"fn",text:n})));function dk(e){var r;const t=G(e.parent,Te),n=[["Born",e.born==="cued"?"cued for the next beat":`beat ${e.born}`],t&&["Parent",`${t.name} · ${e.kind} ${e.index}'`],t&&["Edge",e.edge==="adopted"?`adopted at ${mt(e.graduated)}: it holds its own root`:`derived: ${t.name} holds its seed`],t&&e.root===e.id&&["Holding",T("span",{},"its own, since it graduated",e.id!==O.holding&&T("button",{type:"button",class:"btn sm open",onclick:()=>{Hr({holding:e.id,node:e.id}),mk()}},`Open ${e.name}`))],e.closed!==null&&["Closed",mt(e.closed)],["Charter",e.charter?Fc(e):"none yet",e.charter?Yr(Te,e).ok?e.charter.filing?`Filing SHA-256 ${e.charter.filing.slice(0,16)}…`:"":`Lapsed: ${Yr(Te,e).why}.`:"Charter gives it a legal form: sole proprietor, LLC, series LLC, series or corporation."],((r=e.charter)==null?void 0:r.form)==="series-llc"&&["Series",[...Te.nodes.values()].filter(s=>{var o;return((o=s.charter)==null?void 0:o.master)===e.id}).map(s=>`${s.name}${Yr(Te,s).ok?"":" (lapsed)"}`).join(", ")||"none yet"],["Children",e.children.length?e.children.map(s=>{var o;return(o=G(s,Te))==null?void 0:o.name}).join(", "):"none yet"],$e(q.keys,Te,e)&&["Balance",ce(no(e.id)),`Test BTC at its SegWit address${O.beat===null?"":`, as of beat ${O.beat}`}.`],O.beat===null&&Ce(q.keys,z,e)&&["Gas tank",ce(Nc(q.chain,Ce(q.keys,z,e).wallet)),"Plain coins at its Taproot key. Its acts burn their fees from here, and the tank tops up from its balance, 0.0001 tBTC at a time."],["Inscription",e.id]].filter(Boolean);return[T("div",{class:"ih"},T("p",{class:"eyebrow",text:Tr(Te,e.id)}),T("h3",{class:"it",text:e.name}),T("div",{class:"chips"},T("span",{class:"chip",text:e.kind}),T("span",{class:`chip ${e.status==="active"?"ok":"bad"}`,text:e.status}),e.edge==="adopted"&&T("span",{class:"chip ok",text:"graduated"}),e.born==="cued"&&T("span",{class:"chip",text:"cued"}))),T("div",{class:"ib"},T("dl",{class:"fl"},n.map(Or)),e.badges.length>0&&T("div",{},T("p",{class:"lab",text:"Belts"}),T("ul",{class:"list"},e.badges.map(s=>{var o;return T("li",{},y0(s),T("span",{class:"when",text:` from ${((o=G(s.by))==null?void 0:o.name)??"?"}, ${mt(s.beat)}`}))}))),e.decisions.length>0&&T("div",{},T("p",{class:"lab",text:"Decisions"}),T("ul",{class:"list"},e.decisions.map(s=>T("li",{},T("b",{text:s.title}),s.why&&` · ${s.why}`,T("span",{class:"when",text:` (${mt(s.beat)})`}))))),hk(e),yk(e),vk(e))]}function hk(e){const t=(a,c)=>c.length>0&&T("div",{},T("p",{class:"lab",text:a}),T("ul",{class:"list items"},c)),n=(a,c)=>T("li",{},T("b",{text:a.name}),a.note&&` · ${a.note}`,T("span",{class:"when",text:` (${c})`}));if(O.beat!==null)return t("Made",e.made.map(a=>Te.items.get(a)).filter(Boolean).map(a=>n(a,mt(a.beat))));const r=a=>`made${a.maker===e.id?"":` by ${Tt(a.maker)}`}${a.beat==="cued"?", cued":` at beat ${a.beat}`}`,s=[...z.items.values()].filter(a=>mn.get(a.id)===e.id).map(a=>{const c=n(a,r(a)),u=$a().filter(f=>f.item===a.id&&f.seller===e.id&&wa(q,z,f)==="open");return u.length&&c.append(T("ul",{class:"bids"},u.map(f=>T("li",{},T("span",{text:`${Tt(f.buyer)} offers ${f.price?ce(f.price):"nothing, a free claim"}`}),e.status==="active"&&T("button",{type:"button",class:"btn sm","aria-label":`Accept ${Tt(f.buyer)}'s offer for ${a.name}`,onclick:()=>pk(f)},"Accept"))))),c}),o=e.made.map(a=>z.items.get(a)).filter(a=>a&&mn.get(a.id)!==e.id).map(a=>n(a,mn.get(a.id)?`now held by ${Tt(mn.get(a.id))}`:"held outside this lab")),i=$a().filter(a=>a.buyer===e.id&&wa(q,z,a)!=="done").map(a=>{const c=Rc(q,z,a);return T("li",{},T("b",{text:a.price?ce(a.price):"nothing"}),` for ${Bn(a.item)}`,T("span",{class:"when",text:c?` (stale: ${c})`:` (open until ${Tt(a.seller)} accepts)`}),T("button",{type:"button",class:"btn sm","aria-label":`Withdraw the offer for ${Bn(a.item)}`,onclick:()=>gk(a)},"Withdraw"))});return[t("Items",s),t("Made, held elsewhere",o),t("Offers made",i)]}const Tt=e=>{const t=G(e);return t?t.root===O.holding?t.name:Tr(z,e):"?"};async function pk(e){const t=Bn(e.item),n=Tt(e.buyer),r=Tt(e.seller);if(!await ft(o=>{jE(o,e.txid)}))return;const s=Me.ledger.find(o=>o.txid===e.txid);ye(`${r} accepted: ${t} goes to ${n}${e.price?` for ${ce(e.price)}`:", free"}, ${s!=null&&s.beat?`at beat ${s.beat}`:"cued for the next beat"}.`)}async function gk(e){const t=Bn(e.item),n=Tt(e.buyer);await ft(r=>{KE(r,e.txid)})&&ye(`${n} withdrew its offer for ${t}.`)}function mk(){const e=document.querySelector(".tree-blk").getBoundingClientRect().top+scrollY-document.querySelector(".clock").offsetHeight-12;e(n.to===e.id||n.from===e.id)&&(O.beat===null||n.beat!==null&&n.beat<=O.beat)).slice(-6).reverse();return t.length>0&&T("div",{},T("p",{class:"lab",text:"Money"}),T("ul",{class:"list"},t.map(n=>T("li",{},T("b",{text:bk(n,e.id)}),T("span",{class:"when",text:` (${mt(n.beat??"cued")})`})))))}function bk(e,t){const n=r=>{var s;return((s=G(r))==null?void 0:s.name)??"?"};if(e.kind==="mine")return`+${ce(e.amount)}, a beat's reward`;if(e.kind==="move")return`${ce(e.amount)} moved to its new key, after a ${e.fee}-sat fee`;if(e.kind==="gas")return`−${ce(e.amount)} into its gas tank, and a ${e.fee}-sat fee`;if(e.kind==="fund")return`+${ce(e.amount)} from the lab wallet`;if(e.kind==="deal"){const r=Bn(e.item);return e.to===t?e.amount?`+${ce(e.amount)} from ${n(e.from)} for ${r}`:`${r} to ${n(e.from)}, free`:e.amount?`−${ce(e.amount)} to ${n(e.to)} for ${r}, and a ${e.fee}-sat fee`:`${r} from ${n(e.to)}, free but for a ${e.fee}-sat fee`}return e.to===t?`+${ce(e.amount)} from ${n(e.from)}`:`−${ce(e.amount)} to ${n(e.to)}, and a ${e.fee}-sat fee`}function A0(e){const t=n=>{const r=G(n);return r?r.root===O.holding?r.name:Tr(z,n):"?"};return e.kind==="mine"?`${ce(e.amount)} → ${t(e.to)}`:e.kind==="move"?`${ce(e.amount)} → ${t(e.to)}'s new key`:e.kind==="gas"?`${ce(e.amount)} → ${t(e.to)}'s gas tank`:e.kind==="fund"?`${ce(e.amount)} lab wallet → ${t(e.to)}`:e.kind==="deal"?`${Bn(e.item)} ${t(e.to)} → ${t(e.from)}, ${e.amount?`for ${ce(e.amount)}`:"free"}`:`${ce(e.amount)} ${t(e.from)} → ${t(e.to)}`}const wk={own:"its own key",lab:"the lab wallet",parent:"its parent's key (its handoff is cued)",other:"a key outside this lab"},xk={ssh:"shell access, certified by the CA",git:"commit signing",dkim:"mail signing",wg:"WireGuard peer key","ssh-ca":"SSH certificate authority",mtls:"TLS identity between nodes",noise:"Headscale noise key"};function vk(e){const t=Ce(q.keys,Te,e),n=Ac(q,z,e.id),r=["Held now by",n?wk[n.who]:"nobody: its inscription has been spent"];if(!t)return T("div",{class:"keys"},T("p",{class:"lab",text:"Keys"}),T("dl",{class:"fl"},[["Signs with","the lab wallet: this holding predates lab keys, so it has no addresses, leaves or secrets of its own"],r].map(Or)));const s=e.kind==="agent",o=_c(q.keys,Te,e),i=uE(q.keys,Te,e),a=i.map(([,,d])=>d).filter(Boolean),c="Reset the lab for standard BIP-86 keys.",u=s?"Holds this seat's inscription, and inscriptions sent to it land here.":"Holds this org's inscription and signs its acts. Inscriptions sent to it land here.",f={bip86:`BIP-86 at ${o.taproot.path}. ${u}`,tapkey:`Its npub's key with the BIP-86 tweak, the way v1.2 keyed this lab. ${u} ${c}`,wallet:`An untweaked key at ${o.taproot.path}, the way v1.1 keyed this lab. ${u} ${c}`}[t.scheme],l=[["Taproot",o.taproot.address,f],["SegWit",o.segwit.address,`BIP-84 at ${o.segwit.path}. Its money: ${e.kind==="holding"?"the beats it earns land here, and ":""}sends come and go here.`],["Tapkey",o.tapkey.address,"Its npub as a Taproot address (its nostr key with the BIP-86 tweak), so the npub alone finds it. Nostr secrets get pasted into clients, so treat it as an inbox."],["npub",o.npub.address,`NIP-06 at ${o.npub.path}. Its nostr name; the leaves below hang off it.`],["Ethereum",o.ethereum.address,s&&e.edge!=="adopted"?`BIP-44 at ${o.ethereum.path}: account ${t.account} of its org's seed, the way Ledger Live numbers Ethereum accounts.`:`BIP-44 at ${o.ethereum.path}. Its legal-control key, the one that holds the entity NFT, as on the lineage key tree page.`],["From",`${t.from} · account ${t.account}`],r,Ek(e)];return T("div",{class:"keys"},T("p",{class:"lab",text:"Keys"}),T("dl",{class:"fl"},l.map(Or)),e.keyring&&gr(`${e.keyring.retired?"Retired keyring":"Keyring"} · what each key signed`,Yo(e.id,e.keyring.keys)),T("p",{class:"lab"},"Leaves",T("span",{text:` · HKDF-SHA256 from its ${s?"nostr secret":"seed"}`})),T("ul",{class:"list leaves"},i.map(([d,p])=>T("li",{},T("b",{text:d}),T("span",{class:"when",text:` ${xk[d]}`}),T("code",{text:p})))),gr(s?"Public lines to paste":"CA key for TrustedUserCAKeys",a.join(` - -`)),Sk(e,t))}function Ek(e){var r;const t=e.keyring,n=(t==null?void 0:t.retired)&&(t.retired.by===e.id?"It":((r=G(t.retired.by,Te))==null?void 0:r.name)??"Its parent");return t?t.retired?["Keyring",`retired at ${mt(t.retired.beat)}`,t.retired.cause==="close"?`${n} closed, which freed the keys it listed.`:n==="It"?"It graduated, so its keys changed with its new root. Keyring publishes a new one.":`${n} graduated, so ${e.name}'s keys changed with ${n}'s new root. Keyring publishes a new one.`]:["Keyring",`published at ${mt(t.beat)}`,"Each key signed it: Taproot and SegWit by BIP-322, the npub as a nostr event, Ethereum by EIP-191."]:["Keyring","none yet","Keyring publishes one: an inscription that lists these keys, each key signing it."]}function gr(e,t,n=t){const r=T("pre",{text:n}),s=T("button",{type:"button",class:"cp","aria-label":`Copy ${e}`,onclick:()=>kk(t,s,r)},"Copy");return T("div",{class:"code"},T("div",{class:"code-h cph"},T("span",{text:e}),s),r)}async function kk(e,t,n){const r=s=>{t.textContent=s,setTimeout(()=>{t.textContent="Copy"},1400)};try{await navigator.clipboard.writeText(e),r("Copied")}catch{getSelection().selectAllChildren(n),r("Selected")}}function Sk(e,t){var a;const n=O.reveal===e.id,r=n&&pE(q.keys,Te,e),s=G(e.parent,Te),o=()=>{var c;O.reveal=n?null:e.id,_0(),(c=K("reveal"))==null||c.focus()},i=(a=r==null?void 0:r.seed)==null?void 0:a.mnemonic.split(" ");return T("div",{class:"secret"},T("div",{class:"hz"},T("span",{class:"hz-l",text:"Secret · stays in this tab"}),T("button",{type:"button",class:"btn sm",id:"reveal","aria-expanded":String(n),onclick:o},n?"Hide":"Reveal")),r&&T("div",{class:"sb"},r.seed?gr(`Seed · ${r.seed.from}`,r.seed.mnemonic,i.map((c,u)=>`${String(u+1).padStart(2,"0")} ${c}`).reduce((c,u,f)=>(f%3?c[c.length-1].push(u):c.push([u]),c),[]).map(c=>c.join(" ")).join(` -`)):T("p",{class:"note",text:`A seat has no seed of its own: these are account ${t.account} of ${(s==null?void 0:s.name)??"its org"}'s seed.`}),r.account.map(([c,u,f])=>gr(`${c} · ${u}`,f)),r.leaves.map(([c,u,f])=>gr(`${c} · ${u}`,f))))}function $k(e){var i,a,c;const t=(a=(i=q.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:i.tx.vin.find(u=>{var f;return((f=u.witness)==null?void 0:f.length)===3}))==null?void 0:a.witness;if(!t)return"?";const n=rc(t).pubkey,r=G(e.parent),s=e.op==="found"?G(e.node):null,o=[[s&&Ce(q.keys,z,s),`${s==null?void 0:s.name}'s root`],[r&&Ce(q.keys,z,r),`${r==null?void 0:r.name}'s key`],[(r==null?void 0:r.edge)==="adopted"&&Ce(q.keys,z,{...r,edge:"derived"}),`${r==null?void 0:r.name}'s derived key, from before it graduated`]];for(const[u,f]of o)if(u&&u.wallet.pubkey===n)return f;return((c=q.wallet)==null?void 0:c.pubkey)===n?"the lab wallet":`a key outside this lab (${n.slice(0,12)}…)`}function _k(e){var o,i,a;const t=No.events.find(c=>c.id===e.id),n=(i=(o=q.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:o.inscription)==null?void 0:i.text,r=[["When",e.pending?"cued for the next beat":`beat ${e.beat}`],["Authorized by",e.parent?`${((a=G(e.parent))==null?void 0:a.name)??"an unknown inscription"}, whose inscription this event spent`:"nothing: a founding has no parent"],["Signed by",$k(e)],["Inscription",e.id],n&&["Body",n],(t==null?void 0:t.block)&&["Block",t.block]].filter(Boolean),s=t&&{id:t.id,status:t.status,height:t.height,block:t.block,parent:t.parent??null,metaprotocol:t.metaprotocol??null,contentType:t.contentType,sat:t.sat,location:t.location};return[T("div",{class:"ih"},T("p",{class:"eyebrow",text:`${e.op} · ${e.pending?"cued":`beat ${e.beat}`}`}),T("h3",{class:"it",text:Oh(e,z)}),T("div",{class:"chips"},T("span",{class:"chip",text:(t==null?void 0:t.protocol)??"?"}),T("span",{class:`chip ${e.ok?"ok":"bad"}`,text:e.ok?"applied":"rejected"})),!e.ok&&T("p",{class:"idesc",text:"The reducer rejected this event. It stays on the chain, but it does not change the tree."})),T("div",{class:"ib"},T("dl",{class:"fl"},r.map(Or)),T("div",{class:"code"},T("p",{class:"code-h",text:"Metadata · CBOR, tag 5"}),T("pre",{text:cf(e.meta)})),s&&T("div",{class:"code"},T("p",{class:"code-h",text:"Raw index entry"}),T("pre",{text:cf(s)})))]}function Ak(e){const t=i=>{var a;return((a=G(i))==null?void 0:a.name)??"a key outside this lab"},n=q.chain.transactions.get(e.txid),r=e.kind==="deal",s=e.kind==="fund",o=[["When",e.beat===null?"cued for the next beat":`beat ${e.beat}`],r&&["Item",`${Bn(e.item)}, an inscription: from ${t(e.to)}'s Taproot key to ${t(e.from)}'s`],["From",e.kind==="mine"?"its share of the beat's block reward (the coinbase)":s?"the lab wallet, standing in for a wallet you already have":`${t(e.from)}'s SegWit address${e.kind==="move"?", from before it graduated":""}`],["To",e.kind==="gas"?`${t(e.to)}'s gas tank, at its Taproot key`:r&&!e.amount?"nobody: a free claim pays no price":`${t(e.to)}'s ${e.kind==="move"?"new ":""}SegWit address`],[r?"Price":"Amount",r&&!e.amount?"nothing":ce(e.amount)],e.kind!=="mine"&&["Fee",`${e.fee} sats, retired: this toy chain pays no fees to miners`],e.change>0&&["Change",`${ce(e.change)} back to ${s?"the lab wallet":t(e.from)}`],["Signed by",e.kind==="mine"?"nobody: a coinbase spends nothing":s?"the lab wallet's Taproot key":r?`${t(e.from)}'s SegWit key (SIGHASH_ALL) when it made the offer, then ${t(e.to)}'s Taproot key when it accepted`:`${t(e.from)}'s SegWit key (BIP-143, SIGHASH_ALL)`],["Transaction",e.txid]].filter(Boolean);return[T("div",{class:"ih"},T("p",{class:"eyebrow",text:`${e.kind} · ${e.beat===null?"cued":`beat ${e.beat}`}`}),T("h3",{class:"it",text:A0(e)}),T("div",{class:"chips"},T("span",{class:"chip",text:"test BTC"}),T("span",{class:`chip${e.beat===null?"":" ok"}`,text:e.beat===null?"cued":"confirmed"}))),T("div",{class:"ib"},T("dl",{class:"fl"},o.map(Or)),n&&gr("Raw transaction",n.raw))]}function Wc(){const e=tt(),t=K("beat"),n=G(O.holding);t.max=String(e),t.value=String(O.beat??e),t.disabled=e===0,K("beat-label").textContent=O.beat===null?`Now · beat ${e}`:`Beat ${O.beat} of ${e}`,K("replay").textContent=O.replay?"Stop":"Replay",K("replay").disabled=!n||e===0,K("to-now").disabled=O.beat===null,K("timeline-sub").textContent=(n==null?void 0:n.name)??"";const r=new Map,s=new Map([...q.chain.transactions.keys()].map((a,c)=>[a,c])),o=(a,c)=>r.set(a,[...r.get(a)??[],c]);for(const a of z.log)a.roots.includes(O.holding)&&o(a.pending?"cued":a.beat,{e:a,at:s.get(a.id.slice(0,-2))??0});for(const a of Me.ledger)[a.to,a.from].some(c=>{var u;return c&&((u=G(c))==null?void 0:u.root)===O.holding})&&o(a.beat??"cued",{m:a,at:s.get(a.txid)??0});const i=[...r.keys()].sort((a,c)=>a==="cued"?-1:c==="cued"?1:c-a);if(!i.length)return K("timeline-list").replaceChildren(T("li",{class:"wait",text:n?"Nothing yet.":"Found a holding to start its timeline."}));K("timeline-list").replaceChildren(...i.map(a=>{const c=a==="cued"?null:q.chain.blocks[a-1],u=O.beat!==null&&(a==="cued"||a>O.beat),f=O.beat!==null&&a===O.beat;return T("li",{class:`beat${u?" later":""}${f?" now":""}`},T("p",{class:"bh"},T("span",{class:"bn",text:a==="cued"?"Cued":`Beat ${a}`}),T("span",{class:"bt",text:c?VE(c.time):q.clock.tempo==="manual"?"waiting for Beat now":"landing on the next beat"})),T("ol",{class:"evs"},r.get(a).sort((l,d)=>l.at-d.at).map(({e:l,m:d})=>d?Tk(d):Bk(l))))}))}function Bk(e){const[t,...n]=Oh(e,z).split(" ");return T("li",{},T("button",{type:"button",class:`ev${e.ok?"":" bad"}${e.id===O.event?" on":""}`,"aria-pressed":String(e.id===O.event),onclick:()=>Hr({event:e.id,node:e.node??O.node})},T("span",{class:"op",text:e.ok?t:`✕ ${t.replace(/:$/,"")}`})," ",T("span",{class:"es",text:n.join(" ")})))}const Tk=e=>T("li",{},T("button",{type:"button",class:`ev money${e.kind==="gas"?" gas":""}${e.kind==="deal"?" deal":""}${e.key===O.tx?" on":""}`,"aria-pressed":String(e.key===O.tx),onclick:()=>{var t;return Hr({tx:e.key,node:((t=G(e.to))==null?void 0:t.root)===O.holding?e.to:O.node})}},T("span",{class:"op",text:e.kind})," ",T("span",{class:"es",text:A0(e)})));K("f-found").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=_s(t.elements.name.value);if(!n)return ye("Name the holding: lowercase letters, digits and hyphens.",!0);await Ut("found",null,{name:n},(r,s)=>(qc({holding:r,node:r}),`${n} is founded, ${s}.`))&&t.reset()});K("sample").addEventListener("click",async()=>{let e=null;ye("Rehearsing the yolopreneur tree over six beats…"),await ft(t=>{e=ZE(t)})&&(Hr({holding:e,node:e}),ye("Loaded the yolopreneur sample: six beats of history, ending on lineage's open offer for sol's launch-kit. Press Replay to watch it grow."))});K("f-birth").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=G(O.node),r=_s(t.elements.name.value),s=t.elements.kind.value;if(!r)return ye("Name the child: lowercase letters, digits and hyphens.",!0);await Ut("birth",n.id,{name:r,kind:s},(o,i)=>`${r} is born to ${n.name}, ${i}.`)&&(t.elements.name.value="")});K("f-award").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=G(O.node),r=t.elements.to.value,s=_s(t.elements.skill.value),o=t.elements.belt.value;if(!s)return ye("Name the skill, for example launch.",!0);await Ut("award",n.id,{to:r,skill:s,belt:o},(i,a)=>{var c;return`${(c=G(r))==null?void 0:c.name} holds a ${o} belt in ${s}, ${a}.`})&&(t.elements.skill.value="")});K("f-decide").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=G(O.node),r=t.elements.title.value.trim(),s=t.elements.why.value.trim();if(!r)return ye("A decision needs a title.",!0);await Ut("decide",n.id,{title:r,why:s},(o,i)=>`${n.name} decided “${r}”, ${i}.`)&&t.reset()});K("f-send").addEventListener("submit",async e=>{var a;e.preventDefault();const t=e.currentTarget,n=G(O.node),r=t.elements.to.value,s=Tc(t.elements.amount.value);if(s===null)return ye("Write an amount in test BTC, for example 1.5 (at most eight decimals).",!0);let o=null;if(!await ft(c=>{o=RE(c,n.id,r,s)}))return;const i=Me.ledger.find(c=>c.txid===o);ye(`${n.name} sent ${ce(s)} to ${((a=G(r))==null?void 0:a.root)===n.root?G(r).name:Tr(z,r)}, ${i!=null&&i.beat?`at beat ${i.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});K("f-make").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=G(O.node),r=_s(t.elements.name.value),s=t.elements.note.value.trim();if(!r)return ye("Name the item: lowercase letters, digits and hyphens.",!0);await Ut("make",n.id,{name:r,note:s},(o,i)=>`${n.name} made ${r}, ${i}.`)&&t.reset()});K("f-charter").addEventListener("change",e=>{e.target.name==="form"&&Os()});K("charter-file").addEventListener("change",async e=>{var r;const t=(r=e.target.files)==null?void 0:r[0];if(!t)return;const n=new Uint8Array(await crypto.subtle.digest("SHA-256",await t.arrayBuffer()));K("charter-filing").value=[...n].map(s=>s.toString(16).padStart(2,"0")).join(""),e.target.value="",ye(`Hashed ${t.name} in this tab: only its SHA-256 would go on chain.`)});K("f-charter").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=G(O.node),r=Ro();if(!r)return ye("Pick a legal form.",!0);if(r==="series"){const a=ii(n);await Ut("charter",a.id,{form:"series",of:n.id},(c,u)=>`${n.name} is a series of ${a.name}, ${u}.`);return}const s=a=>t.querySelector(`[name="${a}"]`).value.trim(),o={form:r,jurisdiction:s("jurisdiction").toUpperCase(),legal:s("legal"),provider:_s(s("provider")),filing:s("filing").toLowerCase()},i=(a,c)=>`${n.name} is chartered as ${rk[r]}${o.jurisdiction?` in ${o.jurisdiction}`:""}, ${c}.`;if(await Ut("charter",n.id,o,i))for(const a of["legal","filing"])t.querySelector(`[name="${a}"]`).value=""});K("f-keyring").addEventListener("submit",async e=>{e.preventDefault();const t=G(O.node);await Ut("keyring",t.id,{},(n,r)=>`${t.name} published its keyring, ${r}: four keys, each signing the same statement.`)});K("f-offer").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=G(O.node),r=K("offer-item").value,s=Tc(t.elements.price.value);if(s===null)return ye("Write a price in test BTC, for example 0.1, or 0 for a free claim.",!0);const o=Tt(mn.get(r)),i=Bn(r);await ft(a=>{HE(a,r,n.id,s)})&&(ye(`${n.name} offers ${s?ce(s):"nothing"} for ${i}. The offer stands until ${o} accepts it.`),t.elements.price.value="")});K("send-max").addEventListener("click",()=>{const e=G(O.node),t=e&&$e(q.keys,z,e);t&&(K("send-amount").value=Vh(Cc(q.chain.coins(t.script))))});K("f-graduate").addEventListener("submit",async e=>{e.preventDefault();const t=G(O.node),n=G(t.parent);await Ut("graduate",n.id,{of:t.id},(r,s)=>(qc({node:t.id}),`${t.name} graduates from ${n.name}, ${s}. It's a holding of its own now.`))});K("f-close").addEventListener("submit",async e=>{e.preventDefault();const t=G(O.node);if(O.closing!==t.id)return O.closing=t.id,Os(),K("close-go").focus();O.closing=null,await Ut("close",t.id,{},(n,r)=>`${t.name} is closed, ${r}.`)});K("close-keep").addEventListener("click",()=>{O.closing=null,Os(),K("close-go").focus()});for(const e of document.querySelectorAll("[data-verb]"))e.addEventListener("click",()=>{O.verb=e.dataset.verb,O.closing=null,Os()});for(const e of document.querySelectorAll("[data-rule]"))e.addEventListener("click",async()=>{const t=e.dataset.rule;await ft(n=>AE(n,t))&&ye({split:"Each beat splits across the holdings that mine, by hashrate.",last:"Each beat goes whole to the holding that acts.",none:"Mainnet: no holding mines. Beats pay the lab wallet, and you fund holdings from it."}[t])});K("f-fund").addEventListener("submit",async e=>{var i;e.preventDefault();const t=e.currentTarget,n=t.elements.to.value,r=Tc(t.elements.amount.value);if(r===null)return ye("Write an amount in test BTC, for example 5 (at most eight decimals).",!0);let s=null;if(!await ft(a=>{s=DE(a,n,r)}))return;const o=Me.ledger.find(a=>a.txid===s);ye(`The lab wallet funded ${(i=G(n))==null?void 0:i.name} with ${ce(r)}, ${o!=null&&o.beat?`at beat ${o.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});for(const e of document.querySelectorAll("[data-tempo]"))e.addEventListener("click",async()=>{const t=e.dataset.tempo,n=/^\d+$/.test(t)?Number(t):t;await ft(r=>IE(r,n,Date.now(),si(r,Vc(r)??O.holding)))&&ye(t==="each"?"Each act is its own beat.":t==="manual"?"Acts are cued until you press Beat now.":`Acts are cued and land together on the next beat, at most ${t} seconds after the first.`)});K("beat-now").addEventListener("click",()=>g0(e=>{Et(e,si(e,Vc(e)??O.holding))}));setInterval(()=>{m0();const{tempo:e,nextAt:t}=q.clock;O.busy||document.hidden||typeof e!="number"||!q.chain.mempool.length||t&&Date.now()OE(n,Date.now(),si(n,Vc(n)??O.holding)))},1e3);addEventListener("storage",e=>{(e.key===ni||e.key===null)&&p0()});function Cs(){O.replay&&(clearInterval(O.replay),O.replay=null,Wc())}function Ik(){const e=G(O.holding);if(!(!e||!tt())){if(Lo(typeof e.born=="number"?e.born:tt()),O.beat===null)return ye("Nothing to replay yet: this holding has one beat of history.");O.replay=setInterval(()=>{(O.beat===null||O.beat+1>=tt())&&Cs(),Lo(O.beat===null?tt():O.beat+1)},800),Wc()}}K("beat").addEventListener("input",e=>{Cs(),Lo(Number(e.target.value))});K("replay").addEventListener("click",()=>O.replay?Cs():Ik());for(const e of["to-now","past-now"])K(e).addEventListener("click",()=>{Cs(),Lo(tt())});const Ki=["system","light","dark"],B0=()=>{K("theme").textContent=`Theme: ${document.documentElement.dataset.theme??"system"}`};K("theme").addEventListener("click",()=>{const e=Ki[(Ki.indexOf(document.documentElement.dataset.theme??"system")+1)%Ki.length];e==="system"?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=e;try{e==="system"?localStorage.removeItem("orgchain-theme"):localStorage.setItem("orgchain-theme",e)}catch{}B0()});function T0(e,t,n){const r=K("confirm");r.replaceChildren(T("span",{text:e}),T("button",{type:"button",class:"btn sm danger",text:t,onclick:()=>{r.hidden=!0,n()}}),T("button",{type:"button",class:"btn sm",text:"Cancel",onclick:()=>{r.hidden=!0}})),r.hidden=!1,r.querySelector("button").focus()}const Ok={read:()=>{try{return Hc()}catch{return Is()}}};async function I0(e,t){Cs(),await ft(n=>{Object.assign(n,e())},Ok)&&(Object.assign(O,{holding:null,node:null,event:null,tx:null,beat:null,closing:null}),zc(),ye(t))}K("save").addEventListener("click",()=>{const e=T("a",{href:URL.createObjectURL(new Blob([i0(q)],{type:"application/json"})),download:`orgchain-lab-${new Date().toISOString().slice(0,10)}.json`});document.body.append(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(e.href),5e3),ye("Saved a backup of this lab, test wallet included. Load it in any browser to carry on.")});K("load").addEventListener("click",()=>K("load-file").click());K("load-file").addEventListener("change",async e=>{var r;const t=(r=e.target.files)==null?void 0:r[0];if(e.target.value="",!t)return;let n;try{n=o0(await t.text())}catch(s){return ye(`${t.name} is not an Orgchain lab: ${s.message}`,!0)}T0(`Replace this browser's lab with ${t.name}?`,"Replace",()=>I0(()=>n,`Loaded ${t.name}.`))});K("reset").addEventListener("click",()=>T0("Erase this browser's lab: every holding, the chain and the test wallet?","Erase",()=>I0(Is,"Erased. This is a fresh lab.")));B0();p0(); diff --git a/ventures/lineage/orgchain/assets/index-DwOZaPY4.css b/ventures/lineage/orgchain/assets/index-DqzJ8wiA.css similarity index 96% rename from ventures/lineage/orgchain/assets/index-DwOZaPY4.css rename to ventures/lineage/orgchain/assets/index-DqzJ8wiA.css index bc64c74..a504b8f 100644 --- a/ventures/lineage/orgchain/assets/index-DwOZaPY4.css +++ b/ventures/lineage/orgchain/assets/index-DqzJ8wiA.css @@ -1 +1 @@ -:root{--concrete: #e4e3dd;--slab: #f6f5f1;--ink: #141414;--ink-2: #4a4944;--ink-3: #66655f;--signal: #ffc21a;--on-signal: #141414;--ok: #1d7a3a;--danger: #b3261e;--focus: #2346ff;--band: #141414;--band-fg: #f6f5f1;--band-muted: #b0afa8;--shadow: #141414;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;--display: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--t-xs: .75rem;--t-s: .8125rem;--t-m: .9375rem;--t-l: 1.25rem;--gutter: max(16px, env(safe-area-inset-left, 0px));color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}}:root[data-theme=dark]{--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--concrete);color:var(--ink);font:400 var(--t-m)/1.5 var(--mono)}body.busy{cursor:progress}::selection{background:var(--signal);color:var(--on-signal)}button,select,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}b{font-weight:700}.band{background:var(--band);color:var(--band-fg);border-bottom:3px solid var(--ink)}.band-in{max-width:1320px;margin:0 auto;padding:16px var(--gutter) 14px;display:flex;flex-wrap:wrap;gap:14px 32px;align-items:flex-end;justify-content:space-between}.kicker{margin:0 0 8px;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}.kicker a{color:var(--band-fg)}.wordmark{margin:0;font:900 clamp(2.25rem,6vw,3.5rem)/.84 var(--display);letter-spacing:-.05em;text-transform:uppercase}.lede{margin:10px 0 0;color:var(--band-muted);font-size:var(--t-s);max-width:88ch}.lede b{color:var(--band-fg)}.flags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.flag{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px 6px;border:2px solid var(--band-fg);background:transparent;color:var(--band-fg);border-radius:0}.flag.hz{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}button.flag{cursor:pointer}button.flag:hover{background:var(--band-fg);color:var(--band)}.clock{background:var(--slab);border-bottom:3px solid var(--ink);position:sticky;top:0;z-index:5}.clock-in{max-width:1320px;margin:0 auto;padding:10px var(--gutter);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.tempo{display:flex;flex-wrap:wrap;align-items:center}.tempo .lab{margin:0 10px 0 0}.seg{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:9px 10px 8px;border:2px solid var(--ink);background:var(--slab);color:var(--ink);cursor:pointer;border-radius:0;margin-left:-2px}.seg:first-of-type{margin-left:0}.seg:hover:not([aria-pressed=true]){background:var(--concrete)}.seg[aria-pressed=true]{background:var(--ink);color:var(--slab)}.seg:focus-visible{position:relative;z-index:1}.beatno{margin:0;flex:1 1 22ch;font-size:var(--t-s);color:var(--ink-2)}.beatno b{color:var(--ink);font-size:var(--t-m)}.say{max-width:1320px;margin:0 auto;padding:0 var(--gutter) 10px;font-size:var(--t-s);color:var(--ink-2)}.say:empty{display:none}.say.bad{color:var(--danger);font-weight:700}.wrap{max-width:1320px;margin:0 auto;padding:32px var(--gutter) 56px;display:grid;gap:40px}.work{display:grid;gap:36px 28px;align-items:start;grid-template-columns:minmax(0,250px) minmax(0,1fr) minmax(0,390px);grid-template-areas:"hold tree side" "hold time side";grid-template-rows:auto 1fr}.hold-blk{grid-area:hold}.tree-blk{grid-area:tree}.time-blk{grid-area:time}.side{grid-area:side;display:grid;gap:36px;min-width:0}.blk{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.blk>.panel{align-self:stretch}.tab{margin:0;background:var(--ink);color:var(--slab);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:8px 11px 7px;display:flex;gap:12px;max-width:100%}.tab .sub{font-weight:400;letter-spacing:.06em;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab .sub:empty{display:none}.panel{background:var(--slab);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--shadow);min-width:0}.pad{padding:16px 18px}.lab{display:block;font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.lab span{font-weight:400;letter-spacing:.04em;text-transform:none}.note{margin:0;font-size:var(--t-s);color:var(--ink-2)}.note p{margin:0 0 12px}.wait{margin:0;padding:4px 16px;color:var(--ink-3);font-size:var(--t-s)}.hint{margin:8px 0 0;font-size:var(--t-xs);color:var(--ink-2)}input:not([type]),input[type=text],select,textarea{width:100%;padding:8px 10px;border:2px solid var(--ink);border-radius:0;background:var(--concrete);min-width:0}textarea{resize:vertical;line-height:1.5}.line{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.line input{flex:1 1 12ch;width:auto}.btn{font:700 var(--t-s)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px 9px;background:var(--slab);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--shadow);cursor:pointer;border-radius:0}.btn:hover{background:var(--concrete)}.btn:active{transform:translate(3px,3px);box-shadow:none}.btn.primary{background:var(--signal);color:var(--on-signal);border-color:var(--ink)}.btn.danger{background:var(--danger);color:var(--slab)}.btn.sm{font-size:var(--t-xs);padding:7px 9px 6px;box-shadow:2px 2px 0 var(--shadow)}.btn.sm:active{transform:translate(2px,2px)}.btn:disabled,.seg:disabled{cursor:not-allowed;background:var(--concrete);color:var(--ink-3);border-color:var(--ink-3);box-shadow:none;transform:none}.holds{list-style:none;margin:0;padding:0}.holds li+li{border-top:2px solid var(--ink)}.hold{width:100%;display:grid;gap:3px;text-align:left;background:transparent;border:0;padding:12px 18px;cursor:pointer;border-radius:0}.hold:hover .hn{text-decoration:underline;text-underline-offset:3px}.hn{font-weight:700;overflow-wrap:anywhere}.hm{font-size:var(--t-xs);color:var(--ink-2)}.hold.on{background:var(--signal)}.hold.on .hn,.hold.on .hm{color:var(--on-signal)}.hold.gone .hn{text-decoration:line-through;text-decoration-thickness:2px}.holds:not(:empty)~.found{border-top:3px solid var(--ink)}.empty p{margin:0;font-size:var(--t-s);color:var(--ink-2)}.found .lab{margin-bottom:8px}.sample{border-top:2px dashed var(--ink-3)}.tree{padding:12px 0;font-size:.875rem;overflow-x:auto}.row{display:flex;align-items:stretch;min-width:max-content}.sel{flex:1;display:flex;align-items:baseline;text-align:left;background:transparent;border:0;padding:4px 14px 4px 16px;cursor:pointer;line-height:1.55;border-radius:0}.sel:hover .l{text-decoration:underline;text-underline-offset:3px}.g{white-space:pre;color:var(--ink-3);flex:none}.p{white-space:pre;font-weight:700;flex:none}.l{flex:none;color:var(--ink);font-weight:700;white-space:nowrap}.v{flex:1 0 auto;display:flex;gap:5px;justify-content:flex-end;align-items:center;margin-left:2ch}.grp{padding:0 14px 0 16px;line-height:1.55;color:var(--ink-3)}.gl{color:var(--ink-2)}.row.on .sel{background:var(--signal)}.row.on .g,.row.on .p,.row.on .l,.row.on .mk,.row.on .belt{color:var(--on-signal);border-color:var(--on-signal)}.row.gone .l,.row.gone .p{text-decoration:line-through;text-decoration-thickness:2px}.row.gone .l{color:var(--ink-2)}.row.cue .l{font-weight:400;font-style:italic}.mk{font:700 .6875rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 5px 2px;border:2px solid currentColor;color:var(--ink-2);white-space:nowrap}.mk.ok{color:var(--ok)}.mk.bad{color:var(--danger)}.belt{display:inline-flex;align-items:center;gap:5px;font:700 .6875rem/1 var(--mono);padding:2px 5px 2px 3px;border:2px solid var(--ink);color:var(--ink);white-space:nowrap}.belt:before{content:"";width:10px;height:10px;flex:none;border:1.5px solid currentColor;background:#f6f5f1}.belt.green:before{background:#1d7a3a}.belt.black:before{background:#141414}.verbs{display:flex;flex-wrap:wrap;border-bottom:3px solid var(--ink)}.verbs button{flex:1 1 auto;font:700 var(--t-s)/1 var(--mono);padding:12px 10px;background:transparent;border:0;border-right:2px solid var(--ink);color:var(--ink-2);cursor:pointer;border-radius:0}.verbs button:last-child{border-right:0}.verbs button.off{color:var(--ink-3)}.verbs button:hover:not([aria-pressed=true]){color:var(--ink);text-decoration:underline;text-underline-offset:3px}.verbs button[aria-pressed=true]{background:var(--ink);color:var(--slab)}.why{margin:0;font-size:var(--t-s);color:var(--ink-2)}.keyline{margin:0;padding:10px 18px;font-size:var(--t-xs);color:var(--ink-2);overflow-wrap:anywhere;border-bottom:1px dashed var(--ink-3)}.keyline:empty{display:none}.why:empty{display:none}.vf{display:grid;gap:6px}.vf .lab{margin-top:8px}.vh{margin:0;font-size:var(--t-s);color:var(--ink-2)}.vh b{color:var(--ink)}.vf .go,.vf .line{margin-top:12px}.vf>.go{justify-self:start}.vf .line .go{margin-top:0}.kinds{border:0;margin:0;padding:0;display:grid;gap:6px;min-width:0}.kinds legend{padding:0;margin:8px 0 6px}.kinds label{display:flex;gap:8px;align-items:baseline;cursor:pointer;font-weight:700}.kinds label span{font-weight:400;font-size:var(--t-s);color:var(--ink-2)}.kinds input{accent-color:var(--ink);margin:0}.ih{padding:16px 18px 14px;border-bottom:3px solid var(--ink)}.eyebrow{margin:0 0 8px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);overflow-wrap:anywhere}.it{margin:0;font:700 var(--t-l)/1.25 var(--mono);overflow-wrap:anywhere}.idesc{margin:10px 0 0;color:var(--ink-2);font-size:var(--t-s)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.chip{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 7px 4px;border:2px solid currentColor}.chip.ok{color:var(--ok)}.chip.bad{color:var(--danger)}.ib{padding:4px 18px 18px;display:grid;gap:16px}.fl{margin:0;display:grid}.f{display:grid;gap:4px;padding-top:12px;margin-top:12px;border-top:1px dashed var(--ink-3)}.f:first-child{border-top:0}.f dt{font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.f dd{margin:0;font-size:var(--t-s);overflow-wrap:anywhere;min-width:0}.list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;font-size:var(--t-s)}.list .when{color:var(--ink-2)}.code{border:2px solid var(--ink);min-width:0}.code-h{padding:6px 10px;border-bottom:2px solid var(--ink);background:var(--concrete);font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.code pre{margin:0;padding:10px;font-size:var(--t-xs);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.fn{display:block;margin-top:4px;font-size:var(--t-xs);color:var(--ink-2)}.keys{display:grid;gap:10px;min-width:0}.keys .fl{margin-top:-4px}.keys .f:first-child{margin-top:0}.keys .lab:not(:first-child){margin-top:6px}.leaves{margin:0}.leaves code{display:block;margin-top:2px;font:var(--t-xs)/1.5 var(--mono);overflow-wrap:anywhere}.cph{display:flex;align-items:center;justify-content:space-between;gap:8px}.cph span{min-width:0;overflow-wrap:anywhere}.cp{flex:none;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px 4px;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);cursor:pointer}.cp:hover{background:var(--signal);color:var(--on-signal)}.secret{border:2px solid var(--ink)}.hz{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;background:repeating-linear-gradient(-45deg,var(--signal) 0 12px,#141414 12px 24px)}.hz-l{background:#141414;color:var(--signal);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 8px 5px}.sb{display:grid;gap:10px;padding:12px}.scrub{flex:1 1 400px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.scrub .lab{margin:0}.scrub input[type=range]{flex:1 1 120px;min-width:80px;min-width:0;margin:0;height:28px;accent-color:var(--ink);cursor:pointer}.scrub output{font:700 var(--t-s)/1 var(--mono);min-width:12ch;white-space:nowrap}.beats{list-style:none;margin:0;padding:6px 0;max-height:480px;overflow:auto;overscroll-behavior:contain}.beat{padding:10px 18px}.beat+.beat{border-top:1px dashed var(--ink-3)}.bh{margin:0 0 6px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px}.bt{font-weight:400;letter-spacing:.04em}.beat.now .bh .bn{background:var(--signal);color:var(--on-signal);padding:2px 5px;margin:-2px -5px}.evs{list-style:none;margin:0;padding:0;display:grid;gap:2px}.ev{width:calc(100% + 6px);display:flex;gap:1ch;text-align:left;background:transparent;border:0;padding:3px 6px;margin-left:-6px;cursor:pointer;border-radius:0;font-size:var(--t-s)}.ev .op{flex:none;min-width:9ch;font-weight:700}.ev .es{min-width:0;color:var(--ink-2);overflow-wrap:anywhere}.ev:hover .es{text-decoration:underline;text-underline-offset:3px}.ev.bad .op,.ev.bad .es{color:var(--danger)}.beat.later .bh,.beat.later .op,.beat.later .es{color:var(--ink-3)}.beat.later .ev .op{font-weight:400}.ev.on{background:var(--signal)}.ev.on .op,.ev.on .es{color:var(--on-signal)}.foot{display:grid;gap:10px;color:var(--ink-2);font-size:var(--t-s);max-width:100ch}.foot p{margin:0}.labrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.confirm{flex-basis:100%;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 12px;border:2px dashed var(--ink);color:var(--ink)}@media(min-width:761px){.scrub{flex-wrap:nowrap}}@media(max-width:1120px){.work{grid-template-columns:minmax(0,1fr) minmax(0,370px);grid-template-rows:auto auto 1fr;grid-template-areas:"hold side" "tree side" "time side"}}@media(max-width:760px){.clock{position:static}.work{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"hold" "tree" "side" "time"}}@media(max-width:640px){.panel{box-shadow:5px 5px 0 var(--shadow)}.flag.proto{display:none}.tree{font-size:var(--t-s)}.sel,.grp{padding-left:10px}.v .belt{display:none}.beat{padding:10px 14px}.ev{flex-direction:column;gap:0}}@media(prefers-reduced-motion:reduce){.btn:active,.btn.sm:active{transform:none}}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.code-h{margin:0}.mk.sats{color:var(--ink);text-transform:none;letter-spacing:.02em}.ev.money .op{color:var(--ok)}.ev.money.on .op{color:var(--on-signal)}.beat.later .ev.money .op{color:var(--ink-3)}.vf .line.amt{margin-top:0}#clock-pays{white-space:nowrap}.verbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.verbs button:nth-child(3n){border-right:0}.verbs button:nth-child(-n+3){border-bottom:2px solid var(--ink)}@media(max-width:640px){.v{margin-left:1ch}.mk{padding:3px 4px 2px}}.holds li{display:flex;align-items:stretch}.holds li .hold{flex:1 1 auto;min-width:0;width:auto}.rig{flex:none;display:grid;justify-items:center;align-content:center;gap:4px;padding:8px 12px;border-left:2px solid var(--ink)}.holds li:has(.hold.on) .rig{background:var(--signal);color:var(--on-signal)}.rig .rl{font:700 .625rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.rig .rn{display:flex;align-items:center;gap:6px;font-weight:700}.rb{width:26px;height:26px;padding:0;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);font:700 var(--t-m)/1 var(--mono);cursor:pointer}.rb:hover:not(:disabled){background:var(--concrete)}.rb:disabled{color:var(--ink-3);border-color:var(--ink-3);cursor:not-allowed}.mining{border-top:3px solid var(--ink)}.holds:empty~.mining{display:none}.mrow{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.mrow .lab{margin:0}.ev.gas .op{color:var(--ink-2);font-weight:400}.holds li{display:grid}.rig{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 12px;border-left:0}.rig .rl{color:var(--ink-2)}.holds li:has(.hold.on) .rig .rl{color:var(--on-signal)}.verbs button:nth-child(-n+6){border-bottom:2px solid var(--ink)}.verbs button:last-child:nth-child(3n+2){grid-column:span 2}.fund{display:grid;gap:6px;margin-top:14px}.fund .lab{margin-top:4px}.mining .tempo{flex:1 1 auto;flex-wrap:nowrap}.mining .seg{flex:1 1 auto;min-width:0;padding:9px 6px 8px;letter-spacing:.02em}.items li{overflow-wrap:anywhere}.items .btn.sm{margin-left:8px;vertical-align:middle}.bids{list-style:none;margin:6px 0 0;padding:0 0 0 12px;border-left:2px solid var(--ink-3);display:grid;gap:6px}.ev.money.deal .op{color:var(--ink)}.f dd .btn.open{margin-left:8px;vertical-align:middle}.ring{margin:2px 0 4px}.ring .f{padding-top:8px;margin-top:8px}.ring .f:first-child{margin-top:0;padding-top:0}.ring .f dd{font:var(--t-xs)/1.5 var(--mono)}.verbs button:nth-child(-n+9){border-bottom:2px solid var(--ink)}.verbs button:last-child:nth-child(3n+1){grid-column:span 3}.mk.lapsed{color:var(--ink-3);text-decoration:line-through}#charter-where{display:grid;gap:6px}#charter-where[hidden]{display:none}#charter-now{color:var(--ink-2)}#charter-forms label.off{color:var(--ink-3)}#charter-forms label{display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:2px}#charter-forms label span{grid-column:2;font-size:var(--t-xs)}#charter-forms label.off{cursor:default} +:root{--concrete: #e4e3dd;--slab: #f6f5f1;--ink: #141414;--ink-2: #4a4944;--ink-3: #66655f;--signal: #ffc21a;--on-signal: #141414;--ok: #1d7a3a;--danger: #b3261e;--focus: #2346ff;--band: #141414;--band-fg: #f6f5f1;--band-muted: #b0afa8;--shadow: #141414;--mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;--display: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--t-xs: .75rem;--t-s: .8125rem;--t-m: .9375rem;--t-l: 1.25rem;--gutter: max(16px, env(safe-area-inset-left, 0px));color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}}:root[data-theme=dark]{--concrete: #151514;--slab: #1e1e1c;--ink: #ecebe4;--ink-2: #b9b8b0;--ink-3: #94938b;--ok: #62c784;--danger: #ff8a7f;--focus: #93a8ff;--band: #0b0b0a;--band-fg: #ecebe4;--band-muted: #9d9c95;--shadow: #4d4c47;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--concrete);color:var(--ink);font:400 var(--t-m)/1.5 var(--mono)}body.busy{cursor:progress}::selection{background:var(--signal);color:var(--on-signal)}button,select,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration-thickness:2px;text-underline-offset:3px}b{font-weight:700}.band{background:var(--band);color:var(--band-fg);border-bottom:3px solid var(--ink)}.band-in{max-width:1320px;margin:0 auto;padding:16px var(--gutter) 14px;display:flex;flex-wrap:wrap;gap:14px 32px;align-items:flex-end;justify-content:space-between}.kicker{margin:0 0 8px;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--band-muted)}.kicker a{color:var(--band-fg)}.wordmark{margin:0;font:900 clamp(2.25rem,6vw,3.5rem)/.84 var(--display);letter-spacing:-.05em;text-transform:uppercase}.lede{margin:10px 0 0;color:var(--band-muted);font-size:var(--t-s);max-width:88ch}.lede b{color:var(--band-fg)}.flags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.flag{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:7px 9px 6px;border:2px solid var(--band-fg);background:transparent;color:var(--band-fg);border-radius:0}.flag.hz{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}button.flag{cursor:pointer}button.flag:hover{background:var(--band-fg);color:var(--band)}.clock{background:var(--slab);border-bottom:3px solid var(--ink);position:sticky;top:0;z-index:5}.clock-in{max-width:1320px;margin:0 auto;padding:10px var(--gutter);display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.tempo{display:flex;flex-wrap:wrap;align-items:center}.tempo .lab{margin:0 10px 0 0}.seg{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:9px 10px 8px;border:2px solid var(--ink);background:var(--slab);color:var(--ink);cursor:pointer;border-radius:0;margin-left:-2px}.seg:first-of-type{margin-left:0}.seg:hover:not([aria-pressed=true]){background:var(--concrete)}.seg[aria-pressed=true]{background:var(--ink);color:var(--slab)}.seg:focus-visible{position:relative;z-index:1}.beatno{margin:0;flex:1 1 22ch;font-size:var(--t-s);color:var(--ink-2)}.beatno b{color:var(--ink);font-size:var(--t-m)}.say{max-width:1320px;margin:0 auto;padding:0 var(--gutter) 10px;font-size:var(--t-s);color:var(--ink-2)}.say:empty{display:none}.say.bad{color:var(--danger);font-weight:700}.wrap{max-width:1320px;margin:0 auto;padding:32px var(--gutter) 56px;display:grid;gap:40px}.work{display:grid;gap:36px 28px;align-items:start;grid-template-columns:minmax(0,250px) minmax(0,1fr) minmax(0,390px);grid-template-areas:"hold tree side" "hold time side";grid-template-rows:auto 1fr}.hold-blk{grid-area:hold}.tree-blk{grid-area:tree}.time-blk{grid-area:time}.side{grid-area:side;display:grid;gap:36px;min-width:0}.blk{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.blk>.panel{align-self:stretch}.tab{margin:0;background:var(--ink);color:var(--slab);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:8px 11px 7px;display:flex;gap:12px;max-width:100%}.tab .sub{font-weight:400;letter-spacing:.06em;text-transform:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab .sub:empty{display:none}.panel{background:var(--slab);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--shadow);min-width:0}.pad{padding:16px 18px}.lab{display:block;font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.lab span{font-weight:400;letter-spacing:.04em;text-transform:none}.note{margin:0;font-size:var(--t-s);color:var(--ink-2)}.note p{margin:0 0 12px}.wait{margin:0;padding:4px 16px;color:var(--ink-3);font-size:var(--t-s)}.hint{margin:8px 0 0;font-size:var(--t-xs);color:var(--ink-2)}input:not([type]),input[type=text],select,textarea{width:100%;padding:8px 10px;border:2px solid var(--ink);border-radius:0;background:var(--concrete);min-width:0}textarea{resize:vertical;line-height:1.5}.line{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.line input{flex:1 1 12ch;width:auto}.btn{font:700 var(--t-s)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:10px 12px 9px;background:var(--slab);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--shadow);cursor:pointer;border-radius:0}.btn:hover{background:var(--concrete)}.btn:active{transform:translate(3px,3px);box-shadow:none}.btn.primary{background:var(--signal);color:var(--on-signal);border-color:var(--ink)}.btn.danger{background:var(--danger);color:var(--slab)}.btn.sm{font-size:var(--t-xs);padding:7px 9px 6px;box-shadow:2px 2px 0 var(--shadow)}.btn.sm:active{transform:translate(2px,2px)}.btn:disabled,.seg:disabled{cursor:not-allowed;background:var(--concrete);color:var(--ink-3);border-color:var(--ink-3);box-shadow:none;transform:none}.holds{list-style:none;margin:0;padding:0}.holds li+li{border-top:2px solid var(--ink)}.hold{width:100%;display:grid;gap:3px;text-align:left;background:transparent;border:0;padding:12px 18px;cursor:pointer;border-radius:0}.hold:hover .hn{text-decoration:underline;text-underline-offset:3px}.hn{font-weight:700;overflow-wrap:anywhere}.hm{font-size:var(--t-xs);color:var(--ink-2)}.hold.on{background:var(--signal)}.hold.on .hn,.hold.on .hm{color:var(--on-signal)}.hold.gone .hn{text-decoration:line-through;text-decoration-thickness:2px}.holds:not(:empty)~.found{border-top:3px solid var(--ink)}.empty p{margin:0;font-size:var(--t-s);color:var(--ink-2)}.found .lab{margin-bottom:8px}.sample{border-top:2px dashed var(--ink-3)}.tree{padding:12px 0;font-size:.875rem;overflow-x:auto}.row{display:flex;align-items:stretch;min-width:max-content}.sel{flex:1;display:flex;align-items:baseline;text-align:left;background:transparent;border:0;padding:4px 14px 4px 16px;cursor:pointer;line-height:1.55;border-radius:0}.sel:hover .l{text-decoration:underline;text-underline-offset:3px}.g{white-space:pre;color:var(--ink-3);flex:none}.p{white-space:pre;font-weight:700;flex:none}.l{flex:none;color:var(--ink);font-weight:700;white-space:nowrap}.v{flex:1 0 auto;display:flex;gap:5px;justify-content:flex-end;align-items:center;margin-left:2ch}.grp{padding:0 14px 0 16px;line-height:1.55;color:var(--ink-3)}.gl{color:var(--ink-2)}.row.on .sel{background:var(--signal)}.row.on .g,.row.on .p,.row.on .l,.row.on .mk,.row.on .belt{color:var(--on-signal);border-color:var(--on-signal)}.row.gone .l,.row.gone .p{text-decoration:line-through;text-decoration-thickness:2px}.row.gone .l{color:var(--ink-2)}.row.cue .l{font-weight:400;font-style:italic}.mk{font:700 .6875rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:3px 5px 2px;border:2px solid currentColor;color:var(--ink-2);white-space:nowrap}.mk.ok{color:var(--ok)}.mk.bad{color:var(--danger)}.belt{display:inline-flex;align-items:center;gap:5px;font:700 .6875rem/1 var(--mono);padding:2px 5px 2px 3px;border:2px solid var(--ink);color:var(--ink);white-space:nowrap}.belt:before{content:"";width:10px;height:10px;flex:none;border:1.5px solid currentColor;background:#f6f5f1}.belt.green:before{background:#1d7a3a}.belt.black:before{background:#141414}.verbs{display:flex;flex-wrap:wrap;border-bottom:3px solid var(--ink)}.verbs button{flex:1 1 auto;font:700 var(--t-s)/1 var(--mono);padding:12px 10px;background:transparent;border:0;border-right:2px solid var(--ink);color:var(--ink-2);cursor:pointer;border-radius:0}.verbs button:last-child{border-right:0}.verbs button.off{color:var(--ink-3)}.verbs button:hover:not([aria-pressed=true]){color:var(--ink);text-decoration:underline;text-underline-offset:3px}.verbs button[aria-pressed=true]{background:var(--ink);color:var(--slab)}.why{margin:0;font-size:var(--t-s);color:var(--ink-2)}.keyline{margin:0;padding:10px 18px;font-size:var(--t-xs);color:var(--ink-2);overflow-wrap:anywhere;border-bottom:1px dashed var(--ink-3)}.keyline:empty{display:none}.why:empty{display:none}.vf{display:grid;gap:6px}.vf .lab{margin-top:8px}.vh{margin:0;font-size:var(--t-s);color:var(--ink-2)}.vh b{color:var(--ink)}.vf .go,.vf .line{margin-top:12px}.vf>.go{justify-self:start}.vf .line .go{margin-top:0}.kinds{border:0;margin:0;padding:0;display:grid;gap:6px;min-width:0}.kinds legend{padding:0;margin:8px 0 6px}.kinds label{display:flex;gap:8px;align-items:baseline;cursor:pointer;font-weight:700}.kinds label span{font-weight:400;font-size:var(--t-s);color:var(--ink-2)}.kinds input{accent-color:var(--ink);margin:0}.ih{padding:16px 18px 14px;border-bottom:3px solid var(--ink)}.eyebrow{margin:0 0 8px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);overflow-wrap:anywhere}.it{margin:0;font:700 var(--t-l)/1.25 var(--mono);overflow-wrap:anywhere}.idesc{margin:10px 0 0;color:var(--ink-2);font-size:var(--t-s)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.chip{font:700 var(--t-xs)/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 7px 4px;border:2px solid currentColor}.chip.ok{color:var(--ok)}.chip.bad{color:var(--danger)}.ib{padding:4px 18px 18px;display:grid;gap:16px}.fl{margin:0;display:grid}.f{display:grid;gap:4px;padding-top:12px;margin-top:12px;border-top:1px dashed var(--ink-3)}.f:first-child{border-top:0}.f dt{font:700 var(--t-xs)/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}.f dd{margin:0;font-size:var(--t-s);overflow-wrap:anywhere;min-width:0}.list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;font-size:var(--t-s)}.list .when{color:var(--ink-2)}.code{border:2px solid var(--ink);min-width:0}.code-h{padding:6px 10px;border-bottom:2px solid var(--ink);background:var(--concrete);font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}.code pre{margin:0;padding:10px;font-size:var(--t-xs);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.fn{display:block;margin-top:4px;font-size:var(--t-xs);color:var(--ink-2)}.keys{display:grid;gap:10px;min-width:0}.keys .fl{margin-top:-4px}.keys .f:first-child{margin-top:0}.keys .lab:not(:first-child){margin-top:6px}.leaves{margin:0}.leaves code{display:block;margin-top:2px;font:var(--t-xs)/1.5 var(--mono);overflow-wrap:anywhere}.cph{display:flex;align-items:center;justify-content:space-between;gap:8px}.cph span{min-width:0;overflow-wrap:anywhere}.cp{flex:none;font:700 var(--t-xs)/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px 4px;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);cursor:pointer}.cp:hover{background:var(--signal);color:var(--on-signal)}.secret{border:2px solid var(--ink)}.hz{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;background:repeating-linear-gradient(-45deg,var(--signal) 0 12px,#141414 12px 24px)}.hz-l{background:#141414;color:var(--signal);font:700 var(--t-xs)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 8px 5px}.sb{display:grid;gap:10px;padding:12px}.scrub{flex:1 1 400px;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.scrub .lab{margin:0}.scrub input[type=range]{flex:1 1 120px;min-width:80px;min-width:0;margin:0;height:28px;accent-color:var(--ink);cursor:pointer}.scrub output{font:700 var(--t-s)/1 var(--mono);min-width:12ch;white-space:nowrap}.beats{list-style:none;margin:0;padding:6px 0;max-height:480px;overflow:auto;overscroll-behavior:contain}.beat{padding:10px 18px}.beat+.beat{border-top:1px dashed var(--ink-3)}.bh{margin:0 0 6px;font:700 var(--t-xs)/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px}.bt{font-weight:400;letter-spacing:.04em}.beat.now .bh .bn{background:var(--signal);color:var(--on-signal);padding:2px 5px;margin:-2px -5px}.evs{list-style:none;margin:0;padding:0;display:grid;gap:2px}.ev{width:calc(100% + 6px);display:flex;gap:1ch;text-align:left;background:transparent;border:0;padding:3px 6px;margin-left:-6px;cursor:pointer;border-radius:0;font-size:var(--t-s)}.ev .op{flex:none;min-width:9ch;font-weight:700}.ev .es{min-width:0;color:var(--ink-2);overflow-wrap:anywhere}.ev:hover .es{text-decoration:underline;text-underline-offset:3px}.ev.bad .op,.ev.bad .es{color:var(--danger)}.beat.later .bh,.beat.later .op,.beat.later .es{color:var(--ink-3)}.beat.later .ev .op{font-weight:400}.ev.on{background:var(--signal)}.ev.on .op,.ev.on .es{color:var(--on-signal)}.foot{display:grid;gap:10px;color:var(--ink-2);font-size:var(--t-s);max-width:100ch}.foot p{margin:0}.labrow{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.confirm{flex-basis:100%;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 12px;border:2px dashed var(--ink);color:var(--ink)}@media(min-width:761px){.scrub{flex-wrap:nowrap}}@media(max-width:1120px){.work{grid-template-columns:minmax(0,1fr) minmax(0,370px);grid-template-rows:auto auto 1fr;grid-template-areas:"hold side" "tree side" "time side"}}@media(max-width:760px){.clock{position:static}.work{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"hold" "tree" "side" "time"}}@media(max-width:640px){.panel{box-shadow:5px 5px 0 var(--shadow)}.flag.proto{display:none}.tree{font-size:var(--t-s)}.sel,.grp{padding-left:10px}.v .belt{display:none}.beat{padding:10px 14px}.ev{flex-direction:column;gap:0}}@media(prefers-reduced-motion:reduce){.btn:active,.btn.sm:active{transform:none}}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.code-h{margin:0}.mk.sats{color:var(--ink);text-transform:none;letter-spacing:.02em}.ev.money .op{color:var(--ok)}.ev.money.on .op{color:var(--on-signal)}.beat.later .ev.money .op{color:var(--ink-3)}.vf .line.amt{margin-top:0}#clock-pays{white-space:nowrap}.verbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.verbs button:nth-child(3n){border-right:0}.verbs button:nth-child(-n+3){border-bottom:2px solid var(--ink)}@media(max-width:640px){.v{margin-left:1ch}.mk{padding:3px 4px 2px}}.holds li{display:flex;align-items:stretch}.holds li .hold{flex:1 1 auto;min-width:0;width:auto}.rig{flex:none;display:grid;justify-items:center;align-content:center;gap:4px;padding:8px 12px;border-left:2px solid var(--ink)}.holds li:has(.hold.on) .rig{background:var(--signal);color:var(--on-signal)}.rig .rl{font:700 .625rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.rig .rn{display:flex;align-items:center;gap:6px;font-weight:700}.rb{width:26px;height:26px;padding:0;border:2px solid var(--ink);border-radius:0;background:var(--slab);color:var(--ink);font:700 var(--t-m)/1 var(--mono);cursor:pointer}.rb:hover:not(:disabled){background:var(--concrete)}.rb:disabled{color:var(--ink-3);border-color:var(--ink-3);cursor:not-allowed}.mining{border-top:3px solid var(--ink)}.holds:empty~.mining{display:none}.mrow{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}.mrow .lab{margin:0}.ev.gas .op{color:var(--ink-2);font-weight:400}.holds li{display:grid}.rig{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 18px 12px;border-left:0}.rig .rl{color:var(--ink-2)}.holds li:has(.hold.on) .rig .rl{color:var(--on-signal)}.verbs button:nth-child(-n+6){border-bottom:2px solid var(--ink)}.verbs button:last-child:nth-child(3n+2){grid-column:span 2}.fund{display:grid;gap:6px;margin-top:14px}.fund .lab{margin-top:4px}.mining .tempo{flex:1 1 auto;flex-wrap:nowrap}.mining .seg{flex:1 1 auto;min-width:0;padding:9px 6px 8px;letter-spacing:.02em}.items li{overflow-wrap:anywhere}.items .btn.sm{margin-left:8px;vertical-align:middle}.bids{list-style:none;margin:6px 0 0;padding:0 0 0 12px;border-left:2px solid var(--ink-3);display:grid;gap:6px}.ev.money.deal .op{color:var(--ink)}.f dd .btn.open{margin-left:8px;vertical-align:middle}.ring{margin:2px 0 4px}.ring .f{padding-top:8px;margin-top:8px}.ring .f:first-child{margin-top:0;padding-top:0}.ring .f dd{font:var(--t-xs)/1.5 var(--mono)}.verbs button:nth-child(-n+9){border-bottom:2px solid var(--ink)}.verbs button:last-child:nth-child(3n+1){grid-column:span 3}.mk.lapsed{color:var(--ink-3);text-decoration:line-through}.row.moved .l,.row.moved .p{color:var(--ink-3)}.ask{margin:10px 0 4px;padding:10px 12px;border:2px solid var(--ink);display:grid;gap:8px;justify-items:start}.ask p{margin:0;font-size:var(--t-s)}#charter-where{display:grid;gap:6px}#charter-where[hidden]{display:none}#charter-now{color:var(--ink-2)}#charter-forms label.off{color:var(--ink-3)}#charter-forms label{display:grid;grid-template-columns:auto 1fr;column-gap:8px;row-gap:2px}#charter-forms label span{grid-column:2;font-size:var(--t-xs)}#charter-forms label.off{cursor:default} diff --git a/ventures/lineage/orgchain/assets/index-Ox6KvI0i.js b/ventures/lineage/orgchain/assets/index-Ox6KvI0i.js new file mode 100644 index 0000000..3e7aa7b --- /dev/null +++ b/ventures/lineage/orgchain/assets/index-Ox6KvI0i.js @@ -0,0 +1,2065 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();const xo=5e9,Su=2**52,Ol=(e,t)=>[[Su+e*xo,Su+e*xo+t]];function Cl(e,t,n){const r=[];for(const[s,o]of e){const i=o-s;if(t>=i){t-=i;continue}const a=Math.min(n,i-t);if(a&&r.push([s+t,s+t+a]),n-=a,t=0,!n)break}return r}function Pl(e,t){var n;return(n=Cl(e,t,1)[0])==null?void 0:n[0]}function lo(e,t){let n=0;for(const[r,s]of e){if(t>=r&&ti.ranges);let o=0;return e.vout.map(i=>{const a=Cl(s,o,Number(i.value));return o+=Number(i.value),a})}function ua(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function i0(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Nl(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function a0(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ua(e.outputLen),ua(e.blockLen)}function c0(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 u0(e,t){Nl(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),Tt=(e,t)=>e<<32-t|e>>>t,f0=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!f0)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function d0(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function Ll(e){if(typeof e=="string"&&(e=d0(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let h0=class{clone(){return this._cloneInto()}};function Hl(e){const t=r=>e().update(Ll(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function p0(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let g0=class extends h0{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Oi(this.buffer)}update(t){Ii.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Ll(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,y0=(e,t,n)=>e&t^e&n^t&n,w0=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),sn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),on=new Uint32Array(64);let Rl=class extends g0{constructor(){super(64,32,8,!1),this.A=sn[0]|0,this.B=sn[1]|0,this.C=sn[2]|0,this.D=sn[3]|0,this.E=sn[4]|0,this.F=sn[5]|0,this.G=sn[6]|0,this.H=sn[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)on[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=on[f-15],h=on[f-2],g=Tt(d,7)^Tt(d,18)^d>>>3,p=Tt(h,17)^Tt(h,19)^h>>>10;on[f]=p+on[f-7]+g+on[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=Tt(a,6)^Tt(a,11)^Tt(a,25),h=l+d+m0(a,c,u)+w0[f]+on[f]|0,p=(Tt(r,2)^Tt(r,13)^Tt(r,22))+y0(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+p|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){on.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},b0=class extends Rl{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const la=Hl(()=>new Rl);Hl(()=>new b0);function x0(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function v0(e){if(e.match(/[^a-fA-f0-9]/)!==null)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}`)}function k0(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:E0}=crypto??globalThis.crypto??window.crypto;function $0(e=32){if(typeof E0=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function S0(e,t,n="be"){t===void 0&&(t=e.length),x0(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function jl(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)l=o[c],l=l>0?l*256+u:u,u=l/s|0,o[c]=l%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function T0(e,t){const n=Kl(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function Dl(e){return la(la(e))}function I0(e){const t=Dl(e);return jl([e,t.slice(0,4)])}function O0(e){const t=e.slice(0,-4),n=e.slice(-4);if(Dl(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const _u={encode:B0,decode:T0},Ml={encode:e=>{const t=I0(e);return _u.encode(t,"base58")},decode:e=>{const t=_u.decode(e,"base58");return O0(t)}},Zl="qpzry9x8gf2tvdw0s3jn54khce6mua7l",C0=[996825010,642813549,513874426,1027748829,705979059],vo=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function Vl(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=C0[s])}return t}function ql(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function zl(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function N0(e,t,n){const r=t.concat(U0(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??vo[0];if(!P0(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function L0(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function H0(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function R0(e,t="bc",n=0){const r=[n,...zl([...e],8,5)],s=vo.find(i=>i.version===n)??vo[0],o=N0(t,r,s);return Wl(o),o}function Wl(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=Fl(e),s=zl(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function j0(e){e=e.toLowerCase();const[t,n]=Fl(e);return n[0]}const Gl={encode:R0,decode:Wl,version:j0},Yl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xl="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",K0=new TextEncoder;function Jl(e,t=!1,n=!0){typeof e=="string"&&(e=K0.encode(e));const r=t?Xl:Yl;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function Ql(e,t=!1){const n=t||e.includes("-")||e.includes("_")?Xl.split(""):Yl.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const ef={encode:Jl,decode:Ql},tf={encode:e=>Jl(e,!0,!1),decode:e=>Ql(e,!0)},D0=BigInt(0),M0=BigInt(255),nf=BigInt(256);function Z0(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.")}function V0(e,t,n="be"){t===void 0&&(t=Z0(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>D0;){const a=e&M0,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/nf}return new Uint8Array(s)}function q0(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*nf+BigInt(e[n]);return BigInt(t)}function z0(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 r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function W0(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!")}function G0(e,t,n="be"){t===void 0&&(t=W0(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function Y0(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],k0(t);return t}const X0=new TextEncoder,J0=new TextDecoder;function Xa(e){return X0.encode(e)}function Ci(e){return J0.decode(e)}function Q0(e,t){v0(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function eg(e,t,n="le"){t=Q0(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return Xa(t)}function rg(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return S0(e,t,n);if(typeof e=="string")return eg(e,t,n);if(typeof e=="bigint")return V0(e,t,n);if(typeof e=="number")return G0(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}var re;let B=(re=class extends Uint8Array{static random(t=32){const n=$0(t);return new re(n,t)}constructor(t,n,r){const s=rg(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new zr(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return Y0(n)}toBin(){return F0(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return q0(n)}toHash(){const t=la(this);return new re(t)}toJson(){const t=Ci(this);return JSON.parse(t)}toBech32(t,n=0){return Gl.encode(this,t,n)}toStr(){return Ci(this)}toHex(){return tg(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return Ml.encode(this)}toBase64(){return ef.encode(this)}toB64url(){return tf.encode(this)}prepend(t){return re.join([re.bytes(t),this])}append(t){return re.join([this,re.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new re(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new re(r)}reverse(){const t=new Uint8Array(this).reverse();return new re(t)}write(t,n){const r=re.bytes(t);this.set(r,n)}prefixSize(t){const n=re.varInt(this.length,t);return re.join([n,this])}static from(t){return new re(Uint8Array.from(t))}static of(...t){return new re(Uint8Array.of(...t))}static join(t){const n=t.map(s=>re.bytes(s)),r=jl(n);return new re(r)}static varInt(t,n){if(t<253)return re.num(t,1);if(t<65536)return re.of(253,...re.num(t,2,n));if(t<4294967296)return re.of(254,...re.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return re.of(255,...re.num(t,8,n));throw new Error(`Value is too large: ${t}`)}},re.num=sg,re.big=ig,re.bin=og,re.raw=ag,re.str=cg,re.hex=ug,re.bytes=lg,re.json=fg,re.base64=dg,re.b64url=hg,re.bech32=pg,re.b58chk=gg,re.encode=Xa,re.decode=Ci,re);function sg(e,t,n){return new B(e,t,n)}function og(e,t,n){return new B(z0(e),t,n)}function ig(e,t,n){return new B(e,t,n)}function ag(e,t,n){return new B(e,t,n)}function cg(e,t,n){return new B(Xa(e),t,n)}function ug(e,t,n){return new B(e,t,n)}function lg(e,t,n){return new B(e,t,n)}function fg(e){return new B(ng(e))}function dg(e){return new B(ef.decode(e))}function hg(e){return new B(tf.decode(e))}function pg(e){return new B(Gl.decode(e))}function gg(e){return new B(Ml.decode(e))}let zr=class{constructor(t){this.data=B.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new B(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}};function Dt(e,t){const n=B.bytes(e);if(n.length!==t)throw new Error(`Invalid input size: ${n.hex} !== ${t}`)}function Ge(e,t){if(t)throw new Error(e);return!1}function fo(e,...t){const n=B.str(e).digest.raw,r=t.map(s=>B.bytes(s));return B.join([n,n,B.join(r)]).digest}const rf={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,OP_SUCCESS187:187,OP_SUCCESS188:188,OP_SUCCESS189:189,OP_SUCCESS190:190,OP_SUCCESS191:191,OP_SUCCESS192:192,OP_SUCCESS193:193,OP_SUCCESS194:194,OP_SUCCESS195:195,OP_SUCCESS196:196,OP_SUCCESS197:197,OP_SUCCESS198:198,OP_SUCCESS199:199,OP_SUCCESS200:200,OP_SUCCESS201:201,OP_SUCCESS202:202,OP_SUCCESS203:203,OP_SUCCESS204:204,OP_SUCCESS205:205,OP_SUCCESS206:206,OP_SUCCESS207:207,OP_SUCCESS208:208,OP_SUCCESS209:209,OP_SUCCESS210:210,OP_SUCCESS211:211,OP_SUCCESS212:212,OP_SUCCESS213:213,OP_SUCCESS214:214,OP_SUCCESS215:215,OP_SUCCESS216:216,OP_SUCCESS217:217,OP_SUCCESS218:218,OP_SUCCESS219:219,OP_SUCCESS220:220,OP_SUCCESS221:221,OP_SUCCESS222:222,OP_SUCCESS223:223,OP_SUCCESS224:224,OP_SUCCESS225:225,OP_SUCCESS226:226,OP_SUCCESS227:227,OP_SUCCESS228:228,OP_SUCCESS229:229,OP_SUCCESS230:230,OP_SUCCESS231:231,OP_SUCCESS232:232,OP_SUCCESS233:233,OP_SUCCESS234:234,OP_SUCCESS235:235,OP_SUCCESS236:236,OP_SUCCESS237:237,OP_SUCCESS238:238,OP_SUCCESS239:239,OP_SUCCESS240:240,OP_SUCCESS241:241,OP_SUCCESS242:242,OP_SUCCESS243:243,OP_SUCCESS244:244,OP_SUCCESS245:245,OP_SUCCESS246:246,OP_SUCCESS247:247,OP_SUCCESS248:248,OP_SUCCESS249:249,OP_SUCCESS250:250,OP_SUCCESS251:251,OP_SUCCESS252:252,OP_SUCCESS253:253,OP_SUCCESS254:254};function mg(e){if(e>186&&e<255)return"OP_SUCCESS"+String(e);for(const[t,n]of Object.entries(rf))if(n===e)return t;throw new Error("OPCODE not found:"+String(e))}function yg(e){for(const[t,n]of Object.entries(rf))if(t===e)return Number(n);throw new Error("OPCODE not found:"+e)}function wg(e){switch(!0){case e===0:return"opcode";case(e>=1&&e<=75):return"varint";case e===76:return"pushdata1";case e===77:return"pushdata2";case e===78:return"pushdata4";case e<=254:return"opcode";default:throw new Error(`Invalid word range: ${e}`)}}function bg(e){const r=[];switch(!0){case typeof e!="number":return!1;case e===0:return!0;case r.includes(e):return!1;case(750?B.join(t):new Uint8Array}function xg(e){let t=new Uint8Array;if(typeof e=="string"){if(e.startsWith("OP_"))return B.num(yg(e),1);tn(e)?t=B.hex(e):t=B.str(e)}else t=B.bytes(e);if(t.length===1)return t[0]!==0&&t[0]<=16?(t[0]+=80,t):(t[0]>128&&t[0]<=255&&(t=new Uint8Array([t[0],0])),B.join([Au(t.length),t]));if(t.length>ko){const n=vg(t);return of(n)}else return B.join([Au(t.length),t])}function Au(e){const t=B.num(76,1),n=B.num(77,1);switch(!0){case e<=75:return B.num(e);case(e>75&&e<256):return B.join([t,B.num(e,1,"le")]);case(e>=256&&e<=ko):return B.join([n,B.num(e,2,"le")]);default:throw new Error("Invalid word size:"+e.toString())}}function vg(e){const t=[],n=new zr(e);for(;n.size>ko;)t.push(n.read(ko));return t.push(n.read(n.size)),t}function Ja(e,t=!1){let n=B.bytes(e);if(t){const s=n.stream.readSize("le");if(n=n.slice(1),n.length!==s)throw new Error(`Varint does not match stream size: ${s} !== ${n.length}`)}return kg(n)}function kg(e){const t=new zr(e),n=[],r=t.size;let s,o,i,a=0;for(;a0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Bg(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");fa(e.outputLen),fa(e.blockLen)}function Tg(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 Ig(e,t){af(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),It=(e,t)=>e<<32-t|e>>>t,Cg=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Cg)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Pg(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function Qa(e){if(typeof e=="string"&&(e=Pg(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}function Ug(...e){if(!e.every(r=>r instanceof Uint8Array))throw new Error("Uint8Array list expected");if(e.length===1)return e[0];const t=e.reduce((r,s)=>r+s.length,0),n=new Uint8Array(t);for(let r=0,s=0;re().update(Qa(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Ng(e=32){if(Pi&&typeof Pi.getRandomValues=="function")return Pi.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Lg(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let Hg=class extends cf{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ui(this.buffer)}update(t){Dn.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=Qa(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,jg=(e,t,n)=>e&t^e&n^t&n,Kg=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),an=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),cn=new Uint32Array(64);let lf=class extends Hg{constructor(){super(64,32,8,!1),this.A=an[0]|0,this.B=an[1]|0,this.C=an[2]|0,this.D=an[3]|0,this.E=an[4]|0,this.F=an[5]|0,this.G=an[6]|0,this.H=an[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)cn[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=cn[f-15],h=cn[f-2],g=It(d,7)^It(d,18)^d>>>3,p=It(h,17)^It(h,19)^h>>>10;cn[f]=p+cn[f-7]+g+cn[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=It(a,6)^It(a,11)^It(a,25),h=l+d+Rg(a,c,u)+Kg[f]+cn[f]|0,p=(It(r,2)^It(r,13)^It(r,22))+jg(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+p|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){cn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Dg=class extends lf{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const ff=uf(()=>new lf);uf(()=>new Dg);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Mg=BigInt(0),ec=BigInt(1),Zg=BigInt(2),si=e=>e instanceof Uint8Array,Vg=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Cr(e){if(!si(e))throw new Error("Uint8Array expected");let t="";for(let n=0;nPr(e.toString(16).padStart(t*2,"0")),hf=(e,t)=>$r(e,t).reverse(),qg=e=>Pr(df(e));function dt(e,t,n){let r;if(typeof t=="string")try{r=Pr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(si(t))r=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(`${e} expected ${n} bytes, got ${s}`);return r}function bt(...e){const t=new Uint8Array(e.reduce((r,s)=>r+s.length,0));let n=0;return e.forEach(r=>{if(!si(r))throw new Error("Uint8Array expected");t.set(r,n),n+=r.length}),t}function zg(e,t){if(e.length!==t.length)return!1;for(let n=0;n0n;e>>=ec,t+=1);return t}const Wg=(e,t)=>e>>BigInt(t)&1n,Gg=(e,t,n)=>e|(n?ec:Mg)<(Zg<new Uint8Array(e),Bu=e=>Uint8Array.from(e);function pf(e,t,n){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let r=Ni(e),s=Ni(e),o=0;const i=()=>{r.fill(1),s.fill(0),o=0},a=(...f)=>n(s,r,...f),c=(f=Ni())=>{s=a(Bu([0]),f),r=a(),f.length!==0&&(s=a(Bu([1]),f),r=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let f=0;const d=[];for(;f{i(),c(f);let h;for(;!(h=d(u()));)c();return i(),h}}const Yg={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function Fr(e,t,n={}){const r=(s,o,i)=>{const a=Yg[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);const c=e[s];if(!(i&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};for(const[s,o]of Object.entries(t))r(s,o,!1);for(const[s,o]of Object.entries(n))r(s,o,!0);return e}var Xg=Object.freeze({__proto__:null,bitGet:Wg,bitLen:Fg,bitMask:rc,bitSet:Gg,bytesToHex:Cr,bytesToNumberBE:$n,bytesToNumberLE:nc,concatBytes:bt,createHmacDrbg:pf,ensureBytes:dt,equalBytes:zg,hexToBytes:Pr,hexToNumber:tc,numberToBytesBE:$r,numberToBytesLE:hf,numberToHexUnpadded:df,numberToVarBytesBE:qg,utf8ToBytes:oi,validateObject:Fr});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ze=BigInt(0),Le=BigInt(1),Rn=BigInt(2),Jg=BigInt(3),da=BigInt(4),Tu=BigInt(5),Iu=BigInt(8);BigInt(9);BigInt(16);function Ye(e,t){const n=e%t;return n>=Ze?n:t+n}function Qg(e,t,n){if(n<=Ze||t 0");if(n===Le)return Ze;let r=Le;for(;t>Ze;)t&Le&&(r=r*e%n),e=e*e%n,t>>=Le;return r}function ft(e,t,n){let r=e;for(;t-- >Ze;)r*=r,r%=n;return r}function ha(e,t){if(e===Ze||t<=Ze)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let n=Ye(e,t),r=t,s=Ze,o=Le;for(;n!==Ze;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Le)throw new Error("invert: does not exist");return Ye(s,t)}function em(e){const t=(e-Le)/Rn;let n,r,s;for(n=e-Le,r=0;n%Rn===Ze;n/=Rn,r++);for(s=Rn;s(r[s]="function",r),t);return Fr(e,n)}function rm(e,t,n){if(n 0");if(n===Ze)return e.ONE;if(n===Le)return t;let r=e.ONE,s=t;for(;n>Ze;)n&Le&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Le;return r}function sm(e,t){const n=new Array(t.length),r=t.reduce((o,i,a)=>e.is0(i)?o:(n[a]=o,e.mul(o,i)),e.ONE),s=e.inv(r);return t.reduceRight((o,i,a)=>e.is0(i)?o:(n[a]=e.mul(o,n[a]),e.mul(o,i)),s),n}function sc(e,t){const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function mf(e,t,n=!1,r={}){if(e<=Ze)throw new Error(`Expected Fp ORDER > 0, got ${e}`);const{nBitLength:s,nByteLength:o}=sc(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");const i=tm(e),a=Object.freeze({ORDER:e,BITS:s,BYTES:o,MASK:rc(s),ZERO:Ze,ONE:Le,create:c=>Ye(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Ze<=c&&cc===Ze,isOdd:c=>(c&Le)===Le,neg:c=>Ye(-c,e),eql:(c,u)=>c===u,sqr:c=>Ye(c*c,e),add:(c,u)=>Ye(c+u,e),sub:(c,u)=>Ye(c-u,e),mul:(c,u)=>Ye(c*u,e),pow:(c,u)=>rm(a,c,u),div:(c,u)=>Ye(c*ha(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>ha(c,e),sqrt:r.sqrt||(c=>i(a,c)),invertBatch:c=>sm(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>n?hf(c,o):$r(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return n?nc(c):$n(c)}});return Object.freeze(a)}function om(e,t,n=!1){e=dt("privateHash",e);const r=e.length,s=sc(t).nByteLength+8;if(s<24||r1024)throw new Error(`hashToPrivateScalar: expected ${s}-1024 bytes of input, got ${r}`);const o=n?nc(e):$n(e);return Ye(o,t-Le)+Le}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const im=BigInt(0),Li=BigInt(1);function am(e,t){const n=(s,o)=>{const i=o.negate();return s?i:o},r=s=>{const o=Math.ceil(t/s)+1,i=2**(s-1);return{windows:o,windowSize:i}};return{constTimeNegate:n,unsafeLadder(s,o){let i=e.ZERO,a=s;for(;o>im;)o&Li&&(i=i.add(a)),a=a.double(),o>>=Li;return i},precomputeWindow(s,o){const{windows:i,windowSize:a}=r(o),c=[];let u=s,l=u;for(let f=0;f>=h,w>c&&(w-=d,i+=Li);const y=p,v=p+Math.abs(w)-1,m=g%2!==0,x=w<0;w===0?l=l.add(n(m,o[y])):u=u.add(n(x,o[v]))}return{p:u,f:l}},wNAFCached(s,o,i,a){const c=s._WINDOW_SIZE||1;let u=o.get(s);return u||(u=this.precomputeWindow(s,c),c!==1&&o.set(s,a(u))),this.wNAF(c,u,i)}}}function yf(e){return gf(e.Fp),Fr(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...sc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function cm(e){const t=yf(e);Fr(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:s}=t;if(n){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:um,hexToBytes:lm}=Xg,Mn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){const{Err:t}=Mn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");const n=e[1],r=e.subarray(2,n+2);if(!n||r.length!==n)throw new t("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new t("Invalid signature integer: trailing length");return{d:um(r),l:e.subarray(n+2)}},toSig(e){const{Err:t}=Mn,n=typeof e=="string"?lm(e):e;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||n[0]!=48)throw new t("Invalid signature tag");if(n[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:s,l:o}=Mn._parseInt(n.subarray(2)),{d:i,l:a}=Mn._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(e){const t=u=>Number.parseInt(u[0],16)>=8?"00"+u:u,n=u=>{const l=u.toString(16);return l.length&1?`0${l}`:l},r=t(n(e.s)),s=t(n(e.r)),o=r.length/2,i=s.length/2,a=n(o),c=n(i);return`30${n(i+o+4)}02${c}${s}02${a}${r}`}},xt=BigInt(0),je=BigInt(1),Vt=BigInt(2),Eo=BigInt(3),Ou=BigInt(4);function fm(e){const t=cm(e),{Fp:n}=t,r=t.toBytes||((g,p,w)=>{const y=p.toAffine();return bt(Uint8Array.from([4]),n.toBytes(y.x),n.toBytes(y.y))}),s=t.fromBytes||(g=>{const p=g.subarray(1),w=n.fromBytes(p.subarray(0,n.BYTES)),y=n.fromBytes(p.subarray(n.BYTES,2*n.BYTES));return{x:w,y}});function o(g){const{a:p,b:w}=t,y=n.sqr(g),v=n.mul(y,g);return n.add(n.add(v,n.mul(g,p)),w)}function i(g){return typeof g=="bigint"&&xtn.eql(m,n.ZERO);return v(w)&&v(y)?f.ZERO:new f(w,y,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){const w=n.invertBatch(p.map(y=>y.pz));return p.map((y,v)=>y.toAffine(w[v])).map(f.fromAffine)}static fromHex(p){const w=f.fromAffine(s(dt("pointHex",p)));return w.assertValidity(),w}static fromPrivateKey(p){return f.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint)return;throw new Error("bad point: ZERO")}const{x:p,y:w}=this.toAffine();if(!n.isValid(p)||!n.isValid(w))throw new Error("bad point: x or y not FE");const y=n.sqr(w),v=o(p);if(!n.eql(y,v))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:p}=this.toAffine();if(n.isOdd)return!n.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){l(p);const{px:w,py:y,pz:v}=this,{px:m,py:x,pz:k}=p,I=n.eql(n.mul(w,k),n.mul(m,v)),C=n.eql(n.mul(y,k),n.mul(x,v));return I&&C}negate(){return new f(this.px,n.neg(this.py),this.pz)}double(){const{a:p,b:w}=t,y=n.mul(w,Eo),{px:v,py:m,pz:x}=this;let k=n.ZERO,I=n.ZERO,C=n.ZERO,N=n.mul(v,v),O=n.mul(m,m),R=n.mul(x,x),A=n.mul(v,m);return A=n.add(A,A),C=n.mul(v,x),C=n.add(C,C),k=n.mul(p,C),I=n.mul(y,R),I=n.add(k,I),k=n.sub(O,I),I=n.add(O,I),I=n.mul(k,I),k=n.mul(A,k),C=n.mul(y,C),R=n.mul(p,R),A=n.sub(N,R),A=n.mul(p,A),A=n.add(A,C),C=n.add(N,N),N=n.add(C,N),N=n.add(N,R),N=n.mul(N,A),I=n.add(I,N),R=n.mul(m,x),R=n.add(R,R),N=n.mul(R,A),k=n.sub(k,N),C=n.mul(R,O),C=n.add(C,C),C=n.add(C,C),new f(k,I,C)}add(p){l(p);const{px:w,py:y,pz:v}=this,{px:m,py:x,pz:k}=p;let I=n.ZERO,C=n.ZERO,N=n.ZERO;const O=t.a,R=n.mul(t.b,Eo);let A=n.mul(w,m),P=n.mul(y,x),E=n.mul(v,k),S=n.add(w,y),b=n.add(m,x);S=n.mul(S,b),b=n.add(A,P),S=n.sub(S,b),b=n.add(w,v);let _=n.add(m,k);return b=n.mul(b,_),_=n.add(A,E),b=n.sub(b,_),_=n.add(y,v),I=n.add(x,k),_=n.mul(_,I),I=n.add(P,E),_=n.sub(_,I),N=n.mul(O,b),I=n.mul(R,E),N=n.add(I,N),I=n.sub(P,N),N=n.add(P,N),C=n.mul(I,N),P=n.add(A,A),P=n.add(P,A),E=n.mul(O,E),b=n.mul(R,b),P=n.add(P,E),E=n.sub(A,E),E=n.mul(O,E),b=n.add(b,E),A=n.mul(P,b),C=n.add(C,A),A=n.mul(_,b),I=n.mul(S,I),I=n.sub(I,A),A=n.mul(S,P),N=n.mul(_,N),N=n.add(N,A),new f(I,C,N)}subtract(p){return this.add(p.negate())}is0(){return this.equals(f.ZERO)}wNAF(p){return h.wNAFCached(this,u,p,w=>{const y=n.invertBatch(w.map(v=>v.pz));return w.map((v,m)=>v.toAffine(y[m])).map(f.fromAffine)})}multiplyUnsafe(p){const w=f.ZERO;if(p===xt)return w;if(a(p),p===je)return this;const{endo:y}=t;if(!y)return h.unsafeLadder(this,p);let{k1neg:v,k1:m,k2neg:x,k2:k}=y.splitScalar(p),I=w,C=w,N=this;for(;m>xt||k>xt;)m&je&&(I=I.add(N)),k&je&&(C=C.add(N)),N=N.double(),m>>=je,k>>=je;return v&&(I=I.negate()),x&&(C=C.negate()),C=new f(n.mul(C.px,y.beta),C.py,C.pz),I.add(C)}multiply(p){a(p);let w=p,y,v;const{endo:m}=t;if(m){const{k1neg:x,k1:k,k2neg:I,k2:C}=m.splitScalar(w);let{p:N,f:O}=this.wNAF(k),{p:R,f:A}=this.wNAF(C);N=h.constTimeNegate(x,N),R=h.constTimeNegate(I,R),R=new f(n.mul(R.px,m.beta),R.py,R.pz),y=N.add(R),v=O.add(A)}else{const{p:x,f:k}=this.wNAF(w);y=x,v=k}return f.normalizeZ([y,v])[0]}multiplyAndAddUnsafe(p,w,y){const v=f.BASE,m=(k,I)=>I===xt||I===je||!k.equals(v)?k.multiplyUnsafe(I):k.multiply(I),x=m(this,w).add(m(p,y));return x.is0()?void 0:x}toAffine(p){const{px:w,py:y,pz:v}=this,m=this.is0();p==null&&(p=m?n.ONE:n.inv(v));const x=n.mul(w,p),k=n.mul(y,p),I=n.mul(v,p);if(m)return{x:n.ZERO,y:n.ZERO};if(!n.eql(I,n.ONE))throw new Error("invZ was invalid");return{x,y:k}}isTorsionFree(){const{h:p,isTorsionFree:w}=t;if(p===je)return!0;if(w)return w(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:p,clearCofactor:w}=t;return p===je?this:w?w(f,this):this.multiplyUnsafe(t.h)}toRawBytes(p=!0){return this.assertValidity(),r(f,this,p)}toHex(p=!0){return Cr(this.toRawBytes(p))}}f.BASE=new f(t.Gx,t.Gy,n.ONE),f.ZERO=new f(n.ZERO,n.ONE,n.ZERO);const d=t.nBitLength,h=am(f,t.endo?Math.ceil(d/2):d);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:i}}function dm(e){const t=yf(e);return Fr(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function hm(e){const t=dm(e),{Fp:n,n:r}=t,s=n.BYTES+1,o=2*n.BYTES+1;function i(b){return xtCr($r(b,t.nByteLength));function g(b){const _=r>>je;return b>_}function p(b){return g(b)?a(-b):b}const w=(b,_,U)=>$n(b.slice(_,U));class y{constructor(_,U,j){this.r=_,this.s=U,this.recovery=j,this.assertValidity()}static fromCompact(_){const U=t.nByteLength;return _=dt("compactSignature",_,U*2),new y(w(_,0,U),w(_,U,2*U))}static fromDER(_){const{r:U,s:j}=Mn.toSig(dt("DER",_));return new y(U,j)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(_){return new y(this.r,this.s,_)}recoverPublicKey(_){const{r:U,s:j,recovery:L}=this,M=C(dt("msgHash",_));if(L==null||![0,1,2,3].includes(L))throw new Error("recovery id invalid");const V=L===2||L===3?U+t.n:U;if(V>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const W=(L&1)===0?"02":"03",le=u.fromHex(W+h(V)),ce=c(V),ne=a(-M*ce),pe=a(j*ce),ge=u.BASE.multiplyAndAddUnsafe(le,ne,pe);if(!ge)throw new Error("point at infinify");return ge.assertValidity(),ge}hasHighS(){return g(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Pr(this.toDERHex())}toDERHex(){return Mn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Pr(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}const v={isValidPrivateKey(b){try{return l(b),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const b=t.randomBytes(n.BYTES+8),_=om(b,r);return $r(_,t.nByteLength)},precompute(b=8,_=u.BASE){return _._setWindowSize(b),_.multiply(BigInt(3)),_}};function m(b,_=!0){return u.fromPrivateKey(b).toRawBytes(_)}function x(b){const _=b instanceof Uint8Array,U=typeof b=="string",j=(_||U)&&b.length;return _?j===s||j===o:U?j===2*s||j===2*o:b instanceof u}function k(b,_,U=!0){if(x(b))throw new Error("first arg must be private key");if(!x(_))throw new Error("second arg must be public key");return u.fromHex(_).multiply(l(b)).toRawBytes(U)}const I=t.bits2int||function(b){const _=$n(b),U=b.length*8-t.nBitLength;return U>0?_>>BigInt(U):_},C=t.bits2int_modN||function(b){return a(I(b))},N=rc(t.nBitLength);function O(b){if(typeof b!="bigint")throw new Error("bigint expected");if(!(xt<=b&&bde in U))throw new Error("sign() legacy options not supported");const{hash:j,randomBytes:L}=t;let{lowS:M,prehash:V,extraEntropy:W}=U;M==null&&(M=!0),b=dt("msgHash",b),V&&(b=dt("prehashed msgHash",j(b)));const le=C(b),ce=l(_),ne=[O(ce),O(le)];if(W!=null){const de=W===!0?L(n.BYTES):W;ne.push(dt("extraEntropy",de,n.BYTES))}const pe=bt(...ne),ge=le;function Ne(de){const ve=I(de);if(!d(ve))return;const Mt=c(ve),lt=u.BASE.multiply(ve).toAffine(),qe=a(lt.x);if(qe===xt)return;const Zt=a(Mt*a(ge+qe*ce));if(Zt===xt)return;let es=(lt.x===qe?0:2)|Number(lt.y&je),$u=Zt;return M&&g(Zt)&&($u=p(Zt),es^=1),new y(qe,$u,es)}return{seed:pe,k2sig:Ne}}const A={lowS:t.lowS,prehash:!1},P={lowS:t.lowS,prehash:!1};function E(b,_,U=A){const{seed:j,k2sig:L}=R(b,_,U);return pf(t.hash.outputLen,t.nByteLength,t.hmac)(j,L)}u.BASE._setWindowSize(8);function S(b,_,U,j=P){var lt;const L=b;if(_=dt("msgHash",_),U=dt("publicKey",U),"strict"in j)throw new Error("options.strict was renamed to lowS");const{lowS:M,prehash:V}=j;let W,le;try{if(typeof L=="string"||L instanceof Uint8Array)try{W=y.fromDER(L)}catch(qe){if(!(qe instanceof Mn.Err))throw qe;W=y.fromCompact(L)}else if(typeof L=="object"&&typeof L.r=="bigint"&&typeof L.s=="bigint"){const{r:qe,s:Zt}=L;W=new y(qe,Zt)}else throw new Error("PARSE");le=u.fromHex(U)}catch(qe){if(qe.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(M&&W.hasHighS())return!1;V&&(_=t.hash(_));const{r:ce,s:ne}=W,pe=C(_),ge=c(ne),Ne=a(pe*ge),de=a(ce*ge),ve=(lt=u.BASE.multiplyAndAddUnsafe(le,Ne,de))==null?void 0:lt.toAffine();return ve?a(ve.x)===ce:!1}return{CURVE:t,getPublicKey:m,getSharedSecret:k,sign:E,verify:S,ProjectivePoint:u,Signature:y,utils:v}}function pm(e,t){const n=e.ORDER;let r=xt;for(let d=n-je;d%Vt===xt;d/=Vt)r+=je;const s=r,o=(n-je)/Vt**s,i=(o-je)/Vt,a=Vt**s-je,c=Vt**(s-je),u=e.pow(t,o),l=e.pow(t,(o+je)/Vt);let f=(d,h)=>{let g=u,p=e.pow(h,a),w=e.sqr(p);w=e.mul(w,h);let y=e.mul(d,w);y=e.pow(y,i),y=e.mul(y,p),p=e.mul(y,h),w=e.mul(y,d);let v=e.mul(w,p);y=e.pow(v,c);let m=e.eql(y,e.ONE);p=e.mul(w,l),y=e.mul(v,g),w=e.cmov(p,w,m),v=e.cmov(y,v,m);for(let x=s;x>1;x--){let k=Vt**(x-Vt),I=e.pow(v,k);const C=e.eql(I,e.ONE);p=e.mul(w,g),g=e.mul(g,g),I=e.mul(v,g),w=e.cmov(p,w,C),v=e.cmov(I,v,C)}return{isValid:m,value:w}};if(e.ORDER%Ou===Eo){const d=(e.ORDER-Eo)/Ou,h=e.sqrt(e.neg(t));f=(g,p)=>{let w=e.sqr(p);const y=e.mul(g,p);w=e.mul(w,y);let v=e.pow(w,d);v=e.mul(v,y);const m=e.mul(v,h),x=e.mul(e.sqr(v),p),k=e.eql(x,g);let I=e.cmov(m,v,k);return{isValid:k,value:I}}}return f}function gm(e,t){if(gf(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const n=pm(e,t.Z);if(!e.isOdd)throw new Error("Fp.isOdd is not implemented!");return r=>{let s,o,i,a,c,u,l,f;s=e.sqr(r),s=e.mul(s,t.Z),o=e.sqr(s),o=e.add(o,s),i=e.add(o,e.ONE),i=e.mul(i,t.B),a=e.cmov(t.Z,e.neg(o),!e.eql(o,e.ZERO)),a=e.mul(a,t.A),o=e.sqr(i),u=e.sqr(a),c=e.mul(u,t.A),o=e.add(o,c),o=e.mul(o,i),u=e.mul(u,a),c=e.mul(u,t.B),o=e.add(o,c),l=e.mul(s,i);const{isValid:d,value:h}=n(o,u);f=e.mul(s,r),f=e.mul(f,h),l=e.cmov(l,i,d),f=e.cmov(f,h,d);const g=e.isOdd(r)===e.isOdd(f);return f=e.cmov(e.neg(f),f,g),l=e.div(l,a),{x:l,y:f}}}function mm(e){if(e instanceof Uint8Array)return e;if(typeof e=="string")return oi(e);throw new Error("DST must be Uint8Array or string")}const ym=$n;function xn(e,t){if(e<0||e>=1<<8*t)throw new Error(`bad I2OSP call: value=${e} length=${t}`);const n=Array.from({length:t}).fill(0);for(let r=t-1;r>=0;r--)n[r]=e&255,e>>>=8;return new Uint8Array(n)}function wm(e,t){const n=new Uint8Array(e.length);for(let r=0;r255&&(t=r(bt(oi("H2C-OVERSIZE-DST-"),t)));const{outputLen:s,blockLen:o}=r,i=Math.ceil(n/s);if(i>255)throw new Error("Invalid xmd length");const a=bt(t,xn(t.length,1)),c=xn(0,o),u=xn(n,2),l=new Array(i),f=r(bt(c,e,u,xn(0,1),a));l[0]=r(bt(f,xn(1,1),a));for(let h=1;h<=i;h++){const g=[wm(f,l[h-1]),xn(h+1,1),a];l[h]=r(bt(...g))}return bt(...l).slice(0,n)}function xm(e,t,n,r,s){if(hs(e),hs(t),oc(n),t.length>255){const o=Math.ceil(2*r/8);t=s.create({dkLen:o}).update(oi("H2C-OVERSIZE-DST-")).update(t).digest()}if(n>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:n}).update(e).update(xn(n,2)).update(t).update(xn(t.length,1)).digest()}function Cu(e,t,n){Fr(n,{DST:"string",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:r,k:s,m:o,hash:i,expand:a,DST:c}=n;hs(e),oc(t);const u=mm(c),l=r.toString(2).length,f=Math.ceil((l+s)/8),d=t*o*f;let h;if(a==="xmd")h=bm(e,u,d,i);else if(a==="xof")h=xm(e,u,d,s,i);else if(a===void 0)h=e;else throw new Error('expand must be "xmd", "xof" or undefined');const g=new Array(t);for(let p=0;pArray.from(r).reverse());return(r,s)=>{const[o,i,a,c]=n.map(u=>u.reduce((l,f)=>e.add(e.mul(l,r),f)));return r=e.div(o,i),s=e.mul(s,e.div(a,c)),{x:r,y:s}}}function km(e,t,n){if(typeof t!="function")throw new Error("mapToCurve() must be defined");return{hashToCurve(r,s){const o=Cu(r,2,{...n,DST:n.DST,...s}),i=e.fromAffine(t(o[0])),a=e.fromAffine(t(o[1])),c=i.add(a).clearCofactor();return c.assertValidity(),c},encodeToCurve(r,s){const o=Cu(r,1,{...n,DST:n.encodeDST,...s}),i=e.fromAffine(t(o[0])).clearCofactor();return i.assertValidity(),i}}}let wf=class extends cf{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Dn.hash(t);const r=Qa(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new TypeError("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew wf(e,t).update(n).digest();bf.create=(e,t)=>new wf(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Em(e){return{hash:e,hmac:(t,...n)=>bf(e,t,Ug(...n)),randomBytes:Ng}}function $m(e,t){const n=r=>hm({...e,...Em(r)});return Object.freeze({...n(t),create:n})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const xf=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Pu=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Sm=BigInt(1),pa=BigInt(2),Uu=(e,t)=>(e+t/pa)/t;function _m(e){const t=xf,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=ft(l,n,t)*l%t,d=ft(f,n,t)*l%t,h=ft(d,pa,t)*u%t,g=ft(h,s,t)*h%t,p=ft(g,o,t)*g%t,w=ft(p,a,t)*p%t,y=ft(w,c,t)*w%t,v=ft(y,a,t)*p%t,m=ft(v,n,t)*l%t,x=ft(m,i,t)*g%t,k=ft(x,r,t)*u%t,I=ft(k,pa,t);if(!Sn.eql(Sn.sqr(I),e))throw new Error("Cannot find square root");return I}const Sn=mf(xf,void 0,void 0,{sqrt:_m}),Jt=$m({a:BigInt(0),b:BigInt(7),Fp:Sn,n:Pu,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=Pu,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Sm*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=n,i=BigInt("0x100000000000000000000000000000000"),a=Uu(o*e,t),c=Uu(-r*e,t);let u=Ye(e-a*n-c*s,t),l=Ye(-a*r-c*o,t);const f=u>i,d=l>i;if(f&&(u=t-u),d&&(l=t-l),u>i||l>i)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},ff);BigInt(0);Jt.ProjectivePoint;Jt.utils.randomPrivateKey;const Am=vm(Sn,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),Bm=gm(Sn,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:Sn.create(BigInt("-11"))});km(Jt.ProjectivePoint,e=>{const{x:t,y:n}=Bm(Sn.create(e[0]));return Am(t,n)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:Sn.ORDER,m:1,k:128,expand:"xmd",hash:ff});function ga(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Tm(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function vf(e,...t){if(!(e instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new TypeError(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Im(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ga(e.outputLen),ga(e.blockLen)}function Om(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 Cm(e,t){vf(e);const n=t.outputLen;if(e.lengthnew DataView(e.buffer,e.byteOffset,e.byteLength),Ot=(e,t)=>e<<32-t|e>>>t,Um=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Um)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Nm(e){if(typeof e!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof e}`);return new TextEncoder().encode(e)}function kf(e){if(typeof e=="string"&&(e=Nm(e)),!(e instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof e})`);return e}let Lm=class{clone(){return this._cloneInto()}};function Ef(e){const t=r=>e().update(kf(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Hm(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}let Rm=class extends Lm{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ri(this.buffer)}update(t){Hi.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=kf(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,Km=(e,t,n)=>e&t^e&n^t&n,Dm=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),un=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ln=new Uint32Array(64);let $f=class extends Rm{constructor(){super(64,32,8,!1),this.A=un[0]|0,this.B=un[1]|0,this.C=un[2]|0,this.D=un[3]|0,this.E=un[4]|0,this.F=un[5]|0,this.G=un[6]|0,this.H=un[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)ln[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=ln[f-15],h=ln[f-2],g=Ot(d,7)^Ot(d,18)^d>>>3,p=Ot(h,17)^Ot(h,19)^h>>>10;ln[f]=p+ln[f-7]+g+ln[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=Ot(a,6)^Ot(a,11)^Ot(a,25),h=l+d+jm(a,c,u)+Dm[f]+ln[f]|0,p=(Ot(r,2)^Ot(r,13)^Ot(r,22))+Km(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+p|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){ln.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}},Mm=class extends $f{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}};const ma=Ef(()=>new $f);Ef(()=>new Mm);function Zm(e,t){if(e.length>t)throw new TypeError(`Data is larger than array size: ${e.length} > ${t}`)}function Vm(e){if(e.match(/[^a-fA-f0-9]/)!==null)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}`)}function qm(e){if(e>Number.MAX_SAFE_INTEGER)throw new TypeError("Number exceeds safe bounds!")}const{getRandomValues:zm}=crypto??globalThis.crypto??window.crypto;function Fm(e=32){if(typeof zm=="function")return crypto.getRandomValues(new Uint8Array(e));throw new Error("Crypto module missing getRandomValues!")}function Wm(e,t,n="be"){t===void 0&&(t=e.length),Zm(e,t);const r=new Uint8Array(t).fill(0),s=n==="be"?0:t-e.length;return r.set(e,s),r}function Sf(e){let t,n=0;const r=e.reduce((o,i)=>o+i.length,0),s=new Uint8Array(r);for(t=0;t0||(i.length^a)>0?"":"1";c in o||u>0;)l=o[c],l=l>0?l*256+u:u,u=l/s|0,o[c]=l%s,c++;for(;c-- >0;)i+=r[o[c]];return n&&i.length%4>0?i+"=".repeat(4-i.length%4):i}function Jm(e,t){const n=_f(t),r=n.length,s=[],o=[];e=e.replace("=","");let i,a=0,c,u;for(i=0;i0||(o.length^i)>0||o.push(0);a in s||c>0;)u=s[a],u=u>0?u*r+c:c,c=u>>8,s[a]=u%256,a++}for(;a-- >0;)o.push(s[a]);return new Uint8Array(o)}function Af(e){return ma(ma(e))}function Qm(e){const t=Af(e);return Sf([e,t.slice(0,4)])}function ey(e){const t=e.slice(0,-4),n=e.slice(-4);if(Af(t).slice(0,4).toString()!==n.toString())throw new Error("Invalid checksum!");return t}const Nu={encode:Xm,decode:Jm},Bf={encode:e=>{const t=Qm(e);return Nu.encode(t,"base58")},decode:e=>{const t=Nu.decode(e,"base58");return ey(t)}},Tf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",ty=[996825010,642813549,513874426,1027748829,705979059],$o=[{version:0,name:"bech32",const:1},{version:1,name:"bech32m",const:734539939}];function If(e){let t=1;for(let n=0;n>25;t=(t&33554431)<<5^e[n];for(let s=0;s<5;++s)(r>>s&1)!==0&&(t^=ty[s])}return t}function Of(e){const t=[];let n;for(n=0;n>5);for(t.push(0),n=0;n>5*(5-i)&31);return o}function Cf(e,t,n,r=!0){const s=[];let o=0,i=0;const a=(1<>t>0)throw new Error("Failed to perform base conversion. Invalid value: "+String(u));for(o=(o<=n;)i-=n,s.push(o>>i&a)}if(r)i>0&&s.push(o<=t||(o<0)throw new Error("Failed to perform base conversion. Invalid Size!");return s}function sy(e,t,n){const r=t.concat(ry(e,t,n));let s=e+"1";for(let o=0;oo.version===t[0])??$o[0];if(!ny(r,t,s))throw new Error("Checksum verification failed!");return[r,t.slice(0,t.length-6)]}function oy(e){let t,n,r=!1,s=!1;for(t=0;t126)return!1;n>=97&&n<=122&&(r=!0),n>=65&&n<=90&&(s=!0)}return!(r&&s)}function iy(e){const t=e.lastIndexOf("1");return!(t<1||t+7>e.length||e.length>90)}function ay(e,t="bc",n=0){const r=[n,...Cf([...e],8,5)],s=$o.find(i=>i.version===n)??$o[0],o=sy(t,r,s);return Uf(o),o}function Uf(e){e=e.toLowerCase();const t=e.split("1",1)[0],[n,r]=Pf(e),s=Cf(r.slice(1),5,8,!1),o=s.length;switch(!0){case t!==n:throw new Error("Returned hrp string is invalid.");case(s===null||o<2||o>40):throw new Error("Decoded string is invalid or out of spec.");case r[0]>16:throw new Error("Returned version bit is out of range.");default:return Uint8Array.from(s)}}function cy(e){e=e.toLowerCase();const[t,n]=Pf(e);return n[0]}const Nf={encode:ay,decode:Uf,version:cy},Lf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Hf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",uy=new TextEncoder;function Rf(e,t=!1,n=!0){typeof e=="string"&&(e=uy.encode(e));const r=t?Hf:Lf;let s="",o=0,i=0;for(let a=0;a=6;)o-=6,s+=r[i>>o&63];if(o>0)for(i<<=6-o,s+=r[i&63];o<6;)s+=n?"=":"",o+=2;return s}function jf(e,t=!1){const n=t||e.includes("-")||e.includes("_")?Hf.split(""):Lf.split("");e=e.replace(/=+$/,"");const r=e.split("");let s=0,o=0;const i=[];for(let a=0;a=8&&(s-=8,i.push(o>>>s&255))}return new Uint8Array(i)}const Kf={encode:Rf,decode:jf},Df={encode:e=>Rf(e,!0,!1),decode:e=>jf(e,!0)},ly=BigInt(0),fy=BigInt(255),Mf=BigInt(256);function dy(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.")}function hy(e,t,n="be"){t===void 0&&(t=dy(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>ly;){const a=e&fy,c=Number(a);r?o.setUint8(i++,c):o.setUint8(i--,c),e=(e-a)/Mf}return new Uint8Array(s)}function py(e){let t=BigInt(0);for(let n=e.length-1;n>=0;n--)t=t*Mf+BigInt(e[n]);return BigInt(t)}function gy(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 r=0,s=0;r255)throw new Error(`Invalid byte value: ${r}. Byte values must be between 0 and 255.`);for(let s=7;s>=0;s--,n++)t[n]=r>>s&1}return t.join("")}function yy(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!")}function wy(e,t,n="be"){t===void 0&&(t=yy(e));const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(;e>0;){const a=e&255;r?o.setUint8(i++,e):o.setUint8(i--,e),e=(e-a)/256}return new Uint8Array(s)}function by(e){let t=0;for(let n=e.length-1;n>=0;n--)t=t*256+e[n],qm(t);return t}const xy=new TextEncoder,vy=new TextDecoder;function ic(e){return xy.encode(e)}function ji(e){return vy.decode(e)}function ky(e,t){Vm(e);const n=e.length/2;if(t===void 0&&(t=n),n>t)throw new TypeError(`Hex string is larger than array size: ${n} > ${t}`);return t}function Ey(e,t,n="le"){t=ky(e,t);const r=n==="le",s=new ArrayBuffer(t),o=new DataView(s);let i=r?0:t-1;for(let a=0;atypeof r=="bigint"?`${r}n`:r);return ic(t)}function _y(e,t,n){if(e instanceof ArrayBuffer)return new Uint8Array(e);if(e instanceof Uint8Array)return Wm(e,t,n);if(typeof e=="string")return Ey(e,t,n);if(typeof e=="bigint")return hy(e,t,n);if(typeof e=="number")return wy(e,t,n);if(typeof e=="boolean")return Uint8Array.of(e?1:0);throw TypeError("Unsupported format:"+typeof e)}const ie=class ie extends Uint8Array{static random(t=32){const n=Fm(t);return new ie(n,t)}constructor(t,n,r){const s=_y(t,n,r);super(s)}get arr(){return[...this]}get num(){return this.toNum()}get big(){return this.toBig()}get str(){return this.toStr()}get hex(){return this.toHex()}get raw(){return new Uint8Array(this)}get bin(){return this.toBin()}get b58chk(){return this.tob58chk()}get base64(){return this.toBase64()}get b64url(){return this.toB64url()}get digest(){return this.toHash()}get id(){return this.toHash().hex}get stream(){return new jy(this)}toNum(t="be"){const n=t==="be"?this.reverse():this;return by(n)}toBin(){return my(this)}toBig(t="be"){const n=t==="be"?this.reverse():this;return py(n)}toHash(){const t=ma(this);return new ie(t)}toJson(){const t=ji(this);return JSON.parse(t)}toBech32(t,n=0){return Nf.encode(this,t,n)}toStr(){return ji(this)}toHex(){return $y(this)}toBytes(){return new Uint8Array(this)}tob58chk(){return Bf.encode(this)}toBase64(){return Kf.encode(this)}toB64url(){return Df.encode(this)}prepend(t){return ie.join([ie.bytes(t),this])}append(t){return ie.join([this,ie.bytes(t)])}slice(t,n){const r=new Uint8Array(this).slice(t,n);return new ie(r)}subarray(t,n){const r=new Uint8Array(this).subarray(t,n);return new ie(r)}reverse(){const t=new Uint8Array(this).reverse();return new ie(t)}write(t,n){const r=ie.bytes(t);this.set(r,n)}prefixSize(t){const n=ie.varInt(this.length,t);return ie.join([n,this])}static from(t){return new ie(Uint8Array.from(t))}static of(...t){return new ie(Uint8Array.of(...t))}static join(t){const n=t.map(s=>ie.bytes(s)),r=Sf(n);return new ie(r)}static varInt(t,n){if(t<253)return ie.num(t,1);if(t<65536)return ie.of(253,...ie.num(t,2,n));if(t<4294967296)return ie.of(254,...ie.num(t,4,n));if(BigInt(t)<0x10000000000000000n)return ie.of(255,...ie.num(t,8,n));throw new Error(`Value is too large: ${t}`)}};ie.num=Ay,ie.big=Ty,ie.bin=By,ie.raw=Iy,ie.str=Oy,ie.hex=Cy,ie.bytes=Py,ie.json=Uy,ie.base64=Ny,ie.b64url=Ly,ie.bech32=Hy,ie.b58chk=Ry,ie.encode=ic,ie.decode=ji;let Q=ie;function Ay(e,t,n){return new Q(e,t,n)}function By(e,t,n){return new Q(gy(e),t,n)}function Ty(e,t,n){return new Q(e,t,n)}function Iy(e,t,n){return new Q(e,t,n)}function Oy(e,t,n){return new Q(ic(e),t,n)}function Cy(e,t,n){return new Q(e,t,n)}function Py(e,t,n){return new Q(e,t,n)}function Uy(e){return new Q(Sy(e))}function Ny(e){return new Q(Kf.decode(e))}function Ly(e){return new Q(Df.decode(e))}function Hy(e){return new Q(Nf.decode(e))}function Ry(e){return new Q(Bf.decode(e))}class jy{constructor(t){this.data=Q.bytes(t),this.size=this.data.length}peek(t){if(t>this.size)throw new Error(`Size greater than stream: ${t} > ${this.size}`);return new Q(this.data.slice(0,t))}read(t){t=t??this.readSize();const n=this.peek(t);return this.data=this.data.slice(t),this.size=this.data.length,n}readSize(t){const n=this.read(1).num;switch(!0){case(n>=0&&n<253):return n;case n===253:return this.read(2).toNum(t);case n===254:return this.read(4).toNum(t);case n===255:return this.read(8).toNum(t);default:throw new Error(`Varint is out of range: ${n}`)}}}const So=Jt.CURVE,ac=So.n,Ky=So.p,Dy={x:So.Gx,y:So.Gy},My=BigInt(0);BigInt(1);BigInt(2);BigInt(3);BigInt(4);const ya={N:ac,P:Ky,G:Dy,_0n:My},ts=mf(ac,32,!0),Zf=e=>Ye(e,ac);function cc(e,t=!1){if(t)throw new Error(e);return!1}function Vf(e){return Q.random(e)}function Zy(e){const t=Q.bytes(e).big;return Q.big(Zf(t),32)}var Vy=Object.freeze({__proto__:null,fail:cc,mod_bytes:Zy,random:Vf});const{N:qy,_0n:zy}=ya;function Fy(e,t,n){const r=Q.bytes(e);return r.length!==t?cc(`Invalid byte size: ${r.hex} !== ${t}`,n):!0}function Wy(e,t){return typeof e=="bigint"&&zythis.big}lt(t){return new $e(t).big0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Jy(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");wa(e.outputLen),wa(e.blockLen)}function Qy(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 ew(e,t){qf(e);const n=t.outputLen;if(e.lengthe instanceof Uint8Array,Ki=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ct=(e,t)=>e<<32-t|e>>>t,rw=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!rw)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function sw(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function uc(e){if(typeof e=="string"&&(e=sw(e)),!nw(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}let zf=class{clone(){return this._cloneInto()}};function lr(e){const t=r=>e().update(uc(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function ow(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}class lc extends zf{constructor(t,n,r,s){super(),this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ki(this.buffer)}update(t){Zn.exists(this);const{view:n,buffer:r,blockLen:s}=this;t=uc(t);const o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;fe&t^~e&n,aw=(e,t,n)=>e&t^e&n^t&n,cw=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),fn=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),dn=new Uint32Array(64);let Ff=class extends lc{constructor(){super(64,32,8,!1),this.A=fn[0]|0,this.B=fn[1]|0,this.C=fn[2]|0,this.D=fn[3]|0,this.E=fn[4]|0,this.F=fn[5]|0,this.G=fn[6]|0,this.H=fn[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)dn[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=dn[f-15],h=dn[f-2],g=Ct(d,7)^Ct(d,18)^d>>>3,p=Ct(h,17)^Ct(h,19)^h>>>10;dn[f]=p+dn[f-7]+g+dn[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=Ct(a,6)^Ct(a,11)^Ct(a,25),h=l+d+iw(a,c,u)+cw[f]+dn[f]|0,p=(Ct(r,2)^Ct(r,13)^Ct(r,22))+aw(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+p|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){dn.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};class uw extends Ff{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}const _o=lr(()=>new Ff);lr(()=>new uw);const zs=BigInt(2**32-1),ba=BigInt(32);function Wf(e,t=!1){return t?{h:Number(e&zs),l:Number(e>>ba&zs)}:{h:Number(e>>ba&zs)|0,l:Number(e&zs)|0}}function lw(e,t=!1){let n=new Uint32Array(e.length),r=new Uint32Array(e.length);for(let s=0;sBigInt(e>>>0)<>>0),dw=(e,t,n)=>e>>>n,hw=(e,t,n)=>e<<32-n|t>>>n,pw=(e,t,n)=>e>>>n|t<<32-n,gw=(e,t,n)=>e<<32-n|t>>>n,mw=(e,t,n)=>e<<64-n|t>>>n-32,yw=(e,t,n)=>e>>>n-32|t<<64-n,ww=(e,t)=>t,bw=(e,t)=>e,xw=(e,t,n)=>e<>>32-n,vw=(e,t,n)=>t<>>32-n,kw=(e,t,n)=>t<>>64-n,Ew=(e,t,n)=>e<>>64-n;function $w(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const Sw=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),_w=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,Aw=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),Bw=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,Tw=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),Iw=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,Ow={fromBig:Wf,split:lw,toBig:fw,shrSH:dw,shrSL:hw,rotrSH:pw,rotrSL:gw,rotrBH:mw,rotrBL:yw,rotr32H:ww,rotr32L:bw,rotlSH:xw,rotlSL:vw,rotlBH:kw,rotlBL:Ew,add:$w,add3L:Sw,add3H:_w,add4L:Aw,add4H:Bw,add5H:Iw,add5L:Tw};var oe=Ow;const[Cw,Pw]=oe.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),hn=new Uint32Array(80),pn=new Uint32Array(80);let ii=class extends lc{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:h,Gl:g,Hh:p,Hl:w}=this;return[t,n,r,s,o,i,a,c,u,l,f,d,h,g,p,w]}set(t,n,r,s,o,i,a,c,u,l,f,d,h,g,p,w){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=g|0,this.Hh=p|0,this.Hl=w|0}process(t,n){for(let m=0;m<16;m++,n+=4)hn[m]=t.getUint32(n),pn[m]=t.getUint32(n+=4);for(let m=16;m<80;m++){const x=hn[m-15]|0,k=pn[m-15]|0,I=oe.rotrSH(x,k,1)^oe.rotrSH(x,k,8)^oe.shrSH(x,k,7),C=oe.rotrSL(x,k,1)^oe.rotrSL(x,k,8)^oe.shrSL(x,k,7),N=hn[m-2]|0,O=pn[m-2]|0,R=oe.rotrSH(N,O,19)^oe.rotrBH(N,O,61)^oe.shrSH(N,O,6),A=oe.rotrSL(N,O,19)^oe.rotrBL(N,O,61)^oe.shrSL(N,O,6),P=oe.add4L(C,A,pn[m-7],pn[m-16]),E=oe.add4H(P,I,R,hn[m-7],hn[m-16]);hn[m]=E|0,pn[m]=P|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:h,Fl:g,Gh:p,Gl:w,Hh:y,Hl:v}=this;for(let m=0;m<80;m++){const x=oe.rotrSH(f,d,14)^oe.rotrSH(f,d,18)^oe.rotrBH(f,d,41),k=oe.rotrSL(f,d,14)^oe.rotrSL(f,d,18)^oe.rotrBL(f,d,41),I=f&h^~f&p,C=d&g^~d&w,N=oe.add5L(v,k,C,Pw[m],pn[m]),O=oe.add5H(N,y,x,I,Cw[m],hn[m]),R=N|0,A=oe.rotrSH(r,s,28)^oe.rotrBH(r,s,34)^oe.rotrBH(r,s,39),P=oe.rotrSL(r,s,28)^oe.rotrBL(r,s,34)^oe.rotrBL(r,s,39),E=r&o^r&a^o&a,S=s&i^s&c^i&c;y=p|0,v=w|0,p=h|0,w=g|0,h=f|0,g=d|0,{h:f,l:d}=oe.add(u|0,l|0,O|0,R|0),u=a|0,l=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const b=oe.add3L(R,P,S);r=oe.add3H(b,O,A,E),s=b|0}({h:r,l:s}=oe.add(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=oe.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=oe.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=oe.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=oe.add(this.Eh|0,this.El|0,f|0,d|0),{h,l:g}=oe.add(this.Fh|0,this.Fl|0,h|0,g|0),{h:p,l:w}=oe.add(this.Gh|0,this.Gl|0,p|0,w|0),{h:y,l:v}=oe.add(this.Hh|0,this.Hl|0,y|0,v|0),this.set(r,s,o,i,a,c,u,l,f,d,h,g,p,w,y,v)}roundClean(){hn.fill(0),pn.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};class Uw extends ii{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class Nw extends ii{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class Lw extends ii{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}const Hw=lr(()=>new ii);lr(()=>new Uw);lr(()=>new Nw);lr(()=>new Lw);const Rw=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Gf=Uint8Array.from({length:16},(e,t)=>t),jw=Gf.map(e=>(9*e+5)%16);let fc=[Gf],dc=[jw];for(let e=0;e<4;e++)for(let t of[fc,dc])t.push(t[e].map(n=>Rw[n]));const Yf=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),Kw=fc.map((e,t)=>e.map(n=>Yf[t][n])),Dw=dc.map((e,t)=>e.map(n=>Yf[t][n])),Mw=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Zw=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),Fs=(e,t)=>e<>>32-t;function Hu(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const Ws=new Uint32Array(16);let Vw=class extends lc{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let h=0;h<16;h++,n+=4)Ws[h]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,l=u,f=this.h4|0,d=f;for(let h=0;h<5;h++){const g=4-h,p=Mw[h],w=Zw[h],y=fc[h],v=dc[h],m=Kw[h],x=Dw[h];for(let k=0;k<16;k++){const I=Fs(r+Hu(h,o,a,u)+Ws[y[k]]+p,m[k])+f|0;r=f,f=u,u=Fs(a,10)|0,a=o,o=I}for(let k=0;k<16;k++){const I=Fs(s+Hu(g,i,c,l)+Ws[v[k]]+w,x[k])+d|0;s=d,d=l,l=Fs(c,10)|0,c=i,i=I}}this.set(this.h1+a+l|0,this.h2+u+d|0,this.h3+f+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){Ws.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}};const qw=lr(()=>new Vw);let Xf=class extends zf{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Zn.hash(t);const r=uc(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew Xf(e,t).update(n).digest();Jf.create=(e,t)=>new Xf(e,t);function zw(e){const t=Q.bytes(e);return Q.raw(_o(t))}function Ur(e){const t=Q.bytes(e);return Q.raw(_o(_o(t)))}function hc(e){const t=Q.bytes(e);return Q.raw(qw(_o(t)))}function Fw(e,t){const n=Q.bytes(e),r=Q.bytes(t);return Q.raw(Jf(Hw,n,r))}function Ww(e){const t=Q.str(e).digest;return Q.join([t,t])}function Gw(e=32){return pc(Vf(e))}function pc(e){return tt.mod(e).buff}function Qf(e,t=!1){const n=tt.mod(e).point;return t?n.x:n.buff}function ed(e,t){const n=ur.from_x(t),r=tt.mod(e);return n.mul(r).buff}function Yw(e,t,n="ecdh/code"){const r=Ww(n),s=pc(e),o=Qf(s),i=Q.bytes(t),a=ed(s,i),c=[o.hex,i.hex];return c.sort(),Fw(a,Q.join([r,...c]))}function Xw(e){const t=Q.bytes(e);switch(!0){case t.length===32:return!0;case(t.length===33&&t[0]===2):return!0;case(t.length===33&&t[0]===3):return!1;default:throw new TypeError(`Invalid public key: ${t.hex}`)}}function Jw(e){const t=Q.bytes(e);switch(t.length){case 32:return t;case 33:return t.slice(1,33);default:throw new Error(`Invalid key length: ${t.length}`)}}var Qw=Object.freeze({__proto__:null,genSecretKey:Gw,getPublicKey:Qf,getSecretKey:pc,getSharedCode:Yw,getSharedKey:ed,is_even_pub:Xw,xonly_pub:Jw});Q.random(32);const td={secp:Jt},xa={...Qw,...Vy};function ai(e){const t=B.bytes(e);return Dt(t,33),hc(t)}function nd(e){const t=Ue.fmt.toBytes(e,!1);return hc(t)}function rd(e){const t=Ue.fmt.toBytes(e,!1);return zw(t)}function sd(e,t="main"){const n=t==="main"?["1"]:["m","n"];for(const r of n)if(e.startsWith(r))return!0;return!1}function od(e,t="main"){const n=B.bytes(e),r=t==="main"?B.num(0):B.num(111);return Dt(e,20),n.prepend(r).tob58chk()}function eb(e,t="main"){if(!sd(e,t))throw new TypeError("Invalid p2pkh address!");return B.b58chk(e).slice(1)}function tb(e){const t=B.bytes(e);return Dt(t,20),["OP_DUP","OP_HASH160",t.hex,"OP_EQUALVERIFY","OP_CHECKSIG"]}function nb(e,t){const n=ai(e);return od(n,t)}const id={check:sd,encode:od,decode:eb,hash:ai,scriptPubKey:tb,fromPubKey:nb};function ad(e,t="main"){const n=t==="main"?["3"]:["2"];for(const r of n)if(e.startsWith(r))return!0;return!1}function cd(e,t="main"){const n=t==="main"?B.num(5):B.num(196),r=B.bytes(e);return Dt(r,20),r.prepend(n).tob58chk()}function rb(e,t="main"){if(!ad(e,t))throw new TypeError(`Invalid p2sh address for network ${t}:`+e);return B.b58chk(e).slice(1)}function sb(e){return["OP_HASH160",B.bytes(e).hex,"OP_EQUAL"]}function ob(e,t){const n=nd(e);return cd(n,t)}const ud={check:ad,encode:cd,decode:rb,hash:nd,scriptPubKey:sb,fromScript:ob},gc={main:"bc",testnet:"tb",signet:"tb",regtest:"bcrt"},ib=["bc1q","tb1q","bcrt1q"];function ld(e){for(const t of ib)if(e.startsWith(t))return!0;return!1}function fd(e,t="main"){const n=gc[t],r=B.bytes(e);return Dt(r,20),r.toBech32(n,0)}function ab(e){if(!ld(e))throw new TypeError("Invalid segwit address!");return B.bech32(e)}function cb(e){const t=B.bytes(e);return Dt(t,20),["OP_0",t.hex]}function ub(e,t){const n=ai(e);return fd(n,t)}const dd={check:ld,encode:fd,decode:ab,hash:ai,scriptPubKey:cb,fromPubKey:ub},lb=["bc1q","tb1q","bcrt1q"];function hd(e){for(const t of lb)if(e.startsWith(t))return!0;return!1}function pd(e,t="main"){const n=gc[t],r=B.bytes(e);return Dt(r,32),r.toBech32(n,0)}function fb(e){if(!hd(e))throw new TypeError("Invalid segwit address!");return B.bech32(e)}function db(e){const t=B.bytes(e);return Dt(t,32),["OP_0",t.hex]}function hb(e,t){const n=rd(e);return pd(n,t)}const gd={check:hd,encode:pd,decode:fb,hash:rd,scriptPubKey:db,fromScript:hb};function Yn(e){const t=B.bytes(e);return t.length>32?t.slice(1,33):t}const pb=["bc1p","tb1p","bcrt1p"];function md(e){for(const t of pb)if(e.startsWith(t))return!0;return!1}function yd(e,t="main"){const n=gc[t],r=B.bytes(e);return Dt(r,32),r.toBech32(n,1)}function gb(e){if(!md(e))throw new TypeError("Invalid taproot address!");return B.bech32(e)}function mb(e){const t=B.bytes(e);return Dt(t,32),["OP_1",t.hex]}function yb(e,t){const n=Yn(e);return yd(n,t)}const wd={check:md,encode:yd,decode:gb,scriptPubKey:mb,fromPubKey:yb},wb={version:2,vin:[],vout:[],locktime:0},bb={scriptSig:[],sequence:4294967293,witness:[]},xb={value:0n,scriptPubKey:[]};function mc(e){const t={...wb,...e};return t.vin=t.vin.map(n=>({...bb,...n})),t.vout=t.vout.map(n=>({...xb,...n})),t}function Nr(e,t){const{version:n,vin:r,vout:s,locktime:o}=mc(e),i=t!==!0&&vb(r),a=[yc(n)];i&&a.push(B.hex("0001")),a.push(kb(r)),a.push(Eb(s));for(const c of r)i&&a.push(Sb(c.witness));return a.push(wc(o)),B.join(a)}function vb(e){for(const t of e){const{witness:n}=t;if(typeof n=="string"||n instanceof Uint8Array||Array.isArray(n)&&n.length>0)return!0}return!1}function yc(e){return B.num(e,4).reverse()}function Cs(e){return B.hex(e,32).reverse()}function Ps(e){return B.num(e,4).reverse()}function Us(e){if(typeof e=="string")return B.hex(e,4).reverse();if(typeof e=="number")return B.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function kb(e){const t=[B.varInt(e.length,"le")];for(const n of e){const{txid:r,vout:s,scriptSig:o,sequence:i}=n;t.push(Cs(r)),t.push(Ps(s)),t.push(cr(o,!0)),t.push(Us(i))}return B.join(t)}function _n(e){if(typeof e=="number"){if(e%1!==0)throw new Error("Value must be an integer:"+String(e));return B.num(e,8).reverse()}return B.big(e,8).reverse()}function Eb(e){const t=[B.varInt(e.length,"le")];for(const n of e)t.push($b(n));return B.join(t)}function $b(e){const{value:t,scriptPubKey:n}=e,r=[];return r.push(_n(t)),r.push(cr(n,!0)),B.join(r)}function Sb(e=[]){const t=[];if(Array.isArray(e)){const n=B.varInt(e.length);t.push(n);for(const r of e)t.push(_b(r));return B.join(t)}else return B.bytes(e)}function _b(e){return Ab(e)?new B(0):cr(e,!0)}function Ab(e){if(Array.isArray(e))return e.length===0;if(typeof e=="string"&&e==="")return!0;const t=B.bytes(e);return t.length===1&&t[0]===0}function wc(e){if(typeof e=="string")return B.hex(e,4);if(typeof e=="number")return B.num(e,4).reverse();throw new Error("Unrecognized format: "+String(e))}function bc(e){typeof e=="string"&&(e=B.hex(e).raw);const t=new zr(e),n=Bb(t),r=Tb(t),s=Ib(t),o=Cb(t);if(r)for(const a of s)a.witness=Ub(t);const i=Nb(t);return{version:n,vin:s,vout:o,locktime:i}}function Bb(e){return e.read(4).reverse().toNum()}function Tb(e){const[t,n]=[...e.peek(2)];if(t===0){if(e.read(2),n===1)return!0;throw new Error(`Invalid witness flag: ${n}`)}return!1}function Ib(e){const t=[],n=e.readSize("le");for(let r=0;r0?e.read(n).hex:null}function xd(e,t){const n=bd(e);return n!==null?n:[]}function Nb(e){return e.read(4).reverse().toNum()}function Lb(e){if(sf(e))return bc(e);if(typeof e=="object"&&!(e instanceof Uint8Array))return Nr(e),mc(e);throw new Error("Invalid format: "+typeof e)}function Hb(e){if(sf(e))return bc(e),B.bytes(e);if(typeof e=="object")return Nr(e);throw new Error("Invalid format: "+typeof e)}const xc={toBytes:Hb,toJson:Lb},Rb=[["p2pkh",/^76a914(?\w{40})88ac$/],["p2sh",/^a914(?\w{40})87$/],["p2w-pkh",/^0014(?\w{40})$/],["p2w-sh",/^0020(?\w{64})$/],["p2tr",/^5120(?\w{64})$/]],jb=[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];function Kb(e){let t=e.at(-1);return tn(t)&&(t=B.hex(t)),e.length>1&&t instanceof Uint8Array&&t[0]===80?(e.pop(),B.raw(t)):null}function Db(e){let t=e.at(-1);return tn(t)&&(t=B.hex(t)),e.length>1&&t instanceof Uint8Array&&t.length>32&&jb.includes(t[0]&254)?(e.pop(),B.raw(t)):null}function Mb(e){if(e.length>1){const t=e.at(-1);try{const n=Ue.fmt.toBytes(t);return e.pop(),n}catch{return null}}return null}function Zb(e){const t=[];for(const n of e)if(tn(n)||n instanceof Uint8Array||typeof n=="number")t.push(B.bytes(n));else throw new Error("unrecognized value: "+String(n));return t}function Vb(e=[]){const t=[...e],n=Kb(t),r=Db(t),s=Mb(t),o=Zb(t);return{annex:n,cblock:r,script:s,params:o}}function qb(e){const t=Ue.fmt.toBytes(e,!1).hex;for(const[n,r]of Rb){const s=n,{groups:o}=r.exec(t)??{},{hash:i}=o??{};if(tn(i))return{type:s,data:B.hex(i)}}return{type:"raw",data:B.hex(t)}}function zb(e){const t=xc.toJson(e),n=Nr(t,!0);return Ur(n).reverse().hex}function Fb(e){const t=xc.toJson(e),n=Nr(t,!0).length,r=Nr(t,!1).length,s=n*3+r,o=s%4>0?1:0,i=Math.floor(s/4)+o;return{size:r,bsize:n,vsize:i,weight:s}}const ee={create:mc,encode:Nr,decode:bc,fmt:xc,util:{getTxSize:Fb,getTxid:zb,readScriptPubKey:qb,readWitness:Vb}},Wb=[["1","p2pkh","main",20,"base58"],["3","p2sh","main",20,"base58"],["m","p2pkh","testnet",20,"base58"],["n","p2pkh","testnet",20,"base58"],["2","p2sh","testnet",20,"base58"],["bc1q","p2w-pkh","main",20,"bech32"],["tb1q","p2w-pkh","testnet",20,"bech32"],["bcrt1q","p2w-pkh","regtest",20,"bech32"],["bc1q","p2w-sh","main",32,"bech32"],["tb1q","p2w-sh","testnet",32,"bech32"],["bcrt1q","p2w-sh","regtest",32,"bech32"],["bc1p","p2tr","main",32,"bech32m"],["tb1p","p2tr","testnet",32,"bech32m"],["bcrt1p","p2tr","regtest",32,"bech32m"]];function Gb(e,t){switch(t){case"base58":return B.b58chk(e).slice(1);case"bech32":return B.bech32(e);case"bech32m":return B.bech32(e);default:throw new Error("Invalid address format: "+t)}}function Yb(e){for(const t of Wb){const[n,r,s,o,i]=t;if(e.startsWith(n)&&Gb(e,i).length===o)return t}throw new Error("Invalid address: "+e)}function vd(e){switch(e){case"p2pkh":return id;case"p2sh":return ud;case"p2w-pkh":return dd;case"p2w-sh":return gd;case"p2tr":return wd;default:throw new Error("Invalid address type: "+e)}}function kd(e){const[t,n,r]=Yb(e),s=vd(n),o=s.decode(e,r),i=s.scriptPubKey(o);return{prefix:t,type:n,network:r,data:o,script:i}}function Xb(e,t){const{type:n,data:r}=ee.util.readScriptPubKey(e);return vd(n).encode(r,t)}function Jb(e){const{script:t}=kd(e);return Ue.fmt.toAsm(t,!1)}const ps={p2pkh:id,p2sh:ud,p2wpkh:dd,p2wsh:gd,p2tr:wd,decode:kd,fromScriptPubKey:Xb,toScriptPubKey:Jb},Qb=[1,2,3];function vc(e,t,n={}){const{sigflag:r=1}=n,s=(r&128)===128,o=r%128;if(!Qb.includes(o))throw new Error("Invalid hash type: "+String(r));const i=ee.fmt.toJson(e),{version:a,vin:c,vout:u,locktime:l}=i,{txid:f,vout:d,prevout:h,sequence:g}=c[t],{value:p}=h??{};if(p===void 0)throw new Error("Prevout value is empty!");let w=n.script;if(w===void 0&&n.pubkey!==void 0&&(w=`76a914${hc(n.pubkey).hex}88ac`),w===void 0)throw new Error("No pubkey / script has been set!");if(Ue.fmt.toAsm(w).includes("OP_CODESEPARATOR"))throw new Error("This library does not currently support the use of OP_CODESEPARATOR in segwit scripts.");const y=[yc(a),e1(c,s),t1(c,o,s),Cs(f),Ps(d),Ue.encode(w,!0),_n(p),Us(g),n1(u,t,o),wc(l),B.num(r,4).reverse()];return Ur(B.join(y))}function e1(e,t){if(t===!0)return B.num(0,32);const n=[];for(const{txid:r,vout:s}of e)n.push(Cs(r)),n.push(Ps(s));return Ur(B.join(n))}function t1(e,t,n){if(n||t!==1)return B.num(0,32);const r=[];for(const{sequence:s}of e)r.push(Us(s));return Ur(B.join(r))}function n1(e,t,n){const r=[];if(n===1){for(const{value:s,scriptPubKey:o}of e)r.push(_n(s)),r.push(Ue.encode(o,!0));return Ur(B.join(r))}if(n===3&&t1&&c[1].length===33)u=B.bytes(c[1]);else return Ge("No pubkey provided!",s);const l=Ue.fmt.toParam(c[0]),f=l.slice(0,-1),d=l.slice(-1)[0],h=vc(r,t,{...n,sigflag:d});return td.secp.verify(f,h,u)?!0:Ge("Invalid signature!",s)}const o1={hash:vc,sign:r1,verify:s1},i1=[0,1,2,3,129,130,131];function kc(e,t,n={}){const{extension:r,sigflag:s=0,extflag:o=0,key_version:i=0,separator_pos:a=4294967295}=n,c=ee.fmt.toJson(e),{version:u,vin:l,vout:f,locktime:d}=c;if(t>=l.length)throw new Error("Index out of bounds: "+String(t));if(!i1.includes(s))throw new Error("Invalid hash type: "+String(s));if(o<0||o>127)throw new Error("Extention flag out of range: "+String(o));const{txid:h,vout:g,sequence:p,witness:w=[]}=l[t],y=(s&128)===128,v=h1(w),m=v!==void 0?1:0,k=(o+(r!==void 0?1:0))*2+m,I=B.str("TapSighash").digest,C=[I,I,B.num(0,1),B.num(s,1),yc(u),wc(d)];if(!y){const N=l.map(O=>Ru(O));C.push(a1(l),u1(N),l1(N),c1(l))}if(((s&3)<2||(s&3)>3)&&C.push(f1(f)),C.push(B.num(k,1)),y){const{value:N,scriptPubKey:O}=Ru(l[t]);C.push(Cs(h),Ps(g),_n(N),Ue.encode(O,!0),Us(p))}else C.push(B.num(t,4).reverse());return v!==void 0&&C.push(v),(s&3)===3&&C.push(d1(f[t])),r!==void 0&&C.push(B.bytes(r),B.num(i),B.num(a,4,"le")),B.join(C).digest}function a1(e){const t=[];for(const{txid:n,vout:r}of e)t.push(Cs(n)),t.push(Ps(r));return B.join(t).digest}function c1(e){const t=[];for(const{sequence:n}of e)t.push(Us(n));return B.join(t).digest}function u1(e){const t=[];for(const{value:n}of e)t.push(_n(n));return B.join(t).digest}function l1(e){const t=[];for(const{scriptPubKey:n}of e)t.push(cr(n,!0));return B.join(t).digest}function f1(e){const t=[];for(const{value:n,scriptPubKey:r}of e)t.push(_n(n)),t.push(Ue.encode(r,!0));return B.join(t).digest}function d1(e){return B.join([_n(e.value),Ue.encode(e.scriptPubKey,!0)]).digest}function h1(e){if(e===void 0||e.length<2)return;let t=e.at(-1);if(typeof t=="string"&&(t=B.hex(t)),t instanceof Uint8Array&&t[0]===80)return B.raw(t).prefixSize("be").digest}function Ru(e){if(e.prevout===void 0)throw new Error("Prevout data missing for input: "+String(e.txid));return e.prevout}const p1=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,g1=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n;function m1(e,t,n,r={}){const{sigflag:s=0}=r,o=kc(t,n,r),i=y1(e,o);return s===0?B.raw(i):B.join([i,s])}function y1(e,t,n=B.random(32)){const r=B.bytes(t),s=new tt(e),o=s.point,i=o.hasEvenY?s.big:s.negated.big,a=fo("BIP0340/aux",B.bytes(n)),c=i^a.big,u=fo("BIP0340/nonce",c,o.x.raw,r),l=new tt(u),f=l.point,d=f.hasEvenY?l.big:l.negated.big,h=new tt(fo("BIP0340/challenge",f.x.raw,o.x.raw,r)),g=new tt(d+h.big*i);return B.join([f.x.raw,g.raw])}function w1(e,t,n,r=!1){const s=ur.from_x(Yn(n)),o=B.bytes(t),i=B.bytes(e).stream;i.size<64&&Ge("Signature length is too small: "+String(i.size),r);const a=i.read(32);a.big>p1&&Ge("Signature r value greater than field size!",r);const c=i.read(32);c.big>g1&&Ge("Signature s value greater than curve order!",r);const u=new tt(fo("BIP0340/challenge",a.raw,s.x.raw,o)),l=new tt(c).point,f=s.mul(u.big),d=l.sub(f);return d.hasOddY&&Ge("Signature R value has odd Y coordinate!",r),d.x.big===0n&&Ge("Signature R value is infinite!",r),d.x.big===a.big}const b1=192;function ci(e){const t=B.str(e).digest;return B.join([t,t])}function Ec(e,t=b1){return B.join([ci("TapLeaf"),k1(t),B.bytes(e)]).digest.hex}function x1(e,t){return Ec(Ue.fmt.toBytes(e),t)}function $c(e,t){return t0){const[h,g,p]=Ao(r,i);c=p,a=Sr(e,h,n)}else i!==void 0?a=Sr(e,i,n):a=Sr(e,void 0,n);const u=n?xa.getPublicKey(a)[0]:a[0],f=[B.num(s+Bd(u)),o];c.length>0&&c.forEach(h=>f.push(B.hex(h)));const d=B.join(f);if(i!==void 0&&!Sc(a,i,d,t))throw new Error("Path checking failed! Unable to generate path.");return[Yn(a).hex,d.hex]}function Sc(e,t,n,r={}){const{isPrivate:s=!1,throws:o=!1}=r,{parity:i,paths:a,intkey:c}=Ad(n),u=s?xa.getPublicKey(e,!0):Yn(e),l=B.join([i,u]);if(l.length!==33)return Ge("Invalid tapkey: "+l.hex,o);let f=B.bytes(t).hex;for(const h of a)f=$c(f,h);const d=Sr(c,f);return B.raw(d).hex===B.raw(l).hex}function Ad(e){const t=new zr(B.bytes(e)),n=t.read(1).num,r=t.read(32),[s,o]=n%2===0?[n,2]:[n-1,3],i=[];for(;t.size>=32;)i.push(t.read(32).hex);if(t.size!==0)throw new Error("Non-empty buffer on control block: "+String(t));return{intkey:r,paths:i,parity:o,version:s}}function Bd(e=2){if(e===0||e===1)return e;if(e===2||e==="02")return 0;if(e===3||e==="03")return 1;throw new Error("Invalid parity bit: "+String(e))}function I1(e,t,n={}){const r=ee.fmt.toJson(e),{throws:s=!1}=n,{prevout:o,witness:i=[]}=r.vin[t],a=ee.util.readWitness(i),{cblock:c,script:u,params:l}=a;let f;if(l.length<1)return Ge("Invalid witness data: "+String(i),s);const{scriptPubKey:d}=o??{};if(d===void 0)return Ge("Prevout scriptPubKey is empty!",s);const{type:h,data:g}=ee.util.readScriptPubKey(d);if(h!=="p2tr")return Ge("Prevout script is not a valid taproot output:"+g.hex,s);if(g.length!==32)return Ge("Invalid tapkey length: "+String(g.length),s);if(c!==null&&u!==null){const m=c[0]&254,x=Ec(u,m);if(n.extension=x,!Sc(g,x,c,{throws:s}))return Ge("cblock verification failed!",s)}n.pubkey!==void 0?f=B.bytes(n.pubkey):l.length>1&&l[1].length===32?f=B.bytes(l[1]):f=B.bytes(g);const p=Ue.fmt.toParam(l[0]),w=new zr(p),y=w.read(64).raw;if(w.size===1&&(n.sigflag=w.read(1).num,n.sigflag===0))return Ge("0x00 is not a valid appended sigflag!",s);const v=kc(r,t,n);return w1(y,v,f,s)?!0:Ge("Invalid signature!",s)}const O1={hash:kc,sign:m1,verify:I1},Xn={segwit:o1,taproot:O1},C1={getTag:ci,getLeaf:Ec,getBranch:$c,getRoot:v1},P1={readCtrlBlock:Ad,readParityBit:Bd},U1={getPubKey:E1,getSecKey:$1,getTweak:Ed,tweakSecKey:$d,tweakPubKey:Sd},ui={getPubKey:T1,getSecKey:B1,encodeScript:x1,checkPath:Sc,tree:C1,tweak:U1,util:P1,SCRIPT_PUBKEY:_1};var me;(function(e){e.assertEqual=s=>s;function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{const o={};for(const i of s)o[i]=i;return o},e.getValidEnumValues=s=>{const o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(const a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{const o=[];for(const i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(const i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(me||(me={}));var va;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(va||(va={}));const q=me.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),vn=e=>{switch(typeof e){case"undefined":return q.undefined;case"string":return q.string;case"number":return isNaN(e)?q.nan:q.number;case"boolean":return q.boolean;case"function":return q.function;case"bigint":return q.bigint;case"symbol":return q.symbol;case"object":return Array.isArray(e)?q.array:e===null?q.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?q.promise:typeof Map<"u"&&e instanceof Map?q.map:typeof Set<"u"&&e instanceof Set?q.set:typeof Date<"u"&&e instanceof Date?q.date:q.object;default:return q.unknown}},D=me.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"]),N1=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:");class $t extends Error{constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}get errors(){return this.issues}format(t){const n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(const i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,c=0;for(;cn.message){const n={},r=[];for(const s of this.issues)s.path.length>0?(n[s.path[0]]=n[s.path[0]]||[],n[s.path[0]].push(t(s))):r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}}$t.create=e=>new $t(e);const gs=(e,t)=>{let n;switch(e.code){case D.invalid_type:e.received===q.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case D.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,me.jsonStringifyReplacer)}`;break;case D.unrecognized_keys:n=`Unrecognized key(s) in object: ${me.joinValues(e.keys,", ")}`;break;case D.invalid_union:n="Invalid input";break;case D.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${me.joinValues(e.options)}`;break;case D.invalid_enum_value:n=`Invalid enum value. Expected ${me.joinValues(e.options)}, received '${e.received}'`;break;case D.invalid_arguments:n="Invalid function arguments";break;case D.invalid_return_type:n="Invalid function return type";break;case D.invalid_date:n="Invalid date";break;case D.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(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}"`:me.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case D.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case D.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case D.custom:n="Invalid input";break;case D.invalid_intersection_types:n="Intersection results could not be merged";break;case D.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case D.not_finite:n="Number must be finite";break;default:n=t.defaultError,me.assertNever(e)}return{message:n}};let Td=gs;function L1(e){Td=e}function Bo(){return Td}const To=e=>{const{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};let a="";const c=r.filter(u=>!!u).slice().reverse();for(const u of c)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:s.message||a}},H1=[];function z(e,t){const n=To({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,Bo(),gs].filter(r=>!!r)});e.common.issues.push(n)}class Je{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){const r=[];for(const s of n){if(s.status==="aborted")return te;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){const r=[];for(const s of n)r.push({key:await s.key,value:await s.value});return Je.mergeObjectSync(t,r)}static mergeObjectSync(t,n){const r={};for(const s of n){const{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return te;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}}const te=Object.freeze({status:"aborted"}),Id=e=>({status:"dirty",value:e}),st=e=>({status:"valid",value:e}),ka=e=>e.status==="aborted",Ea=e=>e.status==="dirty",Io=e=>e.status==="valid",Oo=e=>typeof Promise<"u"&&e instanceof Promise;var Y;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(Y||(Y={}));class Rt{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const ju=(e,t)=>{if(Io(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 n=new $t(e.common.issues);return this._error=n,this._error}}};function se(e){if(!e)return{};const{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>i.code!=="invalid_type"?{message:a.defaultError}:typeof a.data>"u"?{message:r??a.defaultError}:{message:n??a.defaultError},description:s}}class ae{constructor(t){this.spa=this.safeParseAsync,this._def=t,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.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this)}get description(){return this._def.description}_getType(t){return vn(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:vn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Je,ctx:{common:t.parent.common,data:t.data,parsedType:vn(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const n=this._parse(t);if(Oo(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){const n=this._parse(t);return Promise.resolve(n)}parse(t,n){const r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){var r;const s={common:{issues:[],async:(r=n==null?void 0:n.async)!==null&&r!==void 0?r:!1,contextualErrorMap:n==null?void 0:n.errorMap},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:vn(t)},o=this._parseSync({data:t,path:s.path,parent:s});return ju(s,o)}async parseAsync(t,n){const r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){const r={common:{issues:[],contextualErrorMap:n==null?void 0:n.errorMap,async:!0},path:(n==null?void 0:n.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:vn(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(Oo(s)?s:Promise.resolve(s));return ju(r,o)}refine(t,n){const r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{const i=t(s),a=()=>o.addIssue({code:D.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(c=>c?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new At({schema:this,typeName:J.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}optional(){return Yt.create(this,this._def)}nullable(){return er.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return St.create(this,this._def)}promise(){return Hr.create(this,this._def)}or(t){return bs.create([this,t],this._def)}and(t){return xs.create(this,t,this._def)}transform(t){return new At({...se(this._def),schema:this,typeName:J.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const n=typeof t=="function"?t:()=>t;return new Ss({...se(this._def),innerType:this,defaultValue:n,typeName:J.ZodDefault})}brand(){return new Cd({typeName:J.ZodBranded,type:this,...se(this._def)})}catch(t){const n=typeof t=="function"?t:()=>t;return new No({...se(this._def),innerType:this,catchValue:n,typeName:J.ZodCatch})}describe(t){const n=this.constructor;return new n({...this._def,description:t})}pipe(t){return Ns.create(this,t)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const R1=/^c[^\s-]{8,}$/i,j1=/^[a-z][a-z0-9]*$/,K1=/[0-9A-HJKMNP-TV-Z]{26}/,D1=/^([a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[a-f0-9]{4}-[a-f0-9]{12}|00000000-0000-0000-0000-000000000000)$/i,M1=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\])|(\[IPv6:(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))\])|([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])*(\.[A-Za-z]{2,})+))$/,Z1=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u"),V1=/^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/,q1=/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,z1=e=>e.precision?e.offset?new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}(([+-]\\d{2}(:?\\d{2})?)|Z)$`):new RegExp(`^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{${e.precision}}Z$`):e.precision===0?e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$"):e.offset?new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(([+-]\\d{2}(:?\\d{2})?)|Z)$"):new RegExp("^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$");function F1(e,t){return!!((t==="v4"||!t)&&V1.test(e)||(t==="v6"||!t)&&q1.test(e))}class kt extends ae{constructor(){super(...arguments),this._regex=(t,n,r)=>this.refinement(s=>t.test(s),{validation:n,code:D.invalid_string,...Y.errToObj(r)}),this.nonempty=t=>this.min(1,Y.errToObj(t)),this.trim=()=>new kt({...this._def,checks:[...this._def.checks,{kind:"trim"}]}),this.toLowerCase=()=>new kt({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]}),this.toUpperCase=()=>new kt({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==q.string){const o=this._getOrReturnCtx(t);return z(o,{code:D.invalid_type,expected:q.string,received:o.parsedType}),te}const r=new Je;let s;for(const o of this._def.checks)if(o.kind==="min")t.data.lengtho.value&&(s=this._getOrReturnCtx(t,s),z(s,{code:D.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){const i=t.data.length>o.value,a=t.data.length"u"?null:t==null?void 0:t.precision,offset:(n=t==null?void 0:t.offset)!==null&&n!==void 0?n:!1,...Y.errToObj(t==null?void 0:t.message)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...Y.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n==null?void 0:n.position,...Y.errToObj(n==null?void 0:n.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...Y.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...Y.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...Y.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...Y.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...Y.errToObj(n)})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get minLength(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new kt({checks:[],typeName:J.ZodString,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...se(e)})};function W1(e,t){const n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=parseInt(e.toFixed(s).replace(".","")),i=parseInt(t.toFixed(s).replace(".",""));return o%i/Math.pow(10,s)}class An extends ae{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==q.number){const o=this._getOrReturnCtx(t);return z(o,{code:D.invalid_type,expected:q.number,received:o.parsedType}),te}let r;const s=new Je;for(const o of this._def.checks)o.kind==="int"?me.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),z(r,{code:D.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),z(r,{code:D.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?W1(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),z(r,{code:D.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),z(r,{code:D.not_finite,message:o.message}),s.dirty()):me.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,Y.toString(n))}gt(t,n){return this.setLimit("min",t,!1,Y.toString(n))}lte(t,n){return this.setLimit("max",t,!0,Y.toString(n))}lt(t,n){return this.setLimit("max",t,!1,Y.toString(n))}setLimit(t,n,r,s){return new An({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:Y.toString(s)}]})}_addCheck(t){return new An({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:Y.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Y.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Y.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Y.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Y.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:Y.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:Y.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Y.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Y.toString(t)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuet.kind==="int"||t.kind==="multipleOf"&&me.isInteger(t.value))}get isFinite(){let t=null,n=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.valuenew An({checks:[],typeName:J.ZodNumber,coerce:(e==null?void 0:e.coerce)||!1,...se(e)});class Bn extends ae{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce&&(t.data=BigInt(t.data)),this._getType(t)!==q.bigint){const o=this._getOrReturnCtx(t);return z(o,{code:D.invalid_type,expected:q.bigint,received:o.parsedType}),te}let r;const s=new Je;for(const o of this._def.checks)o.kind==="min"?(o.inclusive?t.datao.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),z(r,{code:D.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),z(r,{code:D.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):me.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,Y.toString(n))}gt(t,n){return this.setLimit("min",t,!1,Y.toString(n))}lte(t,n){return this.setLimit("max",t,!0,Y.toString(n))}lt(t,n){return this.setLimit("max",t,!1,Y.toString(n))}setLimit(t,n,r,s){return new Bn({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:Y.toString(s)}]})}_addCheck(t){return new Bn({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Y.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Y.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Y.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Y.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:Y.toString(n)})}get minValue(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.value{var t;return new Bn({checks:[],typeName:J.ZodBigInt,coerce:(t=e==null?void 0:e.coerce)!==null&&t!==void 0?t:!1,...se(e)})};class ms extends ae{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==q.boolean){const r=this._getOrReturnCtx(t);return z(r,{code:D.invalid_type,expected:q.boolean,received:r.parsedType}),te}return st(t.data)}}ms.create=e=>new ms({typeName:J.ZodBoolean,coerce:(e==null?void 0:e.coerce)||!1,...se(e)});class Jn extends ae{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==q.date){const o=this._getOrReturnCtx(t);return z(o,{code:D.invalid_type,expected:q.date,received:o.parsedType}),te}if(isNaN(t.data.getTime())){const o=this._getOrReturnCtx(t);return z(o,{code:D.invalid_date}),te}const r=new Je;let s;for(const o of this._def.checks)o.kind==="min"?t.data.getTime()o.value&&(s=this._getOrReturnCtx(t,s),z(s,{code:D.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):me.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new Jn({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:Y.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:Y.toString(n)})}get minDate(){let t=null;for(const n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const n of this._def.checks)n.kind==="max"&&(t===null||n.valuenew Jn({checks:[],coerce:(e==null?void 0:e.coerce)||!1,typeName:J.ZodDate,...se(e)});class Co extends ae{_parse(t){if(this._getType(t)!==q.symbol){const r=this._getOrReturnCtx(t);return z(r,{code:D.invalid_type,expected:q.symbol,received:r.parsedType}),te}return st(t.data)}}Co.create=e=>new Co({typeName:J.ZodSymbol,...se(e)});class ys extends ae{_parse(t){if(this._getType(t)!==q.undefined){const r=this._getOrReturnCtx(t);return z(r,{code:D.invalid_type,expected:q.undefined,received:r.parsedType}),te}return st(t.data)}}ys.create=e=>new ys({typeName:J.ZodUndefined,...se(e)});class ws extends ae{_parse(t){if(this._getType(t)!==q.null){const r=this._getOrReturnCtx(t);return z(r,{code:D.invalid_type,expected:q.null,received:r.parsedType}),te}return st(t.data)}}ws.create=e=>new ws({typeName:J.ZodNull,...se(e)});class Lr extends ae{constructor(){super(...arguments),this._any=!0}_parse(t){return st(t.data)}}Lr.create=e=>new Lr({typeName:J.ZodAny,...se(e)});class Wn extends ae{constructor(){super(...arguments),this._unknown=!0}_parse(t){return st(t.data)}}Wn.create=e=>new Wn({typeName:J.ZodUnknown,...se(e)});class Qt extends ae{_parse(t){const n=this._getOrReturnCtx(t);return z(n,{code:D.invalid_type,expected:q.never,received:n.parsedType}),te}}Qt.create=e=>new Qt({typeName:J.ZodNever,...se(e)});class Po extends ae{_parse(t){if(this._getType(t)!==q.undefined){const r=this._getOrReturnCtx(t);return z(r,{code:D.invalid_type,expected:q.void,received:r.parsedType}),te}return st(t.data)}}Po.create=e=>new Po({typeName:J.ZodVoid,...se(e)});class St extends ae{_parse(t){const{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==q.array)return z(n,{code:D.invalid_type,expected:q.array,received:n.parsedType}),te;if(s.exactLength!==null){const i=n.data.length>s.exactLength.value,a=n.data.lengths.maxLength.value&&(z(n,{code:D.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new Rt(n,i,n.path,a)))).then(i=>Je.mergeArray(r,i));const o=[...n.data].map((i,a)=>s.type._parseSync(new Rt(n,i,n.path,a)));return Je.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new St({...this._def,minLength:{value:t,message:Y.toString(n)}})}max(t,n){return new St({...this._def,maxLength:{value:t,message:Y.toString(n)}})}length(t,n){return new St({...this._def,exactLength:{value:t,message:Y.toString(n)}})}nonempty(t){return this.min(1,t)}}St.create=(e,t)=>new St({type:e,minLength:null,maxLength:null,exactLength:null,typeName:J.ZodArray,...se(t)});function kr(e){if(e instanceof Oe){const t={};for(const n in e.shape){const r=e.shape[n];t[n]=Yt.create(kr(r))}return new Oe({...e._def,shape:()=>t})}else return e instanceof St?new St({...e._def,type:kr(e.element)}):e instanceof Yt?Yt.create(kr(e.unwrap())):e instanceof er?er.create(kr(e.unwrap())):e instanceof jt?jt.create(e.items.map(t=>kr(t))):e}class Oe extends ae{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),n=me.objectKeys(t);return this._cached={shape:t,keys:n}}_parse(t){if(this._getType(t)!==q.object){const u=this._getOrReturnCtx(t);return z(u,{code:D.invalid_type,expected:q.object,received:u.parsedType}),te}const{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Qt&&this._def.unknownKeys==="strip"))for(const u in s.data)i.includes(u)||a.push(u);const c=[];for(const u of i){const l=o[u],f=s.data[u];c.push({key:{status:"valid",value:u},value:l._parse(new Rt(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Qt){const u=this._def.unknownKeys;if(u==="passthrough")for(const l of a)c.push({key:{status:"valid",value:l},value:{status:"valid",value:s.data[l]}});else if(u==="strict")a.length>0&&(z(s,{code:D.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const u=this._def.catchall;for(const l of a){const f=s.data[l];c.push({key:{status:"valid",value:l},value:u._parse(new Rt(s,f,s.path,l)),alwaysSet:l in s.data})}}return s.common.async?Promise.resolve().then(async()=>{const u=[];for(const l of c){const f=await l.key;u.push({key:f,value:await l.value,alwaysSet:l.alwaysSet})}return u}).then(u=>Je.mergeObjectSync(r,u)):Je.mergeObjectSync(r,c)}get shape(){return this._def.shape()}strict(t){return new Oe({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{var s,o,i,a;const c=(i=(o=(s=this._def).errorMap)===null||o===void 0?void 0:o.call(s,n,r).message)!==null&&i!==void 0?i:r.defaultError;return n.code==="unrecognized_keys"?{message:(a=Y.errToObj(t).message)!==null&&a!==void 0?a:c}:{message:c}}}:{}})}strip(){return new Oe({...this._def,unknownKeys:"strip"})}passthrough(){return new Oe({...this._def,unknownKeys:"passthrough"})}extend(t){return new Oe({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Oe({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:J.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new Oe({...this._def,catchall:t})}pick(t){const n={};return me.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(n[r]=this.shape[r])}),new Oe({...this._def,shape:()=>n})}omit(t){const n={};return me.objectKeys(this.shape).forEach(r=>{t[r]||(n[r]=this.shape[r])}),new Oe({...this._def,shape:()=>n})}deepPartial(){return kr(this)}partial(t){const n={};return me.objectKeys(this.shape).forEach(r=>{const s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}),new Oe({...this._def,shape:()=>n})}required(t){const n={};return me.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof Yt;)o=o._def.innerType;n[r]=o}}),new Oe({...this._def,shape:()=>n})}keyof(){return Od(me.objectKeys(this.shape))}}Oe.create=(e,t)=>new Oe({shape:()=>e,unknownKeys:"strip",catchall:Qt.create(),typeName:J.ZodObject,...se(t)});Oe.strictCreate=(e,t)=>new Oe({shape:()=>e,unknownKeys:"strict",catchall:Qt.create(),typeName:J.ZodObject,...se(t)});Oe.lazycreate=(e,t)=>new Oe({shape:e,unknownKeys:"strip",catchall:Qt.create(),typeName:J.ZodObject,...se(t)});class bs extends ae{_parse(t){const{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(const a of o)if(a.result.status==="valid")return a.result;for(const a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;const i=o.map(a=>new $t(a.ctx.common.issues));return z(n,{code:D.invalid_union,unionErrors:i}),te}if(n.common.async)return Promise.all(r.map(async o=>{const i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o;const i=[];for(const c of r){const u={...n,common:{...n.common,issues:[]},parent:null},l=c._parseSync({data:n.data,path:n.path,parent:u});if(l.status==="valid")return l;l.status==="dirty"&&!o&&(o={result:l,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;const a=i.map(c=>new $t(c));return z(n,{code:D.invalid_union,unionErrors:a}),te}}get options(){return this._def.options}}bs.create=(e,t)=>new bs({options:e,typeName:J.ZodUnion,...se(t)});const ho=e=>e instanceof ks?ho(e.schema):e instanceof At?ho(e.innerType()):e instanceof Es?[e.value]:e instanceof Tn?e.options:e instanceof $s?Object.keys(e.enum):e instanceof Ss?ho(e._def.innerType):e instanceof ys?[void 0]:e instanceof ws?[null]:null;class li extends ae{_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==q.object)return z(n,{code:D.invalid_type,expected:q.object,received:n.parsedType}),te;const r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(z(n,{code:D.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),te)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){const s=new Map;for(const o of n){const i=ho(o.shape[t]);if(!i)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new li({typeName:J.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...se(r)})}}function $a(e,t){const n=vn(e),r=vn(t);if(e===t)return{valid:!0,data:e};if(n===q.object&&r===q.object){const s=me.objectKeys(t),o=me.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(const a of o){const c=$a(e[a],t[a]);if(!c.valid)return{valid:!1};i[a]=c.data}return{valid:!0,data:i}}else if(n===q.array&&r===q.array){if(e.length!==t.length)return{valid:!1};const s=[];for(let o=0;o{if(ka(o)||ka(i))return te;const a=$a(o.value,i.value);return a.valid?((Ea(o)||Ea(i))&&n.dirty(),{status:n.value,value:a.data}):(z(r,{code:D.invalid_intersection_types}),te)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}xs.create=(e,t,n)=>new xs({left:e,right:t,typeName:J.ZodIntersection,...se(n)});class jt extends ae{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==q.array)return z(r,{code:D.invalid_type,expected:q.array,received:r.parsedType}),te;if(r.data.lengththis._def.items.length&&(z(r,{code:D.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());const o=[...r.data].map((i,a)=>{const c=this._def.items[a]||this._def.rest;return c?c._parse(new Rt(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>Je.mergeArray(n,i)):Je.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new jt({...this._def,rest:t})}}jt.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new jt({items:e,typeName:J.ZodTuple,rest:null,...se(t)})};class vs extends ae{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==q.object)return z(r,{code:D.invalid_type,expected:q.object,received:r.parsedType}),te;const s=[],o=this._def.keyType,i=this._def.valueType;for(const a in r.data)s.push({key:o._parse(new Rt(r,a,r.path,a)),value:i._parse(new Rt(r,r.data[a],r.path,a))});return r.common.async?Je.mergeObjectAsync(n,s):Je.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof ae?new vs({keyType:t,valueType:n,typeName:J.ZodRecord,...se(r)}):new vs({keyType:kt.create(),valueType:t,typeName:J.ZodRecord,...se(n)})}}class Uo extends ae{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==q.map)return z(r,{code:D.invalid_type,expected:q.map,received:r.parsedType}),te;const s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,c],u)=>({key:s._parse(new Rt(r,a,r.path,[u,"key"])),value:o._parse(new Rt(r,c,r.path,[u,"value"]))}));if(r.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const c of i){const u=await c.key,l=await c.value;if(u.status==="aborted"||l.status==="aborted")return te;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}})}else{const a=new Map;for(const c of i){const u=c.key,l=c.value;if(u.status==="aborted"||l.status==="aborted")return te;(u.status==="dirty"||l.status==="dirty")&&n.dirty(),a.set(u.value,l.value)}return{status:n.value,value:a}}}}Uo.create=(e,t,n)=>new Uo({valueType:t,keyType:e,typeName:J.ZodMap,...se(n)});class Qn extends ae{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==q.set)return z(r,{code:D.invalid_type,expected:q.set,received:r.parsedType}),te;const s=this._def;s.minSize!==null&&r.data.sizes.maxSize.value&&(z(r,{code:D.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());const o=this._def.valueType;function i(c){const u=new Set;for(const l of c){if(l.status==="aborted")return te;l.status==="dirty"&&n.dirty(),u.add(l.value)}return{status:n.value,value:u}}const a=[...r.data.values()].map((c,u)=>o._parse(new Rt(r,c,r.path,u)));return r.common.async?Promise.all(a).then(c=>i(c)):i(a)}min(t,n){return new Qn({...this._def,minSize:{value:t,message:Y.toString(n)}})}max(t,n){return new Qn({...this._def,maxSize:{value:t,message:Y.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}}Qn.create=(e,t)=>new Qn({valueType:e,minSize:null,maxSize:null,typeName:J.ZodSet,...se(t)});class _r extends ae{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==q.function)return z(n,{code:D.invalid_type,expected:q.function,received:n.parsedType}),te;function r(a,c){return To({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Bo(),gs].filter(u=>!!u),issueData:{code:D.invalid_arguments,argumentsError:c}})}function s(a,c){return To({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Bo(),gs].filter(u=>!!u),issueData:{code:D.invalid_return_type,returnTypeError:c}})}const o={errorMap:n.common.contextualErrorMap},i=n.data;return this._def.returns instanceof Hr?st(async(...a)=>{const c=new $t([]),u=await this._def.args.parseAsync(a,o).catch(d=>{throw c.addIssue(r(a,d)),c}),l=await i(...u);return await this._def.returns._def.type.parseAsync(l,o).catch(d=>{throw c.addIssue(s(l,d)),c})}):st((...a)=>{const c=this._def.args.safeParse(a,o);if(!c.success)throw new $t([r(a,c.error)]);const u=i(...c.data),l=this._def.returns.safeParse(u,o);if(!l.success)throw new $t([s(u,l.error)]);return l.data})}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new _r({...this._def,args:jt.create(t).rest(Wn.create())})}returns(t){return new _r({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new _r({args:t||jt.create([]).rest(Wn.create()),returns:n||Wn.create(),typeName:J.ZodFunction,...se(r)})}}class ks extends ae{get schema(){return this._def.getter()}_parse(t){const{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}}ks.create=(e,t)=>new ks({getter:e,typeName:J.ZodLazy,...se(t)});class Es extends ae{_parse(t){if(t.data!==this._def.value){const n=this._getOrReturnCtx(t);return z(n,{received:n.data,code:D.invalid_literal,expected:this._def.value}),te}return{status:"valid",value:t.data}}get value(){return this._def.value}}Es.create=(e,t)=>new Es({value:e,typeName:J.ZodLiteral,...se(t)});function Od(e,t){return new Tn({values:e,typeName:J.ZodEnum,...se(t)})}class Tn extends ae{_parse(t){if(typeof t.data!="string"){const n=this._getOrReturnCtx(t),r=this._def.values;return z(n,{expected:me.joinValues(r),received:n.parsedType,code:D.invalid_type}),te}if(this._def.values.indexOf(t.data)===-1){const n=this._getOrReturnCtx(t),r=this._def.values;return z(n,{received:n.data,code:D.invalid_enum_value,options:r}),te}return st(t.data)}get options(){return this._def.values}get enum(){const t={};for(const n of this._def.values)t[n]=n;return t}get Values(){const t={};for(const n of this._def.values)t[n]=n;return t}get Enum(){const t={};for(const n of this._def.values)t[n]=n;return t}extract(t){return Tn.create(t)}exclude(t){return Tn.create(this.options.filter(n=>!t.includes(n)))}}Tn.create=Od;class $s extends ae{_parse(t){const n=me.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==q.string&&r.parsedType!==q.number){const s=me.objectValues(n);return z(r,{expected:me.joinValues(s),received:r.parsedType,code:D.invalid_type}),te}if(n.indexOf(t.data)===-1){const s=me.objectValues(n);return z(r,{received:r.data,code:D.invalid_enum_value,options:s}),te}return st(t.data)}get enum(){return this._def.values}}$s.create=(e,t)=>new $s({values:e,typeName:J.ZodNativeEnum,...se(t)});class Hr extends ae{unwrap(){return this._def.type}_parse(t){const{ctx:n}=this._processInputParams(t);if(n.parsedType!==q.promise&&n.common.async===!1)return z(n,{code:D.invalid_type,expected:q.promise,received:n.parsedType}),te;const r=n.parsedType===q.promise?n.data:Promise.resolve(n.data);return st(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}}Hr.create=(e,t)=>new Hr({type:e,typeName:J.ZodPromise,...se(t)});class At extends ae{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===J.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null;if(s.type==="preprocess"){const i=s.transform(r.data);return r.common.async?Promise.resolve(i).then(a=>this._def.schema._parseAsync({data:a,path:r.path,parent:r})):this._def.schema._parseSync({data:i,path:r.path,parent:r})}const o={addIssue:i=>{z(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="refinement"){const i=a=>{const c=s.refinement(a,o);if(r.common.async)return Promise.resolve(c);if(c instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){const a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?te:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?te:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){const i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Io(i))return i;const a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>Io(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):i);me.assertNever(s)}}At.create=(e,t,n)=>new At({schema:e,typeName:J.ZodEffects,effect:t,...se(n)});At.createWithPreprocess=(e,t,n)=>new At({schema:t,effect:{type:"preprocess",transform:e},typeName:J.ZodEffects,...se(n)});class Yt extends ae{_parse(t){return this._getType(t)===q.undefined?st(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Yt.create=(e,t)=>new Yt({innerType:e,typeName:J.ZodOptional,...se(t)});class er extends ae{_parse(t){return this._getType(t)===q.null?st(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}er.create=(e,t)=>new er({innerType:e,typeName:J.ZodNullable,...se(t)});class Ss extends ae{_parse(t){const{ctx:n}=this._processInputParams(t);let r=n.data;return n.parsedType===q.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}}Ss.create=(e,t)=>new Ss({innerType:e,typeName:J.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...se(t)});class No extends ae{_parse(t){const{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Oo(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new $t(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new $t(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}No.create=(e,t)=>new No({innerType:e,typeName:J.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...se(t)});class Lo extends ae{_parse(t){if(this._getType(t)!==q.nan){const r=this._getOrReturnCtx(t);return z(r,{code:D.invalid_type,expected:q.nan,received:r.parsedType}),te}return{status:"valid",value:t.data}}}Lo.create=e=>new Lo({typeName:J.ZodNaN,...se(e)});const G1=Symbol("zod_brand");class Cd extends ae{_parse(t){const{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}}class Ns extends ae{_parse(t){const{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?te:o.status==="dirty"?(n.dirty(),Id(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{const s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?te:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new Ns({in:t,out:n,typeName:J.ZodPipeline})}}const Pd=(e,t={},n)=>e?Lr.create().superRefine((r,s)=>{var o,i;if(!e(r)){const a=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,c=(i=(o=a.fatal)!==null&&o!==void 0?o:n)!==null&&i!==void 0?i:!0,u=typeof a=="string"?{message:a}:a;s.addIssue({code:"custom",...u,fatal:c})}}):Lr.create(),Y1={object:Oe.lazycreate};var J;(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"})(J||(J={}));const X1=(e,t={message:`Input not instance of ${e.name}`})=>Pd(n=>n instanceof e,t),Ud=kt.create,Nd=An.create,J1=Lo.create,Q1=Bn.create,Ld=ms.create,ex=Jn.create,tx=Co.create,nx=ys.create,rx=ws.create,sx=Lr.create,ox=Wn.create,ix=Qt.create,ax=Po.create,cx=St.create,ux=Oe.create,lx=Oe.strictCreate,fx=bs.create,dx=li.create,hx=xs.create,px=jt.create,gx=vs.create,mx=Uo.create,yx=Qn.create,wx=_r.create,bx=ks.create,xx=Es.create,vx=Tn.create,kx=$s.create,Ex=Hr.create,Ku=At.create,$x=Yt.create,Sx=er.create,_x=At.createWithPreprocess,Ax=Ns.create,Bx=()=>Ud().optional(),Tx=()=>Nd().optional(),Ix=()=>Ld().optional(),Ox={string:(e=>kt.create({...e,coerce:!0})),number:(e=>An.create({...e,coerce:!0})),boolean:(e=>ms.create({...e,coerce:!0})),bigint:(e=>Bn.create({...e,coerce:!0})),date:(e=>Jn.create({...e,coerce:!0}))},Cx=te;var rt=Object.freeze({__proto__:null,defaultErrorMap:gs,setErrorMap:L1,getErrorMap:Bo,makeIssue:To,EMPTY_PATH:H1,addIssueToContext:z,ParseStatus:Je,INVALID:te,DIRTY:Id,OK:st,isAborted:ka,isDirty:Ea,isValid:Io,isAsync:Oo,get util(){return me},get objectUtil(){return va},ZodParsedType:q,getParsedType:vn,ZodType:ae,ZodString:kt,ZodNumber:An,ZodBigInt:Bn,ZodBoolean:ms,ZodDate:Jn,ZodSymbol:Co,ZodUndefined:ys,ZodNull:ws,ZodAny:Lr,ZodUnknown:Wn,ZodNever:Qt,ZodVoid:Po,ZodArray:St,ZodObject:Oe,ZodUnion:bs,ZodDiscriminatedUnion:li,ZodIntersection:xs,ZodTuple:jt,ZodRecord:vs,ZodMap:Uo,ZodSet:Qn,ZodFunction:_r,ZodLazy:ks,ZodLiteral:Es,ZodEnum:Tn,ZodNativeEnum:$s,ZodPromise:Hr,ZodEffects:At,ZodTransformer:At,ZodOptional:Yt,ZodNullable:er,ZodDefault:Ss,ZodCatch:No,ZodNaN:Lo,BRAND:G1,ZodBranded:Cd,ZodPipeline:Ns,custom:Pd,Schema:ae,ZodSchema:ae,late:Y1,get ZodFirstPartyTypeKind(){return J},coerce:Ox,any:sx,array:cx,bigint:Q1,boolean:Ld,date:ex,discriminatedUnion:dx,effect:Ku,enum:vx,function:wx,instanceof:X1,intersection:hx,lazy:bx,literal:xx,map:mx,nan:J1,nativeEnum:kx,never:ix,null:rx,nullable:Sx,number:Nd,object:ux,oboolean:Ix,onumber:Tx,optional:$x,ostring:Bx,pipeline:Ax,preprocess:_x,promise:Ex,record:gx,set:yx,strictObject:lx,string:Ud,symbol:tx,transformer:Ku,tuple:px,undefined:nx,union:fx,unknown:ox,void:ax,NEVER:Cx,ZodIssueCode:D,quotelessJson:N1,ZodError:$t});const Hd=rt.string().regex(/^[a-fA-F0-9]$/),Px=rt.string().regex(/^[a-fA-F0-9]{64}$/),Rr=rt.number().min(0).max(4294967295),Ux=rt.bigint(),Rd=rt.instanceof(Uint8Array),Nx=rt.union([Hd,Rr,rt.string(),Rd]).array(),_c=rt.union([Nx,Hd,Rd]),Lx=rt.array(_c),jd=rt.object({value:rt.union([Rr,Ux]),scriptPubKey:_c}),Hx=rt.object({txid:Px,vout:Rr,scriptSig:_c,sequence:Rr,prevout:jd.optional(),witness:Lx});rt.object({version:Rr,vin:rt.array(Hx),vout:rt.array(jd),locktime:Rr});const Sa=2048,Rx=new TextEncoder;function Kd(e){const t=[],n=(s,o)=>{if(o<24)t.push(s*32+o);else if(o<=255)t.push(s*32+24,o);else if(o<=65535)t.push(s*32+25,o>>>8,o&255);else if(o<=4294967295){const i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,o),t.push(s*32+26,...i)}else{t.push(s*32+27);const i=new Uint8Array(8);new DataView(i.buffer).setBigUint64(0,BigInt(o)),t.push(...i)}},r=(s,o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");if(s===null)t.push(246);else if(typeof s=="boolean")t.push(s?245:244);else if(typeof s=="number"&&Number.isFinite(s))if(Number.isSafeInteger(s)&&!Object.is(s,-0))n(s>=0?0:1,s>=0?s:-1-s);else{const i=new Uint8Array(8);new DataView(i.buffer).setFloat64(0,s),t.push(251,...i)}else if(typeof s=="string"){const i=Rx.encode(s);n(3,i.length);for(const a of i)t.push(a)}else if(Array.isArray(s))n(4,s.length),s.forEach(i=>r(i,o+1));else if(typeof s=="object"&&Object.getPrototypeOf(s)===Object.prototype){const i=Object.entries(s);n(5,i.length);for(const[a,c]of i)r(a,o+1),r(c,o+1)}else throw new Error("Metadata must contain only JSON values.");if(t.length>Sa)throw new Error(`Metadata must be at most ${Sa} CBOR bytes.`)};return r(e),Uint8Array.from(t)}function jx(e){if(e=new Uint8Array(e),!e.length||e.length>Sa)throw new Error("Invalid CBOR metadata size.");let t=0;const n=o=>{if(t+o>e.length)throw new Error("Truncated CBOR metadata.");const i=e.slice(t,t+o);return t+=o,i},r=(o=0)=>{if(o>64)throw new Error("Metadata nesting exceeds 64 levels.");const i=n(1)[0],a=i>>5,c=i&31;if(a===7){if(c===20)return!1;if(c===21)return!0;if(c===22)return null;if(c===27){const l=new DataView(n(8).buffer).getFloat64(0);if(Number.isFinite(l))return l}throw new Error("Unsupported CBOR value.")}let u=c;if(c>=24&&c<=27){u=0;for(const l of n(2**(c-24)))u=u*256+l}else if(c>=28)throw new Error("Unsupported CBOR length.");if(!Number.isSafeInteger(u))throw new Error("CBOR integer exceeds JSON precision.");if(a===0)return u;if(a===1)return-1-u;if(a===3)return new TextDecoder("utf-8",{fatal:!0}).decode(n(u));if((a===4||a===5)&&u>e.length)throw new Error("Invalid CBOR collection length.");if(a===4)return Array.from({length:u},()=>r(o+1));if(a===5){const l={};for(let f=0;f({txid:e,vout:t,sequence:4294967295,prevout:{value:n,scriptPubKey:r}}),xe=(e,t)=>({value:e,scriptPubKey:t}),Du=16*1024,Ut=1e3,X=500,Ho="text/plain;charset=utf-8",Kx=["text/plain","application/json","text/html","image/svg+xml","image/png","image/jpeg","image/webp"],Dd=new TextEncoder,us=e=>Array.from(e,t=>t.toString(16).padStart(2,"0")).join(""),jn=e=>Uint8Array.from(e.match(/../g)??[],t=>parseInt(t,16)),Ro=e=>us(Dd.encode(e));function Ac(e){const t=typeof e=="string"?{contentType:Ho,bytes:Dd.encode(e)}:e;if(!t||![...Kx,Ho].includes(t.contentType))throw new Error("Unsupported MIME type.");if(!(t.bytes instanceof Uint8Array)||!t.bytes.length)throw new Error("Enter non-empty inscription bytes.");if(t.bytes.length>Du)throw new Error(`Body must be at most ${Du} bytes.`);return{contentType:t.contentType,bytes:new Uint8Array(t.bytes)}}function jo(e){const t=/^([0-9a-f]{64})i(0|[1-9][0-9]*)$/.exec(e);if(!t||Number(t[2])>4294967295)throw new Error("Invalid parent inscription id.");let n=Number(t[2]),r="";for(;n;)r+=(n%256).toString(16).padStart(2,"0"),n=Math.floor(n/256);return t[1].match(/../g).reverse().join("")+r}function Mu(e){if(typeof e!="string"||!/^[0-9a-f]{64,72}$/.test(e)||e.length%2)throw new Error("Invalid parent tag.");const t=[...jn(e.slice(64))].reduce((r,s,o)=>r+s*256**o,0),n=`${e.slice(0,64).match(/../g).reverse().join("")}i${t}`;if(jo(n)!==e)throw new Error("Non-canonical parent tag.");return n}function Md(e,t,n=null,r=void 0,s={}){const{contentType:o,bytes:i}=Ac(t),{delegate:a=null,pointer:c,metaprotocol:u=null}=s,l=u==null||u===""?null:new TextEncoder().encode(String(u));if(l&&l.length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");const f=r===void 0?void 0:Kd(r),d=[];for(let g=0;g{const p=g.length/2;return(p<=75?p.toString(16).padStart(2,"0"):p<=255?"4c"+p.toString(16).padStart(2,"0"):"4d"+(p%256).toString(16).padStart(2,"0")+Math.floor(p/256).toString(16).padStart(2,"0"))+g};return h(e)+"ac0063"+h(Ro("ord"))+h("01")+h(Ro(o))+(a?h("0b")+h(jo(a)):"")+(c===void 0?"":h("02")+h(Zd(c)))+(n?h("03")+h(jo(n)):"")+(f===void 0?"":Array.from({length:Math.ceil(f.length/520)},(g,p)=>h("05")+h(us(f.slice(p*520,(p+1)*520)))).join(""))+(l?h("07")+h(us(l)):"")+"00"+d.map(h).join("")+"68"}const Dx=e=>ui.tree.getLeaf(Ue.encode(e,!0));function Bc(e){if(!Array.isArray(e)||e.length!==3)throw new Error("Unsupported script-path witness.");const t=Ue.decode(e[1]);let n=7,r=null,s=null,o;t[n]==="0b"&&(s=Mu(t[n+1]),n+=2),t[n]==="02"&&(o=Zx(t[n+1]==="OP_0"?"":t[n+1]),n+=2),t[n]==="03"&&(r=Mu(t[n+1]),n+=2);const i=[];for(;t[n]==="05";){const g=t[n+1];if(typeof g!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(g))throw new Error("Invalid metadata push.");i.push(g),n+=2}const a=i.length?jx(jn(i.join(""))):void 0;let c=null;if(t[n]==="07"){const g=t[n+1];if(typeof g!="string"||!/^(?:[0-9a-f]{2}){1,520}$/.test(g))throw new Error("Invalid metaprotocol field.");c=new TextDecoder().decode(jn(g)),n+=2}if(t[n]!=="OP_0")throw new Error("Unsupported ord tag or missing body separator.");const u=t.slice(n+1,-1);if(!u.length||u.some(g=>typeof g!="string"||!/^(?:[0-9a-f]{2})+$/.test(g)))throw new Error("Invalid body envelope.");const l=new TextDecoder().decode(jn(t[6])),f=Ac({contentType:l,bytes:jn(u.join(""))}),d=Md(t[0],f,r,a,{delegate:s,pointer:o,metaprotocol:c}),h=a===void 0&&!r&&l===Ho&&f.bytes.length<=280&&Ue.encode([t[0],"OP_CHECKSIG","OP_0","OP_IF",Ro("ord"),"01",Ro(Ho),"OP_0",us(f.bytes),"OP_ENDIF"],!1).hex;if(d!==e[1]&&h!==e[1])throw new Error("Unsupported ord envelope.");if(!/^[0-9a-f]{64}$/.test(t[0]))throw new Error("Invalid inscription signing key.");return{...f,parent:r,delegate:s,pointer:o,metaprotocol:c,metadata:a,metadataBytes:i.length?jn(i.join("")):void 0,text:new TextDecoder().decode(f.bytes),pubkey:t[0]}}class Mx{constructor(t,n){this.chain=t,this.wallet=n}prepare(t,n=null,r=void 0,s={}){const o=Ac(t);if(r!==void 0&&Kd(r),s.delegate&&jo(s.delegate),s.pointer!==void 0&&Zd(s.pointer),s.metaprotocol!==void 0&&s.metaprotocol!==null&&s.metaprotocol!==""&&new TextEncoder().encode(String(s.metaprotocol)).length>520)throw new Error("Metaprotocol identifier must be 520 bytes or less.");if(n&&s.reinscribe)throw new Error("Choose parent or reinscription, not both.");const i=this.chain.coins(this.wallet.script),a=n?i.find(l=>{var f;return(f=l.inscriptions)==null?void 0:f.some(d=>d.id===n)}):null;if(n&&!a)throw new Error("Parent must be an owned, unspent inscription.");const c=s.reinscribe?i.find(l=>{var f;return(f=l.inscriptions)==null?void 0:f.some(d=>d.id===s.reinscribe)}):null;if(s.reinscribe&&!c)throw new Error("Reinscription must spend an owned sat.");const u=i.find(l=>!l.inscription&&l.value>=Ut+2*X+330);if(!u)throw new Error("Mine a block first to get spendable fake BTC.");return{...o,coin:u,parent:a,reinscribe:c,totalFee:X*2,postage:Ut}}inscribe(t,n=null,r=void 0,s={}){const{coin:o,parent:i,reinscribe:a,...c}=this.prepare(t,n,r,s),u=i??a,l=a==null?void 0:a.inscriptions.find(x=>x.id===s.reinscribe),f=l?this.chain.satLocation(l.sat).offset:s.pointer??(i?i.value:void 0),d=Md(this.wallet.pubkey,c,n,r,{...s,pointer:f}),h=Dx(d),[g,p]=ui.getPubKey(this.wallet.pubkey,{target:h}),w=ee.create({vin:[Xe(o.txid,o.vout,o.value,o.scriptPubKey)],vout:[xe(Ut+X,["OP_1",g]),xe(o.value-Ut-2*X,this.wallet.script)]});w.vin[0].witness=[this.wallet.sign(w)];const y=ee.util.getTxid(w),v=ee.create({vin:[...u?[Xe(u.txid,u.vout,u.value,u.scriptPubKey)]:[],Xe(y,0,Ut+X,["OP_1",g])],vout:[...u?[xe(u.value,this.wallet.script)]:[],xe(Ut,this.wallet.script)]}),m=u?1:0;return v.vin[m].witness=[this.wallet.sign(v,h,m),Ue.encode(d,!1).hex,p],u&&(v.vin[0].witness=[this.wallet.sign(v)]),this.chain.submitPackage([ee.encode(w).hex,ee.encode(v).hex]),`${ee.util.getTxid(v)}i0`}list(){return this.chain.coins(this.wallet.script).flatMap(t=>t.inscriptions??[])}}function Zd(e){let t;try{t=BigInt(e)}catch{throw new Error("Invalid pointer.")}if(t<0n||t>0xffffffffffffffffn||typeof e=="number"&&!Number.isSafeInteger(e))throw new Error("Invalid pointer.");let n="";for(;t;)n+=Number(t&255n).toString(16).padStart(2,"0"),t>>=8n;return n}function Zx(e){if(typeof e!="string"||!/^(?:[0-9a-f]{2}){0,8}$/.test(e))throw new Error("Invalid pointer tag.");return[...jn(e)].reduce((t,n,r)=>t+(BigInt(n)<this.utxos.set(`${r.txid}:${r.vout}`,{txid:r.txid,vout:r.vout,value:r.value,ranges:Ol(s,r.value)}));const n=(r,s,o)=>{var y;const i=ee.decode(r),a=ee.util.getTxid(i),c=i.vin[0].txid==="0".repeat(64),u=c?[]:i.vin.map(v=>this.utxos.get(`${v.txid}:${v.vout}`)),l=Ul(i,u,s,c);i.vin.forEach(v=>this.utxos.delete(`${v.txid}:${v.vout}`)),i.vout.forEach((v,m)=>this.utxos.set(`${a}:${m}`,{txid:a,vout:m,value:Number(v.value),ranges:l[m]}));const f=(y=i.vin.find(v=>{var m;return((m=v.witness)==null?void 0:m.length)===3}))==null?void 0:y.witness;if(!f)return;const d=Bc(f),h=BigInt(d.pointer??0),g=i.vout.reduce((v,m)=>v+Number(m.value),0),p=Pl(l.flat(),hv.sat===p).length,status:s===null?"pending":"confirmed",height:s,block:o,metadata:w??null,hasMetadata:w!==void 0,parent:d.parent,protocol:d.metaprotocol??(w&&!Array.isArray(w)&&typeof w=="object"&&Object.hasOwn(w,"protocol")&&typeof w.protocol=="string"?w.protocol:null)})};for(const r of t.blocks)for(const s of r.raws)n(s,r.height,r.hash);for(const r of t.mempool)n(r,null,null);for(const r of this.events){r.location=null;for(const s of this.utxos.values()){const o=lo(s.ranges,r.sat);if(o!==null){r.location={txid:s.txid,vout:s.vout,offset:o};break}}r.delegatedBy=this.events.filter(s=>s.delegate===r.id).map(s=>s.id),r.inscriptions=this.events.filter(s=>s.sat===r.sat).map(s=>s.id)}}forProtocol(t){return this.events.filter(n=>n.protocol===t)}get protocols(){return[...new Set(this.events.filter(t=>t.protocol!==null).map(t=>t.protocol))].sort()}get stats(){return{events:this.events.length,withMetadata:this.events.filter(t=>t.hasMetadata).length,confirmed:this.events.filter(t=>t.status==="confirmed").length,pending:this.events.filter(t=>t.status==="pending").length,protocols:this.protocols}}}const yr=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ls(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Lt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Me(e,...t){if(!Ls(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 Hs(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");Lt(e.outputLen),Lt(e.blockLen)}function jr(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 Vd(e,t){Me(e);const n=t.outputLen;if(e.length>>t}function Gs(e,t){return e<>>32-t>>>0}const qx=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function zx(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function Fx(e){for(let t=0;te:Fx,qd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Wx=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Be(e){if(Me(e),qd)return e.toHex();let t="";for(let n=0;n=qt._0&&e<=qt._9)return e-qt._0;if(e>=qt.A&&e<=qt.F)return e-(qt.A-10);if(e>=qt.a&&e<=qt.f)return e-(qt.a-10)}function mt(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(qd)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 s=0,o=0;se().update(Kr(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function dr(e=32){if(yr&&typeof yr.getRandomValues=="function")return yr.getRandomValues(new Uint8Array(e));if(yr&&typeof yr.randomBytes=="function")return Uint8Array.from(yr.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function Yx(e,t,n,r){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,r);const s=BigInt(32),o=BigInt(4294967295),i=Number(n>>s&o),a=Number(n&o),c=r?4:0,u=r?0:4;e.setUint32(t+c,i,r),e.setUint32(t+u,a,r)}function Xx(e,t,n){return e&t^~e&n}function Jx(e,t,n){return e&t^e&n^t&n}class Ic extends Tc{constructor(t,n,r,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=s,this.buffer=new Uint8Array(t),this.view=Gn(this.buffer)}update(t){jr(this),t=Kr(t),Me(t);const{view:n,buffer:r,blockLen:s}=this,o=t.length;for(let i=0;is-i&&(this.process(r,0),i=0);for(let f=i;fl.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f>zu&Ys)}:{h:Number(e>>zu&Ys)|0,l:Number(e&Ys)|0}}function zd(e,t=!1){const n=e.length;let r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;oe>>>n,Wu=(e,t,n)=>e<<32-n|t>>>n,wr=(e,t,n)=>e>>>n|t<<32-n,br=(e,t,n)=>e<<32-n|t>>>n,Xs=(e,t,n)=>e<<64-n|t>>>n-32,Js=(e,t,n)=>e>>>n-32|t<<64-n,e2=(e,t,n)=>e<>>32-n,t2=(e,t,n)=>t<>>32-n,n2=(e,t,n)=>t<>>64-n,r2=(e,t,n)=>e<>>64-n;function zt(e,t,n,r){const s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const s2=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),o2=(e,t,n,r)=>t+n+r+(e/2**32|0)|0,i2=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0),a2=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0,c2=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0),u2=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0,l2=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]),mn=new Uint32Array(64);class f2 extends Ic{constructor(t=32){super(64,t,8,!1),this.A=gn[0]|0,this.B=gn[1]|0,this.C=gn[2]|0,this.D=gn[3]|0,this.E=gn[4]|0,this.F=gn[5]|0,this.G=gn[6]|0,this.H=gn[7]|0}get(){const{A:t,B:n,C:r,D:s,E:o,F:i,G:a,H:c}=this;return[t,n,r,s,o,i,a,c]}set(t,n,r,s,o,i,a,c){this.A=t|0,this.B=n|0,this.C=r|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,n){for(let f=0;f<16;f++,n+=4)mn[f]=t.getUint32(n,!1);for(let f=16;f<64;f++){const d=mn[f-15],h=mn[f-2],g=Pt(d,7)^Pt(d,18)^d>>>3,p=Pt(h,17)^Pt(h,19)^h>>>10;mn[f]=p+mn[f-7]+g+mn[f-16]|0}let{A:r,B:s,C:o,D:i,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){const d=Pt(a,6)^Pt(a,11)^Pt(a,25),h=l+d+Xx(a,c,u)+l2[f]+mn[f]|0,p=(Pt(r,2)^Pt(r,13)^Pt(r,22))+Jx(r,s,o)|0;l=u,u=c,c=a,a=i+h|0,i=o,o=s,s=r,r=h+p|0}r=r+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(r,s,o,i,a,c,u,l)}roundClean(){gt(mn)}destroy(){this.set(0,0,0,0,0,0,0,0),gt(this.buffer)}}const Fd=zd(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),d2=Fd[0],h2=Fd[1],yn=new Uint32Array(80),wn=new Uint32Array(80);class p2 extends Ic{constructor(t=64){super(128,t,16,!1),this.Ah=We[0]|0,this.Al=We[1]|0,this.Bh=We[2]|0,this.Bl=We[3]|0,this.Ch=We[4]|0,this.Cl=We[5]|0,this.Dh=We[6]|0,this.Dl=We[7]|0,this.Eh=We[8]|0,this.El=We[9]|0,this.Fh=We[10]|0,this.Fl=We[11]|0,this.Gh=We[12]|0,this.Gl=We[13]|0,this.Hh=We[14]|0,this.Hl=We[15]|0}get(){const{Ah:t,Al:n,Bh:r,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:h,Gl:g,Hh:p,Hl:w}=this;return[t,n,r,s,o,i,a,c,u,l,f,d,h,g,p,w]}set(t,n,r,s,o,i,a,c,u,l,f,d,h,g,p,w){this.Ah=t|0,this.Al=n|0,this.Bh=r|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=h|0,this.Gl=g|0,this.Hh=p|0,this.Hl=w|0}process(t,n){for(let m=0;m<16;m++,n+=4)yn[m]=t.getUint32(n),wn[m]=t.getUint32(n+=4);for(let m=16;m<80;m++){const x=yn[m-15]|0,k=wn[m-15]|0,I=wr(x,k,1)^wr(x,k,8)^Fu(x,k,7),C=br(x,k,1)^br(x,k,8)^Wu(x,k,7),N=yn[m-2]|0,O=wn[m-2]|0,R=wr(N,O,19)^Xs(N,O,61)^Fu(N,O,6),A=br(N,O,19)^Js(N,O,61)^Wu(N,O,6),P=i2(C,A,wn[m-7],wn[m-16]),E=a2(P,I,R,yn[m-7],yn[m-16]);yn[m]=E|0,wn[m]=P|0}let{Ah:r,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:h,Fl:g,Gh:p,Gl:w,Hh:y,Hl:v}=this;for(let m=0;m<80;m++){const x=wr(f,d,14)^wr(f,d,18)^Xs(f,d,41),k=br(f,d,14)^br(f,d,18)^Js(f,d,41),I=f&h^~f&p,C=d&g^~d&w,N=c2(v,k,C,h2[m],wn[m]),O=u2(N,y,x,I,d2[m],yn[m]),R=N|0,A=wr(r,s,28)^Xs(r,s,34)^Xs(r,s,39),P=br(r,s,28)^Js(r,s,34)^Js(r,s,39),E=r&o^r&a^o&a,S=s&i^s&c^i&c;y=p|0,v=w|0,p=h|0,w=g|0,h=f|0,g=d|0,{h:f,l:d}=zt(u|0,l|0,O|0,R|0),u=a|0,l=c|0,a=o|0,c=i|0,o=r|0,i=s|0;const b=s2(R,P,S);r=o2(b,O,A,E),s=b|0}({h:r,l:s}=zt(this.Ah|0,this.Al|0,r|0,s|0)),{h:o,l:i}=zt(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=zt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=zt(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=zt(this.Eh|0,this.El|0,f|0,d|0),{h,l:g}=zt(this.Fh|0,this.Fl|0,h|0,g|0),{h:p,l:w}=zt(this.Gh|0,this.Gl|0,p|0,w|0),{h:y,l:v}=zt(this.Hh|0,this.Hl|0,y|0,v|0),this.set(r,s,o,i,a,c,u,l,f,d,h,g,p,w,y,v)}roundClean(){gt(yn,wn)}destroy(){gt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Ee=fi(()=>new f2),_s=fi(()=>new p2);class Wd extends Tc{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,Hs(t);const r=Kr(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,o=new Uint8Array(s);o.set(r.length>s?t.create().update(r).digest():r);for(let i=0;inew Wd(e,t).update(n).digest();In.create=(e,t)=>new Wd(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Oc=BigInt(0),_a=BigInt(1);function tr(e,t=""){if(typeof e!="boolean"){const n=t&&`"${t}"`;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function Et(e,t,n=""){const r=Ls(e),s=e==null?void 0:e.length,o=t!==void 0;if(!r||o&&s!==t){const i=n&&`"${n}" `,a=o?` of length ${t}`:"",c=r?`length=${s}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return e}function Qs(e){const t=e.toString(16);return t.length&1?"0"+t:t}function Gd(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Oc:BigInt("0x"+e)}function hr(e){return Gd(Be(e))}function nr(e){return Me(e),Gd(Be(Uint8Array.from(e).reverse()))}function di(e,t){return mt(e.toString(16).padStart(t*2,"0"))}function Cc(e,t){return di(e,t).reverse()}function we(e,t,n){let r;if(typeof t=="string")try{r=mt(t)}catch(o){throw new Error(e+" must be hex string or Uint8Array, cause: "+o)}else if(Ls(t))r=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=r.length;if(typeof n=="number"&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return r}function Gu(e){return Uint8Array.from(e)}const Di=e=>typeof e=="bigint"&&Oc<=e;function Aa(e,t,n){return Di(e)&&Di(t)&&Di(n)&&t<=e&&eOc;e>>=_a,t+=1);return t}const Rs=e=>(_a<new Uint8Array(h),s=h=>Uint8Array.of(h);let o=r(e),i=r(e),a=0;const c=()=>{o.fill(1),i.fill(0),a=0},u=(...h)=>n(i,o,...h),l=(h=r(0))=>{i=u(s(0),h),o=u(),h.length!==0&&(i=u(s(1),h),o=u())},f=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let h=0;const g=[];for(;h{c(),l(h);let p;for(;!(p=g(f()));)l();return c(),p}}function Wr(e,t,n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function r(s,o,i){const a=e[s];if(i&&a===void 0)return;const c=typeof a;if(c!==o||a===null)throw new Error(`param "${s}" is invalid: expected ${o}, got ${c}`)}Object.entries(t).forEach(([s,o])=>r(s,o,!1)),Object.entries(n).forEach(([s,o])=>r(s,o,!0))}function Ko(e){const t=new WeakMap;return(n,...r)=>{const s=t.get(n);if(s!==void 0)return s;const o=e(n,...r);return t.set(n,o),o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const it=BigInt(0),Fe=BigInt(1),Vn=BigInt(2),Xd=BigInt(3),Jd=BigInt(4),Qd=BigInt(5),m2=BigInt(7),eh=BigInt(8),y2=BigInt(9),th=BigInt(16);function Se(e,t){const n=e%t;return n>=it?n:t+n}function Ie(e,t,n){let r=e;for(;t-- >it;)r*=r,r%=n;return r}function Yu(e,t){if(e===it)throw new Error("invert: expected non-zero number");if(t<=it)throw new Error("invert: expected positive modulus, got "+t);let n=Se(e,t),r=t,s=it,o=Fe;for(;n!==it;){const a=r/n,c=r%n,u=s-o*a;r=n,n=c,s=o,o=u}if(r!==Fe)throw new Error("invert: does not exist");return Se(s,t)}function Pc(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function nh(e,t){const n=(e.ORDER+Fe)/Jd,r=e.pow(t,n);return Pc(e,r,t),r}function w2(e,t){const n=(e.ORDER-Qd)/eh,r=e.mul(t,Vn),s=e.pow(r,n),o=e.mul(t,s),i=e.mul(e.mul(o,Vn),s),a=e.mul(o,e.sub(i,e.ONE));return Pc(e,a,t),a}function b2(e){const t=pr(e),n=rh(e),r=n(t,t.neg(t.ONE)),s=n(t,r),o=n(t,t.neg(r)),i=(e+m2)/th;return(a,c)=>{let u=a.pow(c,i),l=a.mul(u,r);const f=a.mul(u,s),d=a.mul(u,o),h=a.eql(a.sqr(l),c),g=a.eql(a.sqr(f),c);u=a.cmov(u,l,h),l=a.cmov(d,f,g);const p=a.eql(a.sqr(l),c),w=a.cmov(u,l,p);return Pc(a,w,c),w}}function rh(e){if(e1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return nh;let o=s.pow(r,t);const i=(t+Fe)/Vn;return function(c,u){if(c.is0(u))return u;if(Xu(c,u)!==1)throw new Error("Cannot find square root");let l=n,f=c.mul(c.ONE,o),d=c.pow(u,t),h=c.pow(u,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let g=1,p=c.sqr(d);for(;!c.eql(p,c.ONE);)if(g++,p=c.sqr(p),g===l)throw new Error("Cannot find square root");const w=Fe<(Se(e,t)&Fe)===Fe,k2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function E2(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=k2.reduce((r,s)=>(r[s]="function",r),t);return Wr(e,n),e}function $2(e,t,n){if(nit;)n&Fe&&(r=e.mul(r,s)),s=e.sqr(s),n>>=Fe;return r}function sh(e,t,n=!1){const r=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((i,a,c)=>e.is0(a)?i:(r[c]=i,e.mul(i,a)),e.ONE),o=e.inv(s);return t.reduceRight((i,a,c)=>e.is0(a)?i:(r[c]=e.mul(i,r[c]),e.mul(i,a)),o),r}function Xu(e,t){const n=(e.ORDER-Fe)/Vn,r=e.pow(t,n),s=e.eql(r,e.ONE),o=e.eql(r,e.ZERO),i=e.eql(r,e.neg(e.ONE));if(!s&&!o&&!i)throw new Error("invalid Legendre symbol result");return s?1:o?0:-1}function oh(e,t){t!==void 0&&Lt(t);const n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function pr(e,t,n=!1,r={}){if(e<=it)throw new Error("invalid field: expected ORDER > 0, got "+e);let s,o,i=!1,a;if(typeof t=="object"&&t!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=t;d.BITS&&(s=d.BITS),d.sqrt&&(o=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(i=d.modFromBytes),a=d.allowedLengths}else typeof t=="number"&&(s=t),r.sqrt&&(o=r.sqrt);const{nBitLength:c,nByteLength:u}=oh(e,s);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let l;const f=Object.freeze({ORDER:e,isLE:n,BITS:c,BYTES:u,MASK:Rs(c),ZERO:it,ONE:Fe,allowedLengths:a,create:d=>Se(d,e),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return it<=d&&dd===it,isValidNot0:d=>!f.is0(d)&&f.isValid(d),isOdd:d=>(d&Fe)===Fe,neg:d=>Se(-d,e),eql:(d,h)=>d===h,sqr:d=>Se(d*d,e),add:(d,h)=>Se(d+h,e),sub:(d,h)=>Se(d-h,e),mul:(d,h)=>Se(d*h,e),pow:(d,h)=>$2(f,d,h),div:(d,h)=>Se(d*Yu(h,e),e),sqrN:d=>d*d,addN:(d,h)=>d+h,subN:(d,h)=>d-h,mulN:(d,h)=>d*h,inv:d=>Yu(d,e),sqrt:o||(d=>(l||(l=x2(e)),l(f,d))),toBytes:d=>n?Cc(d,u):di(d,u),fromBytes:(d,h=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const p=new Uint8Array(u);p.set(d,n?0:p.length-d.length),d=p}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let g=n?nr(d):hr(d);if(i&&(g=Se(g,e)),!h&&!f.isValid(g))throw new Error("invalid field element: outside of range 0..ORDER");return g},invertBatch:d=>sh(f,d),cmov:(d,h,g)=>g?h:d});return Object.freeze(f)}function ih(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function ah(e){const t=ih(e);return t+Math.ceil(t/2)}function ch(e,t,n=!1){const r=e.length,s=ih(t),o=ah(t);if(r<16||r1024)throw new Error("expected "+o+"-1024 bytes of input, got "+r);const i=n?nr(e):hr(e),a=Se(i,t-Fe)+Fe;return n?Cc(a,s):di(a,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Dr=BigInt(0),qn=BigInt(1);function Do(e,t){const n=t.negate();return e?n:t}function zn(e,t){const n=sh(e.Fp,t.map(r=>r.Z));return t.map((r,s)=>e.fromAffine(r.toAffine(n[s])))}function uh(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Mi(e,t){uh(e,t);const n=Math.ceil(t/e)+1,r=2**(e-1),s=2**e,o=Rs(e),i=BigInt(e);return{windows:n,windowSize:r,mask:o,maxNumber:s,shiftBy:i}}function Ju(e,t,n){const{windowSize:r,mask:s,maxNumber:o,shiftBy:i}=n;let a=Number(e&s),c=e>>i;a>r&&(a-=o,c+=qn);const u=t*r,l=u+Math.abs(a)-1,f=a===0,d=a<0,h=t%2!==0;return{nextN:c,offset:l,isZero:f,isNeg:d,isNegF:h,offsetF:u}}function S2(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((n,r)=>{if(!(n instanceof t))throw new Error("invalid point at index "+r)})}function _2(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((n,r)=>{if(!t.isValid(n))throw new Error("invalid scalar at index "+r)})}const Zi=new WeakMap,lh=new WeakMap;function Vi(e){return lh.get(e)||1}function Qu(e){if(e!==Dr)throw new Error("invalid wNAF")}class fh{constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,r=this.ZERO){let s=t;for(;n>Dr;)n&qn&&(r=r.add(s)),s=s.double(),n>>=qn;return r}precomputeWindow(t,n){const{windows:r,windowSize:s}=Mi(n,this.bits),o=[];let i=t,a=i;for(let c=0;cDr||r>Dr;)n&qn&&(o=o.add(s)),r&qn&&(i=i.add(s)),s=s.double(),n>>=qn,r>>=qn;return{p1:o,p2:i}}function dh(e,t,n,r){S2(n,e),_2(r,t);const s=n.length,o=r.length;if(s!==o)throw new Error("arrays of points and scalars must have equal length");const i=e.ZERO,a=Yd(BigInt(s));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Rs(c),l=new Array(Number(u)+1).fill(i),f=Math.floor((t.BITS-1)/c)*c;let d=i;for(let h=f;h>=0;h-=c){l.fill(i);for(let p=0;p>BigInt(h)&u);l[y]=l[y].add(n[p])}let g=i;for(let p=l.length-1,w=i;p>0;p--)w=w.add(l[p]),g=g.add(w);if(d=d.add(g),h!==0)for(let p=0;pDr))throw new Error(`CURVE.${c} must be positive bigint`)}const s=el(t.p,n.Fp,r),o=el(t.n,n.Fn,r),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(const c of a)if(!s.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:s,Fn:o}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const tl=(e,t)=>(e+(e>=0?t:-t)/ph)/t;function B2(e,t,n){const[[r,s],[o,i]]=t,a=tl(i*e,n),c=tl(-s*e,n);let u=e-a*r-c*o,l=-a*s-c*i;const f=u=h||l=h)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:f,k1:u,k2neg:d,k2:l}}function Ba(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function qi(e,t){const n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return tr(n.lowS,"lowS"),tr(n.prehash,"prehash"),n.format!==void 0&&Ba(n.format),n}class T2 extends Error{constructor(t=""){super(t)}}const Ft={Err:T2,_tlv:{encode:(e,t)=>{const{Err:n}=Ft;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const r=t.length/2,s=Qs(r);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const o=r>127?Qs(s.length/2|128):"";return Qs(e)+o+s+t},decode(e,t){const{Err:n}=Ft;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 s=t[r++],o=!!(s&128);let i=0;if(!o)i=s;else{const c=s&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=t.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const l of u)i=i<<8|l;if(r+=c,i<128)throw new n("tlv.decode(long): not minimal encoding")}const a=t.subarray(r,r+i);if(a.length!==i)throw new n("tlv.decode: wrong value length");return{v:a,l:t.subarray(r+i)}}},_int:{encode(e){const{Err:t}=Ft;if(e{const{X:S,Y:b,Z:_}=P;if(r.eql(_,r.ONE))return{x:S,y:b};const U=P.is0();E==null&&(E=U?r.ONE:r.inv(_));const j=r.mul(S,E),L=r.mul(b,E),M=r.mul(_,E);if(U)return{x:r.ZERO,y:r.ZERO};if(!r.eql(M,r.ONE))throw new Error("invZ was invalid");return{x:j,y:L}}),C=Ko(P=>{if(P.is0()){if(t.allowInfinityPoint&&!r.is0(P.Y))return;throw new Error("bad point: ZERO")}const{x:E,y:S}=P.toAffine();if(!r.isValid(E)||!r.isValid(S))throw new Error("bad point: x or y not field elements");if(!w(E,S))throw new Error("bad point: equation left != right");if(!P.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function N(P,E,S,b,_){return S=new O(r.mul(S.X,P),S.Y,S.Z),E=Do(b,E),S=Do(_,S),E.add(S)}class O{constructor(E,S,b){this.X=m("x",E),this.Y=m("y",S,!0),this.Z=m("z",b),Object.freeze(this)}static CURVE(){return o}static fromAffine(E){const{x:S,y:b}=E||{};if(!E||!r.isValid(S)||!r.isValid(b))throw new Error("invalid affine point");if(E instanceof O)throw new Error("projective point not allowed");return r.is0(S)&&r.is0(b)?O.ZERO:new O(S,b,r.ONE)}static fromBytes(E){const S=O.fromAffine(g(Et(E,void 0,"point")));return S.assertValidity(),S}static fromHex(E){return O.fromBytes(we("pointHex",E))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(E=8,S=!0){return A.createCache(this,E),S||this.multiply(eo),this}assertValidity(){C(this)}hasEvenY(){const{y:E}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(E)}equals(E){x(E);const{X:S,Y:b,Z:_}=this,{X:U,Y:j,Z:L}=E,M=r.eql(r.mul(S,L),r.mul(U,_)),V=r.eql(r.mul(b,L),r.mul(j,_));return M&&V}negate(){return new O(this.X,r.neg(this.Y),this.Z)}double(){const{a:E,b:S}=o,b=r.mul(S,eo),{X:_,Y:U,Z:j}=this;let L=r.ZERO,M=r.ZERO,V=r.ZERO,W=r.mul(_,_),le=r.mul(U,U),ce=r.mul(j,j),ne=r.mul(_,U);return ne=r.add(ne,ne),V=r.mul(_,j),V=r.add(V,V),L=r.mul(E,V),M=r.mul(b,ce),M=r.add(L,M),L=r.sub(le,M),M=r.add(le,M),M=r.mul(L,M),L=r.mul(ne,L),V=r.mul(b,V),ce=r.mul(E,ce),ne=r.sub(W,ce),ne=r.mul(E,ne),ne=r.add(ne,V),V=r.add(W,W),W=r.add(V,W),W=r.add(W,ce),W=r.mul(W,ne),M=r.add(M,W),ce=r.mul(U,j),ce=r.add(ce,ce),W=r.mul(ce,ne),L=r.sub(L,W),V=r.mul(ce,le),V=r.add(V,V),V=r.add(V,V),new O(L,M,V)}add(E){x(E);const{X:S,Y:b,Z:_}=this,{X:U,Y:j,Z:L}=E;let M=r.ZERO,V=r.ZERO,W=r.ZERO;const le=o.a,ce=r.mul(o.b,eo);let ne=r.mul(S,U),pe=r.mul(b,j),ge=r.mul(_,L),Ne=r.add(S,b),de=r.add(U,j);Ne=r.mul(Ne,de),de=r.add(ne,pe),Ne=r.sub(Ne,de),de=r.add(S,_);let ve=r.add(U,L);return de=r.mul(de,ve),ve=r.add(ne,ge),de=r.sub(de,ve),ve=r.add(b,_),M=r.add(j,L),ve=r.mul(ve,M),M=r.add(pe,ge),ve=r.sub(ve,M),W=r.mul(le,de),M=r.mul(ce,ge),W=r.add(M,W),M=r.sub(pe,W),W=r.add(pe,W),V=r.mul(M,W),pe=r.add(ne,ne),pe=r.add(pe,ne),ge=r.mul(le,ge),de=r.mul(ce,de),pe=r.add(pe,ge),ge=r.sub(ne,ge),ge=r.mul(le,ge),de=r.add(de,ge),ne=r.mul(pe,de),V=r.add(V,ne),ne=r.mul(ve,de),M=r.mul(Ne,M),M=r.sub(M,ne),ne=r.mul(Ne,pe),W=r.mul(ve,W),W=r.add(W,ne),new O(M,V,W)}subtract(E){return this.add(E.negate())}is0(){return this.equals(O.ZERO)}multiply(E){const{endo:S}=t;if(!s.isValidNot0(E))throw new Error("invalid scalar: out of range");let b,_;const U=j=>A.cached(this,j,L=>zn(O,L));if(S){const{k1neg:j,k1:L,k2neg:M,k2:V}=k(E),{p:W,f:le}=U(L),{p:ce,f:ne}=U(V);_=le.add(ne),b=N(S.beta,W,ce,j,M)}else{const{p:j,f:L}=U(E);b=j,_=L}return zn(O,[b,_])[0]}multiplyUnsafe(E){const{endo:S}=t,b=this;if(!s.isValid(E))throw new Error("invalid scalar: out of range");if(E===Wt||b.is0())return O.ZERO;if(E===Ar)return b;if(A.hasCache(this))return this.multiply(E);if(S){const{k1neg:_,k1:U,k2neg:j,k2:L}=k(E),{p1:M,p2:V}=A2(O,b,U,L);return N(S.beta,M,V,_,j)}else return A.unsafe(b,E)}multiplyAndAddUnsafe(E,S,b){const _=this.multiplyUnsafe(S).add(E.multiplyUnsafe(b));return _.is0()?void 0:_}toAffine(E){return I(this,E)}isTorsionFree(){const{isTorsionFree:E}=t;return i===Ar?!0:E?E(O,this):A.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:E}=t;return i===Ar?this:E?E(O,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(E=!0){return tr(E,"isCompressed"),this.assertValidity(),h(O,this,E)}toHex(E=!0){return Be(this.toBytes(E))}toString(){return``}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(E=!0){return this.toBytes(E)}_setWindowSize(E){this.precompute(E)}static normalizeZ(E){return zn(O,E)}static msm(E,S){return dh(O,s,E,S)}static fromPrivateKey(E){return O.BASE.multiply(Fn(s,E))}}O.BASE=new O(o.Gx,o.Gy,r.ONE),O.ZERO=new O(r.ZERO,r.ONE,r.ZERO),O.Fp=r,O.Fn=s;const R=s.BITS,A=new fh(O,t.endo?Math.ceil(R/2):R);return O.BASE.precompute(8),O}function gh(e){return Uint8Array.of(e?2:3)}function mh(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function C2(e,t={}){const{Fn:n}=e,r=t.randomBytes||dr,s=Object.assign(mh(e.Fp,n),{seed:ah(n.ORDER)});function o(h){try{return!!Fn(n,h)}catch{return!1}}function i(h,g){const{publicKey:p,publicKeyUncompressed:w}=s;try{const y=h.length;return g===!0&&y!==p||g===!1&&y!==w?!1:!!e.fromBytes(h)}catch{return!1}}function a(h=r(s.seed)){return ch(Et(h,s.seed,"seed"),n.ORDER)}function c(h,g=!0){return e.BASE.multiply(Fn(n,h)).toBytes(g)}function u(h){const g=a(h);return{secretKey:g,publicKey:c(g)}}function l(h){if(typeof h=="bigint")return!1;if(h instanceof e)return!0;const{secretKey:g,publicKey:p,publicKeyUncompressed:w}=s;if(n.allowedLengths||g===p)return;const y=we("key",h).length;return y===p||y===w}function f(h,g,p=!0){if(l(h)===!0)throw new Error("first arg must be private key");if(l(g)===!1)throw new Error("second arg must be public key");const w=Fn(n,h);return e.fromHex(g).multiply(w).toBytes(p)}return Object.freeze({getPublicKey:c,getSharedSecret:f,keygen:u,Point:e,utils:{isValidSecretKey:o,isValidPublicKey:i,randomSecretKey:a,isValidPrivateKey:o,randomPrivateKey:a,normPrivateKeyToScalar:h=>Fn(n,h),precompute(h=8,g=e.BASE){return g.precompute(h,!1)}},lengths:s})}function P2(e,t,n={}){Hs(t),Wr(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||dr,s=n.hmac||((S,...b)=>In(t,S,ue(...b))),{Fp:o,Fn:i}=e,{ORDER:a,BITS:c}=i,{keygen:u,getPublicKey:l,getSharedSecret:f,utils:d,lengths:h}=C2(e,n),g={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},p="compact";function w(S){const b=a>>Ar;return S>b}function y(S,b){if(!i.isValidNot0(b))throw new Error(`invalid signature ${S}: out of range 1..Point.Fn.ORDER`);return b}function v(S,b){Ba(b);const _=h.signature,U=b==="compact"?_:b==="recovered"?_+1:void 0;return Et(S,U,`${b} signature`)}class m{constructor(b,_,U){this.r=y("r",b),this.s=y("s",_),U!=null&&(this.recovery=U),Object.freeze(this)}static fromBytes(b,_=p){v(b,_);let U;if(_==="der"){const{r:V,s:W}=Ft.toSig(Et(b));return new m(V,W)}_==="recovered"&&(U=b[0],_="compact",b=b.subarray(1));const j=i.BYTES,L=b.subarray(0,j),M=b.subarray(j,j*2);return new m(i.fromBytes(L),i.fromBytes(M),U)}static fromHex(b,_){return this.fromBytes(mt(b),_)}addRecoveryBit(b){return new m(this.r,this.s,b)}recoverPublicKey(b){const _=o.ORDER,{r:U,s:j,recovery:L}=this;if(L==null||![0,1,2,3].includes(L))throw new Error("recovery id invalid");if(a*ph<_&&L>1)throw new Error("recovery id is ambiguous for h>1 curve");const V=L===2||L===3?U+a:U;if(!o.isValid(V))throw new Error("recovery id 2 or 3 invalid");const W=o.toBytes(V),le=e.fromBytes(ue(gh((L&1)===0),W)),ce=i.inv(V),ne=k(we("msgHash",b)),pe=i.create(-ne*ce),ge=i.create(j*ce),Ne=e.BASE.multiplyUnsafe(pe).add(le.multiplyUnsafe(ge));if(Ne.is0())throw new Error("point at infinify");return Ne.assertValidity(),Ne}hasHighS(){return w(this.s)}toBytes(b=p){if(Ba(b),b==="der")return mt(Ft.hexFromSig(this));const _=i.toBytes(this.r),U=i.toBytes(this.s);if(b==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return ue(Uint8Array.of(this.recovery),_,U)}return ue(_,U)}toHex(b){return Be(this.toBytes(b))}assertValidity(){}static fromCompact(b){return m.fromBytes(we("sig",b),"compact")}static fromDER(b){return m.fromBytes(we("sig",b),"der")}normalizeS(){return this.hasHighS()?new m(this.r,i.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Be(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Be(this.toBytes("compact"))}}const x=n.bits2int||function(b){if(b.length>8192)throw new Error("input is too large");const _=hr(b),U=b.length*8-c;return U>0?_>>BigInt(U):_},k=n.bits2int_modN||function(b){return i.create(x(b))},I=Rs(c);function C(S){return As("num < 2^"+c,S,Wt,I),i.toBytes(S)}function N(S,b){return Et(S,void 0,"message"),b?Et(t(S),void 0,"prehashed message"):S}function O(S,b,_){if(["recovered","canonical"].some(pe=>pe in _))throw new Error("sign() legacy options not supported");const{lowS:U,prehash:j,extraEntropy:L}=qi(_,g);S=N(S,j);const M=k(S),V=Fn(i,b),W=[C(V),C(M)];if(L!=null&&L!==!1){const pe=L===!0?r(h.secretKey):L;W.push(we("extraEntropy",pe))}const le=ue(...W),ce=M;function ne(pe){const ge=x(pe);if(!i.isValidNot0(ge))return;const Ne=i.inv(ge),de=e.BASE.multiply(ge).toAffine(),ve=i.create(de.x);if(ve===Wt)return;const Mt=i.create(Ne*i.create(ce+ve*V));if(Mt===Wt)return;let lt=(de.x===ve?0:2)|Number(de.y&Ar),qe=Mt;return U&&w(Mt)&&(qe=i.neg(Mt),lt^=1),new m(ve,qe,lt)}return{seed:le,k2sig:ne}}function R(S,b,_={}){S=we("message",S);const{seed:U,k2sig:j}=O(S,b,_);return g2(t.outputLen,i.BYTES,s)(U,j)}function A(S){let b;const _=typeof S=="string"||Ls(S),U=!_&&S!==null&&typeof S=="object"&&typeof S.r=="bigint"&&typeof S.s=="bigint";if(!_&&!U)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(U)b=new m(S.r,S.s);else if(_){try{b=m.fromBytes(we("sig",S),"der")}catch(j){if(!(j instanceof Ft.Err))throw j}if(!b)try{b=m.fromBytes(we("sig",S),"compact")}catch{return!1}}return b||!1}function P(S,b,_,U={}){const{lowS:j,prehash:L,format:M}=qi(U,g);if(_=we("publicKey",_),b=N(we("message",b),L),"strict"in U)throw new Error("options.strict was renamed to lowS");const V=M===void 0?A(S):m.fromBytes(we("sig",S),M);if(V===!1)return!1;try{const W=e.fromBytes(_);if(j&&V.hasHighS())return!1;const{r:le,s:ce}=V,ne=k(b),pe=i.inv(ce),ge=i.create(ne*pe),Ne=i.create(le*pe),de=e.BASE.multiplyUnsafe(ge).add(W.multiplyUnsafe(Ne));return de.is0()?!1:i.create(de.x)===le}catch{return!1}}function E(S,b,_={}){const{prehash:U}=qi(_,g);return b=N(b,U),m.fromBytes(S,"recovered").recoverPublicKey(b).toBytes()}return Object.freeze({keygen:u,getPublicKey:l,getSharedSecret:f,utils:d,lengths:h,Point:e,sign:R,verify:P,recoverPublicKey:E,Signature:m,hash:t})}function U2(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},n=e.Fp;let r=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(i=>Math.ceil(i/2)))):void 0;const s=pr(t.n,{BITS:e.nBitLength,allowedLengths:r,modFromBytes:e.wrapPrivateKey}),o={Fp:n,Fn:s,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:o}}function N2(e){const{CURVE:t,curveOpts:n}=U2(e),r={hmac:e.hmac,randomBytes:e.randomBytes,lowS:e.lowS,bits2int:e.bits2int,bits2int_modN:e.bits2int_modN};return{CURVE:t,curveOpts:n,hash:e.hash,ecdsaOpts:r}}function L2(e,t){const n=t.Point;return Object.assign({},t,{ProjectivePoint:n,CURVE:Object.assign({},e,oh(n.Fn.ORDER,n.Fn.BITS))})}function H2(e){const{CURVE:t,curveOpts:n,hash:r,ecdsaOpts:s}=N2(e),o=O2(t,n),i=P2(o,r,s);return L2(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function R2(e,t){const n=r=>H2({...e,hash:r});return{...n(t),create:n}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Mr={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},j2={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},K2=BigInt(0),nl=BigInt(1),Ta=BigInt(2);function D2(e){const t=Mr.p,n=BigInt(3),r=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=Ie(l,n,t)*l%t,d=Ie(f,n,t)*l%t,h=Ie(d,Ta,t)*u%t,g=Ie(h,s,t)*h%t,p=Ie(g,o,t)*g%t,w=Ie(p,a,t)*p%t,y=Ie(w,c,t)*w%t,v=Ie(y,a,t)*p%t,m=Ie(v,n,t)*l%t,x=Ie(m,i,t)*g%t,k=Ie(x,r,t)*u%t,I=Ie(k,Ta,t);if(!Mo.eql(Mo.sqr(I),e))throw new Error("Cannot find square root");return I}const Mo=pr(Mr.p,{sqrt:D2}),_e=R2({...Mr,Fp:Mo,lowS:!0,endo:j2},Ee),rl={};function Zo(e,...t){let n=rl[e];if(n===void 0){const r=Ee(Ke(e));n=ue(r,r),rl[e]=n}return Ee(ue(n,...t))}const Uc=e=>e.toBytes(!0).slice(1),Gr=_e.Point,Nc=e=>e%Ta===K2;function Ia(e){const{Fn:t,BASE:n}=Gr,r=Fn(t,e),s=n.multiply(r);return{scalar:Nc(s.y)?r:t.neg(r),bytes:Uc(s)}}function yh(e){const t=Mo;if(!t.isValidNot0(e))throw new Error("invalid x: Fail if x ≥ p");const n=t.create(e*e),r=t.create(n*e+BigInt(7));let s=t.sqrt(r);Nc(s)||(s=t.neg(s));const o=Gr.fromAffine({x:e,y:s});return o.assertValidity(),o}const ls=hr;function wh(...e){return Gr.Fn.create(ls(Zo("BIP0340/challenge",...e)))}function sl(e){return Ia(e).bytes}function M2(e,t,n=dr(32)){const{Fn:r}=Gr,s=we("message",e),{bytes:o,scalar:i}=Ia(t),a=we("auxRand",n,32),c=r.toBytes(i^ls(Zo("BIP0340/aux",a))),u=Zo("BIP0340/nonce",c,o,s),{bytes:l,scalar:f}=Ia(u),d=wh(l,o,s),h=new Uint8Array(64);if(h.set(l,0),h.set(r.toBytes(r.create(f+d*i)),32),!bh(h,s,o))throw new Error("sign: Invalid signature produced");return h}function bh(e,t,n){const{Fn:r,BASE:s}=Gr,o=we("signature",e,64),i=we("message",t),a=we("publicKey",n,32);try{const c=yh(ls(a)),u=ls(o.subarray(0,32));if(!Aa(u,nl,Mr.p))return!1;const l=ls(o.subarray(32,64));if(!Aa(l,nl,Mr.n))return!1;const f=wh(r.toBytes(u),Uc(c),i),d=s.multiplyUnsafe(l).add(c.multiplyUnsafe(r.neg(f))),{x:h,y:g}=d.toAffine();return!(d.is0()||!Nc(g)||h!==u)}catch{return!1}}const On=(()=>{const n=(s=dr(48))=>ch(s,Mr.n);_e.utils.randomSecretKey;function r(s){const o=n(s);return{secretKey:o,publicKey:sl(o)}}return{keygen:r,getPublicKey:sl,sign:M2,verify:bh,Point:Gr,utils:{randomSecretKey:n,randomPrivateKey:n,taggedHash:Zo,lift_x:yh,pointToBytes:Uc,numberToBytesBE:di,bytesToNumberBE:hr,mod:Se},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),Z2=BigInt(0),ns=BigInt(1),V2=BigInt(2),q2=BigInt(7),z2=BigInt(256),F2=BigInt(113),xh=[],vh=[],kh=[];for(let e=0,t=ns,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],xh.push(2*(5*r+n)),vh.push((e+1)*(e+2)/2%64);let s=Z2;for(let o=0;o<7;o++)t=(t<>q2)*F2)%z2,t&V2&&(s^=ns<<(ns<n>32?n2(e,t,n):e2(e,t,n),il=(e,t,n)=>n>32?r2(e,t,n):t2(e,t,n);function Y2(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let i=0;i<10;i++)n[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){const a=(i+8)%10,c=(i+2)%10,u=n[c],l=n[c+1],f=ol(u,l,1)^n[a],d=il(u,l,1)^n[a+1];for(let h=0;h<50;h+=10)e[i+h]^=f,e[i+h+1]^=d}let s=e[2],o=e[3];for(let i=0;i<24;i++){const a=vh[i],c=ol(s,o,a),u=il(s,o,a),l=xh[i];s=e[l],o=e[l+1],e[l]=c,e[l+1]=u}for(let i=0;i<50;i+=10){for(let a=0;a<10;a++)n[a]=e[i+a];for(let a=0;a<10;a++)e[i+a]^=~n[(a+2)%10]&n[(a+4)%10]}e[0]^=W2[r],e[1]^=G2[r]}gt(n)}class Lc extends Tc{constructor(t,n,r,s=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=o,Lt(r),!(0=r&&this.keccak();const i=Math.min(r-this.posOut,o-s);t.set(n.subarray(this.posOut,this.posOut+i),s),this.posOut+=i,s+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Lt(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Vd(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,gt(this.state)}_cloneInto(t){const{blockLen:n,suffix:r,outputLen:s,rounds:o,enableXOF:i}=this;return t||(t=new Lc(n,r,s,i,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=s,t.enableXOF=i,t.destroyed=this.destroyed,t}}const X2=(e,t,n)=>fi(()=>new Lc(t,e,n)),Hc=X2(1,136,256/8),J2=Uint8Array.from([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),$h=Uint8Array.from(new Array(16).fill(0).map((e,t)=>t)),Q2=$h.map(e=>(9*e+5)%16),Sh=(()=>{const n=[[$h],[Q2]];for(let r=0;r<4;r++)for(let s of n)s.push(s[r].map(o=>J2[o]));return n})(),_h=Sh[0],Ah=Sh[1],Bh=[[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)),ev=_h.map((e,t)=>e.map(n=>Bh[t][n])),tv=Ah.map((e,t)=>e.map(n=>Bh[t][n])),nv=Uint32Array.from([0,1518500249,1859775393,2400959708,2840853838]),rv=Uint32Array.from([1352829926,1548603684,1836072691,2053994217,0]);function al(e,t,n,r){return e===0?t^n^r:e===1?t&n|~t&r:e===2?(t|~n)^r:e===3?t&r|n&~r:t^(n|~r)}const to=new Uint32Array(16);class sv extends Ic{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:n,h2:r,h3:s,h4:o}=this;return[t,n,r,s,o]}set(t,n,r,s,o){this.h0=t|0,this.h1=n|0,this.h2=r|0,this.h3=s|0,this.h4=o|0}process(t,n){for(let h=0;h<16;h++,n+=4)to[h]=t.getUint32(n,!0);let r=this.h0|0,s=r,o=this.h1|0,i=o,a=this.h2|0,c=a,u=this.h3|0,l=u,f=this.h4|0,d=f;for(let h=0;h<5;h++){const g=4-h,p=nv[h],w=rv[h],y=_h[h],v=Ah[h],m=ev[h],x=tv[h];for(let k=0;k<16;k++){const I=Gs(r+al(h,o,a,u)+to[y[k]]+p,m[k])+f|0;r=f,f=u,u=Gs(a,10)|0,a=o,o=I}for(let k=0;k<16;k++){const I=Gs(s+al(g,i,c,l)+to[v[k]]+w,x[k])+d|0;s=d,d=l,l=Gs(c,10)|0,c=i,i=I}}this.set(this.h1+a+l|0,this.h2+u+d|0,this.h3+f+s|0,this.h4+r+i|0,this.h0+o+c|0)}roundClean(){gt(to)}destroy(){this.destroyed=!0,gt(this.buffer),this.set(0,0,0,0,0)}}const Rc=fi(()=>new sv);/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Zr(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function ov(e,...t){if(!Zr(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 Th(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function Ih(e){if(typeof e!="function")throw new Error("function expected");return!0}function rr(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function Yr(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Vo(e){if(!Array.isArray(e))throw new Error("array expected")}function qo(e,t){if(!Th(!0,t))throw new Error(`${e}: array of strings expected`)}function jc(e,t){if(!Th(!1,t))throw new Error(`${e}: array of numbers expected`)}function js(...e){const t=o=>o,n=(o,i)=>a=>o(i(a)),r=e.map(o=>o.encode).reduceRight(n,t),s=e.map(o=>o.decode).reduce(n,t);return{encode:r,decode:s}}function hi(e){const t=typeof e=="string"?e.split(""):e,n=t.length;qo("alphabet",t);const r=new Map(t.map((s,o)=>[s,o]));return{encode:s=>(Vo(s),s.map(o=>{if(!Number.isSafeInteger(o)||o<0||o>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${o}". Allowed: ${e}`);return t[o]})),decode:s=>(Vo(s),s.map(o=>{rr("alphabet.decode",o);const i=r.get(o);if(i===void 0)throw new Error(`Unknown letter: "${o}". Allowed: ${e}`);return i}))}}function pi(e=""){return rr("join",e),{encode:t=>(qo("join.decode",t),t.join(e)),decode:t=>(rr("join.decode",t),t.split(e))}}function Oh(e,t="="){return Yr(e),rr("padding",t),{encode(n){for(qo("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){qo("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)}}}function Oa(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(Vo(e),!e.length)return[];let r=0;const s=[],o=Array.from(e,a=>{if(Yr(a),a<0||a>=t)throw new Error(`invalid integer: ${a}`);return a}),i=o.length;for(;;){let a=0,c=!0;for(let u=r;ut===0?e:Ch(t,e%t),zo=(e,t)=>e+(t-Ch(e,t)),po=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function Fo(e,t,n,r){if(Vo(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(zo(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${zo(t,n)}`);let s=0,o=0;const i=po[t],a=po[n]-1,c=[];for(const u of e){if(Yr(u),u>=i)throw new Error(`convertRadix2: invalid data word=${u} from=${t}`);if(s=s<32)throw new Error(`convertRadix2: carry overflow pos=${o} from=${t}`);for(o+=t;o>=n;o-=n)c.push((s>>o-n&a)>>>0);const l=po[o];if(l===void 0)throw new Error("invalid carry");s&=l-1}if(s=s<=t)throw new Error("Excess padding");if(!r&&s>0)throw new Error(`Non-zero padding: ${s}`);return r&&o>0&&c.push(s>>>0),c}function Ph(e){Yr(e);const t=2**8;return{encode:n=>{if(!Zr(n))throw new Error("radix.encode input should be Uint8Array");return Oa(Array.from(n),t,e)},decode:n=>(jc("radix.decode",n),Uint8Array.from(Oa(n,e,t)))}}function Kc(e,t=!1){if(Yr(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(zo(8,e)>32||zo(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Zr(n))throw new Error("radix2.encode input should be Uint8Array");return Fo(Array.from(n),8,e,!t)},decode:n=>(jc("radix2.decode",n),Uint8Array.from(Fo(n,e,8,t)))}}function cl(e){return Ih(e),function(...t){try{return e.apply(null,t)}catch{}}}function Uh(e,t){return Yr(e),Ih(t),{encode(n){if(!Zr(n))throw new Error("checksum.encode: input should be Uint8Array");const r=t(n).slice(0,e),s=new Uint8Array(n.length+e);return s.set(n),s.set(r,n.length),s},decode(n){if(!Zr(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-e),s=n.slice(-e),o=t(r).slice(0,e);for(let i=0;i{rr("base64",e);const n=/^[A-Za-z0-9=+/]+$/,r="base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})},pt=iv?{encode(e){return ov(e),e.toBase64()},decode(e){return av(e)}}:js(Kc(6),hi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Oh(6),pi("")),cv=e=>js(Ph(58),hi(e),pi("")),uv=cv("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),Nh=e=>js(Uh(4,t=>e(e(t))),uv),Ca=js(hi("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),pi("")),ul=[996825010,642813549,513874426,1027748829,705979059];function rs(e){const t=e>>25;let n=(e&33554431)<<5;for(let r=0;r>r&1)===1&&(n^=ul[r]);return n}function ll(e,t,n=1){const r=e.length;let s=1;for(let o=0;o126)throw new Error(`Invalid prefix (${e})`);s=rs(s)^i>>5}s=rs(s);for(let o=0;oh)throw new TypeError(`Length ${p} exceeds limit ${h}`);const w=f.toLowerCase(),y=ll(w,d,t);return`${w}1${Ca.encode(d)}${y}`}function a(f,d=90){rr("bech32.decode input",f);const h=f.length;if(h<8||d!==!1&&h>d)throw new TypeError(`invalid string length: ${h} (${f}). Expected (8..${d})`);const g=f.toLowerCase();if(f!==g&&f!==f.toUpperCase())throw new Error("String must be lowercase or uppercase");const p=g.lastIndexOf("1");if(p===0||p===-1)throw new Error('Letter "1" must be present between prefix and data only');const w=g.slice(0,p),y=g.slice(p+1);if(y.length<6)throw new Error("Data must be at least 6 characters long");const v=Ca.decode(y).slice(0,-6),m=ll(w,v,t);if(!y.endsWith(m))throw new Error(`Invalid checksum in ${f}: expected "${m}"`);return{prefix:w,words:v}}const c=cl(a);function u(f){const{prefix:d,words:h}=a(f,!1);return{prefix:d,words:h,bytes:r(h)}}function l(f,d){return i(f,s(d))}return{encode:i,decode:a,encodeFromBytes:l,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:o,toWords:s}}const sr=Lh("bech32"),lv=Lh("bech32m");/*! scure-bip32 - MIT License (c) 2022 Patricio Palladino, Paul Miller (paulmillr.com) */const ro=_e.ProjectivePoint,zi=Nh(Ee);function fl(e){Me(e);const t=e.length===0?"0":Be(e);return BigInt("0x"+t)}function fv(e){if(typeof e!="bigint")throw new Error("bigint expected");return mt(e.toString(16).padStart(64,"0"))}const dv=Ke("Bitcoin seed"),Fi={private:76066276,public:76067358},Wi=2147483648,hv=e=>Rc(Ee(e)),pv=e=>Gn(e).getUint32(0,!1),so=e=>{if(!Number.isSafeInteger(e)||e<0||e>2**32-1)throw new Error("invalid number, should be from 0 to 2**32-1, got "+e);const t=new Uint8Array(4);return Gn(t).setUint32(0,e,!1),t};class Kn{get fingerprint(){if(!this.pubHash)throw new Error("No publicKey set!");return pv(this.pubHash)}get identifier(){return this.pubHash}get pubKeyHash(){return this.pubHash}get privateKey(){return this.privKeyBytes||null}get publicKey(){return this.pubKey||null}get privateExtendedKey(){const t=this.privateKey;if(!t)throw new Error("No private key");return zi.encode(this.serialize(this.versions.private,ue(new Uint8Array([0]),t)))}get publicExtendedKey(){if(!this.pubKey)throw new Error("No public key");return zi.encode(this.serialize(this.versions.public,this.pubKey))}static fromMasterSeed(t,n=Fi){if(Me(t),8*t.length<128||8*t.length>512)throw new Error("HDKey: seed length must be between 128 and 512 bits; 256 bits is advised, got "+t.length);const r=In(_s,dv,t);return new Kn({versions:n,chainCode:r.slice(32),privateKey:r.slice(0,32)})}static fromExtendedKey(t,n=Fi){const r=zi.decode(t),s=Gn(r),o=s.getUint32(0,!1),i={versions:n,depth:r[4],parentFingerprint:s.getUint32(5,!1),index:s.getUint32(9,!1),chainCode:r.slice(13,45)},a=r.slice(45),c=a[0]===0;if(o!==n[c?"private":"public"])throw new Error("Version mismatch");return c?new Kn({...i,privateKey:a.slice(1)}):new Kn({...i,publicKey:a})}static fromJSON(t){return Kn.fromExtendedKey(t.xpriv)}constructor(t){if(this.depth=0,this.index=0,this.chainCode=null,this.parentFingerprint=0,!t||typeof t!="object")throw new Error("HDKey.constructor must not be called directly");if(this.versions=t.versions||Fi,this.depth=t.depth||0,this.chainCode=t.chainCode||null,this.index=t.index||0,this.parentFingerprint=t.parentFingerprint||0,!this.depth&&(this.parentFingerprint||this.index))throw new Error("HDKey: zero depth with non-zero index/parent fingerprint");if(t.publicKey&&t.privateKey)throw new Error("HDKey: publicKey and privateKey at same time.");if(t.privateKey){if(!_e.utils.isValidPrivateKey(t.privateKey))throw new Error("Invalid private key");this.privKey=typeof t.privateKey=="bigint"?t.privateKey:fl(t.privateKey),this.privKeyBytes=fv(this.privKey),this.pubKey=_e.getPublicKey(t.privateKey,!0)}else if(t.publicKey)this.pubKey=ro.fromHex(t.publicKey).toRawBytes(!0);else throw new Error("HDKey: no public or private key provided");this.pubHash=hv(this.pubKey)}derive(t){if(!/^[mM]'?/.test(t))throw new Error('Path must start with "m" or "M"');if(/^[mM]'?$/.test(t))return this;const n=t.replace(/^[mM]'?\//,"").split("/");let r=this;for(const s of n){const o=/^(\d+)('?)$/.exec(s),i=o&&o[1];if(!o||o.length!==3||typeof i!="string")throw new Error("invalid child index: "+s);let a=+i;if(!Number.isSafeInteger(a)||a>=Wi)throw new Error("Invalid index");o[2]==="'"&&(a+=Wi),r=r.deriveChild(a)}return r}deriveChild(t){if(!this.pubKey||!this.chainCode)throw new Error("No publicKey or chainCode set");let n=so(t);if(t>=Wi){const a=this.privateKey;if(!a)throw new Error("Could not derive hardened child key");n=ue(new Uint8Array([0]),a,n)}else n=ue(this.pubKey,n);const r=In(_s,this.chainCode,n),s=fl(r.slice(0,32)),o=r.slice(32);if(!_e.utils.isValidPrivateKey(s))throw new Error("Tweak bigger than curve order");const i={versions:this.versions,chainCode:o,depth:this.depth+1,parentFingerprint:this.fingerprint,index:t};try{if(this.privateKey){const a=Se(this.privKey+s,_e.CURVE.n);if(!_e.utils.isValidPrivateKey(a))throw new Error("The tweak was out of range or the resulted private key is invalid");i.privateKey=a}else{const a=ro.fromHex(this.pubKey).add(ro.fromPrivateKey(s));if(a.equals(ro.ZERO))throw new Error("The tweak was equal to negative P, which made the result key invalid");i.publicKey=a.toRawBytes(!0)}return new Kn(i)}catch{return this.deriveChild(t+1)}}sign(t){if(!this.privateKey)throw new Error("No privateKey set!");return Me(t,32),_e.sign(t,this.privKey).toCompactRawBytes()}verify(t,n){if(Me(t,32),Me(n,64),!this.publicKey)throw new Error("No publicKey set!");let r;try{r=_e.Signature.fromCompact(n)}catch{return!1}return _e.verify(r,t,this.publicKey)}wipePrivateData(){return this.privKey=void 0,this.privKeyBytes&&(this.privKeyBytes.fill(0),this.privKeyBytes=void 0),this}toJSON(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}}serialize(t,n){if(!this.chainCode)throw new Error("No chainCode set");return Me(n,33),ue(so(t),new Uint8Array([this.depth]),so(this.parentFingerprint),so(this.index),this.chainCode,n)}}function gv(e,t,n,r){Hs(e);const s=Gx({dkLen:32,asyncTick:10},r),{c:o,dkLen:i,asyncTick:a}=s;if(Lt(o),Lt(i),Lt(a),o<1)throw new Error("iterations (c) should be >= 1");const c=qu(t),u=qu(n),l=new Uint8Array(i),f=In.create(e,c),d=f._cloneInto().update(u);return{c:o,dkLen:i,asyncTick:a,DK:l,PRF:f,PRFSalt:d}}function mv(e,t,n,r,s){return e.destroy(),t.destroy(),r&&r.destroy(),gt(s),n}function yv(e,t,n,r){const{c:s,dkLen:o,DK:i,PRF:a,PRFSalt:c}=gv(e,t,n,r);let u;const l=new Uint8Array(4),f=Gn(l),d=new Uint8Array(a.outputLen);for(let h=1,g=0;ge[0]==="あいこくしん";function Hh(e){if(typeof e!="string")throw new TypeError("invalid mnemonic type: "+typeof e);return e.normalize("NFKD")}function Rh(e){const t=Hh(e),n=t.split(" ");if(![12,15,18,21,24].includes(n.length))throw new Error("Invalid mnemonic");return{nfkd:t,words:n}}function jh(e){Me(e,16,20,24,28,32)}function bv(e,t=128){if(Lt(t),t%32!==0||t>256)throw new TypeError("Invalid entropy");return Dh(dr(t/8),e)}const xv=e=>{const t=8-e.length/4;return new Uint8Array([Ee(e)[0]>>t<{if(typeof t!="string")throw new Error("wordlist: non-string element: "+t)}),no.chain(no.checksum(1,xv),no.radix2(11,!0),no.alphabet(e))}function vv(e,t){const{words:n}=Rh(e),r=Kh(t).decode(n);return jh(r),r}function Dh(e,t){return jh(e),Kh(t).encode(e).join(wv(t)?" ":" ")}function kv(e,t){try{vv(e,t)}catch{return!1}return!0}const Ev=e=>Hh("mnemonic"+e);function $v(e,t=""){return yv(_s,Rh(e).nfkd,Ev(t),{c:2048,dkLen:64})}const Dc=`abandon +ability +able +about +above +absent +absorb +abstract +absurd +abuse +access +accident +account +accuse +achieve +acid +acoustic +acquire +across +act +action +actor +actress +actual +adapt +add +addict +address +adjust +admit +adult +advance +advice +aerobic +affair +afford +afraid +again +age +agent +agree +ahead +aim +air +airport +aisle +alarm +album +alcohol +alert +alien +all +alley +allow +almost +alone +alpha +already +also +alter +always +amateur +amazing +among +amount +amused +analyst +anchor +ancient +anger +angle +angry +animal +ankle +announce +annual +another +answer +antenna +antique +anxiety +any +apart +apology +appear +apple +approve +april +arch +arctic +area +arena +argue +arm +armed +armor +army +around +arrange +arrest +arrive +arrow +art +artefact +artist +artwork +ask +aspect +assault +asset +assist +assume +asthma +athlete +atom +attack +attend +attitude +attract +auction +audit +august +aunt +author +auto +autumn +average +avocado +avoid +awake +aware +away +awesome +awful +awkward +axis +baby +bachelor +bacon +badge +bag +balance +balcony +ball +bamboo +banana +banner +bar +barely +bargain +barrel +base +basic +basket +battle +beach +bean +beauty +because +become +beef +before +begin +behave +behind +believe +below +belt +bench +benefit +best +betray +better +between +beyond +bicycle +bid +bike +bind +biology +bird +birth +bitter +black +blade +blame +blanket +blast +bleak +bless +blind +blood +blossom +blouse +blue +blur +blush +board +boat +body +boil +bomb +bone +bonus +book +boost +border +boring +borrow +boss +bottom +bounce +box +boy +bracket +brain +brand +brass +brave +bread +breeze +brick +bridge +brief +bright +bring +brisk +broccoli +broken +bronze +broom +brother +brown +brush +bubble +buddy +budget +buffalo +build +bulb +bulk +bullet +bundle +bunker +burden +burger +burst +bus +business +busy +butter +buyer +buzz +cabbage +cabin +cable +cactus +cage +cake +call +calm +camera +camp +can +canal +cancel +candy +cannon +canoe +canvas +canyon +capable +capital +captain +car +carbon +card +cargo +carpet +carry +cart +case +cash +casino +castle +casual +cat +catalog +catch +category +cattle +caught +cause +caution +cave +ceiling +celery +cement +census +century +cereal +certain +chair +chalk +champion +change +chaos +chapter +charge +chase +chat +cheap +check +cheese +chef +cherry +chest +chicken +chief +child +chimney +choice +choose +chronic +chuckle +chunk +churn +cigar +cinnamon +circle +citizen +city +civil +claim +clap +clarify +claw +clay +clean +clerk +clever +click +client +cliff +climb +clinic +clip +clock +clog +close +cloth +cloud +clown +club +clump +cluster +clutch +coach +coast +coconut +code +coffee +coil +coin +collect +color +column +combine +come +comfort +comic +common +company +concert +conduct +confirm +congress +connect +consider +control +convince +cook +cool +copper +copy +coral +core +corn +correct +cost +cotton +couch +country +couple +course +cousin +cover +coyote +crack +cradle +craft +cram +crane +crash +crater +crawl +crazy +cream +credit +creek +crew +cricket +crime +crisp +critic +crop +cross +crouch +crowd +crucial +cruel +cruise +crumble +crunch +crush +cry +crystal +cube +culture +cup +cupboard +curious +current +curtain +curve +cushion +custom +cute +cycle +dad +damage +damp +dance +danger +daring +dash +daughter +dawn +day +deal +debate +debris +decade +december +decide +decline +decorate +decrease +deer +defense +define +defy +degree +delay +deliver +demand +demise +denial +dentist +deny +depart +depend +deposit +depth +deputy +derive +describe +desert +design +desk +despair +destroy +detail +detect +develop +device +devote +diagram +dial +diamond +diary +dice +diesel +diet +differ +digital +dignity +dilemma +dinner +dinosaur +direct +dirt +disagree +discover +disease +dish +dismiss +disorder +display +distance +divert +divide +divorce +dizzy +doctor +document +dog +doll +dolphin +domain +donate +donkey +donor +door +dose +double +dove +draft +dragon +drama +drastic +draw +dream +dress +drift +drill +drink +drip +drive +drop +drum +dry +duck +dumb +dune +during +dust +dutch +duty +dwarf +dynamic +eager +eagle +early +earn +earth +easily +east +easy +echo +ecology +economy +edge +edit +educate +effort +egg +eight +either +elbow +elder +electric +elegant +element +elephant +elevator +elite +else +embark +embody +embrace +emerge +emotion +employ +empower +empty +enable +enact +end +endless +endorse +enemy +energy +enforce +engage +engine +enhance +enjoy +enlist +enough +enrich +enroll +ensure +enter +entire +entry +envelope +episode +equal +equip +era +erase +erode +erosion +error +erupt +escape +essay +essence +estate +eternal +ethics +evidence +evil +evoke +evolve +exact +example +excess +exchange +excite +exclude +excuse +execute +exercise +exhaust +exhibit +exile +exist +exit +exotic +expand +expect +expire +explain +expose +express +extend +extra +eye +eyebrow +fabric +face +faculty +fade +faint +faith +fall +false +fame +family +famous +fan +fancy +fantasy +farm +fashion +fat +fatal +father +fatigue +fault +favorite +feature +february +federal +fee +feed +feel +female +fence +festival +fetch +fever +few +fiber +fiction +field +figure +file +film +filter +final +find +fine +finger +finish +fire +firm +first +fiscal +fish +fit +fitness +fix +flag +flame +flash +flat +flavor +flee +flight +flip +float +flock +floor +flower +fluid +flush +fly +foam +focus +fog +foil +fold +follow +food +foot +force +forest +forget +fork +fortune +forum +forward +fossil +foster +found +fox +fragile +frame +frequent +fresh +friend +fringe +frog +front +frost +frown +frozen +fruit +fuel +fun +funny +furnace +fury +future +gadget +gain +galaxy +gallery +game +gap +garage +garbage +garden +garlic +garment +gas +gasp +gate +gather +gauge +gaze +general +genius +genre +gentle +genuine +gesture +ghost +giant +gift +giggle +ginger +giraffe +girl +give +glad +glance +glare +glass +glide +glimpse +globe +gloom +glory +glove +glow +glue +goat +goddess +gold +good +goose +gorilla +gospel +gossip +govern +gown +grab +grace +grain +grant +grape +grass +gravity +great +green +grid +grief +grit +grocery +group +grow +grunt +guard +guess +guide +guilt +guitar +gun +gym +habit +hair +half +hammer +hamster +hand +happy +harbor +hard +harsh +harvest +hat +have +hawk +hazard +head +health +heart +heavy +hedgehog +height +hello +helmet +help +hen +hero +hidden +high +hill +hint +hip +hire +history +hobby +hockey +hold +hole +holiday +hollow +home +honey +hood +hope +horn +horror +horse +hospital +host +hotel +hour +hover +hub +huge +human +humble +humor +hundred +hungry +hunt +hurdle +hurry +hurt +husband +hybrid +ice +icon +idea +identify +idle +ignore +ill +illegal +illness +image +imitate +immense +immune +impact +impose +improve +impulse +inch +include +income +increase +index +indicate +indoor +industry +infant +inflict +inform +inhale +inherit +initial +inject +injury +inmate +inner +innocent +input +inquiry +insane +insect +inside +inspire +install +intact +interest +into +invest +invite +involve +iron +island +isolate +issue +item +ivory +jacket +jaguar +jar +jazz +jealous +jeans +jelly +jewel +job +join +joke +journey +joy +judge +juice +jump +jungle +junior +junk +just +kangaroo +keen +keep +ketchup +key +kick +kid +kidney +kind +kingdom +kiss +kit +kitchen +kite +kitten +kiwi +knee +knife +knock +know +lab +label +labor +ladder +lady +lake +lamp +language +laptop +large +later +latin +laugh +laundry +lava +law +lawn +lawsuit +layer +lazy +leader +leaf +learn +leave +lecture +left +leg +legal +legend +leisure +lemon +lend +length +lens +leopard +lesson +letter +level +liar +liberty +library +license +life +lift +light +like +limb +limit +link +lion +liquid +list +little +live +lizard +load +loan +lobster +local +lock +logic +lonely +long +loop +lottery +loud +lounge +love +loyal +lucky +luggage +lumber +lunar +lunch +luxury +lyrics +machine +mad +magic +magnet +maid +mail +main +major +make +mammal +man +manage +mandate +mango +mansion +manual +maple +marble +march +margin +marine +market +marriage +mask +mass +master +match +material +math +matrix +matter +maximum +maze +meadow +mean +measure +meat +mechanic +medal +media +melody +melt +member +memory +mention +menu +mercy +merge +merit +merry +mesh +message +metal +method +middle +midnight +milk +million +mimic +mind +minimum +minor +minute +miracle +mirror +misery +miss +mistake +mix +mixed +mixture +mobile +model +modify +mom +moment +monitor +monkey +monster +month +moon +moral +more +morning +mosquito +mother +motion +motor +mountain +mouse +move +movie +much +muffin +mule +multiply +muscle +museum +mushroom +music +must +mutual +myself +mystery +myth +naive +name +napkin +narrow +nasty +nation +nature +near +neck +need +negative +neglect +neither +nephew +nerve +nest +net +network +neutral +never +news +next +nice +night +noble +noise +nominee +noodle +normal +north +nose +notable +note +nothing +notice +novel +now +nuclear +number +nurse +nut +oak +obey +object +oblige +obscure +observe +obtain +obvious +occur +ocean +october +odor +off +offer +office +often +oil +okay +old +olive +olympic +omit +once +one +onion +online +only +open +opera +opinion +oppose +option +orange +orbit +orchard +order +ordinary +organ +orient +original +orphan +ostrich +other +outdoor +outer +output +outside +oval +oven +over +own +owner +oxygen +oyster +ozone +pact +paddle +page +pair +palace +palm +panda +panel +panic +panther +paper +parade +parent +park +parrot +party +pass +patch +path +patient +patrol +pattern +pause +pave +payment +peace +peanut +pear +peasant +pelican +pen +penalty +pencil +people +pepper +perfect +permit +person +pet +phone +photo +phrase +physical +piano +picnic +picture +piece +pig +pigeon +pill +pilot +pink +pioneer +pipe +pistol +pitch +pizza +place +planet +plastic +plate +play +please +pledge +pluck +plug +plunge +poem +poet +point +polar +pole +police +pond +pony +pool +popular +portion +position +possible +post +potato +pottery +poverty +powder +power +practice +praise +predict +prefer +prepare +present +pretty +prevent +price +pride +primary +print +priority +prison +private +prize +problem +process +produce +profit +program +project +promote +proof +property +prosper +protect +proud +provide +public +pudding +pull +pulp +pulse +pumpkin +punch +pupil +puppy +purchase +purity +purpose +purse +push +put +puzzle +pyramid +quality +quantum +quarter +question +quick +quit +quiz +quote +rabbit +raccoon +race +rack +radar +radio +rail +rain +raise +rally +ramp +ranch +random +range +rapid +rare +rate +rather +raven +raw +razor +ready +real +reason +rebel +rebuild +recall +receive +recipe +record +recycle +reduce +reflect +reform +refuse +region +regret +regular +reject +relax +release +relief +rely +remain +remember +remind +remove +render +renew +rent +reopen +repair +repeat +replace +report +require +rescue +resemble +resist +resource +response +result +retire +retreat +return +reunion +reveal +review +reward +rhythm +rib +ribbon +rice +rich +ride +ridge +rifle +right +rigid +ring +riot +ripple +risk +ritual +rival +river +road +roast +robot +robust +rocket +romance +roof +rookie +room +rose +rotate +rough +round +route +royal +rubber +rude +rug +rule +run +runway +rural +sad +saddle +sadness +safe +sail +salad +salmon +salon +salt +salute +same +sample +sand +satisfy +satoshi +sauce +sausage +save +say +scale +scan +scare +scatter +scene +scheme +school +science +scissors +scorpion +scout +scrap +screen +script +scrub +sea +search +season +seat +second +secret +section +security +seed +seek +segment +select +sell +seminar +senior +sense +sentence +series +service +session +settle +setup +seven +shadow +shaft +shallow +share +shed +shell +sheriff +shield +shift +shine +ship +shiver +shock +shoe +shoot +shop +short +shoulder +shove +shrimp +shrug +shuffle +shy +sibling +sick +side +siege +sight +sign +silent +silk +silly +silver +similar +simple +since +sing +siren +sister +situate +six +size +skate +sketch +ski +skill +skin +skirt +skull +slab +slam +sleep +slender +slice +slide +slight +slim +slogan +slot +slow +slush +small +smart +smile +smoke +smooth +snack +snake +snap +sniff +snow +soap +soccer +social +sock +soda +soft +solar +soldier +solid +solution +solve +someone +song +soon +sorry +sort +soul +sound +soup +source +south +space +spare +spatial +spawn +speak +special +speed +spell +spend +sphere +spice +spider +spike +spin +spirit +split +spoil +sponsor +spoon +sport +spot +spray +spread +spring +spy +square +squeeze +squirrel +stable +stadium +staff +stage +stairs +stamp +stand +start +state +stay +steak +steel +stem +step +stereo +stick +still +sting +stock +stomach +stone +stool +story +stove +strategy +street +strike +strong +struggle +student +stuff +stumble +style +subject +submit +subway +success +such +sudden +suffer +sugar +suggest +suit +summer +sun +sunny +sunset +super +supply +supreme +sure +surface +surge +surprise +surround +survey +suspect +sustain +swallow +swamp +swap +swarm +swear +sweet +swift +swim +swing +switch +sword +symbol +symptom +syrup +system +table +tackle +tag +tail +talent +talk +tank +tape +target +task +taste +tattoo +taxi +teach +team +tell +ten +tenant +tennis +tent +term +test +text +thank +that +theme +then +theory +there +they +thing +this +thought +three +thrive +throw +thumb +thunder +ticket +tide +tiger +tilt +timber +time +tiny +tip +tired +tissue +title +toast +tobacco +today +toddler +toe +together +toilet +token +tomato +tomorrow +tone +tongue +tonight +tool +tooth +top +topic +topple +torch +tornado +tortoise +toss +total +tourist +toward +tower +town +toy +track +trade +traffic +tragic +train +transfer +trap +trash +travel +tray +treat +tree +trend +trial +tribe +trick +trigger +trim +trip +trophy +trouble +truck +true +truly +trumpet +trust +truth +try +tube +tuition +tumble +tuna +tunnel +turkey +turn +turtle +twelve +twenty +twice +twin +twist +two +type +typical +ugly +umbrella +unable +unaware +uncle +uncover +under +undo +unfair +unfold +unhappy +uniform +unique +unit +universe +unknown +unlock +until +unusual +unveil +update +upgrade +uphold +upon +upper +upset +urban +urge +usage +use +used +useful +useless +usual +utility +vacant +vacuum +vague +valid +valley +valve +van +vanish +vapor +various +vast +vault +vehicle +velvet +vendor +venture +venue +verb +verify +version +very +vessel +veteran +viable +vibrant +vicious +victory +video +view +village +vintage +violin +virtual +virus +visa +visit +visual +vital +vivid +vocal +voice +void +volcano +volume +vote +voyage +wage +wagon +wait +walk +wall +walnut +want +warfare +warm +warrior +wash +wasp +waste +water +wave +way +wealth +weapon +wear +weasel +weather +web +wedding +weekend +weird +welcome +west +wet +whale +what +wheat +wheel +when +where +whip +whisper +wide +width +wife +wild +will +win +window +wine +wing +wink +winner +winter +wire +wisdom +wise +wish +witness +wolf +woman +wonder +wood +wool +word +work +world +worry +worth +wrap +wreck +wrestle +wrist +write +wrong +yard +year +yellow +you +young +youth +zebra +zero +zone +zoo`.split(` +`),nt={orgSeed:e=>`m/83696968'/39'/0'/24'/${e}'`,wallet:(e,t=1)=>`m/86'/${t}'/${e}'/0/0`,segwit:(e,t=1)=>`m/84'/${t}'/${e}'/0/0`,nostr:e=>`m/44'/1237'/${e}'/0/0`,ethereum:e=>`m/44'/60'/${e}'/0/0`},Sv=2**31-1,Gi=new Map,Yi=new Map,dl=()=>bv(Dc,256);function Mh(e,t=0){if(typeof e!="string"||!kv(e,Dc)||t&&e.split(" ").length!==t)throw new Error("Invalid lab mnemonic.");return e}function Ln(e,t){if(!Number.isSafeInteger(e)||e<0||e>Sv)throw new Error(`Invalid ${t}.`);return e}const Xi=new Map;function Mc(e){return Xi.has(e)||Xi.set(e,$v(Mh(e))),Xi.get(e)}function Hn(e){return Gi.has(e)||Gi.set(e,Kn.fromMasterSeed(Mc(e))),Gi.get(e)}function _v(e,t){const n=e.derive(t).privateKey;if(!n)throw new Error("BIP-85 path produced no private key.");return In(_s,Ke("bip-entropy-from-k"),n)}function Av(e,t){const n=`${e}|${Ln(t,"child index")}`;return Yi.has(n)||Yi.set(n,Dh(_v(Hn(e),nt.orgSeed(t)).slice(0,32),Dc)),Yi.get(n)}function Pa(e,t=0,n=1){return Be(Hn(e).derive(nt.wallet(Ln(t,"account"),n)).privateKey)}function Zc(e,t=0,n=1){return Be(Hn(e).derive(nt.segwit(Ln(t,"account"),n)).privateKey)}function Zh(e,t=0,n=1){return Be(Hn(e).derive(nt.segwit(Ln(t,"account"),n)).publicKey)}function gi(e,t=0){return Be(Hn(e).derive(nt.nostr(Ln(t,"account"))).privateKey)}function Vh(e){const t=e.toLowerCase(),n=Be(Hc(Ke(t)));return`0x${[...t].map((r,s)=>parseInt(n[s],16)>=8?r.toUpperCase():r).join("")}`}const qh=e=>Vh(Be(Hc(_e.ProjectivePoint.fromHex(e).toRawBytes(!1).slice(1)).slice(-20)));function zh(e,t=0){return Be(Hn(e).derive(nt.ethereum(Ln(t,"account"))).privateKey)}const Ji=new Map;function Bv(e,t=0){const n=`${e}|${t}`;return Ji.has(n)||Ji.set(n,qh(Hn(e).derive(nt.ethereum(Ln(t,"account"))).publicKey)),Ji.get(n)}function Tv(e,t=0){const n=On.getPublicKey(Hn(e).derive(nt.nostr(Ln(t,"account"))).privateKey);return{pubkey:Be(n),npub:sr.encode("npub",sr.toWords(n))}}const Bt=["taproot","segwit","nostr","ethereum"],mi=(e,t)=>["lineage/v0 keyring",`node: ${e}`,...Bt.map(n=>`${n}: ${t[n]}`)].join(` +`),Iv=["bc","tb","bcrt"],Fh=new Uint8Array(32),ot=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),t},Bs=e=>ue(e.length<253?Uint8Array.of(e.length):Uint8Array.of(253,e.length&255,e.length>>8),e),cs=e=>Ee(Ee(e)),Wh=(e,...t)=>{const n=Ee(Ke(e));return Ee(ue(n,n,...t))},Ov=(e,t)=>e.length===t.length&&e.every((n,r)=>n===t[r]);function Ts(e){if(typeof e!="string"||e!==e.toLowerCase())return null;for(const[t,n]of[[sr,0],[lv,1]])try{const{prefix:r,words:s}=t.decode(e,90);if(s[0]===n&&Iv.includes(r))return{network:r,version:n,program:Uint8Array.from(t.fromWords(s.slice(1)))}}catch{}return null}const Vc=e=>(e==null?void 0:e.version)===1&&e.program.length===32,qc=e=>(e==null?void 0:e.version)===0&&e.program.length===20,Gh=({version:e,program:t})=>ue(Uint8Array.of(e?80+e:0,t.length),t),Cv=e=>Wh("BIP0322-signed-message",Ke(e)),Wo=new Uint8Array(8),hl=ue(Wo,Bs(Uint8Array.of(106)));function Pv(e,t){const n=Gh(e),r=ue(Uint8Array.of(0,32),Cv(t));return cs(ue(ot(0),Uint8Array.of(1),new Uint8Array(32),ot(4294967295),Bs(r),ot(0),Uint8Array.of(1),Wo,Bs(n),ot(0)))}function Go(e,t,n=0){const r=Gh(e),s=ue(Pv(e,t),ot(0));if(e.version===0){const o=ue(Uint8Array.of(25,118,169,20),e.program,Uint8Array.of(136,172));return cs(ue(ot(0),cs(s),cs(ot(0)),s,o,Wo,ot(0),cs(hl),ot(0),ot(1)))}return Wh("TapSighash",Uint8Array.of(0,n),ot(0),ot(0),Ee(s),Ee(Wo),Ee(Bs(r)),Ee(ot(0)),Ee(hl),Uint8Array.of(0),ot(0))}const pl=e=>pt.encode(ue(Uint8Array.of(e.length),...e.map(Bs)));function Uv(e){try{const t=pt.decode(e);let n=0;const r=()=>{if(n>=t.length)throw new Error("short");const o=t[n++];if(o<253)return o;if(o>253||n+2>t.length)throw new Error("size");return n+=2,t[n-2]|t[n-1]<<8},s=Array.from({length:r()},()=>{const o=r();if(n+o>t.length)throw new Error("short");return n+=o,t.slice(n-o,n)});return n===t.length?s:null}catch{return null}}function gl(e,t,n){const r=Ts(e);if(Vc(r))return pl([On.sign(Go(r,t),n,Fh)]);if(!qc(r))throw new Error("BIP-322 here signs for Taproot and P2WPKH addresses only.");const s=_e.sign(Go(r,t),n).toDERRawBytes();return pl([ue(s,Uint8Array.of(1)),_e.getPublicKey(n,!0)])}function ml(e,t,n){const r=Ts(e),s=typeof n=="string"?Uv(n):null;if(!r||!s)return!1;try{if(Vc(r)){const[o]=s;return s.length!==1||!(o.length===64||o.length===65&&o[64]===1)?!1:On.verify(o.slice(0,64),Go(r,t,o.length===65?1:0),r.program)}if(qc(r)){const[o,i]=s;return s.length!==2||i.length!==33||o.at(-1)!==1||!Ov(Rc(Ee(i)),r.program)?!1:_e.verify(_e.Signature.fromDER(o.slice(0,-1)),Go(r,t),i)}}catch{}return!1}const Yh=e=>{const t=Ke(e);return Hc(ue(Ke(`Ethereum Signed Message: +${t.length}`),t))},Xh=e=>typeof e=="string"&&/^0x[0-9a-fA-F]{40}$/.test(e)&&Vh(e.slice(2))===e;function Nv(e,t){const n=_e.sign(Yh(e),t);return`0x${Be(n.toCompactRawBytes())}${(27+n.recovery).toString(16)}`}function Lv(e,t,n){if(!Xh(e)||typeof n!="string"||!/^0x[0-9a-f]{130}$/.test(n))return!1;try{const r=mt(n.slice(2)),s=r[64]-27;if(s!==0&&s!==1)return!1;const o=_e.Signature.fromCompact(r.slice(0,64)).addRecoveryBit(s).recoverPublicKey(Yh(t));return qh(o.toRawBytes(!1))===e}catch{return!1}}const Jh=(e,t)=>Ee(Ke(JSON.stringify([0,e,0,1,[],t])));function zc(e){try{const{prefix:t,words:n}=sr.decode(e,90),r=sr.fromWords(n);return t==="npub"&&r.length===32&&e===e.toLowerCase()?Be(Uint8Array.from(r)):null}catch{return null}}const Hv=(e,t)=>Be(On.sign(Jh(Be(On.getPublicKey(t)),e),t,Fh));function Rv(e,t,n){const r=zc(e);try{return!!r&&typeof n=="string"&&/^[0-9a-f]{128}$/.test(n)&&On.verify(n,Jh(r,t),r)}catch{return!1}}const jv={taproot:gl,segwit:gl,nostr:(e,t,n)=>Hv(t,n),ethereum:(e,t,n)=>Nv(t,n)},Kv={taproot:ml,segwit:ml,nostr:Rv,ethereum:Lv};function Qh(e){const t=Ts(e.taproot),n=Ts(e.segwit);return Vc(t)?qc(n)?t.network!==n.network?"its Taproot and SegWit addresses must be on one network":zc(e.nostr)?Xh(e.ethereum)?"":"ethereum must be an EIP-55 address":"nostr must be an npub":"segwit must be a P2WPKH address":"taproot must be a Taproot address"}function Dv(e,t,n){const r=Qh(t);if(r)throw new Error(`${r[0].toUpperCase()}${r.slice(1)}.`);const s=mi(e,t);return{...Object.fromEntries(Bt.map(o=>[o,t[o]])),proof:Object.fromEntries(Bt.map(o=>[o,jv[o](t[o],s,n[o])]))}}const ss=new Map;function Mv(e,t){const n=t.proof&&typeof t.proof=="object"&&!Array.isArray(t.proof)?t.proof:{},r=JSON.stringify([e,...Bt.map(s=>[t[s]??null,n[s]??null])]);if(!ss.has(r)){ss.size>=1e3&&ss.clear();let s=Qh(t);if(!s){const o=mi(e,t),i=Bt.find(a=>!Kv[a](t[a],o,n[a]));i&&(s=`the ${i} key did not sign this keyring`)}ss.set(r,s)}return ss.get(r)}const yl=e=>Bt.map(t=>`${t}:${t==="nostr"?zc(e[t]):t==="ethereum"?e[t].toLowerCase():Be(Ts(e[t]).program)}`),Fc="lineage/v0",Zv=["white","green","black"],wl=["sole","llc","series-llc","series","corp"],Vv={sole:"sole proprietor",llc:"LLC","series-llc":"series LLC",series:"series",corp:"corporation"},bl=/^[A-Z]{2}(-[A-Z0-9]{1,3})?$/,qv=/^[0-9a-f]{64}$/,Xt=e=>e.kind==="agent"&&e.root!==e.id,oo="names are 1-40 lowercase letters, digits or hyphens (they become domains)",zv=/^[a-z0-9](?:[a-z0-9-]{0,38}[a-z0-9])?$/,os=e=>typeof e=="string"&&zv.test(e),Er=(e,t)=>typeof e=="string"?e.trim().slice(0,t):"";function Ks(e){return String(e??"").toLowerCase().normalize("NFKD").replace(/[̀-ͯ]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40).replace(/-+$/,"")}const Xr=e=>e.events.filter(t=>t.protocol===Fc);function Cn(e,{upTo:t=1/0,pending:n=!1}={}){var h,g;const r=new Map,s=[],o=[],i=new Map,a=new Map,c=new Map,u=p=>p.status==="active",l=p=>or(r,p),f=p=>{if(p.keyring&&!p.keyring.retired)for(const w of yl(p.keyring.keys))a.delete(w)},d=(p,w,y,v)=>{p.keyring&&!p.keyring.retired&&(f(p),p.keyring.retired={cause:w,by:y,beat:v})};for(const p of e){const w=p.status==="confirmed";if(w?p.height>t:!n)continue;const y=p.metadata&&typeof p.metadata=="object"&&!Array.isArray(p.metadata)?p.metadata:{},v={id:p.id,op:typeof y.op=="string"?y.op.slice(0,20):"?",beat:w?p.height:null,pending:!w,meta:y,parent:p.parent??null,ok:!0,why:"",node:null,root:null,also:[]},m=v.parent?r.get(v.parent):null,x=v.beat??"cued",k=A=>{v.ok=!1,v.why=A},I=A=>m?u(m)?"":`the ${A} is ${m.status}`:`the ${A} is not in this lineage`;let C="",N=[];const O=(m==null?void 0:m.root)??null;switch(v.op){case"found":if(v.parent)k("a holding has no parent");else if(!os(y.name))k(oo);else if(s.some(A=>u(A)&&A.name===y.name))k(`an active holding is already named ${y.name}`);else{const A=xl(p,y.name,null,"holding");r.set(A.id,A),s.push(A),v.node=A.id}break;case"birth":{const A=y.kind==="agent"?"agent":"org";if(C=I("parent"))k(C);else if(Xt(m))k("agents give birth only once they graduate");else if(!os(y.name))k(oo);else if(l(m).some(P=>u(P)&&P.name===y.name))k(`${m.name} already has an active ${y.name}`);else{const P=xl(p,y.name,m,A);P.index=m.children.filter(E=>r.get(E).kind===A).length,m.children.push(P.id),r.set(P.id,P),v.node=P.id}break}case"award":{const A=r.get(y.to);(C=I("issuer"))?k(C):Xt(m)?k("agents award belts only once they graduate"):!A||A.id===m.id?k("the recipient must be another node in this lineage"):u(A)?!os(y.skill)||!Zv.includes(y.belt)?k("an award needs a skill name and a belt (white, green or black)"):(A.badges=A.badges.filter(P=>P.skill!==y.skill),A.badges.push({skill:y.skill,belt:y.belt,by:m.id,beat:x,id:p.id}),v.node=A.id):k(`the recipient is ${A.status}`);break}case"decide":(C=I("decider"))?k(C):Er(y.title,140)?(m.decisions.push({title:Er(y.title,140),why:Er(y.why,400),beat:x,id:p.id}),v.node=m.id):k("a decision needs a title");break;case"make":(C=I("maker"))?k(C):os(y.name)?m.made.some(A=>i.get(A).name===y.name)?k(`there is already a ${y.name} by ${m.name}`):(i.set(p.id,{id:p.id,name:y.name,note:Er(y.note,280),maker:m.id,beat:x}),m.made.push(p.id),v.node=m.id):k(oo);break;case"graduate":{const A=r.get(y.of);if(C=I("parent"))k(C);else if(!A||A.parent!==m.id)k("only its parent can graduate a child");else if(!u(A))k(`the child is ${A.status}`);else if(A.edge==="adopted")k("already graduated");else if(A.joining)k(`${A.name} is joining ${r.get(A.joining.to).name}`);else{const P=A.root,E=b=>{b.root=A.id;for(const _ of l(b))_.root===P&&E(_)};A.edge="adopted",A.graduated=x,v.node=A.id,v.rekeys=!0,E(A),s.push(A);const S=b=>{d(b,"graduate",A.id,x);for(const _ of l(b))_.edge==="derived"&&S(_)};S(A)}break}case"close":if(!m)k(v.parent?"that node is not in this lineage":"a close spends the node it closes");else if(!u(m))k(`already ${m.status}`);else{const A=P=>{P.status="closed",P.closed=x,d(P,"close",m.id,x);for(const E of l(P))E.edge==="derived"&&u(E)&&(v.also.push(E.id),A(E))};A(m),v.node=m.id}break;case"charter":{const A=y.form==="series",P=A?r.get(y.of):m,E=m&&(m.kind==="holding"||m.kind==="agent");(C=I(A?"master":"node"))?k(C):wl.includes(y.form)?!A&&y.of!==void 0&&y.of!==m.id?k("a node charters itself; only a series is chartered by its master"):A&&(!P||!ep(r,P,m))?k("a series must descend from its master"):A&&!u(P)?k(`the series is ${P.status}`):A&&P.kind!=="org"?k("only orgs become series"):A&&((h=m.charter)==null?void 0:h.form)!=="series-llc"?k(`${m.name} is not chartered as a series LLC`):A&&y.jurisdiction!==void 0?k("a series takes its master's jurisdiction"):y.form==="sole"&&!E?k("a sole proprietor is a person: a holding or an agent"):y.form!=="sole"&&!A&&Xt(m)?k("an agent graduates before it incorporates"):y.form!=="sole"&&!A&&!bl.test(y.jurisdiction??"")||y.form==="sole"&&y.jurisdiction!==void 0&&!bl.test(y.jurisdiction)?k("a jurisdiction is an ISO code such as US-WY"):y.provider!==void 0&&!os(y.provider)?k(`a provider's name follows the name rule: ${oo}`):y.filing!==void 0&&!qv.test(y.filing)?k("a filing is the SHA-256 of the filed documents, in hex"):(P.charter={id:p.id,beat:x,form:y.form,jurisdiction:A?null:y.jurisdiction??null,legal:Er(y.legal,120)||null,provider:y.provider??null,filing:y.filing??null,master:A?m.id:null},v.node=P.id):k(`a charter's form is ${wl.join(", ")}`);break}case"keyring":{if(C=I("node"))k(C);else if(C=Mv(m.id,y))k(C);else{const A=Object.fromEntries(Bt.map(S=>[S,y[S]])),P=yl(A),E=P.findIndex(S=>a.has(S)&&a.get(S)!==m.id);if(E>=0)k(`its ${Bt[E]} key is already bound to ${r.get(a.get(P[E])).name}`);else{f(m),m.keyring={id:p.id,beat:x,keys:A,retired:null};for(const S of P)a.set(S,m.id);v.node=m.id}}break}case"join":case"adopt":{const A=v.op==="join",P=A?m:r.get(y.of),E=A?r.get(y.to)??null:m;if(C=I(A?"node":"parent"))k(C);else if(C=nn(r,P,E))k(C);else{const S=`${E.id}>${P.id}`,b=A?c.get(S):((g=P.joining)==null?void 0:g.to)===E.id?P.joining:null;if(v.node=P.id,N=[P.root,E.root],!b&&A)P.joining={to:E.id,id:p.id,beat:x};else if(!b)c.set(S,{id:p.id});else{c.delete(S),P.joining=null;const _=P.root,U=j=>{j.root=E.root;for(const L of l(j))L.root===_&&U(L)};P.moves.push({from:P.parent,index:P.index,to:E.id,beat:x,join:A?p.id:b.id,adopt:A?b.id:p.id}),P.index=E.children.filter(j=>r.get(j).kind===P.kind).length,P.parent=E.id,E.children.push(P.id),U(P),d(P,"move",E.id,x),v.rekeys=!0}}break}default:k("not a lineage/v0 op")}const R=v.node?r.get(v.node).root:null;v.root=O??R,v.roots=[...new Set([v.root,R,...N].filter(Boolean))],o.push(v)}return{nodes:r,roots:s,log:o,items:i,bound:a}}function xl(e,t,n,r){return{id:e.id,name:t,kind:r,parent:(n==null?void 0:n.id)??null,root:n?n.root:e.id,edge:n?"derived":null,status:"active",index:null,born:e.status==="confirmed"?e.height:"cued",children:[],badges:[],decisions:[],made:[],keyring:null,charter:null,graduated:null,closed:null,joining:null,moves:[]}}function ep(e,t,n){for(let r=e.get(t.parent);r;r=e.get(r.parent))if(r.id===n.id)return!0;return!1}const or=(e,t)=>[...new Set(t.children)].map(n=>e.get(n)).filter(n=>n.parent===t.id);function nn(e,t,n){return t?t.kind!=="org"?"only orgs change hands":t.status!=="active"?`${t.name} is ${t.status}`:t.root===t.id?`${t.name} is a holding of its own, and only orgs inside a holding change hands`:or(e,t).some(r=>r.edge==="derived"&&r.status==="active")?`${t.name} has derived children, and an org changes hands alone`:n===void 0?"":n?n.status!=="active"?`the new parent is ${n.status}`:Xt(n)?"agents adopt only once they graduate":n.id===t.id||ep(e,n,t)?`${t.name} cannot join itself or anything below it`:n.id===t.parent?`${t.name} is already ${n.name}'s`:or(e,n).some(r=>r.status==="active"&&r.name===t.name)?`${n.name} already has an active ${t.name}`:"":"the new parent must be a node in this lineage":"the org must be a node in this lineage"}function fs(e,t){var s;const n=t==null?void 0:t.charter;if(!n)return null;if(t.status!=="active")return{ok:!1,why:`${t.name} is closed`};if(n.form!=="series")return{ok:!0,why:""};const r=e.nodes.get(n.master);return r.status!=="active"?{ok:!1,why:`${r.name} is closed`}:((s=r.charter)==null?void 0:s.form)!=="series-llc"?{ok:!1,why:`${r.name} no longer holds series`}:t.root!==r.root?{ok:!1,why:`${t.name} is no longer in ${r.name}'s holding`}:{ok:!0,why:""}}function Fv(e,t){const n=[],r=e.nodes.get(t),s=(o,i,a,c=null)=>{const u=!!c&&(o.parent!==c.parent||o.index!==c.index),l=u||o.root!==t;if(n.push({type:"node",node:o,guide:i,path:o.id===t?"●":`${c?c.index:o.index}'`,away:l,moved:u}),l)return;const f={agent:[],org:[]};for(const h of o.children){const g=e.nodes.get(h),p=f[g.kind==="agent"?"agent":"org"];p.push([g,{parent:o.id,index:p.length}])}const d=[["agents",f.agent],["orgs",f.org]].filter(([,h])=>h.length);d.forEach(([h,g],p)=>{const w=p===d.length-1,y=a+(w?" ":"│ ");n.push({type:"group",label:h,guide:a+(w?"└─ ":"├─ ")}),g.forEach(([v,m],x)=>{const k=x===g.length-1;s(v,y+(k?"└─ ":"├─ "),y+(k?" ":"│ "),m)})})};return r&&s(r,"",""),n}function Wv(e,t){const n={orgs:0,agents:0,belts:0,decisions:0,closed:0};for(const r of e.nodes.values())r.root===t&&(r.id!==t&&(n[r.kind==="agent"?"agents":"orgs"]++,r.status==="closed"&&n.closed++),n.belts+=r.badges.length,n.decisions+=r.decisions.length);return n}function Vr(e,t){const n=[];for(let r=e.nodes.get(t);r;r=r.id===r.root?null:e.nodes.get(r.parent))n.unshift(r.name);return n.join(" / ")}function tp(e,t){var s;const n=e.meta,r=o=>{var i;return((i=t.nodes.get(o))==null?void 0:i.name)??(typeof o=="string"?`${o.slice(0,8)}…`:"?")};if(!e.ok)return`${e.op}: ${e.why}`;switch(e.op){case"found":return`found ${n.name}`;case"birth":return`birth ${n.name}${n.kind==="agent"?" (agent)":""} ← ${r(e.parent)}`;case"award":return`award ${n.skill} · ${n.belt} → ${r(n.to)}, from ${r(e.parent)}`;case"decide":return`decide “${Er(n.title,140)}” · ${r(e.parent)}`;case"make":return`make ${n.name} · ${r(e.parent)}`;case"keyring":return`keyring · ${r(e.parent)}`;case"charter":return n.form==="series"?`charter ${r(n.of)} as a series of ${r(e.parent)}`:`charter ${r(e.parent)} · ${Vv[n.form]}${n.jurisdiction?` (${n.jurisdiction})`:""}`;case"graduate":return`graduate ${r(n.of)} from ${r(e.parent)}`;case"close":return`close ${r(e.parent)}${e.also.length?` and ${e.also.length} derived`:""}`;case"join":case"adopt":{const o=e.op==="join"?e.parent:n.of,i=e.op==="join"?n.to:e.parent,a=(s=t.nodes.get(o))==null?void 0:s.moves.find(c=>c.join===e.id||c.adopt===e.id);return`${e.op==="join"?`join ${r(o)} to ${r(i)}`:`adopt ${r(o)} into ${r(i)}`}${a?`, from ${r(a.from)}`:e.op==="join"?`, for ${r(i)} to adopt`:`, once ${r(o)} joins`}`}default:return e.op}}const kn=Be,Gv=ue,Ua=mt,Yv=hr,En="super-testnet-local-v0";class Pn{constructor(t){if(!/^[0-9a-f]{64}$/.test(t)||!_e.utils.isValidPrivateKey(t))throw new Error("Invalid test wallet key. Load a Super Testnet v0 backup.");this.kind="test-wallet",this.secret=t,this.pubkey=kn(On.getPublicKey(t)),this.address=ps.p2tr.fromPubKey(this.pubkey,"regtest"),this.script=["OP_1",this.pubkey]}static create(){return new Pn(kn(_e.utils.randomPrivateKey()))}static load(t){if((t==null?void 0:t.network)!==En||(t==null?void 0:t.version)!==1||(t==null?void 0:t.kind)!=="test-wallet")throw new Error("Only Super Testnet v0 test-wallet backups are accepted.");return new Pn(t.secret)}backup(){return{kind:"test-wallet",version:1,network:En,secret:this.secret}}sign(t,n,r=0){return Xn.taproot.sign(this.secret,t,r,n?{extension:n}:{}).hex}}const io=50*1e8,ao="0".repeat(64),vl=e=>kn(Ee(new TextEncoder().encode(JSON.stringify(e)))),xr=(e,t)=>`${e}:${t}`,et=e=>Ue.encode(e,!1).hex,he=(e,t)=>{if(!e)throw new Error(t)},kl=/^5120[0-9a-f]{64}$/,co=/^0014[0-9a-f]{40}$/,np=64,ut=8,Xv=e=>kn(Rc(Ee(Ua(e))));function Jv(e,t){const[n,r]=e.vin[t].witness;return _e.verify(n.slice(0,-2),Xn.segwit.hash(e,t,{pubkey:r,sigflag:1}),r,{lowS:!0,format:"der"})}const Qi=(e,...t)=>{const n=Ee(new TextEncoder().encode(e));return Ee(Gv(n,n,...t))},Qv=e=>e<253?Uint8Array.of(e):Uint8Array.of(253,e&255,e>>8);function ek(e,t){const[n,r,s]=e.vin[t].witness,o=Ua(s),i=Ua(r);if(o.length<33||(o.length-33)%32||i.length>65535||!/^20[0-9a-f]{64}ac/.test(r))return!1;const a=Qi("TapLeaf",Uint8Array.of(o[0]&254),Qv(i.length),i);let c=a;for(let f=33;f=_e.CURVE.n)return!1;const l=_e.ProjectivePoint.fromHex(`02${kn(o.slice(1,33))}`).add(_e.ProjectivePoint.BASE.multiply(u)).toAffine();return`5120${l.x.toString(16).padStart(64,"0")}`!==et(e.vin[t].prevout.scriptPubKey)||Number(l.y&1n)!==(o[0]&1)?!1:On.verify(n,Xn.taproot.hash(e,t,{extension:kn(a)}),r.slice(2,66))}class yi{constructor(t){if(this.blocks=[],this.mempool=[],this.utxos=new Map,this.transactions=new Map,this.imports=[],t){he(t.network===En&&t.version===1,"Unsupported local chain version/network."),he(Array.isArray(t.blocks)&&Array.isArray(t.mempool)&&Array.isArray(t.imports??[]),"Invalid chain snapshot.");for(const n of t.imports??[])this.importCoin(n);for(const n of t.blocks)this.acceptBlock(structuredClone(n));this.submitPackage(t.mempool)}}snapshot(){return{network:En,version:1,blocks:structuredClone(this.blocks),mempool:[...this.mempool],...this.imports.length?{imports:structuredClone(this.imports)}:{}}}importCoin({txid:t,vout:n,value:r,script:s}){he(/^[0-9a-f]{64}$/.test(t)&&Number.isSafeInteger(n)&&n>=0&&Number.isSafeInteger(r)&&r>=330&&r<=io&&(kl.test(s)||co.test(s)),"Invalid imported coin."),he(!this.utxos.has(xr(t,n))&&!this.transactions.has(t)&&!this.imported(t,n),"That coin is already in this chain."),this.utxos.set(xr(t,n),{txid:t,vout:n,value:r,scriptPubKey:s,height:0,ranges:Ol(this.imports.length,r),inscriptions:[]}),this.imports.push({txid:t,vout:n,value:r,script:s})}imported(t,n){const r=this.imports.find(s=>s.txid===t&&s.vout===n);return r?{value:r.value,scriptPubKey:r.script}:null}coins(t){return[...this.utxos.values()].filter(n=>et(n.scriptPubKey)===et(t))}satLocation(t){for(const n of this.utxos.values()){const r=lo(n.ranges,t);if(r!==null)return{txid:n.txid,vout:n.vout,offset:r}}return null}balance(t){return this.coins(t).reduce((n,r)=>n+r.value,0)}apply(t,n,r=!1){var w,y,v;he(typeof t=="string"&&t.length<4e4&&/^(?:[a-f0-9]{2})+$/.test(t),"Invalid raw transaction.");const s=ee.decode(t),o=ee.util.getTxid(s);he(!this.transactions.has(o),"Duplicate transaction."),he(s.version===2&&s.locktime===0,"Unsupported transaction version or locktime.");const i=!r&&s.vin.some(m=>{var x;return((x=m.witness)==null?void 0:x.length)===3}),a=r?1:i?2:ut,c=r?np:i?2:ut;he(s.vin.length>=1&&s.vin.length<=a&&s.vout.length>=1&&s.vout.length<=c,"Unsupported transaction shape.");let u=0;for(const m of s.vout){const x=Number(m.value);he(Number.isSafeInteger(x)&&x>=330&&x<=io,"Invalid output amount.");const k=et(m.scriptPubKey);he(kl.test(k)||co.test(k),"Only Taproot and P2WPKH outputs are supported."),u+=x}let l,f=[];const d=s.vin.findIndex(m=>{var x;return((x=m.witness)==null?void 0:x.length)===3}),h=s.vin[d<0?0:d];if(r)he(h.txid===ao&&h.vout===4294967295&&u===io,"Invalid local coinbase."),he(et(h.scriptSig)===Ue.encode([new TextEncoder().encode(`${En}:${n}`)],!1).hex,"Wrong coinbase height."),he(!((w=h.witness)!=null&&w.length),"Unexpected coinbase witness.");else{f=s.vin.map(x=>this.utxos.get(xr(x.txid,x.vout))),he(f.every(Boolean),"Input is missing or already spent."),he(new Set(s.vin.map(x=>xr(x.txid,x.vout))).size===s.vin.length,"Duplicate input."),s.vin.forEach((x,k)=>{var C,N,O;he(x.sequence==="ffffffff"&&et(x.scriptSig)==="","Unsupported input flags."),x.prevout={value:f[k].value,scriptPubKey:f[k].scriptPubKey};const I=et(f[k].scriptPubKey);if(co.test(I)){const[R,A]=x.witness??[];he(k!==d&&((C=x.witness)==null?void 0:C.length)===2,"Unsupported witness."),he(/^30[0-9a-f]{12,140}01$/.test(R)&&/^0[23][0-9a-f]{64}$/.test(A)&&Xv(A)===I.slice(4),"P2WPKH spends need a SIGHASH_ALL signature by the key they pay.");return}he(((N=x.witness)==null?void 0:N.length)===1||k===d&&((O=x.witness)==null?void 0:O.length)===3,"Unsupported witness."),he(/^[0-9a-f]{128}$/.test(x.witness[0])||!i&&/^[0-9a-f]{128}83$/.test(x.witness[0]),"Only default 64-byte Schnorr signatures, or SIGHASH_SINGLE|ANYONECANPAY outside reveals, are accepted.")}),he(f.reduce((x,k)=>x+k.value,0)-u===X,"v0 requires a fixed 500 sat fee per transaction.");let m={};if(h.witness.length===3){const x=Bc(h.witness),k=d;if(he(Number(s.vout[k].value)===Ut,"Invalid reveal postage."),he(et(s.vout[k].scriptPubKey)===`5120${x.pubkey}`,"Reveal must return to its signing wallet."),x.parent){const I=d===0?1:0,C=f[I];he((y=C==null?void 0:C.inscriptions)==null?void 0:y.some(N=>N.id===x.parent),"Referenced parent inscription must actually be spent."),he(s.vout.length===2&&Number(s.vout[I].value)===C.value&&et(C.scriptPubKey)===`5120${x.pubkey}`&&et(s.vout[I].scriptPubKey)===et(C.scriptPubKey),"Parent must be owned and preserved in the same wallet.")}else s.vin.length===2&&(he(d===1&&((v=f[0].inscriptions)==null?void 0:v.length)&&x.pointer!==void 0,"Reinscription spend requires correct tag and owned sat."),he(Number(s.vout[0].value)===f[0].value&&et(s.vout[0].scriptPubKey)===et(f[0].scriptPubKey)&&et(f[0].scriptPubKey)===`5120${x.pubkey}`,"Reinscription sat must be returned to owner."));m={pubkey:x.pubkey},l={id:`${o}i0`,txid:o,commitTxid:h.txid,text:x.text,bytes:Array.from(x.bytes),contentType:x.contentType,parent:x.parent,delegate:x.delegate,pointer:x.pointer,metaprotocol:x.metaprotocol,metadata:x.metadata,height:n,value:Ut}}s.vin.forEach((x,k)=>{let I=!1;try{I=co.test(et(f[k].scriptPubKey))?Jv(s,k):k===d?ek(s,k)||Xn.taproot.verify(s,k,m):Xn.taproot.verify(s,k,{})}catch{}he(I,"Invalid signature or Taproot commitment.")})}const g=Ul(s,f,n,r),p=f.flatMap(m=>m.inscriptions??[]);if(l){const m=BigInt(l.pointer??0),x=m{var I;return((I=k.inscription)==null?void 0:I.sat)===l.sat}).length,p.push(l)}return he(p.every(m=>g.some(x=>lo(x,m.sat)!==null)),"Local lab protects inscription sats from fee loss."),r||s.vin.forEach(m=>this.utxos.delete(xr(m.txid,m.vout))),s.vout.forEach((m,x)=>{const k=p.filter(I=>lo(g[x],I.sat)!==null);this.utxos.set(xr(o,x),{txid:o,vout:x,value:Number(m.value),scriptPubKey:m.scriptPubKey,height:n,ranges:g[x],inscriptions:k,...k.length?{inscription:k[0]}:{}})}),this.transactions.set(o,{txid:o,raw:t,height:n,coinbase:r,tx:s,...l?{inscription:l}:{}}),o}submitPackage(t){he(Array.isArray(t)&&this.mempool.length+t.length<=1e3,"Invalid package or mempool full; mine a block first.");const n=new Map(this.utxos),r=new Map(this.transactions);try{t.forEach(s=>this.apply(s,null))}catch(s){throw this.utxos=n,this.transactions=r,s}this.mempool.push(...t)}acceptBlock(t){var i;he(t.height===this.blocks.length+1&&t.previous===(((i=this.blocks.at(-1))==null?void 0:i.hash)??ao),"Invalid block ancestry."),he(Number.isSafeInteger(t.time)&&t.time>0&&Array.isArray(t.raws)&&t.raws.length>0&&t.raws.length<=1001,"Invalid block.");const{hash:n,...r}=t;he(vl(r)===n,"Invalid local block hash.");const s=new Map(this.utxos),o=new Map(this.transactions);try{t.raws.forEach((a,c)=>this.apply(a,t.height,c===0))}catch(a){throw this.utxos=s,this.transactions=o,a}this.blocks.push(t)}mine(t){return this.mineTo([xe(io,t)])}mineTo(t){var a;const n=new yi({...this.snapshot(),mempool:[]}),r=this.blocks.length+1,s=ee.create({vin:[{txid:ao,vout:4294967295,scriptSig:[new TextEncoder().encode(`${En}:${r}`)]}],vout:t}),o={height:r,previous:((a=this.blocks.at(-1))==null?void 0:a.hash)??ao,time:Date.now(),raws:[ee.encode(s).hex,...this.mempool]},i={...o,hash:vl(o)};return n.acceptBlock(i),Object.assign(this,n),i}}const rp="lineage-claim",Na=330,Yo=e=>Ue.encode(e,!1).hex,El=e=>({txid:e.txid,vout:e.vout,value:e.value,script:Yo(e.scriptPubKey)}),ea=/^[0-9a-f]{64}$/,tk=/^5120[0-9a-f]{64}$/;function wi(e,t){var n;for(const r of e.utxos.values())if((n=r.inscriptions)!=null&&n.some(s=>s.id===t))return r;return null}function sp(e){return ee.create({vin:[Xe(e.holder.txid,e.holder.vout,e.holder.value,e.holder.script),Xe(e.payer.txid,e.payer.vout,e.payer.value,e.payer.script)],vout:[xe(e.holder.value,["OP_1",e.to]),xe(e.payer.value-X,["OP_1",e.to])]})}function nk(e,t,n,r=Date.now()){if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Claims are signed by local test wallets.");const s=wi(e,t);if(!s)throw new Error("That inscription is not in an unspent output.");if(Yo(s.scriptPubKey)===Yo(n.script))throw new Error("The recipient already holds that inscription.");const o=e.coins(n.script).find(c=>{var u;return!((u=c.inscriptions)!=null&&u.length)&&c.value>=X+Na});if(!o)throw new Error("The recipient needs a plain coin for the 500-sat fee. Mine a block to it first.");const i={kind:rp,version:1,inscription:t,carried:s.inscriptions.map(c=>c.id),holder:El(s),payer:El(o),to:n.pubkey,at:r},a=sp(i);return i.txid=ee.util.getTxid(a),i.sig=n.sign(a,void 0,1),i}function rk(e,t,n){const r=ok(t);if((n==null?void 0:n.kind)!=="test-wallet")throw new Error("Countersigning needs a local test wallet.");if(Yo(n.script)!==r.holder.script)throw new Error("Only the current holder can countersign.");if(sk(e,r)!=="open")throw new Error("This claim is stale: an input it spends was already spent.");const s=sp(r);return s.vin[1].witness=[r.sig],s.vin[0].witness=[n.sign(s,void 0,0)],e.submitPackage([ee.encode(s).hex]),ee.util.getTxid(s)}function sk(e,t){return e.utxos.has(`${t.holder.txid}:${t.holder.vout}`)&&e.utxos.has(`${t.payer.txid}:${t.payer.vout}`)?"open":"stale"}function ok(e){const t=n=>n&&ea.test(n.txid)&&Number.isSafeInteger(n.vout)&&n.vout>=0&&Number.isSafeInteger(n.value)&&n.value>=Na&&tk.test(n.script);if((e==null?void 0:e.kind)!==rp||e.version!==1||!/^[0-9a-f]{64}i\d+$/.test(e.inscription)||!Array.isArray(e.carried)||!t(e.holder)||!t(e.payer)||e.payer.value255*s)throw new Error("Length should be <= 255*HashLen");const o=Math.ceil(r/s);n===void 0&&(n=$l);const i=new Uint8Array(o*s),a=In.create(e,t),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let l=0;lak(e,ik(e,t,n),r,s);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const bn=BigInt(0),De=BigInt(1),na=BigInt(2),uk=BigInt(8);function lk(e,t,n,r){const s=e.sqr(n),o=e.sqr(r),i=e.add(e.mul(t.a,s),o),a=e.add(e.ONE,e.mul(t.d,e.mul(s,o)));return e.eql(i,a)}function fk(e,t={}){const n=hh("edwards",e,t,t.FpFnLE),{Fp:r,Fn:s}=n;let o=n.CURVE;const{h:i}=o;Wr(t,{},{uvRatio:"function"});const a=na<r.create(w),u=t.uvRatio||((w,y)=>{try{return{isValid:!0,value:r.sqrt(r.div(w,y))}}catch{return{isValid:!1,value:bn}}});if(!lk(r,o,o.Gx,o.Gy))throw new Error("bad curve params: generator point");function l(w,y,v=!1){const m=v?De:bn;return As("coordinate "+w,y,m,a),y}function f(w){if(!(w instanceof g))throw new Error("ExtendedPoint expected")}const d=Ko((w,y)=>{const{X:v,Y:m,Z:x}=w,k=w.is0();y==null&&(y=k?uk:r.inv(x));const I=c(v*y),C=c(m*y),N=r.mul(x,y);if(k)return{x:bn,y:De};if(N!==De)throw new Error("invZ was invalid");return{x:I,y:C}}),h=Ko(w=>{const{a:y,d:v}=o;if(w.is0())throw new Error("bad point: ZERO");const{X:m,Y:x,Z:k,T:I}=w,C=c(m*m),N=c(x*x),O=c(k*k),R=c(O*O),A=c(C*y),P=c(O*c(A+N)),E=c(R+c(v*c(C*N)));if(P!==E)throw new Error("bad point: equation left != right (1)");const S=c(m*x),b=c(k*I);if(S!==b)throw new Error("bad point: equation left != right (2)");return!0});class g{constructor(y,v,m,x){this.X=l("x",y),this.Y=l("y",v),this.Z=l("z",m,!0),this.T=l("t",x),Object.freeze(this)}static CURVE(){return o}static fromAffine(y){if(y instanceof g)throw new Error("extended point not allowed");const{x:v,y:m}=y||{};return l("x",v),l("y",m),new g(v,m,De,c(v*m))}static fromBytes(y,v=!1){const m=r.BYTES,{a:x,d:k}=o;y=Gu(Et(y,m,"point")),tr(v,"zip215");const I=Gu(y),C=y[m-1];I[m-1]=C&-129;const N=nr(I),O=v?a:r.ORDER;As("point.y",N,bn,O);const R=c(N*N),A=c(R-De),P=c(k*R-x);let{isValid:E,value:S}=u(A,P);if(!E)throw new Error("bad point: invalid y coordinate");const b=(S&De)===De,_=(C&128)!==0;if(!v&&S===bn&&_)throw new Error("bad point: x=0 and x_0=1");return _!==b&&(S=c(-S)),g.fromAffine({x:S,y:N})}static fromHex(y,v=!1){return g.fromBytes(we("point",y),v)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,v=!0){return p.createCache(this,y),v||this.multiply(na),this}assertValidity(){h(this)}equals(y){f(y);const{X:v,Y:m,Z:x}=this,{X:k,Y:I,Z:C}=y,N=c(v*C),O=c(k*x),R=c(m*C),A=c(I*x);return N===O&&R===A}is0(){return this.equals(g.ZERO)}negate(){return new g(c(-this.X),this.Y,this.Z,c(-this.T))}double(){const{a:y}=o,{X:v,Y:m,Z:x}=this,k=c(v*v),I=c(m*m),C=c(na*c(x*x)),N=c(y*k),O=v+m,R=c(c(O*O)-k-I),A=N+I,P=A-C,E=N-I,S=c(R*P),b=c(A*E),_=c(R*E),U=c(P*A);return new g(S,b,U,_)}add(y){f(y);const{a:v,d:m}=o,{X:x,Y:k,Z:I,T:C}=this,{X:N,Y:O,Z:R,T:A}=y,P=c(x*N),E=c(k*O),S=c(C*m*A),b=c(I*R),_=c((x+k)*(N+O)-P-E),U=b-S,j=b+S,L=c(E-v*P),M=c(_*U),V=c(j*L),W=c(_*L),le=c(U*j);return new g(M,V,le,W)}subtract(y){return this.add(y.negate())}multiply(y){if(!s.isValidNot0(y))throw new Error("invalid scalar: expected 1 <= sc < curve.n");const{p:v,f:m}=p.cached(this,y,x=>zn(g,x));return zn(g,[v,m])[0]}multiplyUnsafe(y,v=g.ZERO){if(!s.isValid(y))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return y===bn?g.ZERO:this.is0()||y===De?this:p.unsafe(this,y,m=>zn(g,m),v)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}isTorsionFree(){return p.unsafe(this,o.n).is0()}toAffine(y){return d(this,y)}clearCofactor(){return i===De?this:this.multiplyUnsafe(i)}toBytes(){const{x:y,y:v}=this.toAffine(),m=r.toBytes(v);return m[m.length-1]|=y&De?128:0,m}toHex(){return Be(this.toBytes())}toString(){return``}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(y){return zn(g,y)}static msm(y,v){return dh(g,s,y,v)}_setWindowSize(y){this.precompute(y)}toRawBytes(){return this.toBytes()}}g.BASE=new g(o.Gx,o.Gy,De,c(o.Gx*o.Gy)),g.ZERO=new g(bn,De,De,bn),g.Fp=r,g.Fn=s;const p=new fh(g,s.BITS);return g.BASE.precompute(8),g}function dk(e,t,n={}){if(typeof t!="function")throw new Error('"hash" function param is required');Wr(n,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});const{prehash:r}=n,{BASE:s,Fp:o,Fn:i}=e,a=n.randomBytes||dr,c=n.adjustScalarBytes||(O=>O),u=n.domain||((O,R,A)=>{if(tr(A,"phflag"),R.length||A)throw new Error("Contexts/pre-hash are not supported");return O});function l(O){return i.create(nr(O))}function f(O){const R=m.secretKey;O=we("private key",O,R);const A=we("hashed private key",t(O),2*R),P=c(A.slice(0,R)),E=A.slice(R,2*R),S=l(P);return{head:P,prefix:E,scalar:S}}function d(O){const{head:R,prefix:A,scalar:P}=f(O),E=s.multiply(P),S=E.toBytes();return{head:R,prefix:A,scalar:P,point:E,pointBytes:S}}function h(O){return d(O).pointBytes}function g(O=Uint8Array.of(),...R){const A=ue(...R);return l(t(u(A,we("context",O),!!r)))}function p(O,R,A={}){O=we("message",O),r&&(O=r(O));const{prefix:P,scalar:E,pointBytes:S}=d(R),b=g(A.context,P,O),_=s.multiply(b).toBytes(),U=g(A.context,_,S,O),j=i.create(b+U*E);if(!i.isValid(j))throw new Error("sign failed: invalid s");const L=ue(_,i.toBytes(j));return Et(L,m.signature,"result")}const w={zip215:!0};function y(O,R,A,P=w){const{context:E,zip215:S}=P,b=m.signature;O=we("signature",O,b),R=we("message",R),A=we("publicKey",A,m.publicKey),S!==void 0&&tr(S,"zip215"),r&&(R=r(R));const _=b/2,U=O.subarray(0,_),j=nr(O.subarray(_,b));let L,M,V;try{L=e.fromBytes(A,S),M=e.fromBytes(U,S),V=s.multiplyUnsafe(j)}catch{return!1}if(!S&&L.isSmallOrder())return!1;const W=g(E,M.toBytes(),L.toBytes(),R);return M.add(L.multiplyUnsafe(W)).subtract(V).clearCofactor().is0()}const v=o.BYTES,m={secretKey:v,publicKey:v,signature:2*v,seed:v};function x(O=a(m.seed)){return Et(O,m.seed,"seed")}function k(O){const R=N.randomSecretKey(O);return{secretKey:R,publicKey:h(R)}}function I(O){return Ls(O)&&O.length===i.BYTES}function C(O,R){try{return!!e.fromBytes(O,R)}catch{return!1}}const N={getExtendedPublicKey:d,randomSecretKey:x,isValidSecretKey:I,isValidPublicKey:C,toMontgomery(O){const{y:R}=e.fromBytes(O),A=m.publicKey,P=A===32;if(!P&&A!==57)throw new Error("only defined for 25519 and 448");const E=P?o.div(De+R,De-R):o.div(R-De,R+De);return o.toBytes(E)},toMontgomerySecret(O){const R=m.secretKey;Et(O,R);const A=t(O.subarray(0,R));return c(A).subarray(0,R)},randomPrivateKey:x,precompute(O=8,R=e.BASE){return R.precompute(O,!1)}};return Object.freeze({keygen:k,getPublicKey:h,sign:p,verify:y,utils:N,Point:e,lengths:m})}function hk(e){const t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},n=e.Fp,r=pr(t.n,e.nBitLength,!0),s={Fp:n,Fn:r,uvRatio:e.uvRatio},o={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:s,hash:e.hash,eddsaOpts:o}}function pk(e,t){const n=t.Point;return Object.assign({},t,{ExtendedPoint:n,CURVE:e,nBitLength:n.Fn.BITS,nByteLength:n.Fn.BYTES})}function gk(e){const{CURVE:t,curveOpts:n,hash:r,eddsaOpts:s}=hk(e),o=fk(t,n),i=dk(o,r,s);return pk(e,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const is=BigInt(0),vr=BigInt(1),uo=BigInt(2);function mk(e){return Wr(e,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...e})}function yk(e){const t=mk(e),{P:n,type:r,adjustScalarBytes:s,powPminus2:o,randomBytes:i}=t,a=r==="x25519";if(!a&&r!=="x448")throw new Error("invalid type");const c=i||dr,u=a?255:448,l=a?32:56,f=BigInt(a?9:5),d=BigInt(a?121665:39081),h=a?uo**BigInt(254):uo**BigInt(447),g=a?BigInt(8)*uo**BigInt(251)-vr:BigInt(4)*uo**BigInt(445)-vr,p=h+g+vr,w=E=>Se(E,n),y=v(f);function v(E){return Cc(w(E),l)}function m(E){const S=we("u coordinate",E,l);return a&&(S[31]&=127),w(nr(S))}function x(E){return nr(s(we("scalar",E,l)))}function k(E,S){const b=N(m(S),x(E));if(b===is)throw new Error("invalid private or public key received");return v(b)}function I(E){return k(E,y)}function C(E,S,b){const _=w(E*(S-b));return S=w(S-_),b=w(b+_),{x_2:S,x_3:b}}function N(E,S){As("u",E,is,n),As("scalar",S,h,p);const b=S,_=E;let U=vr,j=is,L=E,M=vr,V=is;for(let le=BigInt(u-1);le>=is;le--){const ce=b>>le&vr;V^=ce,{x_2:U,x_3:L}=C(V,U,L),{x_2:j,x_3:M}=C(V,j,M),V=ce;const ne=U+j,pe=w(ne*ne),ge=U-j,Ne=w(ge*ge),de=pe-Ne,ve=L+M,Mt=L-M,lt=w(Mt*ne),qe=w(ve*ge),Zt=lt+qe,es=lt-qe;L=w(Zt*Zt),M=w(_*w(es*es)),U=w(pe*Ne),j=w(de*(pe+w(d*de)))}({x_2:U,x_3:L}=C(V,U,L)),{x_2:j,x_3:M}=C(V,j,M);const W=o(j);return w(U*W)}const O={secretKey:l,publicKey:l,seed:l},R=(E=c(l))=>(Me(E,O.seed),E);function A(E){const S=R(E);return{secretKey:S,publicKey:I(S)}}return{keygen:A,getSharedSecret:(E,S)=>k(E,S),getPublicKey:E=>I(E),scalarMult:k,scalarMultBase:I,utils:{randomSecretKey:R,randomPrivateKey:R},GuBytes:y.slice(),lengths:O}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const wk=BigInt(1),Sl=BigInt(2),bk=BigInt(3),xk=BigInt(5),vk=BigInt(8),Wc=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),op={p:Wc,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:vk,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function ip(e){const t=BigInt(10),n=BigInt(20),r=BigInt(40),s=BigInt(80),o=Wc,a=e*e%o*e%o,c=Ie(a,Sl,o)*a%o,u=Ie(c,wk,o)*e%o,l=Ie(u,xk,o)*u%o,f=Ie(l,t,o)*l%o,d=Ie(f,n,o)*f%o,h=Ie(d,r,o)*d%o,g=Ie(h,s,o)*h%o,p=Ie(g,s,o)*h%o,w=Ie(p,t,o)*l%o;return{pow_p_5_8:Ie(w,Sl,o)*e%o,b2:a}}function ap(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}const _l=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function kk(e,t){const n=Wc,r=Se(t*t*t,n),s=Se(r*r*t,n),o=ip(e*s).pow_p_5_8;let i=Se(e*r*o,n);const a=Se(t*i*i,n),c=i,u=Se(i*_l,n),l=a===e,f=a===Se(-e,n),d=a===Se(-e*_l,n);return l&&(i=c),(f||d)&&(i=u),v2(i,n)&&(i=Se(-i,n)),{isValid:l||f,value:i}}const cp=pr(op.p,{isLE:!0}),Ek={...op,Fp:cp,hash:_s,adjustScalarBytes:ap,uvRatio:kk},bi=gk(Ek),up=(()=>{const e=cp.ORDER;return yk({P:e,type:"x25519",powPminus2:t=>{const{pow_p_5_8:n,b2:r}=ip(t);return Se(Ie(n,bk,e)*r,e)},adjustScalarBytes:ap})})(),$k=Ke("lineage/v0"),Ht=(e,t)=>ck(Ee,e,$k,Ke(t),32),xi=e=>{const t=Uint8Array.from(e);return t[0]&=248,t[31]&=127,t[31]|=64,t},lp=e=>{const t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e),t},yt=e=>ue(lp(e.length),e),Gc=e=>ue(yt(Ke("ssh-ed25519")),yt(e)),La=(e,t)=>`ssh-ed25519 ${pt.encode(Gc(e))}${t?` ${t}`:""}`,Ha=e=>`SHA256:${pt.encode(Ee(Gc(e))).replace(/=+$/,"")}`;function Sk(e){const t=mt(e),n=r=>bi.getPublicKey(Ht(t,r));return{ssh:n("ssh"),git:n("git"),dkim:n("dkim"),wg:up.getPublicKey(xi(Ht(t,"wg")))}}function _k(e){const t=n=>bi.getPublicKey(Ht(e,n));return{"ssh-ca":t("node/ssh-ca"),mtls:t("node/mtls"),noise:up.getPublicKey(xi(Ht(e,"node/noise")))}}function Ak(e,t,n,r){return[["ssh",Ha(e.ssh),La(e.ssh,t)],["git",Ha(e.git),`${t} namespaces="git" ${La(e.git,t)}`],["dkim",`${n}._domainkey.${r}`,`${n}._domainkey.${r}. IN TXT "v=DKIM1; k=ed25519; p=${pt.encode(e.dkim)}"`],["wg",pt.encode(e.wg),`[Peer] +# ${t} +PublicKey = ${pt.encode(e.wg)}`]]}function Bk(e,t){return[["ssh-ca",Ha(e["ssh-ca"]),La(e["ssh-ca"],`lineage-ca@${t}`)],["mtls",pt.encode(e.mtls),null],["noise",`mkey:${Be(e.noise)}`,null]]}const Tk=mt("302e020100300506032b657004220420");function fp(e,t,n){const r=Ee(e).slice(0,4);let s=ue(r,r,yt(Ke("ssh-ed25519")),yt(t),yt(ue(e,t)),yt(Ke(n)));s=ue(s,new Uint8Array((8-s.length%8)%8).map((i,a)=>a+1));const o=ue(Ke("openssh-key-v1\0"),yt(Ke("none")),yt(Ke("none")),yt(new Uint8Array(0)),lp(1),yt(Gc(t)),yt(s));return`-----BEGIN OPENSSH PRIVATE KEY----- +${pt.encode(o).match(/.{1,70}/g).join(` +`)} +-----END OPENSSH PRIVATE KEY----- +`}const Ik=(e,t)=>`-----BEGIN ${e}----- +${pt.encode(t).match(/.{1,64}/g).join(` +`)} +-----END ${e}----- +`;function Ok(e,t){const n=mt(e),r=s=>{const o=Ht(n,s);return fp(o,bi.getPublicKey(o),t)};return[["ssh","OpenSSH private key",r("ssh")],["git","OpenSSH private key",r("git")],["dkim","Ed25519 private key (base64)",pt.encode(Ht(n,"dkim"))],["wg","Interface entry",`[Interface] +PrivateKey = ${pt.encode(xi(Ht(n,"wg")))}`]]}function Ck(e,t){const n=Ht(e,"node/ssh-ca");return[["ssh-ca","OpenSSH private key",fp(n,bi.getPublicKey(n),`lineage-ca@${t}`)],["mtls","Private key (PKCS#8 PEM)",Ik("PRIVATE KEY",ue(Tk,Ht(e,"node/mtls")))],["noise","noise_private.key",`privkey:${Be(xi(Ht(e,"node/noise")))}`]]}const Pk=["bip86","tapkey","wallet"],Yc=()=>({scheme:"bip86",roots:{},adopted:{}}),Uk=e=>ui.getPubKey(e)[0];function dp(e,t,n){return e.scheme==="wallet"?Pa(t,n):ui.getSecKey(e.scheme==="tapkey"?gi(t,n):Pa(t,n))[0]}const hp=(e,t)=>e.scheme==="tapkey"?nt.nostr(t):nt.wallet(t),Nk=(e,t)=>new Pn(dp(e,t,0)),Ae=e=>Ue.encode(e,!1).hex;function en(e,t,n){if(!n)return null;const r=i=>i?{mnemonic:i,account:0,origin:`${n.name} root`,steps:[]}:null;if(n.kind==="holding")return r(e.roots[n.id]);if(n.edge==="adopted")return r(e.adopted[n.id]);const s=t.nodes.get(n.parent);if(n.kind==="agent"){const i=en(e,t,s);return i&&{...i,account:n.index+1}}const o=en(e,t,s);return o&&{mnemonic:Av(o.mnemonic,n.index),account:0,origin:o.origin,steps:[...o.steps,`${n.index}'`]}}const ra=new Map;function Te(e,t,n){const r=en(e,t,n);if(!r)return null;const s=`${e.scheme}|${r.mnemonic}|${r.account}`;if(!ra.has(s)){const{npub:u,pubkey:l}=Tv(r.mnemonic,r.account);ra.set(s,{wallet:new Pn(dp(e,r.mnemonic,r.account)),npub:u,pubkey:l})}const{wallet:o,npub:i,pubkey:a}=ra.get(s),c=[r.origin,...r.steps].join(" › ");return{wallet:o,npub:i,pubkey:a,scheme:e.scheme,account:r.account,from:c,path:`${c} · ${hp(e,r.account)}`}}function Xc(e,t,n){const r=en(e,t,n);if(!r)return null;const s=Te(e,t,n),o=Zh(r.mnemonic,r.account);return{taproot:{address:s.wallet.address,path:hp(e,r.account)},segwit:{address:ps.p2wpkh.fromPubKey(o,"regtest"),path:nt.segwit(r.account)},tapkey:{address:ps.p2tr.fromPubKey(Uk(s.pubkey),"regtest"),path:nt.nostr(r.account)},npub:{address:s.npub,path:nt.nostr(r.account)},ethereum:{address:Bv(r.mnemonic,r.account),path:nt.ethereum(r.account)}}}function Lk(e,t,n){const r=en(e,t,n);if(!r)return null;const s=Te(e,t,n),o=Xc(e,t,n),{mnemonic:i,account:a}=r;return{keys:{taproot:o.taproot.address,segwit:o.segwit.address,nostr:o.npub.address,ethereum:o.ethereum.address},secrets:{taproot:s.wallet.secret,segwit:Zc(i,a),nostr:gi(i,a),ethereum:zh(i,a)}}}function Jc(e,t,n){const r=wi(e.chain,n);if(!r)return null;const s=Ae(r.scriptPubKey),o=t.nodes.get(n),i=Te(e.keys,t,o),a=o&&Te(e.keys,t,t.nodes.get(o.parent));return i&&Ae(i.wallet.script)===s?{wallet:i.wallet,who:"own"}:e.wallet&&Ae(e.wallet.script)===s?{wallet:e.wallet,who:"lab"}:a&&Ae(a.wallet.script)===s?{wallet:a.wallet,who:"parent"}:{wallet:null,who:"other",script:s}}function Ds(e,t){const n=e.nodes.get(t),r=[n];for(const s of or(e.nodes,n))s.status==="active"&&s.edge==="derived"&&r.push(...Ds(e,s.id));return r}function Ra(e,t){const n=[];for(let r=t;r;r=e.nodes.get(r.parent))n.push(r.name);return n.join(".")}function Hk(e,t,n){const r=en(e,t,n);if(!r)return null;if(n.kind!=="agent")return Bk(_k(Mc(r.mnemonic)),Ra(t,n));const s=Ra(t,t.nodes.get(n.parent));return Ak(Sk(gi(r.mnemonic,r.account)),`${n.name}@${s}`,n.name,s)}const Rk=Nh(Ee),as=(e,t=239)=>Rk.encode(ue(Uint8Array.of(t),mt(e),Uint8Array.of(1))),jk=e=>sr.encode("nsec",sr.toWords(mt(e))),Kk="0123456789()[],'/*abcdefgh@:$%{}IJKLMNOPQRSTUVWXYZ&+-.;<=>?!^_|~ijklmnopqrstuvwxyzABCDEFGH`#\"\\ ",Dk=[0xf5dee51989n,0xa9fdca3312n,0x1bab10e32dn,0x3706b1677an,0x644d626ffdn];function sa(e){const t=(i,a)=>{const c=i>>35n;return i=(i&0x7ffffffffn)<<5n^BigInt(a),Dk.forEach((u,l)=>{c>>BigInt(l)&1n&&(i^=u)}),i};let n=1n,r=0,s=0;for(const i of e){const a=Kk.indexOf(i);if(a<0)throw new Error("Invalid descriptor character.");n=t(n,a&31),r=r*3+(a>>5),++s===3&&(n=t(n,r),r=0,s=0)}s&&(n=t(n,r));for(let i=0;i<8;i++)n=t(n,0);n^=1n;let o="";for(let i=0;i<8;i++)o+="qpzry9x8gf2tvdw0s3jn54khce6mua7l"[Number(n>>BigInt(5*(7-i))&31n)];return`${e}#${o}`}function Mk(e,t,n){const r=en(e,t,n);if(!r)return null;const s=gi(r.mnemonic,r.account),o=Pa(r.mnemonic,r.account),i={bip86:`tr(${as(o)})`,tapkey:`tr(${as(s)})`,wallet:`rawtr(${as(o)})`}[e.scheme],a=n.kind==="agent",c=Ra(t,a?t.nodes.get(n.parent):n);return{seed:a&&n.edge!=="adopted"?null:{from:[r.origin,...r.steps].join(" › "),mnemonic:r.mnemonic},account:[["nsec","NIP-06",jk(s)],["taproot","descriptor",sa(i)],["segwit","descriptor",sa(`wpkh(${as(Zc(r.mnemonic,r.account))})`)],["tapkey","descriptor",sa(`tr(${as(s)})`)],["ethereum","private key",`0x${zh(r.mnemonic,r.account)}`]],leaves:a?Ok(s,`${n.name}@${c}`):Ck(Mc(r.mnemonic),c)}}const Br=1e8,ze=50*Br,Pe=330,pp=e=>(e/Br).toFixed(8).replace(/\.?0+$/,""),G=e=>`${pp(e)} tBTC`;function Qc(e){if(e<1e6)return G(e);const t=Math.round(e/1e6)*1e6;return`${t===e?"":"≈"}${G(t)}`}function vi(e){const t=/^\s*(\d{0,7})(?:\.(\d{0,8}))?\s*$/.exec(String(e??""));return!t||!(t[1]||t[2])?null:Number(t[1]||0)*Br+Number((t[2]??"").padEnd(8,"0"))}class eu{constructor(t,n,r){this.secret=t,this.pubkey=n,this.path=r,this.address=ps.p2wpkh.fromPubKey(n,"regtest"),this.script=ps.toScriptPubKey(this.address)}sign(t,n){return[Xn.segwit.sign(this.secret,t,n,{pubkey:this.pubkey}).hex,this.pubkey]}}const oa=new Map;function ye(e,t,n){const r=en(e,t,n);if(!r)return null;const s=`${r.mnemonic}|${r.account}`;return oa.has(s)||oa.set(s,new eu(Zc(r.mnemonic,r.account),Zh(r.mnemonic,r.account),nt.segwit(r.account))),oa.get(s)}function Zk(e,t,n){var s;const r=n?t.nodes.get(n):null;return r&&r.root===r.id&&r.status==="active"?((s=ye(e,t,r))==null?void 0:s.script)??null:null}const Tr=(e,t)=>{var n,r;return((r=(n=e.mining)==null?void 0:n.rigs)==null?void 0:r[t])??1};function tu(e,t){var n;return((n=e.mining)==null?void 0:n.rule)==="none"?[]:t.roots.filter(r=>r.status==="active"&&Tr(e,r.id)>0&&ye(e.keys,t,r)).slice(0,np)}function gp(e,t,n){var i,a;if(((i=e.mining)==null?void 0:i.rule)==="none")return null;if(((a=e.mining)==null?void 0:a.rule)==="last"){const c=Zk(e.keys,t,n);return c?[{script:c,value:ze}]:null}const r=tu(e,t),s=r.reduce((c,u)=>c+Tr(e,u.id),0);let o=ze;return r.length?r.map((c,u)=>{const l=u===r.length-1?o:Math.floor(ze*Tr(e,c.id)/s);return o-=l,{script:ye(e.keys,t,c).script,value:l}}):null}function ir(e,t,n=ut){const r=t+X,s=u=>u===r||u-r>=Pe&&u-r<=ze,o=[...e].sort((u,l)=>u.value-l.value),i=o.find(u=>s(u.value));if(i||n<2)return i?[i]:null;let a=null;for(let u=0;ue.reduce((t,n)=>t+n.value,0);function ru(e,t=ut){let n=0,r=-X;for(const s of e.map(o=>o.value).sort((o,i)=>i-o).slice(0,t)){r+=s;const o=r<=ze?r:r-ze>=Pe?ze:r-Pe;o>=Pe&&r-o<=ze&&(n=Math.max(n,o))}return n}function su(e,t,n,r=ut,s="send"){const o=nu(t),i=n+X,a=ru(t,r),c=`${s[0].toUpperCase()}${s.slice(1)}`;if(od.value).sort((d,h)=>h-d),l=u.slice(0,r).map((d,h)=>u.slice(0,h+1).reduce((g,p)=>g+p,0)),f=Math.min(...[...u,...u.flatMap((d,h)=>u.slice(h+1).map(g=>d+g)),...l].filter(d=>d>=i));return Number.isFinite(f)&&f-inew Set((e.offers??[]).flatMap(t=>t.payers.map(n=>`${n.txid}:${n.vout}`))),mp=(e,t)=>e.chain.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}),yp=(e,t,n=ut)=>!!ir(e,t,n),wp=(e,t,n)=>yp(mp(e,t),n);function iu(e,t,n,r,s="This node",o="send"){const i=mp(e,t),a=ou(e),c=ir(i.filter(d=>!a.has(`${d.txid}:${d.vout}`)),r)??ir(i,r);if(!c)throw new Error(su(s,i,r,ut,o));const u=nu(c)-r-X,l=ee.create({vin:c.map(d=>Xe(d.txid,d.vout,d.value,d.scriptPubKey)),vout:[xe(r,n),...u?[xe(u,t.script)]:[]]});c.forEach((d,h)=>{l.vin[h].witness=t instanceof eu?t.sign(l,h):[t.sign(l,void 0,h)]});const f=ee.encode(l).hex;return e.chain.submitPackage([f]),ee.util.getTxid(f)}function bp(e,t,n,r,s){const o=t.nodes.get(n),i=t.nodes.get(r);if(!o||!i)throw new Error("Pick who sends and who receives.");if(o.id===i.id)throw new Error(`${o.name} cannot send to itself.`);for(const u of[o,i])if(u.status!=="active")throw new Error(`${u.name} is ${u.status}.`);const a=ye(e.keys,t,o),c=ye(e.keys,t,i);if(!a||!c)throw new Error("A holding that predates lab keys has no SegWit addresses.");if(!Number.isSafeInteger(s)||sze)throw new Error("Send at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");return iu(e,a,c.script,s,o.name)}function Vk(e,t,n){if(!t||!n||Ae(t.script)===Ae(n.script))return 0;let r=0;for(const s of e.chain.coins(t.script)){if(s.value-X{var u;return r||!((u=c.inscriptions)!=null&&u.length)}).sort((c,u)=>u.value-c.value);let o=[],i=0;const a=()=>{const c=o.reduce((u,l)=>u+l.value,0);if(o.length&&c-X>=Pe){const u=ee.create({vin:o.map(l=>Xe(l.txid,l.vout,l.value,l.scriptPubKey)),vout:[xe(c-X,n)]});o.forEach((l,f)=>{u.vin[f].witness=r?t.sign(u,f):[t.sign(u,void 0,f)]}),e.chain.submitPackage([ee.encode(u).hex]),i++}o=[]};for(const c of s)(o.length===ut||o.reduce((u,l)=>u+l.value,0)+c.value-X>ze)&&a(),o.push(c);return a(),i}const au=(e,t)=>[t,...t.log.flatMap((n,r)=>n.ok&&n.rekeys?[Cn(e.slice(0,r),{pending:!0})]:[])];function xp(e,t){const n=new Map;for(const r of e)for(const s of r.nodes.values()){const o=t(r,s);o&&!n.has(o)&&n.set(o,s.id)}return n}const qk=(e,t,n)=>xp(au(t,n),(r,s)=>{const o=ye(e,r,s);return o&&Ae(o.script)}),ia=new Map,zk=(e,t,n)=>xp(au(t,n),(r,s)=>{const o=en(e,r,s),i=o&&`${e.scheme}|${o.mnemonic}|${o.account}`;return i&&!ia.has(i)&&ia.set(i,Ae(Te(e,r,s).wallet.script)),i?ia.get(i):null}),cu=(e,t)=>e.coins(t.script).filter(n=>{var r;return!((r=n.inscriptions)!=null&&r.length)}).reduce((n,r)=>n+r.value,0);function Fk(e,t,n,r){for(const s of au(t,n))for(const o of s.nodes.values()){const i=Te(e,s,o);if(i&&Ae(i.wallet.script)===r)return{node:o.id,wallet:i.wallet}}return null}function Wk(e,t,n=new Map,r=new Map){var a;const s=[],o=c=>t.get(Ae(c))??null,i=c=>c.reduce((u,l)=>u+l.value,0);for(const{txid:c,tx:u,height:l,coinbase:f}of e.transactions.values()){const d=u.vout.map(x=>({script:Ae(x.scriptPubKey),node:o(x.scriptPubKey),value:Number(x.value)}));if(f){d.forEach((x,k)=>{x.node&&s.push({kind:"mine",key:`${c}:${k}`,txid:c,beat:l,from:null,to:x.node,amount:x.value,fee:0,change:0})});continue}const h=u.vin.map(x=>{var I,C;const k=((I=e.transactions.get(x.txid))==null?void 0:I.tx.vout[x.vout])??((C=e.imported)==null?void 0:C.call(e,x.txid,x.vout));return k?{node:o(k.scriptPubKey),tank:n.get(Ae(k.scriptPubKey))??null,value:Number(k.value)}:null}),g=r.get(c);if(g!=null&&g.prep)continue;if(g!=null&&g.ask){s.push({kind:"deal",key:c,txid:c,beat:l,from:g.buyer,to:g.seller,amount:g.price,item:g.item,fee:2*X,change:0,ask:!0});continue}if(g&&h.length>1&&h[0]&&h.slice(1).every(x=>(x==null?void 0:x.node)===g.buyer)){s.push({kind:"deal",key:c,txid:c,beat:l,from:g.buyer,to:g.seller,amount:g.price,item:g.item,fee:i(h)-i(d),change:i(d.filter(x=>x.node===g.buyer))});continue}if(h.every(x=>x&&!x.node)){const x=d.filter(I=>I.node),k=h[0].tank&&h.every(I=>I.tank===h[0].tank)?h[0].tank:null;x.length&&k?s.push({kind:"pay",key:c,txid:c,beat:l,from:k,to:x[0].node,amount:x[0].value,fee:i(h)-i(d),change:0}):x.length&&s.push({kind:"fund",key:c,txid:c,beat:l,from:null,to:x[0].node,amount:x[0].value,fee:i(h)-i(d),change:i(d.filter(I=>!I.node))});continue}const p=(a=h[0])==null?void 0:a.node;if(!p||!h.every(x=>(x==null?void 0:x.node)===p))continue;const w=d.filter(x=>x.node!==p),y=d.filter(x=>x.node===p),v=i(h)-i(d),m={key:c,txid:c,beat:l,from:p,fee:v};w.length&&w.every(x=>n.get(x.script)===p)?s.push({...m,kind:"gas",to:p,amount:i(w),change:i(y)}):w.length?s.push({...m,kind:"pay",to:w[0].node,amount:w[0].value,change:i(y)}):s.push({...m,kind:"move",to:p,amount:i(y),change:0})}return s}function ja(e,t,n=1/0){const r=new Map;for(const{txid:o,tx:i,height:a,coinbase:c}of e.transactions.values())if(!(a===null?n!==1/0:a>n)){if(!c)for(const u of i.vin)r.delete(`${u.txid}:${u.vout}`);i.vout.forEach((u,l)=>{const f=t.get(Ae(u.scriptPubKey));f&&r.set(`${o}:${l}`,{node:f,value:Number(u.value)})})}const s=new Map;for(const{node:o,value:i}of r.values())s.set(o,(s.get(o)??0)+i);return s}const Ka="lineage-offer",Da="lineage-ask",vt=600,Xo=/^[0-9a-f]{64}$/,Ir=/^[0-9a-f]{64}i0$/,Ma=/^5120[0-9a-f]{64}$/,go=/^0014[0-9a-f]{40}$/,Gk=/^[0-9a-f]{128}83$/,Yk="0".repeat(64),Za=e=>({txid:e.txid,vout:e.vout,value:e.value,script:Ae(e.scriptPubKey)}),Va=(e,t)=>!e.utxos.has(`${t.txid}:${t.vout}`),ki=e=>{const t=Xr(new fr(e.chain));return{events:t,state:Cn(t,{pending:!0})}},uu=e=>`${e[0].toUpperCase()}${e.slice(1)}`,mo=e=>e.reduce((t,n)=>t+n.value,0),Xk=e=>Xe(e.txid,e.vout,e.value,e.scriptPubKey);function vp(e){return ee.create({vin:[e.holder,...e.payers].map(t=>Xe(t.txid,t.vout,t.value,t.script)),vout:[xe(e.holder.value,e.to),...e.price?[xe(e.price,e.pay)]:[],...e.change?[xe(e.change,e.back)]:[]]})}function Ei(e,t,n,r){const s=wi(e.chain,r),o=s&&Fk(e.keys,t,n,Ae(s.scriptPubKey));return o?{coin:s,node:n.nodes.get(o.node),wallet:o.wallet}:null}function lu(e,t,n,r){const s=n.items.get(r)??null,o=s?null:n.nodes.get(r)??null;if(!s&&!o)return null;const i=Ei(e,t,n,r);return{id:r,name:(s??o).name,item:s,org:o,holder:i,seller:o?n.nodes.get(o.parent)??null:(i==null?void 0:i.node)??null}}function fu(e,t){return t.holder?t.org?t.holder.node.id!==t.org.id?`${t.name} is held by ${t.holder.node.name}`:nn(e.nodes,t.org):"":`no node in this lab holds ${t.name}`}function kp(e,t,n,r){const s=n.nodes.get(r);if((s==null?void 0:s.kind)!=="org"||s.status!=="active")return null;const o=Ei(e,t,n,r);return o&&o.node.id!==s.id&&o.node.id!==s.parent?o.node:null}function Ep(e,t,n,r,s=Date.now()){const{events:o,state:i}=ki(e),a=lu(e,o,i,t),c=i.nodes.get(n);if(!a)throw new Error("Pick an item or an org to make an offer on.");if(!c)throw new Error("Pick who makes the offer.");if(!Number.isSafeInteger(r)||r<0||r>0&&rze)throw new Error("Offer at most 50 test BTC: no output on this chain is bigger than one block reward.");const u=fu(i,a)||(a.org?nn(i.nodes,a.org,c):"");if(u)throw new Error(`${uu(u)}.`);const l=a.seller;if(l.id===c.id)throw new Error(`${c.name} already holds ${a.name}.`);for(const m of[c,l])if(m.status!=="active")throw new Error(`${m.name} is ${m.status}.`);const f=ye(e.keys,i,c),d=ye(e.keys,i,l),h=Te(e.keys,i,c);if(!f||!d||!h)throw new Error("A holding that predates lab keys cannot trade.");if((e.offers??[]).some(m=>m.item===t&&m.buyer===c.id&&yo(e,i,m)==="open"))throw new Error(`${c.name} already has an open offer on ${a.name}. Withdraw it first.`);const g=e.chain.coins(f.script),p=ou(e),w=ir(g.filter(m=>!p.has(`${m.txid}:${m.vout}`)),r,ut-1)??ir(g,r,ut-1);if(!w)throw new Error(su(c.name,g,r,ut-1,"offer"));const y={kind:Ka,version:1,item:t,buyer:c.id,seller:l.id,price:r,holder:Za(a.holder.coin),payers:w.map(Za),to:Ae(h.wallet.script),pay:Ae(d.script),back:Ae(f.script),change:mo(w)-r-X,at:s},v=vp(y);return y.txid=ee.util.getTxid(v),y.witnesses=w.map((m,x)=>f.sign(v,x+1)),(e.offers??(e.offers=[])).push(y),y}function du(e,t,n){var l,f;const r=d=>{var h;return((h=t.nodes.get(d))==null?void 0:h.name)??"a node"},s=t.nodes.get(n.item),o=(s==null?void 0:s.name)??((l=t.items.get(n.item))==null?void 0:l.name)??"the item";if(Va(e.chain,n.holder))return s?`${o}'s inscription has moved since`:`${o} has moved since`;if(n.payers.some(d=>Va(e.chain,d)))return`${r(n.buyer)} has spent a coin the offer promised`;for(const d of[n.buyer,n.seller]){const h=t.nodes.get(d);if((h==null?void 0:h.status)!=="active")return`${r(d)} is ${(h==null?void 0:h.status)??"gone"}`}const i=t.nodes.get(n.buyer),a=t.nodes.get(n.seller),c=d=>d?Ae(d.script):"";if(s&&s.parent!==a.id)return`${o} is no longer ${a.name}'s`;const u=s?nn(t.nodes,s,i):"";return u||(c((f=Te(e.keys,t,i))==null?void 0:f.wallet)!==n.to||c(ye(e.keys,t,i))!==n.back?`${i.name} has new keys since`:n.price&&c(ye(e.keys,t,a))!==n.pay?`${a.name} has new keys since`:"")}const yo=(e,t,n)=>e.chain.transactions.has(n.txid)?"done":du(e,t,n)?"stale":"open";function Jk(e,t,n=null){var u;const r=(e.offers??[]).find(l=>l.txid===t);if(!r)throw new Error("That offer is gone.");if(e.chain.transactions.has(r.txid))throw new Error("That offer was already accepted.");const{events:s,state:o}=ki(e),i=du(e,o,r);if(i)throw new Error(`This offer is stale: ${i}.`);const a=lu(e,s,o,r.item);if(!a||((u=a.seller)==null?void 0:u.id)!==r.seller||fu(o,a))throw new Error("Only the holder can accept.");n==null||n(o,a);const c=vp(r);return r.witnesses.forEach((l,f)=>{c.vin[f+1].witness=l}),c.vin[0].witness=[a.holder.wallet.sign(c,void 0,0)],e.chain.submitPackage([ee.encode(c).hex]),r}function Qk(e,t){const n=(e.offers??[]).find(r=>r.txid===t);if(!n)throw new Error("That offer is gone.");if(e.chain.transactions.has(n.txid))throw new Error("That offer was accepted: it is on the chain now.");return e.offers=e.offers.filter(r=>r!==n),n}const Jr=e=>`${e.holder.txid}:${e.holder.vout}`,eE=e=>ee.create({vin:[Xe(Yk,0,vt,e.pay),Xe(e.holder.txid,e.holder.vout,e.holder.value,e.holder.script)],vout:[xe(vt+e.holder.value,e.holder.script),xe(e.price,e.pay)]});function tE(e,t,n,r=Date.now(),s=null){var h;const{events:o,state:i}=ki(e),a=lu(e,o,i,t);if(!a)throw new Error("Pick an item or an org to sell.");if(!Number.isSafeInteger(n)||nze-X)throw new Error(`Ask at most ${G(ze-X)}: the buyer funds the price and its fee in one output.`);const c=fu(i,a);if(c)throw new Error(`${uu(c)}.`);const u=a.seller,l=ye(e.keys,i,u);if(u.status!=="active")throw new Error(`${u.name} is ${u.status}.`);if(!l||!((h=a.holder.wallet)!=null&&h.secret))throw new Error("A holding that predates lab keys cannot trade.");const f=(e.asks??[]).find(g=>g.lot===t&&$i(e,i,g)==="open");if(f)throw new Error(`${a.name} is already listed at ${G(f.price)}. Withdraw that ask first.`);s==null||s(i,a);const d={kind:Da,version:1,lot:t,seller:u.id,price:n,holder:Za(a.holder.coin),pay:Ae(l.script),at:r,taken:null};return d.sig=Xn.taproot.sign(a.holder.wallet.secret,eE(d),1,{sigflag:131}).hex,(e.asks??(e.asks=[])).push(d),d}function hu(e,t,n){var a;const r=t.nodes.get(n.lot),s=(r==null?void 0:r.name)??((a=t.items.get(n.lot))==null?void 0:a.name)??"the item",o=t.nodes.get(n.seller);if(Va(e.chain,n.holder))return r?`${s}'s inscription has moved since`:`${s} has moved since`;if((o==null?void 0:o.status)!=="active")return`${(o==null?void 0:o.name)??"the seller"} is ${(o==null?void 0:o.status)??"gone"}`;const i=ye(e.keys,t,o);return!i||Ae(i.script)!==n.pay?`${o.name} has new keys since`:r&&r.parent!==o.id?`${s} is no longer ${o.name}'s`:r?nn(t.nodes,r):""}const $i=(e,t,n)=>n.taken&&e.chain.transactions.has(n.taken.txid)?"done":hu(e,t,n)?"stale":"open",nE=(e,t,n)=>(e.asks??[]).find(r=>r.lot===n&&$i(e,t,r)==="open")??null;function rE(e,t,n,r=Date.now()){const s=(e.asks??[]).find(C=>Jr(C)===t);if(!s)throw new Error("That ask is gone.");if(s.taken)throw new Error("That ask was already taken.");const{state:o}=ki(e),i=hu(e,o,s),a=o.nodes.get(n);if(i)throw new Error(`This ask is stale: ${i}.`);if(!a)throw new Error("Pick who takes the ask.");if(a.status!=="active")throw new Error(`${a.name} is ${a.status}.`);if(a.id===s.seller)throw new Error(`${a.name} is the seller.`);const c=o.nodes.get(s.lot),u=c?nn(o.nodes,c,a):"";if(u)throw new Error(`${uu(u)}.`);const l=ye(e.keys,o,a),f=Te(e.keys,o,a);if(!l||!f)throw new Error("A holding that predates lab keys cannot trade.");const d=e.chain.coins(l.script),h=ou(e),g=vt+s.price+X,p=ir(d.filter(C=>!h.has(`${C.txid}:${C.vout}`)),g)??ir(d,g);if(!p)throw mo(d){v.vin[N].witness=l.sign(v,N)});const m=ee.encode(v).hex,x=ee.util.getTxid(m),k=ee.create({vin:[Xe(x,0,vt,y),Xe(s.holder.txid,s.holder.vout,s.holder.value,s.holder.script),Xe(x,1,s.price+X,y)],vout:[xe(vt+s.holder.value,f.wallet.script),xe(s.price,s.pay)]});k.vin[1].witness=[s.sig],k.vin[0].witness=l.sign(k,0),k.vin[2].witness=l.sign(k,2);const I=ee.encode(k).hex;return e.chain.submitPackage([m,I]),s.taken={txid:ee.util.getTxid(I),prep:x,buyer:a.id,at:r},s}function sE(e,t){const n=(e.asks??[]).find(r=>Jr(r)===t);if(!n)throw new Error("That ask is gone.");if(n.taken)throw new Error("That ask was taken: it is on the chain now.");return e.asks=e.asks.filter(r=>r!==n),n}function oE(e){const t=(e.asks??[]).filter(n=>n.taken).flatMap(n=>[[n.taken.txid,{ask:!0,buyer:n.taken.buyer,seller:n.seller,price:n.price,item:n.lot}],[n.taken.prep,{prep:!0}]]);return new Map([...(e.offers??[]).map(n=>[n.txid,n]),...t])}const qa=(e,t)=>e&&Xo.test(e.txid)&&Number.isSafeInteger(e.vout)&&e.vout>=0&&Number.isSafeInteger(e.value)&&e.value>=Pe&&e.value<=ze&&t.test(e.script);function iE(e){const t=n=>Number.isSafeInteger(n)&&(n===0||n>=Pe&&n<=ze);if((e==null?void 0:e.kind)!==Ka||e.version!==1||!Ir.test(e.item)||!Ir.test(e.buyer)||!Ir.test(e.seller)||e.buyer===e.seller||!t(e.price)||!t(e.change)||!qa(e.holder,Ma)||!Array.isArray(e.payers)||!e.payers.length||e.payers.length>ut-1||!e.payers.every(n=>qa(n,go))||!Ma.test(e.to)||!go.test(e.pay)||!go.test(e.back)||!Xo.test(e.txid)||!Array.isArray(e.witnesses)||e.witnesses.length!==e.payers.length||!e.witnesses.every(n=>Array.isArray(n)&&n.length===2&&/^30[0-9a-f]{12,140}01$/.test(n[0])&&/^0[23][0-9a-f]{64}$/.test(n[1]))||!Number.isSafeInteger(e.at))throw new Error("Invalid offer.");return{kind:Ka,version:1,item:e.item,buyer:e.buyer,seller:e.seller,price:e.price,holder:{...e.holder},payers:e.payers.map(n=>({...n})),to:e.to,pay:e.pay,back:e.back,change:e.change,at:e.at,txid:e.txid,witnesses:e.witnesses.map(n=>[...n])}}function aE(e){const t=e==null?void 0:e.taken;if((e==null?void 0:e.kind)!==Da||e.version!==1||!Ir.test(e.lot)||!Ir.test(e.seller)||!Number.isSafeInteger(e.price)||e.priceze-X||!qa(e.holder,Ma)||!go.test(e.pay)||typeof e.sig!="string"||!Gk.test(e.sig)||!Number.isSafeInteger(e.at)||!(t===null||t&&Xo.test(t.txid)&&Xo.test(t.prep)&&Ir.test(t.buyer)&&Number.isSafeInteger(t.at)))throw new Error("Invalid ask.");return{kind:Da,version:1,lot:e.lot,seller:e.seller,price:e.price,holder:{...e.holder},pay:e.pay,at:e.at,sig:e.sig,taken:t?{txid:t.txid,prep:t.prep,buyer:t.buyer,at:t.at}:null}}const Si="orgchain:lab:v1",cE=["each",10,30,60,"manual"];function Ms(e={tempo:"each",nextAt:null}){const{tempo:t,nextAt:n}=e??{},r=typeof t=="number";if(!cE.includes(t)||!(n===null||r&&Number.isSafeInteger(n)&&n>0))throw new Error("Invalid clock.");return{tempo:t,nextAt:n}}function $p(e){const t=Yc();for(const n of["roots","adopted"])for(const[r,s]of Object.entries((e==null?void 0:e[n])??{})){if(!/^[0-9a-f]{64}i0$/.test(r))throw new Error("Invalid lab keys.");t[n][r]=Mh(s,24)}if(t.scheme=(e==null?void 0:e.scheme)??(Object.keys(t.roots).length?"wallet":"bip86"),!Pk.includes(t.scheme))throw new Error("Invalid lab keys.");return t}const uE=["split","last","none"];function Zs(e){const t=(e==null?void 0:e.rule)??"split",n={};if(!uE.includes(t))throw new Error("Invalid mining rule.");for(const[r,s]of Object.entries((e==null?void 0:e.rigs)??{})){if(!/^[0-9a-f]{64}i0$/.test(r)||!Number.isSafeInteger(s)||s<0||s>9)throw new Error("Invalid hashrate.");s!==1&&(n[r]=s)}return{rule:t,rigs:n}}function Sp(e=[]){if(!Array.isArray(e)||e.length>1e3)throw new Error("Invalid offers.");const t=e.map(iE);if(new Set(t.map(n=>n.txid)).size!==t.length)throw new Error("Invalid offers.");return t}function _p(e=[]){if(!Array.isArray(e)||e.length>1e3)throw new Error("Invalid asks.");const t=e.map(aE);if(new Set(t.map(Jr)).size!==t.length)throw new Error("Invalid asks.");return t}const Vs=()=>({wallet:null,chain:new yi,clock:Ms(),keys:Yc(),mining:Zs(),offers:[],asks:[]});function Ap(e){if(!e)return Vs();const t=JSON.parse(e);if((t==null?void 0:t.kind)!=="orgchain-lab"||t.network!==En||t.version!==1)throw new Error("That is not an Orgchain v1 lab.");return{wallet:t.wallet?Pn.load(t.wallet):null,chain:new yi(t.chain),clock:Ms(t.clock),keys:$p(t.keys),mining:Zs(t.mining),offers:Sp(t.offers),asks:_p(t.asks)}}const Bp=e=>{var t;return JSON.stringify({kind:"orgchain-lab",network:En,version:1,wallet:((t=e.wallet)==null?void 0:t.backup())??null,chain:e.chain.snapshot(),clock:Ms(e.clock),keys:$p(e.keys),mining:Zs(e.mining),offers:Sp(e.offers),asks:_p(e.asks)})};function lE(e,t,n){var r;e.mining=Zs({...e.mining,rigs:{...(r=e.mining)==null?void 0:r.rigs,[t]:n}})}function fE(e,t){e.mining=Zs({...e.mining,rule:t})}const pu=()=>Ap(localStorage.getItem(Si));function dE(e){try{localStorage.setItem(Si,Bp(e))}catch{throw new Error("Browser storage is full or unavailable, so nothing was saved. Save a backup, then reset.")}}async function hE(e,{locks:t=(s=>(s=globalThis.navigator)==null?void 0:s.locks)(),read:n=pu,save:r=dE}={}){if(!t)throw new Error("Orgchain needs Web Locks: open it over HTTPS or on localhost.");return t.request(Si,async()=>{const o=n(),i=await e(o);return i!==!1&&r(o),{lab:o,result:i}})}function ct(e,t=null){e.wallet||(e.wallet=Pn.create());const n=t!=null&&t.length?e.chain.mineTo(t.map(r=>xe(r.value,r.script))):e.chain.mine(e.wallet.script);return e.clock=Ms({tempo:e.clock.tempo,nextAt:null}),n}function rn(e,t=Date.now()){const{tempo:n,nextAt:r}=e.clock;typeof n=="number"&&e.chain.mempool.length&&r===null&&(e.clock={tempo:n,nextAt:t+n*1e3})}function pE(e,t,n=Date.now(),r=null){e.clock=Ms({tempo:t,nextAt:null}),t==="each"&&e.chain.mempool.length?ct(e,r):rn(e,n)}function gE(e,t=Date.now(),n=null){const{tempo:r,nextAt:s}=e.clock;return typeof r!="number"||!e.chain.mempool.length?!1:s===null?(rn(e,t),!0):t`found ${e.name}`,birth:e=>`birth ${e.name}`,award:e=>`award ${e.skill} ${e.belt}`,decide:e=>`decide ${e.title}`,make:e=>`make ${e.name}`,keyring:(e,t)=>mi(t,e),charter:e=>`charter ${e.form}${e.jurisdiction?` ${e.jurisdiction}`:""}`,graduate:()=>"graduate",close:()=>"close",join:()=>"join",adopt:()=>"adopt"};function yE(e,t={}){if(!Object.hasOwn(Bl,e))throw new Error("Unknown verb.");const n={op:e};for(const s of Bl[e]){const o=t[s];typeof o=="string"&&o.trim()&&(n[s]=o.trim())}const r=e==="keyring"&&t.proof&&typeof t.proof=="object"?t.proof:null;return r&&(n.proof=Object.fromEntries(Bt.filter(s=>typeof r[s]=="string").map(s=>[s,r[s]]))),n}function Tp(e,t){const n=Re(e),r=n.nodes.get(t),s=r&&Lk(e.keys,n,r);if(!s)throw new Error(`${(r==null?void 0:r.name)??"That node"} predates lab keys, so it has no keys to list.`);return Dv(t,s.keys,s.secrets)}function gu(e,t,n,r={}){if(t==="keyring"){for(let s=e.nodes.get(n);s;s=s.edge==="derived"?e.nodes.get(s.parent):null)if(s.graduated==="cued")return`${s.name}'s graduation is cued, and it changes ${s.id===n?"its":`${e.nodes.get(n).name}'s`} keys. Publish the keyring once it lands`}if(t==="graduate"&&e.nodes.has(r.of)){const s=new Set(Ds(e,r.of).map(i=>i.id)),o=e.log.find(i=>i.pending&&i.ok&&i.op==="keyring"&&s.has(i.node));if(o)return`${e.nodes.get(o.node).name}'s keyring is cued. Graduate ${e.nodes.get(r.of).name} once it lands, so the graduation retires it`}return""}const Re=e=>Cn(Xr(new fr(e.chain)),{pending:!0});function Jo(e,t,n,r){const s=yE(t,r),o=Xr(new fr(e.chain)),i={id:"check",status:"pending",height:null,metadata:s,parent:n??null,protocol:Fc},{ok:a,why:c}=Cn([...o,i],{pending:!0}).log.at(-1);if(!a)throw new Error(`${c[0].toUpperCase()}${c.slice(1)}.`);return s}const za=Ut+2*X+330,Ip=1e5,_i=1e4,Gt=(e,t=0)=>Ut+2*X+(e==="birth"||e==="join"?1:e==="graduate"?Math.max(0,t-1):0)*X+330,wE=(e,t=0)=>Gt(e,t)-330,ar=(e,t,n)=>e.chain.coins(t.script).find(r=>{var s;return!((s=r.inscriptions)!=null&&s.length)&&r.value>=n}),Fa=e=>Xe(e.txid,e.vout,e.value,e.scriptPubKey),Op=(e,t)=>(t.forEach((n,r)=>{e.vin[r].witness=[n.sign(e,void 0,r)]}),ee.encode(e).hex);function mu(e){e.keys??(e.keys=Yc()),e.wallet||(e.wallet=Pn.create()),ar(e,e.wallet,Ip+X+330)||ct(e)}function Cp(e,t,n=za,r=Ip){if(t===e.wallet||ar(e,t,n))return;const s=ar(e,e.wallet,r+X+330),o=ee.create({vin:[Fa(s)],vout:[xe(r,t.script),xe(s.value-r-X,e.wallet.script)]});e.chain.submitPackage([Op(o,[e.wallet])])}function Is(e,t,n,r,s){if(r===e.wallet||ar(e,r,s))return;const o=n&&ye(e.keys,t,n);if(!o)return Cp(e,r,s);iu(e,o,r.script,Math.max(_i,s),n.name)}function yu(e,t,n,r,s){if(r===e.wallet||ar(e,r,s))return!0;const o=n&&ye(e.keys,t,n);return!o||wp(e,o,Math.max(_i,s))}function wu(e,t,n,r,s={}){var l,f;const o=r?t.nodes.get(r):null,i=o&&((l=Jc(e,t,r))==null?void 0:l.wallet);if(n==="found"||!i)return"";const a=n==="graduate"?t.nodes.get(s.of):null,c=a&&Te(e.keys,t,a)?Ds(t,a.id).length:0;if(!yu(e,t,o,i,Gt(n,c))){const d=t.nodes.get(o.parent);return`${o.name} has no test BTC for gas. ${d?`${d.name} can send some`:((f=e.mining)==null?void 0:f.rule)==="none"?"Fund it from the lab wallet":"It earns some each beat it mines"}`}const u=c?ye(e.keys,t,a):null;return u&&!yp(e.chain.coins(u.script).filter(d=>d.value-X>=Pe).map(d=>({value:d.value-X})),_i)?`${a.name} needs test BTC of its own to claim its new root. Send it some first`:""}function Qo(e,t,n,r,s=n){const o=wi(e.chain,t),i=ar(e,s,X+330),a=ee.create({vin:[Fa(o),Fa(i)],vout:[xe(o.value,r.script),xe(i.value-X,s.script)]});e.chain.submitPackage([Op(a,[n,s])])}function ei(e,t,n,r,s){return new Mx(e.chain,t).inscribe(mE[n](s,r),r??null,s,{metaprotocol:Fc})}const gr=(e,t)=>{var r;const n=Re(e);return gp(e,n,((r=n.nodes.get(t))==null?void 0:r.root)??null)},Ai=(e,t)=>gp(e,Re(e),t);function bu(e){var r,s,o;const t=Re(e),n=new Map;for(const i of t.nodes.values())for(const a of[ye(e.keys,t,i),(r=Te(e.keys,t,i))==null?void 0:r.wallet])a&&n.set(Ae(a.script),i.root);for(const i of[...e.chain.mempool].reverse()){const a=e.chain.transactions.get(ee.util.getTxid(i));if(a!=null&&a.inscription){const c=(s=t.log.find(u=>u.id===a.inscription.id))==null?void 0:s.root;if(c)return c;continue}for(const c of(a==null?void 0:a.tx.vin)??[]){const u=((o=e.chain.transactions.get(c.txid))==null?void 0:o.tx.vout[c.vout])??e.chain.imported(c.txid,c.vout),l=u&&n.get(Ae(u.scriptPubKey));if(l)return l}}return null}function Os(e,t,n){var s;const r=Jc(e,t,n);if(!(r!=null&&r.wallet))throw new Error(`No key in this lab holds ${((s=t.nodes.get(n))==null?void 0:s.name)??"that node"}'s inscription.`);return r.wallet}function Pp(e,t,n,r){if(t==="found"){const l=dl(),f=Nk(e.keys,l);Cp(e,f,za,za);const d=ei(e,f,t,null,r);return e.keys.roots[d]=l,d}const s=Re(e),o=Os(e,s,n),i=s.nodes.get(n),a=t==="graduate"?s.nodes.get(r.of):null,c=a&&Te(e.keys,s,a)?Ds(s,a.id).map(l=>[l.id,Os(e,s,l.id)]):[];Is(e,s,i,o,Gt(t,c.length));const u=ei(e,o,t,n,r);if(t==="birth"){const l=Re(e),f=Te(e.keys,l,l.nodes.get(u));f&&Qo(e,u,o,f.wallet)}if(c.length){e.keys.adopted[a.id]=dl();const l=Re(e);for(const[f,d]of c){const h=Te(e.keys,l,l.nodes.get(f)).wallet;if(Vk(e,ye(e.keys,s,s.nodes.get(f)),ye(e.keys,l,l.nodes.get(f))),f!==a.id){Qo(e,f,d,h,o);continue}Is(e,l,l.nodes.get(f),h,X+330),rk(e.chain,nk(e.chain,f,h),d)}}return u}function bE(e,t,n,r,s=Date.now()){if(t==="join"||t==="adopt")throw new Error("An org changes hands through Sell and Buy, and its buyer adopts it.");const o=Un(e,Re(e),t,n??null,r??{});if(o)throw new Error(`${o}.`);const i=gu(Re(e),t,n??null,r??{});if(i)throw new Error(`${i}.`);const a=Jo(e,t,n,t==="keyring"?Tp(e,n):r),c=wu(e,Re(e),t,n??null,a);if(c)throw new Error(`${c}.`);mu(e);const u=Pp(e,t,n??null,a);return e.clock.tempo==="each"?ct(e,gr(e,n??u)):rn(e,s),u}function xE(e,t,n,r,s=Date.now()){const o=Un(e,Re(e),"send",t)||Un(e,Re(e),"send",n);if(o)throw new Error(`${o}.`);const i=bp(e,Re(e),t,n,r);return e.clock.tempo==="each"?ct(e,gr(e,t)):rn(e,s),i}function vE(e,t,n,r,s=Date.now()){const o=Un(e,Re(e),"offer",n);if(o)throw new Error(`${o}.`);return Ep(e,t,n,r,s)}function kE(e,t,n=Date.now()){const r=Jk(e,t,(s,o)=>{o.org&&Up(e,s,o.org,o.seller)});return e.clock.tempo==="each"?ct(e,gr(e,r.seller)):rn(e,n),r}const EE=(e,t)=>Qk(e,t);function Un(e,t,n,r,s={},o=Xr(new fr(e.chain))){for(const i of[r,n==="graduate"?s.of:null]){const a=i?t.nodes.get(i):null,c=a?nE(e,t,i):null,u=a&&!c?kp(e,o,t,i):null;if(c)return`${a.name} is listed for sale at ${G(c.price)}. Withdraw its ask first`;if(u)return`${a.name} was sold to ${u.name}, which adopts it next`}return""}function Up(e,t,n,r){var c;const s=(c=Te(e.keys,t,n))==null?void 0:c.wallet,o=ye(e.keys,t,n),i=ye(e.keys,t,r);if(!s||!o||!i)return;const a=e.chain.coins(s.script).filter(u=>{var l;return((l=u.inscriptions)==null?void 0:l.some(f=>t.items.has(f.id)))&&!u.inscriptions.some(f=>f.id===n.id)});if(a.length){const u=Os(e,t,r.id);if(!yu(e,t,r,u,a.length*X+330))throw new Error(`${r.name} needs test BTC to take ${n.name}'s items home.`);for(const l of a)Is(e,t,r,u,X+330),Qo(e,l.inscriptions[0].id,s,u,u)}Al(e,s,i.script),Al(e,o,i.script)}function Np(e,t,n){const r=Re(e),s=Xr(new fr(e.chain)),o=r.nodes.get(t),i=r.nodes.get(n),a=Ei(e,s,r,t);if(!o||!i||(a==null?void 0:a.node.id)!==i.id)throw new Error(`${(i==null?void 0:i.name)??"That node"} does not hold ${(o==null?void 0:o.name)??"that org"}.`);const c=Os(e,r,i.id),u=a.wallet,l=Jo(e,"adopt",i.id,{of:o.id});if(!yu(e,r,i,c,Gt("adopt")+Gt("join")))throw new Error(`${i.name} has no test BTC for gas.`);Is(e,r,i,c,Gt("adopt")),ei(e,c,"adopt",i.id,l);const f=Jo(e,"join",o.id,{to:i.id});Is(e,r,i,u,Gt("join")),ei(e,u,"join",o.id,f);const d=Re(e);Qo(e,o.id,u,Te(e.keys,d,d.nodes.get(o.id)).wallet)}function $E(e,t,n,r){const s=t.nodes.get(r),o=t.nodes.get(n.lot),i=s&&ye(e.keys,t,s);if(!o||!i)return"";const a=nn(t.nodes,o,s);if(a)return`${a[0].toUpperCase()}${a.slice(1)}`;const c=Os(e,t,s.id),u=Gt("adopt")+Gt("join"),l=n.price+vt+2*X+(ar(e,c,u)?0:_i+X),f=e.chain.balance(i.script);return f{a.org&&Up(e,i,a.org,a.seller)});return e.chain.mempool.length>s&&(e.clock.tempo==="each"?ct(e,gr(e,o.seller)):rn(e,r)),o}const SE=(e,t)=>sE(e,t);function _E(e,t,n,r=Date.now()){const s=Re(e),o=(e.asks??[]).find(a=>Jr(a)===t),i=Un(e,s,"take",n)||(o&&!o.taken?$E(e,s,o,n):"");if(i)throw new Error(`${i}.`);return rE(e,t,n,r),s.nodes.has(o.lot)&&Np(e,o.lot,n),e.clock.tempo==="each"?ct(e,gr(e,n)):rn(e,r),o}function AE(e,t,n,r=Date.now()){const s=Un(e,Re(e),"adopt",n);if(s)throw new Error(`${s}.`);Np(e,t,n),e.clock.tempo==="each"?ct(e,gr(e,n)):rn(e,r)}function BE(e,t,n,r=Date.now()){const s=Re(e),o=s.nodes.get(t);if(!o||o.root!==o.id)throw new Error("Pick a holding to fund.");if(o.status!=="active")throw new Error(`${o.name} is closed.`);const i=ye(e.keys,s,o);if(!i)throw new Error("A holding that predates lab keys has no SegWit address to fund.");if(!Number.isSafeInteger(n)||nze)throw new Error("Fund at most 50 test BTC at a time: no output on this chain is bigger than one block reward.");mu(e),wp(e,e.wallet,n)||ct(e);const a=iu(e,e.wallet,i.script,n,"The lab wallet","fund");return e.clock.tempo==="each"?ct(e,gr(e,t)):rn(e,r),a}const Wa="yolopreneur",TE=[[["found",null,{name:"yolopreneur"}]],[["birth","yolopreneur",{name:"well-known",kind:"org"}],["birth","yolopreneur",{name:"time",kind:"org"}],["keyring","yolopreneur",{}],["charter","yolopreneur",{form:"series-llc",jurisdiction:"US-WY",legal:"Yolopreneur Holdings LLC",provider:"doola"}]],[["send","yolopreneur",{to:"time",amount:40}],["send","yolopreneur",{to:"well-known",amount:10}],["birth","well-known",{name:"mailr",kind:"org"}],["birth","well-known",{name:"lineage",kind:"org"}],["birth","time",{name:"luna",kind:"agent"}],["birth","time",{name:"sol",kind:"agent"}],["birth","time",{name:"astra",kind:"agent"}],["charter","yolopreneur",{form:"series",of:"well-known"}],["charter","yolopreneur",{form:"series",of:"time"}]],[["send","well-known",{to:"lineage",amount:2}],["birth","time",{name:"docscope",kind:"org"}],["birth","time",{name:"dollhouse",kind:"org"}],["birth","time",{name:"doodleloop",kind:"org"}],["birth","time",{name:"hearthframe",kind:"org"}],["charter","yolopreneur",{form:"series",of:"lineage"}]],[["send","time",{to:"sol",amount:1}],["send","time",{to:"luna",amount:.5}],["award","time",{to:"sol",skill:"launch",belt:"green"}],["award","time",{to:"luna",skill:"post",belt:"white"}],["decide","yolopreneur",{title:"Every venture gets a page",why:".yolopreneur.lol, served from one pages branch."}],["make","sol",{name:"launch-kit",note:"The page, the post and the checklist every venture launches with."}],["keyring","sol",{}],["keyring","lineage",{}]],[["graduate","well-known",{of:"lineage"}],["decide","lineage",{title:"Lineage gets its own org",why:"Its own repo on Teahub now, lineage.llc later: adopted, not derived."}],["charter","lineage",{form:"llc",jurisdiction:"US-WY",legal:"Lineage LLC",provider:"doola"}],["offer","lineage",{item:"launch-kit",price:.1}],["sell","well-known",{lot:"mailr",price:1}]]];function IE(e){mu(e),e.chain.mempool.length&&ct(e);const t={},n={};for(const r of TE){for(const[s,o,i]of r){if(s==="send"){bp(e,Re(e),t[o],t[i.to],i.amount*Br);continue}if(s==="offer"){Ep(e,n[i.item],t[o],i.price*Br);continue}if(s==="sell"){Lp(e,t[i.lot]??n[i.lot],i.price*Br);continue}const a=s==="keyring"?Tp(e,t[o]):Object.fromEntries(Object.entries(i).map(([l,f])=>[l,l==="to"||l==="of"?t[f]:f])),c=o?t[o]:null,u=Pp(e,s,c,Jo(e,s,c,a));(s==="found"||s==="birth")&&(t[i.name]=u),s==="make"&&(n[i.name]=u)}ct(e,Ai(e,t[Wa]))}return t[Wa]}const H=e=>document.getElementById(e);function $(e,t={},...n){const r=document.createElement(e);for(const[s,o]of Object.entries(t))o==null||o===!1||(s==="class"?r.className=o:s==="text"?r.textContent=o:s.startsWith("on")?r.addEventListener(s.slice(2),o):r.setAttribute(s,o===!0?"":String(o)));for(const s of n.flat(1/0))s!=null&&s!==!1&&s!==""&&r.append(s instanceof Node?s:String(s));return r}const ds=(e,t)=>`${e} ${t}${e===1?"":"s"}`,ht=e=>e==="cued"?"cued":`beat ${e}`,OE=e=>new Date(e).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"}),Tl=e=>JSON.stringify(e,(t,n)=>typeof n=="bigint"?String(n):n,2),T={holding:null,node:null,event:null,tx:null,beat:null,verb:"birth",busy:!1,replay:null,closing:null,reveal:null};let Z=Vs(),ti=new fr(Z.chain),wt=[],K=Cn([]),ke=K,Ve={owner:new Map,ledger:[],now:new Map,view:new Map},Nt=new Map;const at=()=>Z.chain.blocks.length,Ga=()=>wt.filter(e=>e.status==="pending").length,Ya=e=>Ve.ledger.filter(t=>t.beat===null&&t.kind===e).length,wo=[["pay","cued send"],["deal","cued deal"],["fund","cued deposit"]],CE=()=>Ga()+wo.reduce((e,[t])=>e+Ya(t),0),He=e=>{var t,n;return((t=K.items.get(e))==null?void 0:t.name)??((n=K.nodes.get(e))==null?void 0:n.name)??"an item"},aa=()=>Z.offers??[],Hp=()=>Z.asks??[];let _t=new Map,Nn=new Map;const bo=e=>Ve.view.get(e)??0,Rp=e=>Ve.now.get(e)??0,F=(e,t=K)=>e?t.nodes.get(e)??null:null,PE=e=>{var t;return!!e&&(e.root===T.holding||((t=F(e.parent))==null?void 0:t.root)===T.holding||e.moves.some(n=>{var r;return((r=F(n.from))==null?void 0:r.root)===T.holding}))},xu=e=>Object.assign(T,{event:null,tx:null,closing:null,reveal:null},e),mr=e=>{xu(e),Bi()};function fe(e,t=!1){const n=H("say");n.textContent=e,n.classList.toggle("bad",t)}function jp(){try{Z=pu()}catch(e){Z=Vs(),fe(`This browser's saved lab could not be read (${e.message}) Load a backup, or reset to start over.`,!0)}vu()}function vu(){var n;ti=new fr(Z.chain),wt=Xr(ti),K=Cn(wt,{pending:!0}),T.beat!==null&&T.beat>=at()&&(T.beat=null),F(T.holding)||(T.holding=((n=K.roots.filter(r=>r.kind==="holding").at(-1)??K.roots.at(-1))==null?void 0:n.id)??null),PE(F(T.node))||(T.node=T.holding),T.event&&!K.log.some(r=>r.id===T.event)&&(T.event=null),ke=T.beat===null?K:Cn(wt,{upTo:T.beat});const e=qk(Z.keys,wt,K),t=oE(Z);Ve={owner:e,ledger:Wk(Z.chain,e,zk(Z.keys,wt,K),t),now:ja(Z.chain,e)},Nt=new Map([...K.items.keys()].map(r=>{var s;return[r,((s=Ei(Z,wt,K,r))==null?void 0:s.node.id)??null]})),_t=new Map(Hp().filter(r=>$i(Z,K,r)==="open").map(r=>[r.lot,r])),Nn=new Map([...K.nodes.values()].filter(r=>r.kind==="org"&&r.status==="active").map(r=>{var s;return[r.id,(s=kp(Z,wt,K,r.id))==null?void 0:s.id]}).filter(([,r])=>r)),Ve.view=T.beat===null?Ve.now:ja(Z.chain,e,T.beat),T.tx&&!Ve.ledger.some(r=>r.key===T.tx)&&(T.tx=null),Bi()}function ni(e){T.beat=e>=at()?null:Math.max(0,e),ke=T.beat===null?K:Cn(wt,{upTo:T.beat}),Ve.view=T.beat===null?Ve.now:ja(Z.chain,Ve.owner,T.beat),Bi()}async function Qe(e,t){if(T.busy)return!1;T.busy=!0,document.body.classList.add("busy");try{return Z=(await hE(e,t)).lab,!0}catch(n){return fe((n==null?void 0:n.message)||String(n),!0),!1}finally{T.busy=!1,document.body.classList.remove("busy"),vu()}}async function Kt(e,t,n,r){let s=null;if(!await Qe(i=>{s=bE(i,e,t,n)}))return!1;const o=ti.events.find(i=>i.id===s);return fe(r(s,(o==null?void 0:o.status)==="confirmed"?`at beat ${o.height}`:"cued for the next beat")),Bi(),!0}async function Kp(e){const t=[Ga(),...wo.map(([a])=>Ya(a))],n=at();if(!await Qe(e)||at()===n)return;const r=[Ga(),...wo.map(([a])=>Ya(a))],s=["cued act",...wo.map(([,a])=>a)],o=t.map((a,c)=>[a-r[c],s[c]]).filter(([a])=>a>0).map(([a,c])=>ds(a,c)),i=UE(Ve.ledger.filter(a=>a.kind==="mine"&&a.beat===at()));fe(`Beat ${at()}: ${o.length?`${o.join(" and ")} landed, and ${i}`:i}.`)}function UE(e){if(!e.length)return"the lab wallet earned 50 tBTC";const t=e.map(r=>{var s;return((s=F(r.to))==null?void 0:s.name)??"?"}),n=e.map(r=>Qc(r.amount));return e.length===1?`${t[0]} earned ${G(e[0].amount)}`:n.every(r=>r===n[0])?`${t.slice(0,-1).join(", ")} and ${t.at(-1)} earned ${n[0]} each`:e.map((r,s)=>`${t[s]}${s?"":" earned"} ${n[s]}`).join(", ")}function NE(){var t;if(((t=Z.mining)==null?void 0:t.rule)==="last")return"the holding that acts";const e=tu(Z,K);return e.length?e.length===1?e[0].name:`${e.length} holdings, split by hashrate`:"the lab wallet"}function Bi(){Dp(),RE(),jE(),Qr(),Qp(),Eu()}function Dp(){const e=CE(),{tempo:t}=Z.clock;for(const r of document.querySelectorAll("[data-tempo]"))r.setAttribute("aria-pressed",String(String(t)===r.dataset.tempo));H("clock-beat").textContent=String(at()),H("clock-cued").textContent=e?`${e} cued · ${LE()}`:"nothing cued";const n=NE();H("clock-pays").textContent=`beats pay ${n}`,H("beat-now").title=`Beat now: ${e?"land what is cued, and ":""}pay ${n} 50 test BTC`}function LE(){const{tempo:e,nextAt:t}=Z.clock;return e==="manual"?"waiting for Beat now":typeof e=="number"&&t?`next beat in ${Math.max(0,Math.ceil((t-Date.now())/1e3))}s`:"landing on the next beat"}const HE={split:"Every active holding mines: each beat's 50 tBTC splits by hashrate, set on each holding (0 sits out).",last:"The holding behind the latest act or send takes the whole beat; with nothing cued, Beat now pays the one you're working in. At a timed tempo it's a race for the next beat.",none:"Mainnet has no mining to join: beats pay the lab wallet, standing in for the world's miners. Fund a holding from it, the way you'd fund a seed from a wallet you already have."};function RE(){var a,c;const e=((a=Z.mining)==null?void 0:a.rule)??"split",t=e==="split",n=t?tu(Z,K):[],r=n.reduce((u,l)=>u+Tr(Z,l.id),0);H("holdings-list").replaceChildren(...K.roots.map(u=>{var y;const l=Wv(K,u.id),f=u.id===T.holding,d=u.status==="active",h=n.some(v=>v.id===u.id)?Tr(Z,u.id)/r:0,g=[...K.nodes.values()].reduce((v,m)=>v+(m.root===u.id?Rp(m.id):0),0),w=[u.graduated!==null&&`from ${((y=F(u.parent))==null?void 0:y.name)??"?"}${u.graduated==="cued"?", cued":` at beat ${u.graduated}`}`||ht(u.born),ds(l.orgs,"org"),ds(l.agents,"agent"),ds(l.belts,"belt"),g>0&&Qc(g),t&&d&&(h?`${Math.round(h*100)}% of each beat`:"not mining"),!d&&"closed"].filter(Boolean);return $("li",{},$("button",{type:"button",class:`hold${f?" on":""}${d?"":" gone"}`,"aria-pressed":String(f),onclick:()=>mr({holding:u.id,node:u.id})},$("span",{class:"hn",text:u.name})," ",$("span",{class:"hm",text:w.join(" · ")})),t&&d&&ye(Z.keys,K,u)&&WE(u,Tr(Z,u.id)))}));for(const u of document.querySelectorAll("[data-rule]"))u.setAttribute("aria-pressed",String(e===u.dataset.rule));H("mining-note").textContent=HE[e];const s=K.roots.filter(u=>u.status==="active"&&ye(Z.keys,K,u)),o=H("fund-to"),i=o.value;H("f-fund").hidden=e!=="none"||!s.length||T.beat!==null,o.replaceChildren(...s.map(u=>$("option",{value:u.id,text:u.name}))),o.value=s.some(u=>u.id===i)?i:s.some(u=>u.id===T.holding)?T.holding:((c=s[0])==null?void 0:c.id)??"",H("fund-has").textContent=G(Z.wallet?cu(Z.chain,Z.wallet):0),H("holdings-empty").hidden=K.roots.length>0,H("holdings-sub").textContent=K.roots.length?String(K.roots.length):"",H("sample").disabled=K.roots.some(u=>u.name===Wa&&u.status==="active")}function jE(){var r;const e=H("tree-rows"),t=F(T.holding);if(H("tree-sub").textContent=t?`${t.name} · ${T.beat===null?"now":`beat ${T.beat} of ${at()}`}`:"",!t)return e.replaceChildren($("p",{class:"wait",text:"No holding yet. Found one, or load the yolopreneur sample."}));if(!ke.nodes.has(t.id))return e.replaceChildren($("p",{class:"wait",text:`${t.name} is founded at ${ht(t.born)}. Move the slider forward.`}));const n=e.contains(document.activeElement)?document.activeElement.dataset.id:null;e.replaceChildren(...Fv(ke,t.id).map(s=>s.type==="group"?$("div",{class:"row grp"},$("span",{class:"g","aria-hidden":"true",text:s.guide}),$("span",{class:"gl",text:s.label})):KE(s))),n&&((r=e.querySelector(`[data-id="${n}"]`))==null||r.focus())}function KE({node:e,guide:t,path:n,away:r,moved:s}){const o=e.id===T.node,i=s&&F(e.parent,ke),a=["row",o&&"on",e.status==="closed"&&"gone",e.born==="cued"&&"cue",s&&"moved"].filter(Boolean).join(" ");return $("div",{class:a},$("button",{type:"button",class:"sel","data-id":e.id,"aria-pressed":String(o),onclick:()=>mr({node:e.id}),title:s?`${e.name} changed hands: it's ${(i==null?void 0:i.name)??"?"}'s now`:r?`${e.name} graduated into a holding of its own`:null},$("span",{class:"g","aria-hidden":"true",text:t}),$("span",{class:"p",text:`${n} `}),$("span",{class:"l",text:e.name})," ",$("span",{class:"v"},s?$("span",{class:"mk",text:`to ${(i==null?void 0:i.name)??"?"}`}):DE(e))))}function DE(e){var n;return[e.kind==="agent"&&$("span",{class:"mk",text:"agent"}),T.beat===null&&_t.has(e.id)&&$("span",{class:"mk ok",title:`${G(_t.get(e.id).price)}, asked by ${Ce(_t.get(e.id).seller)}`,text:"for sale"}),T.beat===null&&Nn.has(e.id)&&$("span",{class:"mk",title:`bought by ${Ce(Nn.get(e.id))}, which adopts it next`,text:"sold"}),e.edge==="adopted"&&$("span",{class:"mk ok",text:"graduated"}),e.charter&&$("span",{class:`mk form${(n=fs(ke,e))!=null&&n.ok?"":" lapsed"}`,title:ku(e),text:ME[e.charter.form]}),e.status==="closed"&&$("span",{class:"mk bad",text:"closed"}),e.born==="cued"&&$("span",{class:"mk",text:"cued"}),...e.badges.map(Mp),bo(e.id)>0&&$("span",{class:"mk sats",title:`${G(bo(e.id))} at its SegWit address`,text:Qc(bo(e.id))})].filter(Boolean).flatMap((r,s)=>s?[" ",r]:[r])}const Mp=e=>$("span",{class:`belt ${e.belt}`,title:`${e.skill}: ${e.belt} belt`},e.skill,$("span",{class:"sr",text:` (${e.belt} belt)`})),ME={sole:"sole",llc:"llc","series-llc":"series llc",series:"series",corp:"corp"},ZE={sole:"Sole proprietor",llc:"LLC","series-llc":"Series LLC",series:"Series",corp:"Corporation"},VE={sole:"a sole proprietor",llc:"an LLC","series-llc":"a series LLC",corp:"a corporation"};function ku(e,t=ke){var o;const n=e.charter,r=n.master&&F(n.master,t),s=n.form==="series"?(o=r==null?void 0:r.charter)==null?void 0:o.jurisdiction:n.jurisdiction;return[n.form==="series"?`Series of ${(r==null?void 0:r.name)??"?"}`:ZE[n.form],s,n.legal,n.provider&&`via ${n.provider}`,`since ${ht(n.beat)}`].filter(Boolean).join(" · ")}function Ti(e){var t;for(let n=F(e.parent);n&&n.root===e.root;n=F(n.parent))if(n.status==="active"&&((t=n.charter)==null?void 0:t.form)==="series-llc")return n;return null}function qE(e){var r;const t=e.kind==="org"&&Ti(e),n=e.kind==="org"&&e.edge==="derived";return[(e.kind==="holding"||e.kind==="agent")&&["sole","Sole proprietor","a person trading under their own name"],t&&["series",`Series of ${t.name}`,`a cell of ${t.name}'s LLC, chartered by ${t.name}`],!Xt(e)&&["llc","LLC",n?`a company of its own, owned through ${(r=F(e.parent))==null?void 0:r.name} while it is derived`:"a company of its own"],!Xt(e)&&["series-llc","Series LLC","an LLC that can hold series, one for each venture"],!Xt(e)&&["corp","Corporation","a company with shares"]].filter(Boolean)}function Zp(e){return qE(e).map(([t,n,r])=>{const s=t==="series"?Ti(e):e,o=wu(Z,K,"charter",s.id);return{form:t,label:n,hint:o?`${o}.`:r,off:!!o}})}const zE=e=>{var n;const t=Zp(e);return t.some(r=>!r.off)?"":((n=t[0])==null?void 0:n.hint.replace(/\.$/,""))??"No legal form fits"},ri=()=>{var e;return((e=document.querySelector("#charter-forms input:checked"))==null?void 0:e.value)??null};function FE(e){var i;const t=H("charter-forms"),n=Zp(e),r=n.map(a=>`${a.form}=${a.label}=${a.off}`).join("|");if(t.dataset.sig!==r){const a=ri(),c=n.filter(l=>!l.off),u=c.some(l=>l.form===a)?a:(i=c[0])==null?void 0:i.form;t.dataset.sig=r,t.replaceChildren($("legend",{class:"lab",text:"Form"}),...n.map(l=>$("label",{class:l.off?"off":null},$("input",{type:"radio",name:"form",value:l.form,checked:l.form===u,disabled:l.off}),` ${l.label} `,$("span",{text:l.hint}))))}const s=ri()==="series",o=fs(K,e);H("charter-where").hidden=s,H("charter-now").textContent=e.charter?`Now: ${ku(e,K)}${o.ok?"":`, lapsed: ${o.why}`}.`:"It has no legal form yet."}const Vp=(e,t)=>{for(let n=F(e.parent);n;n=F(n.parent))if(n.id===t.id)return!0;return!1},qp=e=>[...K.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(Vp(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t),zp=e=>or(K.nodes,e).reduce((t,n)=>n.edge==="derived"&&n.status==="active"?t+1+zp(n):t,0);function WE(e,t){const n=async r=>{await Qe(s=>lE(s,e.id,r))&&fe(r?`${e.name} mines at hashrate ${r}.`:`${e.name} sits out of mining.`)};return $("span",{class:"rig"},$("span",{class:"rl",text:"hashrate"}),$("span",{class:"rn"},$("button",{type:"button",class:"rb","aria-label":`Lower ${e.name}'s hashrate`,disabled:t<=0,onclick:()=>n(t-1)},"−"),$("b",{text:String(t)}),$("button",{type:"button",class:"rb","aria-label":`Raise ${e.name}'s hashrate`,disabled:t>=9,onclick:()=>n(t+1)},"+")))}const Fp=e=>[...K.nodes.values()].filter(t=>t.id!==e.id&&t.status==="active").map(t=>[t,(t.root===e.root?0:4)+(Vp(t,e)?0:2)+(t.kind==="agent"?0:1)]).sort((t,n)=>t[1]-n[1]).map(([t])=>t);function GE(e){const t=ye(Z.keys,K,e);return t?ru(Z.chain.coins(t.script))[r,F(Nt.get(r.id))]).filter(([,r])=>r&&r.id!==e.id&&r.status==="active"),n=[...K.nodes.values()].filter(r=>r.kind==="org"&&!Nn.has(r.id)&&!nn(K.nodes,r,e)).map(r=>[r,F(r.parent)]);return[...t,...n].sort((r,s)=>(r[1].root===e.root?0:1)-(s[1].root===e.root?0:1)).map(([r])=>r)}const YE=e=>(K.items.has(e.id)?`${e.name} · held by ${Ce(Nt.get(e.id))}`:`${e.name} · an org of ${Ce(e.parent)}`)+(_t.has(e.id)?` · asks ${G(_t.get(e.id).price)}`:"");function XE(e){const t=ye(Z.keys,K,e);return t?Gp(e).length?Z.chain.coins(t.script).some(n=>n.value>=X+Pe||n.value===X)?"":Wp(e,"to pay with"):"Nothing to buy yet. Items come from Make, and an org changes hands from another parent":"This holding predates lab keys, so it has no SegWit address to pay from"}const Yp=e=>[...[...K.items.values()].filter(t=>Nt.get(t.id)===e.id),...or(K.nodes,e).filter(t=>t.kind==="org"&&!Nn.has(t.id)&&!nn(K.nodes,t))],Xp=e=>Yp(e).filter(t=>!_t.has(t.id));function JE(e){return ye(Z.keys,K,e)?Xp(e).length?"":Yp(e).length?`Everything ${e.name} can sell is listed. Its asks are in Inspect, to withdraw`:`${e.name} has nothing to sell yet: no item, and no org free to change hands (one without derived children)`:"This holding predates lab keys, so it has no SegWit address to be paid at"}function QE(e){const t=H("offer-item").value,n=_t.get(t),r=K.items.has(t)?null:F(t),s=Ce(r?r.parent:Nt.get(t));H("offer-ask").hidden=!n,H("offer-go").classList.toggle("primary",!n),n&&(H("offer-ask-line").textContent=`${Ce(n.seller)} asks ${G(n.price)} for ${He(t)}. Taking it costs the price, two ${X}-sat fees and a ${vt}-sat coin of ${e.name}'s that leads the deal${r?`, and gas to adopt ${r.name} at once`:""}.`,H("offer-take").textContent=`Take it for ${G(n.price)}`),H("offer-note").textContent=`${n?"Or offer less. ":""}${e.name}'s SegWit key signs the whole deal now: ${r?`${r.name}'s inscription`:"the item"} to its Taproot key, the price to ${s}, the ${X}-sat fee from its balance. Nothing reaches the chain until ${s} accepts. ${r?`Accepting takes ${r.name}'s money and items home to ${s} first; then ${e.name} adopts it. Each act of ${r.name}'s moves its inscription, which voids the offer.`:"Until then the offer stands, unless it's withdrawn or a coin it promised moves."}`}function e$(e){const t=F(H("sell-lot").value);H("sell-note").textContent=t?`Cash-free: ${t.name}'s money, gas tank and items go home to ${e.name} first, and ${t.name} is frozen while it's listed. Its own key signs its input alone, SIGHASH_SINGLE|ANYONECANPAY, for the price to ${e.name}'s SegWit address. Whoever takes it adopts it, and ${t.name} takes new keys from its buyer's seed.`:`The key that holds it signs its input alone, SIGHASH_SINGLE|ANYONECANPAY: that input, for the price to ${e.name}'s SegWit address, and nothing else. Any node can complete the deal around it, so nothing reaches the chain until one does.`}function Jp(e,t=K){const n=Xc(Z.keys,t,e);return n&&{taproot:n.taproot.address,segwit:n.segwit.address,nostr:n.npub.address,ethereum:n.ethereum.address}}function t$(e){const t=Jp(e),n=e.keyring;if(!t)return"This holding predates lab keys, so it has no keys to list";const r=gu(K,"keyring",e.id);return r||(!n||n.retired||Bt.some(s=>n.keys[s]!==t[s])?"":n.beat==="cued"?`${e.name}'s keyring is cued for the next beat`:`${e.name}'s keyring already lists these keys, since beat ${n.beat}`)}function n$(e){const t=F(e.parent),n=e.status==="closed"?`${e.name} is closed`:"",r=n?"":Un(Z,K,"act",e.id,{},wt),s=(o,i=e.id,a={})=>wu(Z,K,o,i,a);return{birth:n||r||(Xt(e)?"Agents give birth only once they graduate":s("birth")),award:n||r||(Xt(e)?"Agents award belts only once they graduate":qp(e).length?s("award"):"There is nobody else to award yet"),charter:n||r||zE(e),decide:n||r||s("decide"),make:n||r||s("make"),keyring:n||r||t$(e)||s("keyring"),send:n||r||GE(e),offer:n||r||XE(e),sell:n||r||JE(e),graduate:n||(t?e.edge==="adopted"?`${e.name} has already graduated`:t.status!=="active"?`${t.name} is closed`:Un(Z,K,"graduate",t.id,{of:e.id},wt)||gu(K,"graduate",t.id,{of:e.id})||s("graduate",t.id,{of:e.id}):"A holding has no parent to graduate from"),close:n||r||s("close")}}function Qr(){const e=F(T.node),t=T.beat!==null;if(H("act-none").hidden=!!e,H("act-past").hidden=!e||!t,H("act-on").hidden=!e||t,H("act-sub").textContent=(e==null?void 0:e.name)??"",H("past-beat").textContent=String(T.beat??""),!e||t)return;const n=n$(e),r=F(e.parent);for(const p of document.querySelectorAll("[data-verb]"))p.setAttribute("aria-pressed",String(p.dataset.verb===T.verb)),p.classList.toggle("off",!!n[p.dataset.verb]);for(const p of document.querySelectorAll("form[data-form]"))p.hidden=p.dataset.form!==T.verb||!!n[T.verb];H("act-why").textContent=n[T.verb]?`${n[T.verb]}.`:"";for(const p of document.querySelectorAll("#act-on [data-name]"))p.textContent=e.name;for(const p of document.querySelectorAll("#act-on [data-parent]"))p.textContent=(r==null?void 0:r.name)??"";const s=p=>p.map(w=>`${w.value}=${w.textContent}`).join("|"),o=[[H("award-to"),qp(e).map(p=>[p.id,`${Vr(K,p.id)}${p.kind==="agent"?" (agent)":""}`])],[H("send-to"),Fp(e).map(p=>[p.id,`${Vr(K,p.id)}${p.kind==="agent"?" (agent)":""}`])],[H("offer-item"),Gp(e).map(p=>[p.id,YE(p)])],[H("sell-lot"),Xp(e).map(p=>[p.id,K.items.has(p.id)?`${p.name} · an item`:`${p.name} · org ${p.index}'`])]];for(const[p,w]of o){const y=p.value,v=w.map(([m,x])=>$("option",{value:m,text:x}));s(v)!==s([...p.options])&&(p.replaceChildren(...v),v.some(m=>m.value===y)&&(p.value=y))}for(const p of["send-has","offer-has"])H(p).textContent=G(Rp(e.id));H("graduate-go").textContent=`Graduate ${e.name}`,T.verb==="charter"&&!n.charter&&FE(e),T.verb==="offer"&&!n.offer&&QE(e),T.verb==="sell"&&!n.sell&&e$(e);const i=T.verb==="keyring"&&!n.keyring&&Jp(e);i&&H("keyring-keys").replaceChildren(...[["Taproot",i.taproot],["SegWit",i.segwit],["nostr",i.nostr],["Ethereum",i.ethereum]].map(qr));const a=T.verb==="sell"&&F(H("sell-lot").value),c=T.verb==="graduate"?r:T.verb==="charter"&&ri()==="series"?Ti(e):a||e,u=c&&Te(Z.keys,K,c),l=T.verb==="send"||T.verb==="offer",f=u&&(l?`${u.from} · ${ye(Z.keys,K,c).path}`:u.path);H("act-key").textContent=!c||n[T.verb]?"":u?`Signs as ${c.name}: ${f}`:"Signs with the lab wallet: this holding predates lab keys.";const d=T.verb==="graduate"&&Te(Z.keys,K,e)?Ds(K,e.id).length:0;H("act-gas").textContent=!c||n[T.verb]||!u?"":T.verb==="send"?`Fee: ${X} sats, from ${e.name}'s balance.`:T.verb==="offer"?`Fee: ${X} sats, from ${e.name}'s balance, paid only if the holder accepts.`:T.verb==="sell"?"No fee to list: whoever takes the ask pays the fees.":`Gas: ${wE(T.verb,d).toLocaleString("en-US")} sats from ${c.name}'s tank (${G(cu(Z.chain,u.wallet))}), which tops up from its balance.${d?` ${e.name} pays ${X} more, from its own money, to claim its new root.`:""}`;const h=zp(e),g=T.closing===e.id;H("close-note").textContent=h?`Closing ${e.name} spends it for the last time, and its ${ds(h,"derived descendant")} close with it. Graduated children hold their own roots and stay open.`:`Closing ${e.name} spends its inscription for the last time. Nothing can act through it afterwards.`,H("close-go").textContent=g?`Yes, close ${e.name}`:`Close ${e.name}`,H("close-keep").hidden=!g}function Qp(){const e=H("inspect-body"),t=T.event?K.log.find(o=>o.id===T.event):null;if(t)return H("inspect-sub").textContent="event",e.replaceChildren(...y$(t));const n=T.tx?Ve.ledger.find(o=>o.key===T.tx):null;if(n)return H("inspect-sub").textContent="money",e.replaceChildren(...w$(n));const r=F(T.node);if(H("inspect-sub").textContent=(r==null?void 0:r.kind)??"",!r)return e.replaceChildren($("p",{class:"note pad",text:"Select a node in the tree, or an event in the timeline."}));const s=F(T.node,ke);if(!s)return e.replaceChildren($("p",{class:"note pad",text:`${r.name} is not born yet at beat ${T.beat}.`}));e.replaceChildren(...r$(s))}const qr=([e,t,n])=>$("div",{class:"f"},$("dt",{text:e}),$("dd",{},t,n&&$("span",{class:"fn",text:n})));function r$(e){var r;const t=F(e.parent,ke),n=[["Born",e.born==="cued"?"cued for the next beat":`beat ${e.born}`],t&&["Parent",`${t.name} · ${e.kind} ${e.index}'`],t&&["Edge",e.edge==="adopted"?`adopted at ${ht(e.graduated)}: it holds its own root`:`derived: ${t.name} holds its seed`],e.moves.length>0&&["Changed hands",e.moves.map(s=>{var o,i;return`from ${((o=F(s.from,ke))==null?void 0:o.name)??"?"} to ${((i=F(s.to,ke))==null?void 0:i.name)??"?"}, ${ht(s.beat)}`}).join("; "),"Each time, it took the next index under its new parent, and keys derived there."],T.beat===null&&(_t.has(e.id)||Nn.has(e.id))&&o$(e),t&&e.root===e.id&&["Holding",$("span",{},"its own, since it graduated",e.id!==T.holding&&$("button",{type:"button",class:"btn sm open",onclick:()=>{mr({holding:e.id,node:e.id}),a$()}},`Open ${e.name}`))],e.closed!==null&&["Closed",ht(e.closed)],["Charter",e.charter?ku(e):"none yet",e.charter?fs(ke,e).ok?e.charter.filing?`Filing SHA-256 ${e.charter.filing.slice(0,16)}…`:"":`Lapsed: ${fs(ke,e).why}.`:"Charter gives it a legal form: sole proprietor, LLC, series LLC, series or corporation."],((r=e.charter)==null?void 0:r.form)==="series-llc"&&["Series",[...ke.nodes.values()].filter(s=>{var o;return((o=s.charter)==null?void 0:o.master)===e.id}).map(s=>`${s.name}${fs(ke,s).ok?"":" (lapsed)"}`).join(", ")||"none yet"],["Children",or(ke.nodes,e).map(s=>s.name).join(", ")||"none yet"],ye(Z.keys,ke,e)&&["Balance",G(bo(e.id)),`Test BTC at its SegWit address${T.beat===null?"":`, as of beat ${T.beat}`}.`],T.beat===null&&Te(Z.keys,K,e)&&["Gas tank",G(cu(Z.chain,Te(Z.keys,K,e).wallet)),"Plain coins at its Taproot key. Its acts burn their fees from here, and the tank tops up from its balance, 0.0001 tBTC at a time."],["Inscription",e.id]].filter(Boolean);return[$("div",{class:"ih"},$("p",{class:"eyebrow",text:Vr(ke,e.id)}),$("h3",{class:"it",text:e.name}),$("div",{class:"chips"},$("span",{class:"chip",text:e.kind}),$("span",{class:`chip ${e.status==="active"?"ok":"bad"}`,text:e.status}),e.edge==="adopted"&&$("span",{class:"chip ok",text:"graduated"}),e.born==="cued"&&$("span",{class:"chip",text:"cued"}))),$("div",{class:"ib"},$("dl",{class:"fl"},n.map(qr)),e.badges.length>0&&$("div",{},$("p",{class:"lab",text:"Belts"}),$("ul",{class:"list"},e.badges.map(s=>{var o;return $("li",{},Mp(s),$("span",{class:"when",text:` from ${((o=F(s.by))==null?void 0:o.name)??"?"}, ${ht(s.beat)}`}))}))),e.decisions.length>0&&$("div",{},$("p",{class:"lab",text:"Decisions"}),$("ul",{class:"list"},e.decisions.map(s=>$("li",{},$("b",{text:s.title}),s.why&&` · ${s.why}`,$("span",{class:"when",text:` (${ht(s.beat)})`}))))),s$(e),c$(e),d$(e))]}function s$(e){const t=(l,f)=>f.length>0&&$("div",{},$("p",{class:"lab",text:l}),$("ul",{class:"list items"},f)),n=(l,f)=>$("li",{},$("b",{text:l.name}),l.note&&` · ${l.note}`,$("span",{class:"when",text:` (${f})`}));if(T.beat!==null)return t("Made",e.made.map(l=>ke.items.get(l)).filter(Boolean).map(l=>n(l,ht(l.beat))));const r=l=>`made${l.maker===e.id?"":` by ${Ce(l.maker)}`}${l.beat==="cued"?", cued":` at beat ${l.beat}`}`,s=[...K.items.values()].filter(l=>Nt.get(l.id)===e.id).map(l=>{const f=n(l,r(l)),d=aa().filter(h=>h.item===l.id&&h.seller===e.id&&yo(Z,K,h)==="open");return d.length&&f.append($("ul",{class:"bids"},d.map(h=>$("li",{},$("span",{text:`${Ce(h.buyer)} offers ${h.price?G(h.price):"nothing, a free claim"}`}),e.status==="active"&&$("button",{type:"button",class:"btn sm","aria-label":`Accept ${Ce(h.buyer)}'s offer for ${l.name}`,onclick:()=>Il(h)},"Accept"))))),f}),o=e.made.map(l=>K.items.get(l)).filter(l=>l&&Nt.get(l.id)!==e.id).map(l=>n(l,Nt.get(l.id)?`now held by ${Ce(Nt.get(l.id))}`:"held outside this lab")),i=aa().filter(l=>l.buyer===e.id&&yo(Z,K,l)!=="done").map(l=>{const f=du(Z,K,l);return $("li",{},$("b",{text:l.price?G(l.price):"nothing"}),` for ${He(l.item)}`,$("span",{class:"when",text:f?` (stale: ${f})`:` (open until ${Ce(l.seller)} accepts)`}),$("button",{type:"button",class:"btn sm","aria-label":`Withdraw the offer for ${He(l.item)}`,onclick:()=>i$(l)},"Withdraw"))}),a=aa().filter(l=>l.seller===e.id&&K.nodes.has(l.item)&&yo(Z,K,l)==="open").map(l=>$("li",{},$("b",{text:He(l.item)}),$("span",{class:"when",text:` ${Ce(l.buyer)} offers ${l.price?G(l.price):"nothing, a free claim"}`}),e.status==="active"&&$("button",{type:"button",class:"btn sm","aria-label":`Accept ${Ce(l.buyer)}'s offer for ${He(l.item)}`,onclick:()=>Il(l)},"Accept"))),c=Hp().filter(l=>l.seller===e.id&&$i(Z,K,l)!=="done").map(l=>{const f=hu(Z,K,l);return $("li",{},$("b",{text:G(l.price)}),` for ${He(l.lot)}`,$("span",{class:"when",text:f?` (stale: ${f})`:" (open: any node can take it)"}),$("button",{type:"button",class:"btn sm","aria-label":`Withdraw the ask for ${He(l.lot)}`,onclick:()=>e0(l)},"Withdraw"))}),u=[...Nn].filter(([,l])=>l===e.id).map(([l])=>$("li",{},$("b",{text:He(l)}),$("span",{class:"when",text:` bought from ${Ce(F(l).parent)}`}),$("button",{type:"button",class:"btn sm","aria-label":`Adopt ${He(l)}`,onclick:()=>t0(l,e.id)},"Adopt")));return[t("Items",s),t("Made, held elsewhere",o),t("Offers on its orgs",a),t("Asks",c),t("Offers made",i),t("Bought, to adopt",u)]}const Ce=e=>{const t=F(e);return t?t.root===T.holding?t.name:Vr(K,e):"?"};async function Il(e){const t=He(e.item),n=Ce(e.buyer),r=Ce(e.seller),s=K.nodes.has(e.item);if(!await Qe(i=>{kE(i,e.txid)}))return;const o=Ve.ledger.find(i=>i.txid===e.txid);fe(`${r} accepted: ${t} goes to ${n}${e.price?` for ${G(e.price)}`:", free"}, ${o!=null&&o.beat?`at beat ${o.beat}`:"cued for the next beat"}.${s?` Its money and items went home to ${r} first, and ${n} adopts it next.`:""}`)}function o$(e){const t=_t.get(e.id),n=F(Nn.get(e.id));return t?["For sale",$("span",{},`${G(t.price)}, asked by ${Ce(t.seller)}`,$("button",{type:"button",class:"btn sm open",onclick:()=>e0(t)},"Withdraw")),"Its own key signed its input, SIGHASH_SINGLE|ANYONECANPAY: any node can take it. It's frozen until then."]:["Sold",$("span",{},`to ${Ce(n.id)}, which adopts it next`,$("button",{type:"button",class:"btn sm open",onclick:()=>t0(e.id,n.id)},`Adopt into ${n.name}`)),`${n.name}'s key holds its inscription now.`]}async function e0(e){const t=He(e.lot),n=Ce(e.seller);await Qe(r=>{SE(r,Jr(e))})&&fe(`${n} withdrew its ask for ${t}.`)}async function t0(e,t){const n=He(e),r=Ce(t);if(!await Qe(o=>{AE(o,e,t)}))return;const s=K.log.findLast(o=>o.op==="join"&&o.node===e);fe(`${r} adopted ${n}, ${s!=null&&s.pending?"cued for the next beat":`at beat ${s==null?void 0:s.beat}`}: its keys derive from ${r}'s seed now.`)}async function i$(e){const t=He(e.item),n=Ce(e.buyer);await Qe(r=>{EE(r,e.txid)})&&fe(`${n} withdrew its offer for ${t}.`)}function a$(){const e=document.querySelector(".tree-blk").getBoundingClientRect().top+scrollY-document.querySelector(".clock").offsetHeight-12;e(n.to===e.id||n.from===e.id)&&(T.beat===null||n.beat!==null&&n.beat<=T.beat)).slice(-6).reverse();return t.length>0&&$("div",{},$("p",{class:"lab",text:"Money"}),$("ul",{class:"list"},t.map(n=>$("li",{},$("b",{text:u$(n,e.id)}),$("span",{class:"when",text:` (${ht(n.beat??"cued")})`})))))}function u$(e,t){const n=r=>{var s;return((s=F(r))==null?void 0:s.name)??"?"};if(e.kind==="mine")return`+${G(e.amount)}, a beat's reward`;if(e.kind==="move")return`${G(e.amount)} moved to its new key, after a ${e.fee}-sat fee`;if(e.kind==="gas")return`−${G(e.amount)} into its gas tank, and a ${e.fee}-sat fee`;if(e.kind==="fund")return`+${G(e.amount)} from the lab wallet`;if(e.kind==="deal"){const r=He(e.item);return e.to===t?e.amount?`+${G(e.amount)} from ${n(e.from)} for ${r}`:`${r} to ${n(e.from)}, free`:e.amount?`−${G(e.amount)} to ${n(e.to)} for ${r}, and a ${e.fee}-sat fee`:`${r} from ${n(e.to)}, free but for a ${e.fee}-sat fee`}return e.to===t?`+${G(e.amount)} from ${n(e.from)}`:`−${G(e.amount)} to ${n(e.to)}, and a ${e.fee}-sat fee`}function n0(e){const t=n=>{const r=F(n);return r?r.root===T.holding?r.name:Vr(K,n):"?"};return e.kind==="mine"?`${G(e.amount)} → ${t(e.to)}`:e.kind==="move"?`${G(e.amount)} → ${t(e.to)}'s new key`:e.kind==="gas"?`${G(e.amount)} → ${t(e.to)}'s gas tank`:e.kind==="fund"?`${G(e.amount)} lab wallet → ${t(e.to)}`:e.kind==="deal"?`${He(e.item)} ${t(e.to)} → ${t(e.from)}, ${e.amount?`for ${G(e.amount)}`:"free"}`:`${G(e.amount)} ${t(e.from)} → ${t(e.to)}`}const l$={own:"its own key",lab:"the lab wallet",parent:"its parent's key (its handoff is cued)",other:"a key outside this lab"},f$={ssh:"shell access, certified by the CA",git:"commit signing",dkim:"mail signing",wg:"WireGuard peer key","ssh-ca":"SSH certificate authority",mtls:"TLS identity between nodes",noise:"Headscale noise key"};function d$(e){const t=Te(Z.keys,ke,e),n=Jc(Z,K,e.id),r=["Held now by",n?l$[n.who]:"nobody: its inscription has been spent"];if(!t)return $("div",{class:"keys"},$("p",{class:"lab",text:"Keys"}),$("dl",{class:"fl"},[["Signs with","the lab wallet: this holding predates lab keys, so it has no addresses, leaves or secrets of its own"],r].map(qr)));const s=e.kind==="agent",o=Xc(Z.keys,ke,e),i=Hk(Z.keys,ke,e),a=i.map(([,,d])=>d).filter(Boolean),c="Reset the lab for standard BIP-86 keys.",u=s?"Holds this seat's inscription, and inscriptions sent to it land here.":"Holds this org's inscription and signs its acts. Inscriptions sent to it land here.",l={bip86:`BIP-86 at ${o.taproot.path}. ${u}`,tapkey:`Its npub's key with the BIP-86 tweak, the way v1.2 keyed this lab. ${u} ${c}`,wallet:`An untweaked key at ${o.taproot.path}, the way v1.1 keyed this lab. ${u} ${c}`}[t.scheme],f=[["Taproot",o.taproot.address,l],["SegWit",o.segwit.address,`BIP-84 at ${o.segwit.path}. Its money: ${e.kind==="holding"?"the beats it earns land here, and ":""}sends come and go here.`],["Tapkey",o.tapkey.address,"Its npub as a Taproot address (its nostr key with the BIP-86 tweak), so the npub alone finds it. Nostr secrets get pasted into clients, so treat it as an inbox."],["npub",o.npub.address,`NIP-06 at ${o.npub.path}. Its nostr name; the leaves below hang off it.`],["Ethereum",o.ethereum.address,s&&e.edge!=="adopted"?`BIP-44 at ${o.ethereum.path}: account ${t.account} of its org's seed, the way Ledger Live numbers Ethereum accounts.`:`BIP-44 at ${o.ethereum.path}. Its legal-control key, the one that holds the entity NFT, as on the lineage key tree page.`],["From",`${t.from} · account ${t.account}`],r,h$(e)];return $("div",{class:"keys"},$("p",{class:"lab",text:"Keys"}),$("dl",{class:"fl"},f.map(qr)),e.keyring&&Or(`${e.keyring.retired?"Retired keyring":"Keyring"} · what each key signed`,mi(e.id,e.keyring.keys)),$("p",{class:"lab"},"Leaves",$("span",{text:` · HKDF-SHA256 from its ${s?"nostr secret":"seed"}`})),$("ul",{class:"list leaves"},i.map(([d,h])=>$("li",{},$("b",{text:d}),$("span",{class:"when",text:` ${f$[d]}`}),$("code",{text:h})))),Or(s?"Public lines to paste":"CA key for TrustedUserCAKeys",a.join(` + +`)),g$(e,t))}function h$(e){var r;const t=e.keyring,n=(t==null?void 0:t.retired)&&(t.retired.by===e.id?"It":((r=F(t.retired.by,ke))==null?void 0:r.name)??"Its parent");return t?t.retired?["Keyring",`retired at ${ht(t.retired.beat)}`,t.retired.cause==="close"?`${n} closed, which freed the keys it listed.`:n==="It"?"It graduated, so its keys changed with its new root. Keyring publishes a new one.":`${n} graduated, so ${e.name}'s keys changed with ${n}'s new root. Keyring publishes a new one.`]:["Keyring",`published at ${ht(t.beat)}`,"Each key signed it: Taproot and SegWit by BIP-322, the npub as a nostr event, Ethereum by EIP-191."]:["Keyring","none yet","Keyring publishes one: an inscription that lists these keys, each key signing it."]}function Or(e,t,n=t){const r=$("pre",{text:n}),s=$("button",{type:"button",class:"cp","aria-label":`Copy ${e}`,onclick:()=>p$(t,s,r)},"Copy");return $("div",{class:"code"},$("div",{class:"code-h cph"},$("span",{text:e}),s),r)}async function p$(e,t,n){const r=s=>{t.textContent=s,setTimeout(()=>{t.textContent="Copy"},1400)};try{await navigator.clipboard.writeText(e),r("Copied")}catch{getSelection().selectAllChildren(n),r("Selected")}}function g$(e,t){var a;const n=T.reveal===e.id,r=n&&Mk(Z.keys,ke,e),s=F(e.parent,ke),o=()=>{var c;T.reveal=n?null:e.id,Qp(),(c=H("reveal"))==null||c.focus()},i=(a=r==null?void 0:r.seed)==null?void 0:a.mnemonic.split(" ");return $("div",{class:"secret"},$("div",{class:"hz"},$("span",{class:"hz-l",text:"Secret · stays in this tab"}),$("button",{type:"button",class:"btn sm",id:"reveal","aria-expanded":String(n),onclick:o},n?"Hide":"Reveal")),r&&$("div",{class:"sb"},r.seed?Or(`Seed · ${r.seed.from}`,r.seed.mnemonic,i.map((c,u)=>`${String(u+1).padStart(2,"0")} ${c}`).reduce((c,u,l)=>(l%3?c[c.length-1].push(u):c.push([u]),c),[]).map(c=>c.join(" ")).join(` +`)):$("p",{class:"note",text:`A seat has no seed of its own: these are account ${t.account} of ${(s==null?void 0:s.name)??"its org"}'s seed.`}),r.account.map(([c,u,l])=>Or(`${c} · ${u}`,l)),r.leaves.map(([c,u,l])=>Or(`${c} · ${u}`,l))))}function m$(e){var i,a,c;const t=(a=(i=Z.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:i.tx.vin.find(u=>{var l;return((l=u.witness)==null?void 0:l.length)===3}))==null?void 0:a.witness;if(!t)return"?";const n=Bc(t).pubkey,r=F(e.parent),s=e.op==="found"?F(e.node):null,o=[[s&&Te(Z.keys,K,s),`${s==null?void 0:s.name}'s root`],[r&&Te(Z.keys,K,r),`${r==null?void 0:r.name}'s key`],[(r==null?void 0:r.edge)==="adopted"&&Te(Z.keys,K,{...r,edge:"derived"}),`${r==null?void 0:r.name}'s derived key, from before it graduated`]];for(const[u,l]of o)if(u&&u.wallet.pubkey===n)return l;return((c=Z.wallet)==null?void 0:c.pubkey)===n?"the lab wallet":`a key outside this lab (${n.slice(0,12)}…)`}function y$(e){var o,i,a;const t=ti.events.find(c=>c.id===e.id),n=(i=(o=Z.chain.transactions.get(e.id.slice(0,-2)))==null?void 0:o.inscription)==null?void 0:i.text,r=[["When",e.pending?"cued for the next beat":`beat ${e.beat}`],["Authorized by",e.parent?`${((a=F(e.parent))==null?void 0:a.name)??"an unknown inscription"}, whose inscription this event spent`:"nothing: a founding has no parent"],["Signed by",m$(e)],["Inscription",e.id],n&&["Body",n],(t==null?void 0:t.block)&&["Block",t.block]].filter(Boolean),s=t&&{id:t.id,status:t.status,height:t.height,block:t.block,parent:t.parent??null,metaprotocol:t.metaprotocol??null,contentType:t.contentType,sat:t.sat,location:t.location};return[$("div",{class:"ih"},$("p",{class:"eyebrow",text:`${e.op} · ${e.pending?"cued":`beat ${e.beat}`}`}),$("h3",{class:"it",text:tp(e,K)}),$("div",{class:"chips"},$("span",{class:"chip",text:(t==null?void 0:t.protocol)??"?"}),$("span",{class:`chip ${e.ok?"ok":"bad"}`,text:e.ok?"applied":"rejected"})),!e.ok&&$("p",{class:"idesc",text:"The reducer rejected this event. It stays on the chain, but it does not change the tree."})),$("div",{class:"ib"},$("dl",{class:"fl"},r.map(qr)),$("div",{class:"code"},$("p",{class:"code-h",text:"Metadata · CBOR, tag 5"}),$("pre",{text:Tl(e.meta)})),s&&$("div",{class:"code"},$("p",{class:"code-h",text:"Raw index entry"}),$("pre",{text:Tl(s)})))]}function w$(e){const t=i=>{var a;return((a=F(i))==null?void 0:a.name)??"a key outside this lab"},n=Z.chain.transactions.get(e.txid),r=e.kind==="deal",s=e.kind==="fund",o=[["When",e.beat===null?"cued for the next beat":`beat ${e.beat}`],r&&(K.nodes.has(e.item)?["Org",`${He(e.item)}: its inscription, from its own key to ${t(e.from)}'s Taproot key. It sold cash-free, and ${t(e.from)} adopts it.`]:["Item",`${He(e.item)}, an inscription: from ${t(e.to)}'s Taproot key to ${t(e.from)}'s`]),["From",e.kind==="mine"?"its share of the beat's block reward (the coinbase)":s?"the lab wallet, standing in for a wallet you already have":`${t(e.from)}'s SegWit address${e.kind==="move"?", from before it graduated":""}`],["To",e.kind==="gas"?`${t(e.to)}'s gas tank, at its Taproot key`:r&&!e.amount?"nobody: a free claim pays no price":`${t(e.to)}'s ${e.kind==="move"?"new ":""}SegWit address`],[r?"Price":"Amount",r&&!e.amount?"nothing":G(e.amount)],e.kind!=="mine"&&["Fee",`${e.fee} sats${e.ask?` over two transactions (the buyer's split, then the deal), and a ${vt}-sat coin of the buyer's that leads the deal and pads the lot's coin now`:""}, retired: this toy chain pays no fees to miners`],e.change>0&&["Change",`${G(e.change)} back to ${s?"the lab wallet":t(e.from)}`],["Signed by",e.kind==="mine"?"nobody: a coinbase spends nothing":s?"the lab wallet's Taproot key":r&&e.ask?`the lot's Taproot key (SIGHASH_SINGLE|ANYONECANPAY) when ${t(e.to)} listed it, then ${t(e.from)}'s SegWit key (SIGHASH_ALL) when it took it`:r?`${t(e.from)}'s SegWit key (SIGHASH_ALL) when it made the offer, then ${t(e.to)}'s Taproot key when it accepted`:`${t(e.from)}'s SegWit key (BIP-143, SIGHASH_ALL)`],["Transaction",e.txid]].filter(Boolean);return[$("div",{class:"ih"},$("p",{class:"eyebrow",text:`${e.kind} · ${e.beat===null?"cued":`beat ${e.beat}`}`}),$("h3",{class:"it",text:n0(e)}),$("div",{class:"chips"},$("span",{class:"chip",text:"test BTC"}),$("span",{class:`chip${e.beat===null?"":" ok"}`,text:e.beat===null?"cued":"confirmed"}))),$("div",{class:"ib"},$("dl",{class:"fl"},o.map(qr)),n&&Or("Raw transaction",n.raw))]}function Eu(){const e=at(),t=H("beat"),n=F(T.holding);t.max=String(e),t.value=String(T.beat??e),t.disabled=e===0,H("beat-label").textContent=T.beat===null?`Now · beat ${e}`:`Beat ${T.beat} of ${e}`,H("replay").textContent=T.replay?"Stop":"Replay",H("replay").disabled=!n||e===0,H("to-now").disabled=T.beat===null,H("timeline-sub").textContent=(n==null?void 0:n.name)??"";const r=new Map,s=new Map([...Z.chain.transactions.keys()].map((a,c)=>[a,c])),o=(a,c)=>r.set(a,[...r.get(a)??[],c]);for(const a of K.log)a.roots.includes(T.holding)&&o(a.pending?"cued":a.beat,{e:a,at:s.get(a.id.slice(0,-2))??0});for(const a of Ve.ledger)[a.to,a.from].some(c=>{var u;return c&&((u=F(c))==null?void 0:u.root)===T.holding})&&o(a.beat??"cued",{m:a,at:s.get(a.txid)??0});const i=[...r.keys()].sort((a,c)=>a==="cued"?-1:c==="cued"?1:c-a);if(!i.length)return H("timeline-list").replaceChildren($("li",{class:"wait",text:n?"Nothing yet.":"Found a holding to start its timeline."}));H("timeline-list").replaceChildren(...i.map(a=>{const c=a==="cued"?null:Z.chain.blocks[a-1],u=T.beat!==null&&(a==="cued"||a>T.beat),l=T.beat!==null&&a===T.beat;return $("li",{class:`beat${u?" later":""}${l?" now":""}`},$("p",{class:"bh"},$("span",{class:"bn",text:a==="cued"?"Cued":`Beat ${a}`}),$("span",{class:"bt",text:c?OE(c.time):Z.clock.tempo==="manual"?"waiting for Beat now":"landing on the next beat"})),$("ol",{class:"evs"},r.get(a).sort((f,d)=>f.at-d.at).map(({e:f,m:d})=>d?x$(d):b$(f))))}))}function b$(e){const[t,...n]=tp(e,K).split(" ");return $("li",{},$("button",{type:"button",class:`ev${e.ok?"":" bad"}${e.id===T.event?" on":""}`,"aria-pressed":String(e.id===T.event),onclick:()=>mr({event:e.id,node:e.node??T.node})},$("span",{class:"op",text:e.ok?t:`✕ ${t.replace(/:$/,"")}`})," ",$("span",{class:"es",text:n.join(" ")})))}const x$=e=>$("li",{},$("button",{type:"button",class:`ev money${e.kind==="gas"?" gas":""}${e.kind==="deal"?" deal":""}${e.key===T.tx?" on":""}`,"aria-pressed":String(e.key===T.tx),onclick:()=>{var t;return mr({tx:e.key,node:((t=F(e.to))==null?void 0:t.root)===T.holding?e.to:T.node})}},$("span",{class:"op",text:e.kind})," ",$("span",{class:"es",text:n0(e)})));H("f-found").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=Ks(t.elements.name.value);if(!n)return fe("Name the holding: lowercase letters, digits and hyphens.",!0);await Kt("found",null,{name:n},(r,s)=>(xu({holding:r,node:r}),`${n} is founded, ${s}.`))&&t.reset()});H("sample").addEventListener("click",async()=>{let e=null;fe("Rehearsing the yolopreneur tree over six beats…"),await Qe(t=>{e=IE(t)})&&(mr({holding:e,node:e}),fe("Loaded the yolopreneur sample: six beats of history, ending on both sides of a deal: lineage's offer for sol's launch-kit, and well-known's ask for mailr. Press Replay to watch it grow."))});H("f-birth").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=F(T.node),r=Ks(t.elements.name.value),s=t.elements.kind.value;if(!r)return fe("Name the child: lowercase letters, digits and hyphens.",!0);await Kt("birth",n.id,{name:r,kind:s},(o,i)=>`${r} is born to ${n.name}, ${i}.`)&&(t.elements.name.value="")});H("f-award").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=F(T.node),r=t.elements.to.value,s=Ks(t.elements.skill.value),o=t.elements.belt.value;if(!s)return fe("Name the skill, for example launch.",!0);await Kt("award",n.id,{to:r,skill:s,belt:o},(i,a)=>{var c;return`${(c=F(r))==null?void 0:c.name} holds a ${o} belt in ${s}, ${a}.`})&&(t.elements.skill.value="")});H("f-decide").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=F(T.node),r=t.elements.title.value.trim(),s=t.elements.why.value.trim();if(!r)return fe("A decision needs a title.",!0);await Kt("decide",n.id,{title:r,why:s},(o,i)=>`${n.name} decided “${r}”, ${i}.`)&&t.reset()});H("f-send").addEventListener("submit",async e=>{var a;e.preventDefault();const t=e.currentTarget,n=F(T.node),r=t.elements.to.value,s=vi(t.elements.amount.value);if(s===null)return fe("Write an amount in test BTC, for example 1.5 (at most eight decimals).",!0);let o=null;if(!await Qe(c=>{o=xE(c,n.id,r,s)}))return;const i=Ve.ledger.find(c=>c.txid===o);fe(`${n.name} sent ${G(s)} to ${((a=F(r))==null?void 0:a.root)===n.root?F(r).name:Vr(K,r)}, ${i!=null&&i.beat?`at beat ${i.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});H("f-make").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=F(T.node),r=Ks(t.elements.name.value),s=t.elements.note.value.trim();if(!r)return fe("Name the item: lowercase letters, digits and hyphens.",!0);await Kt("make",n.id,{name:r,note:s},(o,i)=>`${n.name} made ${r}, ${i}.`)&&t.reset()});H("f-charter").addEventListener("change",e=>{e.target.name==="form"&&Qr()});H("charter-file").addEventListener("change",async e=>{var r;const t=(r=e.target.files)==null?void 0:r[0];if(!t)return;const n=new Uint8Array(await crypto.subtle.digest("SHA-256",await t.arrayBuffer()));H("charter-filing").value=[...n].map(s=>s.toString(16).padStart(2,"0")).join(""),e.target.value="",fe(`Hashed ${t.name} in this tab: only its SHA-256 would go on chain.`)});H("f-charter").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=F(T.node),r=ri();if(!r)return fe("Pick a legal form.",!0);if(r==="series"){const a=Ti(n);await Kt("charter",a.id,{form:"series",of:n.id},(c,u)=>`${n.name} is a series of ${a.name}, ${u}.`);return}const s=a=>t.querySelector(`[name="${a}"]`).value.trim(),o={form:r,jurisdiction:s("jurisdiction").toUpperCase(),legal:s("legal"),provider:Ks(s("provider")),filing:s("filing").toLowerCase()},i=(a,c)=>`${n.name} is chartered as ${VE[r]}${o.jurisdiction?` in ${o.jurisdiction}`:""}, ${c}.`;if(await Kt("charter",n.id,o,i))for(const a of["legal","filing"])t.querySelector(`[name="${a}"]`).value=""});H("f-keyring").addEventListener("submit",async e=>{e.preventDefault();const t=F(T.node);await Kt("keyring",t.id,{},(n,r)=>`${t.name} published its keyring, ${r}: four keys, each signing the same statement.`)});H("f-offer").addEventListener("submit",async e=>{var a;e.preventDefault();const t=e.currentTarget,n=F(T.node),r=H("offer-item").value,s=vi(t.elements.price.value);if(s===null)return fe("Write a price in test BTC, for example 0.1, or 0 for a free claim.",!0);const o=Ce(K.items.has(r)?Nt.get(r):(a=F(r))==null?void 0:a.parent),i=He(r);await Qe(c=>{vE(c,r,n.id,s)})&&(fe(`${n.name} offers ${s?G(s):"nothing"} for ${i}. The offer stands until ${o} accepts it.`),t.elements.price.value="")});H("offer-take").addEventListener("click",async()=>{const e=F(T.node),t=H("offer-item").value,n=_t.get(t),r=K.nodes.has(t);if(!n)return;const s=He(t),o=Ce(n.seller);if(!await Qe(c=>{_E(c,Jr(n),e.id)}))return;const i=Ve.ledger.findLast(c=>c.kind==="deal"&&c.item===t),a=i!=null&&i.beat?`at beat ${i.beat}`:"cued for the next beat";if(!r)return fe(`${e.name} took ${s} from ${o} for ${G(n.price)}, ${a}.`);mr({holding:e.root,node:t}),fe(`${e.name} bought ${s} from ${o} for ${G(n.price)} and adopted it, ${a}: its keys derive from ${e.name}'s seed now.`)});H("f-sell").addEventListener("submit",async e=>{e.preventDefault();const t=e.currentTarget,n=F(T.node),r=H("sell-lot").value,s=vi(t.elements.price.value),o=K.nodes.has(r);if(s===null)return fe("Write a price in test BTC, for example 1.",!0);const i=He(r);await Qe(a=>{Lp(a,r,s)})&&(fe(`${n.name} lists ${i} at ${G(s)}: any node can take it.${o?` Whatever it held went home to ${n.name} first, and it's frozen until the ask is taken or withdrawn.`:""}`),t.elements.price.value="")});for(const e of["offer-item","sell-lot"])H(e).addEventListener("change",()=>Qr());H("send-max").addEventListener("click",()=>{const e=F(T.node),t=e&&ye(Z.keys,K,e);t&&(H("send-amount").value=pp(ru(Z.chain.coins(t.script))))});H("f-graduate").addEventListener("submit",async e=>{e.preventDefault();const t=F(T.node),n=F(t.parent);await Kt("graduate",n.id,{of:t.id},(r,s)=>(xu({node:t.id}),`${t.name} graduates from ${n.name}, ${s}. It's a holding of its own now.`))});H("f-close").addEventListener("submit",async e=>{e.preventDefault();const t=F(T.node);if(T.closing!==t.id)return T.closing=t.id,Qr(),H("close-go").focus();T.closing=null,await Kt("close",t.id,{},(n,r)=>`${t.name} is closed, ${r}.`)});H("close-keep").addEventListener("click",()=>{T.closing=null,Qr(),H("close-go").focus()});for(const e of document.querySelectorAll("[data-verb]"))e.addEventListener("click",()=>{T.verb=e.dataset.verb,T.closing=null,Qr()});for(const e of document.querySelectorAll("[data-rule]"))e.addEventListener("click",async()=>{const t=e.dataset.rule;await Qe(n=>fE(n,t))&&fe({split:"Each beat splits across the holdings that mine, by hashrate.",last:"Each beat goes whole to the holding that acts.",none:"Mainnet: no holding mines. Beats pay the lab wallet, and you fund holdings from it."}[t])});H("f-fund").addEventListener("submit",async e=>{var i;e.preventDefault();const t=e.currentTarget,n=t.elements.to.value,r=vi(t.elements.amount.value);if(r===null)return fe("Write an amount in test BTC, for example 5 (at most eight decimals).",!0);let s=null;if(!await Qe(a=>{s=BE(a,n,r)}))return;const o=Ve.ledger.find(a=>a.txid===s);fe(`The lab wallet funded ${(i=F(n))==null?void 0:i.name} with ${G(r)}, ${o!=null&&o.beat?`at beat ${o.beat}`:"cued for the next beat"}.`),t.elements.amount.value=""});for(const e of document.querySelectorAll("[data-tempo]"))e.addEventListener("click",async()=>{const t=e.dataset.tempo,n=/^\d+$/.test(t)?Number(t):t;await Qe(r=>pE(r,n,Date.now(),Ai(r,bu(r)??T.holding)))&&fe(t==="each"?"Each act is its own beat.":t==="manual"?"Acts are cued until you press Beat now.":`Acts are cued and land together on the next beat, at most ${t} seconds after the first.`)});H("beat-now").addEventListener("click",()=>Kp(e=>{ct(e,Ai(e,bu(e)??T.holding))}));setInterval(()=>{Dp();const{tempo:e,nextAt:t}=Z.clock;T.busy||document.hidden||typeof e!="number"||!Z.chain.mempool.length||t&&Date.now()gE(n,Date.now(),Ai(n,bu(n)??T.holding)))},1e3);addEventListener("storage",e=>{(e.key===Si||e.key===null)&&jp()});function qs(){T.replay&&(clearInterval(T.replay),T.replay=null,Eu())}function v$(){const e=F(T.holding);if(!(!e||!at())){if(ni(typeof e.born=="number"?e.born:at()),T.beat===null)return fe("Nothing to replay yet: this holding has one beat of history.");T.replay=setInterval(()=>{(T.beat===null||T.beat+1>=at())&&qs(),ni(T.beat===null?at():T.beat+1)},800),Eu()}}H("beat").addEventListener("input",e=>{qs(),ni(Number(e.target.value))});H("replay").addEventListener("click",()=>T.replay?qs():v$());for(const e of["to-now","past-now"])H(e).addEventListener("click",()=>{qs(),ni(at())});const ca=["system","light","dark"],r0=()=>{H("theme").textContent=`Theme: ${document.documentElement.dataset.theme??"system"}`};H("theme").addEventListener("click",()=>{const e=ca[(ca.indexOf(document.documentElement.dataset.theme??"system")+1)%ca.length];e==="system"?delete document.documentElement.dataset.theme:document.documentElement.dataset.theme=e;try{e==="system"?localStorage.removeItem("orgchain-theme"):localStorage.setItem("orgchain-theme",e)}catch{}r0()});function s0(e,t,n){const r=H("confirm");r.replaceChildren($("span",{text:e}),$("button",{type:"button",class:"btn sm danger",text:t,onclick:()=>{r.hidden=!0,n()}}),$("button",{type:"button",class:"btn sm",text:"Cancel",onclick:()=>{r.hidden=!0}})),r.hidden=!1,r.querySelector("button").focus()}const k$={read:()=>{try{return pu()}catch{return Vs()}}};async function o0(e,t){qs(),await Qe(n=>{Object.assign(n,e())},k$)&&(Object.assign(T,{holding:null,node:null,event:null,tx:null,beat:null,closing:null}),vu(),fe(t))}H("save").addEventListener("click",()=>{const e=$("a",{href:URL.createObjectURL(new Blob([Bp(Z)],{type:"application/json"})),download:`orgchain-lab-${new Date().toISOString().slice(0,10)}.json`});document.body.append(e),e.click(),e.remove(),setTimeout(()=>URL.revokeObjectURL(e.href),5e3),fe("Saved a backup of this lab, test wallet included. Load it in any browser to carry on.")});H("load").addEventListener("click",()=>H("load-file").click());H("load-file").addEventListener("change",async e=>{var r;const t=(r=e.target.files)==null?void 0:r[0];if(e.target.value="",!t)return;let n;try{n=Ap(await t.text())}catch(s){return fe(`${t.name} is not an Orgchain lab: ${s.message}`,!0)}s0(`Replace this browser's lab with ${t.name}?`,"Replace",()=>o0(()=>n,`Loaded ${t.name}.`))});H("reset").addEventListener("click",()=>s0("Erase this browser's lab: every holding, the chain and the test wallet?","Erase",()=>o0(Vs,"Erased. This is a fresh lab.")));r0();jp(); diff --git a/ventures/lineage/orgchain/index.html b/ventures/lineage/orgchain/index.html index ff20e6b..b31481f 100644 --- a/ventures/lineage/orgchain/index.html +++ b/ventures/lineage/orgchain/index.html @@ -4,12 +4,12 @@ Orgchain · Lineage - + - - + +
@@ -17,7 +17,7 @@

Lineage /

Orgchain

-

Found a holding, then birth its orgs and agents, award belts, record decisions, make and trade items, publish keyrings, charter legal forms, send test BTC, graduate and close. Each act is an inscription whose parent is the node that authorizes it, paid for with the actor's own gas, and each beat is a block whose 50 test BTC the holdings mine. Lineage gives the structure; the chain adds time.

+

Found a holding, then birth its orgs and agents, award belts, record decisions, make items, buy and sell items and orgs, publish keyrings, charter legal forms, send test BTC, graduate and close. Each act is an inscription whose parent is the node that authorizes it, paid for with the actor's own gas, and each beat is a block whose 50 test BTC the holdings mine. Lineage gives the structure; the chain adds time.

Test coins only @@ -89,7 +89,7 @@

Select a holding, or a node in its tree, to act through it.