@actioncodes/protocol 2.0.10 → 2.0.11
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/ActionCodesProtocol.d.ts +1 -1
- package/dist/ActionCodesProtocol.d.ts.map +1 -1
- package/dist/adapters/SolanaAdapter.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +8 -8
- package/dist/index.js +2 -2
- package/dist/index.js.map +8 -8
- package/dist/strategy/DelegationStrategy.d.ts +2 -2
- package/dist/strategy/DelegationStrategy.d.ts.map +1 -1
- package/dist/strategy/WalletStrategy.d.ts +2 -2
- package/dist/strategy/WalletStrategy.d.ts.map +1 -1
- package/dist/types.d.ts +1 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/canonical.d.ts +1 -1
- package/dist/utils/canonical.d.ts.map +1 -1
- package/dist/utils/crypto.d.ts +0 -1
- package/dist/utils/crypto.d.ts.map +1 -1
- package/package.json +1 -1
@@ -21,7 +21,7 @@ export declare class ActionCodesProtocol {
|
|
21
21
|
/** Access to strategies */
|
22
22
|
get walletStrategy(): WalletStrategy;
|
23
23
|
get delegationStrategy(): DelegationStrategy;
|
24
|
-
generateCode(strategy: "wallet", canonicalMessage: Uint8Array, signature: string
|
24
|
+
generateCode(strategy: "wallet", canonicalMessage: Uint8Array, signature: string): {
|
25
25
|
actionCode: ActionCode;
|
26
26
|
canonicalMessage: Uint8Array;
|
27
27
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ActionCodesProtocol.d.ts","sourceRoot":"","sources":["../src/ActionCodesProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACpB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,qBAAa,mBAAmB;IAKlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAAqB;gBAEnB,MAAM,EAAE,oBAAoB;IASlD,SAAS,IAAI,oBAAoB;IAIxC,+BAA+B;IAC/B,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI3D,+BAA+B;IAC/B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,wCAAwC;IACxC,IAAI,OAAO;gBAEoC,aAAa;MAE3D;IAED,2BAA2B;IAC3B,IAAI,cAAc,mBAEjB;IAED,IAAI,kBAAkB,uBAErB;IAGD,YAAY,CACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,UAAU,EAC5B,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"ActionCodesProtocol.d.ts","sourceRoot":"","sources":["../src/ActionCodesProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACpB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,qBAAa,mBAAmB;IAKlB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAAqB;gBAEnB,MAAM,EAAE,oBAAoB;IASlD,SAAS,IAAI,oBAAoB;IAIxC,+BAA+B;IAC/B,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAI3D,+BAA+B;IAC/B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,wCAAwC;IACxC,IAAI,OAAO;gBAEoC,aAAa;MAE3D;IAED,2BAA2B;IAC3B,IAAI,cAAc,mBAEjB;IAED,IAAI,kBAAkB,uBAErB;IAGD,YAAY,CACV,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,UAAU,EAC5B,SAAS,EAAE,MAAM,GAChB;QACD,UAAU,EAAE,UAAU,CAAC;QACvB,gBAAgB,EAAE,UAAU,CAAC;KAC9B;IACD,YAAY,CACV,QAAQ,EAAE,YAAY,EACtB,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,MAAM,GACzB;QACD,UAAU,EAAE,mBAAmB,CAAC;KACjC;IA8BD,YAAY,CACV,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,GAC/B,IAAI;IACP,YAAY,CACV,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,mBAAmB,EAC/B,OAAO,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAClC,IAAI;CA0DR"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SolanaAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/SolanaAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,eAAO,MAAM,kBAAkB,EAAG,QAAiB,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;IAC9C,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;IACpD,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;IAC1D,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEnE,qBAAa,aAAc,SAAQ,gBAAgB,CACjD,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,CAC7B;IACC,0CAA0C;IAC1C,OAAO,CAAC,eAAe;IAOvB,mEAAmE;IACnE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IA0BvD,wCAAwC;IACxC,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO;
|
1
|
+
{"version":3,"file":"SolanaAdapter.d.ts","sourceRoot":"","sources":["../../src/adapters/SolanaAdapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EAEvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAChB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ3C,eAAO,MAAM,kBAAkB,EAAG,QAAiB,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,aAAa,CAAC;IAC9C,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;IACpD,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,CAAC;IAC1D,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AACH,MAAM,MAAM,4BAA4B,GAAG,sBAAsB,CAAC;IAChE,KAAK,EAAE,OAAO,kBAAkB,CAAC;CAClC,CAAC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,CAAC;AAEnE,qBAAa,aAAc,SAAQ,gBAAgB,CACjD,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,4BAA4B,CAC7B;IACC,0CAA0C;IAC1C,OAAO,CAAC,eAAe;IAOvB,mEAAmE;IACnE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IA0BvD,wCAAwC;IACxC,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO;IA4E9D,0EAA0E;IAC1E,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO;IA0BnE,0BAA0B,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO;IAoE1E,gFAAgF;IAChF,MAAM,CAAC,oBAAoB,CACzB,IAAI,EAAE,kBAAkB,GACvB,sBAAsB;IAKzB,yFAAyF;IACzF,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoBhD,2EAA2E;IAC3E,OAAO,CAAC,sBAAsB;IA2B9B,iGAAiG;IACjG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAMtD,uEAAuE;IACvE,OAAO,CAAC,mBAAmB;IAmC3B;;;OAGG;IACH,4BAA4B,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiC5E;;;;OAIG;IACH,oCAAoC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqE5D;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,kBAAkB,GACvB,MAAM;CAoFV"}
|
package/dist/index.cjs
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
var F0=Object.create;var{getPrototypeOf:w0,defineProperty:e,getOwnPropertyNames:r8,getOwnPropertyDescriptor:k0}=Object,s8=Object.prototype.hasOwnProperty;var x8=(Q,$,q)=>{q=Q!=null?F0(w0(Q)):{};let Z=$||!Q||!Q.__esModule?e(q,"default",{value:Q,enumerable:!0}):q;for(let X of r8(Q))if(!s8.call(Z,X))e(Z,X,{get:()=>Q[X],enumerable:!0});return Z},n8=new WeakMap,L0=(Q)=>{var $=n8.get(Q),q;if($)return $;if($=e({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")r8(Q).map((Z)=>!s8.call($,Z)&&e($,Z,{get:()=>Q[Z],enumerable:!(q=k0(Q,Z))||q.enumerable}));return n8.set(Q,$),$};var P0=(Q,$)=>{for(var q in $)e(Q,q,{get:$[q],enumerable:!0,configurable:!0,set:(Z)=>$[q]=()=>Z})};var n0={};P0(n0,{validateProtocolMetaFormat:()=>l0,truncateBits:()=>D8,sha256:()=>Z8,serializeDelegationProof:()=>v8,serializeCanonicalRevoke:()=>O8,serializeCanonical:()=>g,parseProtocolMeta:()=>X8,hmacSha256:()=>n,hkdfSha256:()=>_0,getCanonicalMessageParts:()=>r,generateRandomSecret:()=>S0,digestToDigits:()=>G8,codeHash:()=>H8,buildProtocolMeta:()=>M8,base32EncodeCrockford:()=>p0,WalletStrategy:()=>i,TransactionNotSignedByIntendedOwnerError:()=>A8,SolanaAdapter:()=>o,SUPPORTED_CHAINS:()=>d0,SCHEME:()=>L8,ProtocolErrorCode:()=>G0,ProtocolError:()=>N,PROTOCOL_NORMALIZATION:()=>F8,PROTOCOL_META_MAX_BYTES:()=>s,MissingMetaError:()=>p8,MetaMismatchError:()=>S8,InvalidSignatureError:()=>g8,InvalidPubkeyFormatError:()=>u8,InvalidCodeFormatError:()=>c8,InvalidAdapterError:()=>h8,ExpiredCodeError:()=>_8,DelegationStrategy:()=>T8,CODE_MIN_LENGTH:()=>w8,CODE_MAX_LENGTH:()=>k8,CODE_DEFAULT_LENGTH:()=>c0,CODE_CHARSET_DIGITS:()=>h0,CANONICAL_REVOKE_MESSAGE_PREFIX:()=>g0,CANONICAL_MESSAGE_VERSION:()=>A0,CANONICAL_MESSAGE_PREFIX:()=>u0,BaseChainAdapter:()=>z8,ActionCodesProtocol:()=>O0,ADAPTER_CHAIN_NAME:()=>J8});module.exports=L0(n0);class z8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function M0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function U8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function f(Q,$,q=""){let Z=M0(Q),X=Q?.length,J=$!==void 0;if(!Z||J&&X!==$){let Y=q&&`"${q}" `,z=J?` of length ${$}`:"",U=Z?`length=${X}`:`type=${typeof Q}`;throw Error(Y+"expected Uint8Array"+z+", got "+U)}return Q}function t(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");U8(Q.outputLen),U8(Q.blockLen)}function h(Q,$=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if($&&Q.finished)throw Error("Hash#digest() has already been called")}function i8(Q,$){f(Q,void 0,"digestInto() output");let q=$.outputLen;if(Q.length<q)throw Error('"digestInto() output" expected to be of length >='+q)}function T(...Q){for(let $=0;$<Q.length;$++)Q[$].fill(0)}function K8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function V(Q,$){return Q<<32-$|Q>>>$}function o8(Q,$={}){let q=(X,J)=>Q(J).update(X).digest(),Z=Q(void 0);return q.outputLen=Z.outputLen,q.blockLen=Z.blockLen,q.create=(X)=>Q(X),Object.assign(q,$),Object.freeze(q)}var a8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function e8(Q,$,q){return Q&$^~Q&q}function t8(Q,$,q){return Q&$^Q&q^$&q}class N8{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(Q,$,q,Z){this.blockLen=Q,this.outputLen=$,this.padOffset=q,this.isLE=Z,this.buffer=new Uint8Array(Q),this.view=K8(this.buffer)}update(Q){h(this),f(Q);let{view:$,buffer:q,blockLen:Z}=this,X=Q.length;for(let J=0;J<X;){let Y=Math.min(Z-this.pos,X-J);if(Y===Z){let z=K8(Q);for(;Z<=X-J;J+=Z)this.process(z,J);continue}if(q.set(Q.subarray(J,J+Y),this.pos),this.pos+=Y,J+=Y,this.pos===Z)this.process($,0),this.pos=0}return this.length+=Q.length,this.roundClean(),this}digestInto(Q){h(this),i8(Q,this),this.finished=!0;let{buffer:$,view:q,blockLen:Z,isLE:X}=this,{pos:J}=this;if($[J++]=128,T(this.buffer.subarray(J)),this.padOffset>Z-J)this.process(q,0),J=0;for(let R=J;R<Z;R++)$[R]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=K8(Q),z=this.outputLen;if(z%4)throw Error("_sha2: outputLen must be aligned to 32bit");let U=z/4,K=this.get();if(U>K.length)throw Error("_sha2: outputLen bigger than state");for(let R=0;R<U;R++)Y.setUint32(4*R,K[R],X)}digest(){let{buffer:Q,outputLen:$}=this;this.digestInto(Q);let q=Q.slice(0,$);return this.destroy(),q}_cloneInto(Q){Q||=new this.constructor,Q.set(...this.get());let{blockLen:$,buffer:q,length:Z,finished:X,destroyed:J,pos:Y}=this;if(Q.destroyed=J,Q.finished=X,Q.length=Z,Q.pos=Y,Z%$)Q.buffer.set(q);return Q}clone(){return this._cloneInto()}}var x=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),C=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),w=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),k=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var j8=BigInt(4294967295),Q0=BigInt(32);function T0(Q,$=!1){if($)return{h:Number(Q&j8),l:Number(Q>>Q0&j8)};return{h:Number(Q>>Q0&j8)|0,l:Number(Q&j8)|0}}function $0(Q,$=!1){let q=Q.length,Z=new Uint32Array(q),X=new Uint32Array(q);for(let J=0;J<q;J++){let{h:Y,l:z}=T0(Q[J],$);[Z[J],X[J]]=[Y,z]}return[Z,X]}var C8=(Q,$,q)=>Q>>>q,m8=(Q,$,q)=>Q<<32-q|$>>>q,A=(Q,$,q)=>Q>>>q|$<<32-q,u=(Q,$,q)=>Q<<32-q|$>>>q,Q8=(Q,$,q)=>Q<<64-q|$>>>q-32,$8=(Q,$,q)=>Q>>>q-32|$<<64-q;function I(Q,$,q,Z){let X=($>>>0)+(Z>>>0);return{h:Q+q+(X/4294967296|0)|0,l:X|0}}var q0=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),Z0=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,X0=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),J0=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,Y0=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),R0=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var I0=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),H=new Uint32Array(64);class y8 extends N8{constructor(Q){super(64,Q,8,!1)}get(){let{A:Q,B:$,C:q,D:Z,E:X,F:J,G:Y,H:z}=this;return[Q,$,q,Z,X,J,Y,z]}set(Q,$,q,Z,X,J,Y,z){this.A=Q|0,this.B=$|0,this.C=q|0,this.D=Z|0,this.E=X|0,this.F=J|0,this.G=Y|0,this.H=z|0}process(Q,$){for(let R=0;R<16;R++,$+=4)H[R]=Q.getUint32($,!1);for(let R=16;R<64;R++){let j=H[R-15],W=H[R-2],F=V(j,7)^V(j,18)^j>>>3,v=V(W,17)^V(W,19)^W>>>10;H[R]=v+H[R-7]+F+H[R-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:z,G:U,H:K}=this;for(let R=0;R<64;R++){let j=V(Y,6)^V(Y,11)^V(Y,25),W=K+j+e8(Y,z,U)+I0[R]+H[R]|0,v=(V(q,2)^V(q,13)^V(q,22))+t8(q,Z,X)|0;K=U,U=z,z=Y,Y=J+W|0,J=X,X=Z,Z=q,q=W+v|0}q=q+this.A|0,Z=Z+this.B|0,X=X+this.C|0,J=J+this.D|0,Y=Y+this.E|0,z=z+this.F|0,U=U+this.G|0,K=K+this.H|0,this.set(q,Z,X,J,Y,z,U,K)}roundClean(){T(H)}destroy(){this.set(0,0,0,0,0,0,0,0),T(this.buffer)}}class z0 extends y8{A=x[0]|0;B=x[1]|0;C=x[2]|0;D=x[3]|0;E=x[4]|0;F=x[5]|0;G=x[6]|0;H=x[7]|0;constructor(){super(32)}}class b0 extends y8{A=C[0]|0;B=C[1]|0;C=C[2]|0;D=C[3]|0;E=C[4]|0;F=C[5]|0;G=C[6]|0;H=C[7]|0;constructor(){super(28)}}var U0=(()=>$0(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((Q)=>BigInt(Q))))(),E0=(()=>U0[0])(),x0=(()=>U0[1])(),_=new Uint32Array(80),p=new Uint32Array(80);class q8 extends N8{constructor(Q){super(128,Q,16,!1)}get(){let{Ah:Q,Al:$,Bh:q,Bl:Z,Ch:X,Cl:J,Dh:Y,Dl:z,Eh:U,El:K,Fh:R,Fl:j,Gh:W,Gl:F,Hh:v,Hl:M}=this;return[Q,$,q,Z,X,J,Y,z,U,K,R,j,W,F,v,M]}set(Q,$,q,Z,X,J,Y,z,U,K,R,j,W,F,v,M){this.Ah=Q|0,this.Al=$|0,this.Bh=q|0,this.Bl=Z|0,this.Ch=X|0,this.Cl=J|0,this.Dh=Y|0,this.Dl=z|0,this.Eh=U|0,this.El=K|0,this.Fh=R|0,this.Fl=j|0,this.Gh=W|0,this.Gl=F|0,this.Hh=v|0,this.Hl=M|0}process(Q,$){for(let D=0;D<16;D++,$+=4)_[D]=Q.getUint32($),p[D]=Q.getUint32($+=4);for(let D=16;D<80;D++){let y=_[D-15]|0,B=p[D-15]|0,V8=A(y,B,1)^A(y,B,8)^C8(y,B,7),I8=u(y,B,1)^u(y,B,8)^m8(y,B,7),b=_[D-2]|0,E=p[D-2]|0,Y8=A(b,E,19)^Q8(b,E,61)^C8(b,E,6),b8=u(b,E,19)^$8(b,E,61)^m8(b,E,6),R8=X0(I8,b8,p[D-7],p[D-16]),E8=J0(R8,V8,Y8,_[D-7],_[D-16]);_[D]=E8|0,p[D]=R8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:z,Dh:U,Dl:K,Eh:R,El:j,Fh:W,Fl:F,Gh:v,Gl:M,Hh:O,Hl:a}=this;for(let D=0;D<80;D++){let y=A(R,j,14)^A(R,j,18)^Q8(R,j,41),B=u(R,j,14)^u(R,j,18)^$8(R,j,41),V8=R&W^~R&v,I8=j&F^~j&M,b=Y0(a,B,I8,x0[D],p[D]),E=R0(b,O,y,V8,E0[D],_[D]),Y8=b|0,b8=A(q,Z,28)^Q8(q,Z,34)^Q8(q,Z,39),R8=u(q,Z,28)^$8(q,Z,34)^$8(q,Z,39),E8=q&X^q&Y^X&Y,v0=Z&J^Z&z^J&z;O=v|0,a=M|0,v=W|0,M=F|0,W=R|0,F=j|0,{h:R,l:j}=I(U|0,K|0,E|0,Y8|0),U=Y|0,K=z|0,Y=X|0,z=J|0,X=q|0,J=Z|0;let l8=q0(Y8,R8,v0);q=Z0(l8,E,b8,E8),Z=l8|0}({h:q,l:Z}=I(this.Ah|0,this.Al|0,q|0,Z|0)),{h:X,l:J}=I(this.Bh|0,this.Bl|0,X|0,J|0),{h:Y,l:z}=I(this.Ch|0,this.Cl|0,Y|0,z|0),{h:U,l:K}=I(this.Dh|0,this.Dl|0,U|0,K|0),{h:R,l:j}=I(this.Eh|0,this.El|0,R|0,j|0),{h:W,l:F}=I(this.Fh|0,this.Fl|0,W|0,F|0),{h:v,l:M}=I(this.Gh|0,this.Gl|0,v|0,M|0),{h:O,l:a}=I(this.Hh|0,this.Hl|0,O|0,a|0),this.set(q,Z,X,J,Y,z,U,K,R,j,W,F,v,M,O,a)}roundClean(){T(_,p)}destroy(){T(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class C0 extends q8{Ah=k[0]|0;Al=k[1]|0;Bh=k[2]|0;Bl=k[3]|0;Ch=k[4]|0;Cl=k[5]|0;Dh=k[6]|0;Dl=k[7]|0;Eh=k[8]|0;El=k[9]|0;Fh=k[10]|0;Fl=k[11]|0;Gh=k[12]|0;Gl=k[13]|0;Hh=k[14]|0;Hl=k[15]|0;constructor(){super(64)}}class m0 extends q8{Ah=w[0]|0;Al=w[1]|0;Bh=w[2]|0;Bl=w[3]|0;Ch=w[4]|0;Cl=w[5]|0;Dh=w[6]|0;Dl=w[7]|0;Eh=w[8]|0;El=w[9]|0;Fh=w[10]|0;Fl=w[11]|0;Gh=w[12]|0;Gl=w[13]|0;Hh=w[14]|0;Hl=w[15]|0;constructor(){super(48)}}var L=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),P=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class y0 extends q8{Ah=L[0]|0;Al=L[1]|0;Bh=L[2]|0;Bl=L[3]|0;Ch=L[4]|0;Cl=L[5]|0;Dh=L[6]|0;Dl=L[7]|0;Eh=L[8]|0;El=L[9]|0;Fh=L[10]|0;Fl=L[11]|0;Gh=L[12]|0;Gl=L[13]|0;Hh=L[14]|0;Hl=L[15]|0;constructor(){super(28)}}class B0 extends q8{Ah=P[0]|0;Al=P[1]|0;Bh=P[2]|0;Bl=P[3]|0;Ch=P[4]|0;Cl=P[5]|0;Dh=P[6]|0;Dl=P[7]|0;Eh=P[8]|0;El=P[9]|0;Fh=P[10]|0;Fl=P[11]|0;Gh=P[12]|0;Gl=P[13]|0;Hh=P[14]|0;Hl=P[15]|0;constructor(){super(32)}}var W8=o8(()=>new z0,a8(1));class B8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(t(Q),f($,void 0,"key"),this.iHash=Q.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let q=this.blockLen,Z=new Uint8Array(q);Z.set($.length>q?Q.create().update($).digest():$);for(let X=0;X<Z.length;X++)Z[X]^=54;this.iHash.update(Z),this.oHash=Q.create();for(let X=0;X<Z.length;X++)Z[X]^=106;this.oHash.update(Z),T(Z)}update(Q){return h(this),this.iHash.update(Q),this}digestInto(Q){h(this),f(Q,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(Q),this.oHash.update(Q),this.oHash.digestInto(Q),this.destroy()}digest(){let Q=new Uint8Array(this.oHash.outputLen);return this.digestInto(Q),Q}_cloneInto(Q){Q||=Object.create(Object.getPrototypeOf(this),{});let{oHash:$,iHash:q,finished:Z,destroyed:X,blockLen:J,outputLen:Y}=this;return Q=Q,Q.finished=Z,Q.destroyed=X,Q.blockLen=J,Q.outputLen=Y,Q.oHash=$._cloneInto(Q.oHash),Q.iHash=q._cloneInto(Q.iHash),Q}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var d=(Q,$,q)=>new B8(Q,$).update(q).digest();d.create=(Q,$)=>new B8(Q,$);function f0(Q,$,q){if(t(Q),q===void 0)q=new Uint8Array(Q.outputLen);return d(Q,q,$)}var f8=Uint8Array.of(0),K0=Uint8Array.of();function H0(Q,$,q,Z=32){t(Q),U8(Z,"length");let X=Q.outputLen;if(Z>255*X)throw Error("Length must be <= 255*HashLen");let J=Math.ceil(Z/X);if(q===void 0)q=K0;else f(q,void 0,"info");let Y=new Uint8Array(J*X),z=d.create(Q,$),U=z._cloneInto(),K=new Uint8Array(z.outputLen);for(let R=0;R<J;R++)f8[0]=R+1,U.update(R===0?K0:K).update(q).update(f8).digestInto(K),Y.set(K,X*R),z._cloneInto(U);return z.destroy(),U.destroy(),T(K,f8),Y.slice(0,Z)}var N0=(Q,$,q,Z,X)=>H0(Q,f0(Q,$,q),Z,X);function l(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function Z8(Q){return W8(l(Q))}function n(Q,$){return d(W8,l(Q),l($))}function _0(Q,$,{salt:q,info:Z}={}){let X=q?l(q):new Uint8Array(32),J=l(Q),Y=Z?l(Z):new Uint8Array(0);return N0(W8,J,X,Y,$)}var j0="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function p0(Q){let $=0,q=0,Z="";for(let X=0;X<Q.length;X++){q=q<<8|Q[X],$+=8;while($>=5)Z+=j0[q>>>$-5&31],$-=5}if($>0)Z+=j0[q<<5-$&31];return Z}function D8(Q,$){let q=Math.ceil($/8),Z=new Uint8Array(q),X=Math.min(q,Q.length);Z.set(Q.subarray(0,X));let J=q*8-$;if(J>0){let Y=255<<J;Z[q-1]=Z[q-1]&Y}return Z}function G8(Q,$){if(Q.length===0)throw Error("digestToDigits: empty digest");let q="",Z=Q[Q.length-1]&15;for(let X=0;q.length<$;X++){let J=(Z+X*4)%Math.max(1,Q.length-4),U=(((Q[J]&127)<<24|Q[J+1]<<16|Q[J+2]<<8|Q[J+3])%1e9).toString().padStart(9,"0");q+=U}return q.slice(0,$)}function H8(Q){let $=Z8(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function S0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var A0=1,u0="actioncodes",g0="actioncodes-revoke";function g(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}function O8(Q){let $=JSON.stringify({id:"actioncodes-revoke",ver:1,pubkey:Q.pubkey,codeHash:Q.codeHash,windowStart:Q.windowStart});return new TextEncoder().encode($)}function r(Q,$,q){let Z=Math.floor(Date.now()/$)*$;return g({pubkey:Q,windowStart:Z,secret:q})}function v8(Q){let $=JSON.stringify({walletPubkey:Q.walletPubkey,delegatedPubkey:Q.delegatedPubkey,expiresAt:Q.expiresAt});return new TextEncoder().encode($)}var F8="NFC",s=256,w8=6,k8=24,c0=8,h0="0123456789",d0=["solana"];var L8="actioncodes:";function M8(Q){let $=W0(Q);if($.int!=null)P8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);P8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=L8+q.join("&");return D0(Z),Z}function X8(Q){if(!Q.startsWith(L8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(L8.length).split("&").filter(Boolean),Z=new Map;for(let W of q){let[F,v]=W.split("=",2);if(!F)continue;let M=v!=null?decodeURIComponent(v):"";Z.set(F,M)}let X=Z.get("ver"),J=Z.get("id"),Y=Z.get("int"),z=Z.get("p");if(X==null||J==null||Y==null)throw Error("protocol meta missing required fields ver or id or int");let U=Number(X);if(!Number.isInteger(U)||U<=0)throw Error("protocol meta ver must be positive integer");let K;if(z!=null&&z!=="")try{if(K=JSON.parse(z),typeof K!=="object"||K===null||Array.isArray(K))throw Error("protocol meta p must be a JSON object")}catch{throw Error("protocol meta p must be valid JSON")}let R=W0({ver:U,id:J,int:Y,p:K});if(R.int!=null)P8(R.int);if(R.p!=null)P8(JSON.stringify(R.p));if([...Z.keys()].filter((W)=>W!=="ver"&&W!=="id"&&W!=="int"&&W!=="p").length>0)throw Error("protocol meta contains unsupported keys");return D0(M8(R)),R}function l0(Q){try{return X8(Q),{ok:!0}}catch($){return{ok:!1,reason:String($)}}}function W0(Q){let $=Q.id.normalize(F8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(F8).trim();if(Q.p!=null)q.p=Q.p;return q}function D0(Q){if(new TextEncoder().encode(Q).length>s)throw Error(`protocol meta exceeds ${s} bytes`)}function P8(Q){if(new TextEncoder().encode(Q).length>s)throw Error(`protocol meta params exceed ${s} bytes`)}var G0;((O)=>{O.EXPIRED_CODE="EXPIRED_CODE";O.INVALID_CODE="INVALID_CODE";O.INVALID_CODE_FORMAT="INVALID_CODE_FORMAT";O.INVALID_SIGNATURE="INVALID_SIGNATURE";O.MISSING_META="MISSING_META";O.INVALID_META_FORMAT="INVALID_META_FORMAT";O.META_MISMATCH="META_MISMATCH";O.META_TOO_LARGE="META_TOO_LARGE";O.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER="TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER";O.INVALID_TRANSACTION_FORMAT="INVALID_TRANSACTION_FORMAT";O.INVALID_PUBKEY_FORMAT="INVALID_PUBKEY_FORMAT";O.INVALID_INPUT="INVALID_INPUT";O.MISSING_REQUIRED_FIELD="MISSING_REQUIRED_FIELD";O.CRYPTO_ERROR="CRYPTO_ERROR";O.INVALID_DIGEST="INVALID_DIGEST";O.INVALID_ADAPTER="INVALID_ADAPTER"})(G0||={});class N extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new _8(Q,$,q)}static invalidCode(Q,$){return new N("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new c8(Q,$)}static invalidSignature(Q){return new g8(Q)}static missingMeta(){return new p8}static invalidMetaFormat(Q){return new N("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new S8(Q,$,q)}static metaTooLarge(Q,$){return new N("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new A8(Q,$)}static invalidTransactionFormat(Q){return new N("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new u8(Q,$)}static invalidInput(Q,$,q){return new N("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new N("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new N("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new N("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new h8(Q)}static create(Q,$,q){return new N(Q,$,q)}}class _8 extends N{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class p8 extends N{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class S8 extends N{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class A8 extends N{constructor(Q,$){super("TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER",`Transaction not signed by intended owner '${Q}'. Actual signers: [${$.join(", ")}]`,{intended:Q,actualSigners:$});this.name="TransactionNotSignedByIntendedOwnerError"}}class u8 extends N{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class g8 extends N{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class c8 extends N{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class h8 extends N{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}var d8=x8(require("bs58"));class i{config;constructor(Q){this.config=Q}generateCode(Q,$,q){let Z=Q,X=JSON.parse(new TextDecoder().decode(Z)),J=X.pubkey,Y=X.windowStart,z=q,U;if($){let v=d8.default.decode($);U=n(v,Z)}else if(z)U=n(z,Z);else U=Z8(Z);let K=Math.max(w8,Math.min(k8,this.config.codeLength)),R=8*Math.ceil(K/2),j=D8(U,R);return{actionCode:{code:G8(j,K),pubkey:J,timestamp:Y,expiresAt:Y+this.config.ttlMs,...$&&{signature:$},...z&&{secret:z}},canonicalMessage:Z}}validateCode(Q){let $=Date.now();if($>Q.expiresAt+(this.config.clockSkewMs??0))throw N.expiredCode(Q.code,Q.expiresAt,$);let q=g({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let z=d8.default.decode(Q.signature);Z=n(z,q)}else if(Q.secret)Z=n(Q.secret,q);else Z=Z8(q);let X=Math.max(w8,Math.min(k8,this.config.codeLength)),J=D8(Z,8*Math.ceil(X/2)),Y=G8(J,X);if(Y!==Q.code)throw N.invalidCode(Y,Q.code)}getCanonicalMessageParts(Q,$){return r(Q,this.config.ttlMs,$)}}class T8{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new i(Q)}generateDelegatedCode(Q,$){this.validateDelegationProof(Q);let q=r(Q.delegatedPubkey,this.config.ttlMs);return{actionCode:{...this.walletStrategy.generateCode(q,$).actionCode,delegationProof:Q,delegatedSignature:$}}}validateDelegatedCode(Q,$){if(this.walletStrategy.validateCode(Q),this.validateDelegationProof($),Q.delegationProof.walletPubkey!==$.walletPubkey)throw Error("Action code wallet pubkey does not match delegation proof");if(Q.delegationProof.delegatedPubkey!==$.delegatedPubkey)throw Error("Action code delegated pubkey does not match delegation proof");if(Q.delegationProof.expiresAt!==$.expiresAt)throw Error("Action code delegation expiration does not match delegation proof");if(Q.delegationProof.signature!==$.signature)throw Error("Action code delegation signature does not match delegation proof");if(!Q.delegatedSignature)throw Error("Delegated signature is required")}validateDelegationProof(Q){if(!Q.walletPubkey)throw Error("Wallet pubkey is required");if(!Q.delegatedPubkey)throw Error("Delegated pubkey is required");if(!Q.expiresAt)throw Error("Expiration time is required");if(!Q.signature)throw Error("Delegation signature is required");if(Q.expiresAt<Date.now())throw Error("Delegation proof has expired")}getWalletStrategy(){return this.walletStrategy}getCanonicalMessageParts(Q,$){return r(Q,this.config.ttlMs,$)}}var m=x8(require("tweetnacl")),c=x8(require("bs58")),G=require("@solana/web3.js"),S=require("@solana/spl-memo");var J8="solana";class o extends z8{normalizePubkey(Q){if(typeof Q==="string")return new G.PublicKey(Q);return Q}verifyWithWallet(Q){if(Q.chain!==J8)return!1;if(!Q.message||!Q.message.pubkey||!Q.walletSignature)return!1;try{let $=g(Q.message),q=this.normalizePubkey(Q.message.pubkey),Z=c.default.decode(Q.walletSignature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return m.default.sign.detached.verify($,Z,X)}catch{return!1}}verifyWithDelegation(Q){if(Q.chain!==J8)return!1;if(!Q.message.pubkey||!Q.delegatedSignature||!Q.delegationProof)return!1;let $=Q.delegationProof;if(!$.walletPubkey||!$.delegatedPubkey||!$.expiresAt||!$.signature)return!1;if($.delegatedPubkey!==Q.message.pubkey)return!1;if($.expiresAt<Date.now())return!1;try{let q=v8($),Z=this.normalizePubkey($.walletPubkey),X=c.default.decode($.signature),J=Z.toBytes();if(X.length!==64||J.length!==32)return!1;if(!m.default.sign.detached.verify(q,X,J))return!1;let z=g(Q.message),U=this.normalizePubkey($.delegatedPubkey),K=c.default.decode(Q.delegatedSignature),R=U.toBytes();if(K.length!==64||R.length!==32)return!1;return m.default.sign.detached.verify(z,K,R)}catch{return!1}}verifyRevokeWithWallet(Q){if(Q.chain!==J8)return!1;if(!Q.message||!Q.message.pubkey||!Q.walletSignature)return!1;try{let $=O8(Q.message),q=this.normalizePubkey(Q.message.pubkey),Z=c.default.decode(Q.walletSignature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return m.default.sign.detached.verify($,Z,X)}catch{return!1}}verifyRevokeWithDelegation(Q){if(Q.chain!==J8)return!1;if(!Q.message||!Q.message.pubkey||!Q.delegatedSignature||!Q.delegationProof)return!1;let $=Q.delegationProof;if(!$.walletPubkey||!$.delegatedPubkey||!$.expiresAt||!$.signature)return!1;if($.delegatedPubkey!==Q.message.pubkey)return!1;if($.expiresAt<Date.now())return!1;try{let q=v8($),Z=this.normalizePubkey($.walletPubkey),X=c.default.decode($.signature),J=Z.toBytes();if(X.length!==64||J.length!==32)return!1;if(!m.default.sign.detached.verify(q,X,J))return!1;let z=O8(Q.message),U=this.normalizePubkey($.delegatedPubkey),K=c.default.decode(Q.delegatedSignature),R=U.toBytes();if(K.length!==64||R.length!==32)return!1;return m.default.sign.detached.verify(z,K,R)}catch{return!1}}static createProtocolMetaIx(Q){let $=M8(Q);return S.createMemoInstruction($)}getProtocolMeta(Q){try{let $=this.deserializeTransaction(Q);for(let q of this.getMemoInstructions($)){let Z=q.data;try{let X=new TextDecoder().decode(Z);if(X8(X))return X}catch{}}return null}catch{return null}}deserializeTransaction(Q){try{let $=G.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if($.message instanceof G.MessageV0)return $;else return G.Transaction.from(Buffer.from(Q,"base64"))}catch{try{return G.Transaction.from(Buffer.from(Q,"base64"))}catch{throw N.invalidTransactionFormat("Invalid base64 transaction format")}}}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return X8($)}getMemoInstructions(Q){if(Q instanceof G.Transaction)return Q.instructions.filter(($)=>$.programId.equals(S.MEMO_PROGRAM_ID));else{let q=Q.message;if(q instanceof G.MessageV0){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(S.MEMO_PROGRAM_ID)){let Y=X.accountKeyIndexes.map((z)=>({pubkey:q.staticAccountKeys[z],isSigner:!1,isWritable:!1}));Z.push(new G.TransactionInstruction({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw N.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw N.missingMeta();if(Z.ver!==2)throw N.metaMismatch("2",String(Z.ver),"ver");let X=H8(Q.code);if(Z.id!==X)throw N.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw N.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw N.missingMeta();let q=$.int;if(!q)throw N.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new G.PublicKey(q)}catch{throw N.invalidPubkeyFormat(q,"Invalid public key format")}let X=this.deserializeTransaction(Q),J=[];if(X instanceof G.Transaction){if(!X.signatures.some((z)=>{if(!z.signature)return!1;return J.push(z.publicKey.toString()),z.publicKey.equals(Z)}))throw N.transactionNotSignedByIntendedOwner(q,J);return}if(X instanceof G.VersionedTransaction){let Y=X.message;if(Y instanceof G.MessageV0){let z=Y.header.numRequiredSignatures;for(let U=0;U<z;U++){let K=Y.staticAccountKeys[U];if(K){if(J.push(K.toString()),K.equals(Z))return}}throw N.transactionNotSignedByIntendedOwner(q,J)}}throw N.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){if(new o().getProtocolMeta(Q))throw N.invalidTransactionFormat("Transaction already contains protocol meta. Cannot attach additional protocol meta.");let X=o.createProtocolMetaIx($);try{let J=G.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if(J.message instanceof G.MessageV0){let Y=J.message,z=[...Y.staticAccountKeys];if(!z.some((W)=>W.equals(S.MEMO_PROGRAM_ID)))z.push(S.MEMO_PROGRAM_ID);let K={programIdIndex:z.findIndex((W)=>W.equals(S.MEMO_PROGRAM_ID)),accountKeyIndexes:[],data:X.data},R=new G.MessageV0({header:Y.header,staticAccountKeys:z,recentBlockhash:Y.recentBlockhash,compiledInstructions:[...Y.compiledInstructions,K],addressTableLookups:Y.addressTableLookups}),j=new G.VersionedTransaction(R);return j.signatures=J.signatures,Buffer.from(j.serialize()).toString("base64")}else{let Y=G.Transaction.from(Buffer.from(Q,"base64"));return Y.add(X),Buffer.from(Y.serialize({requireAllSignatures:!1})).toString("base64")}}catch{try{let J=G.Transaction.from(Buffer.from(Q,"base64"));return J.add(X),Buffer.from(J.serialize({requireAllSignatures:!1})).toString("base64")}catch{throw N.invalidTransactionFormat("Invalid base64 transaction format")}}}}class O0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new o,this._walletStrategy=new i(Q),this._delegationStrategy=new T8(Q)}getConfig(){return this.config}registerAdapter(Q,$){this.adapters[Q]=$}getAdapter(Q){return this.adapters[Q]}get adapter(){return{solana:this.adapters.solana}}get walletStrategy(){return this._walletStrategy}get delegationStrategy(){return this._delegationStrategy}generateCode(Q,$,q,Z){if(Q==="wallet"){if(!q)throw N.invalidSignature("Missing signature over canonical message");return this.walletStrategy.generateCode($,q,Z)}else{if(!q)throw N.invalidSignature("Missing delegated signature");return this.delegationStrategy.generateDelegatedCode($,q)}}validateCode(Q,$,q){if(Q==="wallet"){if(this.walletStrategy.validateCode($),!q)return;let Z=q,X=this.getAdapter(Z.chain);if(!X)throw N.invalidAdapter(Z.chain);if(!X.verifyWithWallet({...Z,message:{pubkey:$.pubkey,windowStart:$.timestamp}}))throw Error("Signature verification failed")}else{let Z=q;this.delegationStrategy.validateDelegatedCode($,Z.delegationProof);let X=this.getAdapter(Z.chain);if(!X)throw N.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({...Z,message:{pubkey:$.pubkey,windowStart:$.timestamp}}))throw Error("Signature verification failed")}}}
|
1
|
+
var w0=Object.create;var{getPrototypeOf:k0,defineProperty:t,getOwnPropertyNames:s8,getOwnPropertyDescriptor:M0}=Object,i8=Object.prototype.hasOwnProperty;var x8=(Q,X,$)=>{$=Q!=null?w0(k0(Q)):{};let Z=X||!Q||!Q.__esModule?t($,"default",{value:Q,enumerable:!0}):$;for(let q of s8(Q))if(!i8.call(Z,q))t(Z,q,{get:()=>Q[q],enumerable:!0});return Z},l8=new WeakMap,L0=(Q)=>{var X=l8.get(Q),$;if(X)return X;if(X=t({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")s8(Q).map((Z)=>!i8.call(X,Z)&&t(X,Z,{get:()=>Q[Z],enumerable:!($=M0(Q,Z))||$.enumerable}));return l8.set(Q,X),X};var V0=(Q,X)=>{for(var $ in X)t(Q,$,{get:X[$],enumerable:!0,configurable:!0,set:(Z)=>X[$]=()=>Z})};var l0={};V0(l0,{validateProtocolMetaFormat:()=>n0,truncateBits:()=>K8,sha256:()=>K0,serializeDelegationProof:()=>D8,serializeCanonicalRevoke:()=>W8,serializeCanonical:()=>g,parseProtocolMeta:()=>Z8,hmacSha256:()=>v8,hkdfSha256:()=>_0,getCanonicalMessageParts:()=>s,digestToDigits:()=>O8,codeHash:()=>p8,buildProtocolMeta:()=>L8,base32EncodeCrockford:()=>f0,WalletStrategy:()=>r,TransactionNotSignedByIntendedOwnerError:()=>f8,SolanaAdapter:()=>a,SUPPORTED_CHAINS:()=>d0,SCHEME:()=>k8,ProtocolErrorCode:()=>D0,ProtocolError:()=>N,PROTOCOL_NORMALIZATION:()=>G8,PROTOCOL_META_MAX_BYTES:()=>i,MissingMetaError:()=>H8,MetaMismatchError:()=>_8,InvalidSignatureError:()=>u8,InvalidPubkeyFormatError:()=>A8,InvalidCodeFormatError:()=>g8,InvalidAdapterError:()=>c8,ExpiredCodeError:()=>S8,DelegationStrategy:()=>V8,CODE_MIN_LENGTH:()=>F8,CODE_MAX_LENGTH:()=>w8,CODE_DEFAULT_LENGTH:()=>c0,CODE_CHARSET_DIGITS:()=>h0,CANONICAL_REVOKE_MESSAGE_PREFIX:()=>g0,CANONICAL_MESSAGE_VERSION:()=>A0,CANONICAL_MESSAGE_PREFIX:()=>u0,BaseChainAdapter:()=>R8,ActionCodesProtocol:()=>G0,ADAPTER_CHAIN_NAME:()=>h});module.exports=L0(l0);class R8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function T0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function Y8(Q,X=""){if(!Number.isSafeInteger(Q)||Q<0){let $=X&&`"${X}" `;throw Error(`${$}expected integer >= 0, got ${Q}`)}}function P(Q,X,$=""){let Z=T0(Q),q=Q?.length,J=X!==void 0;if(!Z||J&&q!==X){let R=$&&`"${$}" `,z=J?` of length ${X}`:"",U=Z?`length=${q}`:`type=${typeof Q}`;throw Error(R+"expected Uint8Array"+z+", got "+U)}return Q}function o(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");Y8(Q.outputLen),Y8(Q.blockLen)}function d(Q,X=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if(X&&Q.finished)throw Error("Hash#digest() has already been called")}function r8(Q,X){P(Q,void 0,"digestInto() output");let $=X.outputLen;if(Q.length<$)throw Error('"digestInto() output" expected to be of length >='+$)}function T(...Q){for(let X=0;X<Q.length;X++)Q[X].fill(0)}function N8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function I(Q,X){return Q<<32-X|Q>>>X}function a8(Q,X={}){let $=(q,J)=>Q(J).update(q).digest(),Z=Q(void 0);return $.outputLen=Z.outputLen,$.blockLen=Z.blockLen,$.create=(q)=>Q(q),Object.assign($,X),Object.freeze($)}var e8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function t8(Q,X,$){return Q&X^~Q&$}function o8(Q,X,$){return Q&X^Q&$^X&$}class z8{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(Q,X,$,Z){this.blockLen=Q,this.outputLen=X,this.padOffset=$,this.isLE=Z,this.buffer=new Uint8Array(Q),this.view=N8(this.buffer)}update(Q){d(this),P(Q);let{view:X,buffer:$,blockLen:Z}=this,q=Q.length;for(let J=0;J<q;){let R=Math.min(Z-this.pos,q-J);if(R===Z){let z=N8(Q);for(;Z<=q-J;J+=Z)this.process(z,J);continue}if($.set(Q.subarray(J,J+R),this.pos),this.pos+=R,J+=R,this.pos===Z)this.process(X,0),this.pos=0}return this.length+=Q.length,this.roundClean(),this}digestInto(Q){d(this),r8(Q,this),this.finished=!0;let{buffer:X,view:$,blockLen:Z,isLE:q}=this,{pos:J}=this;if(X[J++]=128,T(this.buffer.subarray(J)),this.padOffset>Z-J)this.process($,0),J=0;for(let Y=J;Y<Z;Y++)X[Y]=0;$.setBigUint64(Z-8,BigInt(this.length*8),q),this.process($,0);let R=N8(Q),z=this.outputLen;if(z%4)throw Error("_sha2: outputLen must be aligned to 32bit");let U=z/4,j=this.get();if(U>j.length)throw Error("_sha2: outputLen bigger than state");for(let Y=0;Y<U;Y++)R.setUint32(4*Y,j[Y],q)}digest(){let{buffer:Q,outputLen:X}=this;this.digestInto(Q);let $=Q.slice(0,X);return this.destroy(),$}_cloneInto(Q){Q||=new this.constructor,Q.set(...this.get());let{blockLen:X,buffer:$,length:Z,finished:q,destroyed:J,pos:R}=this;if(Q.destroyed=J,Q.finished=q,Q.length=Z,Q.pos=R,Z%X)Q.buffer.set($);return Q}clone(){return this._cloneInto()}}var E=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),y=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),F=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),w=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var U8=BigInt(4294967295),Q0=BigInt(32);function I0(Q,X=!1){if(X)return{h:Number(Q&U8),l:Number(Q>>Q0&U8)};return{h:Number(Q>>Q0&U8)|0,l:Number(Q&U8)|0}}function X0(Q,X=!1){let $=Q.length,Z=new Uint32Array($),q=new Uint32Array($);for(let J=0;J<$;J++){let{h:R,l:z}=I0(Q[J],X);[Z[J],q[J]]=[R,z]}return[Z,q]}var E8=(Q,X,$)=>Q>>>$,y8=(Q,X,$)=>Q<<32-$|X>>>$,A=(Q,X,$)=>Q>>>$|X<<32-$,u=(Q,X,$)=>Q<<32-$|X>>>$,Q8=(Q,X,$)=>Q<<64-$|X>>>$-32,X8=(Q,X,$)=>Q>>>$-32|X<<64-$;function b(Q,X,$,Z){let q=(X>>>0)+(Z>>>0);return{h:Q+$+(q/4294967296|0)|0,l:q|0}}var $0=(Q,X,$)=>(Q>>>0)+(X>>>0)+($>>>0),Z0=(Q,X,$,Z)=>X+$+Z+(Q/4294967296|0)|0,q0=(Q,X,$,Z)=>(Q>>>0)+(X>>>0)+($>>>0)+(Z>>>0),J0=(Q,X,$,Z,q)=>X+$+Z+q+(Q/4294967296|0)|0,R0=(Q,X,$,Z,q)=>(Q>>>0)+(X>>>0)+($>>>0)+(Z>>>0)+(q>>>0),Y0=(Q,X,$,Z,q,J)=>X+$+Z+q+J+(Q/4294967296|0)|0;var C0=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),p=new Uint32Array(64);class m8 extends z8{constructor(Q){super(64,Q,8,!1)}get(){let{A:Q,B:X,C:$,D:Z,E:q,F:J,G:R,H:z}=this;return[Q,X,$,Z,q,J,R,z]}set(Q,X,$,Z,q,J,R,z){this.A=Q|0,this.B=X|0,this.C=$|0,this.D=Z|0,this.E=q|0,this.F=J|0,this.G=R|0,this.H=z|0}process(Q,X){for(let Y=0;Y<16;Y++,X+=4)p[Y]=Q.getUint32(X,!1);for(let Y=16;Y<64;Y++){let v=p[Y-15],K=p[Y-2],k=I(v,7)^I(v,18)^v>>>3,G=I(K,17)^I(K,19)^K>>>10;p[Y]=G+p[Y-7]+k+p[Y-16]|0}let{A:$,B:Z,C:q,D:J,E:R,F:z,G:U,H:j}=this;for(let Y=0;Y<64;Y++){let v=I(R,6)^I(R,11)^I(R,25),K=j+v+t8(R,z,U)+C0[Y]+p[Y]|0,G=(I($,2)^I($,13)^I($,22))+o8($,Z,q)|0;j=U,U=z,z=R,R=J+K|0,J=q,q=Z,Z=$,$=K+G|0}$=$+this.A|0,Z=Z+this.B|0,q=q+this.C|0,J=J+this.D|0,R=R+this.E|0,z=z+this.F|0,U=U+this.G|0,j=j+this.H|0,this.set($,Z,q,J,R,z,U,j)}roundClean(){T(p)}destroy(){this.set(0,0,0,0,0,0,0,0),T(this.buffer)}}class N0 extends m8{A=E[0]|0;B=E[1]|0;C=E[2]|0;D=E[3]|0;E=E[4]|0;F=E[5]|0;G=E[6]|0;H=E[7]|0;constructor(){super(32)}}class x0 extends m8{A=y[0]|0;B=y[1]|0;C=y[2]|0;D=y[3]|0;E=y[4]|0;F=y[5]|0;G=y[6]|0;H=y[7]|0;constructor(){super(28)}}var z0=(()=>X0(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((Q)=>BigInt(Q))))(),E0=(()=>z0[0])(),y0=(()=>z0[1])(),S=new Uint32Array(80),H=new Uint32Array(80);class $8 extends z8{constructor(Q){super(128,Q,16,!1)}get(){let{Ah:Q,Al:X,Bh:$,Bl:Z,Ch:q,Cl:J,Dh:R,Dl:z,Eh:U,El:j,Fh:Y,Fl:v,Gh:K,Gl:k,Hh:G,Hl:V}=this;return[Q,X,$,Z,q,J,R,z,U,j,Y,v,K,k,G,V]}set(Q,X,$,Z,q,J,R,z,U,j,Y,v,K,k,G,V){this.Ah=Q|0,this.Al=X|0,this.Bh=$|0,this.Bl=Z|0,this.Ch=q|0,this.Cl=J|0,this.Dh=R|0,this.Dl=z|0,this.Eh=U|0,this.El=j|0,this.Fh=Y|0,this.Fl=v|0,this.Gh=K|0,this.Gl=k|0,this.Hh=G|0,this.Hl=V|0}process(Q,X){for(let O=0;O<16;O++,X+=4)S[O]=Q.getUint32(X),H[O]=Q.getUint32(X+=4);for(let O=16;O<80;O++){let m=S[O-15]|0,B=H[O-15]|0,T8=A(m,B,1)^A(m,B,8)^E8(m,B,7),I8=u(m,B,1)^u(m,B,8)^y8(m,B,7),C=S[O-2]|0,x=H[O-2]|0,q8=A(C,x,19)^Q8(C,x,61)^E8(C,x,6),b8=u(C,x,19)^X8(C,x,61)^y8(C,x,6),J8=q0(I8,b8,H[O-7],H[O-16]),C8=J0(J8,T8,q8,S[O-7],S[O-16]);S[O]=C8|0,H[O]=J8|0}let{Ah:$,Al:Z,Bh:q,Bl:J,Ch:R,Cl:z,Dh:U,Dl:j,Eh:Y,El:v,Fh:K,Fl:k,Gh:G,Gl:V,Hh:D,Hl:e}=this;for(let O=0;O<80;O++){let m=A(Y,v,14)^A(Y,v,18)^Q8(Y,v,41),B=u(Y,v,14)^u(Y,v,18)^X8(Y,v,41),T8=Y&K^~Y&G,I8=v&k^~v&V,C=R0(e,B,I8,y0[O],H[O]),x=Y0(C,D,m,T8,E0[O],S[O]),q8=C|0,b8=A($,Z,28)^Q8($,Z,34)^Q8($,Z,39),J8=u($,Z,28)^X8($,Z,34)^X8($,Z,39),C8=$&q^$&R^q&R,F0=Z&J^Z&z^J&z;D=G|0,e=V|0,G=K|0,V=k|0,K=Y|0,k=v|0,{h:Y,l:v}=b(U|0,j|0,x|0,q8|0),U=R|0,j=z|0,R=q|0,z=J|0,q=$|0,J=Z|0;let n8=$0(q8,J8,F0);$=Z0(n8,x,b8,C8),Z=n8|0}({h:$,l:Z}=b(this.Ah|0,this.Al|0,$|0,Z|0)),{h:q,l:J}=b(this.Bh|0,this.Bl|0,q|0,J|0),{h:R,l:z}=b(this.Ch|0,this.Cl|0,R|0,z|0),{h:U,l:j}=b(this.Dh|0,this.Dl|0,U|0,j|0),{h:Y,l:v}=b(this.Eh|0,this.El|0,Y|0,v|0),{h:K,l:k}=b(this.Fh|0,this.Fl|0,K|0,k|0),{h:G,l:V}=b(this.Gh|0,this.Gl|0,G|0,V|0),{h:D,l:e}=b(this.Hh|0,this.Hl|0,D|0,e|0),this.set($,Z,q,J,R,z,U,j,Y,v,K,k,G,V,D,e)}roundClean(){T(S,H)}destroy(){T(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class m0 extends $8{Ah=w[0]|0;Al=w[1]|0;Bh=w[2]|0;Bl=w[3]|0;Ch=w[4]|0;Cl=w[5]|0;Dh=w[6]|0;Dl=w[7]|0;Eh=w[8]|0;El=w[9]|0;Fh=w[10]|0;Fl=w[11]|0;Gh=w[12]|0;Gl=w[13]|0;Hh=w[14]|0;Hl=w[15]|0;constructor(){super(64)}}class B0 extends $8{Ah=F[0]|0;Al=F[1]|0;Bh=F[2]|0;Bl=F[3]|0;Ch=F[4]|0;Cl=F[5]|0;Dh=F[6]|0;Dl=F[7]|0;Eh=F[8]|0;El=F[9]|0;Fh=F[10]|0;Fl=F[11]|0;Gh=F[12]|0;Gl=F[13]|0;Hh=F[14]|0;Hl=F[15]|0;constructor(){super(48)}}var M=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),L=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class P0 extends $8{Ah=M[0]|0;Al=M[1]|0;Bh=M[2]|0;Bl=M[3]|0;Ch=M[4]|0;Cl=M[5]|0;Dh=M[6]|0;Dl=M[7]|0;Eh=M[8]|0;El=M[9]|0;Fh=M[10]|0;Fl=M[11]|0;Gh=M[12]|0;Gl=M[13]|0;Hh=M[14]|0;Hl=M[15]|0;constructor(){super(28)}}class p0 extends $8{Ah=L[0]|0;Al=L[1]|0;Bh=L[2]|0;Bl=L[3]|0;Ch=L[4]|0;Cl=L[5]|0;Dh=L[6]|0;Dl=L[7]|0;Eh=L[8]|0;El=L[9]|0;Fh=L[10]|0;Fl=L[11]|0;Gh=L[12]|0;Gl=L[13]|0;Hh=L[14]|0;Hl=L[15]|0;constructor(){super(32)}}var j8=a8(()=>new N0,e8(1));class B8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,X){if(o(Q),P(X,void 0,"key"),this.iHash=Q.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let $=this.blockLen,Z=new Uint8Array($);Z.set(X.length>$?Q.create().update(X).digest():X);for(let q=0;q<Z.length;q++)Z[q]^=54;this.iHash.update(Z),this.oHash=Q.create();for(let q=0;q<Z.length;q++)Z[q]^=106;this.oHash.update(Z),T(Z)}update(Q){return d(this),this.iHash.update(Q),this}digestInto(Q){d(this),P(Q,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(Q),this.oHash.update(Q),this.oHash.digestInto(Q),this.destroy()}digest(){let Q=new Uint8Array(this.oHash.outputLen);return this.digestInto(Q),Q}_cloneInto(Q){Q||=Object.create(Object.getPrototypeOf(this),{});let{oHash:X,iHash:$,finished:Z,destroyed:q,blockLen:J,outputLen:R}=this;return Q=Q,Q.finished=Z,Q.destroyed=q,Q.blockLen=J,Q.outputLen=R,Q.oHash=X._cloneInto(Q.oHash),Q.iHash=$._cloneInto(Q.iHash),Q}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var n=(Q,X,$)=>new B8(Q,X).update($).digest();n.create=(Q,X)=>new B8(Q,X);function S0(Q,X,$){if(o(Q),$===void 0)$=new Uint8Array(Q.outputLen);return n(Q,$,X)}var P8=Uint8Array.of(0),U0=Uint8Array.of();function H0(Q,X,$,Z=32){o(Q),Y8(Z,"length");let q=Q.outputLen;if(Z>255*q)throw Error("Length must be <= 255*HashLen");let J=Math.ceil(Z/q);if($===void 0)$=U0;else P($,void 0,"info");let R=new Uint8Array(J*q),z=n.create(Q,X),U=z._cloneInto(),j=new Uint8Array(z.outputLen);for(let Y=0;Y<J;Y++)P8[0]=Y+1,U.update(Y===0?U0:j).update($).update(P8).digestInto(j),R.set(j,q*Y),z._cloneInto(U);return z.destroy(),U.destroy(),T(j,P8),R.slice(0,Z)}var j0=(Q,X,$,Z,q)=>H0(Q,S0(Q,X,$),Z,q);function l(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function K0(Q){return j8(l(Q))}function v8(Q,X){return n(j8,l(Q),l(X))}function _0(Q,X,{salt:$,info:Z}={}){let q=$?l($):new Uint8Array(32),J=l(Q),R=Z?l(Z):new Uint8Array(0);return j0(j8,J,q,R,X)}var v0="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function f0(Q){let X=0,$=0,Z="";for(let q=0;q<Q.length;q++){$=$<<8|Q[q],X+=8;while(X>=5)Z+=v0[$>>>X-5&31],X-=5}if(X>0)Z+=v0[$<<5-X&31];return Z}function K8(Q,X){let $=Math.ceil(X/8),Z=new Uint8Array($),q=Math.min($,Q.length);Z.set(Q.subarray(0,q));let J=$*8-X;if(J>0){let R=255<<J;Z[$-1]=Z[$-1]&R}return Z}function O8(Q,X){if(Q.length===0)throw Error("digestToDigits: empty digest");let $="",Z=Q[Q.length-1]&15;for(let q=0;$.length<X;q++){let J=(Z+q*4)%Math.max(1,Q.length-4),U=(((Q[J]&127)<<24|Q[J+1]<<16|Q[J+2]<<8|Q[J+3])%1e9).toString().padStart(9,"0");$+=U}return $.slice(0,X)}function p8(Q){let X=K0(Q);return Array.from(X).map(($)=>$.toString(16).padStart(2,"0")).join("")}var A0=1,u0="actioncodes",g0="actioncodes-revoke";function g(Q){let X=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart});return new TextEncoder().encode(X)}function W8(Q){let X=JSON.stringify({id:"actioncodes-revoke",ver:1,pubkey:Q.pubkey,codeHash:Q.codeHash,windowStart:Q.windowStart});return new TextEncoder().encode(X)}function s(Q,X){let $=Math.floor(Date.now()/X)*X;return g({pubkey:Q,windowStart:$})}function D8(Q){let X=JSON.stringify({walletPubkey:Q.walletPubkey,delegatedPubkey:Q.delegatedPubkey,expiresAt:Q.expiresAt,chain:Q.chain});return new TextEncoder().encode(X)}var G8="NFC",i=256,F8=6,w8=24,c0=8,h0="0123456789",d0=["solana"];var k8="actioncodes:";function L8(Q){let X=O0(Q);if(X.int!=null)M8(X.int);let $=[`ver=${X.ver}`,`id=${encodeURIComponent(X.id)}`,`int=${encodeURIComponent(X.int)}`];if(X.p!=null&&Object.keys(X.p).length>0){let q=JSON.stringify(X.p);M8(q),$.push(`p=${encodeURIComponent(q)}`)}let Z=k8+$.join("&");return W0(Z),Z}function Z8(Q){if(!Q.startsWith(k8))throw Error("protocol meta must start with actioncodes:");let $=Q.slice(k8.length).split("&").filter(Boolean),Z=new Map;for(let K of $){let[k,G]=K.split("=",2);if(!k)continue;let V=G!=null?decodeURIComponent(G):"";Z.set(k,V)}let q=Z.get("ver"),J=Z.get("id"),R=Z.get("int"),z=Z.get("p");if(q==null||J==null||R==null)throw Error("protocol meta missing required fields ver or id or int");let U=Number(q);if(!Number.isInteger(U)||U<=0)throw Error("protocol meta ver must be positive integer");let j;if(z!=null&&z!=="")try{if(j=JSON.parse(z),typeof j!=="object"||j===null||Array.isArray(j))throw Error("protocol meta p must be a JSON object")}catch{throw Error("protocol meta p must be valid JSON")}let Y=O0({ver:U,id:J,int:R,p:j});if(Y.int!=null)M8(Y.int);if(Y.p!=null)M8(JSON.stringify(Y.p));if([...Z.keys()].filter((K)=>K!=="ver"&&K!=="id"&&K!=="int"&&K!=="p").length>0)throw Error("protocol meta contains unsupported keys");return W0(L8(Y)),Y}function n0(Q){try{return Z8(Q),{ok:!0}}catch(X){return{ok:!1,reason:String(X)}}}function O0(Q){let X=Q.id.normalize(G8).trim(),$={ver:Q.ver,id:X,int:Q.int};if(Q.int!=null)$.int=Q.int.normalize(G8).trim();if(Q.p!=null)$.p=Q.p;return $}function W0(Q){if(new TextEncoder().encode(Q).length>i)throw Error(`protocol meta exceeds ${i} bytes`)}function M8(Q){if(new TextEncoder().encode(Q).length>i)throw Error(`protocol meta params exceed ${i} bytes`)}var D0;((D)=>{D.EXPIRED_CODE="EXPIRED_CODE";D.INVALID_CODE="INVALID_CODE";D.INVALID_CODE_FORMAT="INVALID_CODE_FORMAT";D.INVALID_SIGNATURE="INVALID_SIGNATURE";D.MISSING_META="MISSING_META";D.INVALID_META_FORMAT="INVALID_META_FORMAT";D.META_MISMATCH="META_MISMATCH";D.META_TOO_LARGE="META_TOO_LARGE";D.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER="TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER";D.INVALID_TRANSACTION_FORMAT="INVALID_TRANSACTION_FORMAT";D.INVALID_PUBKEY_FORMAT="INVALID_PUBKEY_FORMAT";D.INVALID_INPUT="INVALID_INPUT";D.MISSING_REQUIRED_FIELD="MISSING_REQUIRED_FIELD";D.CRYPTO_ERROR="CRYPTO_ERROR";D.INVALID_DIGEST="INVALID_DIGEST";D.INVALID_ADAPTER="INVALID_ADAPTER"})(D0||={});class N extends Error{code;details;constructor(Q,X,$){super(X);this.code=Q;this.details=$;this.name="ProtocolError"}static expiredCode(Q,X,$){return new S8(Q,X,$)}static invalidCode(Q,X){return new N("INVALID_CODE",`Invalid code: expected '${Q}', got '${X}'`,{expected:Q,actual:X})}static invalidCodeFormat(Q,X){return new g8(Q,X)}static invalidSignature(Q){return new u8(Q)}static missingMeta(){return new H8}static invalidMetaFormat(Q){return new N("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,X,$){return new _8(Q,X,$)}static metaTooLarge(Q,X){return new N("META_TOO_LARGE",`Protocol meta too large: ${X} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:X})}static transactionNotSignedByIntendedOwner(Q,X){return new f8(Q,X)}static invalidTransactionFormat(Q){return new N("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,X){return new A8(Q,X)}static invalidInput(Q,X,$){return new N("INVALID_INPUT",`Invalid ${Q}: ${$}`,{field:Q,value:X,reason:$})}static missingRequiredField(Q){return new N("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,X){return new N("CRYPTO_ERROR",`Crypto error in ${Q}: ${X}`,{operation:Q,reason:X})}static invalidDigest(Q){return new N("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new c8(Q)}static create(Q,X,$){return new N(Q,X,$)}}class S8 extends N{constructor(Q,X,$){super("EXPIRED_CODE",`Action code '${Q}' expired at ${X}, current time: ${$}`,{code:Q,expiresAt:X,currentTime:$});this.name="ExpiredCodeError"}}class H8 extends N{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class _8 extends N{constructor(Q,X,$){super("META_MISMATCH",`Meta ${$} mismatch: expected '${Q}', got '${X}'`,{expected:Q,actual:X,field:$});this.name="MetaMismatchError"}}class f8 extends N{constructor(Q,X){super("TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER",`Transaction not signed by intended owner '${Q}'. Actual signers: [${X.join(", ")}]`,{intended:Q,actualSigners:X});this.name="TransactionNotSignedByIntendedOwnerError"}}class A8 extends N{constructor(Q,X){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${X}`,{pubkey:Q,reason:X});this.name="InvalidPubkeyFormatError"}}class u8 extends N{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class g8 extends N{constructor(Q,X){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${X}`,{code:Q,reason:X});this.name="InvalidCodeFormatError"}}class c8 extends N{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}var h8=x8(require("bs58"));class r{config;constructor(Q){this.config=Q}generateCode(Q,X){let $=Q,Z=JSON.parse(new TextDecoder().decode($)),q=Z.pubkey,J=Z.windowStart,R=h8.default.decode(X),z=v8(R,$),U=Math.max(F8,Math.min(w8,this.config.codeLength)),j=8*Math.ceil(U/2),Y=K8(z,j);return{actionCode:{code:O8(Y,U),pubkey:q,timestamp:J,expiresAt:J+this.config.ttlMs,signature:X},canonicalMessage:$}}validateCode(Q){let X=Date.now();if(X>Q.expiresAt+(this.config.clockSkewMs??0))throw N.expiredCode(Q.code,Q.expiresAt,X);let $=g({pubkey:Q.pubkey,windowStart:Q.timestamp});if(!Q.signature)throw N.missingRequiredField("signature");let Z=h8.default.decode(Q.signature),q=v8(Z,$),J=Math.max(F8,Math.min(w8,this.config.codeLength)),R=K8(q,8*Math.ceil(J/2)),z=O8(R,J);if(z!==Q.code)throw N.invalidCode(z,Q.code)}getCanonicalMessageParts(Q){return s(Q,this.config.ttlMs)}}var d8=require("@solana/web3.js");class V8{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new r(Q)}generateDelegatedCode(Q,X){this.validateDelegationProof(Q);let $=s(Q.delegatedPubkey,this.config.ttlMs);return{actionCode:{...this.walletStrategy.generateCode($,X).actionCode,delegationProof:Q,delegatedSignature:X}}}validateDelegatedCode(Q,X){if(this.walletStrategy.validateCode(Q),this.validateDelegationProof(X),Q.delegationProof.walletPubkey!==X.walletPubkey)throw N.invalidInput("walletPubkey",Q.delegationProof.walletPubkey,"Action code wallet pubkey does not match delegation proof");if(Q.delegationProof.delegatedPubkey!==X.delegatedPubkey)throw N.invalidInput("delegatedPubkey",Q.delegationProof.delegatedPubkey,"Invalid delegatedPubkey: Action code delegated pubkey does not match delegation proof");if(Q.delegationProof.expiresAt!==X.expiresAt)throw N.invalidInput("expiresAt",Q.delegationProof.expiresAt,"Action code delegation expiration does not match delegation proof");if(Q.delegationProof.signature!==X.signature)throw N.invalidInput("signature",Q.delegationProof.signature,"Invalid signature: Action code delegation signature does not match delegation proof");if(!Q.delegatedSignature)throw N.missingRequiredField("delegatedSignature")}validateDelegationProof(Q){if(!Q.walletPubkey||typeof Q.walletPubkey!=="string")throw N.invalidInput("walletPubkey",Q.walletPubkey,"Wallet pubkey is required and must be a string");try{new d8.PublicKey(Q.walletPubkey)}catch{throw N.invalidInput("walletPubkey",Q.walletPubkey,"Invalid wallet pubkey format")}if(!Q.delegatedPubkey||typeof Q.delegatedPubkey!=="string")throw N.invalidInput("delegatedPubkey",Q.delegatedPubkey,"Delegated pubkey is required and must be a string");try{new d8.PublicKey(Q.delegatedPubkey)}catch{throw N.invalidInput("delegatedPubkey",Q.delegatedPubkey,"Invalid delegated pubkey format")}if(!Q.chain||typeof Q.chain!=="string")throw N.invalidInput("chain",Q.chain,"Chain is required and must be a string");if(Q.chain.length===0||Q.chain.length>50)throw N.invalidInput("chain",Q.chain,"Chain must be between 1 and 50 characters");if(!/^[a-z0-9-]+$/.test(Q.chain))throw N.invalidInput("chain",Q.chain,"Chain contains invalid characters (only lowercase letters, numbers, and hyphens allowed)");if(typeof Q.expiresAt!=="number"||!Number.isInteger(Q.expiresAt))throw N.invalidInput("expiresAt",Q.expiresAt,"Expiration time must be a valid integer timestamp");if(Q.expiresAt<=0)throw N.invalidInput("expiresAt",Q.expiresAt,"Expiration time must be positive");let X=Date.now(),$=31536000000;if(Q.expiresAt>X+$)throw N.invalidInput("expiresAt",Q.expiresAt,"Expiration time is too far in the future");if(Q.expiresAt<X)throw N.expiredCode("Delegation proof has expired",Q.expiresAt,X);if(!Q.signature||typeof Q.signature!=="string")throw N.invalidInput("signature",Q.signature,"Delegation signature is required and must be a string");if(Q.signature.length===0||Q.signature.length>200)throw N.invalidInput("signature",Q.signature,"Delegation signature must be between 1 and 200 characters")}getWalletStrategy(){return this.walletStrategy}getCanonicalMessageParts(Q){return s(Q,this.config.ttlMs)}}var _=x8(require("tweetnacl")),c=x8(require("bs58")),W=require("@solana/web3.js"),f=require("@solana/spl-memo");var h="solana";class a extends R8{normalizePubkey(Q){if(typeof Q==="string")return new W.PublicKey(Q);return Q}verifyWithWallet(Q){if(Q.chain!==h)return!1;if(!Q.message||!Q.message.pubkey||!Q.walletSignature)return!1;try{let X=g(Q.message),$=this.normalizePubkey(Q.message.pubkey),Z=c.default.decode(Q.walletSignature),q=$.toBytes();if(Z.length!==64||q.length!==32)return!1;return _.default.sign.detached.verify(X,Z,q)}catch{return!1}}verifyWithDelegation(Q){if(Q.chain!==h)return!1;if(!Q.message.pubkey||!Q.delegatedSignature||!Q.delegationProof)return!1;let X=Q.delegationProof;if(!X.walletPubkey||!X.delegatedPubkey||!X.chain||!X.expiresAt||!X.signature)return!1;if(X.chain!==h)return!1;if(X.delegatedPubkey!==Q.message.pubkey)return!1;if(X.expiresAt<Date.now())return!1;try{let $=D8(X),Z=this.normalizePubkey(X.walletPubkey),q=c.default.decode(X.signature),J=Z.toBytes(),R=g(Q.message),z=this.normalizePubkey(X.delegatedPubkey),U=c.default.decode(Q.delegatedSignature),j=z.toBytes();if(q.length!==64||J.length!==32)return!1;if(U.length!==64||j.length!==32)return!1;let Y=_.default.sign.detached.verify($,q,J),v=_.default.sign.detached.verify(R,U,j);return Y&&v}catch{return!1}}verifyRevokeWithWallet(Q){if(Q.chain!==h)return!1;if(!Q.message||!Q.message.pubkey||!Q.walletSignature)return!1;try{let X=W8(Q.message),$=this.normalizePubkey(Q.message.pubkey),Z=c.default.decode(Q.walletSignature),q=$.toBytes();if(Z.length!==64||q.length!==32)return!1;return _.default.sign.detached.verify(X,Z,q)}catch{return!1}}verifyRevokeWithDelegation(Q){if(Q.chain!==h)return!1;if(!Q.message||!Q.message.pubkey||!Q.delegatedSignature||!Q.delegationProof)return!1;let X=Q.delegationProof;if(!X.walletPubkey||!X.delegatedPubkey||!X.chain||!X.expiresAt||!X.signature)return!1;if(X.chain!==h)return!1;if(X.delegatedPubkey!==Q.message.pubkey)return!1;if(X.expiresAt<Date.now())return!1;try{let $=D8(X),Z=this.normalizePubkey(X.walletPubkey),q=c.default.decode(X.signature),J=Z.toBytes();if(q.length!==64||J.length!==32)return!1;if(!_.default.sign.detached.verify($,q,J))return!1;let z=W8(Q.message),U=this.normalizePubkey(X.delegatedPubkey),j=c.default.decode(Q.delegatedSignature),Y=U.toBytes();if(j.length!==64||Y.length!==32)return!1;return _.default.sign.detached.verify(z,j,Y)}catch{return!1}}static createProtocolMetaIx(Q){let X=L8(Q);return f.createMemoInstruction(X)}getProtocolMeta(Q){try{let X=this.deserializeTransaction(Q);for(let $ of this.getMemoInstructions(X)){let Z=$.data;try{let q=new TextDecoder().decode(Z);if(Z8(q))return q}catch{}}return null}catch{return null}}deserializeTransaction(Q){try{let X=W.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if(X.message instanceof W.MessageV0)return X;else return W.Transaction.from(Buffer.from(Q,"base64"))}catch{try{return W.Transaction.from(Buffer.from(Q,"base64"))}catch{throw N.invalidTransactionFormat("Invalid base64 transaction format")}}}parseMeta(Q){let X=this.getProtocolMeta(Q);if(!X)return null;return Z8(X)}getMemoInstructions(Q){if(Q instanceof W.Transaction)return Q.instructions.filter((X)=>X.programId.equals(f.MEMO_PROGRAM_ID));else{let $=Q.message;if($ instanceof W.MessageV0){let Z=[];for(let q of $.compiledInstructions){let J=$.staticAccountKeys[q.programIdIndex];if(J&&J.equals(f.MEMO_PROGRAM_ID)){let R=q.accountKeyIndexes.map((z)=>({pubkey:$.staticAccountKeys[z],isSigner:!1,isWritable:!1}));Z.push(new W.TransactionInstruction({keys:R,programId:J,data:q.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,X){let $=Date.now();if($>Q.expiresAt)throw N.expiredCode(Q.code,Q.expiresAt,$);let Z=this.parseMeta(X);if(!Z)throw N.missingMeta();if(Z.ver!==2)throw N.metaMismatch("2",String(Z.ver),"ver");let q=p8(Q.code);if(Z.id!==q)throw N.metaMismatch(q,Z.id,"id");if(Z.int!==Q.pubkey)throw N.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let X=this.parseMeta(Q);if(!X)throw N.missingMeta();let $=X.int;if(!$)throw N.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new W.PublicKey($)}catch{throw N.invalidPubkeyFormat($,"Invalid public key format")}let q=this.deserializeTransaction(Q),J=[];if(q instanceof W.Transaction){if(!q.signatures.some((z)=>{if(!z.signature)return!1;return J.push(z.publicKey.toString()),z.publicKey.equals(Z)}))throw N.transactionNotSignedByIntendedOwner($,J);return}if(q instanceof W.VersionedTransaction){let R=q.message;if(R instanceof W.MessageV0){let z=R.header.numRequiredSignatures;for(let U=0;U<z;U++){let j=R.staticAccountKeys[U];if(j){if(J.push(j.toString()),j.equals(Z))return}}throw N.transactionNotSignedByIntendedOwner($,J)}}throw N.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,X){if(new a().getProtocolMeta(Q))throw N.invalidTransactionFormat("Transaction already contains protocol meta. Cannot attach additional protocol meta.");let q=a.createProtocolMetaIx(X);try{let J=W.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if(J.message instanceof W.MessageV0){let R=J.message,z=[...R.staticAccountKeys];if(!z.some((K)=>K.equals(f.MEMO_PROGRAM_ID)))z.push(f.MEMO_PROGRAM_ID);let j={programIdIndex:z.findIndex((K)=>K.equals(f.MEMO_PROGRAM_ID)),accountKeyIndexes:[],data:q.data},Y=new W.MessageV0({header:R.header,staticAccountKeys:z,recentBlockhash:R.recentBlockhash,compiledInstructions:[...R.compiledInstructions,j],addressTableLookups:R.addressTableLookups}),v=new W.VersionedTransaction(Y);return v.signatures=J.signatures,Buffer.from(v.serialize()).toString("base64")}else{let R=W.Transaction.from(Buffer.from(Q,"base64"));return R.add(q),Buffer.from(R.serialize({requireAllSignatures:!1})).toString("base64")}}catch{try{let J=W.Transaction.from(Buffer.from(Q,"base64"));return J.add(q),Buffer.from(J.serialize({requireAllSignatures:!1})).toString("base64")}catch{throw N.invalidTransactionFormat("Invalid base64 transaction format")}}}}class G0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new a,this._walletStrategy=new r(Q),this._delegationStrategy=new V8(Q)}getConfig(){return this.config}registerAdapter(Q,X){this.adapters[Q]=X}getAdapter(Q){return this.adapters[Q]}get adapter(){return{solana:this.adapters.solana}}get walletStrategy(){return this._walletStrategy}get delegationStrategy(){return this._delegationStrategy}generateCode(Q,X,$){if(Q==="wallet"){if(!$)throw N.invalidSignature("Missing signature over canonical message");return this.walletStrategy.generateCode(X,$)}else{if(!$)throw N.invalidSignature("Missing delegated signature");return this.delegationStrategy.generateDelegatedCode(X,$)}}validateCode(Q,X,$){if(Q==="wallet"){if(this.walletStrategy.validateCode(X),!$)return;let Z=$,q=this.getAdapter(Z.chain);if(!q)throw N.invalidAdapter(Z.chain);if(!q.verifyWithWallet({...Z,message:{pubkey:X.pubkey,windowStart:X.timestamp}}))throw N.invalidSignature("Wallet signature verification failed")}else{let Z=$;this.delegationStrategy.validateDelegatedCode(X,Z.delegationProof);let q=this.getAdapter(Z.chain);if(!q)throw N.invalidAdapter(Z.chain);if(!q.verifyWithDelegation({...Z,message:{pubkey:X.pubkey,windowStart:X.timestamp}}))throw N.invalidSignature("Delegation signature verification failed")}}}
|
2
2
|
|
3
|
-
//# debugId=
|
3
|
+
//# debugId=15E5FAF408DAAB9B64756E2164756E21
|