@flarenetwork/flarejs
Version:
Flare Platform JS Library
11 lines • 148 kB
JavaScript
import{bech32 as t,base58 as e,bytesToString as r}from"@scure/base";import{concatBytes as n,randomBytes as s,hexToBytes as a,bytesToHex as i}from"@noble/hashes/utils";import{sha256 as o}from"@noble/hashes/sha256";import{ripemd160 as c}from"@noble/hashes/ripemd160";import u from"util";function f(t,e,r,n){var s,a=arguments.length,i=a<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,r,n);else for(var o=t.length-1;o>=0;o--)(s=t[o])&&(i=(a<3?s(i):a>3?s(e,r,i):s(e,r))||i);return a>3&&i&&Object.defineProperty(e,r,i),i}function d(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}const l=Symbol.for("nodejs.util.inspect.custom"),p="-";function h(t){const e=t.split(p);if(e.length<2)throw new Error(`Invalid address: ${t}`);const r=e[0],n=e[1],[s,a]=b(n);return[r,s,a]}function m(t){return h(t)[2]}function b(e){const{prefix:r,words:n}=t.decode(e);return[r,t.fromWords(n)]}function g(e,r){const n=t.toWords(r);return t.encode(e,n)}function y(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function w(t,...e){if(!((r=t)instanceof Uint8Array||null!=r&&"object"==typeof r&&"Uint8Array"===r.constructor.name))throw new Error("Expected Uint8Array");var r;if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function x(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}const B=BigInt(2**32-1),I=BigInt(32);function v(t,e=!1){return e?{h:Number(t&B),l:Number(t>>I&B)}:{h:0|Number(t>>I&B),l:0|Number(t&B)}}function T(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let s=0;s<t.length;s++){const{h:a,l:i}=v(t[s],e);[r[s],n[s]]=[a,i]}return[r,n]}if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function S(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!((e=t)instanceof Uint8Array||null!=e&&"object"==typeof e&&"Uint8Array"===e.constructor.name))throw new Error("expected Uint8Array, got "+typeof t);var e;return t}class O{clone(){return this._cloneInto()}}const[E,A,k]=[[],[],[]],P=BigInt(0),R=BigInt(1),D=BigInt(2),N=BigInt(7),_=BigInt(256),F=BigInt(113);for(let t=0,e=R,r=1,n=0;t<24;t++){[r,n]=[n,(2*r+3*n)%5],E.push(2*(5*n+r)),A.push((t+1)*(t+2)/2%64);let s=P;for(let t=0;t<7;t++)e=(e<<R^(e>>N)*F)%_,e&D&&(s^=R<<(R<<BigInt(t))-R);k.push(s)}const[V,C]=T(k,!0),U=(t,e,r)=>r>32?((t,e,r)=>e<<r-32|t>>>64-r)(t,e,r):((t,e,r)=>t<<r|e>>>32-r)(t,e,r),M=(t,e,r)=>r>32?((t,e,r)=>t<<r-32|e>>>64-r)
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */(t,e,r):((t,e,r)=>e<<r|t>>>32-r)(t,e,r);class q extends O{constructor(t,e,r,n=!1,s=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=n,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,y(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var a;this.state=new Uint8Array(200),this.state32=(a=this.state,new Uint32Array(a.buffer,a.byteOffset,Math.floor(a.byteLength/4)))}keccak(){!function(t,e=24){const r=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let e=0;e<10;e++)r[e]=t[e]^t[e+10]^t[e+20]^t[e+30]^t[e+40];for(let e=0;e<10;e+=2){const n=(e+8)%10,s=(e+2)%10,a=r[s],i=r[s+1],o=U(a,i,1)^r[n],c=M(a,i,1)^r[n+1];for(let r=0;r<50;r+=10)t[e+r]^=o,t[e+r+1]^=c}let e=t[2],s=t[3];for(let r=0;r<24;r++){const n=A[r],a=U(e,s,n),i=M(e,s,n),o=E[r];e=t[o],s=t[o+1],t[o]=a,t[o+1]=i}for(let e=0;e<50;e+=10){for(let n=0;n<10;n++)r[n]=t[e+n];for(let n=0;n<10;n++)t[e+n]^=~r[(n+2)%10]&r[(n+4)%10]}t[0]^=V[n],t[1]^=C[n]}r.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){x(this);const{blockLen:e,state:r}=this,n=(t=S(t)).length;for(let s=0;s<n;){const a=Math.min(e-this.pos,n-s);for(let e=0;e<a;e++)r[this.pos++]^=t[s++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:r,blockLen:n}=this;t[r]^=e,0!=(128&e)&&r===n-1&&this.keccak(),t[n-1]^=128,this.keccak()}writeInto(t){x(this,!1),w(t),this.finish();const e=this.state,{blockLen:r}=this;for(let n=0,s=t.length;n<s;){this.posOut>=r&&this.keccak();const a=Math.min(r-this.posOut,s-n);t.set(e.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return y(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(function(t,e){w(t);const r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:r,outputLen:n,rounds:s,enableXOF:a}=this;return t||(t=new q(e,r,n,a,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=r,t.outputLen=n,t.enableXOF=a,t.destroyed=this.destroyed,t}}const j=((t,e,r)=>function(t){const e=e=>t().update(S(e)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}((()=>new q(e,t,r))))(1,136,32),L=BigInt(0),H=BigInt(1),Z=BigInt(2);function K(t){return t instanceof Uint8Array||null!=t&&"object"==typeof t&&"Uint8Array"===t.constructor.name}const G=Array.from({length:256},((t,e)=>e.toString(16).padStart(2,"0")));function X(t){if(!K(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=G[t[r]];return e}function z(t){const e=t.toString(16);return 1&e.length?`0${e}`:e}function $(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);return BigInt(""===t?"0":`0x${t}`)}const Y={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function J(t){return t>=Y._0&&t<=Y._9?t-Y._0:t>=Y._A&&t<=Y._F?t-(Y._A-10):t>=Y._a&&t<=Y._f?t-(Y._a-10):void 0}function W(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length,r=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const n=new Uint8Array(r);for(let e=0,s=0;e<r;e++,s+=2){const r=J(t.charCodeAt(s)),a=J(t.charCodeAt(s+1));if(void 0===r||void 0===a){const e=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+e+'" at index '+s)}n[e]=16*r+a}return n}function Q(t){return $(X(t))}function tt(t){if(!K(t))throw new Error("Uint8Array expected");return $(X(Uint8Array.from(t).reverse()))}function et(t,e){return W(t.toString(16).padStart(2*e,"0"))}function rt(t,e){return et(t,e).reverse()}function nt(t,e,r){let n;if("string"==typeof e)try{n=W(e)}catch(r){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${r}`)}else{if(!K(e))throw new Error(`${t} must be hex string or Uint8Array`);n=Uint8Array.from(e)}const s=n.length;if("number"==typeof r&&s!==r)throw new Error(`${t} expected ${r} bytes, got ${s}`);return n}function st(...t){let e=0;for(let r=0;r<t.length;r++){const n=t[r];if(!K(n))throw new Error("Uint8Array expected");e+=n.length}let r=new Uint8Array(e),n=0;for(let e=0;e<t.length;e++){const s=t[e];r.set(s,n),n+=s.length}return r}function at(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}function it(t){let e;for(e=0;t>L;t>>=H,e+=1);return e}function ot(t,e){return t>>BigInt(e)&H}const ct=t=>(Z<<BigInt(t-1))-H,ut=t=>new Uint8Array(t),ft=t=>Uint8Array.from(t);function dt(t,e,r){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");let n=ut(t),s=ut(t),a=0;const i=()=>{n.fill(1),s.fill(0),a=0},o=(...t)=>r(s,n,...t),c=(t=ut())=>{s=o(ft([0]),t),n=o(),0!==t.length&&(s=o(ft([1]),t),n=o())},u=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const r=[];for(;t<e;){n=o();const e=n.slice();r.push(e),t+=n.length}return st(...r)};return(t,e)=>{let r;for(i(),c(t);!(r=e(u()));)c();return i(),r}}const lt={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||K(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function pt(t,e,r={}){const n=(e,r,n)=>{const s=lt[r];if("function"!=typeof s)throw new Error(`Invalid validator "${r}", expected function`);const a=t[e];if(!(n&&void 0===a||s(a,t)))throw new Error(`Invalid param ${String(e)}=${a} (${typeof a}), expected ${r}`)};for(const[t,r]of Object.entries(e))n(t,r,!1);for(const[t,e]of Object.entries(r))n(t,e,!0);return t}var ht=Object.freeze({__proto__:null,bitGet:ot,bitLen:it,bitMask:ct,bitSet:(t,e,r)=>t|(r?H:L)<<BigInt(e),bytesToHex:X,bytesToNumberBE:Q,bytesToNumberLE:tt,concatBytes:st,createHmacDrbg:dt,ensureBytes:nt,equalBytes:function(t,e){if(t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return 0===r},hexToBytes:W,hexToNumber:$,isBytes:K,numberToBytesBE:et,numberToBytesLE:rt,numberToHexUnpadded:z,numberToVarBytesBE:function(t){return W(z(t))},utf8ToBytes:at,validateObject:pt});
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mt=BigInt(0),bt=BigInt(1),gt=BigInt(2),yt=BigInt(3),wt=BigInt(4),xt=BigInt(5),Bt=BigInt(8);function It(t,e){const r=t%e;return r>=mt?r:e+r}function vt(t,e,r){if(r<=mt||e<mt)throw new Error("Expected power/modulo > 0");if(r===bt)return mt;let n=bt;for(;e>mt;)e&bt&&(n=n*t%r),t=t*t%r,e>>=bt;return n}function Tt(t,e,r){let n=t;for(;e-- >mt;)n*=n,n%=r;return n}function St(t,e){if(t===mt||e<=mt)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=It(t,e),n=e,s=mt,a=bt;for(;r!==mt;){const t=n%r,e=s-a*(n/r);n=r,r=t,s=a,a=e}if(n!==bt)throw new Error("invert: does not exist");return It(s,e)}function Ot(t){if(t%wt===yt){const e=(t+bt)/wt;return function(t,r){const n=t.pow(r,e);if(!t.eql(t.sqr(n),r))throw new Error("Cannot find square root");return n}}if(t%Bt===xt){const e=(t-xt)/Bt;return function(t,r){const n=t.mul(r,gt),s=t.pow(n,e),a=t.mul(r,s),i=t.mul(t.mul(a,gt),s),o=t.mul(a,t.sub(i,t.ONE));if(!t.eql(t.sqr(o),r))throw new Error("Cannot find square root");return o}}return function(t){const e=(t-bt)/gt;let r,n,s;for(r=t-bt,n=0;r%gt===mt;r/=gt,n++);for(s=gt;s<t&&vt(s,e,t)!==t-bt;s++);if(1===n){const e=(t+bt)/wt;return function(t,r){const n=t.pow(r,e);if(!t.eql(t.sqr(n),r))throw new Error("Cannot find square root");return n}}const a=(r+bt)/gt;return function(t,i){if(t.pow(i,e)===t.neg(t.ONE))throw new Error("Cannot find square root");let o=n,c=t.pow(t.mul(t.ONE,s),r),u=t.pow(i,a),f=t.pow(i,r);for(;!t.eql(f,t.ONE);){if(t.eql(f,t.ZERO))return t.ZERO;let e=1;for(let r=t.sqr(f);e<o&&!t.eql(r,t.ONE);e++)r=t.sqr(r);const r=t.pow(c,bt<<BigInt(o-e-1));c=t.sqr(r),u=t.mul(u,r),f=t.mul(f,c),o=e}return u}}(t)}BigInt(9),BigInt(16);const Et=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function At(t){return pt(t,Et.reduce(((t,e)=>(t[e]="function",t)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"}))}function kt(t,e,r){if(r<mt)throw new Error("Expected power > 0");if(r===mt)return t.ONE;if(r===bt)return e;let n=t.ONE,s=e;for(;r>mt;)r&bt&&(n=t.mul(n,s)),s=t.sqr(s),r>>=bt;return n}function Pt(t,e){const r=new Array(e.length),n=e.reduce(((e,n,s)=>t.is0(n)?e:(r[s]=e,t.mul(e,n))),t.ONE),s=t.inv(n);return e.reduceRight(((e,n,s)=>t.is0(n)?e:(r[s]=t.mul(e,r[s]),t.mul(e,n))),s),r}function Rt(t,e){const r=void 0!==e?e:t.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function Dt(t,e,r=!1,n={}){if(t<=mt)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:s,nByteLength:a}=Rt(t,e);if(a>2048)throw new Error("Field lengths over 2048 bytes are not supported");const i=Ot(t),o=Object.freeze({ORDER:t,BITS:s,BYTES:a,MASK:ct(s),ZERO:mt,ONE:bt,create:e=>It(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return mt<=e&&e<t},is0:t=>t===mt,isOdd:t=>(t&bt)===bt,neg:e=>It(-e,t),eql:(t,e)=>t===e,sqr:e=>It(e*e,t),add:(e,r)=>It(e+r,t),sub:(e,r)=>It(e-r,t),mul:(e,r)=>It(e*r,t),pow:(t,e)=>kt(o,t,e),div:(e,r)=>It(e*St(r,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>St(e,t),sqrt:n.sqrt||(t=>i(o,t)),invertBatch:t=>Pt(o,t),cmov:(t,e,r)=>r?e:t,toBytes:t=>r?rt(t,a):et(t,a),fromBytes:t=>{if(t.length!==a)throw new Error(`Fp.fromBytes: expected ${a}, got ${t.length}`);return r?tt(t):Q(t)}});return Object.freeze(o)}function Nt(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function _t(t){const e=Nt(t);return e+Math.ceil(e/2)}function Ft(t,e,r=!1){const n=t.length,s=Nt(e),a=_t(e);if(n<16||n<a||n>1024)throw new Error(`expected ${a}-1024 bytes of input, got ${n}`);const i=It(r?Q(t):tt(t),e-bt)+bt;return r?rt(i,s):et(i,s)}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Vt=BigInt(0),Ct=BigInt(1);function Ut(t){return At(t.Fp),pt(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Rt(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:Mt,hexToBytes:qt}=ht,jt={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=jt;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)throw new e("Invalid signature integer: wrong length");if(128&n[0])throw new e("Invalid signature integer: negative");if(0===n[0]&&!(128&n[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Mt(n),l:t.subarray(r+2)}},toSig(t){const{Err:e}=jt,r="string"==typeof t?qt(t):t;if(!K(r))throw new Error("ui8a expected");let n=r.length;if(n<2||48!=r[0])throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");const{d:s,l:a}=jt._parseInt(r.subarray(2)),{d:i,l:o}=jt._parseInt(a);if(o.length)throw new e("Invalid signature: left bytes after parsing");return{r:s,s:i}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,r=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},n=e(r(t.s)),s=e(r(t.r)),a=n.length/2,i=s.length/2,o=r(a),c=r(i);return`30${r(i+a+4)}02${c}${s}02${o}${n}`}},Lt=BigInt(0),Ht=BigInt(1),Zt=BigInt(2),Kt=BigInt(3),Gt=BigInt(4);function Xt(t){const e=function(t){const e=Ut(t);pt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:s}=e;if(r){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof r||"bigint"!=typeof r.beta||"function"!=typeof r.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}(t),{Fp:r}=e,n=e.toBytes||((t,e,n)=>{const s=e.toAffine();return st(Uint8Array.from([4]),r.toBytes(s.x),r.toBytes(s.y))}),s=e.fromBytes||(t=>{const e=t.subarray(1);return{x:r.fromBytes(e.subarray(0,r.BYTES)),y:r.fromBytes(e.subarray(r.BYTES,2*r.BYTES))}});function a(t){const{a:n,b:s}=e,a=r.sqr(t),i=r.mul(a,t);return r.add(r.add(i,r.mul(t,n)),s)}if(!r.eql(r.sqr(e.Gy),a(e.Gx)))throw new Error("bad generator point: equation left != right");function i(t){return"bigint"==typeof t&&Lt<t&&t<e.n}function o(t){if(!i(t))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(t){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:s,n:a}=e;if(r&&"bigint"!=typeof t){if(K(t)&&(t=X(t)),"string"!=typeof t||!r.includes(t.length))throw new Error("Invalid key");t=t.padStart(2*n,"0")}let i;try{i="bigint"==typeof t?t:Q(nt("private key",t,n))}catch(e){throw new Error(`private key must be ${n} bytes, hex or bigint, not ${typeof t}`)}return s&&(i=It(i,a)),o(i),i}const u=new Map;function f(t){if(!(t instanceof d))throw new Error("ProjectivePoint expected")}class d{constructor(t,e,n){if(this.px=t,this.py=e,this.pz=n,null==t||!r.isValid(t))throw new Error("x required");if(null==e||!r.isValid(e))throw new Error("y required");if(null==n||!r.isValid(n))throw new Error("z required")}static fromAffine(t){const{x:e,y:n}=t||{};if(!t||!r.isValid(e)||!r.isValid(n))throw new Error("invalid affine point");if(t instanceof d)throw new Error("projective point not allowed");const s=t=>r.eql(t,r.ZERO);return s(e)&&s(n)?d.ZERO:new d(e,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=r.invertBatch(t.map((t=>t.pz)));return t.map(((t,r)=>t.toAffine(e[r]))).map(d.fromAffine)}static fromHex(t){const e=d.fromAffine(s(nt("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return d.BASE.multiply(c(t))}_setWindowSize(t){this._WINDOW_SIZE=t,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:n}=this.toAffine();if(!r.isValid(t)||!r.isValid(n))throw new Error("bad point: x or y not FE");const s=r.sqr(n),i=a(t);if(!r.eql(s,i))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(r.isOdd)return!r.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){f(t);const{px:e,py:n,pz:s}=this,{px:a,py:i,pz:o}=t,c=r.eql(r.mul(e,o),r.mul(a,s)),u=r.eql(r.mul(n,o),r.mul(i,s));return c&&u}negate(){return new d(this.px,r.neg(this.py),this.pz)}double(){const{a:t,b:n}=e,s=r.mul(n,Kt),{px:a,py:i,pz:o}=this;let c=r.ZERO,u=r.ZERO,f=r.ZERO,l=r.mul(a,a),p=r.mul(i,i),h=r.mul(o,o),m=r.mul(a,i);return m=r.add(m,m),f=r.mul(a,o),f=r.add(f,f),c=r.mul(t,f),u=r.mul(s,h),u=r.add(c,u),c=r.sub(p,u),u=r.add(p,u),u=r.mul(c,u),c=r.mul(m,c),f=r.mul(s,f),h=r.mul(t,h),m=r.sub(l,h),m=r.mul(t,m),m=r.add(m,f),f=r.add(l,l),l=r.add(f,l),l=r.add(l,h),l=r.mul(l,m),u=r.add(u,l),h=r.mul(i,o),h=r.add(h,h),l=r.mul(h,m),c=r.sub(c,l),f=r.mul(h,p),f=r.add(f,f),f=r.add(f,f),new d(c,u,f)}add(t){f(t);const{px:n,py:s,pz:a}=this,{px:i,py:o,pz:c}=t;let u=r.ZERO,l=r.ZERO,p=r.ZERO;const h=e.a,m=r.mul(e.b,Kt);let b=r.mul(n,i),g=r.mul(s,o),y=r.mul(a,c),w=r.add(n,s),x=r.add(i,o);w=r.mul(w,x),x=r.add(b,g),w=r.sub(w,x),x=r.add(n,a);let B=r.add(i,c);return x=r.mul(x,B),B=r.add(b,y),x=r.sub(x,B),B=r.add(s,a),u=r.add(o,c),B=r.mul(B,u),u=r.add(g,y),B=r.sub(B,u),p=r.mul(h,x),u=r.mul(m,y),p=r.add(u,p),u=r.sub(g,p),p=r.add(g,p),l=r.mul(u,p),g=r.add(b,b),g=r.add(g,b),y=r.mul(h,y),x=r.mul(m,x),g=r.add(g,y),y=r.sub(b,y),y=r.mul(h,y),x=r.add(x,y),b=r.mul(g,x),l=r.add(l,b),b=r.mul(B,x),u=r.mul(w,u),u=r.sub(u,b),b=r.mul(w,g),p=r.mul(B,p),p=r.add(p,b),new d(u,l,p)}subtract(t){return this.add(t.negate())}is0(){return this.equals(d.ZERO)}wNAF(t){return p.wNAFCached(this,u,t,(t=>{const e=r.invertBatch(t.map((t=>t.pz)));return t.map(((t,r)=>t.toAffine(e[r]))).map(d.fromAffine)}))}multiplyUnsafe(t){const n=d.ZERO;if(t===Lt)return n;if(o(t),t===Ht)return this;const{endo:s}=e;if(!s)return p.unsafeLadder(this,t);let{k1neg:a,k1:i,k2neg:c,k2:u}=s.splitScalar(t),f=n,l=n,h=this;for(;i>Lt||u>Lt;)i&Ht&&(f=f.add(h)),u&Ht&&(l=l.add(h)),h=h.double(),i>>=Ht,u>>=Ht;return a&&(f=f.negate()),c&&(l=l.negate()),l=new d(r.mul(l.px,s.beta),l.py,l.pz),f.add(l)}multiply(t){o(t);let n,s,a=t;const{endo:i}=e;if(i){const{k1neg:t,k1:e,k2neg:o,k2:c}=i.splitScalar(a);let{p:u,f:f}=this.wNAF(e),{p:l,f:h}=this.wNAF(c);u=p.constTimeNegate(t,u),l=p.constTimeNegate(o,l),l=new d(r.mul(l.px,i.beta),l.py,l.pz),n=u.add(l),s=f.add(h)}else{const{p:t,f:e}=this.wNAF(a);n=t,s=e}return d.normalizeZ([n,s])[0]}multiplyAndAddUnsafe(t,e,r){const n=d.BASE,s=(t,e)=>e!==Lt&&e!==Ht&&t.equals(n)?t.multiply(e):t.multiplyUnsafe(e),a=s(this,e).add(s(t,r));return a.is0()?void 0:a}toAffine(t){const{px:e,py:n,pz:s}=this,a=this.is0();null==t&&(t=a?r.ONE:r.inv(s));const i=r.mul(e,t),o=r.mul(n,t),c=r.mul(s,t);if(a)return{x:r.ZERO,y:r.ZERO};if(!r.eql(c,r.ONE))throw new Error("invZ was invalid");return{x:i,y:o}}isTorsionFree(){const{h:t,isTorsionFree:r}=e;if(t===Ht)return!0;if(r)return r(d,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:r}=e;return t===Ht?this:r?r(d,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),n(d,this,t)}toHex(t=!0){return X(this.toRawBytes(t))}}d.BASE=new d(e.Gx,e.Gy,r.ONE),d.ZERO=new d(r.ZERO,r.ONE,r.ZERO);const l=e.nBitLength,p=function(t,e){const r=(t,e)=>{const r=e.negate();return t?r:e},n=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:r,unsafeLadder(e,r){let n=t.ZERO,s=e;for(;r>Vt;)r&Ct&&(n=n.add(s)),s=s.double(),r>>=Ct;return n},precomputeWindow(t,e){const{windows:r,windowSize:s}=n(e),a=[];let i=t,o=i;for(let t=0;t<r;t++){o=i,a.push(o);for(let t=1;t<s;t++)o=o.add(i),a.push(o);i=o.double()}return a},wNAF(e,s,a){const{windows:i,windowSize:o}=n(e);let c=t.ZERO,u=t.BASE;const f=BigInt(2**e-1),d=2**e,l=BigInt(e);for(let t=0;t<i;t++){const e=t*o;let n=Number(a&f);a>>=l,n>o&&(n-=d,a+=Ct);const i=e,p=e+Math.abs(n)-1,h=t%2!=0,m=n<0;0===n?u=u.add(r(h,s[i])):c=c.add(r(m,s[p]))}return{p:c,f:u}},wNAFCached(t,e,r,n){const s=t._WINDOW_SIZE||1;let a=e.get(t);return a||(a=this.precomputeWindow(t,s),1!==s&&e.set(t,n(a))),this.wNAF(s,a,r)}}}(d,e.endo?Math.ceil(l/2):l);return{CURVE:e,ProjectivePoint:d,normPrivateKeyToScalar:c,weierstrassEquation:a,isWithinCurveOrder:i}}function zt(t){const e=function(t){const e=Ut(t);return pt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:r,n:n}=e,s=r.BYTES+1,a=2*r.BYTES+1;function i(t){return It(t,n)}function o(t){return St(t,n)}const{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:f,isWithinCurveOrder:d}=Xt({...e,toBytes(t,e,n){const s=e.toAffine(),a=r.toBytes(s.x),i=st;return n?i(Uint8Array.from([e.hasEvenY()?2:3]),a):i(Uint8Array.from([4]),a,r.toBytes(s.y))},fromBytes(t){const e=t.length,n=t[0],i=t.subarray(1);if(e!==s||2!==n&&3!==n){if(e===a&&4===n){return{x:r.fromBytes(i.subarray(0,r.BYTES)),y:r.fromBytes(i.subarray(r.BYTES,2*r.BYTES))}}throw new Error(`Point of length ${e} was invalid. Expected ${s} compressed bytes or ${a} uncompressed bytes`)}{const t=Q(i);if(!(Lt<(o=t)&&o<r.ORDER))throw new Error("Point is not on curve");const e=f(t);let s=r.sqrt(e);return 1==(1&n)!==((s&Ht)===Ht)&&(s=r.neg(s)),{x:t,y:s}}var o}}),l=t=>X(et(t,e.nByteLength));function p(t){return t>n>>Ht}const h=(t,e,r)=>Q(t.slice(e,r));class m{constructor(t,e,r){this.r=t,this.s=e,this.recovery=r,this.assertValidity()}static fromCompact(t){const r=e.nByteLength;return t=nt("compactSignature",t,2*r),new m(h(t,0,r),h(t,r,2*r))}static fromDER(t){const{r:e,s:r}=jt.toSig(nt("DER",t));return new m(e,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(t){return new m(this.r,this.s,t)}recoverPublicKey(t){const{r:n,s:s,recovery:a}=this,u=w(nt("msgHash",t));if(null==a||![0,1,2,3].includes(a))throw new Error("recovery id invalid");const f=2===a||3===a?n+e.n:n;if(f>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const d=0==(1&a)?"02":"03",p=c.fromHex(d+l(f)),h=o(f),m=i(-u*h),b=i(s*h),g=c.BASE.multiplyAndAddUnsafe(p,m,b);if(!g)throw new Error("point at infinify");return g.assertValidity(),g}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return W(this.toDERHex())}toDERHex(){return jt.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return W(this.toCompactHex())}toCompactHex(){return l(this.r)+l(this.s)}}const b={isValidPrivateKey(t){try{return u(t),!0}catch(t){return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const t=_t(e.n);return Ft(e.randomBytes(t),e.n)},precompute:(t=8,e=c.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function g(t){const e=K(t),r="string"==typeof t,n=(e||r)&&t.length;return e?n===s||n===a:r?n===2*s||n===2*a:t instanceof c}const y=e.bits2int||function(t){const r=Q(t),n=8*t.length-e.nBitLength;return n>0?r>>BigInt(n):r},w=e.bits2int_modN||function(t){return i(y(t))},x=ct(e.nBitLength);function B(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(Lt<=t&&t<x))throw new Error(`bigint expected < 2^${e.nBitLength}`);return et(t,e.nByteLength)}function I(t,n,s=v){if(["recovered","canonical"].some((t=>t in s)))throw new Error("sign() legacy options not supported");const{hash:a,randomBytes:f}=e;let{lowS:l,prehash:h,extraEntropy:b}=s;null==l&&(l=!0),t=nt("msgHash",t),h&&(t=nt("prehashed msgHash",a(t)));const g=w(t),x=u(n),I=[B(x),B(g)];if(null!=b){const t=!0===b?f(r.BYTES):b;I.push(nt("extraEntropy",t))}const T=st(...I),S=g;return{seed:T,k2sig:function(t){const e=y(t);if(!d(e))return;const r=o(e),n=c.BASE.multiply(e).toAffine(),s=i(n.x);if(s===Lt)return;const a=i(r*i(S+s*x));if(a===Lt)return;let u=(n.x===s?0:2)|Number(n.y&Ht),f=a;return l&&p(a)&&(f=function(t){return p(t)?i(-t):t}(a),u^=1),new m(s,f,u)}}}const v={lowS:e.lowS,prehash:!1},T={lowS:e.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:e,getPublicKey:function(t,e=!0){return c.fromPrivateKey(t).toRawBytes(e)},getSharedSecret:function(t,e,r=!0){if(g(t))throw new Error("first arg must be private key");if(!g(e))throw new Error("second arg must be public key");return c.fromHex(e).multiply(u(t)).toRawBytes(r)},sign:function(t,r,n=v){const{seed:s,k2sig:a}=I(t,r,n),i=e;return dt(i.hash.outputLen,i.nByteLength,i.hmac)(s,a)},verify:function(t,r,n,s=T){const a=t;if(r=nt("msgHash",r),n=nt("publicKey",n),"strict"in s)throw new Error("options.strict was renamed to lowS");const{lowS:u,prehash:f}=s;let d,l;try{if("string"==typeof a||K(a))try{d=m.fromDER(a)}catch(t){if(!(t instanceof jt.Err))throw t;d=m.fromCompact(a)}else{if("object"!=typeof a||"bigint"!=typeof a.r||"bigint"!=typeof a.s)throw new Error("PARSE");{const{r:t,s:e}=a;d=new m(t,e)}}l=c.fromHex(n)}catch(t){if("PARSE"===t.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&d.hasHighS())return!1;f&&(r=e.hash(r));const{r:p,s:h}=d,b=w(r),g=o(h),y=i(b*g),x=i(p*g),B=c.BASE.multiplyAndAddUnsafe(l,y,x)?.toAffine();return!!B&&i(B.x)===p},ProjectivePoint:c,Signature:m,utils:b}}function $t(t,e){if(At(t),!t.isValid(e.A)||!t.isValid(e.B)||!t.isValid(e.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const r=function(t,e){const r=t.ORDER;let n=Lt;for(let t=r-Ht;t%Zt===Lt;t/=Zt)n+=Ht;const s=n,a=Zt<<s-Ht-Ht,i=a*Zt,o=(r-Ht)/i,c=(o-Ht)/Zt,u=i-Ht,f=a,d=t.pow(e,o),l=t.pow(e,(o+Ht)/Zt);let p=(e,r)=>{let n=d,a=t.pow(r,u),i=t.sqr(a);i=t.mul(i,r);let o=t.mul(e,i);o=t.pow(o,c),o=t.mul(o,a),a=t.mul(o,r),i=t.mul(o,e);let p=t.mul(i,a);o=t.pow(p,f);let h=t.eql(o,t.ONE);a=t.mul(i,l),o=t.mul(p,n),i=t.cmov(a,i,h),p=t.cmov(o,p,h);for(let e=s;e>Ht;e--){let r=e-Zt;r=Zt<<r-Ht;let s=t.pow(p,r);const o=t.eql(s,t.ONE);a=t.mul(i,n),n=t.mul(n,n),s=t.mul(p,n),i=t.cmov(a,i,o),p=t.cmov(s,p,o)}return{isValid:h,value:i}};if(t.ORDER%Gt===Kt){const r=(t.ORDER-Kt)/Gt,n=t.sqrt(t.neg(e));p=(e,s)=>{let a=t.sqr(s);const i=t.mul(e,s);a=t.mul(a,i);let o=t.pow(a,r);o=t.mul(o,i);const c=t.mul(o,n),u=t.mul(t.sqr(o),s),f=t.eql(u,e);return{isValid:f,value:t.cmov(c,o,f)}}}return p}(t,e.Z);if(!t.isOdd)throw new Error("Fp.isOdd is not implemented!");return n=>{let s,a,i,o,c,u,f,d;s=t.sqr(n),s=t.mul(s,e.Z),a=t.sqr(s),a=t.add(a,s),i=t.add(a,t.ONE),i=t.mul(i,e.B),o=t.cmov(e.Z,t.neg(a),!t.eql(a,t.ZERO)),o=t.mul(o,e.A),a=t.sqr(i),u=t.sqr(o),c=t.mul(u,e.A),a=t.add(a,c),a=t.mul(a,i),u=t.mul(u,o),c=t.mul(u,e.B),a=t.add(a,c),f=t.mul(s,i);const{isValid:l,value:p}=r(a,u);d=t.mul(s,n),d=t.mul(d,p),f=t.cmov(f,i,l),d=t.cmov(d,p,l);const h=t.isOdd(n)===t.isOdd(d);return d=t.cmov(t.neg(d),d,h),f=t.div(f,o),{x:f,y:d}}}const Yt=Q;function Jt(t,e){if(t<0||t>=1<<8*e)throw new Error(`bad I2OSP call: value=${t} length=${e}`);const r=Array.from({length:e}).fill(0);for(let n=e-1;n>=0;n--)r[n]=255&t,t>>>=8;return new Uint8Array(r)}function Wt(t,e){const r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t[n]^e[n];return r}function Qt(t){if(!K(t))throw new Error("Uint8Array expected")}function te(t){if(!Number.isSafeInteger(t))throw new Error("number expected")}function ee(t,e,r){pt(r,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:n,k:s,m:a,hash:i,expand:o,DST:c}=r;Qt(t),te(e);const u=function(t){if(K(t))return t;if("string"==typeof t)return at(t);throw new Error("DST must be Uint8Array or string")}(c),f=n.toString(2).length,d=Math.ceil((f+s)/8),l=e*a*d;let p;if("xmd"===o)p=function(t,e,r,n){Qt(t),Qt(e),te(r),e.length>255&&(e=n(st(at("H2C-OVERSIZE-DST-"),e)));const{outputLen:s,blockLen:a}=n,i=Math.ceil(r/s);if(i>255)throw new Error("Invalid xmd length");const o=st(e,Jt(e.length,1)),c=Jt(0,a),u=Jt(r,2),f=new Array(i),d=n(st(c,t,u,Jt(0,1),o));f[0]=n(st(d,Jt(1,1),o));for(let t=1;t<=i;t++){const e=[Wt(d,f[t-1]),Jt(t+1,1),o];f[t]=n(st(...e))}return st(...f).slice(0,r)}(t,u,l,i);else if("xof"===o)p=function(t,e,r,n,s){if(Qt(t),Qt(e),te(r),e.length>255){const t=Math.ceil(2*n/8);e=s.create({dkLen:t}).update(at("H2C-OVERSIZE-DST-")).update(e).digest()}if(r>65535||e.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return s.create({dkLen:r}).update(t).update(Jt(r,2)).update(e).update(Jt(e.length,1)).digest()}(t,u,l,s,i);else{if("_internal_pass"!==o)throw new Error('expand must be "xmd" or "xof"');p=t}const h=new Array(e);for(let t=0;t<e;t++){const e=new Array(a);for(let r=0;r<a;r++){const s=d*(r+t*a),i=p.subarray(s,s+d);e[r]=It(Yt(i),n)}h[t]=e}return h}function re(t,e){const r=e.map((t=>Array.from(t).reverse()));return(e,n)=>{const[s,a,i,o]=r.map((r=>r.reduce(((r,n)=>t.add(t.mul(r,e),n)))));return e=t.div(s,a),n=t.mul(n,t.div(i,o)),{x:e,y:n}}}function ne(t,e,r){if("function"!=typeof e)throw new Error("mapToCurve() must be defined");return{hashToCurve(n,s){const a=ee(n,2,{...r,DST:r.DST,...s}),i=t.fromAffine(e(a[0])),o=t.fromAffine(e(a[1])),c=i.add(o).clearCofactor();return c.assertValidity(),c},encodeToCurve(n,s){const a=ee(n,1,{...r,DST:r.encodeDST,...s}),i=t.fromAffine(e(a[0])).clearCofactor();return i.assertValidity(),i}}}class se extends O{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,function(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");y(t.outputLen),y(t.blockLen)}(t);const r=S(e);if(this.iHash=t.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,s=new Uint8Array(n);s.set(r.length>n?t.create().update(r).digest():r);for(let t=0;t<s.length;t++)s[t]^=54;this.iHash.update(s),this.oHash=t.create();for(let t=0;t<s.length;t++)s[t]^=106;this.oHash.update(s),s.fill(0)}update(t){return x(this),this.iHash.update(t),this}digestInto(t){x(this),w(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:r,finished:n,destroyed:s,blockLen:a,outputLen:i}=this;return t.finished=n,t.destroyed=s,t.blockLen=a,t.outputLen=i,t.oHash=e._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ae=(t,e,r)=>new se(t,e).update(r).digest();
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
function ie(t){return{hash:t,hmac:(e,...r)=>ae(t,e,n(...r)),randomBytes:s}}ae.create=(t,e)=>new se(t,e);
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const oe=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),ce=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ue=BigInt(1),fe=BigInt(2),de=(t,e)=>(t+e/fe)/e;const le=Dt(oe,void 0,void 0,{sqrt:function(t){const e=oe,r=BigInt(3),n=BigInt(6),s=BigInt(11),a=BigInt(22),i=BigInt(23),o=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,d=Tt(f,r,e)*f%e,l=Tt(d,r,e)*f%e,p=Tt(l,fe,e)*u%e,h=Tt(p,s,e)*p%e,m=Tt(h,a,e)*h%e,b=Tt(m,o,e)*m%e,g=Tt(b,c,e)*b%e,y=Tt(g,o,e)*m%e,w=Tt(y,r,e)*f%e,x=Tt(w,i,e)*h%e,B=Tt(x,n,e)*u%e,I=Tt(B,fe,e);if(!le.eql(le.sqr(I),t))throw new Error("Cannot find square root");return I}}),pe=function(t,e){const r=e=>zt({...t,...ie(e)});return Object.freeze({...r(e),create:r})}({a:BigInt(0),b:BigInt(7),Fp:le,n:ce,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=ce,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ue*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),a=r,i=BigInt("0x100000000000000000000000000000000"),o=de(a*t,e),c=de(-n*t,e);let u=It(t-o*r-c*s,e),f=It(-o*n-c*a,e);const d=u>i,l=f>i;if(d&&(u=e-u),l&&(f=e-f),u>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:d,k1:u,k2neg:l,k2:f}}}},o);BigInt(0),pe.ProjectivePoint,Array.from({length:256},((t,e)=>e.toString(16).padStart(2,"0")));
/*! micro-eth-signer - MIT License (c) 2021 Paul Miller (paulmillr.com) */
const he=t=>pe.getPublicKey(t,!1),me=t=>pe.ProjectivePoint.fromHex(t).toRawBytes(!1);function be(t){return/^0x/i.test(t)?t:`0x${t}`}function ge(t){return t.replace(/^0x/i,"")}function ye(t){return a(ge(t))}const we={fromPrivateKey:t=>("string"==typeof t&&(t=ye(t)),we.fromPublicKey(he(t))),fromPublicKey(t){const e=me(t),r=i(j(e.subarray(1,65))).slice(24);return we.checksum(r)},checksum(t){const e=ge(t.toLowerCase());if(40!==e.length)throw new Error("Invalid address, must have 40 chars");const r=ge(i(j(e)));let n="";for(let t=0;t<e.length;t++){const s=Number.parseInt(r[t],16);let a=e[t];s>7&&(a=a.toUpperCase()),n+=a}return be(n)},verifyChecksum(t){const e=ge(t);if(40!==e.length)throw new Error("Invalid address, must have 40 chars");if(e===e.toLowerCase()||e===e.toUpperCase())return!0;const r=i(j(e.toLowerCase()));for(let t=0;t<40;t++){const n=e[t],s=Number.parseInt(r[t],16);if(s>7&&n.toUpperCase()!==n)return!1;if(s<=7&&n.toLowerCase()!==n)return!1}return!0}};function xe(t){return BigInt(Ie(t))}function Be(t){return Number.parseInt(i(t),16)}function Ie(t){return be(i(t))}function ve(t){return 1&(t=ge(t)).length&&(t="0"+t),a(t)}function Te(t,e){const r=e-t.length;if(r<=0)return t;const n=new Uint8Array(e);return n.set(t,r),n}class Se{}const Oe="AVM",Ee="EVM",Ae="PVM",ke=[Oe,Ee,Ae];var Pe,Re;!function(t){t.Codec="codec",t.BaseTx="avax.BaseTx",t.TransferableOutput="avax.TransferableOutput",t.TransferableInput="avax.TransferableInput",t.TransferableOp="avax.TransferableOp",t.UTXOID="avax.UTXOID",t.UTXO="avax.Utxo",t.Id="common.Id",t.Address="common.Address",t.NodeId="common.NodeId",t.Int="primitives.Int",t.BigIntPr="primitives.BigInt",t.StringPr="primitives.String",t.Byte="primitives.Byte",t.Bytes="primitives.Bytes",t.Short="primitives.Short",t.Input="secp256k1fx.Input",t.TransferInput="secp256k1fx.TransferInput",t.TransferOutput="secp256k1fx.TransferOutput",t.OutputOwners="secp256k1fx.OutputOwners",t.OutputOwnersList="secp256k1fx.OutputOwnersList",t.Credential="secp256k1fx.Credential",t.Signature="secp256k1fx.Signature",t.SecpMintOperation="secp256k1fx.MintOperation",t.SecpMintOutput="secp256k1fx.MintOutput",t.NftFxMintOperation="nftfx.MintOperation",t.NftFxMintOutput="nftfx.MintOutput",t.NftFxTransferOperation="nftfx.TransferOperation",t.NftFxTransferOutput="nftfx.TransferOutput",t.NftFxCredential="nftfx.Credential",t.AvmBaseTx="avm.BaseTx",t.AvmExportTx="avm.ExportTx",t.AvmImportTx="avm.ImportTx",t.CreateAssetTx="avm.CreateAssetTx",t.OperationTx="avm.OperationTx",t.InitialState="avm.InitialState",t.AvmSignedTx="avm.SignedTx",t.PvmBaseTx="pvm.BaseTx",t.StakeableLockIn="pvm.StakeableLockIn",t.StakeableLockOut="pvm.StakeableLockOut",t.AddDelegatorTx="pvm.AddDelegatorTx",t.AddValidatorTx="pvm.AddValidatorTx",t.AddPermissionlessDelegatorTx="pvm.AddPermissionlessDelegator",t.AddPermissionlessValidatorTx="pvm.AddPermissionlessValidator",t.Validator="pvm.Validator",t.SubnetValidator="pvm.SubnetValidator",t.Signer="pvm.signer",t.SignerEmpty="pvm.signerEmpty",t.ProofOfPossession="pvm.proofOfPossession",t.AddSubnetValidatorTx="pvm.AddSubnetValidator",t.AdvanceTimeTx="pvm.AdvanceTimeTx",t.CreateChainTx="pvm.CreateChainTx",t.CreateSubnetTx="pvm.CreateSubnetTx",t.PvmExportTx="pvm.ExportTx",t.PvmImportTx="pvm.ImportTx",t.RewardValidatorTx="pvm.RewardValidatorTx",t.RemoveSubnetValidatorTx="pvm.RemoveSubnetValidator",t.TransformSubnetTx="pvm.TransformSubnetTx",t.TransferSubnetOwnershipTx="pvm.TransferSubnetOwnershipTx",t.EvmExportTx="evm.ExportTx",t.EvmInput="evm.Input",t.EvmOutput="evm.Output",t.EvmImportTx="evm.ImportTx"}(Pe||(Pe={}));let De=Re=class extends Se{address;_type=Pe.Address;constructor(t){super(),this.address=t}static fromBytes(t){return[new Re(t.slice(0,20)),t.slice(20)]}[l](t,e){return e.stylize(this.toJSON(),"string")}toJSON(t="avax"){return this.toString(t)}static fromString(t){return new Re(m(t))}static fromHex(t){return new Re(ve(t))}toHex(){return Ie(this.address)}toBytes(){return Te(this.address,20)}toString(t="avax"){return g(t,this.address)}value(){return this.toString()}};De=Re=f([t=>{},d("design:paramtypes",[Uint8Array])],De);const Ne={encode:t=>e.encode(n(t,o(t).subarray(-4))),decode:t=>e.decode(t).subarray(0,-4)},_e=(t,e)=>{let r;for(r=0;r<t.length&&r<e.length;r++){const n=t[r],s=e[r];if(n!==s)return n-s}return r===t.length&&r===e.length?0:r===t.length?-1:1};var Fe;let Ve=Fe=class extends Se{idVal;_type=Pe.Id;constructor(t){super(),this.idVal=t}static fromBytes(t){return[new Fe(t.slice(0,32)),t.slice(32)]}static compare(t,e){return _e(t.toBytes(),e.toBytes())}[l](t,e){return e.stylize(this.toString(),"string")}toBytes(){return Te(this.idVal,32)}toJSON(){return this.toString()}toString(){return Ne.encode(this.toBytes())}static fromString(t){return Fe.fromBytes(Ne.decode(t))[0]}static fromHex(t){return new Fe(ve(t))}value(){return this.toString()}};var Ce;Ve=Fe=f([t=>{},d("design:paramtypes",[Uint8Array])],Ve);const Ue="NodeID-";let Me=Ce=class extends Se{idVal;_type=Pe.NodeId;constructor(t){super(),this.idVal=t}static fromBytes(t){return[new Ce(t.slice(0,20)),t.slice(20)]}[l](t,e){return e.stylize(this.toString(),"string")}toBytes(){return Te(this.idVal,20)}toJSON(){return this.toString()}toString(){return Ue+Ne.encode(this.toBytes())}static fromString(t){if(!t.includes(Ue))throw new Error("ID is missing prefix");return this.fromBytes(Ne.decode(t.replace(Ue,"")))[0]}static fromHex(t){return new Ce(ve(t))}value(){return this.toString()}};Me=Ce=f([t=>{},d("design:paramtypes",[Uint8Array])],Me);const qe=new Ve(new Uint8Array(32)),je=new Ve(new Uint8Array(32)),Le="avax",He="cascade",Ze="denali",Ke="everest",Ge="testing",Xe="local",ze="custom",$e="flare",Ye="costwo",Je="localflare",We="songbird",Qe="coston",tr={1:Le,2:He,3:Ze,4:Ke,10:Ge,12345:Xe,14:$e,114:Ye,162:Je,5:We,7:Qe},er=t=>tr[t]??ze;var rr,nr=Object.freeze({__proto__:null,CascadeHRP:He,CascadeID:2,CascadeName:"cascade",CostonHRP:Qe,CostonID:7,CostonName:"coston",CostwoHRP:Ye,CostwoID:114,CostwoName:"costwo",DenaliHRP:Ze,DenaliID:3,DenaliName:"denali",EverestHRP:Ke,EverestID:4,EverestName:"everest",FallbackHRP:ze,FlareHRP:$e,FlareID:14,FlareName:"flare",FujiHRP:"fuji",FujiID:5,FujiName:"fuji",LocalFlareHRP:Je,LocalFlareID:162,LocalFlareName:"localflare",LocalHRP:Xe,LocalID:12345,LocalName:"local",MainnetHRP:Le,MainnetID:1,MainnetName:"mainnet",NetworkIDToHRP:tr,PlatformChainID:je,PrimaryNetworkID:qe,SongbirdHRP:We,SongbirdID:5,SongbirdName:"songbird",TestnetID:5,TestnetName:"testnet",UnitTestHRP:Ge,UnitTestID:10,UnitTestName:"testing",getHRP:er});class sr{getVM(){return this.vm}}class ar extends sr{getInputs(){return this.baseTx?.inputs??[]}getBlockchainId(){return this.baseTx?.BlockchainId.toString()??""}getSigIndices(){return this.getInputs().map((t=>t.sigIndicies())).filter((t=>void 0!==t))}}let ir=rr=class extends Se{int;_type=Pe.Int;constructor(t){super(),this.int=t}static fromBytes(t){return[new rr(Be(t.slice(0,4))),t.slice(4)]}[l](){return this.value()}toJSON(){return this.int}toBytes(){return Te(ve(this.int.toString(16)),4)}value(){return this.int}};ir=rr=f([t=>{},d("design:paramtypes",[Number])],ir);const or=t=>new ir(t).toBytes(),cr=(t,e,r)=>ur(t,e.fromBytes,r),ur=(t,e,r)=>{let n;[n,t]=ir.fromBytes(t);const s=[];for(let a=0;a<n.value();a++){if(0===t.length)throw new Error("not enough bytes");let n;[n,t]=e(t,r),s.push(n)}return[s,t]},fr=t=>({fromBytes:(e,r)=>cr(e,t,r)}),dr={fromBytes:(t,e)=>{if(!e)throw new Error("codec required when using unpackCodecList");return ur(t,e.UnpackPrefix,e)}},lr=(t,e)=>n(or(t.length),...t.map((t=>t.toBytes(e))));function pr(t,e,r){return[...e.map((e=>{let n;if(!t.length)throw new Error("not enough bytes");return[n,t]=e.fromBytes(t,r),n})),t]}function hr(t,e){return n(...t.map((t=>Array.isArray(t)?lr(t,e):t.toBytes(e))))}function mr(t,...e){return hr(e,t)}var br;let gr=br=class extends Se{bigint;_type=Pe.BigIntPr;constructor(t){super(),this.bigint=t}[l](){return this.bigint}static fromBytes(t){return[new br(xe(t.slice(0,8))),t.slice(8)]}toJSON(){return this.bigint.toString()}toBytes(){return Te(ve(this.bigint.toString(16)),8)}value(){return this.bigint}};var yr;gr=br=f([t=>{},d("design:paramtypes",[BigInt])],gr);let wr=yr=class extends Se{byte;_type=Pe.Byte;constructor(t){super(),this.byte=t}static fromBytes(t){return[new yr(t.slice(0,1)),t.slice(1)]}toJSON(){return Ie(this.byte)}toBytes(){return this.byte}};var xr;wr=yr=f([t=>{},d("design:paramtypes",[Uint8Array])],wr);let Br=xr=class extends Se{bytes;_type=Pe.Bytes;constructor(t){super(),this.bytes=t}toString(t="utf8"){return r(t,this.bytes)}toJSON(){return Ie(this.bytes)}static fromBytes(t){const[e,r]=ir.fromBytes(t);return[new xr(r.slice(0,e.value())),r.slice(e.value())]}toBytes(){return n(or(this.bytes.length),this.bytes)}};var Ir;Br=xr=f([t=>{},d("design:paramtypes",[Uint8Array])],Br);let vr=Ir=class extends Se{short;_type=Pe.Short;constructor(t){super(),this.short=t}static fromBytes(t){return[new Ir(Be(t.slice(0,2))),t.slice(2)]}toJSON(){return this.short.toString()}toBytes(){return Te(ve(this.short.toString(16)),2)}value(){return this.short}};var Tr;vr=Ir=f([t=>{},d("design:paramtypes",[Number])],vr);let Sr=Tr=class extends Se{string;_type=Pe.StringPr;constructor(t){super(),this.string=t}static fromBytes(t){const[e,r]=vr.fromBytes(t);return[new Tr((new TextDecoder).decode(r.slice(0,e.value()))),r.slice(e.value())]}toJSON(){return this.string}toBytes(){return n(Te(ve(this.string.length.toString(16)),2),(new TextEncoder).encode(this.string))}value(){return this.string}};function Or(t){return t._type===Pe.TransferOutput}function Er(t){return t._type===Pe.StakeableLockOut}function Ar(t){return t._type===Pe.OutputOwners}function kr(t){return t._type===Pe.StakeableLockIn}function Pr(t){return t._type===Pe.TransferInput}var Rr;Sr=Tr=f([t=>{},d("design:paramtypes",[String])],Sr);let Dr=Rr=class{sig;_type=Pe.Signature;constructor(t){if(this.sig=t,65!==t.length)throw new Error("incorrect number of bytes for signature")}toJSON(){return i(this.sig)}static fromJSON(t){return new Rr(ye(t))}static fromBytes(t){return[new Rr(t.slice(0,65)),t.slice(65)]}[l](t,e){return e.stylize(this.toString(),"string")}toString(){return Ie(this.sig)}toBytes(){return Te(this.sig,65)}};var Nr;Dr=Rr=f([t=>{},d("design:paramtypes",[Uint8Array])],Dr);let _r=Nr=class{signatures;_type=Pe.Credential;constructor(t){this.signatures=t}static fromBytes(t,e){const[r,n]=cr(t,Dr,e);return[new Nr(r),n]}toJSON(){return this.signatures}static fromJSON(t){return new Nr(t.map((t=>Dr.fromJSON(t))))}setSignature(t,e){if(t>=this.signatures.length)throw new Error(`index ${t} is out of bounds for credential`);this.signatures[t]=new Dr(e)}getSignatures(){return this.signatures.map((t=>t.toString()))}toBytes(t){return lr(this.signatures,t)}};var Fr;_r=Nr=f([t=>{},d("design:paramtypes",[Array])],_r);let Vr=Fr=class{sigIndices;_type=Pe.Input;constructor(t){this.sigIndices=t}static fromNative(t){return new Fr(t.map((t=>new ir(t))))}static fromBytes(t){const[e,r]=pr(t,[fr(ir)]);return[new Fr(e),r]}values(){return this.sigIndices.map((t=>t.value()))}toBytes(t){return lr(this.sigIndices,t)}};function Cr(t){return t.map((t=>new De(t)))}var Ur;Vr=Fr=f([t=>{},d("design:paramtypes",[Array])],Vr);let Mr=Ur=class{locktime;threshold;addrs;_type=Pe.OutputOwners;constructor(t,e,r){this.locktime=t,this.threshold=e,this.addrs=r}static fromNative(t,e=0n,r=1){return new Ur(new gr(e),new ir(r),Cr(t))}static fromBytes(t,e){const[r,n,s,a]=pr(t,[gr,ir,fr(De)],e);return[new Ur(r,n,s),a]}toBytes(t){return n(hr([this.locktime,this.threshold],t),lr(this.addrs,t))}equals(t){return this.locktime.value()===t.locktime.value()&&this.threshold.value()===t.threshold.value()&&this.addrs.length===t.addrs.length&&this.addrs.every(((e,r)=>e.value()===t.addrs[r].value()))}};var qr;Mr=Ur=f([t=>{},d("design:paramtypes",[gr,ir,Array])],Mr);let jr=qr=class{outputOwners;_type=Pe.SecpMintOutput;constructor(t){this.outputOwners=t}static fromBytes(t,e){let r;return[r,t]=Mr.fromBytes(t,e),[new qr(r),t]}toBytes(t){return this.outputOwners.toBytes(t)}};var Lr;jr=qr=f([t=>{},d("design:paramtypes",[Mr])],jr);let Hr=Lr=class{amt;outputOwners;_type=Pe.TransferOutput;constructor(t,e){this.amt=t,this.outputOwners=e}amount(){return this.amt.value()}getLocktime(){return this.outputOwners.locktime.value()}getOwners(){return this.outputOwners.addrs.map((t=>t.toBytes()))}getThreshold(){return this.outputOwners.threshold.value()}static fromBytes(t){const[e,r,n]=pr(t,[gr,Mr]);return[new Lr(e,r),n]}toBytes(t){return hr([this.amt,this.outputOwners],t)}};var Zr;Hr=Lr=f([t=>{},d("design:paramtypes",[gr,Mr])],Hr);let Kr=Zr=class{input;mintOutput;transferOutput;_type=Pe.SecpMintOperation;constructor(t,e,r){this.input=t,this.mintOutput=e,this.transferOutput=r}static fromBytes(t){const[e,r,n,s]=pr(t,[Vr,jr,Hr]);return[new Zr(e,r,n),s]}toBytes(t){return n(this.input.toBytes(t),this.mintOutput.toBytes(t),this.transferOutput.toBytes(t))}};var Gr;Kr=Zr=f([t=>{},d("design:paramtypes",[Vr,jr,Hr])],Kr);let Xr=Gr=class{outputOwners;_type=Pe.OutputOwnersList;constructor(t){this.outputOwners=t}static fromBytes(t,e){const[r,n]=cr(t,Mr,e);return[new Gr(r),n]}toBytes(t){return lr(this.outputOwners,t)}};var zr;Xr=Gr=f([t=>{},d("design:paramtypes",[Array])],Xr);let $r=zr=class{amt;input;_type=Pe.TransferInput;constructor(t,e){this.amt=t,this.input=e}static fromBytes(t){const[e,r,n]=pr(t,[gr,Vr]);return[new zr(e,r),n]}static fromNative(t,e){return new zr(new gr(t),Vr.fromNative(e))}sigIndicies(){return this.input.values()}amount(){return this.amt.value()}toBytes(t){return hr([this.amt,this.input],t)}};$r=zr=f([t=>{},d("design:paramtypes",[gr,Vr])],$r);const Yr=Object.freeze([$r,jr,Hr,Kr,_r]);var Jr;let Wr=Jr=class{txID;outputIdx;_type=Pe.UTXOID;constructor(t,e){this.txID=t,this.outputIdx=e}static fromBytes(t,e){const[r,n,s]=pr(t,[Ve,ir],e);return[new Jr(r,n),s]}static fromNative(t,e){return new Jr(Ve.fromString(t),new ir(e))}static compare(t,e){const r=Ve.compare(t.txID,e.txID);return 0!==r?r:t.outputIdx.value()-e.outputIdx.value()}toBytes(t){return hr([this.txID,this.outputIdx],t)}ID(){return Ne.encode(o(n(new gr(BigInt(this.outputIdx.value())).toBytes(),this.txID.toBytes())))}};var Qr;Wr=Jr=f([t=>{},d("design:paramtypes",[Ve,ir])],Wr);let tn=Qr=class{utxoID;assetId;input;_type=Pe.TransferableInput;constructor(t,e,r){this.utxoID=t,this.assetId=e,this.input=r}static fromBytes(t,e){const[r,n,s]=pr(t,[Wr,Ve]),[a,i]=e.UnpackPrefix(s);return[new Qr(r,n,a),i]}static fromNative(t,e,r,n,s){return new Qr(Wr.fromNative(t,e),Ve.fromString(r),new $r(new gr(n),new Vr(s.map((t=>new ir(t))))))}static fromUtxoAndSigindicies(t,e){const r=t.output;if(!Or(r))throw new Error("utxo.output must be Transferout");return new Qr(t.utxoId,t.assetId,$r.fromNative(r.amount(),e))}sigIndicies(){const t=this.input;if(Pr(t))return t.sigIndicies();if(kr(t)){const e=t.transferableInput;if(Pr(e))return e.sigIndicies()}throw new Error("Input must be TransferInput or StakeableLockIn")}static compare(t,e){return Wr.compare(t.utxoID,e.utxoID)}amount(){return this.input.amount()}getAssetId(){return this.assetId.toString()}toBytes(t){return n(hr([this.utxoID,this.assetId],t),t.PackPrefix(this.input))}};var en;tn=Qr=f([t=>{},d("design:paramtypes",[Wr,Ve,Object])],tn);let rn=en=class{assetId;output;_type=Pe.TransferableOutput;constructor(t,e){this.assetId=t,this.output=e}static fromNative(t,e,r,n,s){return new en(Ve.fromString(t),new Hr(new gr(e),Mr.fromNative(r,n,s)))}static fromBytes(t,e){const[r,n]=pr(t,[Ve],e),[s,a]=e.UnpackPrefix(n);return[new en(r,s),a]}getAssetId(){return this.assetId.toString()}amount(){return this.output.amount()}toBytes(t){return n(hr([this.assetId],t),t.PackPrefix(this.output))}};var nn;rn=en=f([t=>{},d("design:paramtypes",[Ve