@actioncodes/protocol 2.0.2 → 2.0.4
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/index.cjs +2 -2
- package/dist/index.cjs.map +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/strategy/WalletStrategy.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
var G0=Object.create;var{getPrototypeOf:O0,defineProperty:i,getOwnPropertyNames:p8,getOwnPropertyDescriptor:F0}=Object,f8=Object.prototype.hasOwnProperty;var H8=(Q,$,q)=>{q=Q!=null?G0(O0(Q)):{};let Z=$||!Q||!Q.__esModule?i(q,"default",{value:Q,enumerable:!0}):q;for(let X of p8(Q))if(!f8.call(Z,X))i(Z,X,{get:()=>Q[X],enumerable:!0});return Z},m8=new WeakMap,P0=(Q)=>{var $=m8.get(Q),q;if($)return $;if($=i({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")p8(Q).map((Z)=>!f8.call($,Z)&&i($,Z,{get:()=>Q[Z],enumerable:!(q=F0(Q,Z))||q.enumerable}));return m8.set(Q,$),$};var v0=(Q,$)=>{for(var q in $)i(Q,q,{get:$[q],enumerable:!0,configurable:!0,set:(Z)=>$[q]=()=>Z})};var _0={};v0(_0,{truncateBits:()=>j8,sha256:()=>u,serializeCanonical:()=>C,hmacSha256:()=>n,hkdfSha256:()=>C0,generateRandomSecret:()=>m0,generateNonce:()=>I8,digestToDigits:()=>K8,codeHash:()=>V8,base32EncodeCrockford:()=>y0,WalletStrategy:()=>r,SolanaAdapter:()=>q8,SUPPORTED_CHAINS:()=>g0,PROTOCOL_NORMALIZATION:()=>R8,PROTOCOL_META_MAX_BYTES:()=>c,DelegationStrategy:()=>V,CODE_MIN_LENGTH:()=>G8,CODE_MAX_LENGTH:()=>O8,CODE_DEFAULT_LENGTH:()=>H0,CODE_CHARSET_DIGITS:()=>S0,CANONICAL_MESSAGE_VERSION:()=>p0,CANONICAL_MESSAGE_PREFIX:()=>f0,BaseChainAdapter:()=>a,ActionCodesProtocol:()=>K0});module.exports=P0(_0);class a{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function D0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function J8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function p(Q,$,q=""){let Z=D0(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 e(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");J8(Q.outputLen),J8(Q.blockLen)}function d(Q,$=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if($&&Q.finished)throw Error("Hash#digest() has already been called")}function S8(Q,$){p(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 Y8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function k(Q,$){return Q<<32-$|Q>>>$}function g8(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 _8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function A8(Q,$,q){return Q&$^~Q&q}function u8(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=Y8(this.buffer)}update(Q){d(this),p(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=Y8(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){d(this),S8(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 N=J;N<Z;N++)$[N]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=Y8(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 N=0;N<U;N++)Y.setUint32(4*N,K[N],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 b=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),B=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),v=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),D=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var z8=BigInt(4294967295),d8=BigInt(32);function W0(Q,$=!1){if($)return{h:Number(Q&z8),l:Number(Q>>d8&z8)};return{h:Number(Q>>d8&z8)|0,l:Number(Q&z8)|0}}function h8(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}=W0(Q[J],$);[Z[J],X[J]]=[Y,z]}return[Z,X]}var w8=(Q,$,q)=>Q>>>q,L8=(Q,$,q)=>Q<<32-q|$>>>q,_=(Q,$,q)=>Q>>>q|$<<32-q,A=(Q,$,q)=>Q<<32-q|$>>>q,t=(Q,$,q)=>Q<<64-q|$>>>q-32,Q8=(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 l8=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),n8=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,c8=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),r8=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,o8=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),s8=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var L0=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]),f=new Uint32Array(64);class M8 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 N=0;N<16;N++,$+=4)f[N]=Q.getUint32($,!1);for(let N=16;N<64;N++){let R=f[N-15],G=f[N-2],F=k(R,7)^k(R,18)^R>>>3,P=k(G,17)^k(G,19)^G>>>10;f[N]=P+f[N-7]+F+f[N-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:z,G:U,H:K}=this;for(let N=0;N<64;N++){let R=k(Y,6)^k(Y,11)^k(Y,25),G=K+R+A8(Y,z,U)+L0[N]+f[N]|0,P=(k(q,2)^k(q,13)^k(q,22))+u8(q,Z,X)|0;K=U,U=z,z=Y,Y=J+G|0,J=X,X=Z,Z=q,q=G+P|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(f)}destroy(){this.set(0,0,0,0,0,0,0,0),T(this.buffer)}}class i8 extends M8{A=b[0]|0;B=b[1]|0;C=b[2]|0;D=b[3]|0;E=b[4]|0;F=b[5]|0;G=b[6]|0;H=b[7]|0;constructor(){super(32)}}class M0 extends M8{A=B[0]|0;B=B[1]|0;C=B[2]|0;D=B[3]|0;E=B[4]|0;F=B[5]|0;G=B[6]|0;H=B[7]|0;constructor(){super(28)}}var a8=(()=>h8(["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))))(),T0=(()=>a8[0])(),k0=(()=>a8[1])(),H=new Uint32Array(80),S=new Uint32Array(80);class $8 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:N,Fl:R,Gh:G,Gl:F,Hh:P,Hl:M}=this;return[Q,$,q,Z,X,J,Y,z,U,K,N,R,G,F,P,M]}set(Q,$,q,Z,X,J,Y,z,U,K,N,R,G,F,P,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=N|0,this.Fl=R|0,this.Gh=G|0,this.Gl=F|0,this.Hh=P|0,this.Hl=M|0}process(Q,$){for(let O=0;O<16;O++,$+=4)H[O]=Q.getUint32($),S[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let y=H[O-15]|0,m=S[O-15]|0,P8=_(y,m,1)^_(y,m,8)^w8(y,m,7),v8=A(y,m,1)^A(y,m,8)^L8(y,m,7),E=H[O-2]|0,x=S[O-2]|0,Z8=_(E,x,19)^t(E,x,61)^w8(E,x,6),D8=A(E,x,19)^Q8(E,x,61)^L8(E,x,6),X8=c8(v8,D8,S[O-7],S[O-16]),W8=r8(X8,P8,Z8,H[O-7],H[O-16]);H[O]=W8|0,S[O]=X8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:z,Dh:U,Dl:K,Eh:N,El:R,Fh:G,Fl:F,Gh:P,Gl:M,Hh:o,Hl:s}=this;for(let O=0;O<80;O++){let y=_(N,R,14)^_(N,R,18)^t(N,R,41),m=A(N,R,14)^A(N,R,18)^Q8(N,R,41),P8=N&G^~N&P,v8=R&F^~R&M,E=o8(s,m,v8,k0[O],S[O]),x=s8(E,o,y,P8,T0[O],H[O]),Z8=E|0,D8=_(q,Z,28)^t(q,Z,34)^t(q,Z,39),X8=A(q,Z,28)^Q8(q,Z,34)^Q8(q,Z,39),W8=q&X^q&Y^X&Y,R0=Z&J^Z&z^J&z;o=P|0,s=M|0,P=G|0,M=F|0,G=N|0,F=R|0,{h:N,l:R}=I(U|0,K|0,x|0,Z8|0),U=Y|0,K=z|0,Y=X|0,z=J|0,X=q|0,J=Z|0;let y8=l8(Z8,X8,R0);q=n8(y8,x,D8,W8),Z=y8|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:N,l:R}=I(this.Eh|0,this.El|0,N|0,R|0),{h:G,l:F}=I(this.Fh|0,this.Fl|0,G|0,F|0),{h:P,l:M}=I(this.Gh|0,this.Gl|0,P|0,M|0),{h:o,l:s}=I(this.Hh|0,this.Hl|0,o|0,s|0),this.set(q,Z,X,J,Y,z,U,K,N,R,G,F,P,M,o,s)}roundClean(){T(H,S)}destroy(){T(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class V0 extends $8{Ah=D[0]|0;Al=D[1]|0;Bh=D[2]|0;Bl=D[3]|0;Ch=D[4]|0;Cl=D[5]|0;Dh=D[6]|0;Dl=D[7]|0;Eh=D[8]|0;El=D[9]|0;Fh=D[10]|0;Fl=D[11]|0;Gh=D[12]|0;Gl=D[13]|0;Hh=D[14]|0;Hl=D[15]|0;constructor(){super(64)}}class I0 extends $8{Ah=v[0]|0;Al=v[1]|0;Bh=v[2]|0;Bl=v[3]|0;Ch=v[4]|0;Cl=v[5]|0;Dh=v[6]|0;Dl=v[7]|0;Eh=v[8]|0;El=v[9]|0;Fh=v[10]|0;Fl=v[11]|0;Gh=v[12]|0;Gl=v[13]|0;Hh=v[14]|0;Hl=v[15]|0;constructor(){super(48)}}var w=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 E0 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(28)}}class x0 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 U8=g8(()=>new i8,_8(1));class T8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(e(Q),p($,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 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:$,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 h=(Q,$,q)=>new T8(Q,$).update(q).digest();h.create=(Q,$)=>new T8(Q,$);function b0(Q,$,q){if(e(Q),q===void 0)q=new Uint8Array(Q.outputLen);return h(Q,q,$)}var k8=Uint8Array.of(0),e8=Uint8Array.of();function B0(Q,$,q,Z=32){e(Q),J8(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=e8;else p(q,void 0,"info");let Y=new Uint8Array(J*X),z=h.create(Q,$),U=z._cloneInto(),K=new Uint8Array(z.outputLen);for(let N=0;N<J;N++)k8[0]=N+1,U.update(N===0?e8:K).update(q).update(k8).digestInto(K),Y.set(K,X*N),z._cloneInto(U);return z.destroy(),U.destroy(),T(K,k8),Y.slice(0,Z)}var t8=(Q,$,q,Z,X)=>B0(Q,b0(Q,$,q),Z,X);function l(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function u(Q){return U8(l(Q))}function n(Q,$){return h(U8,l(Q),l($))}function C0(Q,$,{salt:q,info:Z}={}){let X=q?l(q):new Uint8Array(32),J=l(Q),Y=Z?l(Z):new Uint8Array(0);return t8(U8,J,X,Y,$)}var Q0="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function y0(Q){let $=0,q=0,Z="";for(let X=0;X<Q.length;X++){q=q<<8|Q[X],$+=8;while($>=5)Z+=Q0[q>>>$-5&31],$-=5}if($>0)Z+=Q0[q<<5-$&31];return Z}function j8(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 K8(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 V8(Q){let $=u(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function m0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}function I8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var p0=1,f0="actioncodes";function C(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}var R8="NFC",c=256,G8=6,O8=24,H0=8,S0="0123456789",g0=["solana"];class j extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new $0(Q,$,q)}static invalidCode(Q,$){return new j("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new N0(Q,$)}static invalidSignature(Q){return new Y0(Q)}static missingMeta(){return new q0}static invalidMetaFormat(Q){return new j("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new Z0(Q,$,q)}static metaTooLarge(Q,$){return new j("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new X0(Q,$)}static invalidTransactionFormat(Q){return new j("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new J0(Q,$)}static invalidInput(Q,$,q){return new j("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new j("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new j("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new j("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new z0(Q)}static create(Q,$,q){return new j(Q,$,q)}}class $0 extends j{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class q0 extends j{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class Z0 extends j{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class X0 extends j{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 J0 extends j{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class Y0 extends j{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class N0 extends j{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class z0 extends j{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}class r{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 F=new TextEncoder().encode($);U=n(F,Z)}else if(z)U=n(z,Z);else U=u(Z);let K=Math.max(G8,Math.min(O8,this.config.codeLength)),N=j8(U,8*Math.ceil(K/2));return{actionCode:{code:K8(N,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 j.expiredCode(Q.code,Q.expiresAt,$);let q=C({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let z=new TextEncoder().encode(Q.signature);Z=n(z,q)}else if(Q.secret)Z=n(Q.secret,q);else Z=u(q);let X=Math.max(G8,Math.min(O8,this.config.codeLength)),J=j8(Z,8*Math.ceil(X/2)),Y=K8(J,X);if(Y!==Q.code)throw j.invalidCode(Y,Q.code)}}class V{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new r(Q)}static createDelegationCertificateTemplate(Q,$=3600000,q="solana"){let Z=Date.now();return{version:"1.0",delegator:Q,issuedAt:Z,expiresAt:Z+$,nonce:I8(),chain:q}}generateDelegatedCode(Q){if(!this.validateCertificate(Q))throw Error("Invalid delegation certificate");let $=V.hashCertificate(Q),q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs,Z=C({pubkey:Q.delegator,windowStart:q,secret:$});return{actionCode:{...this.walletStrategy.generateCode(Z,"",$).actionCode,delegationId:V.hashCertificate(Q),delegatedBy:Q.delegator}}}validateDelegatedCode(Q,$){if(this.walletStrategy.validateCode(Q),!this.validateCertificate($))throw Error("Delegation certificate expired or invalid");if(Q.delegationId!==V.hashCertificate($))throw Error("Action code does not match delegation certificate");if(Q.delegatedBy!==$.delegator)throw Error("Action code delegator does not match certificate")}validateCertificate(Q){if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;return!0}static serializeCertificate(Q){let $=JSON.stringify({version:Q.version,delegator:Q.delegator,issuedAt:Q.issuedAt,expiresAt:Q.expiresAt,nonce:Q.nonce,chain:Q.chain});return new TextEncoder().encode($)}static hashCertificate(Q){let $=this.serializeCertificate(Q),q=new TextEncoder().encode(Q.signature),Z=new Uint8Array($.length+q.length);Z.set($,0),Z.set(q,$.length);let X=u(Z);return Array.from(X).map((J)=>J.toString(16).padStart(2,"0")).join("")}static validateCertificateStructure(Q){if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;return!0}getWalletStrategy(){return this.walletStrategy}}var B8=H8(require("tweetnacl")),C8=H8(require("bs58")),W=require("@solana/web3.js"),g=require("@solana/spl-memo");var E8="actioncodes:";function x8(Q){let $=U0(Q);if($.int!=null)F8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);F8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=E8+q.join("&");return j0(Z),Z}function b8(Q){if(!Q.startsWith(E8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(E8.length).split("&").filter(Boolean),Z=new Map;for(let G of q){let[F,P]=G.split("=",2);if(!F)continue;let M=P!=null?decodeURIComponent(P):"";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 N=U0({ver:U,id:J,int:Y,p:K});if(N.int!=null)F8(N.int);if(N.p!=null)F8(JSON.stringify(N.p));if([...Z.keys()].filter((G)=>G!=="ver"&&G!=="id"&&G!=="int"&&G!=="p").length>0)throw Error("protocol meta contains unsupported keys");return j0(x8(N)),N}function U0(Q){let $=Q.id.normalize(R8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(R8).trim();if(Q.p!=null)q.p=Q.p;return q}function j0(Q){if(new TextEncoder().encode(Q).length>c)throw Error(`protocol meta exceeds ${c} bytes`)}function F8(Q){if(new TextEncoder().encode(Q).length>c)throw Error(`protocol meta params exceed ${c} bytes`)}class q8 extends a{normalizePubkey(Q){if(typeof Q==="string")return new W.PublicKey(Q);return Q}verifyWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalMessageParts)return!1;try{let $=C(Q.canonicalMessageParts),q=this.normalizePubkey(Q.pubkey),Z=C8.default.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return B8.default.sign.detached.verify($,Z,X)}catch{return!1}}verifyWithDelegation(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.certificate)return!1;let $=Q.certificate;if(!V.validateCertificateStructure($))return!1;if($.delegator!==Q.pubkey)return!1;if($.chain!==Q.chain)return!1;try{let q={version:$.version,delegator:$.delegator,issuedAt:$.issuedAt,expiresAt:$.expiresAt,nonce:$.nonce,chain:$.chain},Z=V.serializeCertificate(q),X=this.normalizePubkey(Q.pubkey),J=C8.default.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return B8.default.sign.detached.verify(Z,J,Y)}catch{return!1}}static createProtocolMetaIx(Q){let $=x8(Q);return g.createMemoInstruction($)}getProtocolMeta(Q){for(let $ of this.getMemoInstructions(Q)){let q=$.data;try{let Z=new TextDecoder().decode(q);if(b8(Z))return Z}catch{}}return null}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return b8($)}getMemoInstructions(Q){if(Q instanceof W.Transaction)return Q.instructions.filter(($)=>$.programId.equals(g.MEMO_PROGRAM_ID));else{let q=Q.message;if(q instanceof W.MessageV0){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(g.MEMO_PROGRAM_ID)){let Y=X.accountKeyIndexes.map((z)=>({pubkey:q.staticAccountKeys[z],isSigner:!1,isWritable:!1}));Z.push(new W.TransactionInstruction({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw j.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw j.missingMeta();if(Z.ver!==2)throw j.metaMismatch("2",String(Z.ver),"ver");let X=V8(Q.code);if(Z.id!==X)throw j.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw j.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw j.missingMeta();let q=$.int;if(!q)throw j.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new W.PublicKey(q)}catch{throw j.invalidPubkeyFormat(q,"Invalid public key format")}let X=[];if(Q instanceof W.Transaction){if(!Q.signatures.some((Y)=>{if(!Y.signature)return!1;return X.push(Y.publicKey.toString()),Y.publicKey.equals(Z)}))throw j.transactionNotSignedByIntendedOwner(q,X);return}if(Q instanceof W.VersionedTransaction){let J=Q.message;if(J instanceof W.MessageV0){let Y=J.header.numRequiredSignatures;for(let z=0;z<Y;z++){let U=J.staticAccountKeys[z];if(U){if(X.push(U.toString()),U.equals(Z))return}}throw j.transactionNotSignedByIntendedOwner(q,X)}}throw j.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){let q=q8.createProtocolMetaIx($);if(Q instanceof W.Transaction)return Q.add(q),Q;if(Q instanceof W.VersionedTransaction){let Z=Q.message,X=[...Z.staticAccountKeys];if(!X.some((K)=>K.equals(g.MEMO_PROGRAM_ID)))X.push(g.MEMO_PROGRAM_ID);let Y={programIdIndex:X.findIndex((K)=>K.equals(g.MEMO_PROGRAM_ID)),accountKeyIndexes:[],data:q.data},z=new W.MessageV0({header:Z.header,staticAccountKeys:X,recentBlockhash:Z.recentBlockhash,compiledInstructions:[...Z.compiledInstructions,Y],addressTableLookups:Z.addressTableLookups}),U=new W.VersionedTransaction(z);return U.signatures=Q.signatures,U}throw Error("Unsupported transaction type")}}class K0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new q8,this._walletStrategy=new r(Q),this._delegationStrategy=new V(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}getCanonicalMessageParts(Q,$){let q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs;return C({pubkey:Q,windowStart:q,secret:$})}get delegationStrategy(){return this._delegationStrategy}createDelegationCertificateTemplate(Q,$=3600000,q="solana"){return V.createDelegationCertificateTemplate(Q,$,q)}generateCode(Q,$,q,Z){if(Q==="wallet"){if(!q)throw j.invalidSignature("Missing signature over canonical message");return this.walletStrategy.generateCode($,q,Z)}else return this.delegationStrategy.generateDelegatedCode($)}validateCode(Q,$,q){if(Q==="wallet"){if(this.walletStrategy.validateCode($),!q)return;let Z=q,X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithWallet({...Z,canonicalMessageParts:{pubkey:$.pubkey,windowStart:$.timestamp}}))throw Error("Signature verification failed")}else{let Z=q;this.delegationStrategy.validateDelegatedCode($,Z);let X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}
|
1
|
+
var F0=Object.create;var{getPrototypeOf:P0,defineProperty:i,getOwnPropertyNames:l8,getOwnPropertyDescriptor:v0}=Object,n8=Object.prototype.hasOwnProperty;var w8=(Q,$,q)=>{q=Q!=null?F0(P0(Q)):{};let Z=$||!Q||!Q.__esModule?i(q,"default",{value:Q,enumerable:!0}):q;for(let X of l8(Q))if(!n8.call(Z,X))i(Z,X,{get:()=>Q[X],enumerable:!0});return Z},h8=new WeakMap,D0=(Q)=>{var $=h8.get(Q),q;if($)return $;if($=i({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")l8(Q).map((Z)=>!n8.call($,Z)&&i($,Z,{get:()=>Q[Z],enumerable:!(q=v0(Q,Z))||q.enumerable}));return h8.set(Q,$),$};var W0=(Q,$)=>{for(var q in $)i(Q,q,{get:$[q],enumerable:!0,configurable:!0,set:(Z)=>$[q]=()=>Z})};var u0={};W0(u0,{truncateBits:()=>j8,sha256:()=>d,serializeCanonical:()=>m,hmacSha256:()=>c,hkdfSha256:()=>y0,generateRandomSecret:()=>f0,generateNonce:()=>E8,digestToDigits:()=>K8,codeHash:()=>I8,base32EncodeCrockford:()=>p0,WalletStrategy:()=>o,TransactionNotSignedByIntendedOwnerError:()=>C8,SolanaAdapter:()=>q8,SUPPORTED_CHAINS:()=>A0,ProtocolErrorCode:()=>j0,ProtocolError:()=>j,PROTOCOL_NORMALIZATION:()=>R8,PROTOCOL_META_MAX_BYTES:()=>r,MissingMetaError:()=>b8,MetaMismatchError:()=>B8,InvalidSignatureError:()=>y8,InvalidPubkeyFormatError:()=>m8,InvalidCodeFormatError:()=>p8,InvalidAdapterError:()=>f8,ExpiredCodeError:()=>x8,DelegationStrategy:()=>I,CODE_MIN_LENGTH:()=>G8,CODE_MAX_LENGTH:()=>O8,CODE_DEFAULT_LENGTH:()=>g0,CODE_CHARSET_DIGITS:()=>_0,CANONICAL_MESSAGE_VERSION:()=>H0,CANONICAL_MESSAGE_PREFIX:()=>S0,BaseChainAdapter:()=>a,ActionCodesProtocol:()=>G0});module.exports=D0(u0);class a{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function w0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function J8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function f(Q,$,q=""){let Z=w0(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 e(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");J8(Q.outputLen),J8(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 c8(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 k(...Q){for(let $=0;$<Q.length;$++)Q[$].fill(0)}function Y8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function V(Q,$){return Q<<32-$|Q>>>$}function r8(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 o8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function s8(Q,$,q){return Q&$^~Q&q}function i8(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=Y8(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=Y8(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),c8(Q,this),this.finished=!0;let{buffer:$,view:q,blockLen:Z,isLE:X}=this,{pos:J}=this;if($[J++]=128,k(this.buffer.subarray(J)),this.padOffset>Z-J)this.process(q,0),J=0;for(let N=J;N<Z;N++)$[N]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=Y8(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 N=0;N<U;N++)Y.setUint32(4*N,K[N],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 B=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),C=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),D=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 z8=BigInt(4294967295),a8=BigInt(32);function L0(Q,$=!1){if($)return{h:Number(Q&z8),l:Number(Q>>a8&z8)};return{h:Number(Q>>a8&z8)|0,l:Number(Q&z8)|0}}function e8(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}=L0(Q[J],$);[Z[J],X[J]]=[Y,z]}return[Z,X]}var L8=(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,t=(Q,$,q)=>Q<<64-q|$>>>q-32,Q8=(Q,$,q)=>Q>>>q-32|$<<64-q;function E(Q,$,q,Z){let X=($>>>0)+(Z>>>0);return{h:Q+q+(X/4294967296|0)|0,l:X|0}}var t8=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),Q0=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,$0=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),q0=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,Z0=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),X0=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var T0=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 T8 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 N=0;N<16;N++,$+=4)H[N]=Q.getUint32($,!1);for(let N=16;N<64;N++){let R=H[N-15],G=H[N-2],P=V(R,7)^V(R,18)^R>>>3,v=V(G,17)^V(G,19)^G>>>10;H[N]=v+H[N-7]+P+H[N-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:z,G:U,H:K}=this;for(let N=0;N<64;N++){let R=V(Y,6)^V(Y,11)^V(Y,25),G=K+R+s8(Y,z,U)+T0[N]+H[N]|0,v=(V(q,2)^V(q,13)^V(q,22))+i8(q,Z,X)|0;K=U,U=z,z=Y,Y=J+G|0,J=X,X=Z,Z=q,q=G+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(){k(H)}destroy(){this.set(0,0,0,0,0,0,0,0),k(this.buffer)}}class J0 extends T8{A=B[0]|0;B=B[1]|0;C=B[2]|0;D=B[3]|0;E=B[4]|0;F=B[5]|0;G=B[6]|0;H=B[7]|0;constructor(){super(32)}}class k0 extends T8{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 Y0=(()=>e8(["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))))(),V0=(()=>Y0[0])(),I0=(()=>Y0[1])(),S=new Uint32Array(80),g=new Uint32Array(80);class $8 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:N,Fl:R,Gh:G,Gl:P,Hh:v,Hl:T}=this;return[Q,$,q,Z,X,J,Y,z,U,K,N,R,G,P,v,T]}set(Q,$,q,Z,X,J,Y,z,U,K,N,R,G,P,v,T){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=N|0,this.Fl=R|0,this.Gh=G|0,this.Gl=P|0,this.Hh=v|0,this.Hl=T|0}process(Q,$){for(let O=0;O<16;O++,$+=4)S[O]=Q.getUint32($),g[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let y=S[O-15]|0,p=g[O-15]|0,P8=A(y,p,1)^A(y,p,8)^L8(y,p,7),v8=u(y,p,1)^u(y,p,8)^M8(y,p,7),x=S[O-2]|0,b=g[O-2]|0,Z8=A(x,b,19)^t(x,b,61)^L8(x,b,6),D8=u(x,b,19)^Q8(x,b,61)^M8(x,b,6),X8=$0(v8,D8,g[O-7],g[O-16]),W8=q0(X8,P8,Z8,S[O-7],S[O-16]);S[O]=W8|0,g[O]=X8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:z,Dh:U,Dl:K,Eh:N,El:R,Fh:G,Fl:P,Gh:v,Gl:T,Hh:F,Hl:s}=this;for(let O=0;O<80;O++){let y=A(N,R,14)^A(N,R,18)^t(N,R,41),p=u(N,R,14)^u(N,R,18)^Q8(N,R,41),P8=N&G^~N&v,v8=R&P^~R&T,x=Z0(s,p,v8,I0[O],g[O]),b=X0(x,F,y,P8,V0[O],S[O]),Z8=x|0,D8=A(q,Z,28)^t(q,Z,34)^t(q,Z,39),X8=u(q,Z,28)^Q8(q,Z,34)^Q8(q,Z,39),W8=q&X^q&Y^X&Y,O0=Z&J^Z&z^J&z;F=v|0,s=T|0,v=G|0,T=P|0,G=N|0,P=R|0,{h:N,l:R}=E(U|0,K|0,b|0,Z8|0),U=Y|0,K=z|0,Y=X|0,z=J|0,X=q|0,J=Z|0;let d8=t8(Z8,X8,O0);q=Q0(d8,b,D8,W8),Z=d8|0}({h:q,l:Z}=E(this.Ah|0,this.Al|0,q|0,Z|0)),{h:X,l:J}=E(this.Bh|0,this.Bl|0,X|0,J|0),{h:Y,l:z}=E(this.Ch|0,this.Cl|0,Y|0,z|0),{h:U,l:K}=E(this.Dh|0,this.Dl|0,U|0,K|0),{h:N,l:R}=E(this.Eh|0,this.El|0,N|0,R|0),{h:G,l:P}=E(this.Fh|0,this.Fl|0,G|0,P|0),{h:v,l:T}=E(this.Gh|0,this.Gl|0,v|0,T|0),{h:F,l:s}=E(this.Hh|0,this.Hl|0,F|0,s|0),this.set(q,Z,X,J,Y,z,U,K,N,R,G,P,v,T,F,s)}roundClean(){k(S,g)}destroy(){k(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class E0 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 x0 extends $8{Ah=D[0]|0;Al=D[1]|0;Bh=D[2]|0;Bl=D[3]|0;Ch=D[4]|0;Cl=D[5]|0;Dh=D[6]|0;Dl=D[7]|0;Eh=D[8]|0;El=D[9]|0;Fh=D[10]|0;Fl=D[11]|0;Gh=D[12]|0;Gl=D[13]|0;Hh=D[14]|0;Hl=D[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]),M=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class b0 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(28)}}class B0 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(32)}}var U8=r8(()=>new J0,o8(1));class k8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(e(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),k(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 l=(Q,$,q)=>new k8(Q,$).update(q).digest();l.create=(Q,$)=>new k8(Q,$);function C0(Q,$,q){if(e(Q),q===void 0)q=new Uint8Array(Q.outputLen);return l(Q,q,$)}var V8=Uint8Array.of(0),N0=Uint8Array.of();function m0(Q,$,q,Z=32){e(Q),J8(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=N0;else f(q,void 0,"info");let Y=new Uint8Array(J*X),z=l.create(Q,$),U=z._cloneInto(),K=new Uint8Array(z.outputLen);for(let N=0;N<J;N++)V8[0]=N+1,U.update(N===0?N0:K).update(q).update(V8).digestInto(K),Y.set(K,X*N),z._cloneInto(U);return z.destroy(),U.destroy(),k(K,V8),Y.slice(0,Z)}var z0=(Q,$,q,Z,X)=>m0(Q,C0(Q,$,q),Z,X);function n(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function d(Q){return U8(n(Q))}function c(Q,$){return l(U8,n(Q),n($))}function y0(Q,$,{salt:q,info:Z}={}){let X=q?n(q):new Uint8Array(32),J=n(Q),Y=Z?n(Z):new Uint8Array(0);return z0(U8,J,X,Y,$)}var U0="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+=U0[q>>>$-5&31],$-=5}if($>0)Z+=U0[q<<5-$&31];return Z}function j8(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 K8(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 I8(Q){let $=d(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function f0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}function E8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var H0=1,S0="actioncodes";function m(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}var R8="NFC",r=256,G8=6,O8=24,g0=8,_0="0123456789",A0=["solana"];var j0;((F)=>{F.EXPIRED_CODE="EXPIRED_CODE";F.INVALID_CODE="INVALID_CODE";F.INVALID_CODE_FORMAT="INVALID_CODE_FORMAT";F.INVALID_SIGNATURE="INVALID_SIGNATURE";F.MISSING_META="MISSING_META";F.INVALID_META_FORMAT="INVALID_META_FORMAT";F.META_MISMATCH="META_MISMATCH";F.META_TOO_LARGE="META_TOO_LARGE";F.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER="TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER";F.INVALID_TRANSACTION_FORMAT="INVALID_TRANSACTION_FORMAT";F.INVALID_PUBKEY_FORMAT="INVALID_PUBKEY_FORMAT";F.INVALID_INPUT="INVALID_INPUT";F.MISSING_REQUIRED_FIELD="MISSING_REQUIRED_FIELD";F.CRYPTO_ERROR="CRYPTO_ERROR";F.INVALID_DIGEST="INVALID_DIGEST";F.INVALID_ADAPTER="INVALID_ADAPTER"})(j0||={});class j extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new x8(Q,$,q)}static invalidCode(Q,$){return new j("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new p8(Q,$)}static invalidSignature(Q){return new y8(Q)}static missingMeta(){return new b8}static invalidMetaFormat(Q){return new j("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new B8(Q,$,q)}static metaTooLarge(Q,$){return new j("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new C8(Q,$)}static invalidTransactionFormat(Q){return new j("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new m8(Q,$)}static invalidInput(Q,$,q){return new j("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new j("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new j("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new j("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new f8(Q)}static create(Q,$,q){return new j(Q,$,q)}}class x8 extends j{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class b8 extends j{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class B8 extends j{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class C8 extends j{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 m8 extends j{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class y8 extends j{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class p8 extends j{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class f8 extends j{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}var H8=w8(require("bs58"));class o{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 P=H8.default.decode($);U=c(P,Z)}else if(z)U=c(z,Z);else U=d(Z);let K=Math.max(G8,Math.min(O8,this.config.codeLength)),N=j8(U,8*Math.ceil(K/2));return{actionCode:{code:K8(N,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 j.expiredCode(Q.code,Q.expiresAt,$);let q=m({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let z=H8.default.decode(Q.signature);Z=c(z,q)}else if(Q.secret)Z=c(Q.secret,q);else Z=d(q);let X=Math.max(G8,Math.min(O8,this.config.codeLength)),J=j8(Z,8*Math.ceil(X/2)),Y=K8(J,X);if(Y!==Q.code)throw j.invalidCode(Y,Q.code)}}class I{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new o(Q)}static createDelegationCertificateTemplate(Q,$=3600000,q="solana"){let Z=Date.now();return{version:"1.0",delegator:Q,issuedAt:Z,expiresAt:Z+$,nonce:E8(),chain:q}}generateDelegatedCode(Q){if(!this.validateCertificate(Q))throw Error("Invalid delegation certificate");let $=I.hashCertificate(Q),q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs,Z=m({pubkey:Q.delegator,windowStart:q,secret:$});return{actionCode:{...this.walletStrategy.generateCode(Z,"",$).actionCode,delegationId:I.hashCertificate(Q),delegatedBy:Q.delegator}}}validateDelegatedCode(Q,$){if(this.walletStrategy.validateCode(Q),!this.validateCertificate($))throw Error("Delegation certificate expired or invalid");if(Q.delegationId!==I.hashCertificate($))throw Error("Action code does not match delegation certificate");if(Q.delegatedBy!==$.delegator)throw Error("Action code delegator does not match certificate")}validateCertificate(Q){if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;return!0}static serializeCertificate(Q){let $=JSON.stringify({version:Q.version,delegator:Q.delegator,issuedAt:Q.issuedAt,expiresAt:Q.expiresAt,nonce:Q.nonce,chain:Q.chain});return new TextEncoder().encode($)}static hashCertificate(Q){let $=this.serializeCertificate(Q),q=new TextEncoder().encode(Q.signature),Z=new Uint8Array($.length+q.length);Z.set($,0),Z.set(q,$.length);let X=d(Z);return Array.from(X).map((J)=>J.toString(16).padStart(2,"0")).join("")}static validateCertificateStructure(Q){if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;return!0}getWalletStrategy(){return this.walletStrategy}}var A8=w8(require("tweetnacl")),u8=w8(require("bs58")),w=require("@solana/web3.js"),_=require("@solana/spl-memo");var S8="actioncodes:";function g8(Q){let $=K0(Q);if($.int!=null)F8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);F8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=S8+q.join("&");return R0(Z),Z}function _8(Q){if(!Q.startsWith(S8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(S8.length).split("&").filter(Boolean),Z=new Map;for(let G of q){let[P,v]=G.split("=",2);if(!P)continue;let T=v!=null?decodeURIComponent(v):"";Z.set(P,T)}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 N=K0({ver:U,id:J,int:Y,p:K});if(N.int!=null)F8(N.int);if(N.p!=null)F8(JSON.stringify(N.p));if([...Z.keys()].filter((G)=>G!=="ver"&&G!=="id"&&G!=="int"&&G!=="p").length>0)throw Error("protocol meta contains unsupported keys");return R0(g8(N)),N}function K0(Q){let $=Q.id.normalize(R8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(R8).trim();if(Q.p!=null)q.p=Q.p;return q}function R0(Q){if(new TextEncoder().encode(Q).length>r)throw Error(`protocol meta exceeds ${r} bytes`)}function F8(Q){if(new TextEncoder().encode(Q).length>r)throw Error(`protocol meta params exceed ${r} bytes`)}class q8 extends a{normalizePubkey(Q){if(typeof Q==="string")return new w.PublicKey(Q);return Q}verifyWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalMessageParts)return!1;try{let $=m(Q.canonicalMessageParts),q=this.normalizePubkey(Q.pubkey),Z=u8.default.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return A8.default.sign.detached.verify($,Z,X)}catch{return!1}}verifyWithDelegation(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.certificate)return!1;let $=Q.certificate;if(!I.validateCertificateStructure($))return!1;if($.delegator!==Q.pubkey)return!1;if($.chain!==Q.chain)return!1;try{let q={version:$.version,delegator:$.delegator,issuedAt:$.issuedAt,expiresAt:$.expiresAt,nonce:$.nonce,chain:$.chain},Z=I.serializeCertificate(q),X=this.normalizePubkey(Q.pubkey),J=u8.default.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return A8.default.sign.detached.verify(Z,J,Y)}catch{return!1}}static createProtocolMetaIx(Q){let $=g8(Q);return _.createMemoInstruction($)}getProtocolMeta(Q){for(let $ of this.getMemoInstructions(Q)){let q=$.data;try{let Z=new TextDecoder().decode(q);if(_8(Z))return Z}catch{}}return null}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return _8($)}getMemoInstructions(Q){if(Q instanceof w.Transaction)return Q.instructions.filter(($)=>$.programId.equals(_.MEMO_PROGRAM_ID));else{let q=Q.message;if(q instanceof w.MessageV0){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(_.MEMO_PROGRAM_ID)){let Y=X.accountKeyIndexes.map((z)=>({pubkey:q.staticAccountKeys[z],isSigner:!1,isWritable:!1}));Z.push(new w.TransactionInstruction({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw j.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw j.missingMeta();if(Z.ver!==2)throw j.metaMismatch("2",String(Z.ver),"ver");let X=I8(Q.code);if(Z.id!==X)throw j.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw j.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw j.missingMeta();let q=$.int;if(!q)throw j.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new w.PublicKey(q)}catch{throw j.invalidPubkeyFormat(q,"Invalid public key format")}let X=[];if(Q instanceof w.Transaction){if(!Q.signatures.some((Y)=>{if(!Y.signature)return!1;return X.push(Y.publicKey.toString()),Y.publicKey.equals(Z)}))throw j.transactionNotSignedByIntendedOwner(q,X);return}if(Q instanceof w.VersionedTransaction){let J=Q.message;if(J instanceof w.MessageV0){let Y=J.header.numRequiredSignatures;for(let z=0;z<Y;z++){let U=J.staticAccountKeys[z];if(U){if(X.push(U.toString()),U.equals(Z))return}}throw j.transactionNotSignedByIntendedOwner(q,X)}}throw j.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){let q=q8.createProtocolMetaIx($);if(Q instanceof w.Transaction)return Q.add(q),Q;if(Q instanceof w.VersionedTransaction){let Z=Q.message,X=[...Z.staticAccountKeys];if(!X.some((K)=>K.equals(_.MEMO_PROGRAM_ID)))X.push(_.MEMO_PROGRAM_ID);let Y={programIdIndex:X.findIndex((K)=>K.equals(_.MEMO_PROGRAM_ID)),accountKeyIndexes:[],data:q.data},z=new w.MessageV0({header:Z.header,staticAccountKeys:X,recentBlockhash:Z.recentBlockhash,compiledInstructions:[...Z.compiledInstructions,Y],addressTableLookups:Z.addressTableLookups}),U=new w.VersionedTransaction(z);return U.signatures=Q.signatures,U}throw Error("Unsupported transaction type")}}class G0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new q8,this._walletStrategy=new o(Q),this._delegationStrategy=new I(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}getCanonicalMessageParts(Q,$){let q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs;return m({pubkey:Q,windowStart:q,secret:$})}get delegationStrategy(){return this._delegationStrategy}createDelegationCertificateTemplate(Q,$=3600000,q="solana"){return I.createDelegationCertificateTemplate(Q,$,q)}generateCode(Q,$,q,Z){if(Q==="wallet"){if(!q)throw j.invalidSignature("Missing signature over canonical message");return this.walletStrategy.generateCode($,q,Z)}else return this.delegationStrategy.generateDelegatedCode($)}validateCode(Q,$,q){if(Q==="wallet"){if(this.walletStrategy.validateCode($),!q)return;let Z=q,X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithWallet({...Z,canonicalMessageParts:{pubkey:$.pubkey,windowStart:$.timestamp}}))throw Error("Signature verification failed")}else{let Z=q;this.delegationStrategy.validateDelegatedCode($,Z);let X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}
|
2
2
|
|
3
|
-
//# debugId=
|
3
|
+
//# debugId=913C50D108FAFFB364756E2164756E21
|
package/dist/index.cjs.map
CHANGED
@@ -13,13 +13,13 @@
|
|
13
13
|
"import type { CanonicalMessageParts } from \"../types\";\n\nexport const CANONICAL_MESSAGE_VERSION = 1;\nexport const CANONICAL_MESSAGE_PREFIX = \"actioncodes\";\n\nexport function serializeCanonical(parts: CanonicalMessageParts): Uint8Array {\n const json = JSON.stringify({\n id: CANONICAL_MESSAGE_PREFIX,\n ver: CANONICAL_MESSAGE_VERSION,\n pubkey: parts.pubkey,\n windowStart: parts.windowStart,\n // Include secret if provided for enhanced security\n ...(parts.secret && { secret: parts.secret }),\n });\n return new TextEncoder().encode(json);\n}\n\n\n",
|
14
14
|
"// Protocol-wide constants\n\nexport const PROTOCOL_NORMALIZATION = \"NFC\";\nexport const PROTOCOL_META_MAX_BYTES = 256; // UTF-8 bytes\n\nexport const CODE_MIN_LENGTH = 6;\nexport const CODE_MAX_LENGTH = 24;\nexport const CODE_DEFAULT_LENGTH = 8;\n\n// Digits-only codes (0-9)\nexport const CODE_CHARSET_DIGITS = \"0123456789\";\n\nexport const SUPPORTED_CHAINS = [\"solana\"] as const;\n\n\n",
|
15
15
|
"export enum ProtocolErrorCode {\n // Code validation errors\n EXPIRED_CODE = \"EXPIRED_CODE\",\n INVALID_CODE = \"INVALID_CODE\",\n INVALID_CODE_FORMAT = \"INVALID_CODE_FORMAT\",\n INVALID_SIGNATURE = \"INVALID_SIGNATURE\",\n\n // Meta validation errors\n MISSING_META = \"MISSING_META\",\n INVALID_META_FORMAT = \"INVALID_META_FORMAT\",\n META_MISMATCH = \"META_MISMATCH\",\n META_TOO_LARGE = \"META_TOO_LARGE\",\n\n // Transaction errors\n TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER = \"TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER\",\n INVALID_TRANSACTION_FORMAT = \"INVALID_TRANSACTION_FORMAT\",\n INVALID_PUBKEY_FORMAT = \"INVALID_PUBKEY_FORMAT\",\n\n // Input validation errors\n INVALID_INPUT = \"INVALID_INPUT\",\n MISSING_REQUIRED_FIELD = \"MISSING_REQUIRED_FIELD\",\n\n // Crypto errors\n CRYPTO_ERROR = \"CRYPTO_ERROR\",\n INVALID_DIGEST = \"INVALID_DIGEST\",\n\n // Adapter errors\n INVALID_ADAPTER = \"INVALID_ADAPTER\",\n}\n\nexport class ProtocolError extends Error {\n constructor(\n public readonly code: ProtocolErrorCode,\n message: string,\n public readonly details?: Record<string, unknown>\n ) {\n super(message);\n this.name = \"ProtocolError\";\n }\n\n // Code validation errors\n static expiredCode(code: string, expiresAt: number, currentTime: number): ExpiredCodeError {\n return new ExpiredCodeError(code, expiresAt, currentTime);\n }\n\n static invalidCode(expected: string, actual: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_CODE,\n `Invalid code: expected '${expected}', got '${actual}'`,\n { expected, actual }\n );\n }\n\n static invalidCodeFormat(code: string, reason: string): InvalidCodeFormatError {\n return new InvalidCodeFormatError(code, reason);\n }\n\n static invalidSignature(reason: string): InvalidSignatureError {\n return new InvalidSignatureError(reason);\n }\n\n // Meta validation errors\n static missingMeta(): MissingMetaError {\n return new MissingMetaError();\n }\n\n static invalidMetaFormat(reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_META_FORMAT,\n `Invalid protocol meta format: ${reason}`,\n { reason }\n );\n }\n\n static metaMismatch(expected: string, actual: string, field: string): MetaMismatchError {\n return new MetaMismatchError(expected, actual, field);\n }\n\n static metaTooLarge(maxBytes: number, actualBytes: number): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.META_TOO_LARGE,\n `Protocol meta too large: ${actualBytes} bytes (max: ${maxBytes})`,\n { maxBytes, actualBytes }\n );\n }\n\n // Transaction errors\n static transactionNotSignedByIntendedOwner(intended: string, actualSigners: string[]): TransactionNotSignedByIntendedOwnerError {\n return new TransactionNotSignedByIntendedOwnerError(intended, actualSigners);\n }\n\n static invalidTransactionFormat(reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_TRANSACTION_FORMAT,\n `Invalid transaction format: ${reason}`,\n { reason }\n );\n }\n\n static invalidPubkeyFormat(pubkey: string, reason: string): InvalidPubkeyFormatError {\n return new InvalidPubkeyFormatError(pubkey, reason);\n }\n\n // Input validation errors\n static invalidInput(field: string, value: unknown, reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_INPUT,\n `Invalid ${field}: ${reason}`,\n { field, value, reason }\n );\n }\n\n static missingRequiredField(field: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.MISSING_REQUIRED_FIELD,\n `Missing required field: ${field}`,\n { field }\n );\n }\n\n // Crypto errors\n static cryptoError(operation: string, reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.CRYPTO_ERROR,\n `Crypto error in ${operation}: ${reason}`,\n { operation, reason }\n );\n }\n\n static invalidDigest(reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_DIGEST,\n `Invalid digest: ${reason}`,\n { reason }\n );\n }\n\n // Adapter errors\n static invalidAdapter(adapter: string): InvalidAdapterError {\n return new InvalidAdapterError(adapter);\n }\n\n // Generic error creator\n static create(code: ProtocolErrorCode, message: string, details?: Record<string, unknown>): ProtocolError {\n return new ProtocolError(code, message, details);\n }\n}\n\n// Specific error classes for instanceof checks\nexport class ExpiredCodeError extends ProtocolError {\n constructor(code: string, expiresAt: number, currentTime: number) {\n super(\n ProtocolErrorCode.EXPIRED_CODE,\n `Action code '${code}' expired at ${expiresAt}, current time: ${currentTime}`,\n { code, expiresAt, currentTime }\n );\n this.name = \"ExpiredCodeError\";\n }\n}\n\nexport class MissingMetaError extends ProtocolError {\n constructor() {\n super(\n ProtocolErrorCode.MISSING_META,\n \"Transaction does not contain valid protocol meta\"\n );\n this.name = \"MissingMetaError\";\n }\n}\n\nexport class MetaMismatchError extends ProtocolError {\n constructor(expected: string, actual: string, field: string) {\n super(\n ProtocolErrorCode.META_MISMATCH,\n `Meta ${field} mismatch: expected '${expected}', got '${actual}'`,\n { expected, actual, field }\n );\n this.name = \"MetaMismatchError\";\n }\n}\n\nexport class TransactionNotSignedByIntendedOwnerError extends ProtocolError {\n constructor(intended: string, actualSigners: string[]) {\n super(\n ProtocolErrorCode.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER,\n `Transaction not signed by intended owner '${intended}'. Actual signers: [${actualSigners.join(\n \", \"\n )}]`,\n { intended, actualSigners }\n );\n this.name = \"TransactionNotSignedByIntendedOwnerError\";\n }\n}\n\nexport class InvalidPubkeyFormatError extends ProtocolError {\n constructor(pubkey: string, reason: string) {\n super(\n ProtocolErrorCode.INVALID_PUBKEY_FORMAT,\n `Invalid public key format '${pubkey}': ${reason}`,\n { pubkey, reason }\n );\n this.name = \"InvalidPubkeyFormatError\";\n }\n}\n\nexport class InvalidSignatureError extends ProtocolError {\n constructor(reason: string) {\n super(ProtocolErrorCode.INVALID_SIGNATURE, `Invalid signature: ${reason}`, {\n reason,\n });\n this.name = \"InvalidSignatureError\";\n }\n}\n\nexport class InvalidCodeFormatError extends ProtocolError {\n constructor(code: string, reason: string) {\n super(\n ProtocolErrorCode.INVALID_CODE_FORMAT,\n `Invalid code format '${code}': ${reason}`,\n { code, reason }\n );\n this.name = \"InvalidCodeFormatError\";\n }\n}\n\nexport class InvalidAdapterError extends ProtocolError {\n constructor(adapter: string) {\n super(ProtocolErrorCode.INVALID_ADAPTER, `Invalid adapter: ${adapter}`, { adapter });\n this.name = \"InvalidAdapterError\";\n }\n}",
|
16
|
-
"import type {\n ActionCode,\n CodeGenerationConfig,\n WalletStrategyCodeGenerationResult,\n} from \"../types\";\nimport { sha256, hmacSha256, truncateBits, digestToDigits } from \"../utils/crypto\";\nimport { CODE_MAX_LENGTH, CODE_MIN_LENGTH } from \"../constants\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport { ProtocolError } from \"../errors\";\n\nexport class WalletStrategy {\n constructor(private config: CodeGenerationConfig) {}\n\n generateCode(\n canonicalMessage: Uint8Array,\n signature: string,\n providedSecret?: string,\n ): WalletStrategyCodeGenerationResult {\n const canonical = canonicalMessage;\n \n // Parse pubkey and windowStart from canonical message\n const decoded = JSON.parse(new TextDecoder().decode(canonical));\n const pubkey = decoded.pubkey;\n const windowStart = decoded.windowStart;\n \n // Only use secret if explicitly provided\n const secret = providedSecret;\n \n // Use signature if provided, otherwise fall back to secret/HMAC\n let digest: Uint8Array;\n if (signature) {\n // Use signature as the primary entropy source\n const signatureBytes =
|
16
|
+
"import type {\n ActionCode,\n CodeGenerationConfig,\n WalletStrategyCodeGenerationResult,\n} from \"../types\";\nimport { sha256, hmacSha256, truncateBits, digestToDigits } from \"../utils/crypto\";\nimport { CODE_MAX_LENGTH, CODE_MIN_LENGTH } from \"../constants\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport { ProtocolError } from \"../errors\";\nimport bs58 from \"bs58\";\n\nexport class WalletStrategy {\n constructor(private config: CodeGenerationConfig) {}\n\n generateCode(\n canonicalMessage: Uint8Array,\n signature: string,\n providedSecret?: string,\n ): WalletStrategyCodeGenerationResult {\n const canonical = canonicalMessage;\n \n // Parse pubkey and windowStart from canonical message\n const decoded = JSON.parse(new TextDecoder().decode(canonical));\n const pubkey = decoded.pubkey;\n const windowStart = decoded.windowStart;\n \n // Only use secret if explicitly provided\n const secret = providedSecret;\n \n // Use signature if provided, otherwise fall back to secret/HMAC\n let digest: Uint8Array;\n if (signature) {\n // Use signature as the primary entropy source\n // Decode Base58 signature to bytes\n const signatureBytes = bs58.decode(signature);\n digest = hmacSha256(signatureBytes, canonical);\n } else if (secret) {\n // Use secret for HMAC\n digest = hmacSha256(secret, canonical);\n } else {\n // Fall back to SHA256 (less secure)\n digest = sha256(canonical);\n }\n \n const clamped = Math.max(\n CODE_MIN_LENGTH,\n Math.min(CODE_MAX_LENGTH, this.config.codeLength)\n );\n const truncated = truncateBits(digest, 8 * Math.ceil(clamped / 2));\n const code = digestToDigits(truncated, clamped);\n\n const actionCode: ActionCode = {\n code,\n pubkey,\n timestamp: windowStart,\n expiresAt: windowStart + this.config.ttlMs,\n // Include signature if provided\n ...(signature && { signature }),\n // Only include secret if provided\n ...(secret && { secret }),\n };\n\n return { actionCode, canonicalMessage: canonical };\n }\n\n validateCode(actionCode: ActionCode): void {\n const currentTime = Date.now();\n if (currentTime > actionCode.expiresAt + (this.config.clockSkewMs ?? 0)) {\n throw ProtocolError.expiredCode(actionCode.code, actionCode.expiresAt, currentTime);\n }\n \n const canonical = serializeCanonical({\n pubkey: actionCode.pubkey,\n windowStart: actionCode.timestamp,\n secret: actionCode.secret, // Include secret if available\n });\n \n // Use same digest method as generation\n let digest: Uint8Array;\n if (actionCode.signature) {\n // Use signature as the primary entropy source\n // Decode Base58 signature to bytes\n const signatureBytes = bs58.decode(actionCode.signature);\n digest = hmacSha256(signatureBytes, canonical);\n } else if (actionCode.secret) {\n // Use secret for HMAC\n digest = hmacSha256(actionCode.secret, canonical);\n } else {\n // Fall back to SHA256 (less secure)\n digest = sha256(canonical);\n }\n \n const clamped = Math.max(\n CODE_MIN_LENGTH,\n Math.min(CODE_MAX_LENGTH, this.config.codeLength)\n );\n const truncated = truncateBits(digest, 8 * Math.ceil(clamped / 2));\n const expected = digestToDigits(truncated, clamped);\n \n if (expected !== actionCode.code) {\n throw ProtocolError.invalidCode(expected, actionCode.code);\n }\n }\n}",
|
17
17
|
"import { WalletStrategy } from \"./WalletStrategy\";\nimport { generateNonce, sha256 } from \"../utils/crypto\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport type {\n DelegationCertificate,\n DelegatedActionCode,\n CodeGenerationConfig,\n DelegationStrategyCodeGenerationResult,\n} from \"../types\";\n\nexport class DelegationStrategy {\n private walletStrategy: WalletStrategy;\n private config: CodeGenerationConfig;\n\n constructor(config: CodeGenerationConfig) {\n this.config = config;\n this.walletStrategy = new WalletStrategy(config);\n }\n\n /**\n * Create a delegation certificate template (no signing)\n * The wallet should sign this template to create a valid certificate\n */\n static createDelegationCertificateTemplate(\n userPublicKey: string,\n durationMs: number = 3600000, // 1 hour default\n chain: string = \"solana\"\n ): Omit<DelegationCertificate, \"signature\"> {\n const now = Date.now();\n return {\n version: \"1.0\",\n delegator: userPublicKey,\n issuedAt: now,\n expiresAt: now + durationMs,\n nonce: generateNonce(),\n chain,\n };\n }\n\n /**\n * Generate a delegated action code using a signed certificate\n * The certificate acts as the secret for deterministic generation\n */\n generateDelegatedCode(\n certificate: DelegationCertificate\n ): DelegationStrategyCodeGenerationResult {\n // Validate certificate format and expiration only\n // Signature verification happens in ActionCodesProtocol.validateCode()\n if (!this.validateCertificate(certificate)) {\n throw new Error(\"Invalid delegation certificate\");\n }\n\n // Use certificate as the secret for deterministic generation\n const certificateSecret = DelegationStrategy.hashCertificate(certificate);\n\n // Generate canonical message for delegation\n const windowStart = Math.floor(Date.now() / this.config.ttlMs) * this.config.ttlMs;\n const canonicalMessage = serializeCanonical({ \n pubkey: certificate.delegator, \n windowStart, \n secret: certificateSecret \n });\n\n // Generate code using existing WalletStrategy with canonical message\n const result = this.walletStrategy.generateCode(\n canonicalMessage,\n \"\", // No signature for delegation (uses secret instead)\n certificateSecret // Use certificate hash as secret\n );\n\n // Create delegated action code\n const delegatedActionCode: DelegatedActionCode = {\n ...result.actionCode,\n delegationId: DelegationStrategy.hashCertificate(certificate),\n delegatedBy: certificate.delegator,\n };\n\n return {\n actionCode: delegatedActionCode,\n };\n }\n\n /**\n * Validate a delegated action code\n */\n validateDelegatedCode(\n actionCode: DelegatedActionCode,\n certificate: DelegationCertificate\n ): void {\n // Validate the action code itself\n this.walletStrategy.validateCode(actionCode);\n\n // Verify delegation is still valid\n if (!this.validateCertificate(certificate)) {\n throw new Error(\"Delegation certificate expired or invalid\");\n }\n\n // Verify the certificate matches the action code\n if (actionCode.delegationId !== DelegationStrategy.hashCertificate(certificate)) {\n throw new Error(\"Action code does not match delegation certificate\");\n }\n\n // Verify the delegator matches\n if (actionCode.delegatedBy !== certificate.delegator) {\n throw new Error(\"Action code delegator does not match certificate\");\n }\n }\n\n /**\n * Check if a certificate is valid (not expired and properly formatted)\n */\n private validateCertificate(certificate: DelegationCertificate): boolean {\n // Check if certificate is expired\n if (Date.now() > certificate.expiresAt) {\n return false;\n }\n\n // Check if certificate is not yet valid (issued in the future)\n if (Date.now() < certificate.issuedAt) {\n return false;\n }\n\n // Check required fields\n if (\n !certificate.version ||\n !certificate.delegator ||\n !certificate.issuedAt ||\n !certificate.expiresAt ||\n !certificate.nonce ||\n !certificate.chain ||\n !certificate.signature\n ) {\n return false;\n }\n\n // Check version\n if (certificate.version !== \"1.0\") {\n return false;\n }\n\n return true;\n }\n\n /**\n * Serialize a delegation certificate for signing (chain-agnostic)\n */\n static serializeCertificate(cert: Omit<DelegationCertificate, 'signature'>): Uint8Array {\n const json = JSON.stringify({\n version: cert.version,\n delegator: cert.delegator,\n issuedAt: cert.issuedAt,\n expiresAt: cert.expiresAt,\n nonce: cert.nonce,\n chain: cert.chain\n });\n return new TextEncoder().encode(json);\n }\n\n /**\n * Hash a delegation certificate to create a unique ID (chain-agnostic)\n * Includes signature to prevent relayer from generating codes\n */\n static hashCertificate(cert: DelegationCertificate): string {\n // Include signature in hash to prevent relayer code generation\n const serialized = this.serializeCertificate(cert);\n const signatureBytes = new TextEncoder().encode(cert.signature);\n \n // Combine certificate data with signature\n const combined = new Uint8Array(serialized.length + signatureBytes.length);\n combined.set(serialized, 0);\n combined.set(signatureBytes, serialized.length);\n \n const hash = sha256(combined);\n return Array.from(hash)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n }\n\n /**\n * Validate certificate structure and timing (chain-agnostic)\n * This should be called before signature verification\n */\n static validateCertificateStructure(certificate: DelegationCertificate): boolean {\n // Check required fields\n if (\n !certificate.version ||\n !certificate.delegator ||\n !certificate.issuedAt ||\n !certificate.expiresAt ||\n !certificate.nonce ||\n !certificate.chain ||\n !certificate.signature\n ) {\n return false;\n }\n\n // Check version\n if (certificate.version !== \"1.0\") {\n return false;\n }\n\n // Check if certificate is expired\n if (Date.now() > certificate.expiresAt) {\n return false;\n }\n\n // Check if certificate is not yet valid (issued in the future)\n if (Date.now() < certificate.issuedAt) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Get the wallet strategy instance for advanced usage\n */\n getWalletStrategy(): WalletStrategy {\n return this.walletStrategy;\n }\n}\n",
|
18
18
|
"import nacl from \"tweetnacl\";\nimport bs58 from \"bs58\";\nimport {\n PublicKey,\n Transaction,\n VersionedTransaction,\n TransactionInstruction,\n MessageV0,\n} from \"@solana/web3.js\";\nimport { createMemoInstruction, MEMO_PROGRAM_ID } from \"@solana/spl-memo\";\nimport { BaseChainAdapter, type ChainWalletStrategyContext, type ChainDelegationStrategyContext } from \"./BaseChainAdapter\";\nimport {\n buildProtocolMeta,\n parseProtocolMeta,\n type ProtocolMetaFields,\n} from \"../utils/protocolMeta\";\nimport { codeHash } from \"../utils/crypto\";\nimport type { ActionCode } from \"../types\";\nimport { ProtocolError } from \"../errors\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport { DelegationStrategy } from \"../strategy/DelegationStrategy\";\n\nexport type SolanaContext = {\n pubkey: string | PublicKey;\n signature: string; // base58\n};\n\n/** Union of supported Solana txn types */\nexport type SolanaTransaction = Transaction | VersionedTransaction;\n\nexport class SolanaAdapter extends BaseChainAdapter<SolanaContext, SolanaContext> {\n /** Normalize pubkey input to PublicKey */\n private normalizePubkey(input: string | PublicKey): PublicKey {\n if (typeof input === \"string\") {\n return new PublicKey(input);\n }\n return input;\n }\n\n /** Verify the signature over canonical message (protocol-level) */\n verifyWithWallet(context: ChainWalletStrategyContext<SolanaContext>): boolean {\n // Early validation checks - these are fast and don't leak timing info\n if (context.chain !== \"solana\") return false;\n if (!context.pubkey || !context.signature || !context.canonicalMessageParts)\n return false;\n\n // Perform all operations in a single try-catch to ensure consistent timing\n try {\n const message = serializeCanonical(context.canonicalMessageParts);\n const pub = this.normalizePubkey(context.pubkey);\n const sigBytes = bs58.decode(context.signature);\n const pubBytes = pub.toBytes();\n \n // Validate lengths\n if (sigBytes.length !== 64 || pubBytes.length !== 32) {\n return false;\n }\n \n // Perform signature verification\n return nacl.sign.detached.verify(message, sigBytes, pubBytes);\n } catch {\n // All errors result in false with consistent timing\n return false;\n }\n }\n\n /** Verify delegation certificate signature */\n verifyWithDelegation(context: ChainDelegationStrategyContext<SolanaContext>): boolean {\n // Early validation checks - these are fast and don't leak timing info\n if (context.chain !== \"solana\") return false;\n if (!context.pubkey || !context.signature || !context.certificate)\n return false;\n\n const cert = context.certificate;\n\n // Use strategy for chain-agnostic certificate validation\n if (!DelegationStrategy.validateCertificateStructure(cert)) {\n return false;\n }\n\n // Check delegator matches the pubkey\n if (cert.delegator !== context.pubkey) return false;\n\n // Check chain matches\n if (cert.chain !== context.chain) return false;\n\n // Perform all operations in a single try-catch to ensure consistent timing\n try {\n // Serialize certificate for signature verification (using strategy method)\n const certWithoutSignature = {\n version: cert.version,\n delegator: cert.delegator,\n issuedAt: cert.issuedAt,\n expiresAt: cert.expiresAt,\n nonce: cert.nonce,\n chain: cert.chain\n };\n const message = DelegationStrategy.serializeCertificate(certWithoutSignature);\n \n const pub = this.normalizePubkey(context.pubkey);\n const sigBytes = bs58.decode(context.signature);\n const pubBytes = pub.toBytes();\n \n // Validate lengths\n if (sigBytes.length !== 64 || pubBytes.length !== 32) {\n return false;\n }\n \n // Perform signature verification\n return nacl.sign.detached.verify(message, sigBytes, pubBytes);\n } catch {\n // All errors result in false with consistent timing\n return false;\n }\n }\n\n /** Create a Solana memo instruction carrying protocol meta (for SDK/clients) */\n static createProtocolMetaIx(\n meta: ProtocolMetaFields\n ): TransactionInstruction {\n const metaString = buildProtocolMeta(meta);\n return createMemoInstruction(metaString);\n }\n\n /** Extract protocol metadata string (memo) from a transaction, or null */\n getProtocolMeta(tx: SolanaTransaction): string | null {\n for (const ix of this.getMemoInstructions(tx)) {\n const data = ix.data;\n try {\n const s = new TextDecoder().decode(data);\n // Optionally: test parse\n const parsed = parseProtocolMeta(s);\n if (parsed) return s;\n } catch {\n // ignore\n }\n }\n return null;\n }\n\n /** Get parsed ProtocolMeta object, or null if none or invalid */\n parseMeta(tx: SolanaTransaction): ProtocolMetaFields | null {\n const s = this.getProtocolMeta(tx);\n if (!s) return null;\n return parseProtocolMeta(s);\n }\n\n /** List memo instructions from the transaction (legacy & versioned) */\n private getMemoInstructions(tx: SolanaTransaction): TransactionInstruction[] {\n if (tx instanceof Transaction) {\n return tx.instructions.filter((ix) =>\n ix.programId.equals(MEMO_PROGRAM_ID)\n );\n } else {\n // VersionedTransaction: inspect `message.compiledInstructions` / static keys\n const vtx = tx as VersionedTransaction;\n const msg = vtx.message;\n if (msg instanceof MessageV0) {\n const memos: TransactionInstruction[] = [];\n for (const ix of msg.compiledInstructions) {\n const pid = msg.staticAccountKeys[ix.programIdIndex];\n if (pid && pid.equals(MEMO_PROGRAM_ID)) {\n // reconstruct a TransactionInstruction for inspection\n const keys = ix.accountKeyIndexes.map((i) => ({\n pubkey: msg.staticAccountKeys[i]!,\n isSigner: false,\n isWritable: false,\n }));\n memos.push(\n new TransactionInstruction({\n keys,\n programId: pid,\n data: ix.data as Buffer,\n })\n );\n }\n }\n return memos;\n }\n return [];\n }\n }\n\n /**\n * Validate that a transaction's memo meta aligns with the bound `actionCode`.\n * Throws ProtocolError if validation fails.\n */\n verifyTransactionMatchesCode(\n actionCode: ActionCode,\n tx: SolanaTransaction\n ): void {\n // Check expiration first\n const currentTime = Date.now();\n if (currentTime > actionCode.expiresAt) {\n throw ProtocolError.expiredCode(\n actionCode.code,\n actionCode.expiresAt,\n currentTime\n );\n }\n\n const meta = this.parseMeta(tx);\n if (!meta) {\n throw ProtocolError.missingMeta();\n }\n\n // Check version\n if (meta.ver !== 2) {\n throw ProtocolError.metaMismatch(\"2\", String(meta.ver), \"ver\");\n }\n\n // Check code ID - should be codeHash of the code, not the code itself\n const expectedCodeHash = codeHash(actionCode.code);\n if (meta.id !== expectedCodeHash) {\n throw ProtocolError.metaMismatch(expectedCodeHash, meta.id, \"id\");\n }\n\n // Check intended pubkey\n if (meta.int !== actionCode.pubkey) {\n throw ProtocolError.metaMismatch(actionCode.pubkey, meta.int, \"int\");\n }\n }\n\n /**\n * Verify that the transaction is signed by the \"intendedFor\" pubkey\n * as declared in the protocol meta of the transaction.\n * Throws ProtocolError if validation fails.\n */\n verifyTransactionSignedByIntentOwner(tx: SolanaTransaction): void {\n const meta = this.parseMeta(tx);\n if (!meta) {\n throw ProtocolError.missingMeta();\n }\n\n const intended = meta.int;\n if (!intended) {\n throw ProtocolError.invalidMetaFormat(\n \"Missing 'int' (intendedFor) field\"\n );\n }\n\n let pubkey: PublicKey;\n try {\n pubkey = new PublicKey(intended);\n } catch {\n throw ProtocolError.invalidPubkeyFormat(\n intended,\n \"Invalid public key format\"\n );\n }\n\n const actualSigners: string[] = [];\n\n // For legacy Transaction\n if (tx instanceof Transaction) {\n const isSigned = tx.signatures.some((sig) => {\n if (!sig.signature) return false;\n actualSigners.push(sig.publicKey.toString());\n return sig.publicKey.equals(pubkey);\n });\n\n if (!isSigned) {\n throw ProtocolError.transactionNotSignedByIntendedOwner(\n intended,\n actualSigners\n );\n }\n return;\n }\n\n // For VersionedTransaction (MessageV0)\n if (tx instanceof VersionedTransaction) {\n const msg = tx.message;\n if (msg instanceof MessageV0) {\n const signerCount = msg.header.numRequiredSignatures;\n for (let i = 0; i < signerCount; i++) {\n const key = msg.staticAccountKeys[i];\n if (key) {\n actualSigners.push(key.toString());\n if (key.equals(pubkey)) {\n return; // Found the intended signer\n }\n }\n }\n throw ProtocolError.transactionNotSignedByIntendedOwner(\n intended,\n actualSigners\n );\n }\n }\n\n throw ProtocolError.invalidTransactionFormat(\n \"Unsupported transaction format\"\n );\n }\n\n /**\n * Attach protocol meta into a legacy or versioned transaction.\n *\n * ⚠️ Note: this mutates the given transaction.\n */\n static attachProtocolMeta<T extends SolanaTransaction>(\n tx: T,\n meta: ProtocolMetaFields\n ): T {\n const metaIx = SolanaAdapter.createProtocolMetaIx(meta);\n\n if (tx instanceof Transaction) {\n // Legacy tx: just push memo instruction\n tx.add(metaIx);\n return tx as T;\n }\n\n if (tx instanceof VersionedTransaction) {\n const msg = tx.message as MessageV0;\n\n // Extend static account keys with programId if missing\n const newStaticKeys = [...msg.staticAccountKeys];\n if (!newStaticKeys.some((k) => k.equals(MEMO_PROGRAM_ID))) {\n newStaticKeys.push(MEMO_PROGRAM_ID);\n }\n\n // Program ID index\n const programIdIndex = newStaticKeys.findIndex((k) =>\n k.equals(MEMO_PROGRAM_ID)\n );\n\n // Memo instruction as compiled instruction\n const compiledIx = {\n programIdIndex,\n accountKeyIndexes: [],\n data: metaIx.data,\n };\n\n const newMsg = new MessageV0({\n header: msg.header,\n staticAccountKeys: newStaticKeys,\n recentBlockhash: msg.recentBlockhash,\n compiledInstructions: [...msg.compiledInstructions, compiledIx],\n addressTableLookups: msg.addressTableLookups,\n });\n\n // Re-wrap in VersionedTransaction\n const newTx = new VersionedTransaction(newMsg);\n // Preserve existing signatures if any\n newTx.signatures = tx.signatures;\n return newTx as T;\n }\n\n throw new Error(\"Unsupported transaction type\");\n }\n}\n",
|
19
19
|
"import { PROTOCOL_META_MAX_BYTES, PROTOCOL_NORMALIZATION } from \"../constants\";\n\n// v2 protocol meta\nexport interface ProtocolMetaFields {\n ver: 2;\n id: string; // code id (usually hex/hash)\n int: string; // intent owner who created the code\n p?: Record<string, unknown>; // optional parameters as JSON object\n}\n\nexport const SCHEME = \"actioncodes:\";\n\nexport function buildProtocolMeta(fields: ProtocolMetaFields): string {\n const norm = normalizeFields(fields);\n if (norm.int != null) guardParamSize(norm.int);\n \n const parts = [\n `ver=${norm.ver}`,\n `id=${encodeURIComponent(norm.id)}`,\n `int=${encodeURIComponent(norm.int)}`,\n ];\n\n if (norm.p != null && Object.keys(norm.p).length > 0) {\n const paramsJson = JSON.stringify(norm.p);\n guardParamSize(paramsJson);\n parts.push(`p=${encodeURIComponent(paramsJson)}`);\n }\n \n const out = SCHEME + parts.join(\"&\");\n guardSize(out);\n return out;\n}\n\nexport function parseProtocolMeta(input: string): ProtocolMetaFields {\n if (!input.startsWith(SCHEME)) throw new Error(\"protocol meta must start with actioncodes:\");\n const q = input.slice(SCHEME.length);\n const pairs = q.split(\"&\").filter(Boolean);\n const map = new Map<string, string>();\n for (const pair of pairs) {\n const [k, vRaw] = pair.split(\"=\", 2);\n if (!k) continue;\n const v = vRaw != null ? decodeURIComponent(vRaw) : \"\";\n map.set(k, v);\n }\n const verStr = map.get(\"ver\");\n const id = map.get(\"id\");\n const int = map.get(\"int\");\n const pStr = map.get(\"p\");\n if (verStr == null || id == null || int == null) throw new Error(\"protocol meta missing required fields ver or id or int\");\n const ver = Number(verStr);\n if (!Number.isInteger(ver) || ver <= 0) throw new Error(\"protocol meta ver must be positive integer\");\n \n let p: Record<string, unknown> | undefined;\n if (pStr != null && pStr !== \"\") {\n try {\n p = JSON.parse(pStr);\n if (typeof p !== \"object\" || p === null || Array.isArray(p)) {\n throw new Error(\"protocol meta p must be a JSON object\");\n }\n } catch {\n throw new Error(\"protocol meta p must be valid JSON\");\n }\n }\n \n const norm = normalizeFields({ ver: ver as 2, id, int, p });\n if (norm.int != null) guardParamSize(norm.int);\n if (norm.p != null) guardParamSize(JSON.stringify(norm.p));\n const unknownKeys = [...map.keys()].filter((k) => k !== \"ver\" && k !== \"id\" && k !== \"int\" && k !== \"p\");\n if (unknownKeys.length > 0) throw new Error(\"protocol meta contains unsupported keys\");\n guardSize(buildProtocolMeta(norm));\n return norm;\n}\n\nexport function validateProtocolMetaFormat(input: string): { ok: true } | { ok: false; reason: string } {\n try {\n parseProtocolMeta(input);\n return { ok: true };\n } catch (e: unknown) {\n return { ok: false, reason: String(e) };\n }\n}\n\nfunction normalizeFields(fields: ProtocolMetaFields): ProtocolMetaFields {\n const id = fields.id.normalize(PROTOCOL_NORMALIZATION).trim();\n const out: ProtocolMetaFields = { ver: fields.ver, id, int: fields.int };\n if (fields.int != null) out.int = fields.int.normalize(PROTOCOL_NORMALIZATION).trim();\n if (fields.p != null) {\n // For JSON objects, we don't normalize the object itself, just ensure it's valid\n out.p = fields.p;\n }\n return out;\n}\n\nfunction guardSize(s: string): void {\n const bytes = new TextEncoder().encode(s);\n if (bytes.length > PROTOCOL_META_MAX_BYTES) throw new Error(`protocol meta exceeds ${PROTOCOL_META_MAX_BYTES} bytes`);\n}\n\nfunction guardParamSize(value: string): void {\n const bytes = new TextEncoder().encode(value);\n if (bytes.length > PROTOCOL_META_MAX_BYTES) throw new Error(`protocol meta params exceed ${PROTOCOL_META_MAX_BYTES} bytes`);\n}\n\n\n",
|
20
20
|
"import type {\n ActionCode,\n CodeGenerationConfig,\n DelegationCertificate,\n DelegatedActionCode,\n} from \"./types\";\nimport type {\n ChainAdapter,\n ChainWalletStrategyContext,\n} from \"./adapters/BaseChainAdapter\";\nimport { WalletStrategy } from \"./strategy/WalletStrategy\";\nimport { DelegationStrategy } from \"./strategy/DelegationStrategy\";\nimport { SolanaAdapter, type SolanaContext } from \"./adapters/SolanaAdapter\";\nimport { ProtocolError } from \"./errors\";\nimport { serializeCanonical } from \"./utils/canonical\";\n\nexport class ActionCodesProtocol {\n private adapters: Record<string, ChainAdapter> = {};\n private _walletStrategy: WalletStrategy;\n private _delegationStrategy: DelegationStrategy;\n\n constructor(private readonly config: CodeGenerationConfig) {\n // Register default adapters\n this.adapters.solana = new SolanaAdapter() as ChainAdapter<SolanaContext>;\n\n // Initialize strategies\n this._walletStrategy = new WalletStrategy(config);\n this._delegationStrategy = new DelegationStrategy(config);\n }\n\n public getConfig(): CodeGenerationConfig {\n return this.config;\n }\n\n /** Register a chain adapter */\n registerAdapter(chain: string, adapter: ChainAdapter): void {\n this.adapters[chain] = adapter;\n }\n\n /** Get a registered adapter */\n getAdapter(chain: string): ChainAdapter | undefined {\n return this.adapters[chain];\n }\n\n /** Typed access to specific adapters */\n get adapter() {\n return {\n solana: this.adapters.solana as unknown as SolanaAdapter,\n };\n }\n\n /** Access to strategies */\n get walletStrategy() {\n return this._walletStrategy;\n }\n\n /** Get canonical message parts for signing (before code generation) */\n getCanonicalMessageParts(pubkey: string, providedSecret?: string): Uint8Array {\n const windowStart = Math.floor(Date.now() / this.config.ttlMs) * this.config.ttlMs;\n return serializeCanonical({ pubkey, windowStart, secret: providedSecret });\n }\n\n get delegationStrategy() {\n return this._delegationStrategy;\n }\n\n // Delegation Strategy Methods\n createDelegationCertificateTemplate(\n userPublicKey: string,\n durationMs: number = 3600000,\n chain: string = \"solana\"\n ): Omit<DelegationCertificate, \"signature\"> {\n return DelegationStrategy.createDelegationCertificateTemplate(\n userPublicKey,\n durationMs,\n chain\n );\n }\n\n // Generate code\n generateCode(\n strategy: \"wallet\",\n canonicalMessage: Uint8Array,\n signature: string,\n providedSecret?: string\n ): {\n actionCode: ActionCode;\n canonicalMessage: Uint8Array;\n };\n generateCode(\n strategy: \"delegation\",\n certificate: DelegationCertificate\n ): {\n actionCode: DelegatedActionCode;\n };\n generateCode(\n strategy: \"wallet\" | \"delegation\",\n param1: Uint8Array | DelegationCertificate,\n signature?: string,\n providedSecret?: string\n ): {\n actionCode: ActionCode | DelegatedActionCode;\n canonicalMessage?: Uint8Array;\n } {\n if (strategy === \"wallet\") {\n // Here param1 must be Uint8Array (canonical message)\n if (!signature) {\n throw ProtocolError.invalidSignature(\"Missing signature over canonical message\");\n }\n return this.walletStrategy.generateCode(param1 as Uint8Array, signature, providedSecret);\n } else {\n // Here param1 must be DelegationCertificate\n return this.delegationStrategy.generateDelegatedCode(\n param1 as DelegationCertificate\n );\n }\n }\n\n // Overloaded validateCode methods with strategy parameter\n validateCode(\n strategy: \"wallet\",\n actionCode: ActionCode,\n context?: Omit<ChainWalletStrategyContext<unknown>, \"canonicalMessageParts\">\n ): void;\n validateCode(\n strategy: \"delegation\",\n actionCode: DelegatedActionCode,\n certificate: DelegationCertificate\n ): void;\n validateCode(\n strategy: \"wallet\" | \"delegation\",\n actionCode: ActionCode | DelegatedActionCode,\n param2?:\n | DelegationCertificate\n | Omit<ChainWalletStrategyContext<unknown>, \"canonicalMessageParts\">\n ): void {\n if (strategy === \"wallet\") {\n // This will throw if validation fails\n this.walletStrategy.validateCode(actionCode as ActionCode);\n\n if (!param2) return;\n\n const context = param2 as Omit<\n ChainWalletStrategyContext<unknown>,\n \"canonicalMessageParts\"\n >;\n const adapter = this.getAdapter(context.chain);\n if (!adapter) throw ProtocolError.invalidAdapter(context.chain);\n\n const ok = adapter.verifyWithWallet({\n ...context,\n canonicalMessageParts: {\n pubkey: actionCode.pubkey,\n windowStart: actionCode.timestamp,\n },\n } as unknown as ChainWalletStrategyContext<unknown>);\n\n if (!ok) {\n throw new Error(\"Signature verification failed\");\n }\n } else {\n const certificate = param2 as DelegationCertificate;\n \n // CRITICAL: First validate the delegated action code\n // This ensures the code was actually generated from this certificate\n this.delegationStrategy.validateDelegatedCode(\n actionCode as DelegatedActionCode,\n certificate\n );\n\n // Then verify the certificate signature\n const adapter = this.getAdapter(certificate.chain);\n if (!adapter) throw ProtocolError.invalidAdapter(certificate.chain);\n\n const ok = adapter.verifyWithDelegation({\n chain: certificate.chain,\n pubkey: certificate.delegator,\n signature: certificate.signature,\n certificate: certificate,\n });\n\n if (!ok) {\n throw new Error(\"Signature verification failed\");\n }\n }\n }\n}\n"
|
21
21
|
],
|
22
|
-
"mappings": "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",
|
23
|
-
"debugId": "
|
22
|
+
"mappings": "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",
|
23
|
+
"debugId": "913C50D108FAFFB364756E2164756E21",
|
24
24
|
"names": []
|
25
25
|
}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC9G,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,0BAA0B,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAC9G,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
class $8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function j0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function q8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function y(Q,$,q=""){let Z=j0(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 n(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");q8(Q.outputLen),q8(Q.blockLen)}function _(Q,$=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if($&&Q.finished)throw Error("Hash#digest() has already been called")}function B8(Q,$){y(Q,void 0,"digestInto() output");let q=$.outputLen;if(Q.length<q)throw Error('"digestInto() output" expected to be of length >='+q)}function M(...Q){for(let $=0;$<Q.length;$++)Q[$].fill(0)}function Z8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function T(Q,$){return Q<<32-$|Q>>>$}function C8(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 y8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function m8(Q,$,q){return Q&$^~Q&q}function p8(Q,$,q){return Q&$^Q&q^$&q}class X8{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=Z8(this.buffer)}update(Q){_(this),y(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=Z8(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){_(this),B8(Q,this),this.finished=!0;let{buffer:$,view:q,blockLen:Z,isLE:X}=this,{pos:J}=this;if($[J++]=128,M(this.buffer.subarray(J)),this.padOffset>Z-J)this.process(q,0),J=0;for(let N=J;N<Z;N++)$[N]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=Z8(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 N=0;N<U;N++)Y.setUint32(4*N,K[N],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]),b=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),v=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),D=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var J8=BigInt(4294967295),f8=BigInt(32);function K0(Q,$=!1){if($)return{h:Number(Q&J8),l:Number(Q>>f8&J8)};return{h:Number(Q>>f8&J8)|0,l:Number(Q&J8)|0}}function H8(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}=K0(Q[J],$);[Z[J],X[J]]=[Y,z]}return[Z,X]}var G8=(Q,$,q)=>Q>>>q,O8=(Q,$,q)=>Q<<32-q|$>>>q,S=(Q,$,q)=>Q>>>q|$<<32-q,g=(Q,$,q)=>Q<<32-q|$>>>q,c=(Q,$,q)=>Q<<64-q|$>>>q-32,r=(Q,$,q)=>Q>>>q-32|$<<64-q;function k(Q,$,q,Z){let X=($>>>0)+(Z>>>0);return{h:Q+q+(X/4294967296|0)|0,l:X|0}}var S8=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),g8=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,_8=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),A8=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,u8=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),d8=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var G0=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]),m=new Uint32Array(64);class F8 extends X8{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 N=0;N<16;N++,$+=4)m[N]=Q.getUint32($,!1);for(let N=16;N<64;N++){let R=m[N-15],G=m[N-2],F=T(R,7)^T(R,18)^R>>>3,P=T(G,17)^T(G,19)^G>>>10;m[N]=P+m[N-7]+F+m[N-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:z,G:U,H:K}=this;for(let N=0;N<64;N++){let R=T(Y,6)^T(Y,11)^T(Y,25),G=K+R+m8(Y,z,U)+G0[N]+m[N]|0,P=(T(q,2)^T(q,13)^T(q,22))+p8(q,Z,X)|0;K=U,U=z,z=Y,Y=J+G|0,J=X,X=Z,Z=q,q=G+P|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(){M(m)}destroy(){this.set(0,0,0,0,0,0,0,0),M(this.buffer)}}class h8 extends F8{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 O0 extends F8{A=b[0]|0;B=b[1]|0;C=b[2]|0;D=b[3]|0;E=b[4]|0;F=b[5]|0;G=b[6]|0;H=b[7]|0;constructor(){super(28)}}var l8=(()=>H8(["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))))(),F0=(()=>l8[0])(),P0=(()=>l8[1])(),p=new Uint32Array(80),f=new Uint32Array(80);class o extends X8{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:N,Fl:R,Gh:G,Gl:F,Hh:P,Hl:L}=this;return[Q,$,q,Z,X,J,Y,z,U,K,N,R,G,F,P,L]}set(Q,$,q,Z,X,J,Y,z,U,K,N,R,G,F,P,L){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=N|0,this.Fl=R|0,this.Gh=G|0,this.Gl=F|0,this.Hh=P|0,this.Hl=L|0}process(Q,$){for(let O=0;O<16;O++,$+=4)p[O]=Q.getUint32($),f[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let B=p[O-15]|0,C=f[O-15]|0,U8=S(B,C,1)^S(B,C,8)^G8(B,C,7),j8=g(B,C,1)^g(B,C,8)^O8(B,C,7),I=p[O-2]|0,E=f[O-2]|0,t=S(I,E,19)^c(I,E,61)^G8(I,E,6),K8=g(I,E,19)^r(I,E,61)^O8(I,E,6),Q8=_8(j8,K8,f[O-7],f[O-16]),R8=A8(Q8,U8,t,p[O-7],p[O-16]);p[O]=R8|0,f[O]=Q8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:z,Dh:U,Dl:K,Eh:N,El:R,Fh:G,Fl:F,Gh:P,Gl:L,Hh:h,Hl:l}=this;for(let O=0;O<80;O++){let B=S(N,R,14)^S(N,R,18)^c(N,R,41),C=g(N,R,14)^g(N,R,18)^r(N,R,41),U8=N&G^~N&P,j8=R&F^~R&L,I=u8(l,C,j8,P0[O],f[O]),E=d8(I,h,B,U8,F0[O],p[O]),t=I|0,K8=S(q,Z,28)^c(q,Z,34)^c(q,Z,39),Q8=g(q,Z,28)^r(q,Z,34)^r(q,Z,39),R8=q&X^q&Y^X&Y,U0=Z&J^Z&z^J&z;h=P|0,l=L|0,P=G|0,L=F|0,G=N|0,F=R|0,{h:N,l:R}=k(U|0,K|0,E|0,t|0),U=Y|0,K=z|0,Y=X|0,z=J|0,X=q|0,J=Z|0;let b8=S8(t,Q8,U0);q=g8(b8,E,K8,R8),Z=b8|0}({h:q,l:Z}=k(this.Ah|0,this.Al|0,q|0,Z|0)),{h:X,l:J}=k(this.Bh|0,this.Bl|0,X|0,J|0),{h:Y,l:z}=k(this.Ch|0,this.Cl|0,Y|0,z|0),{h:U,l:K}=k(this.Dh|0,this.Dl|0,U|0,K|0),{h:N,l:R}=k(this.Eh|0,this.El|0,N|0,R|0),{h:G,l:F}=k(this.Fh|0,this.Fl|0,G|0,F|0),{h:P,l:L}=k(this.Gh|0,this.Gl|0,P|0,L|0),{h,l}=k(this.Hh|0,this.Hl|0,h|0,l|0),this.set(q,Z,X,J,Y,z,U,K,N,R,G,F,P,L,h,l)}roundClean(){M(p,f)}destroy(){M(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class v0 extends o{Ah=D[0]|0;Al=D[1]|0;Bh=D[2]|0;Bl=D[3]|0;Ch=D[4]|0;Cl=D[5]|0;Dh=D[6]|0;Dl=D[7]|0;Eh=D[8]|0;El=D[9]|0;Fh=D[10]|0;Fl=D[11]|0;Gh=D[12]|0;Gl=D[13]|0;Hh=D[14]|0;Hl=D[15]|0;constructor(){super(64)}}class D0 extends o{Ah=v[0]|0;Al=v[1]|0;Bh=v[2]|0;Bl=v[3]|0;Ch=v[4]|0;Cl=v[5]|0;Dh=v[6]|0;Dl=v[7]|0;Eh=v[8]|0;El=v[9]|0;Fh=v[10]|0;Fl=v[11]|0;Gh=v[12]|0;Gl=v[13]|0;Hh=v[14]|0;Hl=v[15]|0;constructor(){super(48)}}var W=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),w=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class W0 extends o{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(28)}}class w0 extends o{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(32)}}var Y8=C8(()=>new h8,y8(1));class P8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(n(Q),y($,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),M(Z)}update(Q){return _(this),this.iHash.update(Q),this}digestInto(Q){_(this),y(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 A=(Q,$,q)=>new P8(Q,$).update(q).digest();A.create=(Q,$)=>new P8(Q,$);function L0(Q,$,q){if(n(Q),q===void 0)q=new Uint8Array(Q.outputLen);return A(Q,q,$)}var v8=Uint8Array.of(0),n8=Uint8Array.of();function M0(Q,$,q,Z=32){n(Q),q8(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=n8;else y(q,void 0,"info");let Y=new Uint8Array(J*X),z=A.create(Q,$),U=z._cloneInto(),K=new Uint8Array(z.outputLen);for(let N=0;N<J;N++)v8[0]=N+1,U.update(N===0?n8:K).update(q).update(v8).digestInto(K),Y.set(K,X*N),z._cloneInto(U);return z.destroy(),U.destroy(),M(K,v8),Y.slice(0,Z)}var c8=(Q,$,q,Z,X)=>M0(Q,L0(Q,$,q),Z,X);function u(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function d(Q){return Y8(u(Q))}function s(Q,$){return A(Y8,u(Q),u($))}function u0(Q,$,{salt:q,info:Z}={}){let X=q?u(q):new Uint8Array(32),J=u(Q),Y=Z?u(Z):new Uint8Array(0);return c8(Y8,J,X,Y,$)}var r8="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function d0(Q){let $=0,q=0,Z="";for(let X=0;X<Q.length;X++){q=q<<8|Q[X],$+=8;while($>=5)Z+=r8[q>>>$-5&31],$-=5}if($>0)Z+=r8[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 W8(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 o8(Q){let $=d(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function h0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}function s8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var n0=1,c0="actioncodes";function H(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}var w8="NFC",i=256,L8=6,M8=24,o0=8,s0="0123456789",i0=["solana"];class j extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new i8(Q,$,q)}static invalidCode(Q,$){return new j("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new q0(Q,$)}static invalidSignature(Q){return new $0(Q)}static missingMeta(){return new a8}static invalidMetaFormat(Q){return new j("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new e8(Q,$,q)}static metaTooLarge(Q,$){return new j("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new t8(Q,$)}static invalidTransactionFormat(Q){return new j("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new Q0(Q,$)}static invalidInput(Q,$,q){return new j("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new j("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new j("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new j("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new Z0(Q)}static create(Q,$,q){return new j(Q,$,q)}}class i8 extends j{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class a8 extends j{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class e8 extends j{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class t8 extends j{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 Q0 extends j{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class $0 extends j{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class q0 extends j{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class Z0 extends j{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}class a{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 F=new TextEncoder().encode($);U=s(F,Z)}else if(z)U=s(z,Z);else U=d(Z);let K=Math.max(L8,Math.min(M8,this.config.codeLength)),N=D8(U,8*Math.ceil(K/2));return{actionCode:{code:W8(N,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 j.expiredCode(Q.code,Q.expiresAt,$);let q=H({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let z=new TextEncoder().encode(Q.signature);Z=s(z,q)}else if(Q.secret)Z=s(Q.secret,q);else Z=d(q);let X=Math.max(L8,Math.min(M8,this.config.codeLength)),J=D8(Z,8*Math.ceil(X/2)),Y=W8(J,X);if(Y!==Q.code)throw j.invalidCode(Y,Q.code)}}class V{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new a(Q)}static createDelegationCertificateTemplate(Q,$=3600000,q="solana"){let Z=Date.now();return{version:"1.0",delegator:Q,issuedAt:Z,expiresAt:Z+$,nonce:s8(),chain:q}}generateDelegatedCode(Q){if(!this.validateCertificate(Q))throw Error("Invalid delegation certificate");let $=V.hashCertificate(Q),q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs,Z=H({pubkey:Q.delegator,windowStart:q,secret:$});return{actionCode:{...this.walletStrategy.generateCode(Z,"",$).actionCode,delegationId:V.hashCertificate(Q),delegatedBy:Q.delegator}}}validateDelegatedCode(Q,$){if(this.walletStrategy.validateCode(Q),!this.validateCertificate($))throw Error("Delegation certificate expired or invalid");if(Q.delegationId!==V.hashCertificate($))throw Error("Action code does not match delegation certificate");if(Q.delegatedBy!==$.delegator)throw Error("Action code delegator does not match certificate")}validateCertificate(Q){if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;return!0}static serializeCertificate(Q){let $=JSON.stringify({version:Q.version,delegator:Q.delegator,issuedAt:Q.issuedAt,expiresAt:Q.expiresAt,nonce:Q.nonce,chain:Q.chain});return new TextEncoder().encode($)}static hashCertificate(Q){let $=this.serializeCertificate(Q),q=new TextEncoder().encode(Q.signature),Z=new Uint8Array($.length+q.length);Z.set($,0),Z.set(q,$.length);let X=d(Z);return Array.from(X).map((J)=>J.toString(16).padStart(2,"0")).join("")}static validateCertificateStructure(Q){if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;return!0}getWalletStrategy(){return this.walletStrategy}}import Y0 from"tweetnacl";import N0 from"bs58";import{PublicKey as z0,Transaction as I8,VersionedTransaction as E8,TransactionInstruction as T0,MessageV0 as x8}from"@solana/web3.js";import{createMemoInstruction as k0,MEMO_PROGRAM_ID as e}from"@solana/spl-memo";var T8="actioncodes:";function k8(Q){let $=X0(Q);if($.int!=null)N8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);N8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=T8+q.join("&");return J0(Z),Z}function V8(Q){if(!Q.startsWith(T8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(T8.length).split("&").filter(Boolean),Z=new Map;for(let G of q){let[F,P]=G.split("=",2);if(!F)continue;let L=P!=null?decodeURIComponent(P):"";Z.set(F,L)}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 N=X0({ver:U,id:J,int:Y,p:K});if(N.int!=null)N8(N.int);if(N.p!=null)N8(JSON.stringify(N.p));if([...Z.keys()].filter((G)=>G!=="ver"&&G!=="id"&&G!=="int"&&G!=="p").length>0)throw Error("protocol meta contains unsupported keys");return J0(k8(N)),N}function X0(Q){let $=Q.id.normalize(w8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(w8).trim();if(Q.p!=null)q.p=Q.p;return q}function J0(Q){if(new TextEncoder().encode(Q).length>i)throw Error(`protocol meta exceeds ${i} bytes`)}function N8(Q){if(new TextEncoder().encode(Q).length>i)throw Error(`protocol meta params exceed ${i} bytes`)}class z8 extends $8{normalizePubkey(Q){if(typeof Q==="string")return new z0(Q);return Q}verifyWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalMessageParts)return!1;try{let $=H(Q.canonicalMessageParts),q=this.normalizePubkey(Q.pubkey),Z=N0.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return Y0.sign.detached.verify($,Z,X)}catch{return!1}}verifyWithDelegation(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.certificate)return!1;let $=Q.certificate;if(!V.validateCertificateStructure($))return!1;if($.delegator!==Q.pubkey)return!1;if($.chain!==Q.chain)return!1;try{let q={version:$.version,delegator:$.delegator,issuedAt:$.issuedAt,expiresAt:$.expiresAt,nonce:$.nonce,chain:$.chain},Z=V.serializeCertificate(q),X=this.normalizePubkey(Q.pubkey),J=N0.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return Y0.sign.detached.verify(Z,J,Y)}catch{return!1}}static createProtocolMetaIx(Q){let $=k8(Q);return k0($)}getProtocolMeta(Q){for(let $ of this.getMemoInstructions(Q)){let q=$.data;try{let Z=new TextDecoder().decode(q);if(V8(Z))return Z}catch{}}return null}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return V8($)}getMemoInstructions(Q){if(Q instanceof I8)return Q.instructions.filter(($)=>$.programId.equals(e));else{let q=Q.message;if(q instanceof x8){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(e)){let Y=X.accountKeyIndexes.map((z)=>({pubkey:q.staticAccountKeys[z],isSigner:!1,isWritable:!1}));Z.push(new T0({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw j.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw j.missingMeta();if(Z.ver!==2)throw j.metaMismatch("2",String(Z.ver),"ver");let X=o8(Q.code);if(Z.id!==X)throw j.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw j.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw j.missingMeta();let q=$.int;if(!q)throw j.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new z0(q)}catch{throw j.invalidPubkeyFormat(q,"Invalid public key format")}let X=[];if(Q instanceof I8){if(!Q.signatures.some((Y)=>{if(!Y.signature)return!1;return X.push(Y.publicKey.toString()),Y.publicKey.equals(Z)}))throw j.transactionNotSignedByIntendedOwner(q,X);return}if(Q instanceof E8){let J=Q.message;if(J instanceof x8){let Y=J.header.numRequiredSignatures;for(let z=0;z<Y;z++){let U=J.staticAccountKeys[z];if(U){if(X.push(U.toString()),U.equals(Z))return}}throw j.transactionNotSignedByIntendedOwner(q,X)}}throw j.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){let q=z8.createProtocolMetaIx($);if(Q instanceof I8)return Q.add(q),Q;if(Q instanceof E8){let Z=Q.message,X=[...Z.staticAccountKeys];if(!X.some((K)=>K.equals(e)))X.push(e);let Y={programIdIndex:X.findIndex((K)=>K.equals(e)),accountKeyIndexes:[],data:q.data},z=new x8({header:Z.header,staticAccountKeys:X,recentBlockhash:Z.recentBlockhash,compiledInstructions:[...Z.compiledInstructions,Y],addressTableLookups:Z.addressTableLookups}),U=new E8(z);return U.signatures=Q.signatures,U}throw Error("Unsupported transaction type")}}class V0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new z8,this._walletStrategy=new a(Q),this._delegationStrategy=new V(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}getCanonicalMessageParts(Q,$){let q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs;return H({pubkey:Q,windowStart:q,secret:$})}get delegationStrategy(){return this._delegationStrategy}createDelegationCertificateTemplate(Q,$=3600000,q="solana"){return V.createDelegationCertificateTemplate(Q,$,q)}generateCode(Q,$,q,Z){if(Q==="wallet"){if(!q)throw j.invalidSignature("Missing signature over canonical message");return this.walletStrategy.generateCode($,q,Z)}else return this.delegationStrategy.generateDelegatedCode($)}validateCode(Q,$,q){if(Q==="wallet"){if(this.walletStrategy.validateCode($),!q)return;let Z=q,X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithWallet({...Z,canonicalMessageParts:{pubkey:$.pubkey,windowStart:$.timestamp}}))throw Error("Signature verification failed")}else{let Z=q;this.delegationStrategy.validateDelegatedCode($,Z);let X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}export{D8 as truncateBits,d as sha256,H as serializeCanonical,s as hmacSha256,u0 as hkdfSha256,h0 as generateRandomSecret,s8 as generateNonce,W8 as digestToDigits,o8 as codeHash,d0 as base32EncodeCrockford,a as WalletStrategy,z8 as SolanaAdapter,i0 as SUPPORTED_CHAINS,w8 as PROTOCOL_NORMALIZATION,i as PROTOCOL_META_MAX_BYTES,V as DelegationStrategy,L8 as CODE_MIN_LENGTH,M8 as CODE_MAX_LENGTH,o0 as CODE_DEFAULT_LENGTH,s0 as CODE_CHARSET_DIGITS,n0 as CANONICAL_MESSAGE_VERSION,c0 as CANONICAL_MESSAGE_PREFIX,$8 as BaseChainAdapter,V0 as ActionCodesProtocol};
|
1
|
+
class $8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function K0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function q8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function y(Q,$,q=""){let Z=K0(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 n(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");q8(Q.outputLen),q8(Q.blockLen)}function A(Q,$=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if($&&Q.finished)throw Error("Hash#digest() has already been called")}function B8(Q,$){y(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 Z8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function k(Q,$){return Q<<32-$|Q>>>$}function C8(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 m8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function y8(Q,$,q){return Q&$^~Q&q}function p8(Q,$,q){return Q&$^Q&q^$&q}class X8{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=Z8(this.buffer)}update(Q){A(this),y(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=Z8(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){A(this),B8(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 N=J;N<Z;N++)$[N]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=Z8(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 N=0;N<U;N++)Y.setUint32(4*N,K[N],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 b=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),B=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),D=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 J8=BigInt(4294967295),f8=BigInt(32);function R0(Q,$=!1){if($)return{h:Number(Q&J8),l:Number(Q>>f8&J8)};return{h:Number(Q>>f8&J8)|0,l:Number(Q&J8)|0}}function H8(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}=R0(Q[J],$);[Z[J],X[J]]=[Y,z]}return[Z,X]}var G8=(Q,$,q)=>Q>>>q,O8=(Q,$,q)=>Q<<32-q|$>>>q,g=(Q,$,q)=>Q>>>q|$<<32-q,_=(Q,$,q)=>Q<<32-q|$>>>q,c=(Q,$,q)=>Q<<64-q|$>>>q-32,r=(Q,$,q)=>Q>>>q-32|$<<64-q;function V(Q,$,q,Z){let X=($>>>0)+(Z>>>0);return{h:Q+q+(X/4294967296|0)|0,l:X|0}}var S8=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),g8=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,_8=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),A8=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,u8=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),d8=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var O0=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 F8 extends X8{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 N=0;N<16;N++,$+=4)p[N]=Q.getUint32($,!1);for(let N=16;N<64;N++){let R=p[N-15],G=p[N-2],P=k(R,7)^k(R,18)^R>>>3,v=k(G,17)^k(G,19)^G>>>10;p[N]=v+p[N-7]+P+p[N-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:z,G:U,H:K}=this;for(let N=0;N<64;N++){let R=k(Y,6)^k(Y,11)^k(Y,25),G=K+R+y8(Y,z,U)+O0[N]+p[N]|0,v=(k(q,2)^k(q,13)^k(q,22))+p8(q,Z,X)|0;K=U,U=z,z=Y,Y=J+G|0,J=X,X=Z,Z=q,q=G+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(p)}destroy(){this.set(0,0,0,0,0,0,0,0),T(this.buffer)}}class h8 extends F8{A=b[0]|0;B=b[1]|0;C=b[2]|0;D=b[3]|0;E=b[4]|0;F=b[5]|0;G=b[6]|0;H=b[7]|0;constructor(){super(32)}}class F0 extends F8{A=B[0]|0;B=B[1]|0;C=B[2]|0;D=B[3]|0;E=B[4]|0;F=B[5]|0;G=B[6]|0;H=B[7]|0;constructor(){super(28)}}var l8=(()=>H8(["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))))(),P0=(()=>l8[0])(),v0=(()=>l8[1])(),f=new Uint32Array(80),H=new Uint32Array(80);class o extends X8{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:N,Fl:R,Gh:G,Gl:P,Hh:v,Hl:M}=this;return[Q,$,q,Z,X,J,Y,z,U,K,N,R,G,P,v,M]}set(Q,$,q,Z,X,J,Y,z,U,K,N,R,G,P,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=N|0,this.Fl=R|0,this.Gh=G|0,this.Gl=P|0,this.Hh=v|0,this.Hl=M|0}process(Q,$){for(let O=0;O<16;O++,$+=4)f[O]=Q.getUint32($),H[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let C=f[O-15]|0,m=H[O-15]|0,U8=g(C,m,1)^g(C,m,8)^G8(C,m,7),j8=_(C,m,1)^_(C,m,8)^O8(C,m,7),E=f[O-2]|0,x=H[O-2]|0,t=g(E,x,19)^c(E,x,61)^G8(E,x,6),K8=_(E,x,19)^r(E,x,61)^O8(E,x,6),Q8=_8(j8,K8,H[O-7],H[O-16]),R8=A8(Q8,U8,t,f[O-7],f[O-16]);f[O]=R8|0,H[O]=Q8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:z,Dh:U,Dl:K,Eh:N,El:R,Fh:G,Fl:P,Gh:v,Gl:M,Hh:F,Hl:l}=this;for(let O=0;O<80;O++){let C=g(N,R,14)^g(N,R,18)^c(N,R,41),m=_(N,R,14)^_(N,R,18)^r(N,R,41),U8=N&G^~N&v,j8=R&P^~R&M,E=u8(l,m,j8,v0[O],H[O]),x=d8(E,F,C,U8,P0[O],f[O]),t=E|0,K8=g(q,Z,28)^c(q,Z,34)^c(q,Z,39),Q8=_(q,Z,28)^r(q,Z,34)^r(q,Z,39),R8=q&X^q&Y^X&Y,j0=Z&J^Z&z^J&z;F=v|0,l=M|0,v=G|0,M=P|0,G=N|0,P=R|0,{h:N,l:R}=V(U|0,K|0,x|0,t|0),U=Y|0,K=z|0,Y=X|0,z=J|0,X=q|0,J=Z|0;let b8=S8(t,Q8,j0);q=g8(b8,x,K8,R8),Z=b8|0}({h:q,l:Z}=V(this.Ah|0,this.Al|0,q|0,Z|0)),{h:X,l:J}=V(this.Bh|0,this.Bl|0,X|0,J|0),{h:Y,l:z}=V(this.Ch|0,this.Cl|0,Y|0,z|0),{h:U,l:K}=V(this.Dh|0,this.Dl|0,U|0,K|0),{h:N,l:R}=V(this.Eh|0,this.El|0,N|0,R|0),{h:G,l:P}=V(this.Fh|0,this.Fl|0,G|0,P|0),{h:v,l:M}=V(this.Gh|0,this.Gl|0,v|0,M|0),{h:F,l}=V(this.Hh|0,this.Hl|0,F|0,l|0),this.set(q,Z,X,J,Y,z,U,K,N,R,G,P,v,M,F,l)}roundClean(){T(f,H)}destroy(){T(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class D0 extends o{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 W0 extends o{Ah=D[0]|0;Al=D[1]|0;Bh=D[2]|0;Bl=D[3]|0;Ch=D[4]|0;Cl=D[5]|0;Dh=D[6]|0;Dl=D[7]|0;Eh=D[8]|0;El=D[9]|0;Fh=D[10]|0;Fl=D[11]|0;Gh=D[12]|0;Gl=D[13]|0;Hh=D[14]|0;Hl=D[15]|0;constructor(){super(48)}}var w=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 w0 extends o{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(28)}}class L0 extends o{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 Y8=C8(()=>new h8,m8(1));class P8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(n(Q),y($,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 A(this),this.iHash.update(Q),this}digestInto(Q){A(this),y(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 u=(Q,$,q)=>new P8(Q,$).update(q).digest();u.create=(Q,$)=>new P8(Q,$);function M0(Q,$,q){if(n(Q),q===void 0)q=new Uint8Array(Q.outputLen);return u(Q,q,$)}var v8=Uint8Array.of(0),n8=Uint8Array.of();function T0(Q,$,q,Z=32){n(Q),q8(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=n8;else y(q,void 0,"info");let Y=new Uint8Array(J*X),z=u.create(Q,$),U=z._cloneInto(),K=new Uint8Array(z.outputLen);for(let N=0;N<J;N++)v8[0]=N+1,U.update(N===0?n8:K).update(q).update(v8).digestInto(K),Y.set(K,X*N),z._cloneInto(U);return z.destroy(),U.destroy(),T(K,v8),Y.slice(0,Z)}var c8=(Q,$,q,Z,X)=>T0(Q,M0(Q,$,q),Z,X);function d(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function h(Q){return Y8(d(Q))}function s(Q,$){return u(Y8,d(Q),d($))}function h0(Q,$,{salt:q,info:Z}={}){let X=q?d(q):new Uint8Array(32),J=d(Q),Y=Z?d(Z):new Uint8Array(0);return c8(Y8,J,X,Y,$)}var r8="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function l0(Q){let $=0,q=0,Z="";for(let X=0;X<Q.length;X++){q=q<<8|Q[X],$+=8;while($>=5)Z+=r8[q>>>$-5&31],$-=5}if($>0)Z+=r8[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 W8(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 o8(Q){let $=h(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function n0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}function s8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var r0=1,o0="actioncodes";function S(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}var w8="NFC",i=256,L8=6,M8=24,i0=8,a0="0123456789",e0=["solana"];var k0;((F)=>{F.EXPIRED_CODE="EXPIRED_CODE";F.INVALID_CODE="INVALID_CODE";F.INVALID_CODE_FORMAT="INVALID_CODE_FORMAT";F.INVALID_SIGNATURE="INVALID_SIGNATURE";F.MISSING_META="MISSING_META";F.INVALID_META_FORMAT="INVALID_META_FORMAT";F.META_MISMATCH="META_MISMATCH";F.META_TOO_LARGE="META_TOO_LARGE";F.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER="TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER";F.INVALID_TRANSACTION_FORMAT="INVALID_TRANSACTION_FORMAT";F.INVALID_PUBKEY_FORMAT="INVALID_PUBKEY_FORMAT";F.INVALID_INPUT="INVALID_INPUT";F.MISSING_REQUIRED_FIELD="MISSING_REQUIRED_FIELD";F.CRYPTO_ERROR="CRYPTO_ERROR";F.INVALID_DIGEST="INVALID_DIGEST";F.INVALID_ADAPTER="INVALID_ADAPTER"})(k0||={});class j extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new i8(Q,$,q)}static invalidCode(Q,$){return new j("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new q0(Q,$)}static invalidSignature(Q){return new $0(Q)}static missingMeta(){return new a8}static invalidMetaFormat(Q){return new j("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new e8(Q,$,q)}static metaTooLarge(Q,$){return new j("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new t8(Q,$)}static invalidTransactionFormat(Q){return new j("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new Q0(Q,$)}static invalidInput(Q,$,q){return new j("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new j("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new j("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new j("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new Z0(Q)}static create(Q,$,q){return new j(Q,$,q)}}class i8 extends j{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class a8 extends j{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class e8 extends j{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class t8 extends j{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 Q0 extends j{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class $0 extends j{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class q0 extends j{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class Z0 extends j{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}import X0 from"bs58";class a{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 P=X0.decode($);U=s(P,Z)}else if(z)U=s(z,Z);else U=h(Z);let K=Math.max(L8,Math.min(M8,this.config.codeLength)),N=D8(U,8*Math.ceil(K/2));return{actionCode:{code:W8(N,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 j.expiredCode(Q.code,Q.expiresAt,$);let q=S({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let z=X0.decode(Q.signature);Z=s(z,q)}else if(Q.secret)Z=s(Q.secret,q);else Z=h(q);let X=Math.max(L8,Math.min(M8,this.config.codeLength)),J=D8(Z,8*Math.ceil(X/2)),Y=W8(J,X);if(Y!==Q.code)throw j.invalidCode(Y,Q.code)}}class I{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new a(Q)}static createDelegationCertificateTemplate(Q,$=3600000,q="solana"){let Z=Date.now();return{version:"1.0",delegator:Q,issuedAt:Z,expiresAt:Z+$,nonce:s8(),chain:q}}generateDelegatedCode(Q){if(!this.validateCertificate(Q))throw Error("Invalid delegation certificate");let $=I.hashCertificate(Q),q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs,Z=S({pubkey:Q.delegator,windowStart:q,secret:$});return{actionCode:{...this.walletStrategy.generateCode(Z,"",$).actionCode,delegationId:I.hashCertificate(Q),delegatedBy:Q.delegator}}}validateDelegatedCode(Q,$){if(this.walletStrategy.validateCode(Q),!this.validateCertificate($))throw Error("Delegation certificate expired or invalid");if(Q.delegationId!==I.hashCertificate($))throw Error("Action code does not match delegation certificate");if(Q.delegatedBy!==$.delegator)throw Error("Action code delegator does not match certificate")}validateCertificate(Q){if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;return!0}static serializeCertificate(Q){let $=JSON.stringify({version:Q.version,delegator:Q.delegator,issuedAt:Q.issuedAt,expiresAt:Q.expiresAt,nonce:Q.nonce,chain:Q.chain});return new TextEncoder().encode($)}static hashCertificate(Q){let $=this.serializeCertificate(Q),q=new TextEncoder().encode(Q.signature),Z=new Uint8Array($.length+q.length);Z.set($,0),Z.set(q,$.length);let X=h(Z);return Array.from(X).map((J)=>J.toString(16).padStart(2,"0")).join("")}static validateCertificateStructure(Q){if(!Q.version||!Q.delegator||!Q.issuedAt||!Q.expiresAt||!Q.nonce||!Q.chain||!Q.signature)return!1;if(Q.version!=="1.0")return!1;if(Date.now()>Q.expiresAt)return!1;if(Date.now()<Q.issuedAt)return!1;return!0}getWalletStrategy(){return this.walletStrategy}}import N0 from"tweetnacl";import z0 from"bs58";import{PublicKey as U0,Transaction as I8,VersionedTransaction as E8,TransactionInstruction as V0,MessageV0 as x8}from"@solana/web3.js";import{createMemoInstruction as I0,MEMO_PROGRAM_ID as e}from"@solana/spl-memo";var T8="actioncodes:";function k8(Q){let $=J0(Q);if($.int!=null)N8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);N8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=T8+q.join("&");return Y0(Z),Z}function V8(Q){if(!Q.startsWith(T8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(T8.length).split("&").filter(Boolean),Z=new Map;for(let G of q){let[P,v]=G.split("=",2);if(!P)continue;let M=v!=null?decodeURIComponent(v):"";Z.set(P,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 N=J0({ver:U,id:J,int:Y,p:K});if(N.int!=null)N8(N.int);if(N.p!=null)N8(JSON.stringify(N.p));if([...Z.keys()].filter((G)=>G!=="ver"&&G!=="id"&&G!=="int"&&G!=="p").length>0)throw Error("protocol meta contains unsupported keys");return Y0(k8(N)),N}function J0(Q){let $=Q.id.normalize(w8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(w8).trim();if(Q.p!=null)q.p=Q.p;return q}function Y0(Q){if(new TextEncoder().encode(Q).length>i)throw Error(`protocol meta exceeds ${i} bytes`)}function N8(Q){if(new TextEncoder().encode(Q).length>i)throw Error(`protocol meta params exceed ${i} bytes`)}class z8 extends $8{normalizePubkey(Q){if(typeof Q==="string")return new U0(Q);return Q}verifyWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalMessageParts)return!1;try{let $=S(Q.canonicalMessageParts),q=this.normalizePubkey(Q.pubkey),Z=z0.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return N0.sign.detached.verify($,Z,X)}catch{return!1}}verifyWithDelegation(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.certificate)return!1;let $=Q.certificate;if(!I.validateCertificateStructure($))return!1;if($.delegator!==Q.pubkey)return!1;if($.chain!==Q.chain)return!1;try{let q={version:$.version,delegator:$.delegator,issuedAt:$.issuedAt,expiresAt:$.expiresAt,nonce:$.nonce,chain:$.chain},Z=I.serializeCertificate(q),X=this.normalizePubkey(Q.pubkey),J=z0.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return N0.sign.detached.verify(Z,J,Y)}catch{return!1}}static createProtocolMetaIx(Q){let $=k8(Q);return I0($)}getProtocolMeta(Q){for(let $ of this.getMemoInstructions(Q)){let q=$.data;try{let Z=new TextDecoder().decode(q);if(V8(Z))return Z}catch{}}return null}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return V8($)}getMemoInstructions(Q){if(Q instanceof I8)return Q.instructions.filter(($)=>$.programId.equals(e));else{let q=Q.message;if(q instanceof x8){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(e)){let Y=X.accountKeyIndexes.map((z)=>({pubkey:q.staticAccountKeys[z],isSigner:!1,isWritable:!1}));Z.push(new V0({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw j.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw j.missingMeta();if(Z.ver!==2)throw j.metaMismatch("2",String(Z.ver),"ver");let X=o8(Q.code);if(Z.id!==X)throw j.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw j.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw j.missingMeta();let q=$.int;if(!q)throw j.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new U0(q)}catch{throw j.invalidPubkeyFormat(q,"Invalid public key format")}let X=[];if(Q instanceof I8){if(!Q.signatures.some((Y)=>{if(!Y.signature)return!1;return X.push(Y.publicKey.toString()),Y.publicKey.equals(Z)}))throw j.transactionNotSignedByIntendedOwner(q,X);return}if(Q instanceof E8){let J=Q.message;if(J instanceof x8){let Y=J.header.numRequiredSignatures;for(let z=0;z<Y;z++){let U=J.staticAccountKeys[z];if(U){if(X.push(U.toString()),U.equals(Z))return}}throw j.transactionNotSignedByIntendedOwner(q,X)}}throw j.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){let q=z8.createProtocolMetaIx($);if(Q instanceof I8)return Q.add(q),Q;if(Q instanceof E8){let Z=Q.message,X=[...Z.staticAccountKeys];if(!X.some((K)=>K.equals(e)))X.push(e);let Y={programIdIndex:X.findIndex((K)=>K.equals(e)),accountKeyIndexes:[],data:q.data},z=new x8({header:Z.header,staticAccountKeys:X,recentBlockhash:Z.recentBlockhash,compiledInstructions:[...Z.compiledInstructions,Y],addressTableLookups:Z.addressTableLookups}),U=new E8(z);return U.signatures=Q.signatures,U}throw Error("Unsupported transaction type")}}class E0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new z8,this._walletStrategy=new a(Q),this._delegationStrategy=new I(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}getCanonicalMessageParts(Q,$){let q=Math.floor(Date.now()/this.config.ttlMs)*this.config.ttlMs;return S({pubkey:Q,windowStart:q,secret:$})}get delegationStrategy(){return this._delegationStrategy}createDelegationCertificateTemplate(Q,$=3600000,q="solana"){return I.createDelegationCertificateTemplate(Q,$,q)}generateCode(Q,$,q,Z){if(Q==="wallet"){if(!q)throw j.invalidSignature("Missing signature over canonical message");return this.walletStrategy.generateCode($,q,Z)}else return this.delegationStrategy.generateDelegatedCode($)}validateCode(Q,$,q){if(Q==="wallet"){if(this.walletStrategy.validateCode($),!q)return;let Z=q,X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithWallet({...Z,canonicalMessageParts:{pubkey:$.pubkey,windowStart:$.timestamp}}))throw Error("Signature verification failed")}else{let Z=q;this.delegationStrategy.validateDelegatedCode($,Z);let X=this.getAdapter(Z.chain);if(!X)throw j.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}export{D8 as truncateBits,h as sha256,S as serializeCanonical,s as hmacSha256,h0 as hkdfSha256,n0 as generateRandomSecret,s8 as generateNonce,W8 as digestToDigits,o8 as codeHash,l0 as base32EncodeCrockford,a as WalletStrategy,t8 as TransactionNotSignedByIntendedOwnerError,z8 as SolanaAdapter,e0 as SUPPORTED_CHAINS,k0 as ProtocolErrorCode,j as ProtocolError,w8 as PROTOCOL_NORMALIZATION,i as PROTOCOL_META_MAX_BYTES,a8 as MissingMetaError,e8 as MetaMismatchError,$0 as InvalidSignatureError,Q0 as InvalidPubkeyFormatError,q0 as InvalidCodeFormatError,Z0 as InvalidAdapterError,i8 as ExpiredCodeError,I as DelegationStrategy,L8 as CODE_MIN_LENGTH,M8 as CODE_MAX_LENGTH,i0 as CODE_DEFAULT_LENGTH,a0 as CODE_CHARSET_DIGITS,r0 as CANONICAL_MESSAGE_VERSION,o0 as CANONICAL_MESSAGE_PREFIX,$8 as BaseChainAdapter,E0 as ActionCodesProtocol};
|
2
2
|
|
3
|
-
//# debugId=
|
3
|
+
//# debugId=8BE11520E7ADE40064756E2164756E21
|
package/dist/index.js.map
CHANGED
@@ -13,13 +13,13 @@
|
|
13
13
|
"import type { CanonicalMessageParts } from \"../types\";\n\nexport const CANONICAL_MESSAGE_VERSION = 1;\nexport const CANONICAL_MESSAGE_PREFIX = \"actioncodes\";\n\nexport function serializeCanonical(parts: CanonicalMessageParts): Uint8Array {\n const json = JSON.stringify({\n id: CANONICAL_MESSAGE_PREFIX,\n ver: CANONICAL_MESSAGE_VERSION,\n pubkey: parts.pubkey,\n windowStart: parts.windowStart,\n // Include secret if provided for enhanced security\n ...(parts.secret && { secret: parts.secret }),\n });\n return new TextEncoder().encode(json);\n}\n\n\n",
|
14
14
|
"// Protocol-wide constants\n\nexport const PROTOCOL_NORMALIZATION = \"NFC\";\nexport const PROTOCOL_META_MAX_BYTES = 256; // UTF-8 bytes\n\nexport const CODE_MIN_LENGTH = 6;\nexport const CODE_MAX_LENGTH = 24;\nexport const CODE_DEFAULT_LENGTH = 8;\n\n// Digits-only codes (0-9)\nexport const CODE_CHARSET_DIGITS = \"0123456789\";\n\nexport const SUPPORTED_CHAINS = [\"solana\"] as const;\n\n\n",
|
15
15
|
"export enum ProtocolErrorCode {\n // Code validation errors\n EXPIRED_CODE = \"EXPIRED_CODE\",\n INVALID_CODE = \"INVALID_CODE\",\n INVALID_CODE_FORMAT = \"INVALID_CODE_FORMAT\",\n INVALID_SIGNATURE = \"INVALID_SIGNATURE\",\n\n // Meta validation errors\n MISSING_META = \"MISSING_META\",\n INVALID_META_FORMAT = \"INVALID_META_FORMAT\",\n META_MISMATCH = \"META_MISMATCH\",\n META_TOO_LARGE = \"META_TOO_LARGE\",\n\n // Transaction errors\n TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER = \"TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER\",\n INVALID_TRANSACTION_FORMAT = \"INVALID_TRANSACTION_FORMAT\",\n INVALID_PUBKEY_FORMAT = \"INVALID_PUBKEY_FORMAT\",\n\n // Input validation errors\n INVALID_INPUT = \"INVALID_INPUT\",\n MISSING_REQUIRED_FIELD = \"MISSING_REQUIRED_FIELD\",\n\n // Crypto errors\n CRYPTO_ERROR = \"CRYPTO_ERROR\",\n INVALID_DIGEST = \"INVALID_DIGEST\",\n\n // Adapter errors\n INVALID_ADAPTER = \"INVALID_ADAPTER\",\n}\n\nexport class ProtocolError extends Error {\n constructor(\n public readonly code: ProtocolErrorCode,\n message: string,\n public readonly details?: Record<string, unknown>\n ) {\n super(message);\n this.name = \"ProtocolError\";\n }\n\n // Code validation errors\n static expiredCode(code: string, expiresAt: number, currentTime: number): ExpiredCodeError {\n return new ExpiredCodeError(code, expiresAt, currentTime);\n }\n\n static invalidCode(expected: string, actual: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_CODE,\n `Invalid code: expected '${expected}', got '${actual}'`,\n { expected, actual }\n );\n }\n\n static invalidCodeFormat(code: string, reason: string): InvalidCodeFormatError {\n return new InvalidCodeFormatError(code, reason);\n }\n\n static invalidSignature(reason: string): InvalidSignatureError {\n return new InvalidSignatureError(reason);\n }\n\n // Meta validation errors\n static missingMeta(): MissingMetaError {\n return new MissingMetaError();\n }\n\n static invalidMetaFormat(reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_META_FORMAT,\n `Invalid protocol meta format: ${reason}`,\n { reason }\n );\n }\n\n static metaMismatch(expected: string, actual: string, field: string): MetaMismatchError {\n return new MetaMismatchError(expected, actual, field);\n }\n\n static metaTooLarge(maxBytes: number, actualBytes: number): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.META_TOO_LARGE,\n `Protocol meta too large: ${actualBytes} bytes (max: ${maxBytes})`,\n { maxBytes, actualBytes }\n );\n }\n\n // Transaction errors\n static transactionNotSignedByIntendedOwner(intended: string, actualSigners: string[]): TransactionNotSignedByIntendedOwnerError {\n return new TransactionNotSignedByIntendedOwnerError(intended, actualSigners);\n }\n\n static invalidTransactionFormat(reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_TRANSACTION_FORMAT,\n `Invalid transaction format: ${reason}`,\n { reason }\n );\n }\n\n static invalidPubkeyFormat(pubkey: string, reason: string): InvalidPubkeyFormatError {\n return new InvalidPubkeyFormatError(pubkey, reason);\n }\n\n // Input validation errors\n static invalidInput(field: string, value: unknown, reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_INPUT,\n `Invalid ${field}: ${reason}`,\n { field, value, reason }\n );\n }\n\n static missingRequiredField(field: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.MISSING_REQUIRED_FIELD,\n `Missing required field: ${field}`,\n { field }\n );\n }\n\n // Crypto errors\n static cryptoError(operation: string, reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.CRYPTO_ERROR,\n `Crypto error in ${operation}: ${reason}`,\n { operation, reason }\n );\n }\n\n static invalidDigest(reason: string): ProtocolError {\n return new ProtocolError(\n ProtocolErrorCode.INVALID_DIGEST,\n `Invalid digest: ${reason}`,\n { reason }\n );\n }\n\n // Adapter errors\n static invalidAdapter(adapter: string): InvalidAdapterError {\n return new InvalidAdapterError(adapter);\n }\n\n // Generic error creator\n static create(code: ProtocolErrorCode, message: string, details?: Record<string, unknown>): ProtocolError {\n return new ProtocolError(code, message, details);\n }\n}\n\n// Specific error classes for instanceof checks\nexport class ExpiredCodeError extends ProtocolError {\n constructor(code: string, expiresAt: number, currentTime: number) {\n super(\n ProtocolErrorCode.EXPIRED_CODE,\n `Action code '${code}' expired at ${expiresAt}, current time: ${currentTime}`,\n { code, expiresAt, currentTime }\n );\n this.name = \"ExpiredCodeError\";\n }\n}\n\nexport class MissingMetaError extends ProtocolError {\n constructor() {\n super(\n ProtocolErrorCode.MISSING_META,\n \"Transaction does not contain valid protocol meta\"\n );\n this.name = \"MissingMetaError\";\n }\n}\n\nexport class MetaMismatchError extends ProtocolError {\n constructor(expected: string, actual: string, field: string) {\n super(\n ProtocolErrorCode.META_MISMATCH,\n `Meta ${field} mismatch: expected '${expected}', got '${actual}'`,\n { expected, actual, field }\n );\n this.name = \"MetaMismatchError\";\n }\n}\n\nexport class TransactionNotSignedByIntendedOwnerError extends ProtocolError {\n constructor(intended: string, actualSigners: string[]) {\n super(\n ProtocolErrorCode.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER,\n `Transaction not signed by intended owner '${intended}'. Actual signers: [${actualSigners.join(\n \", \"\n )}]`,\n { intended, actualSigners }\n );\n this.name = \"TransactionNotSignedByIntendedOwnerError\";\n }\n}\n\nexport class InvalidPubkeyFormatError extends ProtocolError {\n constructor(pubkey: string, reason: string) {\n super(\n ProtocolErrorCode.INVALID_PUBKEY_FORMAT,\n `Invalid public key format '${pubkey}': ${reason}`,\n { pubkey, reason }\n );\n this.name = \"InvalidPubkeyFormatError\";\n }\n}\n\nexport class InvalidSignatureError extends ProtocolError {\n constructor(reason: string) {\n super(ProtocolErrorCode.INVALID_SIGNATURE, `Invalid signature: ${reason}`, {\n reason,\n });\n this.name = \"InvalidSignatureError\";\n }\n}\n\nexport class InvalidCodeFormatError extends ProtocolError {\n constructor(code: string, reason: string) {\n super(\n ProtocolErrorCode.INVALID_CODE_FORMAT,\n `Invalid code format '${code}': ${reason}`,\n { code, reason }\n );\n this.name = \"InvalidCodeFormatError\";\n }\n}\n\nexport class InvalidAdapterError extends ProtocolError {\n constructor(adapter: string) {\n super(ProtocolErrorCode.INVALID_ADAPTER, `Invalid adapter: ${adapter}`, { adapter });\n this.name = \"InvalidAdapterError\";\n }\n}",
|
16
|
-
"import type {\n ActionCode,\n CodeGenerationConfig,\n WalletStrategyCodeGenerationResult,\n} from \"../types\";\nimport { sha256, hmacSha256, truncateBits, digestToDigits } from \"../utils/crypto\";\nimport { CODE_MAX_LENGTH, CODE_MIN_LENGTH } from \"../constants\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport { ProtocolError } from \"../errors\";\n\nexport class WalletStrategy {\n constructor(private config: CodeGenerationConfig) {}\n\n generateCode(\n canonicalMessage: Uint8Array,\n signature: string,\n providedSecret?: string,\n ): WalletStrategyCodeGenerationResult {\n const canonical = canonicalMessage;\n \n // Parse pubkey and windowStart from canonical message\n const decoded = JSON.parse(new TextDecoder().decode(canonical));\n const pubkey = decoded.pubkey;\n const windowStart = decoded.windowStart;\n \n // Only use secret if explicitly provided\n const secret = providedSecret;\n \n // Use signature if provided, otherwise fall back to secret/HMAC\n let digest: Uint8Array;\n if (signature) {\n // Use signature as the primary entropy source\n const signatureBytes =
|
16
|
+
"import type {\n ActionCode,\n CodeGenerationConfig,\n WalletStrategyCodeGenerationResult,\n} from \"../types\";\nimport { sha256, hmacSha256, truncateBits, digestToDigits } from \"../utils/crypto\";\nimport { CODE_MAX_LENGTH, CODE_MIN_LENGTH } from \"../constants\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport { ProtocolError } from \"../errors\";\nimport bs58 from \"bs58\";\n\nexport class WalletStrategy {\n constructor(private config: CodeGenerationConfig) {}\n\n generateCode(\n canonicalMessage: Uint8Array,\n signature: string,\n providedSecret?: string,\n ): WalletStrategyCodeGenerationResult {\n const canonical = canonicalMessage;\n \n // Parse pubkey and windowStart from canonical message\n const decoded = JSON.parse(new TextDecoder().decode(canonical));\n const pubkey = decoded.pubkey;\n const windowStart = decoded.windowStart;\n \n // Only use secret if explicitly provided\n const secret = providedSecret;\n \n // Use signature if provided, otherwise fall back to secret/HMAC\n let digest: Uint8Array;\n if (signature) {\n // Use signature as the primary entropy source\n // Decode Base58 signature to bytes\n const signatureBytes = bs58.decode(signature);\n digest = hmacSha256(signatureBytes, canonical);\n } else if (secret) {\n // Use secret for HMAC\n digest = hmacSha256(secret, canonical);\n } else {\n // Fall back to SHA256 (less secure)\n digest = sha256(canonical);\n }\n \n const clamped = Math.max(\n CODE_MIN_LENGTH,\n Math.min(CODE_MAX_LENGTH, this.config.codeLength)\n );\n const truncated = truncateBits(digest, 8 * Math.ceil(clamped / 2));\n const code = digestToDigits(truncated, clamped);\n\n const actionCode: ActionCode = {\n code,\n pubkey,\n timestamp: windowStart,\n expiresAt: windowStart + this.config.ttlMs,\n // Include signature if provided\n ...(signature && { signature }),\n // Only include secret if provided\n ...(secret && { secret }),\n };\n\n return { actionCode, canonicalMessage: canonical };\n }\n\n validateCode(actionCode: ActionCode): void {\n const currentTime = Date.now();\n if (currentTime > actionCode.expiresAt + (this.config.clockSkewMs ?? 0)) {\n throw ProtocolError.expiredCode(actionCode.code, actionCode.expiresAt, currentTime);\n }\n \n const canonical = serializeCanonical({\n pubkey: actionCode.pubkey,\n windowStart: actionCode.timestamp,\n secret: actionCode.secret, // Include secret if available\n });\n \n // Use same digest method as generation\n let digest: Uint8Array;\n if (actionCode.signature) {\n // Use signature as the primary entropy source\n // Decode Base58 signature to bytes\n const signatureBytes = bs58.decode(actionCode.signature);\n digest = hmacSha256(signatureBytes, canonical);\n } else if (actionCode.secret) {\n // Use secret for HMAC\n digest = hmacSha256(actionCode.secret, canonical);\n } else {\n // Fall back to SHA256 (less secure)\n digest = sha256(canonical);\n }\n \n const clamped = Math.max(\n CODE_MIN_LENGTH,\n Math.min(CODE_MAX_LENGTH, this.config.codeLength)\n );\n const truncated = truncateBits(digest, 8 * Math.ceil(clamped / 2));\n const expected = digestToDigits(truncated, clamped);\n \n if (expected !== actionCode.code) {\n throw ProtocolError.invalidCode(expected, actionCode.code);\n }\n }\n}",
|
17
17
|
"import { WalletStrategy } from \"./WalletStrategy\";\nimport { generateNonce, sha256 } from \"../utils/crypto\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport type {\n DelegationCertificate,\n DelegatedActionCode,\n CodeGenerationConfig,\n DelegationStrategyCodeGenerationResult,\n} from \"../types\";\n\nexport class DelegationStrategy {\n private walletStrategy: WalletStrategy;\n private config: CodeGenerationConfig;\n\n constructor(config: CodeGenerationConfig) {\n this.config = config;\n this.walletStrategy = new WalletStrategy(config);\n }\n\n /**\n * Create a delegation certificate template (no signing)\n * The wallet should sign this template to create a valid certificate\n */\n static createDelegationCertificateTemplate(\n userPublicKey: string,\n durationMs: number = 3600000, // 1 hour default\n chain: string = \"solana\"\n ): Omit<DelegationCertificate, \"signature\"> {\n const now = Date.now();\n return {\n version: \"1.0\",\n delegator: userPublicKey,\n issuedAt: now,\n expiresAt: now + durationMs,\n nonce: generateNonce(),\n chain,\n };\n }\n\n /**\n * Generate a delegated action code using a signed certificate\n * The certificate acts as the secret for deterministic generation\n */\n generateDelegatedCode(\n certificate: DelegationCertificate\n ): DelegationStrategyCodeGenerationResult {\n // Validate certificate format and expiration only\n // Signature verification happens in ActionCodesProtocol.validateCode()\n if (!this.validateCertificate(certificate)) {\n throw new Error(\"Invalid delegation certificate\");\n }\n\n // Use certificate as the secret for deterministic generation\n const certificateSecret = DelegationStrategy.hashCertificate(certificate);\n\n // Generate canonical message for delegation\n const windowStart = Math.floor(Date.now() / this.config.ttlMs) * this.config.ttlMs;\n const canonicalMessage = serializeCanonical({ \n pubkey: certificate.delegator, \n windowStart, \n secret: certificateSecret \n });\n\n // Generate code using existing WalletStrategy with canonical message\n const result = this.walletStrategy.generateCode(\n canonicalMessage,\n \"\", // No signature for delegation (uses secret instead)\n certificateSecret // Use certificate hash as secret\n );\n\n // Create delegated action code\n const delegatedActionCode: DelegatedActionCode = {\n ...result.actionCode,\n delegationId: DelegationStrategy.hashCertificate(certificate),\n delegatedBy: certificate.delegator,\n };\n\n return {\n actionCode: delegatedActionCode,\n };\n }\n\n /**\n * Validate a delegated action code\n */\n validateDelegatedCode(\n actionCode: DelegatedActionCode,\n certificate: DelegationCertificate\n ): void {\n // Validate the action code itself\n this.walletStrategy.validateCode(actionCode);\n\n // Verify delegation is still valid\n if (!this.validateCertificate(certificate)) {\n throw new Error(\"Delegation certificate expired or invalid\");\n }\n\n // Verify the certificate matches the action code\n if (actionCode.delegationId !== DelegationStrategy.hashCertificate(certificate)) {\n throw new Error(\"Action code does not match delegation certificate\");\n }\n\n // Verify the delegator matches\n if (actionCode.delegatedBy !== certificate.delegator) {\n throw new Error(\"Action code delegator does not match certificate\");\n }\n }\n\n /**\n * Check if a certificate is valid (not expired and properly formatted)\n */\n private validateCertificate(certificate: DelegationCertificate): boolean {\n // Check if certificate is expired\n if (Date.now() > certificate.expiresAt) {\n return false;\n }\n\n // Check if certificate is not yet valid (issued in the future)\n if (Date.now() < certificate.issuedAt) {\n return false;\n }\n\n // Check required fields\n if (\n !certificate.version ||\n !certificate.delegator ||\n !certificate.issuedAt ||\n !certificate.expiresAt ||\n !certificate.nonce ||\n !certificate.chain ||\n !certificate.signature\n ) {\n return false;\n }\n\n // Check version\n if (certificate.version !== \"1.0\") {\n return false;\n }\n\n return true;\n }\n\n /**\n * Serialize a delegation certificate for signing (chain-agnostic)\n */\n static serializeCertificate(cert: Omit<DelegationCertificate, 'signature'>): Uint8Array {\n const json = JSON.stringify({\n version: cert.version,\n delegator: cert.delegator,\n issuedAt: cert.issuedAt,\n expiresAt: cert.expiresAt,\n nonce: cert.nonce,\n chain: cert.chain\n });\n return new TextEncoder().encode(json);\n }\n\n /**\n * Hash a delegation certificate to create a unique ID (chain-agnostic)\n * Includes signature to prevent relayer from generating codes\n */\n static hashCertificate(cert: DelegationCertificate): string {\n // Include signature in hash to prevent relayer code generation\n const serialized = this.serializeCertificate(cert);\n const signatureBytes = new TextEncoder().encode(cert.signature);\n \n // Combine certificate data with signature\n const combined = new Uint8Array(serialized.length + signatureBytes.length);\n combined.set(serialized, 0);\n combined.set(signatureBytes, serialized.length);\n \n const hash = sha256(combined);\n return Array.from(hash)\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n }\n\n /**\n * Validate certificate structure and timing (chain-agnostic)\n * This should be called before signature verification\n */\n static validateCertificateStructure(certificate: DelegationCertificate): boolean {\n // Check required fields\n if (\n !certificate.version ||\n !certificate.delegator ||\n !certificate.issuedAt ||\n !certificate.expiresAt ||\n !certificate.nonce ||\n !certificate.chain ||\n !certificate.signature\n ) {\n return false;\n }\n\n // Check version\n if (certificate.version !== \"1.0\") {\n return false;\n }\n\n // Check if certificate is expired\n if (Date.now() > certificate.expiresAt) {\n return false;\n }\n\n // Check if certificate is not yet valid (issued in the future)\n if (Date.now() < certificate.issuedAt) {\n return false;\n }\n\n return true;\n }\n\n /**\n * Get the wallet strategy instance for advanced usage\n */\n getWalletStrategy(): WalletStrategy {\n return this.walletStrategy;\n }\n}\n",
|
18
18
|
"import nacl from \"tweetnacl\";\nimport bs58 from \"bs58\";\nimport {\n PublicKey,\n Transaction,\n VersionedTransaction,\n TransactionInstruction,\n MessageV0,\n} from \"@solana/web3.js\";\nimport { createMemoInstruction, MEMO_PROGRAM_ID } from \"@solana/spl-memo\";\nimport { BaseChainAdapter, type ChainWalletStrategyContext, type ChainDelegationStrategyContext } from \"./BaseChainAdapter\";\nimport {\n buildProtocolMeta,\n parseProtocolMeta,\n type ProtocolMetaFields,\n} from \"../utils/protocolMeta\";\nimport { codeHash } from \"../utils/crypto\";\nimport type { ActionCode } from \"../types\";\nimport { ProtocolError } from \"../errors\";\nimport { serializeCanonical } from \"../utils/canonical\";\nimport { DelegationStrategy } from \"../strategy/DelegationStrategy\";\n\nexport type SolanaContext = {\n pubkey: string | PublicKey;\n signature: string; // base58\n};\n\n/** Union of supported Solana txn types */\nexport type SolanaTransaction = Transaction | VersionedTransaction;\n\nexport class SolanaAdapter extends BaseChainAdapter<SolanaContext, SolanaContext> {\n /** Normalize pubkey input to PublicKey */\n private normalizePubkey(input: string | PublicKey): PublicKey {\n if (typeof input === \"string\") {\n return new PublicKey(input);\n }\n return input;\n }\n\n /** Verify the signature over canonical message (protocol-level) */\n verifyWithWallet(context: ChainWalletStrategyContext<SolanaContext>): boolean {\n // Early validation checks - these are fast and don't leak timing info\n if (context.chain !== \"solana\") return false;\n if (!context.pubkey || !context.signature || !context.canonicalMessageParts)\n return false;\n\n // Perform all operations in a single try-catch to ensure consistent timing\n try {\n const message = serializeCanonical(context.canonicalMessageParts);\n const pub = this.normalizePubkey(context.pubkey);\n const sigBytes = bs58.decode(context.signature);\n const pubBytes = pub.toBytes();\n \n // Validate lengths\n if (sigBytes.length !== 64 || pubBytes.length !== 32) {\n return false;\n }\n \n // Perform signature verification\n return nacl.sign.detached.verify(message, sigBytes, pubBytes);\n } catch {\n // All errors result in false with consistent timing\n return false;\n }\n }\n\n /** Verify delegation certificate signature */\n verifyWithDelegation(context: ChainDelegationStrategyContext<SolanaContext>): boolean {\n // Early validation checks - these are fast and don't leak timing info\n if (context.chain !== \"solana\") return false;\n if (!context.pubkey || !context.signature || !context.certificate)\n return false;\n\n const cert = context.certificate;\n\n // Use strategy for chain-agnostic certificate validation\n if (!DelegationStrategy.validateCertificateStructure(cert)) {\n return false;\n }\n\n // Check delegator matches the pubkey\n if (cert.delegator !== context.pubkey) return false;\n\n // Check chain matches\n if (cert.chain !== context.chain) return false;\n\n // Perform all operations in a single try-catch to ensure consistent timing\n try {\n // Serialize certificate for signature verification (using strategy method)\n const certWithoutSignature = {\n version: cert.version,\n delegator: cert.delegator,\n issuedAt: cert.issuedAt,\n expiresAt: cert.expiresAt,\n nonce: cert.nonce,\n chain: cert.chain\n };\n const message = DelegationStrategy.serializeCertificate(certWithoutSignature);\n \n const pub = this.normalizePubkey(context.pubkey);\n const sigBytes = bs58.decode(context.signature);\n const pubBytes = pub.toBytes();\n \n // Validate lengths\n if (sigBytes.length !== 64 || pubBytes.length !== 32) {\n return false;\n }\n \n // Perform signature verification\n return nacl.sign.detached.verify(message, sigBytes, pubBytes);\n } catch {\n // All errors result in false with consistent timing\n return false;\n }\n }\n\n /** Create a Solana memo instruction carrying protocol meta (for SDK/clients) */\n static createProtocolMetaIx(\n meta: ProtocolMetaFields\n ): TransactionInstruction {\n const metaString = buildProtocolMeta(meta);\n return createMemoInstruction(metaString);\n }\n\n /** Extract protocol metadata string (memo) from a transaction, or null */\n getProtocolMeta(tx: SolanaTransaction): string | null {\n for (const ix of this.getMemoInstructions(tx)) {\n const data = ix.data;\n try {\n const s = new TextDecoder().decode(data);\n // Optionally: test parse\n const parsed = parseProtocolMeta(s);\n if (parsed) return s;\n } catch {\n // ignore\n }\n }\n return null;\n }\n\n /** Get parsed ProtocolMeta object, or null if none or invalid */\n parseMeta(tx: SolanaTransaction): ProtocolMetaFields | null {\n const s = this.getProtocolMeta(tx);\n if (!s) return null;\n return parseProtocolMeta(s);\n }\n\n /** List memo instructions from the transaction (legacy & versioned) */\n private getMemoInstructions(tx: SolanaTransaction): TransactionInstruction[] {\n if (tx instanceof Transaction) {\n return tx.instructions.filter((ix) =>\n ix.programId.equals(MEMO_PROGRAM_ID)\n );\n } else {\n // VersionedTransaction: inspect `message.compiledInstructions` / static keys\n const vtx = tx as VersionedTransaction;\n const msg = vtx.message;\n if (msg instanceof MessageV0) {\n const memos: TransactionInstruction[] = [];\n for (const ix of msg.compiledInstructions) {\n const pid = msg.staticAccountKeys[ix.programIdIndex];\n if (pid && pid.equals(MEMO_PROGRAM_ID)) {\n // reconstruct a TransactionInstruction for inspection\n const keys = ix.accountKeyIndexes.map((i) => ({\n pubkey: msg.staticAccountKeys[i]!,\n isSigner: false,\n isWritable: false,\n }));\n memos.push(\n new TransactionInstruction({\n keys,\n programId: pid,\n data: ix.data as Buffer,\n })\n );\n }\n }\n return memos;\n }\n return [];\n }\n }\n\n /**\n * Validate that a transaction's memo meta aligns with the bound `actionCode`.\n * Throws ProtocolError if validation fails.\n */\n verifyTransactionMatchesCode(\n actionCode: ActionCode,\n tx: SolanaTransaction\n ): void {\n // Check expiration first\n const currentTime = Date.now();\n if (currentTime > actionCode.expiresAt) {\n throw ProtocolError.expiredCode(\n actionCode.code,\n actionCode.expiresAt,\n currentTime\n );\n }\n\n const meta = this.parseMeta(tx);\n if (!meta) {\n throw ProtocolError.missingMeta();\n }\n\n // Check version\n if (meta.ver !== 2) {\n throw ProtocolError.metaMismatch(\"2\", String(meta.ver), \"ver\");\n }\n\n // Check code ID - should be codeHash of the code, not the code itself\n const expectedCodeHash = codeHash(actionCode.code);\n if (meta.id !== expectedCodeHash) {\n throw ProtocolError.metaMismatch(expectedCodeHash, meta.id, \"id\");\n }\n\n // Check intended pubkey\n if (meta.int !== actionCode.pubkey) {\n throw ProtocolError.metaMismatch(actionCode.pubkey, meta.int, \"int\");\n }\n }\n\n /**\n * Verify that the transaction is signed by the \"intendedFor\" pubkey\n * as declared in the protocol meta of the transaction.\n * Throws ProtocolError if validation fails.\n */\n verifyTransactionSignedByIntentOwner(tx: SolanaTransaction): void {\n const meta = this.parseMeta(tx);\n if (!meta) {\n throw ProtocolError.missingMeta();\n }\n\n const intended = meta.int;\n if (!intended) {\n throw ProtocolError.invalidMetaFormat(\n \"Missing 'int' (intendedFor) field\"\n );\n }\n\n let pubkey: PublicKey;\n try {\n pubkey = new PublicKey(intended);\n } catch {\n throw ProtocolError.invalidPubkeyFormat(\n intended,\n \"Invalid public key format\"\n );\n }\n\n const actualSigners: string[] = [];\n\n // For legacy Transaction\n if (tx instanceof Transaction) {\n const isSigned = tx.signatures.some((sig) => {\n if (!sig.signature) return false;\n actualSigners.push(sig.publicKey.toString());\n return sig.publicKey.equals(pubkey);\n });\n\n if (!isSigned) {\n throw ProtocolError.transactionNotSignedByIntendedOwner(\n intended,\n actualSigners\n );\n }\n return;\n }\n\n // For VersionedTransaction (MessageV0)\n if (tx instanceof VersionedTransaction) {\n const msg = tx.message;\n if (msg instanceof MessageV0) {\n const signerCount = msg.header.numRequiredSignatures;\n for (let i = 0; i < signerCount; i++) {\n const key = msg.staticAccountKeys[i];\n if (key) {\n actualSigners.push(key.toString());\n if (key.equals(pubkey)) {\n return; // Found the intended signer\n }\n }\n }\n throw ProtocolError.transactionNotSignedByIntendedOwner(\n intended,\n actualSigners\n );\n }\n }\n\n throw ProtocolError.invalidTransactionFormat(\n \"Unsupported transaction format\"\n );\n }\n\n /**\n * Attach protocol meta into a legacy or versioned transaction.\n *\n * ⚠️ Note: this mutates the given transaction.\n */\n static attachProtocolMeta<T extends SolanaTransaction>(\n tx: T,\n meta: ProtocolMetaFields\n ): T {\n const metaIx = SolanaAdapter.createProtocolMetaIx(meta);\n\n if (tx instanceof Transaction) {\n // Legacy tx: just push memo instruction\n tx.add(metaIx);\n return tx as T;\n }\n\n if (tx instanceof VersionedTransaction) {\n const msg = tx.message as MessageV0;\n\n // Extend static account keys with programId if missing\n const newStaticKeys = [...msg.staticAccountKeys];\n if (!newStaticKeys.some((k) => k.equals(MEMO_PROGRAM_ID))) {\n newStaticKeys.push(MEMO_PROGRAM_ID);\n }\n\n // Program ID index\n const programIdIndex = newStaticKeys.findIndex((k) =>\n k.equals(MEMO_PROGRAM_ID)\n );\n\n // Memo instruction as compiled instruction\n const compiledIx = {\n programIdIndex,\n accountKeyIndexes: [],\n data: metaIx.data,\n };\n\n const newMsg = new MessageV0({\n header: msg.header,\n staticAccountKeys: newStaticKeys,\n recentBlockhash: msg.recentBlockhash,\n compiledInstructions: [...msg.compiledInstructions, compiledIx],\n addressTableLookups: msg.addressTableLookups,\n });\n\n // Re-wrap in VersionedTransaction\n const newTx = new VersionedTransaction(newMsg);\n // Preserve existing signatures if any\n newTx.signatures = tx.signatures;\n return newTx as T;\n }\n\n throw new Error(\"Unsupported transaction type\");\n }\n}\n",
|
19
19
|
"import { PROTOCOL_META_MAX_BYTES, PROTOCOL_NORMALIZATION } from \"../constants\";\n\n// v2 protocol meta\nexport interface ProtocolMetaFields {\n ver: 2;\n id: string; // code id (usually hex/hash)\n int: string; // intent owner who created the code\n p?: Record<string, unknown>; // optional parameters as JSON object\n}\n\nexport const SCHEME = \"actioncodes:\";\n\nexport function buildProtocolMeta(fields: ProtocolMetaFields): string {\n const norm = normalizeFields(fields);\n if (norm.int != null) guardParamSize(norm.int);\n \n const parts = [\n `ver=${norm.ver}`,\n `id=${encodeURIComponent(norm.id)}`,\n `int=${encodeURIComponent(norm.int)}`,\n ];\n\n if (norm.p != null && Object.keys(norm.p).length > 0) {\n const paramsJson = JSON.stringify(norm.p);\n guardParamSize(paramsJson);\n parts.push(`p=${encodeURIComponent(paramsJson)}`);\n }\n \n const out = SCHEME + parts.join(\"&\");\n guardSize(out);\n return out;\n}\n\nexport function parseProtocolMeta(input: string): ProtocolMetaFields {\n if (!input.startsWith(SCHEME)) throw new Error(\"protocol meta must start with actioncodes:\");\n const q = input.slice(SCHEME.length);\n const pairs = q.split(\"&\").filter(Boolean);\n const map = new Map<string, string>();\n for (const pair of pairs) {\n const [k, vRaw] = pair.split(\"=\", 2);\n if (!k) continue;\n const v = vRaw != null ? decodeURIComponent(vRaw) : \"\";\n map.set(k, v);\n }\n const verStr = map.get(\"ver\");\n const id = map.get(\"id\");\n const int = map.get(\"int\");\n const pStr = map.get(\"p\");\n if (verStr == null || id == null || int == null) throw new Error(\"protocol meta missing required fields ver or id or int\");\n const ver = Number(verStr);\n if (!Number.isInteger(ver) || ver <= 0) throw new Error(\"protocol meta ver must be positive integer\");\n \n let p: Record<string, unknown> | undefined;\n if (pStr != null && pStr !== \"\") {\n try {\n p = JSON.parse(pStr);\n if (typeof p !== \"object\" || p === null || Array.isArray(p)) {\n throw new Error(\"protocol meta p must be a JSON object\");\n }\n } catch {\n throw new Error(\"protocol meta p must be valid JSON\");\n }\n }\n \n const norm = normalizeFields({ ver: ver as 2, id, int, p });\n if (norm.int != null) guardParamSize(norm.int);\n if (norm.p != null) guardParamSize(JSON.stringify(norm.p));\n const unknownKeys = [...map.keys()].filter((k) => k !== \"ver\" && k !== \"id\" && k !== \"int\" && k !== \"p\");\n if (unknownKeys.length > 0) throw new Error(\"protocol meta contains unsupported keys\");\n guardSize(buildProtocolMeta(norm));\n return norm;\n}\n\nexport function validateProtocolMetaFormat(input: string): { ok: true } | { ok: false; reason: string } {\n try {\n parseProtocolMeta(input);\n return { ok: true };\n } catch (e: unknown) {\n return { ok: false, reason: String(e) };\n }\n}\n\nfunction normalizeFields(fields: ProtocolMetaFields): ProtocolMetaFields {\n const id = fields.id.normalize(PROTOCOL_NORMALIZATION).trim();\n const out: ProtocolMetaFields = { ver: fields.ver, id, int: fields.int };\n if (fields.int != null) out.int = fields.int.normalize(PROTOCOL_NORMALIZATION).trim();\n if (fields.p != null) {\n // For JSON objects, we don't normalize the object itself, just ensure it's valid\n out.p = fields.p;\n }\n return out;\n}\n\nfunction guardSize(s: string): void {\n const bytes = new TextEncoder().encode(s);\n if (bytes.length > PROTOCOL_META_MAX_BYTES) throw new Error(`protocol meta exceeds ${PROTOCOL_META_MAX_BYTES} bytes`);\n}\n\nfunction guardParamSize(value: string): void {\n const bytes = new TextEncoder().encode(value);\n if (bytes.length > PROTOCOL_META_MAX_BYTES) throw new Error(`protocol meta params exceed ${PROTOCOL_META_MAX_BYTES} bytes`);\n}\n\n\n",
|
20
20
|
"import type {\n ActionCode,\n CodeGenerationConfig,\n DelegationCertificate,\n DelegatedActionCode,\n} from \"./types\";\nimport type {\n ChainAdapter,\n ChainWalletStrategyContext,\n} from \"./adapters/BaseChainAdapter\";\nimport { WalletStrategy } from \"./strategy/WalletStrategy\";\nimport { DelegationStrategy } from \"./strategy/DelegationStrategy\";\nimport { SolanaAdapter, type SolanaContext } from \"./adapters/SolanaAdapter\";\nimport { ProtocolError } from \"./errors\";\nimport { serializeCanonical } from \"./utils/canonical\";\n\nexport class ActionCodesProtocol {\n private adapters: Record<string, ChainAdapter> = {};\n private _walletStrategy: WalletStrategy;\n private _delegationStrategy: DelegationStrategy;\n\n constructor(private readonly config: CodeGenerationConfig) {\n // Register default adapters\n this.adapters.solana = new SolanaAdapter() as ChainAdapter<SolanaContext>;\n\n // Initialize strategies\n this._walletStrategy = new WalletStrategy(config);\n this._delegationStrategy = new DelegationStrategy(config);\n }\n\n public getConfig(): CodeGenerationConfig {\n return this.config;\n }\n\n /** Register a chain adapter */\n registerAdapter(chain: string, adapter: ChainAdapter): void {\n this.adapters[chain] = adapter;\n }\n\n /** Get a registered adapter */\n getAdapter(chain: string): ChainAdapter | undefined {\n return this.adapters[chain];\n }\n\n /** Typed access to specific adapters */\n get adapter() {\n return {\n solana: this.adapters.solana as unknown as SolanaAdapter,\n };\n }\n\n /** Access to strategies */\n get walletStrategy() {\n return this._walletStrategy;\n }\n\n /** Get canonical message parts for signing (before code generation) */\n getCanonicalMessageParts(pubkey: string, providedSecret?: string): Uint8Array {\n const windowStart = Math.floor(Date.now() / this.config.ttlMs) * this.config.ttlMs;\n return serializeCanonical({ pubkey, windowStart, secret: providedSecret });\n }\n\n get delegationStrategy() {\n return this._delegationStrategy;\n }\n\n // Delegation Strategy Methods\n createDelegationCertificateTemplate(\n userPublicKey: string,\n durationMs: number = 3600000,\n chain: string = \"solana\"\n ): Omit<DelegationCertificate, \"signature\"> {\n return DelegationStrategy.createDelegationCertificateTemplate(\n userPublicKey,\n durationMs,\n chain\n );\n }\n\n // Generate code\n generateCode(\n strategy: \"wallet\",\n canonicalMessage: Uint8Array,\n signature: string,\n providedSecret?: string\n ): {\n actionCode: ActionCode;\n canonicalMessage: Uint8Array;\n };\n generateCode(\n strategy: \"delegation\",\n certificate: DelegationCertificate\n ): {\n actionCode: DelegatedActionCode;\n };\n generateCode(\n strategy: \"wallet\" | \"delegation\",\n param1: Uint8Array | DelegationCertificate,\n signature?: string,\n providedSecret?: string\n ): {\n actionCode: ActionCode | DelegatedActionCode;\n canonicalMessage?: Uint8Array;\n } {\n if (strategy === \"wallet\") {\n // Here param1 must be Uint8Array (canonical message)\n if (!signature) {\n throw ProtocolError.invalidSignature(\"Missing signature over canonical message\");\n }\n return this.walletStrategy.generateCode(param1 as Uint8Array, signature, providedSecret);\n } else {\n // Here param1 must be DelegationCertificate\n return this.delegationStrategy.generateDelegatedCode(\n param1 as DelegationCertificate\n );\n }\n }\n\n // Overloaded validateCode methods with strategy parameter\n validateCode(\n strategy: \"wallet\",\n actionCode: ActionCode,\n context?: Omit<ChainWalletStrategyContext<unknown>, \"canonicalMessageParts\">\n ): void;\n validateCode(\n strategy: \"delegation\",\n actionCode: DelegatedActionCode,\n certificate: DelegationCertificate\n ): void;\n validateCode(\n strategy: \"wallet\" | \"delegation\",\n actionCode: ActionCode | DelegatedActionCode,\n param2?:\n | DelegationCertificate\n | Omit<ChainWalletStrategyContext<unknown>, \"canonicalMessageParts\">\n ): void {\n if (strategy === \"wallet\") {\n // This will throw if validation fails\n this.walletStrategy.validateCode(actionCode as ActionCode);\n\n if (!param2) return;\n\n const context = param2 as Omit<\n ChainWalletStrategyContext<unknown>,\n \"canonicalMessageParts\"\n >;\n const adapter = this.getAdapter(context.chain);\n if (!adapter) throw ProtocolError.invalidAdapter(context.chain);\n\n const ok = adapter.verifyWithWallet({\n ...context,\n canonicalMessageParts: {\n pubkey: actionCode.pubkey,\n windowStart: actionCode.timestamp,\n },\n } as unknown as ChainWalletStrategyContext<unknown>);\n\n if (!ok) {\n throw new Error(\"Signature verification failed\");\n }\n } else {\n const certificate = param2 as DelegationCertificate;\n \n // CRITICAL: First validate the delegated action code\n // This ensures the code was actually generated from this certificate\n this.delegationStrategy.validateDelegatedCode(\n actionCode as DelegatedActionCode,\n certificate\n );\n\n // Then verify the certificate signature\n const adapter = this.getAdapter(certificate.chain);\n if (!adapter) throw ProtocolError.invalidAdapter(certificate.chain);\n\n const ok = adapter.verifyWithDelegation({\n chain: certificate.chain,\n pubkey: certificate.delegator,\n signature: certificate.signature,\n certificate: certificate,\n });\n\n if (!ok) {\n throw new Error(\"Signature verification failed\");\n }\n }\n }\n}\n"
|
21
21
|
],
|
22
|
-
"mappings": "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",
|
23
|
-
"debugId": "
|
22
|
+
"mappings": "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",
|
23
|
+
"debugId": "8BE11520E7ADE40064756E2164756E21",
|
24
24
|
"names": []
|
25
25
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WalletStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/WalletStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,kCAAkC,EACnC,MAAM,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"WalletStrategy.d.ts","sourceRoot":"","sources":["../../src/strategy/WalletStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,oBAAoB,EACpB,kCAAkC,EACnC,MAAM,UAAU,CAAC;AAOlB,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,oBAAoB;IAEhD,YAAY,CACV,gBAAgB,EAAE,UAAU,EAC5B,SAAS,EAAE,MAAM,EACjB,cAAc,CAAC,EAAE,MAAM,GACtB,kCAAkC;IA+CrC,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;CAsC3C"}
|