@notabene/verify-proof 1.0.0-preview.6 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bitcoin.d.ts +1 -11
- package/dist/eth.d.ts +3 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1 -1
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/solana.d.ts +1 -1
- package/package.json +8 -11
- package/src/bitcoin.ts +115 -12
- package/src/eth.ts +24 -10
- package/src/index.ts +1 -1
- package/src/solana.ts +4 -7
- package/src/tests/bitcoin.test.ts +34 -68
- package/src/tests/eth.test.ts +3 -2
- package/src/tests/index.test.ts +57 -45
- package/src/tests/solana.test.ts +9 -8
package/dist/index.umd.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@notabene/javascript-sdk/src/types"),require("bitcoinjs-message"),require("viem"),require("@solana/web3.js"),require("tweetnacl"),require("@stablelib/base64")):"function"==typeof define&&define.amd?define(["exports","@notabene/javascript-sdk/src/types","bitcoinjs-message","viem","@solana/web3.js","tweetnacl","@stablelib/base64"],t):t((e||self).verifyProof={},e.types,e.bitcoinjsMessage,e.viem,e.web3_js,e.tweetnacl,e.base64)}(this,function(e,t,r,s,o,a,n){function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,t}var c,f=/*#__PURE__*/u(r),l=/*#__PURE__*/i(a);function P(){return P=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)({}).hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},P.apply(null,arguments)}!function(e){e.LEGACY="Legacy",e.NATIVE="Native SegWit",e.SEGWIT="SegWit",e.P2SH_SEGWIT="p2sh",e.BCH="Bitcoin Cash",e.ETHEREUM="Ethereum",e.DOGECOIN="Dogecoin",e.UNKNOWN="Unknown"}(c||(c={})),e.verifyProof=function(e){try{switch(e.type){case t.ProofTypes.SelfDeclaration:return Promise.resolve(P({},e,{status:e.confirmed?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}));case t.ProofTypes.Screenshot:return Promise.resolve(P({},e,{status:e.url?t.ProofStatus.FLAGGED:t.ProofStatus.FAILED}));case t.ProofTypes.EIP191:return Promise.resolve(function(e){try{var r=e.address.split(/:/),o=r[2];return"eip155"!==r[0]?Promise.resolve(P({},e,{status:t.ProofStatus.FAILED})):Promise.resolve(s.verifyMessage({address:o,message:e.attestation,signature:e.proof})).then(function(r){return P({},e,{status:r?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED})})}catch(e){return Promise.reject(e)}}(e));case t.ProofTypes.ED25519:return Promise.resolve(function(e){try{var r=e.address.split(/:/),s=r[2];if("solana"!==r[0])return Promise.resolve(P({},e,{status:t.ProofStatus.FAILED}));try{var a=new o.PublicKey(s),i=(new TextEncoder).encode(e.attestation),u=n.decode(e.proof),c=l.default.sign.detached.verify(i,u,a.toBytes());return Promise.resolve(P({},e,{status:c?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}))}catch(r){return Promise.resolve(P({},e,{status:t.ProofStatus.FAILED}))}}catch(e){return Promise.reject(e)}}(e));case t.ProofTypes.EIP712:case t.ProofTypes.BIP137:return Promise.resolve(function(e){try{var r=e.address.split(/:/),s=r[2];if("bip122"!==r[0])return Promise.resolve(P({},e,{status:t.ProofStatus.FAILED}));try{var o=[c.SEGWIT,c.NATIVE].includes(function(e){if(e.match("^(bc1|tb1|ltc1).*"))return c.NATIVE;if(e.match("^[32M].*"))return c.SEGWIT;if(e.match("^[1nmL].*"))return c.LEGACY;if(e.match("^(D).*"))return c.DOGECOIN;throw new Error("INVALID ADDRESS: ".concat(e).concat(" is not a valid or a supported address"))}(s)),a=f.verify(e.attestation,s,e.proof,void 0,o);return Promise.resolve(P({},e,{status:a?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}))}catch(r){return Promise.resolve(P({},e,{status:t.ProofStatus.FAILED}))}}catch(e){return Promise.reject(e)}}(e))}return Promise.resolve(e)}catch(e){return Promise.reject(e)}}});
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@notabene/javascript-sdk"),require("bech32"),require("@bitauth/libauth"),require("varuint-bitcoin"),require("@stablelib/base64"),require("tweetnacl"),require("bs58")):"function"==typeof define&&define.amd?define(["exports","@notabene/javascript-sdk","bech32","@bitauth/libauth","varuint-bitcoin","@stablelib/base64","tweetnacl","bs58"],t):t((e||self).verifyProof={},e.javascriptSdk,e.bech32,e.libauth,e.varuintBitcoin,e.base64,e.tweetnacl,e.bs58)}(this,function(e,t,r,n,i,o,s,a){function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c,f,l=/*#__PURE__*/u(s),h=/*#__PURE__*/u(a);function d(){return d=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},d.apply(null,arguments)}function p(e){var t=r.bech32.toWords(e);return t.unshift(0),r.bech32.encode("bc",t)}!function(e){e.P2WPKH="p2wpkh",e.P2SH_P2WPKH="p2sh(p2wpkh)"}(c||(c={})),function(e){e.LEGACY="Legacy",e.NATIVE="Native SegWit",e.SEGWIT="SegWit",e.P2SH_SEGWIT="p2sh",e.BCH="Bitcoin Cash",e.ETHEREUM="Ethereum",e.DOGECOIN="Dogecoin",e.UNKNOWN="Unknown"}(f||(f={}));class g extends Error{constructor(e,t={}){const r=(()=>{if(t.cause instanceof g){if(t.cause.details)return t.cause.details;if(t.cause.shortMessage)return t.cause.shortMessage}return t.cause?.message?t.cause.message:t.details})(),n=t.cause instanceof g&&t.cause.docsPath||t.docsPath,i=`https://oxlib.sh${n??""}`;super([e||"An error occurred.",...t.metaMessages?["",...t.metaMessages]:[],...r||n?["",r?`Details: ${r}`:void 0,n?`See: ${i}`:void 0]:[]].filter(e=>"string"==typeof e).join("\n"),t.cause?{cause:t.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:"ox@0.1.1"}),this.cause=t.cause,this.details=r,this.docs=i,this.docsPath=n,this.shortMessage=e}walk(e){return w(this,e)}}function w(e,t){return t?.(e)?e:e&&"object"==typeof e&&"cause"in e&&e.cause?w(e.cause,t):t?null:e}function y(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function b(e,...t){if(!((r=e)instanceof Uint8Array||ArrayBuffer.isView(r)&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function m(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")}const E=/* @__PURE__ */(()=>68===new Uint8Array(new Uint32Array([287454020]).buffer)[0])();function v(e){for(let r=0;r<e.length;r++)e[r]=(t=e[r])<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var t}function x(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),b(e),e}class B{clone(){return this._cloneInto()}}const I=/* @__PURE__ */BigInt(2**32-1),S=/* @__PURE__ */BigInt(32);function A(e,t=!1){return t?{h:Number(e&I),l:Number(e>>S&I)}:{h:0|Number(e>>S&I),l:0|Number(e&I)}}function P(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){const{h:o,l:s}=A(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}const O=[],z=[],L=[],U=/* @__PURE__ */BigInt(0),N=/* @__PURE__ */BigInt(1),k=/* @__PURE__ */BigInt(2),T=/* @__PURE__ */BigInt(7),R=/* @__PURE__ */BigInt(256),H=/* @__PURE__ */BigInt(113);for(let e=0,t=N,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],O.push(2*(5*n+r)),z.push((e+1)*(e+2)/2%64);let i=U;for(let e=0;e<7;e++)t=(t<<N^(t>>T)*H)%R,t&k&&(i^=N<<(N<</* @__PURE__ */BigInt(e))-N);L.push(i)}const[j,q]=/* @__PURE__ */P(L,!0),$=(e,t,r)=>r>32?((e,t,r)=>t<<r-32|e>>>64-r)(e,t,r):((e,t,r)=>e<<r|t>>>32-r)(e,t,r),F=(e,t,r)=>r>32?((e,t,r)=>e<<r-32|t>>>64-r)(e,t,r):((e,t,r)=>t<<r|e>>>32-r)(e,t,r);class C extends B{constructor(e,t,r,n=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=i,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 o;this.state=new Uint8Array(200),this.state32=(o=this.state,new Uint32Array(o.buffer,o.byteOffset,Math.floor(o.byteLength/4)))}keccak(){E||v(this.state32),function(e,t=24){const r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){const n=(t+8)%10,i=(t+2)%10,o=r[i],s=r[i+1],a=$(o,s,1)^r[n],u=F(o,s,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=a,e[t+r+1]^=u}let t=e[2],i=e[3];for(let r=0;r<24;r++){const n=z[r],o=$(t,i,n),s=F(t,i,n),a=O[r];t=e[a],i=e[a+1],e[a]=o,e[a+1]=s}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=j[n],e[1]^=q[n]}r.fill(0)}(this.state32,this.rounds),E||v(this.state32),this.posOut=0,this.pos=0}update(e){m(this);const{blockLen:t,state:r}=this,n=(e=x(e)).length;for(let i=0;i<n;){const o=Math.min(t-this.pos,n-i);for(let t=0;t<o;t++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,128&t&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){m(this,!1),b(e),this.finish();const t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+o),n),this.posOut+=o,n+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return y(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(function(e,t){b(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:o}=this;return e||(e=new C(t,r,n,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=o,e.destroyed=this.destroyed,e}}const D=/* @__PURE__ */(()=>function(e){const t=t=>e().update(x(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}(()=>new C(136,1,32)))(),V=/* @__PURE__ */BigInt(0),M=/* @__PURE__ */BigInt(1),_=/* @__PURE__ */BigInt(2);function K(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name}function Z(e){if(!K(e))throw new Error("Uint8Array expected")}function G(e,t){if("boolean"!=typeof t)throw new Error(e+" boolean expected, got "+t)}const W=/* @__PURE__ */Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Y(e){Z(e);let t="";for(let r=0;r<e.length;r++)t+=W[e[r]];return t}function X(e){const t=e.toString(16);return 1&t.length?"0"+t:t}function J(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);return""===e?V:BigInt("0x"+e)}function Q(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function ee(e){if("string"!=typeof e)throw new Error("hex string expected, got "+typeof e);const t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const n=new Uint8Array(r);for(let t=0,i=0;t<r;t++,i+=2){const r=Q(e.charCodeAt(i)),o=Q(e.charCodeAt(i+1));if(void 0===r||void 0===o)throw new Error('hex string expected, got non-hex character "'+(e[i]+e[i+1])+'" at index '+i);n[t]=16*r+o}return n}function te(e){return J(Y(e))}function re(e){return Z(e),J(Y(Uint8Array.from(e).reverse()))}function ne(e,t){return ee(e.toString(16).padStart(2*t,"0"))}function ie(e,t){return ne(e,t).reverse()}function oe(e,t,r){let n;if("string"==typeof t)try{n=ee(t)}catch(t){throw new Error(e+" must be hex string or Uint8Array, cause: "+t)}else{if(!K(t))throw new Error(e+" must be hex string or Uint8Array");n=Uint8Array.from(t)}const i=n.length;if("number"==typeof r&&i!==r)throw new Error(e+" of length "+r+" expected, got "+i);return n}function se(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];Z(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}const ae=e=>"bigint"==typeof e&&V<=e;function ue(e,t,r){return ae(e)&&ae(t)&&ae(r)&&t<=e&&e<r}function ce(e,t,r,n){if(!ue(t,r,n))throw new Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function fe(e){let t;for(t=0;e>V;e>>=M,t+=1);return t}const le=e=>(_<<BigInt(e-1))-M,he=e=>new Uint8Array(e),de=e=>Uint8Array.from(e);function pe(e,t,r){if("number"!=typeof e||e<2)throw new Error("hashLen must be a number");if("number"!=typeof t||t<2)throw new Error("qByteLen must be a number");if("function"!=typeof r)throw new Error("hmacFn must be a function");let n=he(e),i=he(e),o=0;const s=()=>{n.fill(1),i.fill(0),o=0},a=(...e)=>r(i,n,...e),u=(e=he())=>{i=a(de([0]),e),n=a(),0!==e.length&&(i=a(de([1]),e),n=a())},c=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let e=0;const r=[];for(;e<t;){n=a();const t=n.slice();r.push(t),e+=n.length}return se(...r)};return(e,t)=>{let r;for(s(),u(e);!(r=t(c()));)u();return s(),r}}const ge={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||K(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function we(e,t,r={}){const n=(t,r,n)=>{const i=ge[r];if("function"!=typeof i)throw new Error("invalid validator function");const o=e[t];if(!(n&&void 0===o||i(o,e)))throw new Error("param "+String(t)+" is invalid. Expected "+r+", got "+o)};for(const[e,r]of Object.entries(t))n(e,r,!1);for(const[e,t]of Object.entries(r))n(e,t,!0);return e}function ye(e){const t=new WeakMap;return(r,...n)=>{const i=t.get(r);if(void 0!==i)return i;const o=e(r,...n);return t.set(r,o),o}}var be={__proto__:null,isBytes:K,abytes:Z,abool:G,bytesToHex:Y,numberToHexUnpadded:X,hexToNumber:J,hexToBytes:ee,bytesToNumberBE:te,bytesToNumberLE:re,numberToBytesBE:ne,numberToBytesLE:ie,numberToVarBytesBE:function(e){return ee(X(e))},ensureBytes:oe,concatBytes:se,equalBytes:function(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return 0===r},utf8ToBytes:function(e){if("string"!=typeof e)throw new Error("string expected");return new Uint8Array((new TextEncoder).encode(e))},inRange:ue,aInRange:ce,bitLen:fe,bitGet:function(e,t){return e>>BigInt(t)&M},bitSet:function(e,t,r){return e|(r?M:V)<<BigInt(t)},bitMask:le,createHmacDrbg:pe,validateObject:we,notImplemented:()=>{throw new Error("not implemented")},memoized:ye};function me(e,t,r){return JSON.stringify(e,(e,r)=>"function"==typeof t?t(e,r):"bigint"==typeof r?r.toString()+"#__bigint":r,r)}function Ee(e,t){if(Ce(e)>t)throw new Ve({givenSize:Ce(e),maxSize:t})}function ve(e){return e>=48&&e<=57?e-48:e>=65&&e<=70?e-55:e>=97&&e<=102?e-87:void 0}function xe(e,t){if(ke(e)>t)throw new je({givenSize:ke(e),maxSize:t})}function Be(e,t={}){const{dir:r,size:n=32}=t;if(0===n)return e;const i=e.replace("0x","");if(i.length>2*n)throw new $e({size:Math.ceil(i.length/2),targetSize:n,type:"Hex"});return`0x${i["right"===r?"padEnd":"padStart"](2*n,"0")}`}const Ie=/*#__PURE__*/new TextEncoder,Se=/*#__PURE__*/Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ae(...e){return`0x${e.reduce((e,t)=>e+t.replace("0x",""),"")}`}function Pe(e){return e instanceof Uint8Array?Oe(e):Array.isArray(e)?Oe(new Uint8Array(e)):e}function Oe(e,t={}){let r="";for(let t=0;t<e.length;t++)r+=Se[e[t]];const n=`0x${r}`;return"number"==typeof t.size?(xe(n,t.size),Ue(n,t.size)):n}function ze(e,t={}){const{signed:r,size:n}=t,i=BigInt(e);let o;n?o=r?(1n<<8n*BigInt(n)-1n)-1n:2n**(8n*BigInt(n))-1n:"number"==typeof e&&(o=BigInt(Number.MAX_SAFE_INTEGER));const s="bigint"==typeof o&&r?-o-1n:0;if(o&&i>o||i<s){const t="bigint"==typeof e?"n":"";throw new Te({max:o?`${o}${t}`:void 0,min:`${s}${t}`,signed:r,size:n,value:`${e}${t}`})}const a=`0x${(r&&i<0?(1n<<BigInt(8*n))+BigInt(i):i).toString(16)}`;return n?function(e,t){return Be(e,{dir:"left",size:t})}(a,n):a}function Le(e,t={}){return Oe(Ie.encode(e),t)}function Ue(e,t){return Be(e,{dir:"right",size:t})}function Ne(e,t,r,n={}){const{strict:i}=n;!function(e,t){if("number"==typeof t&&t>0&&t>ke(e)-1)throw new qe({offset:t,position:"start",size:ke(e)})}(e,t);const o=`0x${e.replace("0x","").slice(2*(t??0),2*(r??e.length))}`;return i&&function(e,t,r){if("number"==typeof t&&"number"==typeof r&&ke(e)!==r-t)throw new qe({offset:r,position:"end",size:ke(e)})}(o,t,r),o}function ke(e){return Math.ceil((e.length-2)/2)}class Te extends g{constructor({max:e,min:t,signed:r,size:n,value:i}){super(`Number \`${i}\` is not in safe${n?` ${8*n}-bit`:""}${r?" signed":" unsigned"} integer range ${e?`(\`${t}\` to \`${e}\`)`:`(above \`${t}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Re extends g{constructor(e){super(`Value \`${"object"==typeof e?me(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class He extends g{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class je extends g{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class qe extends g{constructor({offset:e,position:t,size:r}){super(`Slice ${"start"===t?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class $e extends g{constructor({size:e,targetSize:t,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}const Fe=/*#__PURE__*/new TextEncoder;function Ce(e){return e.length}class De extends g{constructor(e){super(`Value \`${"object"==typeof e?me(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}}class Ve extends g{constructor({givenSize:e,maxSize:t}){super(`Size cannot exceed \`${t}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class Me extends g{constructor({size:e,targetSize:t,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}function _e(e,t={}){const{as:r=("string"==typeof e?"Hex":"Bytes")}=t,n=D(function(e){return e instanceof Uint8Array?e:"string"==typeof e?function(e,t={}){const{size:r}=t;let n=e;r&&(xe(e,r),n=Ue(e,r));let i=n.slice(2);i.length%2&&(i=`0${i}`);const o=i.length/2,s=new Uint8Array(o);for(let e=0,t=0;e<o;e++){const r=ve(i.charCodeAt(t++)),n=ve(i.charCodeAt(t++));if(void 0===r||void 0===n)throw new g(`Invalid byte sequence ("${i[t-2]}${i[t-1]}" in "${i}").`);s[e]=16*r+n}return s}(e):function(e){return e instanceof Uint8Array?e:new Uint8Array(e)}(e)}(e));return"Bytes"===r?n:Oe(n)}class Ke extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const t=super.get(e);return super.has(e)&&void 0!==t&&(this.delete(e),super.set(e,t)),t}set(e,t){if(super.set(e,t),this.maxSize&&this.size>this.maxSize){const e=this.keys().next().value;e&&this.delete(e)}return this}}const Ze=/*#__PURE__*/new Ke(8192);function Ge(e,t={}){const{compressed:r}=t,{prefix:n,x:i,y:o}=e;if(!1===r||"bigint"==typeof i&&"bigint"==typeof o){if(4!==n)throw new Xe({prefix:n,cause:new Qe})}else{if(!0!==r&&("bigint"!=typeof i||void 0!==o))throw new Ye({publicKey:e});if(3!==n&&2!==n)throw new Xe({prefix:n,cause:new Je})}}function We(e){if(132!==e.length&&130!==e.length&&68!==e.length)throw new et({publicKey:e});return 130===e.length?{prefix:4,x:BigInt(Ne(e,0,32)),y:BigInt(Ne(e,32,64))}:132===e.length?{prefix:Number(Ne(e,0,1)),x:BigInt(Ne(e,1,33)),y:BigInt(Ne(e,33,65))}:{prefix:Number(Ne(e,0,1)),x:BigInt(Ne(e,1,33))}}class Ye extends g{constructor({publicKey:e}){super(`Value \`${me(e)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"})}}class Xe extends g{constructor({prefix:e,cause:t}){super(`Prefix "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class Je extends g{constructor(){super("Prefix must be 2 or 3 for compressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"})}}class Qe extends g{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class et extends g{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${ke(Pe(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}const tt=/^0x[a-fA-F0-9]{40}$/;function rt(e,t={}){const{strict:r=!0}=t;if(!tt.test(e))throw new it({address:e,cause:new ot});if(r){if(e.toLowerCase()===e)return;if(nt(e)!==e)throw new it({address:e,cause:new st})}}function nt(e){if(Ze.has(e))return Ze.get(e);rt(e,{strict:!1});const t=e.substring(2).toLowerCase(),r=_e(function(e,t={}){const{size:r}=t,n=Fe.encode(e);return"number"==typeof r?(Ee(n,r),function(e,t){return function(e,t={}){const{dir:r,size:n=32}=t;if(0===n)return e;if(e.length>n)throw new Me({size:e.length,targetSize:n,type:"Bytes"});const i=new Uint8Array(n);for(let t=0;t<n;t++){const o="right"===r;i[o?t:n-t-1]=e[o?t:e.length-t-1]}return i}(e,{dir:"right",size:t})}(n,r)):n}(t),{as:"Bytes"}),n=t.split("");for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&n[e]&&(n[e]=n[e].toUpperCase()),(15&r[e>>1])>=8&&n[e+1]&&(n[e+1]=n[e+1].toUpperCase());const i=`0x${n.join("")}`;return Ze.set(e,i),i}class it extends g{constructor({address:e,cause:t}){super(`Address "${e}" is invalid.`,{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class ot extends g{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class st extends g{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}function at(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ut(e,...t){if(!((r=e)instanceof Uint8Array||ArrayBuffer.isView(r)&&"Uint8Array"===r.constructor.name))throw new Error("Uint8Array expected");var r;if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function ct(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")}const ft="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,lt=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),ht=(e,t)=>e<<32-t|e>>>t;function dt(e){return"string"==typeof e&&(e=function(e){if("string"!=typeof e)throw new Error("utf8ToBytes expected string, got "+typeof e);return new Uint8Array((new TextEncoder).encode(e))}(e)),ut(e),e}class pt{clone(){return this._cloneInto()}}function gt(e){const t=t=>e().update(dt(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function wt(e=32){if(ft&&"function"==typeof ft.getRandomValues)return ft.getRandomValues(new Uint8Array(e));if(ft&&"function"==typeof ft.randomBytes)return ft.randomBytes(e);throw new Error("crypto.getRandomValues must be defined")}const yt=(e,t,r)=>e&t^e&r^t&r;class bt extends pt{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=lt(this.buffer)}update(e){ct(this);const{view:t,buffer:r,blockLen:n}=this,i=(e=dt(e)).length;for(let o=0;o<i;){const s=Math.min(n-this.pos,i-o);if(s!==n)r.set(e.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(t,0),this.pos=0);else{const t=lt(e);for(;n<=i-o;o+=n)this.process(t,o)}}return this.length+=e.length,this.roundClean(),this}digestInto(e){ct(this),function(e,t){ut(e);const r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}(e,this),this.finished=!0;const{buffer:t,view:r,blockLen:n,isLE:i}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>n-o&&(this.process(r,0),o=0);for(let e=o;e<n;e++)t[e]=0;!function(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);const i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),u=n?0:4;e.setUint32(t+(n?4:0),s,n),e.setUint32(t+u,a,n)}(r,n-8,BigInt(8*this.length),i),this.process(r,0);const s=lt(e),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=a/4,c=this.get();if(u>c.length)throw new Error("_sha2: outputLen bigger than state");for(let e=0;e<u;e++)s.setUint32(4*e,c[e],i)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:r,length:n,finished:i,destroyed:o,pos:s}=this;return e.length=n,e.pos=s,e.finished=i,e.destroyed=o,n%t&&e.buffer.set(r),e}}const mt=/* @__PURE__ */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]),Et=/* @__PURE__ */new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),vt=/* @__PURE__ */new Uint32Array(64);class xt extends bt{constructor(){super(64,32,8,!1),this.A=0|Et[0],this.B=0|Et[1],this.C=0|Et[2],this.D=0|Et[3],this.E=0|Et[4],this.F=0|Et[5],this.G=0|Et[6],this.H=0|Et[7]}get(){const{A:e,B:t,C:r,D:n,E:i,F:o,G:s,H:a}=this;return[e,t,r,n,i,o,s,a]}set(e,t,r,n,i,o,s,a){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|i,this.F=0|o,this.G=0|s,this.H=0|a}process(e,t){for(let r=0;r<16;r++,t+=4)vt[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){const t=vt[e-15],r=vt[e-2],n=ht(t,7)^ht(t,18)^t>>>3,i=ht(r,17)^ht(r,19)^r>>>10;vt[e]=i+vt[e-7]+n+vt[e-16]|0}let{A:r,B:n,C:i,D:o,E:s,F:a,G:u,H:c}=this;for(let e=0;e<64;e++){const t=c+(ht(s,6)^ht(s,11)^ht(s,25))+((f=s)&a^~f&u)+mt[e]+vt[e]|0,l=(ht(r,2)^ht(r,13)^ht(r,22))+yt(r,n,i)|0;c=u,u=a,a=s,s=o+t|0,o=i,i=n,n=r,r=t+l|0}var f;r=r+this.A|0,n=n+this.B|0,i=i+this.C|0,o=o+this.D|0,s=s+this.E|0,a=a+this.F|0,u=u+this.G|0,c=c+this.H|0,this.set(r,n,i,o,s,a,u,c)}roundClean(){vt.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const Bt=/* @__PURE__ */gt(()=>new xt);class It extends pt{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,function(e){if("function"!=typeof e||"function"!=typeof e.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");at(e.outputLen),at(e.blockLen)}(e);const r=dt(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,i=new Uint8Array(n);i.set(r.length>n?e.create().update(r).digest():r);for(let e=0;e<i.length;e++)i[e]^=54;this.iHash.update(i),this.oHash=e.create();for(let e=0;e<i.length;e++)i[e]^=106;this.oHash.update(i),i.fill(0)}update(e){return ct(this),this.iHash.update(e),this}digestInto(e){ct(this),ut(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:r,finished:n,destroyed:i,blockLen:o,outputLen:s}=this;return e.finished=n,e.destroyed=i,e.blockLen=o,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const St=(e,t,r)=>new It(e,t).update(r).digest();St.create=(e,t)=>new It(e,t);const At=BigInt(0),Pt=BigInt(1),Ot=/* @__PURE__ */BigInt(2),zt=/* @__PURE__ */BigInt(3),Lt=/* @__PURE__ */BigInt(4),Ut=/* @__PURE__ */BigInt(5),Nt=/* @__PURE__ */BigInt(8);function kt(e,t){const r=e%t;return r>=At?r:t+r}function Tt(e,t,r){if(t<At)throw new Error("invalid exponent, negatives unsupported");if(r<=At)throw new Error("invalid modulus");if(r===Pt)return At;let n=Pt;for(;t>At;)t&Pt&&(n=n*e%r),e=e*e%r,t>>=Pt;return n}function Rt(e,t,r){let n=e;for(;t-- >At;)n*=n,n%=r;return n}function Ht(e,t){if(e===At)throw new Error("invert: expected non-zero number");if(t<=At)throw new Error("invert: expected positive modulus, got "+t);let r=kt(e,t),n=t,i=At,o=Pt;for(;r!==At;){const e=n%r,t=i-o*(n/r);n=r,r=e,i=o,o=t}if(n!==Pt)throw new Error("invert: does not exist");return kt(i,t)}const jt=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function qt(e,t){const r=void 0!==t?t:e.toString(2).length;return{nBitLength:r,nByteLength:Math.ceil(r/8)}}function $t(e,t,r=!1,n={}){if(e<=At)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:i,nByteLength:o}=qt(e,t);if(o>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let s;const a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:le(i),ZERO:At,ONE:Pt,create:t=>kt(t,e),isValid:t=>{if("bigint"!=typeof t)throw new Error("invalid field element: expected bigint, got "+typeof t);return At<=t&&t<e},is0:e=>e===At,isOdd:e=>(e&Pt)===Pt,neg:t=>kt(-t,e),eql:(e,t)=>e===t,sqr:t=>kt(t*t,e),add:(t,r)=>kt(t+r,e),sub:(t,r)=>kt(t-r,e),mul:(t,r)=>kt(t*r,e),pow:(e,t)=>function(e,t,r){if(r<At)throw new Error("invalid exponent, negatives unsupported");if(r===At)return e.ONE;if(r===Pt)return t;let n=e.ONE,i=t;for(;r>At;)r&Pt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Pt;return n}(a,e,t),div:(t,r)=>kt(t*Ht(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>Ht(t,e),sqrt:n.sqrt||(t=>(s||(s=function(e){if(e%Lt===zt){const t=(e+Pt)/Lt;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw new Error("Cannot find square root");return n}}if(e%Nt===Ut){const t=(e-Ut)/Nt;return function(e,r){const n=e.mul(r,Ot),i=e.pow(n,t),o=e.mul(r,i),s=e.mul(e.mul(o,Ot),i),a=e.mul(o,e.sub(s,e.ONE));if(!e.eql(e.sqr(a),r))throw new Error("Cannot find square root");return a}}return function(e){const t=(e-Pt)/Ot;let r,n,i;for(r=e-Pt,n=0;r%Ot===At;r/=Ot,n++);for(i=Ot;i<e&&Tt(i,t,e)!==e-Pt;i++)if(i>1e3)throw new Error("Cannot find square root: likely non-prime P");if(1===n){const t=(e+Pt)/Lt;return function(e,r){const n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw new Error("Cannot find square root");return n}}const o=(r+Pt)/Ot;return function(e,s){if(e.pow(s,t)===e.neg(e.ONE))throw new Error("Cannot find square root");let a=n,u=e.pow(e.mul(e.ONE,i),r),c=e.pow(s,o),f=e.pow(s,r);for(;!e.eql(f,e.ONE);){if(e.eql(f,e.ZERO))return e.ZERO;let t=1;for(let r=e.sqr(f);t<a&&!e.eql(r,e.ONE);t++)r=e.sqr(r);const r=e.pow(u,Pt<<BigInt(a-t-1));u=e.sqr(r),c=e.mul(c,r),f=e.mul(f,u),a=t}return c}}(e)}(e)),s(a,t))),invertBatch:e=>function(e,t){const r=new Array(t.length),n=t.reduce((t,n,i)=>e.is0(n)?t:(r[i]=t,e.mul(t,n)),e.ONE),i=e.inv(n);return t.reduceRight((t,n,i)=>e.is0(n)?t:(r[i]=e.mul(t,r[i]),e.mul(t,n)),i),r}(a,e),cmov:(e,t,r)=>r?t:e,toBytes:e=>r?ie(e,o):ne(e,o),fromBytes:e=>{if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);return r?re(e):te(e)}});return Object.freeze(a)}function Ft(e){if("bigint"!=typeof e)throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function Ct(e){const t=Ft(e);return t+Math.ceil(t/2)}const Dt=BigInt(0),Vt=BigInt(1);function Mt(e,t){const r=t.negate();return e?r:t}function _t(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Kt(e,t){return _t(e,t),{windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}}const Zt=new WeakMap,Gt=new WeakMap;function Wt(e){return Gt.get(e)||1}function Yt(e){return we(e.Fp,jt.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"})),we(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...qt(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}function Xt(e){void 0!==e.lowS&&G("lowS",e.lowS),void 0!==e.prehash&&G("prehash",e.prehash)}const{bytesToNumberBE:Jt,hexToBytes:Qt}=be,er={Err:class extends Error{constructor(e=""){super(e)}},_tlv:{encode:(e,t)=>{const{Err:r}=er;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(1&t.length)throw new r("tlv.encode: unpadded data");const n=t.length/2,i=X(n);if(i.length/2&128)throw new r("tlv.encode: long form length too big");const o=n>127?X(i.length/2|128):"";return X(e)+o+i+t},decode(e,t){const{Err:r}=er;let n=0;if(e<0||e>256)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");const i=t[n++];let o=0;if(128&i){const e=127&i;if(!e)throw new r("tlv.decode(long): indefinite length not supported");if(e>4)throw new r("tlv.decode(long): byte length is too big");const s=t.subarray(n,n+e);if(s.length!==e)throw new r("tlv.decode: length bytes not complete");if(0===s[0])throw new r("tlv.decode(long): zero leftmost byte");for(const e of s)o=o<<8|e;if(n+=e,o<128)throw new r("tlv.decode(long): not minimal encoding")}else o=i;const s=t.subarray(n,n+o);if(s.length!==o)throw new r("tlv.decode: wrong value length");return{v:s,l:t.subarray(n+o)}}},_int:{encode(e){const{Err:t}=er;if(e<tr)throw new t("integer: negative integers are not allowed");let r=X(e);if(8&Number.parseInt(r[0],16)&&(r="00"+r),1&r.length)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){const{Err:t}=er;if(128&e[0])throw new t("invalid signature integer: negative");if(0===e[0]&&!(128&e[1]))throw new t("invalid signature integer: unnecessary leading zero");return Jt(e)}},toSig(e){const{Err:t,_int:r,_tlv:n}=er,i="string"==typeof e?Qt(e):e;Z(i);const{v:o,l:s}=n.decode(48,i);if(s.length)throw new t("invalid signature: left bytes after parsing");const{v:a,l:u}=n.decode(2,o),{v:c,l:f}=n.decode(2,u);if(f.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(c)}},hexFromSig(e){const{_tlv:t,_int:r}=er,n=t.encode(2,r.encode(e.r)),i=t.encode(2,r.encode(e.s));return t.encode(48,n+i)}},tr=BigInt(0),rr=BigInt(1);BigInt(2);const nr=BigInt(3);function ir(e){return{hash:e,hmac:(t,...r)=>St(e,t,function(...e){let t=0;for(let r=0;r<e.length;r++){const n=e[r];ut(n),t+=n.length}const r=new Uint8Array(t);for(let t=0,n=0;t<e.length;t++){const i=e[t];r.set(i,n),n+=i.length}return r}(...r)),randomBytes:wt}}BigInt(4);const or=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sr=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ar=BigInt(1),ur=BigInt(2),cr=(e,t)=>(e+t/ur)/t,fr=$t(or,void 0,void 0,{sqrt:function(e){const t=or,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),u=BigInt(88),c=e*e*e%t,f=c*c*e%t,l=Rt(f,r,t)*f%t,h=Rt(l,r,t)*f%t,d=Rt(h,ur,t)*c%t,p=Rt(d,i,t)*d%t,g=Rt(p,o,t)*p%t,w=Rt(g,a,t)*g%t,y=Rt(w,u,t)*w%t,b=Rt(y,a,t)*g%t,m=Rt(b,r,t)*f%t,E=Rt(m,s,t)*p%t,v=Rt(E,n,t)*c%t,x=Rt(v,ur,t);if(!fr.eql(fr.sqr(x),e))throw new Error("Cannot find square root");return x}}),lr=function(e,t){const r=t=>function(e){const t=function(e){const t=Yt(e);return we(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}(e),{Fp:r,n:n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(e){return kt(e,n)}function a(e){return Ht(e,n)}const{ProjectivePoint:u,normPrivateKeyToScalar:c,weierstrassEquation:f,isWithinCurveOrder:l}=function(e){const t=function(e){const t=Yt(e);we(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("invalid 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("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:r}=t,n=$t(t.n,t.nBitLength),i=t.toBytes||((e,t,n)=>{const i=t.toAffine();return se(Uint8Array.from([4]),r.toBytes(i.x),r.toBytes(i.y))}),o=t.fromBytes||(e=>{const t=e.subarray(1);return{x:r.fromBytes(t.subarray(0,r.BYTES)),y:r.fromBytes(t.subarray(r.BYTES,2*r.BYTES))}});function s(e){const{a:n,b:i}=t,o=r.sqr(e),s=r.mul(o,e);return r.add(r.add(s,r.mul(e,n)),i)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function a(e){const{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:i,n:o}=t;if(r&&"bigint"!=typeof e){if(K(e)&&(e=Y(e)),"string"!=typeof e||!r.includes(e.length))throw new Error("invalid private key");e=e.padStart(2*n,"0")}let s;try{s="bigint"==typeof e?e:te(oe("private key",e,n))}catch(t){throw new Error("invalid private key, expected hex or "+n+" bytes, got "+typeof e)}return i&&(s=kt(s,o)),ce("private key",s,rr,o),s}function u(e){if(!(e instanceof l))throw new Error("ProjectivePoint expected")}const c=ye((e,t)=>{const{px:n,py:i,pz:o}=e;if(r.eql(o,r.ONE))return{x:n,y:i};const s=e.is0();null==t&&(t=s?r.ONE:r.inv(o));const a=r.mul(n,t),u=r.mul(i,t),c=r.mul(o,t);if(s)return{x:r.ZERO,y:r.ZERO};if(!r.eql(c,r.ONE))throw new Error("invZ was invalid");return{x:a,y:u}}),f=ye(e=>{if(e.is0()){if(t.allowInfinityPoint&&!r.is0(e.py))return;throw new Error("bad point: ZERO")}const{x:n,y:i}=e.toAffine();if(!r.isValid(n)||!r.isValid(i))throw new Error("bad point: x or y not FE");const o=r.sqr(i),a=s(n);if(!r.eql(o,a))throw new Error("bad point: equation left != right");if(!e.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(e,t,n){if(this.px=e,this.py=t,this.pz=n,null==e||!r.isValid(e))throw new Error("x required");if(null==t||!r.isValid(t))throw new Error("y required");if(null==n||!r.isValid(n))throw new Error("z required");Object.freeze(this)}static fromAffine(e){const{x:t,y:n}=e||{};if(!e||!r.isValid(t)||!r.isValid(n))throw new Error("invalid affine point");if(e instanceof l)throw new Error("projective point not allowed");const i=e=>r.eql(e,r.ZERO);return i(t)&&i(n)?l.ZERO:new l(t,n,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){const t=r.invertBatch(e.map(e=>e.pz));return e.map((e,r)=>e.toAffine(t[r])).map(l.fromAffine)}static fromHex(e){const t=l.fromAffine(o(oe("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return l.BASE.multiply(a(e))}static msm(e,t){return function(e,t,r,n){if(function(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((e,r)=>{if(!(e instanceof t))throw new Error("invalid point at index "+r)})}(r,e),function(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((e,r)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+r)})}(n,t),r.length!==n.length)throw new Error("arrays of points and scalars must have equal length");const i=e.ZERO,o=fe(BigInt(r.length)),s=o>12?o-3:o>4?o-2:o?2:1,a=(1<<s)-1,u=new Array(a+1).fill(i);let c=i;for(let e=Math.floor((t.BITS-1)/s)*s;e>=0;e-=s){u.fill(i);for(let t=0;t<n.length;t++){const i=Number(n[t]>>BigInt(e)&BigInt(a));u[i]=u[i].add(r[t])}let t=i;for(let e=u.length-1,r=i;e>0;e--)r=r.add(u[e]),t=t.add(r);if(c=c.add(t),0!==e)for(let e=0;e<s;e++)c=c.double()}return c}(l,n,e,t)}_setWindowSize(e){d.setWindowSize(this,e)}assertValidity(){f(this)}hasEvenY(){const{y:e}=this.toAffine();if(r.isOdd)return!r.isOdd(e);throw new Error("Field doesn't support isOdd")}equals(e){u(e);const{px:t,py:n,pz:i}=this,{px:o,py:s,pz:a}=e,c=r.eql(r.mul(t,a),r.mul(o,i)),f=r.eql(r.mul(n,a),r.mul(s,i));return c&&f}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){const{a:e,b:n}=t,i=r.mul(n,nr),{px:o,py:s,pz:a}=this;let u=r.ZERO,c=r.ZERO,f=r.ZERO,h=r.mul(o,o),d=r.mul(s,s),p=r.mul(a,a),g=r.mul(o,s);return g=r.add(g,g),f=r.mul(o,a),f=r.add(f,f),u=r.mul(e,f),c=r.mul(i,p),c=r.add(u,c),u=r.sub(d,c),c=r.add(d,c),c=r.mul(u,c),u=r.mul(g,u),f=r.mul(i,f),p=r.mul(e,p),g=r.sub(h,p),g=r.mul(e,g),g=r.add(g,f),f=r.add(h,h),h=r.add(f,h),h=r.add(h,p),h=r.mul(h,g),c=r.add(c,h),p=r.mul(s,a),p=r.add(p,p),h=r.mul(p,g),u=r.sub(u,h),f=r.mul(p,d),f=r.add(f,f),f=r.add(f,f),new l(u,c,f)}add(e){u(e);const{px:n,py:i,pz:o}=this,{px:s,py:a,pz:c}=e;let f=r.ZERO,h=r.ZERO,d=r.ZERO;const p=t.a,g=r.mul(t.b,nr);let w=r.mul(n,s),y=r.mul(i,a),b=r.mul(o,c),m=r.add(n,i),E=r.add(s,a);m=r.mul(m,E),E=r.add(w,y),m=r.sub(m,E),E=r.add(n,o);let v=r.add(s,c);return E=r.mul(E,v),v=r.add(w,b),E=r.sub(E,v),v=r.add(i,o),f=r.add(a,c),v=r.mul(v,f),f=r.add(y,b),v=r.sub(v,f),d=r.mul(p,E),f=r.mul(g,b),d=r.add(f,d),f=r.sub(y,d),d=r.add(y,d),h=r.mul(f,d),y=r.add(w,w),y=r.add(y,w),b=r.mul(p,b),E=r.mul(g,E),y=r.add(y,b),b=r.sub(w,b),b=r.mul(p,b),E=r.add(E,b),w=r.mul(y,E),h=r.add(h,w),w=r.mul(v,E),f=r.mul(m,f),f=r.sub(f,w),w=r.mul(m,y),d=r.mul(v,d),d=r.add(d,w),new l(f,h,d)}subtract(e){return this.add(e.negate())}is0(){return this.equals(l.ZERO)}wNAF(e){return d.wNAFCached(this,e,l.normalizeZ)}multiplyUnsafe(e){const{endo:n,n:i}=t;ce("scalar",e,tr,i);const o=l.ZERO;if(e===tr)return o;if(this.is0()||e===rr)return this;if(!n||d.hasPrecomputes(this))return d.wNAFCachedUnsafe(this,e,l.normalizeZ);let{k1neg:s,k1:a,k2neg:u,k2:c}=n.splitScalar(e),f=o,h=o,p=this;for(;a>tr||c>tr;)a&rr&&(f=f.add(p)),c&rr&&(h=h.add(p)),p=p.double(),a>>=rr,c>>=rr;return s&&(f=f.negate()),u&&(h=h.negate()),h=new l(r.mul(h.px,n.beta),h.py,h.pz),f.add(h)}multiply(e){const{endo:n,n:i}=t;let o,s;if(ce("scalar",e,rr,i),n){const{k1neg:t,k1:i,k2neg:a,k2:u}=n.splitScalar(e);let{p:c,f:f}=this.wNAF(i),{p:h,f:p}=this.wNAF(u);c=d.constTimeNegate(t,c),h=d.constTimeNegate(a,h),h=new l(r.mul(h.px,n.beta),h.py,h.pz),o=c.add(h),s=f.add(p)}else{const{p:t,f:r}=this.wNAF(e);o=t,s=r}return l.normalizeZ([o,s])[0]}multiplyAndAddUnsafe(e,t,r){const n=l.BASE,i=(e,t)=>t!==tr&&t!==rr&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),o=i(this,t).add(i(e,r));return o.is0()?void 0:o}toAffine(e){return c(this,e)}isTorsionFree(){const{h:e,isTorsionFree:r}=t;if(e===rr)return!0;if(r)return r(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:e,clearCofactor:r}=t;return e===rr?this:r?r(l,this):this.multiplyUnsafe(t.h)}toRawBytes(e=!0){return G("isCompressed",e),this.assertValidity(),i(l,this,e)}toHex(e=!0){return G("isCompressed",e),Y(this.toRawBytes(e))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);const h=t.nBitLength,d=(p=l,g=t.endo?Math.ceil(h/2):h,{constTimeNegate:Mt,hasPrecomputes:e=>1!==Wt(e),unsafeLadder(e,t,r=p.ZERO){let n=e;for(;t>Dt;)t&Vt&&(r=r.add(n)),n=n.double(),t>>=Vt;return r},precomputeWindow(e,t){const{windows:r,windowSize:n}=Kt(t,g),i=[];let o=e,s=o;for(let e=0;e<r;e++){s=o,i.push(s);for(let e=1;e<n;e++)s=s.add(o),i.push(s);o=s.double()}return i},wNAF(e,t,r){const{windows:n,windowSize:i}=Kt(e,g);let o=p.ZERO,s=p.BASE;const a=BigInt(2**e-1),u=2**e,c=BigInt(e);for(let e=0;e<n;e++){const n=e*i;let f=Number(r&a);r>>=c,f>i&&(f-=u,r+=Vt);const l=n,h=n+Math.abs(f)-1,d=f<0;0===f?s=s.add(Mt(e%2!=0,t[l])):o=o.add(Mt(d,t[h]))}return{p:o,f:s}},wNAFUnsafe(e,t,r,n=p.ZERO){const{windows:i,windowSize:o}=Kt(e,g),s=BigInt(2**e-1),a=2**e,u=BigInt(e);for(let e=0;e<i;e++){const i=e*o;if(r===Dt)break;let c=Number(r&s);if(r>>=u,c>o&&(c-=a,r+=Vt),0===c)continue;let f=t[i+Math.abs(c)-1];c<0&&(f=f.negate()),n=n.add(f)}return n},getPrecomputes(e,t,r){let n=Zt.get(t);return n||(n=this.precomputeWindow(t,e),1!==e&&Zt.set(t,r(n))),n},wNAFCached(e,t,r){const n=Wt(e);return this.wNAF(n,this.getPrecomputes(n,e,r),t)},wNAFCachedUnsafe(e,t,r,n){const i=Wt(e);return 1===i?this.unsafeLadder(e,t,n):this.wNAFUnsafe(i,this.getPrecomputes(i,e,r),t,n)},setWindowSize(e,t){_t(t,g),Gt.set(e,t),Zt.delete(e)}});var p,g;return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:a,weierstrassEquation:s,isWithinCurveOrder:function(e){return ue(e,rr,t.n)}}}({...t,toBytes(e,t,n){const i=t.toAffine(),o=r.toBytes(i.x),s=se;return G("isCompressed",n),n?s(Uint8Array.from([t.hasEvenY()?2:3]),o):s(Uint8Array.from([4]),o,r.toBytes(i.y))},fromBytes(e){const t=e.length,n=e[0],s=e.subarray(1);if(t!==i||2!==n&&3!==n){if(t===o&&4===n)return{x:r.fromBytes(s.subarray(0,r.BYTES)),y:r.fromBytes(s.subarray(r.BYTES,2*r.BYTES))};throw new Error("invalid Point, expected length of "+i+", or uncompressed "+o+", got "+t)}{const e=te(s);if(!ue(e,rr,r.ORDER))throw new Error("Point is not on curve");const t=f(e);let i;try{i=r.sqrt(t)}catch(e){const t=e instanceof Error?": "+e.message:"";throw new Error("Point is not on curve"+t)}return!(1&~n)!=((i&rr)===rr)&&(i=r.neg(i)),{x:e,y:i}}}}),h=e=>Y(ne(e,t.nByteLength));function d(e){return e>n>>rr}const p=(e,t,r)=>te(e.slice(t,r));class g{constructor(e,t,r){this.r=e,this.s=t,this.recovery=r,this.assertValidity()}static fromCompact(e){const r=t.nByteLength;return e=oe("compactSignature",e,2*r),new g(p(e,0,r),p(e,r,2*r))}static fromDER(e){const{r:t,s:r}=er.toSig(oe("DER",e));return new g(t,r)}assertValidity(){ce("r",this.r,rr,n),ce("s",this.s,rr,n)}addRecoveryBit(e){return new g(this.r,this.s,e)}recoverPublicKey(e){const{r:n,s:i,recovery:o}=this,c=m(oe("msgHash",e));if(null==o||![0,1,2,3].includes(o))throw new Error("recovery id invalid");const f=2===o||3===o?n+t.n:n;if(f>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");const l=u.fromHex((1&o?"03":"02")+h(f)),d=a(f),p=s(-c*d),g=s(i*d),w=u.BASE.multiplyAndAddUnsafe(l,p,g);if(!w)throw new Error("point at infinify");return w.assertValidity(),w}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return ee(this.toDERHex())}toDERHex(){return er.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ee(this.toCompactHex())}toCompactHex(){return h(this.r)+h(this.s)}}const w={isValidPrivateKey(e){try{return c(e),!0}catch(e){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{const e=Ct(t.n);return function(e,t,r=!1){const n=e.length,i=Ft(t),o=Ct(t);if(n<16||n<o||n>1024)throw new Error("expected "+o+"-1024 bytes of input, got "+n);const s=kt(r?te(e):re(e),t-Pt)+Pt;return r?ie(s,i):ne(s,i)}(t.randomBytes(e),t.n)},precompute:(e=8,t=u.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)};function y(e){const t=K(e),r="string"==typeof e,n=(t||r)&&e.length;return t?n===i||n===o:r?n===2*i||n===2*o:e instanceof u}const b=t.bits2int||function(e){if(e.length>8192)throw new Error("input is too large");const r=te(e),n=8*e.length-t.nBitLength;return n>0?r>>BigInt(n):r},m=t.bits2int_modN||function(e){return s(b(e))},E=le(t.nBitLength);function v(e){return ce("num < 2^"+t.nBitLength,e,tr,E),ne(e,t.nByteLength)}const x={lowS:t.lowS,prehash:!1},B={lowS:t.lowS,prehash:!1};return u.BASE._setWindowSize(8),{CURVE:t,getPublicKey:function(e,t=!0){return u.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,r=!0){if(y(e))throw new Error("first arg must be private key");if(!y(t))throw new Error("second arg must be public key");return u.fromHex(t).multiply(c(e)).toRawBytes(r)},sign:function(e,n,i=x){const{seed:o,k2sig:f}=function(e,n,i=x){if(["recovered","canonical"].some(e=>e in i))throw new Error("sign() legacy options not supported");const{hash:o,randomBytes:f}=t;let{lowS:h,prehash:p,extraEntropy:w}=i;null==h&&(h=!0),e=oe("msgHash",e),Xt(i),p&&(e=oe("prehashed msgHash",o(e)));const y=m(e),E=c(n),B=[v(E),v(y)];if(null!=w&&!1!==w){const e=!0===w?f(r.BYTES):w;B.push(oe("extraEntropy",e))}const I=se(...B),S=y;return{seed:I,k2sig:function(e){const t=b(e);if(!l(t))return;const r=a(t),n=u.BASE.multiply(t).toAffine(),i=s(n.x);if(i===tr)return;const o=s(r*s(S+i*E));if(o===tr)return;let c=(n.x===i?0:2)|Number(n.y&rr),f=o;return h&&d(o)&&(f=function(e){return d(e)?s(-e):e}(o),c^=1),new g(i,f,c)}}}(e,n,i);return pe(t.hash.outputLen,t.nByteLength,t.hmac)(o,f)},verify:function(e,r,n,i=B){const o=e;r=oe("msgHash",r),n=oe("publicKey",n);const{lowS:c,prehash:f,format:l}=i;if(Xt(i),"strict"in i)throw new Error("options.strict was renamed to lowS");if(void 0!==l&&"compact"!==l&&"der"!==l)throw new Error("format must be compact or der");const h="string"==typeof o||K(o),d=!h&&!l&&"object"==typeof o&&null!==o&&"bigint"==typeof o.r&&"bigint"==typeof o.s;if(!h&&!d)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let p,w;try{if(d&&(p=new g(o.r,o.s)),h){try{"compact"!==l&&(p=g.fromDER(o))}catch(e){if(!(e instanceof er.Err))throw e}p||"der"===l||(p=g.fromCompact(o))}w=u.fromHex(n)}catch(e){return!1}if(!p)return!1;if(c&&p.hasHighS())return!1;f&&(r=t.hash(r));const{r:y,s:b}=p,E=m(r),v=a(b),x=s(E*v),I=s(y*v),S=u.BASE.multiplyAndAddUnsafe(w,x,I)?.toAffine();return!!S&&s(S.x)===y},ProjectivePoint:u,Signature:g,utils:w}}({...e,...ir(t)});return Object.freeze({...r(t),create:r})}({a:BigInt(0),b:BigInt(7),Fp:fr,n:sr,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=sr,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ar*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=cr(o*e,t),u=cr(-n*e,t);let c=kt(e-a*r-u*i,t),f=kt(-a*n-u*o,t);const l=c>s,h=f>s;if(l&&(c=t-c),h&&(f=t-f),c>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:c,k2neg:h,k2:f}}}},Bt);function hr(e){if(130!==e.length&&132!==e.length)throw new dr({signature:e});const t=BigInt(Ne(e,0,32)),r=BigInt(Ne(e,32,64)),n=(()=>{const t=Number(`0x${e.slice(130)}`);if(!Number.isNaN(t))try{return function(e){if(0===e||27===e)return 0;if(1===e||28===e)return 1;if(e>=35)return e%2==0?1:0;throw new gr({value:e})}(t)}catch{throw new pr({value:t})}})();return void 0===n?{r:t,s:r}:{r:t,s:r,yParity:n}}BigInt(0);class dr extends g{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${ke(Pe(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class pr extends g{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class gr extends g{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}e.verifyProof=function(e){try{switch(e.type){case t.ProofTypes.SelfDeclaration:return Promise.resolve(d({},e,{status:e.confirmed?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}));case t.ProofTypes.Screenshot:return Promise.resolve(d({},e,{status:e.url?t.ProofStatus.FLAGGED:t.ProofStatus.FAILED}));case t.ProofTypes.EIP191:return Promise.resolve(function(e){try{var r=e.address.split(/:/),n=r[2];if("eip155"!==r[0])return Promise.resolve(d({},e,{status:t.ProofStatus.FAILED}));var i=function(e,t,r){try{var n=function(e){const{payload:t,signature:r}=e,{r:n,s:i,yParity:o}=r;return function(e){const t=(()=>{if(function(e,t={}){const{strict:r=!1}=t;try{return function(e,t={}){const{strict:r=!1}=t;if(!e)throw new Re(e);if("string"!=typeof e)throw new Re(e);if(r&&!/^0x[0-9a-fA-F]*$/.test(e))throw new He(e);if(!e.startsWith("0x"))throw new He(e)}(e,{strict:r}),!0}catch{return!1}}(e))return We(e);if(function(e){try{return function(e){if(!(e instanceof Uint8Array)){if(!e)throw new De(e);if("object"!=typeof e)throw new De(e);if(!("BYTES_PER_ELEMENT"in e))throw new De(e);if(1!==e.BYTES_PER_ELEMENT||"Uint8Array"!==e.constructor.name)throw new De(e)}}(e),!0}catch{return!1}}(e))return function(e){return We(Oe(e))}(e);const{prefix:t,x:r,y:n}=e;return"bigint"==typeof r&&"bigint"==typeof n?{prefix:t??4,x:r,y:n}:{prefix:t,x:r}})();return Ge(t),t}(new lr.Signature(BigInt(n),BigInt(i)).addRecoveryBit(o).recoverPublicKey(Pe(t).substring(2)))}({payload:(i=Le(t),_e(function(e){const t=Pe(e);return Ae("0x19",Le("Ethereum Signed Message:\n"+ke(t)),t)}(i))),signature:hr(r)});return function(e,t={}){const r=_e(`0x${function(e,t={}){Ge(e);const{prefix:r,x:n,y:i}=e,{includePrefix:o=!0}=t;return Ae(o?ze(r,{size:1}):"0x",ze(n,{size:32}),"bigint"==typeof i?ze(i,{size:32}):"0x")}(e).slice(4)}`).substring(26);return function(e,t={}){const{checksum:r=!1}=t;return rt(e),r?nt(e):e}(`0x${r}`,t)}(n).toString()===e.toString()}catch(e){return!1}var i}(n,e.attestation,e.proof);return Promise.resolve(d({},e,{status:i?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}))}catch(e){return Promise.reject(e)}}(e));case t.ProofTypes.ED25519:return Promise.resolve(function(e){try{var r=e.address.split(/:/),n=r[2];if("solana"!==r[0])return Promise.resolve(d({},e,{status:t.ProofStatus.FAILED}));try{var i=h.default.decode(n),s=(new TextEncoder).encode(e.attestation),a=o.decode(e.proof),u=l.default.sign.detached.verify(s,a,i);return Promise.resolve(d({},e,{status:u?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}))}catch(r){return Promise.resolve(d({},e,{status:t.ProofStatus.FAILED}))}}catch(e){return Promise.reject(e)}}(e));case t.ProofTypes.EIP712:case t.ProofTypes.BIP137:return Promise.resolve(function(e){try{var r=e.address.split(/:/),s=r[2];if("bip122"!==r[0])return Promise.resolve(d({},e,{status:t.ProofStatus.FAILED}));try{var a=[f.SEGWIT,f.NATIVE].includes(function(e){if(e.match("^(bc1|tb1|ltc1).*"))return f.NATIVE;if(e.match("^[32M].*"))return f.SEGWIT;if(e.match("^[1nmL].*"))return f.LEGACY;if(e.match("^(D).*"))return f.DOGECOIN;throw new Error("INVALID ADDRESS: ".concat(e).concat(" is not a valid or a supported address"))}(s)),u=function(e,t,r,s){var a=function(e){var t=o.decode(e);if(65!==t.length)throw new Error("Invalid signature length");var r=t[0]-27;if(r>15||r<0)throw new Error("Invalid signature parameter");return{compressed:!!(12&r),segwitType:8&r?4&r?c.P2WPKH:c.P2SH_P2WPKH:void 0,recovery:3&r,signature:t.slice(1)}}(r),u=a.compressed,f=a.segwitType,l=a.recovery,h=a.signature;if(s&&!u)throw new Error("checkSegwitAlways can only be used with a compressed pubkey signature flagbyte");var d=function(e){var t=(new TextEncoder).encode("Bitcoin Signed Message:\n"),r=(new TextEncoder).encode(e),o=i.encode(r.length).buffer,s=new Uint8Array(t.length+o.byteLength+r.length);return s.set(t),s.set(new Uint8Array(o),t.length),s.set(r,t.length+o.byteLength),n.hash256(s)}(e),g=u?n.secp256k1.recoverPublicKeyCompressed(h,l,d):n.secp256k1.recoverPublicKeyUncompressed(h,l,d);if("string"==typeof g)throw new Error(g);var w=n.hash160(g),y="";if(f)y=p(w);else if(s)try{y=p(w)}catch(e){y=p(w)}else y=n.encodeBase58AddressFormat(0,w);return y===t}(e.attestation,s,e.proof,a);return Promise.resolve(d({},e,{status:u?t.ProofStatus.VERIFIED:t.ProofStatus.FAILED}))}catch(r){return Promise.resolve(d({},e,{status:t.ProofStatus.FAILED}))}}catch(e){return Promise.reject(e)}}(e))}return Promise.resolve(e)}catch(e){return Promise.reject(e)}}});
|
2
2
|
//# sourceMappingURL=index.umd.js.map
|