@actioncodes/protocol 2.0.7 → 2.0.8

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 CHANGED
@@ -1,3 +1,3 @@
1
- var P0=Object.create;var{getPrototypeOf:D0,defineProperty:a,getOwnPropertyNames:c8,getOwnPropertyDescriptor:v0}=Object,n8=Object.prototype.hasOwnProperty;var T8=(Q,$,q)=>{q=Q!=null?P0(D0(Q)):{};let Z=$||!Q||!Q.__esModule?a(q,"default",{value:Q,enumerable:!0}):q;for(let X of c8(Q))if(!n8.call(Z,X))a(Z,X,{get:()=>Q[X],enumerable:!0});return Z},l8=new WeakMap,W0=(Q)=>{var $=l8.get(Q),q;if($)return $;if($=a({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")c8(Q).map((Z)=>!n8.call($,Z)&&a($,Z,{get:()=>Q[Z],enumerable:!(q=v0(Q,Z))||q.enumerable}));return l8.set(Q,$),$};var w0=(Q,$)=>{for(var q in $)a(Q,q,{get:$[q],enumerable:!0,configurable:!0,set:(Z)=>$[q]=()=>Z})};var l0={};w0(l0,{validateProtocolMetaFormat:()=>h0,truncateBits:()=>j8,sha256:()=>d,serializeCanonicalRevoke:()=>y8,serializeCanonical:()=>m,parseProtocolMeta:()=>Z8,hmacSha256:()=>n,hkdfSha256:()=>f0,generateRandomSecret:()=>p0,generateNonce:()=>m8,digestToDigits:()=>R8,codeHash:()=>C8,buildProtocolMeta:()=>v8,base32EncodeCrockford:()=>H0,WalletStrategy:()=>o,TransactionNotSignedByIntendedOwnerError:()=>_8,SolanaAdapter:()=>r,SUPPORTED_CHAINS:()=>d0,SCHEME:()=>P8,ProtocolErrorCode:()=>G0,ProtocolError:()=>K,PROTOCOL_NORMALIZATION:()=>G8,PROTOCOL_META_MAX_BYTES:()=>s,MissingMetaError:()=>H8,MetaMismatchError:()=>p8,InvalidSignatureError:()=>S8,InvalidPubkeyFormatError:()=>A8,InvalidCodeFormatError:()=>g8,InvalidAdapterError:()=>u8,ExpiredCodeError:()=>f8,DelegationStrategy:()=>I,CODE_MIN_LENGTH:()=>O8,CODE_MAX_LENGTH:()=>F8,CODE_DEFAULT_LENGTH:()=>g0,CODE_CHARSET_DIGITS:()=>u0,CANONICAL_REVOKE_MESSAGE_PREFIX:()=>S0,CANONICAL_MESSAGE_VERSION:()=>_0,CANONICAL_MESSAGE_PREFIX:()=>A0,BaseChainAdapter:()=>e,ActionCodesProtocol:()=>O0});module.exports=W0(l0);class e{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function L0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function Y8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function H(Q,$,q=""){let Z=L0(Q),X=Q?.length,J=$!==void 0;if(!Z||J&&X!==$){let Y=q&&`"${q}" `,N=J?` of length ${$}`:"",U=Z?`length=${X}`:`type=${typeof Q}`;throw Error(Y+"expected Uint8Array"+N+", got "+U)}return Q}function t(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");Y8(Q.outputLen),Y8(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 s8(Q,$){H(Q,void 0,"digestInto() output");let q=$.outputLen;if(Q.length<q)throw Error('"digestInto() output" expected to be of length >='+q)}function V(...Q){for(let $=0;$<Q.length;$++)Q[$].fill(0)}function N8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function T(Q,$){return Q<<32-$|Q>>>$}function o8(Q,$={}){let q=(X,J)=>Q(J).update(X).digest(),Z=Q(void 0);return q.outputLen=Z.outputLen,q.blockLen=Z.blockLen,q.create=(X)=>Q(X),Object.assign(q,$),Object.freeze(q)}var r8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function i8(Q,$,q){return Q&$^~Q&q}function a8(Q,$,q){return Q&$^Q&q^$&q}class z8{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=N8(this.buffer)}update(Q){h(this),H(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 N=N8(Q);for(;Z<=X-J;J+=Z)this.process(N,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),s8(Q,this),this.finished=!0;let{buffer:$,view:q,blockLen:Z,isLE:X}=this,{pos:J}=this;if($[J++]=128,V(this.buffer.subarray(J)),this.padOffset>Z-J)this.process(q,0),J=0;for(let z=J;z<Z;z++)$[z]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=N8(Q),N=this.outputLen;if(N%4)throw Error("_sha2: outputLen must be aligned to 32bit");let U=N/4,j=this.get();if(U>j.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<U;z++)Y.setUint32(4*z,j[z],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]),W=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),w=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var U8=BigInt(4294967295),e8=BigInt(32);function M0(Q,$=!1){if($)return{h:Number(Q&U8),l:Number(Q>>e8&U8)};return{h:Number(Q>>e8&U8)|0,l:Number(Q&U8)|0}}function t8(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:N}=M0(Q[J],$);[Z[J],X[J]]=[Y,N]}return[Z,X]}var I8=(Q,$,q)=>Q>>>q,E8=(Q,$,q)=>Q<<32-q|$>>>q,g=(Q,$,q)=>Q>>>q|$<<32-q,u=(Q,$,q)=>Q<<32-q|$>>>q,Q8=(Q,$,q)=>Q<<64-q|$>>>q-32,$8=(Q,$,q)=>Q>>>q-32|$<<64-q;function E(Q,$,q,Z){let X=($>>>0)+(Z>>>0);return{h:Q+q+(X/4294967296|0)|0,l:X|0}}var Q0=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),$0=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,q0=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),Z0=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,X0=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),J0=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var V0=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 b8 extends z8{constructor(Q){super(64,Q,8,!1)}get(){let{A:Q,B:$,C:q,D:Z,E:X,F:J,G:Y,H:N}=this;return[Q,$,q,Z,X,J,Y,N]}set(Q,$,q,Z,X,J,Y,N){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=N|0}process(Q,$){for(let z=0;z<16;z++,$+=4)p[z]=Q.getUint32($,!1);for(let z=16;z<64;z++){let R=p[z-15],G=p[z-2],v=T(R,7)^T(R,18)^R>>>3,D=T(G,17)^T(G,19)^G>>>10;p[z]=D+p[z-7]+v+p[z-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:N,G:U,H:j}=this;for(let z=0;z<64;z++){let R=T(Y,6)^T(Y,11)^T(Y,25),G=j+R+i8(Y,N,U)+V0[z]+p[z]|0,D=(T(q,2)^T(q,13)^T(q,22))+a8(q,Z,X)|0;j=U,U=N,N=Y,Y=J+G|0,J=X,X=Z,Z=q,q=G+D|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,N=N+this.F|0,U=U+this.G|0,j=j+this.H|0,this.set(q,Z,X,J,Y,N,U,j)}roundClean(){V(p)}destroy(){this.set(0,0,0,0,0,0,0,0),V(this.buffer)}}class Y0 extends b8{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 T0 extends b8{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 N0=(()=>t8(["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))))(),I0=(()=>N0[0])(),E0=(()=>N0[1])(),_=new Uint32Array(80),A=new Uint32Array(80);class q8 extends z8{constructor(Q){super(128,Q,16,!1)}get(){let{Ah:Q,Al:$,Bh:q,Bl:Z,Ch:X,Cl:J,Dh:Y,Dl:N,Eh:U,El:j,Fh:z,Fl:R,Gh:G,Gl:v,Hh:D,Hl:k}=this;return[Q,$,q,Z,X,J,Y,N,U,j,z,R,G,v,D,k]}set(Q,$,q,Z,X,J,Y,N,U,j,z,R,G,v,D,k){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=N|0,this.Eh=U|0,this.El=j|0,this.Fh=z|0,this.Fl=R|0,this.Gh=G|0,this.Gl=v|0,this.Hh=D|0,this.Hl=k|0}process(Q,$){for(let O=0;O<16;O++,$+=4)_[O]=Q.getUint32($),A[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let y=_[O-15]|0,f=A[O-15]|0,L8=g(y,f,1)^g(y,f,8)^I8(y,f,7),M8=u(y,f,1)^u(y,f,8)^E8(y,f,7),b=_[O-2]|0,x=A[O-2]|0,X8=g(b,x,19)^Q8(b,x,61)^I8(b,x,6),k8=u(b,x,19)^$8(b,x,61)^E8(b,x,6),J8=q0(M8,k8,A[O-7],A[O-16]),V8=Z0(J8,L8,X8,_[O-7],_[O-16]);_[O]=V8|0,A[O]=J8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:N,Dh:U,Dl:j,Eh:z,El:R,Fh:G,Fl:v,Gh:D,Gl:k,Hh:P,Hl:i}=this;for(let O=0;O<80;O++){let y=g(z,R,14)^g(z,R,18)^Q8(z,R,41),f=u(z,R,14)^u(z,R,18)^$8(z,R,41),L8=z&G^~z&D,M8=R&v^~R&k,b=X0(i,f,M8,E0[O],A[O]),x=J0(b,P,y,L8,I0[O],_[O]),X8=b|0,k8=g(q,Z,28)^Q8(q,Z,34)^Q8(q,Z,39),J8=u(q,Z,28)^$8(q,Z,34)^$8(q,Z,39),V8=q&X^q&Y^X&Y,F0=Z&J^Z&N^J&N;P=D|0,i=k|0,D=G|0,k=v|0,G=z|0,v=R|0,{h:z,l:R}=E(U|0,j|0,x|0,X8|0),U=Y|0,j=N|0,Y=X|0,N=J|0,X=q|0,J=Z|0;let h8=Q0(X8,J8,F0);q=$0(h8,x,k8,V8),Z=h8|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:N}=E(this.Ch|0,this.Cl|0,Y|0,N|0),{h:U,l:j}=E(this.Dh|0,this.Dl|0,U|0,j|0),{h:z,l:R}=E(this.Eh|0,this.El|0,z|0,R|0),{h:G,l:v}=E(this.Fh|0,this.Fl|0,G|0,v|0),{h:D,l:k}=E(this.Gh|0,this.Gl|0,D|0,k|0),{h:P,l:i}=E(this.Hh|0,this.Hl|0,P|0,i|0),this.set(q,Z,X,J,Y,N,U,j,z,R,G,v,D,k,P,i)}roundClean(){V(_,A)}destroy(){V(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class b0 extends q8{Ah=w[0]|0;Al=w[1]|0;Bh=w[2]|0;Bl=w[3]|0;Ch=w[4]|0;Cl=w[5]|0;Dh=w[6]|0;Dl=w[7]|0;Eh=w[8]|0;El=w[9]|0;Fh=w[10]|0;Fl=w[11]|0;Gh=w[12]|0;Gl=w[13]|0;Hh=w[14]|0;Hl=w[15]|0;constructor(){super(64)}}class x0 extends q8{Ah=W[0]|0;Al=W[1]|0;Bh=W[2]|0;Bl=W[3]|0;Ch=W[4]|0;Cl=W[5]|0;Dh=W[6]|0;Dl=W[7]|0;Eh=W[8]|0;El=W[9]|0;Fh=W[10]|0;Fl=W[11]|0;Gh=W[12]|0;Gl=W[13]|0;Hh=W[14]|0;Hl=W[15]|0;constructor(){super(48)}}var L=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),M=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class B0 extends q8{Ah=L[0]|0;Al=L[1]|0;Bh=L[2]|0;Bl=L[3]|0;Ch=L[4]|0;Cl=L[5]|0;Dh=L[6]|0;Dl=L[7]|0;Eh=L[8]|0;El=L[9]|0;Fh=L[10]|0;Fl=L[11]|0;Gh=L[12]|0;Gl=L[13]|0;Hh=L[14]|0;Hl=L[15]|0;constructor(){super(28)}}class C0 extends q8{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 K8=o8(()=>new Y0,r8(1));class x8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(t(Q),H($,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),V(Z)}update(Q){return h(this),this.iHash.update(Q),this}digestInto(Q){h(this),H(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 x8(Q,$).update(q).digest();l.create=(Q,$)=>new x8(Q,$);function m0(Q,$,q){if(t(Q),q===void 0)q=new Uint8Array(Q.outputLen);return l(Q,q,$)}var B8=Uint8Array.of(0),z0=Uint8Array.of();function y0(Q,$,q,Z=32){t(Q),Y8(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=z0;else H(q,void 0,"info");let Y=new Uint8Array(J*X),N=l.create(Q,$),U=N._cloneInto(),j=new Uint8Array(N.outputLen);for(let z=0;z<J;z++)B8[0]=z+1,U.update(z===0?z0:j).update(q).update(B8).digestInto(j),Y.set(j,X*z),N._cloneInto(U);return N.destroy(),U.destroy(),V(j,B8),Y.slice(0,Z)}var U0=(Q,$,q,Z,X)=>y0(Q,m0(Q,$,q),Z,X);function c(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function d(Q){return K8(c(Q))}function n(Q,$){return l(K8,c(Q),c($))}function f0(Q,$,{salt:q,info:Z}={}){let X=q?c(q):new Uint8Array(32),J=c(Q),Y=Z?c(Z):new Uint8Array(0);return U0(K8,J,X,Y,$)}var K0="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function H0(Q){let $=0,q=0,Z="";for(let X=0;X<Q.length;X++){q=q<<8|Q[X],$+=8;while($>=5)Z+=K0[q>>>$-5&31],$-=5}if($>0)Z+=K0[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 R8(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 C8(Q){let $=d(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function p0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}function m8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var _0=1,A0="actioncodes",S0="actioncodes-revoke";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($)}function y8(Q){let $=JSON.stringify({id:"actioncodes-revoke",ver:1,pubkey:Q.pubkey,codeHash:Q.codeHash,windowStart:Q.windowStart});return new TextEncoder().encode($)}var G8="NFC",s=256,O8=6,F8=24,g0=8,u0="0123456789",d0=["solana"];var P8="actioncodes:";function v8(Q){let $=j0(Q);if($.int!=null)D8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);D8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=P8+q.join("&");return R0(Z),Z}function Z8(Q){if(!Q.startsWith(P8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(P8.length).split("&").filter(Boolean),Z=new Map;for(let G of q){let[v,D]=G.split("=",2);if(!v)continue;let k=D!=null?decodeURIComponent(D):"";Z.set(v,k)}let X=Z.get("ver"),J=Z.get("id"),Y=Z.get("int"),N=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 j;if(N!=null&&N!=="")try{if(j=JSON.parse(N),typeof j!=="object"||j===null||Array.isArray(j))throw Error("protocol meta p must be a JSON object")}catch{throw Error("protocol meta p must be valid JSON")}let z=j0({ver:U,id:J,int:Y,p:j});if(z.int!=null)D8(z.int);if(z.p!=null)D8(JSON.stringify(z.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(v8(z)),z}function h0(Q){try{return Z8(Q),{ok:!0}}catch($){return{ok:!1,reason:String($)}}}function j0(Q){let $=Q.id.normalize(G8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(G8).trim();if(Q.p!=null)q.p=Q.p;return q}function R0(Q){if(new TextEncoder().encode(Q).length>s)throw Error(`protocol meta exceeds ${s} bytes`)}function D8(Q){if(new TextEncoder().encode(Q).length>s)throw Error(`protocol meta params exceed ${s} bytes`)}var G0;((P)=>{P.EXPIRED_CODE="EXPIRED_CODE";P.INVALID_CODE="INVALID_CODE";P.INVALID_CODE_FORMAT="INVALID_CODE_FORMAT";P.INVALID_SIGNATURE="INVALID_SIGNATURE";P.MISSING_META="MISSING_META";P.INVALID_META_FORMAT="INVALID_META_FORMAT";P.META_MISMATCH="META_MISMATCH";P.META_TOO_LARGE="META_TOO_LARGE";P.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER="TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER";P.INVALID_TRANSACTION_FORMAT="INVALID_TRANSACTION_FORMAT";P.INVALID_PUBKEY_FORMAT="INVALID_PUBKEY_FORMAT";P.INVALID_INPUT="INVALID_INPUT";P.MISSING_REQUIRED_FIELD="MISSING_REQUIRED_FIELD";P.CRYPTO_ERROR="CRYPTO_ERROR";P.INVALID_DIGEST="INVALID_DIGEST";P.INVALID_ADAPTER="INVALID_ADAPTER"})(G0||={});class K extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new f8(Q,$,q)}static invalidCode(Q,$){return new K("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new g8(Q,$)}static invalidSignature(Q){return new S8(Q)}static missingMeta(){return new H8}static invalidMetaFormat(Q){return new K("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new p8(Q,$,q)}static metaTooLarge(Q,$){return new K("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new _8(Q,$)}static invalidTransactionFormat(Q){return new K("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new A8(Q,$)}static invalidInput(Q,$,q){return new K("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new K("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new K("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new K("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new u8(Q)}static create(Q,$,q){return new K(Q,$,q)}}class f8 extends K{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class H8 extends K{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class p8 extends K{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class _8 extends K{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 A8 extends K{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class S8 extends K{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class g8 extends K{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class u8 extends K{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}var d8=T8(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,N=q,U;if($){let D=d8.default.decode($);U=n(D,Z)}else if(N)U=n(N,Z);else U=d(Z);let j=Math.max(O8,Math.min(F8,this.config.codeLength)),z=8*Math.ceil(j/2),R=j8(U,z);return{actionCode:{code:R8(R,j),pubkey:J,timestamp:Y,expiresAt:Y+this.config.ttlMs,...$&&{signature:$},...N&&{secret:N}},canonicalMessage:Z}}validateCode(Q){let $=Date.now();if($>Q.expiresAt+(this.config.clockSkewMs??0))throw K.expiredCode(Q.code,Q.expiresAt,$);let q=m({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let N=d8.default.decode(Q.signature);Z=n(N,q)}else if(Q.secret)Z=n(Q.secret,q);else Z=d(q);let X=Math.max(O8,Math.min(F8,this.config.codeLength)),J=j8(Z,8*Math.ceil(X/2)),Y=R8(J,X);if(Y!==Q.code)throw K.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:m8(),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 W8=T8(require("tweetnacl")),w8=T8(require("bs58")),F=require("@solana/web3.js"),S=require("@solana/spl-memo");class r extends e{normalizePubkey(Q){if(typeof Q==="string")return new F.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=w8.default.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return W8.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=w8.default.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return W8.default.sign.detached.verify(Z,J,Y)}catch{return!1}}verifyRevokeWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalRevokeMessageParts)return!1;try{let $=y8(Q.canonicalRevokeMessageParts),q=this.normalizePubkey(Q.pubkey),Z=w8.default.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return W8.default.sign.detached.verify($,Z,X)}catch{return!1}}static createProtocolMetaIx(Q){let $=v8(Q);return S.createMemoInstruction($)}getProtocolMeta(Q){try{let $=this.deserializeTransaction(Q);for(let q of this.getMemoInstructions($)){let Z=q.data;try{let X=new TextDecoder().decode(Z);if(Z8(X))return X}catch{}}return null}catch{return null}}deserializeTransaction(Q){try{let $=F.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if($.message instanceof F.MessageV0)return $;else return F.Transaction.from(Buffer.from(Q,"base64"))}catch{try{return F.Transaction.from(Buffer.from(Q,"base64"))}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return Z8($)}getMemoInstructions(Q){if(Q instanceof F.Transaction)return Q.instructions.filter(($)=>$.programId.equals(S.MEMO_PROGRAM_ID));else{let q=Q.message;if(q instanceof F.MessageV0){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(S.MEMO_PROGRAM_ID)){let Y=X.accountKeyIndexes.map((N)=>({pubkey:q.staticAccountKeys[N],isSigner:!1,isWritable:!1}));Z.push(new F.TransactionInstruction({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw K.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw K.missingMeta();if(Z.ver!==2)throw K.metaMismatch("2",String(Z.ver),"ver");let X=C8(Q.code);if(Z.id!==X)throw K.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw K.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw K.missingMeta();let q=$.int;if(!q)throw K.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new F.PublicKey(q)}catch{throw K.invalidPubkeyFormat(q,"Invalid public key format")}let X=this.deserializeTransaction(Q),J=[];if(X instanceof F.Transaction){if(!X.signatures.some((N)=>{if(!N.signature)return!1;return J.push(N.publicKey.toString()),N.publicKey.equals(Z)}))throw K.transactionNotSignedByIntendedOwner(q,J);return}if(X instanceof F.VersionedTransaction){let Y=X.message;if(Y instanceof F.MessageV0){let N=Y.header.numRequiredSignatures;for(let U=0;U<N;U++){let j=Y.staticAccountKeys[U];if(j){if(J.push(j.toString()),j.equals(Z))return}}throw K.transactionNotSignedByIntendedOwner(q,J)}}throw K.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){if(new r().getProtocolMeta(Q))throw K.invalidTransactionFormat("Transaction already contains protocol meta. Cannot attach additional protocol meta.");let X=r.createProtocolMetaIx($);try{let J=F.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if(J.message instanceof F.MessageV0){let Y=J.message,N=[...Y.staticAccountKeys];if(!N.some((G)=>G.equals(S.MEMO_PROGRAM_ID)))N.push(S.MEMO_PROGRAM_ID);let j={programIdIndex:N.findIndex((G)=>G.equals(S.MEMO_PROGRAM_ID)),accountKeyIndexes:[],data:X.data},z=new F.MessageV0({header:Y.header,staticAccountKeys:N,recentBlockhash:Y.recentBlockhash,compiledInstructions:[...Y.compiledInstructions,j],addressTableLookups:Y.addressTableLookups}),R=new F.VersionedTransaction(z);return R.signatures=J.signatures,Buffer.from(R.serialize()).toString("base64")}else{let Y=F.Transaction.from(Buffer.from(Q,"base64"));return Y.add(X),Buffer.from(Y.serialize({requireAllSignatures:!1})).toString("base64")}}catch{try{let J=F.Transaction.from(Buffer.from(Q,"base64"));return J.add(X),Buffer.from(J.serialize({requireAllSignatures:!1})).toString("base64")}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}}class O0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new r,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 K.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 K.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 K.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}
1
+ var P0=Object.create;var{getPrototypeOf:v0,defineProperty:a,getOwnPropertyNames:c8,getOwnPropertyDescriptor:D0}=Object,n8=Object.prototype.hasOwnProperty;var T8=(Q,$,q)=>{q=Q!=null?P0(v0(Q)):{};let Z=$||!Q||!Q.__esModule?a(q,"default",{value:Q,enumerable:!0}):q;for(let X of c8(Q))if(!n8.call(Z,X))a(Z,X,{get:()=>Q[X],enumerable:!0});return Z},l8=new WeakMap,W0=(Q)=>{var $=l8.get(Q),q;if($)return $;if($=a({},"__esModule",{value:!0}),Q&&typeof Q==="object"||typeof Q==="function")c8(Q).map((Z)=>!n8.call($,Z)&&a($,Z,{get:()=>Q[Z],enumerable:!(q=D0(Q,Z))||q.enumerable}));return l8.set(Q,$),$};var w0=(Q,$)=>{for(var q in $)a(Q,q,{get:$[q],enumerable:!0,configurable:!0,set:(Z)=>$[q]=()=>Z})};var l0={};w0(l0,{validateProtocolMetaFormat:()=>h0,truncateBits:()=>j8,sha256:()=>d,serializeCanonicalRevoke:()=>y8,serializeCanonical:()=>m,parseProtocolMeta:()=>q8,hmacSha256:()=>n,hkdfSha256:()=>f0,generateRandomSecret:()=>_0,generateNonce:()=>m8,digestToDigits:()=>R8,codeHash:()=>C8,buildProtocolMeta:()=>D8,base32EncodeCrockford:()=>H0,WalletStrategy:()=>o,TransactionNotSignedByIntendedOwnerError:()=>p8,SolanaAdapter:()=>r,SUPPORTED_CHAINS:()=>d0,SCHEME:()=>P8,ProtocolErrorCode:()=>G0,ProtocolError:()=>K,PROTOCOL_NORMALIZATION:()=>G8,PROTOCOL_META_MAX_BYTES:()=>s,MissingMetaError:()=>H8,MetaMismatchError:()=>_8,InvalidSignatureError:()=>S8,InvalidPubkeyFormatError:()=>A8,InvalidCodeFormatError:()=>g8,InvalidAdapterError:()=>u8,ExpiredCodeError:()=>f8,DelegationStrategy:()=>I,CODE_MIN_LENGTH:()=>O8,CODE_MAX_LENGTH:()=>F8,CODE_DEFAULT_LENGTH:()=>g0,CODE_CHARSET_DIGITS:()=>u0,CANONICAL_REVOKE_MESSAGE_PREFIX:()=>S0,CANONICAL_MESSAGE_VERSION:()=>p0,CANONICAL_MESSAGE_PREFIX:()=>A0,BaseChainAdapter:()=>J8,ActionCodesProtocol:()=>O0});module.exports=W0(l0);class J8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function L0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function Y8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function H(Q,$,q=""){let Z=L0(Q),X=Q?.length,J=$!==void 0;if(!Z||J&&X!==$){let Y=q&&`"${q}" `,N=J?` of length ${$}`:"",U=Z?`length=${X}`:`type=${typeof Q}`;throw Error(Y+"expected Uint8Array"+N+", got "+U)}return Q}function e(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");Y8(Q.outputLen),Y8(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 s8(Q,$){H(Q,void 0,"digestInto() output");let q=$.outputLen;if(Q.length<q)throw Error('"digestInto() output" expected to be of length >='+q)}function V(...Q){for(let $=0;$<Q.length;$++)Q[$].fill(0)}function N8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function T(Q,$){return Q<<32-$|Q>>>$}function o8(Q,$={}){let q=(X,J)=>Q(J).update(X).digest(),Z=Q(void 0);return q.outputLen=Z.outputLen,q.blockLen=Z.blockLen,q.create=(X)=>Q(X),Object.assign(q,$),Object.freeze(q)}var r8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function i8(Q,$,q){return Q&$^~Q&q}function a8(Q,$,q){return Q&$^Q&q^$&q}class z8{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=N8(this.buffer)}update(Q){h(this),H(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 N=N8(Q);for(;Z<=X-J;J+=Z)this.process(N,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),s8(Q,this),this.finished=!0;let{buffer:$,view:q,blockLen:Z,isLE:X}=this,{pos:J}=this;if($[J++]=128,V(this.buffer.subarray(J)),this.padOffset>Z-J)this.process(q,0),J=0;for(let z=J;z<Z;z++)$[z]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=N8(Q),N=this.outputLen;if(N%4)throw Error("_sha2: outputLen must be aligned to 32bit");let U=N/4,j=this.get();if(U>j.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<U;z++)Y.setUint32(4*z,j[z],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]),W=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),w=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var U8=BigInt(4294967295),e8=BigInt(32);function M0(Q,$=!1){if($)return{h:Number(Q&U8),l:Number(Q>>e8&U8)};return{h:Number(Q>>e8&U8)|0,l:Number(Q&U8)|0}}function t8(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:N}=M0(Q[J],$);[Z[J],X[J]]=[Y,N]}return[Z,X]}var I8=(Q,$,q)=>Q>>>q,E8=(Q,$,q)=>Q<<32-q|$>>>q,g=(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 Q0=(Q,$,q)=>(Q>>>0)+($>>>0)+(q>>>0),$0=(Q,$,q,Z)=>$+q+Z+(Q/4294967296|0)|0,q0=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),Z0=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,X0=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),J0=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var V0=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]),_=new Uint32Array(64);class b8 extends z8{constructor(Q){super(64,Q,8,!1)}get(){let{A:Q,B:$,C:q,D:Z,E:X,F:J,G:Y,H:N}=this;return[Q,$,q,Z,X,J,Y,N]}set(Q,$,q,Z,X,J,Y,N){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=N|0}process(Q,$){for(let z=0;z<16;z++,$+=4)_[z]=Q.getUint32($,!1);for(let z=16;z<64;z++){let R=_[z-15],G=_[z-2],D=T(R,7)^T(R,18)^R>>>3,v=T(G,17)^T(G,19)^G>>>10;_[z]=v+_[z-7]+D+_[z-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:N,G:U,H:j}=this;for(let z=0;z<64;z++){let R=T(Y,6)^T(Y,11)^T(Y,25),G=j+R+i8(Y,N,U)+V0[z]+_[z]|0,v=(T(q,2)^T(q,13)^T(q,22))+a8(q,Z,X)|0;j=U,U=N,N=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,N=N+this.F|0,U=U+this.G|0,j=j+this.H|0,this.set(q,Z,X,J,Y,N,U,j)}roundClean(){V(_)}destroy(){this.set(0,0,0,0,0,0,0,0),V(this.buffer)}}class Y0 extends b8{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 T0 extends b8{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 N0=(()=>t8(["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))))(),I0=(()=>N0[0])(),E0=(()=>N0[1])(),p=new Uint32Array(80),A=new Uint32Array(80);class $8 extends z8{constructor(Q){super(128,Q,16,!1)}get(){let{Ah:Q,Al:$,Bh:q,Bl:Z,Ch:X,Cl:J,Dh:Y,Dl:N,Eh:U,El:j,Fh:z,Fl:R,Gh:G,Gl:D,Hh:v,Hl:k}=this;return[Q,$,q,Z,X,J,Y,N,U,j,z,R,G,D,v,k]}set(Q,$,q,Z,X,J,Y,N,U,j,z,R,G,D,v,k){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=N|0,this.Eh=U|0,this.El=j|0,this.Fh=z|0,this.Fl=R|0,this.Gh=G|0,this.Gl=D|0,this.Hh=v|0,this.Hl=k|0}process(Q,$){for(let O=0;O<16;O++,$+=4)p[O]=Q.getUint32($),A[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let y=p[O-15]|0,f=A[O-15]|0,L8=g(y,f,1)^g(y,f,8)^I8(y,f,7),M8=u(y,f,1)^u(y,f,8)^E8(y,f,7),b=p[O-2]|0,x=A[O-2]|0,Z8=g(b,x,19)^t(b,x,61)^I8(b,x,6),k8=u(b,x,19)^Q8(b,x,61)^E8(b,x,6),X8=q0(M8,k8,A[O-7],A[O-16]),V8=Z0(X8,L8,Z8,p[O-7],p[O-16]);p[O]=V8|0,A[O]=X8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:N,Dh:U,Dl:j,Eh:z,El:R,Fh:G,Fl:D,Gh:v,Gl:k,Hh:P,Hl:i}=this;for(let O=0;O<80;O++){let y=g(z,R,14)^g(z,R,18)^t(z,R,41),f=u(z,R,14)^u(z,R,18)^Q8(z,R,41),L8=z&G^~z&v,M8=R&D^~R&k,b=X0(i,f,M8,E0[O],A[O]),x=J0(b,P,y,L8,I0[O],p[O]),Z8=b|0,k8=g(q,Z,28)^t(q,Z,34)^t(q,Z,39),X8=u(q,Z,28)^Q8(q,Z,34)^Q8(q,Z,39),V8=q&X^q&Y^X&Y,F0=Z&J^Z&N^J&N;P=v|0,i=k|0,v=G|0,k=D|0,G=z|0,D=R|0,{h:z,l:R}=E(U|0,j|0,x|0,Z8|0),U=Y|0,j=N|0,Y=X|0,N=J|0,X=q|0,J=Z|0;let h8=Q0(Z8,X8,F0);q=$0(h8,x,k8,V8),Z=h8|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:N}=E(this.Ch|0,this.Cl|0,Y|0,N|0),{h:U,l:j}=E(this.Dh|0,this.Dl|0,U|0,j|0),{h:z,l:R}=E(this.Eh|0,this.El|0,z|0,R|0),{h:G,l:D}=E(this.Fh|0,this.Fl|0,G|0,D|0),{h:v,l:k}=E(this.Gh|0,this.Gl|0,v|0,k|0),{h:P,l:i}=E(this.Hh|0,this.Hl|0,P|0,i|0),this.set(q,Z,X,J,Y,N,U,j,z,R,G,D,v,k,P,i)}roundClean(){V(p,A)}destroy(){V(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class b0 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=W[0]|0;Al=W[1]|0;Bh=W[2]|0;Bl=W[3]|0;Ch=W[4]|0;Cl=W[5]|0;Dh=W[6]|0;Dl=W[7]|0;Eh=W[8]|0;El=W[9]|0;Fh=W[10]|0;Fl=W[11]|0;Gh=W[12]|0;Gl=W[13]|0;Hh=W[14]|0;Hl=W[15]|0;constructor(){super(48)}}var L=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),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 C0 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 K8=o8(()=>new Y0,r8(1));class x8{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(Q,$){if(e(Q),H($,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),V(Z)}update(Q){return h(this),this.iHash.update(Q),this}digestInto(Q){h(this),H(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 x8(Q,$).update(q).digest();l.create=(Q,$)=>new x8(Q,$);function m0(Q,$,q){if(e(Q),q===void 0)q=new Uint8Array(Q.outputLen);return l(Q,q,$)}var B8=Uint8Array.of(0),z0=Uint8Array.of();function y0(Q,$,q,Z=32){e(Q),Y8(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=z0;else H(q,void 0,"info");let Y=new Uint8Array(J*X),N=l.create(Q,$),U=N._cloneInto(),j=new Uint8Array(N.outputLen);for(let z=0;z<J;z++)B8[0]=z+1,U.update(z===0?z0:j).update(q).update(B8).digestInto(j),Y.set(j,X*z),N._cloneInto(U);return N.destroy(),U.destroy(),V(j,B8),Y.slice(0,Z)}var U0=(Q,$,q,Z,X)=>y0(Q,m0(Q,$,q),Z,X);function c(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function d(Q){return K8(c(Q))}function n(Q,$){return l(K8,c(Q),c($))}function f0(Q,$,{salt:q,info:Z}={}){let X=q?c(q):new Uint8Array(32),J=c(Q),Y=Z?c(Z):new Uint8Array(0);return U0(K8,J,X,Y,$)}var K0="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function H0(Q){let $=0,q=0,Z="";for(let X=0;X<Q.length;X++){q=q<<8|Q[X],$+=8;while($>=5)Z+=K0[q>>>$-5&31],$-=5}if($>0)Z+=K0[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 R8(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 C8(Q){let $=d(Q);return Array.from($).map((q)=>q.toString(16).padStart(2,"0")).join("")}function _0(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}function m8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var p0=1,A0="actioncodes",S0="actioncodes-revoke";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($)}function y8(Q){let $=JSON.stringify({id:"actioncodes-revoke",ver:1,pubkey:Q.pubkey,codeHash:Q.codeHash,windowStart:Q.windowStart});return new TextEncoder().encode($)}var G8="NFC",s=256,O8=6,F8=24,g0=8,u0="0123456789",d0=["solana"];var P8="actioncodes:";function D8(Q){let $=j0(Q);if($.int!=null)v8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);v8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=P8+q.join("&");return R0(Z),Z}function q8(Q){if(!Q.startsWith(P8))throw Error("protocol meta must start with actioncodes:");let q=Q.slice(P8.length).split("&").filter(Boolean),Z=new Map;for(let G of q){let[D,v]=G.split("=",2);if(!D)continue;let k=v!=null?decodeURIComponent(v):"";Z.set(D,k)}let X=Z.get("ver"),J=Z.get("id"),Y=Z.get("int"),N=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 j;if(N!=null&&N!=="")try{if(j=JSON.parse(N),typeof j!=="object"||j===null||Array.isArray(j))throw Error("protocol meta p must be a JSON object")}catch{throw Error("protocol meta p must be valid JSON")}let z=j0({ver:U,id:J,int:Y,p:j});if(z.int!=null)v8(z.int);if(z.p!=null)v8(JSON.stringify(z.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(D8(z)),z}function h0(Q){try{return q8(Q),{ok:!0}}catch($){return{ok:!1,reason:String($)}}}function j0(Q){let $=Q.id.normalize(G8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(G8).trim();if(Q.p!=null)q.p=Q.p;return q}function R0(Q){if(new TextEncoder().encode(Q).length>s)throw Error(`protocol meta exceeds ${s} bytes`)}function v8(Q){if(new TextEncoder().encode(Q).length>s)throw Error(`protocol meta params exceed ${s} bytes`)}var G0;((P)=>{P.EXPIRED_CODE="EXPIRED_CODE";P.INVALID_CODE="INVALID_CODE";P.INVALID_CODE_FORMAT="INVALID_CODE_FORMAT";P.INVALID_SIGNATURE="INVALID_SIGNATURE";P.MISSING_META="MISSING_META";P.INVALID_META_FORMAT="INVALID_META_FORMAT";P.META_MISMATCH="META_MISMATCH";P.META_TOO_LARGE="META_TOO_LARGE";P.TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER="TRANSACTION_NOT_SIGNED_BY_INTENDED_OWNER";P.INVALID_TRANSACTION_FORMAT="INVALID_TRANSACTION_FORMAT";P.INVALID_PUBKEY_FORMAT="INVALID_PUBKEY_FORMAT";P.INVALID_INPUT="INVALID_INPUT";P.MISSING_REQUIRED_FIELD="MISSING_REQUIRED_FIELD";P.CRYPTO_ERROR="CRYPTO_ERROR";P.INVALID_DIGEST="INVALID_DIGEST";P.INVALID_ADAPTER="INVALID_ADAPTER"})(G0||={});class K extends Error{code;details;constructor(Q,$,q){super($);this.code=Q;this.details=q;this.name="ProtocolError"}static expiredCode(Q,$,q){return new f8(Q,$,q)}static invalidCode(Q,$){return new K("INVALID_CODE",`Invalid code: expected '${Q}', got '${$}'`,{expected:Q,actual:$})}static invalidCodeFormat(Q,$){return new g8(Q,$)}static invalidSignature(Q){return new S8(Q)}static missingMeta(){return new H8}static invalidMetaFormat(Q){return new K("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new _8(Q,$,q)}static metaTooLarge(Q,$){return new K("META_TOO_LARGE",`Protocol meta too large: ${$} bytes (max: ${Q})`,{maxBytes:Q,actualBytes:$})}static transactionNotSignedByIntendedOwner(Q,$){return new p8(Q,$)}static invalidTransactionFormat(Q){return new K("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new A8(Q,$)}static invalidInput(Q,$,q){return new K("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new K("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new K("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new K("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new u8(Q)}static create(Q,$,q){return new K(Q,$,q)}}class f8 extends K{constructor(Q,$,q){super("EXPIRED_CODE",`Action code '${Q}' expired at ${$}, current time: ${q}`,{code:Q,expiresAt:$,currentTime:q});this.name="ExpiredCodeError"}}class H8 extends K{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class _8 extends K{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class p8 extends K{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 A8 extends K{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class S8 extends K{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class g8 extends K{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class u8 extends K{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}var d8=T8(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,N=q,U;if($){let v=d8.default.decode($);U=n(v,Z)}else if(N)U=n(N,Z);else U=d(Z);let j=Math.max(O8,Math.min(F8,this.config.codeLength)),z=8*Math.ceil(j/2),R=j8(U,z);return{actionCode:{code:R8(R,j),pubkey:J,timestamp:Y,expiresAt:Y+this.config.ttlMs,...$&&{signature:$},...N&&{secret:N}},canonicalMessage:Z}}validateCode(Q){let $=Date.now();if($>Q.expiresAt+(this.config.clockSkewMs??0))throw K.expiredCode(Q.code,Q.expiresAt,$);let q=m({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let N=d8.default.decode(Q.signature);Z=n(N,q)}else if(Q.secret)Z=n(Q.secret,q);else Z=d(q);let X=Math.max(O8,Math.min(F8,this.config.codeLength)),J=j8(Z,8*Math.ceil(X/2)),Y=R8(J,X);if(Y!==Q.code)throw K.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:m8(),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 W8=T8(require("tweetnacl")),w8=T8(require("bs58")),F=require("@solana/web3.js"),S=require("@solana/spl-memo");class r extends J8{normalizePubkey(Q){if(typeof Q==="string")return new F.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=w8.default.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return W8.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=w8.default.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return W8.default.sign.detached.verify(Z,J,Y)}catch{return!1}}verifyRevokeWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalRevokeMessageParts)return!1;try{let $=y8(Q.canonicalRevokeMessageParts),q=this.normalizePubkey(Q.pubkey),Z=w8.default.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return W8.default.sign.detached.verify($,Z,X)}catch{return!1}}static createProtocolMetaIx(Q){let $=D8(Q);return S.createMemoInstruction($)}getProtocolMeta(Q){try{let $=this.deserializeTransaction(Q);for(let q of this.getMemoInstructions($)){let Z=q.data;try{let X=new TextDecoder().decode(Z);if(q8(X))return X}catch{}}return null}catch{return null}}deserializeTransaction(Q){try{let $=F.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if($.message instanceof F.MessageV0)return $;else return F.Transaction.from(Buffer.from(Q,"base64"))}catch{try{return F.Transaction.from(Buffer.from(Q,"base64"))}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return q8($)}getMemoInstructions(Q){if(Q instanceof F.Transaction)return Q.instructions.filter(($)=>$.programId.equals(S.MEMO_PROGRAM_ID));else{let q=Q.message;if(q instanceof F.MessageV0){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(S.MEMO_PROGRAM_ID)){let Y=X.accountKeyIndexes.map((N)=>({pubkey:q.staticAccountKeys[N],isSigner:!1,isWritable:!1}));Z.push(new F.TransactionInstruction({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw K.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw K.missingMeta();if(Z.ver!==2)throw K.metaMismatch("2",String(Z.ver),"ver");let X=C8(Q.code);if(Z.id!==X)throw K.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw K.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw K.missingMeta();let q=$.int;if(!q)throw K.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new F.PublicKey(q)}catch{throw K.invalidPubkeyFormat(q,"Invalid public key format")}let X=this.deserializeTransaction(Q),J=[];if(X instanceof F.Transaction){if(!X.signatures.some((N)=>{if(!N.signature)return!1;return J.push(N.publicKey.toString()),N.publicKey.equals(Z)}))throw K.transactionNotSignedByIntendedOwner(q,J);return}if(X instanceof F.VersionedTransaction){let Y=X.message;if(Y instanceof F.MessageV0){let N=Y.header.numRequiredSignatures;for(let U=0;U<N;U++){let j=Y.staticAccountKeys[U];if(j){if(J.push(j.toString()),j.equals(Z))return}}throw K.transactionNotSignedByIntendedOwner(q,J)}}throw K.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){if(new r().getProtocolMeta(Q))throw K.invalidTransactionFormat("Transaction already contains protocol meta. Cannot attach additional protocol meta.");let X=r.createProtocolMetaIx($);try{let J=F.VersionedTransaction.deserialize(Buffer.from(Q,"base64"));if(J.message instanceof F.MessageV0){let Y=J.message,N=[...Y.staticAccountKeys];if(!N.some((G)=>G.equals(S.MEMO_PROGRAM_ID)))N.push(S.MEMO_PROGRAM_ID);let j={programIdIndex:N.findIndex((G)=>G.equals(S.MEMO_PROGRAM_ID)),accountKeyIndexes:[],data:X.data},z=new F.MessageV0({header:Y.header,staticAccountKeys:N,recentBlockhash:Y.recentBlockhash,compiledInstructions:[...Y.compiledInstructions,j],addressTableLookups:Y.addressTableLookups}),R=new F.VersionedTransaction(z);return R.signatures=J.signatures,Buffer.from(R.serialize()).toString("base64")}else{let Y=F.Transaction.from(Buffer.from(Q,"base64"));return Y.add(X),Buffer.from(Y.serialize({requireAllSignatures:!1})).toString("base64")}}catch{try{let J=F.Transaction.from(Buffer.from(Q,"base64"));return J.add(X),Buffer.from(J.serialize({requireAllSignatures:!1})).toString("base64")}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}}class O0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new r,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 K.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 K.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 K.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=37F2D1E8903258BF64756E2164756E21
3
+ //# debugId=9EE25BE413CFD6F564756E2164756E21
@@ -19,7 +19,7 @@
19
19
  "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 {\n BaseChainAdapter,\n type ChainWalletStrategyContext,\n type ChainWalletStrategyRevokeContext,\n type ChainDelegationStrategyContext,\n} 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 {\n serializeCanonical,\n serializeCanonicalRevoke,\n} 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<\n SolanaContext,\n SolanaContext,\n SolanaContext\n> {\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(\n context: ChainWalletStrategyContext<SolanaContext>\n ): 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(\n context: ChainDelegationStrategyContext<SolanaContext>\n ): 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 =\n 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 /** Verify the signature over canonical revoke message (protocol-level) */\n verifyRevokeWithWallet(\n context: ChainWalletStrategyRevokeContext<SolanaContext>\n ): boolean {\n // Early validation checks - these are fast and don't leak timing info\n if (context.chain !== \"solana\") return false;\n if (\n !context.pubkey ||\n !context.signature ||\n !context.canonicalRevokeMessageParts\n )\n return false;\n\n // Perform all operations in a single try-catch to ensure consistent timing\n try {\n const message = serializeCanonicalRevoke(\n context.canonicalRevokeMessageParts\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 base64-encoded transaction, or null */\n getProtocolMeta(txString: string): string | null {\n try {\n const tx = this.deserializeTransaction(txString);\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 } catch {\n return null;\n }\n }\n\n /** Deserialize a base64-encoded transaction string to SolanaTransaction */\n private deserializeTransaction(txString: string): SolanaTransaction {\n try {\n // Try versioned first (most common now)\n const versionedTx = VersionedTransaction.deserialize(\n Buffer.from(txString, \"base64\")\n );\n\n // Check if this is actually a versioned transaction by checking if it has a MessageV0\n if (versionedTx.message instanceof MessageV0) {\n return versionedTx;\n } else {\n // This is likely a legacy transaction that was incorrectly deserialized as versioned\n // Fall back to legacy deserialization\n return Transaction.from(Buffer.from(txString, \"base64\"));\n }\n } catch {\n try {\n // Fallback to legacy\n return Transaction.from(Buffer.from(txString, \"base64\"));\n } catch {\n throw ProtocolError.invalidTransactionFormat(\n \"Invalid base64 transaction format\"\n );\n }\n }\n }\n\n /** Get parsed ProtocolMeta object from base64-encoded transaction, or null if none or invalid */\n parseMeta(txString: string): ProtocolMetaFields | null {\n const s = this.getProtocolMeta(txString);\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 base64-encoded transaction's memo meta aligns with the bound `actionCode`.\n * Throws ProtocolError if validation fails.\n */\n verifyTransactionMatchesCode(actionCode: ActionCode, txString: string): 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(txString);\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 base64-encoded 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(txString: string): void {\n const meta = this.parseMeta(txString);\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 tx = this.deserializeTransaction(txString);\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 base64-encoded transaction and return the modified transaction as base64.\n * Throws ProtocolError if the transaction already contains protocol meta.\n */\n static attachProtocolMeta(\n txString: string,\n meta: ProtocolMetaFields\n ): string {\n // Check if transaction already has protocol meta\n const adapter = new SolanaAdapter();\n const existingMeta = adapter.getProtocolMeta(txString);\n if (existingMeta) {\n throw ProtocolError.invalidTransactionFormat(\n \"Transaction already contains protocol meta. Cannot attach additional protocol meta.\"\n );\n }\n\n const metaIx = SolanaAdapter.createProtocolMetaIx(meta);\n\n try {\n // Try to deserialize as versioned first\n const versionedTx = VersionedTransaction.deserialize(\n Buffer.from(txString, \"base64\")\n );\n\n // Check if this is actually a versioned transaction by checking if it has a MessageV0\n if (versionedTx.message instanceof MessageV0) {\n const msg = versionedTx.message;\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 = versionedTx.signatures;\n\n return Buffer.from(newTx.serialize()).toString(\"base64\");\n } else {\n // This is likely a legacy transaction that was incorrectly deserialized as versioned\n // Fall back to legacy deserialization\n const legacyTx = Transaction.from(Buffer.from(txString, \"base64\"));\n\n // Legacy tx: just push memo instruction\n legacyTx.add(metaIx);\n\n return Buffer.from(\n legacyTx.serialize({ requireAllSignatures: false })\n ).toString(\"base64\");\n }\n } catch {\n try {\n // Fallback to legacy transaction\n const legacyTx = Transaction.from(Buffer.from(txString, \"base64\"));\n\n // Legacy tx: just push memo instruction\n legacyTx.add(metaIx);\n\n return Buffer.from(\n legacyTx.serialize({ requireAllSignatures: false })\n ).toString(\"base64\");\n } catch {\n throw ProtocolError.invalidTransactionFormat(\n \"Invalid base64 transaction format\"\n );\n }\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": "37F2D1E8903258BF64756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "9EE25BE413CFD6F564756E2164756E21",
24
24
  "names": []
25
25
  }
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from "./types";
2
- export { BaseChainAdapter } from "./adapters/BaseChainAdapter";
3
- export type { ChainWalletStrategyContext, ChainDelegationStrategyContext } from "./adapters/BaseChainAdapter";
2
+ export * from "./adapters/BaseChainAdapter";
4
3
  export * from "./utils/crypto";
5
4
  export * from "./utils/canonical";
6
5
  export * from "./utils/protocolMeta";
@@ -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,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,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 X8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function R0(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 y(Q,$,q=""){let Z=R0(Q),X=Q?.length,J=$!==void 0;if(!Z||J&&X!==$){let Y=q&&`"${q}" `,N=J?` of length ${$}`:"",U=Z?`length=${X}`:`type=${typeof Q}`;throw Error(Y+"expected Uint8Array"+N+", got "+U)}return Q}function n(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");J8(Q.outputLen),J8(Q.blockLen)}function g(Q,$=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if($&&Q.finished)throw Error("Hash#digest() has already been called")}function m8(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 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 y8(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 f8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function H8(Q,$,q){return Q&$^~Q&q}function p8(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){g(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 N=Y8(Q);for(;Z<=X-J;J+=Z)this.process(N,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){g(this),m8(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 z=J;z<Z;z++)$[z]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=Y8(Q),N=this.outputLen;if(N%4)throw Error("_sha2: outputLen must be aligned to 32bit");let U=N/4,j=this.get();if(U>j.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<U;z++)Y.setUint32(4*z,j[z],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]),W=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var z8=BigInt(4294967295),_8=BigInt(32);function G0(Q,$=!1){if($)return{h:Number(Q&z8),l:Number(Q>>_8&z8)};return{h:Number(Q>>_8&z8)|0,l:Number(Q&z8)|0}}function A8(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:N}=G0(Q[J],$);[Z[J],X[J]]=[Y,N]}return[Z,X]}var D8=(Q,$,q)=>Q>>>q,v8=(Q,$,q)=>Q<<32-q|$>>>q,A=(Q,$,q)=>Q>>>q|$<<32-q,S=(Q,$,q)=>Q<<32-q|$>>>q,s=(Q,$,q)=>Q<<64-q|$>>>q-32,o=(Q,$,q)=>Q>>>q-32|$<<64-q;function T(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,u8=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),d8=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,h8=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),l8=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var F0=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 W8 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:N}=this;return[Q,$,q,Z,X,J,Y,N]}set(Q,$,q,Z,X,J,Y,N){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=N|0}process(Q,$){for(let z=0;z<16;z++,$+=4)f[z]=Q.getUint32($,!1);for(let z=16;z<64;z++){let R=f[z-15],G=f[z-2],D=V(R,7)^V(R,18)^R>>>3,P=V(G,17)^V(G,19)^G>>>10;f[z]=P+f[z-7]+D+f[z-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:N,G:U,H:j}=this;for(let z=0;z<64;z++){let R=V(Y,6)^V(Y,11)^V(Y,25),G=j+R+H8(Y,N,U)+F0[z]+f[z]|0,P=(V(q,2)^V(q,13)^V(q,22))+p8(q,Z,X)|0;j=U,U=N,N=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,N=N+this.F|0,U=U+this.G|0,j=j+this.H|0,this.set(q,Z,X,J,Y,N,U,j)}roundClean(){k(f)}destroy(){this.set(0,0,0,0,0,0,0,0),k(this.buffer)}}class c8 extends W8{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 P0 extends W8{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 n8=(()=>A8(["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))))(),D0=(()=>n8[0])(),v0=(()=>n8[1])(),H=new Uint32Array(80),p=new Uint32Array(80);class r 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:N,Eh:U,El:j,Fh:z,Fl:R,Gh:G,Gl:D,Hh:P,Hl:M}=this;return[Q,$,q,Z,X,J,Y,N,U,j,z,R,G,D,P,M]}set(Q,$,q,Z,X,J,Y,N,U,j,z,R,G,D,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=N|0,this.Eh=U|0,this.El=j|0,this.Fh=z|0,this.Fl=R|0,this.Gh=G|0,this.Gl=D|0,this.Hh=P|0,this.Hl=M|0}process(Q,$){for(let O=0;O<16;O++,$+=4)H[O]=Q.getUint32($),p[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let C=H[O-15]|0,m=p[O-15]|0,G8=A(C,m,1)^A(C,m,8)^D8(C,m,7),O8=S(C,m,1)^S(C,m,8)^v8(C,m,7),E=H[O-2]|0,b=p[O-2]|0,q8=A(E,b,19)^s(E,b,61)^D8(E,b,6),F8=S(E,b,19)^o(E,b,61)^v8(E,b,6),Z8=u8(O8,F8,p[O-7],p[O-16]),P8=d8(Z8,G8,q8,H[O-7],H[O-16]);H[O]=P8|0,p[O]=Z8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:N,Dh:U,Dl:j,Eh:z,El:R,Fh:G,Fl:D,Gh:P,Gl:M,Hh:F,Hl:c}=this;for(let O=0;O<80;O++){let C=A(z,R,14)^A(z,R,18)^s(z,R,41),m=S(z,R,14)^S(z,R,18)^o(z,R,41),G8=z&G^~z&P,O8=R&D^~R&M,E=h8(c,m,O8,v0[O],p[O]),b=l8(E,F,C,G8,D0[O],H[O]),q8=E|0,F8=A(q,Z,28)^s(q,Z,34)^s(q,Z,39),Z8=S(q,Z,28)^o(q,Z,34)^o(q,Z,39),P8=q&X^q&Y^X&Y,j0=Z&J^Z&N^J&N;F=P|0,c=M|0,P=G|0,M=D|0,G=z|0,D=R|0,{h:z,l:R}=T(U|0,j|0,b|0,q8|0),U=Y|0,j=N|0,Y=X|0,N=J|0,X=q|0,J=Z|0;let C8=S8(q8,Z8,j0);q=g8(C8,b,F8,P8),Z=C8|0}({h:q,l:Z}=T(this.Ah|0,this.Al|0,q|0,Z|0)),{h:X,l:J}=T(this.Bh|0,this.Bl|0,X|0,J|0),{h:Y,l:N}=T(this.Ch|0,this.Cl|0,Y|0,N|0),{h:U,l:j}=T(this.Dh|0,this.Dl|0,U|0,j|0),{h:z,l:R}=T(this.Eh|0,this.El|0,z|0,R|0),{h:G,l:D}=T(this.Fh|0,this.Fl|0,G|0,D|0),{h:P,l:M}=T(this.Gh|0,this.Gl|0,P|0,M|0),{h:F,l:c}=T(this.Hh|0,this.Hl|0,F|0,c|0),this.set(q,Z,X,J,Y,N,U,j,z,R,G,D,P,M,F,c)}roundClean(){k(H,p)}destroy(){k(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class W0 extends r{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 r{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 L0 extends r{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 M0 extends r{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=y8(()=>new c8,f8(1));class w8{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),k(Z)}update(Q){return g(this),this.iHash.update(Q),this}digestInto(Q){g(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 w8(Q,$).update(q).digest();u.create=(Q,$)=>new w8(Q,$);function k0(Q,$,q){if(n(Q),q===void 0)q=new Uint8Array(Q.outputLen);return u(Q,q,$)}var L8=Uint8Array.of(0),s8=Uint8Array.of();function V0(Q,$,q,Z=32){n(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=s8;else y(q,void 0,"info");let Y=new Uint8Array(J*X),N=u.create(Q,$),U=N._cloneInto(),j=new Uint8Array(N.outputLen);for(let z=0;z<J;z++)L8[0]=z+1,U.update(z===0?s8:j).update(q).update(L8).digestInto(j),Y.set(j,X*z),N._cloneInto(U);return N.destroy(),U.destroy(),k(j,L8),Y.slice(0,Z)}var o8=(Q,$,q,Z,X)=>V0(Q,k0(Q,$,q),Z,X);function d(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function h(Q){return U8(d(Q))}function i(Q,$){return u(U8,d(Q),d($))}function l0(Q,$,{salt:q,info:Z}={}){let X=q?d(q):new Uint8Array(32),J=d(Q),Y=Z?d(Z):new Uint8Array(0);return o8(U8,J,X,Y,$)}var r8="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function c0(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 M8(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 $=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 a8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var o0=1,r0="actioncodes",i0="actioncodes-revoke";function _(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}function e8(Q){let $=JSON.stringify({id:"actioncodes-revoke",ver:1,pubkey:Q.pubkey,codeHash:Q.codeHash,windowStart:Q.windowStart});return new TextEncoder().encode($)}var V8="NFC",a=256,T8=6,I8=24,e0=8,t0="0123456789",QQ=["solana"];var E8="actioncodes:";function b8(Q){let $=t8(Q);if($.int!=null)K8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);K8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=E8+q.join("&");return Q0(Z),Z}function j8(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[D,P]=G.split("=",2);if(!D)continue;let M=P!=null?decodeURIComponent(P):"";Z.set(D,M)}let X=Z.get("ver"),J=Z.get("id"),Y=Z.get("int"),N=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 j;if(N!=null&&N!=="")try{if(j=JSON.parse(N),typeof j!=="object"||j===null||Array.isArray(j))throw Error("protocol meta p must be a JSON object")}catch{throw Error("protocol meta p must be valid JSON")}let z=t8({ver:U,id:J,int:Y,p:j});if(z.int!=null)K8(z.int);if(z.p!=null)K8(JSON.stringify(z.p));if([...Z.keys()].filter((G)=>G!=="ver"&&G!=="id"&&G!=="int"&&G!=="p").length>0)throw Error("protocol meta contains unsupported keys");return Q0(b8(z)),z}function ZQ(Q){try{return j8(Q),{ok:!0}}catch($){return{ok:!1,reason:String($)}}}function t8(Q){let $=Q.id.normalize(V8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(V8).trim();if(Q.p!=null)q.p=Q.p;return q}function Q0(Q){if(new TextEncoder().encode(Q).length>a)throw Error(`protocol meta exceeds ${a} bytes`)}function K8(Q){if(new TextEncoder().encode(Q).length>a)throw Error(`protocol meta params exceed ${a} bytes`)}var T0;((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"})(T0||={});class K 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 K("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 K("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new Z0(Q,$,q)}static metaTooLarge(Q,$){return new K("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 K("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new J0(Q,$)}static invalidInput(Q,$,q){return new K("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new K("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new K("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new K("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new z0(Q)}static create(Q,$,q){return new K(Q,$,q)}}class $0 extends K{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 K{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class Z0 extends K{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class X0 extends K{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 K{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class Y0 extends K{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class N0 extends K{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class z0 extends K{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}import U0 from"bs58";class e{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,N=q,U;if($){let P=U0.decode($);U=i(P,Z)}else if(N)U=i(N,Z);else U=h(Z);let j=Math.max(T8,Math.min(I8,this.config.codeLength)),z=8*Math.ceil(j/2),R=M8(U,z);return{actionCode:{code:k8(R,j),pubkey:J,timestamp:Y,expiresAt:Y+this.config.ttlMs,...$&&{signature:$},...N&&{secret:N}},canonicalMessage:Z}}validateCode(Q){let $=Date.now();if($>Q.expiresAt+(this.config.clockSkewMs??0))throw K.expiredCode(Q.code,Q.expiresAt,$);let q=_({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let N=U0.decode(Q.signature);Z=i(N,q)}else if(Q.secret)Z=i(Q.secret,q);else Z=h(q);let X=Math.max(T8,Math.min(I8,this.config.codeLength)),J=M8(Z,8*Math.ceil(X/2)),Y=k8(J,X);if(Y!==Q.code)throw K.invalidCode(Y,Q.code)}}class I{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new e(Q)}static createDelegationCertificateTemplate(Q,$=3600000,q="solana"){let Z=Date.now();return{version:"1.0",delegator:Q,issuedAt:Z,expiresAt:Z+$,nonce:a8(),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=_({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 x8 from"tweetnacl";import B8 from"bs58";import{PublicKey as K0,Transaction as l,VersionedTransaction as R8,TransactionInstruction as I0,MessageV0 as t}from"@solana/web3.js";import{createMemoInstruction as E0,MEMO_PROGRAM_ID as Q8}from"@solana/spl-memo";class $8 extends X8{normalizePubkey(Q){if(typeof Q==="string")return new K0(Q);return Q}verifyWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalMessageParts)return!1;try{let $=_(Q.canonicalMessageParts),q=this.normalizePubkey(Q.pubkey),Z=B8.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return x8.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=B8.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return x8.sign.detached.verify(Z,J,Y)}catch{return!1}}verifyRevokeWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalRevokeMessageParts)return!1;try{let $=e8(Q.canonicalRevokeMessageParts),q=this.normalizePubkey(Q.pubkey),Z=B8.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return x8.sign.detached.verify($,Z,X)}catch{return!1}}static createProtocolMetaIx(Q){let $=b8(Q);return E0($)}getProtocolMeta(Q){try{let $=this.deserializeTransaction(Q);for(let q of this.getMemoInstructions($)){let Z=q.data;try{let X=new TextDecoder().decode(Z);if(j8(X))return X}catch{}}return null}catch{return null}}deserializeTransaction(Q){try{let $=R8.deserialize(Buffer.from(Q,"base64"));if($.message instanceof t)return $;else return l.from(Buffer.from(Q,"base64"))}catch{try{return l.from(Buffer.from(Q,"base64"))}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return j8($)}getMemoInstructions(Q){if(Q instanceof l)return Q.instructions.filter(($)=>$.programId.equals(Q8));else{let q=Q.message;if(q instanceof t){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(Q8)){let Y=X.accountKeyIndexes.map((N)=>({pubkey:q.staticAccountKeys[N],isSigner:!1,isWritable:!1}));Z.push(new I0({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw K.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw K.missingMeta();if(Z.ver!==2)throw K.metaMismatch("2",String(Z.ver),"ver");let X=i8(Q.code);if(Z.id!==X)throw K.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw K.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw K.missingMeta();let q=$.int;if(!q)throw K.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new K0(q)}catch{throw K.invalidPubkeyFormat(q,"Invalid public key format")}let X=this.deserializeTransaction(Q),J=[];if(X instanceof l){if(!X.signatures.some((N)=>{if(!N.signature)return!1;return J.push(N.publicKey.toString()),N.publicKey.equals(Z)}))throw K.transactionNotSignedByIntendedOwner(q,J);return}if(X instanceof R8){let Y=X.message;if(Y instanceof t){let N=Y.header.numRequiredSignatures;for(let U=0;U<N;U++){let j=Y.staticAccountKeys[U];if(j){if(J.push(j.toString()),j.equals(Z))return}}throw K.transactionNotSignedByIntendedOwner(q,J)}}throw K.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){if(new $8().getProtocolMeta(Q))throw K.invalidTransactionFormat("Transaction already contains protocol meta. Cannot attach additional protocol meta.");let X=$8.createProtocolMetaIx($);try{let J=R8.deserialize(Buffer.from(Q,"base64"));if(J.message instanceof t){let Y=J.message,N=[...Y.staticAccountKeys];if(!N.some((G)=>G.equals(Q8)))N.push(Q8);let j={programIdIndex:N.findIndex((G)=>G.equals(Q8)),accountKeyIndexes:[],data:X.data},z=new t({header:Y.header,staticAccountKeys:N,recentBlockhash:Y.recentBlockhash,compiledInstructions:[...Y.compiledInstructions,j],addressTableLookups:Y.addressTableLookups}),R=new R8(z);return R.signatures=J.signatures,Buffer.from(R.serialize()).toString("base64")}else{let Y=l.from(Buffer.from(Q,"base64"));return Y.add(X),Buffer.from(Y.serialize({requireAllSignatures:!1})).toString("base64")}}catch{try{let J=l.from(Buffer.from(Q,"base64"));return J.add(X),Buffer.from(J.serialize({requireAllSignatures:!1})).toString("base64")}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}}class b0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new $8,this._walletStrategy=new e(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 _({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 K.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 K.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 K.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}export{ZQ as validateProtocolMetaFormat,M8 as truncateBits,h as sha256,e8 as serializeCanonicalRevoke,_ as serializeCanonical,j8 as parseProtocolMeta,i as hmacSha256,l0 as hkdfSha256,n0 as generateRandomSecret,a8 as generateNonce,k8 as digestToDigits,i8 as codeHash,b8 as buildProtocolMeta,c0 as base32EncodeCrockford,e as WalletStrategy,X0 as TransactionNotSignedByIntendedOwnerError,$8 as SolanaAdapter,QQ as SUPPORTED_CHAINS,E8 as SCHEME,T0 as ProtocolErrorCode,K as ProtocolError,V8 as PROTOCOL_NORMALIZATION,a as PROTOCOL_META_MAX_BYTES,q0 as MissingMetaError,Z0 as MetaMismatchError,Y0 as InvalidSignatureError,J0 as InvalidPubkeyFormatError,N0 as InvalidCodeFormatError,z0 as InvalidAdapterError,$0 as ExpiredCodeError,I as DelegationStrategy,T8 as CODE_MIN_LENGTH,I8 as CODE_MAX_LENGTH,e0 as CODE_DEFAULT_LENGTH,t0 as CODE_CHARSET_DIGITS,i0 as CANONICAL_REVOKE_MESSAGE_PREFIX,o0 as CANONICAL_MESSAGE_VERSION,r0 as CANONICAL_MESSAGE_PREFIX,X8 as BaseChainAdapter,b0 as ActionCodesProtocol};
1
+ class P8{}/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function R0(Q){return Q instanceof Uint8Array||ArrayBuffer.isView(Q)&&Q.constructor.name==="Uint8Array"}function X8(Q,$=""){if(!Number.isSafeInteger(Q)||Q<0){let q=$&&`"${$}" `;throw Error(`${q}expected integer >= 0, got ${Q}`)}}function y(Q,$,q=""){let Z=R0(Q),X=Q?.length,J=$!==void 0;if(!Z||J&&X!==$){let Y=q&&`"${q}" `,N=J?` of length ${$}`:"",U=Z?`length=${X}`:`type=${typeof Q}`;throw Error(Y+"expected Uint8Array"+N+", got "+U)}return Q}function n(Q){if(typeof Q!=="function"||typeof Q.create!=="function")throw Error("Hash must wrapped by utils.createHasher");X8(Q.outputLen),X8(Q.blockLen)}function g(Q,$=!0){if(Q.destroyed)throw Error("Hash instance has been destroyed");if($&&Q.finished)throw Error("Hash#digest() has already been called")}function m8(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 k(...Q){for(let $=0;$<Q.length;$++)Q[$].fill(0)}function J8(Q){return new DataView(Q.buffer,Q.byteOffset,Q.byteLength)}function V(Q,$){return Q<<32-$|Q>>>$}function y8(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 f8=(Q)=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,Q])});function H8(Q,$,q){return Q&$^~Q&q}function _8(Q,$,q){return Q&$^Q&q^$&q}class Y8{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=J8(this.buffer)}update(Q){g(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 N=J8(Q);for(;Z<=X-J;J+=Z)this.process(N,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){g(this),m8(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 z=J;z<Z;z++)$[z]=0;q.setBigUint64(Z-8,BigInt(this.length*8),X),this.process(q,0);let Y=J8(Q),N=this.outputLen;if(N%4)throw Error("_sha2: outputLen must be aligned to 32bit");let U=N/4,j=this.get();if(U>j.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<U;z++)Y.setUint32(4*z,j[z],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]),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 N8=BigInt(4294967295),p8=BigInt(32);function G0(Q,$=!1){if($)return{h:Number(Q&N8),l:Number(Q>>p8&N8)};return{h:Number(Q>>p8&N8)|0,l:Number(Q&N8)|0}}function A8(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:N}=G0(Q[J],$);[Z[J],X[J]]=[Y,N]}return[Z,X]}var v8=(Q,$,q)=>Q>>>q,D8=(Q,$,q)=>Q<<32-q|$>>>q,A=(Q,$,q)=>Q>>>q|$<<32-q,S=(Q,$,q)=>Q<<32-q|$>>>q,s=(Q,$,q)=>Q<<64-q|$>>>q-32,o=(Q,$,q)=>Q>>>q-32|$<<64-q;function T(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,u8=(Q,$,q,Z)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0),d8=(Q,$,q,Z,X)=>$+q+Z+X+(Q/4294967296|0)|0,h8=(Q,$,q,Z,X)=>(Q>>>0)+($>>>0)+(q>>>0)+(Z>>>0)+(X>>>0),l8=(Q,$,q,Z,X,J)=>$+q+Z+X+J+(Q/4294967296|0)|0;var F0=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 W8 extends Y8{constructor(Q){super(64,Q,8,!1)}get(){let{A:Q,B:$,C:q,D:Z,E:X,F:J,G:Y,H:N}=this;return[Q,$,q,Z,X,J,Y,N]}set(Q,$,q,Z,X,J,Y,N){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=N|0}process(Q,$){for(let z=0;z<16;z++,$+=4)f[z]=Q.getUint32($,!1);for(let z=16;z<64;z++){let R=f[z-15],G=f[z-2],v=V(R,7)^V(R,18)^R>>>3,P=V(G,17)^V(G,19)^G>>>10;f[z]=P+f[z-7]+v+f[z-16]|0}let{A:q,B:Z,C:X,D:J,E:Y,F:N,G:U,H:j}=this;for(let z=0;z<64;z++){let R=V(Y,6)^V(Y,11)^V(Y,25),G=j+R+H8(Y,N,U)+F0[z]+f[z]|0,P=(V(q,2)^V(q,13)^V(q,22))+_8(q,Z,X)|0;j=U,U=N,N=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,N=N+this.F|0,U=U+this.G|0,j=j+this.H|0,this.set(q,Z,X,J,Y,N,U,j)}roundClean(){k(f)}destroy(){this.set(0,0,0,0,0,0,0,0),k(this.buffer)}}class c8 extends W8{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 P0 extends W8{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 n8=(()=>A8(["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=(()=>n8[0])(),D0=(()=>n8[1])(),H=new Uint32Array(80),_=new Uint32Array(80);class r extends Y8{constructor(Q){super(128,Q,16,!1)}get(){let{Ah:Q,Al:$,Bh:q,Bl:Z,Ch:X,Cl:J,Dh:Y,Dl:N,Eh:U,El:j,Fh:z,Fl:R,Gh:G,Gl:v,Hh:P,Hl:M}=this;return[Q,$,q,Z,X,J,Y,N,U,j,z,R,G,v,P,M]}set(Q,$,q,Z,X,J,Y,N,U,j,z,R,G,v,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=N|0,this.Eh=U|0,this.El=j|0,this.Fh=z|0,this.Fl=R|0,this.Gh=G|0,this.Gl=v|0,this.Hh=P|0,this.Hl=M|0}process(Q,$){for(let O=0;O<16;O++,$+=4)H[O]=Q.getUint32($),_[O]=Q.getUint32($+=4);for(let O=16;O<80;O++){let C=H[O-15]|0,m=_[O-15]|0,R8=A(C,m,1)^A(C,m,8)^v8(C,m,7),G8=S(C,m,1)^S(C,m,8)^D8(C,m,7),E=H[O-2]|0,b=_[O-2]|0,q8=A(E,b,19)^s(E,b,61)^v8(E,b,6),O8=S(E,b,19)^o(E,b,61)^D8(E,b,6),Z8=u8(G8,O8,_[O-7],_[O-16]),F8=d8(Z8,R8,q8,H[O-7],H[O-16]);H[O]=F8|0,_[O]=Z8|0}let{Ah:q,Al:Z,Bh:X,Bl:J,Ch:Y,Cl:N,Dh:U,Dl:j,Eh:z,El:R,Fh:G,Fl:v,Gh:P,Gl:M,Hh:F,Hl:c}=this;for(let O=0;O<80;O++){let C=A(z,R,14)^A(z,R,18)^s(z,R,41),m=S(z,R,14)^S(z,R,18)^o(z,R,41),R8=z&G^~z&P,G8=R&v^~R&M,E=h8(c,m,G8,D0[O],_[O]),b=l8(E,F,C,R8,v0[O],H[O]),q8=E|0,O8=A(q,Z,28)^s(q,Z,34)^s(q,Z,39),Z8=S(q,Z,28)^o(q,Z,34)^o(q,Z,39),F8=q&X^q&Y^X&Y,j0=Z&J^Z&N^J&N;F=P|0,c=M|0,P=G|0,M=v|0,G=z|0,v=R|0,{h:z,l:R}=T(U|0,j|0,b|0,q8|0),U=Y|0,j=N|0,Y=X|0,N=J|0,X=q|0,J=Z|0;let C8=S8(q8,Z8,j0);q=g8(C8,b,O8,F8),Z=C8|0}({h:q,l:Z}=T(this.Ah|0,this.Al|0,q|0,Z|0)),{h:X,l:J}=T(this.Bh|0,this.Bl|0,X|0,J|0),{h:Y,l:N}=T(this.Ch|0,this.Cl|0,Y|0,N|0),{h:U,l:j}=T(this.Dh|0,this.Dl|0,U|0,j|0),{h:z,l:R}=T(this.Eh|0,this.El|0,z|0,R|0),{h:G,l:v}=T(this.Fh|0,this.Fl|0,G|0,v|0),{h:P,l:M}=T(this.Gh|0,this.Gl|0,P|0,M|0),{h:F,l:c}=T(this.Hh|0,this.Hl|0,F|0,c|0),this.set(q,Z,X,J,Y,N,U,j,z,R,G,v,P,M,F,c)}roundClean(){k(H,_)}destroy(){k(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class W0 extends r{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 r{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 L0 extends r{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 M0 extends r{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 z8=y8(()=>new c8,f8(1));class w8{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),k(Z)}update(Q){return g(this),this.iHash.update(Q),this}digestInto(Q){g(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 w8(Q,$).update(q).digest();u.create=(Q,$)=>new w8(Q,$);function k0(Q,$,q){if(n(Q),q===void 0)q=new Uint8Array(Q.outputLen);return u(Q,q,$)}var L8=Uint8Array.of(0),s8=Uint8Array.of();function V0(Q,$,q,Z=32){n(Q),X8(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=s8;else y(q,void 0,"info");let Y=new Uint8Array(J*X),N=u.create(Q,$),U=N._cloneInto(),j=new Uint8Array(N.outputLen);for(let z=0;z<J;z++)L8[0]=z+1,U.update(z===0?s8:j).update(q).update(L8).digestInto(j),Y.set(j,X*z),N._cloneInto(U);return N.destroy(),U.destroy(),k(j,L8),Y.slice(0,Z)}var o8=(Q,$,q,Z,X)=>V0(Q,k0(Q,$,q),Z,X);function d(Q){if(typeof Q==="string")return new TextEncoder().encode(Q);return Q}function h(Q){return z8(d(Q))}function i(Q,$){return u(z8,d(Q),d($))}function l0(Q,$,{salt:q,info:Z}={}){let X=q?d(q):new Uint8Array(32),J=d(Q),Y=Z?d(Z):new Uint8Array(0);return o8(z8,J,X,Y,$)}var r8="0123456789ABCDEFGHJKMNPQRSTVWXYZ";function c0(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 M8(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 $=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 a8(){let Q=new Uint8Array(32);return crypto.getRandomValues(Q),btoa(String.fromCharCode(...Q))}var o0=1,r0="actioncodes",i0="actioncodes-revoke";function p(Q){let $=JSON.stringify({id:"actioncodes",ver:1,pubkey:Q.pubkey,windowStart:Q.windowStart,...Q.secret&&{secret:Q.secret}});return new TextEncoder().encode($)}function e8(Q){let $=JSON.stringify({id:"actioncodes-revoke",ver:1,pubkey:Q.pubkey,codeHash:Q.codeHash,windowStart:Q.windowStart});return new TextEncoder().encode($)}var V8="NFC",a=256,T8=6,I8=24,e0=8,t0="0123456789",QQ=["solana"];var E8="actioncodes:";function b8(Q){let $=t8(Q);if($.int!=null)U8($.int);let q=[`ver=${$.ver}`,`id=${encodeURIComponent($.id)}`,`int=${encodeURIComponent($.int)}`];if($.p!=null&&Object.keys($.p).length>0){let X=JSON.stringify($.p);U8(X),q.push(`p=${encodeURIComponent(X)}`)}let Z=E8+q.join("&");return Q0(Z),Z}function K8(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[v,P]=G.split("=",2);if(!v)continue;let M=P!=null?decodeURIComponent(P):"";Z.set(v,M)}let X=Z.get("ver"),J=Z.get("id"),Y=Z.get("int"),N=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 j;if(N!=null&&N!=="")try{if(j=JSON.parse(N),typeof j!=="object"||j===null||Array.isArray(j))throw Error("protocol meta p must be a JSON object")}catch{throw Error("protocol meta p must be valid JSON")}let z=t8({ver:U,id:J,int:Y,p:j});if(z.int!=null)U8(z.int);if(z.p!=null)U8(JSON.stringify(z.p));if([...Z.keys()].filter((G)=>G!=="ver"&&G!=="id"&&G!=="int"&&G!=="p").length>0)throw Error("protocol meta contains unsupported keys");return Q0(b8(z)),z}function ZQ(Q){try{return K8(Q),{ok:!0}}catch($){return{ok:!1,reason:String($)}}}function t8(Q){let $=Q.id.normalize(V8).trim(),q={ver:Q.ver,id:$,int:Q.int};if(Q.int!=null)q.int=Q.int.normalize(V8).trim();if(Q.p!=null)q.p=Q.p;return q}function Q0(Q){if(new TextEncoder().encode(Q).length>a)throw Error(`protocol meta exceeds ${a} bytes`)}function U8(Q){if(new TextEncoder().encode(Q).length>a)throw Error(`protocol meta params exceed ${a} bytes`)}var T0;((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"})(T0||={});class K 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 K("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 K("INVALID_META_FORMAT",`Invalid protocol meta format: ${Q}`,{reason:Q})}static metaMismatch(Q,$,q){return new Z0(Q,$,q)}static metaTooLarge(Q,$){return new K("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 K("INVALID_TRANSACTION_FORMAT",`Invalid transaction format: ${Q}`,{reason:Q})}static invalidPubkeyFormat(Q,$){return new J0(Q,$)}static invalidInput(Q,$,q){return new K("INVALID_INPUT",`Invalid ${Q}: ${q}`,{field:Q,value:$,reason:q})}static missingRequiredField(Q){return new K("MISSING_REQUIRED_FIELD",`Missing required field: ${Q}`,{field:Q})}static cryptoError(Q,$){return new K("CRYPTO_ERROR",`Crypto error in ${Q}: ${$}`,{operation:Q,reason:$})}static invalidDigest(Q){return new K("INVALID_DIGEST",`Invalid digest: ${Q}`,{reason:Q})}static invalidAdapter(Q){return new z0(Q)}static create(Q,$,q){return new K(Q,$,q)}}class $0 extends K{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 K{constructor(){super("MISSING_META","Transaction does not contain valid protocol meta");this.name="MissingMetaError"}}class Z0 extends K{constructor(Q,$,q){super("META_MISMATCH",`Meta ${q} mismatch: expected '${Q}', got '${$}'`,{expected:Q,actual:$,field:q});this.name="MetaMismatchError"}}class X0 extends K{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 K{constructor(Q,$){super("INVALID_PUBKEY_FORMAT",`Invalid public key format '${Q}': ${$}`,{pubkey:Q,reason:$});this.name="InvalidPubkeyFormatError"}}class Y0 extends K{constructor(Q){super("INVALID_SIGNATURE",`Invalid signature: ${Q}`,{reason:Q});this.name="InvalidSignatureError"}}class N0 extends K{constructor(Q,$){super("INVALID_CODE_FORMAT",`Invalid code format '${Q}': ${$}`,{code:Q,reason:$});this.name="InvalidCodeFormatError"}}class z0 extends K{constructor(Q){super("INVALID_ADAPTER",`Invalid adapter: ${Q}`,{adapter:Q});this.name="InvalidAdapterError"}}import U0 from"bs58";class e{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,N=q,U;if($){let P=U0.decode($);U=i(P,Z)}else if(N)U=i(N,Z);else U=h(Z);let j=Math.max(T8,Math.min(I8,this.config.codeLength)),z=8*Math.ceil(j/2),R=M8(U,z);return{actionCode:{code:k8(R,j),pubkey:J,timestamp:Y,expiresAt:Y+this.config.ttlMs,...$&&{signature:$},...N&&{secret:N}},canonicalMessage:Z}}validateCode(Q){let $=Date.now();if($>Q.expiresAt+(this.config.clockSkewMs??0))throw K.expiredCode(Q.code,Q.expiresAt,$);let q=p({pubkey:Q.pubkey,windowStart:Q.timestamp,secret:Q.secret}),Z;if(Q.signature){let N=U0.decode(Q.signature);Z=i(N,q)}else if(Q.secret)Z=i(Q.secret,q);else Z=h(q);let X=Math.max(T8,Math.min(I8,this.config.codeLength)),J=M8(Z,8*Math.ceil(X/2)),Y=k8(J,X);if(Y!==Q.code)throw K.invalidCode(Y,Q.code)}}class I{walletStrategy;config;constructor(Q){this.config=Q,this.walletStrategy=new e(Q)}static createDelegationCertificateTemplate(Q,$=3600000,q="solana"){let Z=Date.now();return{version:"1.0",delegator:Q,issuedAt:Z,expiresAt:Z+$,nonce:a8(),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=p({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 x8 from"tweetnacl";import B8 from"bs58";import{PublicKey as K0,Transaction as l,VersionedTransaction as j8,TransactionInstruction as I0,MessageV0 as t}from"@solana/web3.js";import{createMemoInstruction as E0,MEMO_PROGRAM_ID as Q8}from"@solana/spl-memo";class $8 extends P8{normalizePubkey(Q){if(typeof Q==="string")return new K0(Q);return Q}verifyWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalMessageParts)return!1;try{let $=p(Q.canonicalMessageParts),q=this.normalizePubkey(Q.pubkey),Z=B8.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return x8.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=B8.decode(Q.signature),Y=X.toBytes();if(J.length!==64||Y.length!==32)return!1;return x8.sign.detached.verify(Z,J,Y)}catch{return!1}}verifyRevokeWithWallet(Q){if(Q.chain!=="solana")return!1;if(!Q.pubkey||!Q.signature||!Q.canonicalRevokeMessageParts)return!1;try{let $=e8(Q.canonicalRevokeMessageParts),q=this.normalizePubkey(Q.pubkey),Z=B8.decode(Q.signature),X=q.toBytes();if(Z.length!==64||X.length!==32)return!1;return x8.sign.detached.verify($,Z,X)}catch{return!1}}static createProtocolMetaIx(Q){let $=b8(Q);return E0($)}getProtocolMeta(Q){try{let $=this.deserializeTransaction(Q);for(let q of this.getMemoInstructions($)){let Z=q.data;try{let X=new TextDecoder().decode(Z);if(K8(X))return X}catch{}}return null}catch{return null}}deserializeTransaction(Q){try{let $=j8.deserialize(Buffer.from(Q,"base64"));if($.message instanceof t)return $;else return l.from(Buffer.from(Q,"base64"))}catch{try{return l.from(Buffer.from(Q,"base64"))}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}parseMeta(Q){let $=this.getProtocolMeta(Q);if(!$)return null;return K8($)}getMemoInstructions(Q){if(Q instanceof l)return Q.instructions.filter(($)=>$.programId.equals(Q8));else{let q=Q.message;if(q instanceof t){let Z=[];for(let X of q.compiledInstructions){let J=q.staticAccountKeys[X.programIdIndex];if(J&&J.equals(Q8)){let Y=X.accountKeyIndexes.map((N)=>({pubkey:q.staticAccountKeys[N],isSigner:!1,isWritable:!1}));Z.push(new I0({keys:Y,programId:J,data:X.data}))}}return Z}return[]}}verifyTransactionMatchesCode(Q,$){let q=Date.now();if(q>Q.expiresAt)throw K.expiredCode(Q.code,Q.expiresAt,q);let Z=this.parseMeta($);if(!Z)throw K.missingMeta();if(Z.ver!==2)throw K.metaMismatch("2",String(Z.ver),"ver");let X=i8(Q.code);if(Z.id!==X)throw K.metaMismatch(X,Z.id,"id");if(Z.int!==Q.pubkey)throw K.metaMismatch(Q.pubkey,Z.int,"int")}verifyTransactionSignedByIntentOwner(Q){let $=this.parseMeta(Q);if(!$)throw K.missingMeta();let q=$.int;if(!q)throw K.invalidMetaFormat("Missing 'int' (intendedFor) field");let Z;try{Z=new K0(q)}catch{throw K.invalidPubkeyFormat(q,"Invalid public key format")}let X=this.deserializeTransaction(Q),J=[];if(X instanceof l){if(!X.signatures.some((N)=>{if(!N.signature)return!1;return J.push(N.publicKey.toString()),N.publicKey.equals(Z)}))throw K.transactionNotSignedByIntendedOwner(q,J);return}if(X instanceof j8){let Y=X.message;if(Y instanceof t){let N=Y.header.numRequiredSignatures;for(let U=0;U<N;U++){let j=Y.staticAccountKeys[U];if(j){if(J.push(j.toString()),j.equals(Z))return}}throw K.transactionNotSignedByIntendedOwner(q,J)}}throw K.invalidTransactionFormat("Unsupported transaction format")}static attachProtocolMeta(Q,$){if(new $8().getProtocolMeta(Q))throw K.invalidTransactionFormat("Transaction already contains protocol meta. Cannot attach additional protocol meta.");let X=$8.createProtocolMetaIx($);try{let J=j8.deserialize(Buffer.from(Q,"base64"));if(J.message instanceof t){let Y=J.message,N=[...Y.staticAccountKeys];if(!N.some((G)=>G.equals(Q8)))N.push(Q8);let j={programIdIndex:N.findIndex((G)=>G.equals(Q8)),accountKeyIndexes:[],data:X.data},z=new t({header:Y.header,staticAccountKeys:N,recentBlockhash:Y.recentBlockhash,compiledInstructions:[...Y.compiledInstructions,j],addressTableLookups:Y.addressTableLookups}),R=new j8(z);return R.signatures=J.signatures,Buffer.from(R.serialize()).toString("base64")}else{let Y=l.from(Buffer.from(Q,"base64"));return Y.add(X),Buffer.from(Y.serialize({requireAllSignatures:!1})).toString("base64")}}catch{try{let J=l.from(Buffer.from(Q,"base64"));return J.add(X),Buffer.from(J.serialize({requireAllSignatures:!1})).toString("base64")}catch{throw K.invalidTransactionFormat("Invalid base64 transaction format")}}}}class b0{config;adapters={};_walletStrategy;_delegationStrategy;constructor(Q){this.config=Q;this.adapters.solana=new $8,this._walletStrategy=new e(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 p({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 K.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 K.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 K.invalidAdapter(Z.chain);if(!X.verifyWithDelegation({chain:Z.chain,pubkey:Z.delegator,signature:Z.signature,certificate:Z}))throw Error("Signature verification failed")}}}export{ZQ as validateProtocolMetaFormat,M8 as truncateBits,h as sha256,e8 as serializeCanonicalRevoke,p as serializeCanonical,K8 as parseProtocolMeta,i as hmacSha256,l0 as hkdfSha256,n0 as generateRandomSecret,a8 as generateNonce,k8 as digestToDigits,i8 as codeHash,b8 as buildProtocolMeta,c0 as base32EncodeCrockford,e as WalletStrategy,X0 as TransactionNotSignedByIntendedOwnerError,$8 as SolanaAdapter,QQ as SUPPORTED_CHAINS,E8 as SCHEME,T0 as ProtocolErrorCode,K as ProtocolError,V8 as PROTOCOL_NORMALIZATION,a as PROTOCOL_META_MAX_BYTES,q0 as MissingMetaError,Z0 as MetaMismatchError,Y0 as InvalidSignatureError,J0 as InvalidPubkeyFormatError,N0 as InvalidCodeFormatError,z0 as InvalidAdapterError,$0 as ExpiredCodeError,I as DelegationStrategy,T8 as CODE_MIN_LENGTH,I8 as CODE_MAX_LENGTH,e0 as CODE_DEFAULT_LENGTH,t0 as CODE_CHARSET_DIGITS,i0 as CANONICAL_REVOKE_MESSAGE_PREFIX,o0 as CANONICAL_MESSAGE_VERSION,r0 as CANONICAL_MESSAGE_PREFIX,P8 as BaseChainAdapter,b0 as ActionCodesProtocol};
2
2
 
3
- //# debugId=3299667FD6C48DB964756E2164756E21
3
+ //# debugId=808A5A1E903C58E064756E2164756E21
package/dist/index.js.map CHANGED
@@ -20,6 +20,6 @@
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
22
  "mappings": "AA+BO,MAAe,EAA6E,CAInG,uEC7BO,SAAS,EAAO,CAAC,EAAG,CACvB,OAAO,aAAa,YAAe,YAAY,OAAO,CAAC,GAAK,EAAE,YAAY,OAAS,aAGhF,SAAS,EAAO,CAAC,EAAG,EAAQ,GAAI,CACnC,GAAI,CAAC,OAAO,cAAc,CAAC,GAAK,EAAI,EAAG,CACnC,IAAM,EAAS,GAAS,IAAI,MAC5B,MAAU,MAAM,GAAG,+BAAoC,GAAG,GAI3D,SAAS,CAAM,CAAC,EAAO,EAAQ,EAAQ,GAAI,CAC9C,IAAM,EAAQ,GAAQ,CAAK,EACrB,EAAM,GAAO,OACb,EAAW,IAAW,OAC5B,GAAI,CAAC,GAAU,GAAY,IAAQ,EAAS,CACxC,IAAM,EAAS,GAAS,IAAI,MACtB,EAAQ,EAAW,cAAc,IAAW,GAC5C,EAAM,EAAQ,UAAU,IAAQ,QAAQ,OAAO,IACrD,MAAU,MAAM,EAAS,sBAAwB,EAAQ,SAAW,CAAG,EAE3E,OAAO,EAGJ,SAAS,CAAK,CAAC,EAAG,CACrB,GAAI,OAAO,IAAM,YAAc,OAAO,EAAE,SAAW,WAC/C,MAAU,MAAM,yCAAyC,EAC7D,GAAQ,EAAE,SAAS,EACnB,GAAQ,EAAE,QAAQ,EAGf,SAAS,CAAO,CAAC,EAAU,EAAgB,GAAM,CACpD,GAAI,EAAS,UACT,MAAU,MAAM,kCAAkC,EACtD,GAAI,GAAiB,EAAS,SAC1B,MAAU,MAAM,uCAAuC,EAGxD,SAAS,EAAO,CAAC,EAAK,EAAU,CACnC,EAAO,EAAK,OAAW,qBAAqB,EAC5C,IAAM,EAAM,EAAS,UACrB,GAAI,EAAI,OAAS,EACb,MAAU,MAAM,oDAAsD,CAAG,EAY1E,SAAS,CAAK,IAAI,EAAQ,CAC7B,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,IAC/B,EAAO,GAAG,KAAK,CAAC,EAIjB,SAAS,EAAU,CAAC,EAAK,CAC5B,OAAO,IAAI,SAAS,EAAI,OAAQ,EAAI,WAAY,EAAI,UAAU,EAG3D,SAAS,CAAI,CAAC,EAAM,EAAO,CAC9B,OAAQ,GAAS,GAAK,EAAW,IAAS,EAsJvC,SAAS,EAAY,CAAC,EAAU,EAAO,CAAC,EAAG,CAC9C,IAAM,EAAQ,CAAC,EAAK,IAAS,EAAS,CAAI,EAAE,OAAO,CAAG,EAAE,OAAO,EACzD,EAAM,EAAS,MAAS,EAK9B,OAJA,EAAM,UAAY,EAAI,UACtB,EAAM,SAAW,EAAI,SACrB,EAAM,OAAS,CAAC,IAAS,EAAS,CAAI,EACtC,OAAO,OAAO,EAAO,CAAI,EAClB,OAAO,OAAO,CAAK,EAUvB,IAAM,GAAU,CAAC,KAAY,CAChC,IAAK,WAAW,KAAK,CAAC,EAAM,EAAM,GAAM,IAAM,GAAM,EAAM,IAAM,EAAM,EAAM,EAAM,CAAM,CAAC,CAC7F,GC1OO,SAAS,EAAG,CAAC,EAAG,EAAG,EAAG,CACzB,OAAQ,EAAI,EAAM,CAAC,EAAI,EAGpB,SAAS,EAAG,CAAC,EAAG,EAAG,EAAG,CACzB,OAAQ,EAAI,EAAM,EAAI,EAAM,EAAI,EAM7B,MAAM,EAAO,CAChB,SACA,UACA,UACA,KAEA,OACA,KACA,SAAW,GACX,OAAS,EACT,IAAM,EACN,UAAY,GACZ,WAAW,CAAC,EAAU,EAAW,EAAW,EAAM,CAC9C,KAAK,SAAW,EAChB,KAAK,UAAY,EACjB,KAAK,UAAY,EACjB,KAAK,KAAO,EACZ,KAAK,OAAS,IAAI,WAAW,CAAQ,EACrC,KAAK,KAAO,GAAW,KAAK,MAAM,EAEtC,MAAM,CAAC,EAAM,CACT,EAAQ,IAAI,EACZ,EAAO,CAAI,EACX,IAAQ,OAAM,SAAQ,YAAa,KAC7B,EAAM,EAAK,OACjB,QAAS,EAAM,EAAG,EAAM,GAAM,CAC1B,IAAM,EAAO,KAAK,IAAI,EAAW,KAAK,IAAK,EAAM,CAAG,EAEpD,GAAI,IAAS,EAAU,CACnB,IAAM,EAAW,GAAW,CAAI,EAChC,KAAO,GAAY,EAAM,EAAK,GAAO,EACjC,KAAK,QAAQ,EAAU,CAAG,EAC9B,SAKJ,GAHA,EAAO,IAAI,EAAK,SAAS,EAAK,EAAM,CAAI,EAAG,KAAK,GAAG,EACnD,KAAK,KAAO,EACZ,GAAO,EACH,KAAK,MAAQ,EACb,KAAK,QAAQ,EAAM,CAAC,EACpB,KAAK,IAAM,EAKnB,OAFA,KAAK,QAAU,EAAK,OACpB,KAAK,WAAW,EACT,KAEX,UAAU,CAAC,EAAK,CACZ,EAAQ,IAAI,EACZ,GAAQ,EAAK,IAAI,EACjB,KAAK,SAAW,GAIhB,IAAQ,SAAQ,OAAM,WAAU,QAAS,MACnC,OAAQ,KAMd,GAJA,EAAO,KAAS,IAChB,EAAM,KAAK,OAAO,SAAS,CAAG,CAAC,EAG3B,KAAK,UAAY,EAAW,EAC5B,KAAK,QAAQ,EAAM,CAAC,EACpB,EAAM,EAGV,QAAS,EAAI,EAAK,EAAI,EAAU,IAC5B,EAAO,GAAK,EAIhB,EAAK,aAAa,EAAW,EAAG,OAAO,KAAK,OAAS,CAAC,EAAG,CAAI,EAC7D,KAAK,QAAQ,EAAM,CAAC,EACpB,IAAM,EAAQ,GAAW,CAAG,EACtB,EAAM,KAAK,UAEjB,GAAI,EAAM,EACN,MAAU,MAAM,2CAA2C,EAC/D,IAAM,EAAS,EAAM,EACf,EAAQ,KAAK,IAAI,EACvB,GAAI,EAAS,EAAM,OACf,MAAU,MAAM,oCAAoC,EACxD,QAAS,EAAI,EAAG,EAAI,EAAQ,IACxB,EAAM,UAAU,EAAI,EAAG,EAAM,GAAI,CAAI,EAE7C,MAAM,EAAG,CACL,IAAQ,SAAQ,aAAc,KAC9B,KAAK,WAAW,CAAM,EACtB,IAAM,EAAM,EAAO,MAAM,EAAG,CAAS,EAErC,OADA,KAAK,QAAQ,EACN,EAEX,UAAU,CAAC,EAAI,CACX,IAAO,IAAI,KAAK,YAChB,EAAG,IAAI,GAAG,KAAK,IAAI,CAAC,EACpB,IAAQ,WAAU,SAAQ,SAAQ,WAAU,YAAW,OAAQ,KAK/D,GAJA,EAAG,UAAY,EACf,EAAG,SAAW,EACd,EAAG,OAAS,EACZ,EAAG,IAAM,EACL,EAAS,EACT,EAAG,OAAO,IAAI,CAAM,EACxB,OAAO,EAEX,KAAK,EAAG,CACJ,OAAO,KAAK,WAAW,EAE/B,CAMO,IAAM,EAA4B,YAAY,KAAK,CACtD,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACxF,CAAC,EAEY,EAA4B,YAAY,KAAK,CACtD,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,UACxF,CAAC,EAEY,EAA4B,YAAY,KAAK,CACtD,WAAY,WAAY,WAAY,UAAY,WAAY,UAAY,UAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACxF,CAAC,EAEY,EAA4B,YAAY,KAAK,CACtD,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WAAY,SACxF,CAAC,EC5ID,IAAM,GAA6B,OAAO,UAAW,EAC/C,GAAuB,OAAO,EAAE,EACtC,SAAS,EAAO,CAAC,EAAG,EAAK,GAAO,CAC5B,GAAI,EACA,MAAO,CAAE,EAAG,OAAO,EAAI,EAAU,EAAG,EAAG,OAAQ,GAAK,GAAQ,EAAU,CAAE,EAC5E,MAAO,CAAE,EAAG,OAAQ,GAAK,GAAQ,EAAU,EAAI,EAAG,EAAG,OAAO,EAAI,EAAU,EAAI,CAAE,EAEpF,SAAS,EAAK,CAAC,EAAK,EAAK,GAAO,CAC5B,IAAM,EAAM,EAAI,OACZ,EAAK,IAAI,YAAY,CAAG,EACxB,EAAK,IAAI,YAAY,CAAG,EAC5B,QAAS,EAAI,EAAG,EAAI,EAAK,IAAK,CAC1B,IAAQ,IAAG,KAAM,GAAQ,EAAI,GAAI,CAAE,EACnC,CAAC,EAAG,GAAI,EAAG,EAAE,EAAI,CAAC,EAAG,CAAC,EAE1B,MAAO,CAAC,EAAI,CAAE,EAIlB,IAAM,GAAQ,CAAC,EAAG,EAAI,IAAM,IAAM,EAC5B,GAAQ,CAAC,EAAG,EAAG,IAAO,GAAM,GAAK,EAAO,IAAM,EAE9C,EAAS,CAAC,EAAG,EAAG,IAAO,IAAM,EAAM,GAAM,GAAK,EAC9C,EAAS,CAAC,EAAG,EAAG,IAAO,GAAM,GAAK,EAAO,IAAM,EAE/C,EAAS,CAAC,EAAG,EAAG,IAAO,GAAM,GAAK,EAAO,IAAO,EAAI,GACpD,EAAS,CAAC,EAAG,EAAG,IAAO,IAAO,EAAI,GAAQ,GAAM,GAAK,EAY3D,SAAS,CAAG,CAAC,EAAI,EAAI,EAAI,EAAI,CACzB,IAAM,GAAK,IAAO,IAAM,IAAO,GAC/B,MAAO,CAAE,EAAI,EAAK,GAAO,EAAI,WAAW,GAAM,EAAG,EAAG,EAAI,CAAE,EAG9D,IAAM,GAAQ,CAAC,EAAI,EAAI,KAAQ,IAAO,IAAM,IAAO,IAAM,IAAO,GAC1D,GAAQ,CAAC,EAAK,EAAI,EAAI,IAAQ,EAAK,EAAK,GAAO,EAAM,WAAW,GAAM,EACtE,GAAQ,CAAC,EAAI,EAAI,EAAI,KAAQ,IAAO,IAAM,IAAO,IAAM,IAAO,IAAM,IAAO,GAC3E,GAAQ,CAAC,EAAK,EAAI,EAAI,EAAI,IAAQ,EAAK,EAAK,EAAK,GAAO,EAAM,WAAW,GAAM,EAC/E,GAAQ,CAAC,EAAI,EAAI,EAAI,EAAI,KAAQ,IAAO,IAAM,IAAO,IAAM,IAAO,IAAM,IAAO,IAAM,IAAO,GAC5F,GAAQ,CAAC,EAAK,EAAI,EAAI,EAAI,EAAI,IAAQ,EAAK,EAAK,EAAK,EAAK,GAAO,EAAM,WAAW,GAAM,ECtC9F,IAAM,GAA2B,YAAY,KAAK,CAC9C,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,UACpF,UAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACpF,UAAY,UAAY,UAAY,UAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UACxF,CAAC,EAEK,EAA2B,IAAI,YAAY,EAAE,EAEnD,MAAM,WAAiB,EAAO,CAC1B,WAAW,CAAC,EAAW,CACnB,MAAM,GAAI,EAAW,EAAG,EAAK,EAEjC,GAAG,EAAG,CACF,IAAQ,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAM,KACnC,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAGlC,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACxB,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EACb,KAAK,EAAI,EAAI,EAEjB,OAAO,CAAC,EAAM,EAAQ,CAElB,QAAS,EAAI,EAAG,EAAI,GAAI,IAAK,GAAU,EACnC,EAAS,GAAK,EAAK,UAAU,EAAQ,EAAK,EAC9C,QAAS,EAAI,GAAI,EAAI,GAAI,IAAK,CAC1B,IAAM,EAAM,EAAS,EAAI,IACnB,EAAK,EAAS,EAAI,GAClB,EAAK,EAAK,EAAK,CAAC,EAAI,EAAK,EAAK,EAAE,EAAK,IAAQ,EAC7C,EAAK,EAAK,EAAI,EAAE,EAAI,EAAK,EAAI,EAAE,EAAK,IAAO,GACjD,EAAS,GAAM,EAAK,EAAS,EAAI,GAAK,EAAK,EAAS,EAAI,IAAO,EAGnE,IAAM,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,IAAG,KAAM,KACjC,QAAS,EAAI,EAAG,EAAI,GAAI,IAAK,CACzB,IAAM,EAAS,EAAK,EAAG,CAAC,EAAI,EAAK,EAAG,EAAE,EAAI,EAAK,EAAG,EAAE,EAC9C,EAAM,EAAI,EAAS,GAAI,EAAG,EAAG,CAAC,EAAI,GAAS,GAAK,EAAS,GAAM,EAE/D,GADS,EAAK,EAAG,CAAC,EAAI,EAAK,EAAG,EAAE,EAAI,EAAK,EAAG,EAAE,GAC/B,GAAI,EAAG,EAAG,CAAC,EAAK,EACrC,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAK,EAAI,EAAM,EACf,EAAI,EACJ,EAAI,EACJ,EAAI,EACJ,EAAK,EAAK,EAAM,EAGpB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,EAAK,EAAI,KAAK,EAAK,EACnB,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAEnC,UAAU,EAAG,CACT,EAAM,CAAQ,EAElB,OAAO,EAAG,CACN,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAC/B,EAAM,KAAK,MAAM,EAEzB,CAEO,MAAM,WAAgB,EAAS,CAGlC,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,WAAW,EAAG,CACV,MAAM,EAAE,EAEhB,CAEO,MAAM,WAAgB,EAAS,CAClC,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,EAAI,EAAU,GAAK,EACnB,WAAW,EAAG,CACV,MAAM,EAAE,EAEhB,CAKA,IAAM,IAAwB,IAAU,GAAM,CAC1C,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,qBAClE,qBAAsB,qBAAsB,qBAAsB,oBACtE,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,EAClB,IAA6B,IAAM,GAAK,IAAI,EAC5C,IAA6B,IAAM,GAAK,IAAI,EAE5C,EAA6B,IAAI,YAAY,EAAE,EAC/C,EAA6B,IAAI,YAAY,EAAE,EAErD,MAAM,UAAiB,EAAO,CAC1B,WAAW,CAAC,EAAW,CACnB,MAAM,IAAK,EAAW,GAAI,EAAK,EAGnC,GAAG,EAAG,CACF,IAAQ,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAO,KAC3E,MAAO,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,EAG1E,GAAG,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAChE,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EACf,KAAK,GAAK,EAAK,EAEnB,OAAO,CAAC,EAAM,EAAQ,CAElB,QAAS,EAAI,EAAG,EAAI,GAAI,IAAK,GAAU,EACnC,EAAW,GAAK,EAAK,UAAU,CAAM,EACrC,EAAW,GAAK,EAAK,UAAW,GAAU,CAAE,EAEhD,QAAS,EAAI,GAAI,EAAI,GAAI,IAAK,CAE1B,IAAM,EAAO,EAAW,EAAI,IAAM,EAC5B,EAAO,EAAW,EAAI,IAAM,EAC5B,GAAU,EAAO,EAAM,EAAM,CAAC,EAAQ,EAAO,EAAM,EAAM,CAAC,EAAQ,GAAM,EAAM,EAAM,CAAC,EACrF,GAAU,EAAO,EAAM,EAAM,CAAC,EAAQ,EAAO,EAAM,EAAM,CAAC,EAAQ,GAAM,EAAM,EAAM,CAAC,EAErF,EAAM,EAAW,EAAI,GAAK,EAC1B,EAAM,EAAW,EAAI,GAAK,EAC1B,GAAU,EAAO,EAAK,EAAK,EAAE,EAAQ,EAAO,EAAK,EAAK,EAAE,EAAQ,GAAM,EAAK,EAAK,CAAC,EACjF,GAAU,EAAO,EAAK,EAAK,EAAE,EAAQ,EAAO,EAAK,EAAK,EAAE,EAAQ,GAAM,EAAK,EAAK,CAAC,EAEjF,GAAW,GAAM,GAAK,GAAK,EAAW,EAAI,GAAI,EAAW,EAAI,GAAG,EAChE,GAAW,GAAM,GAAM,GAAK,GAAK,EAAW,EAAI,GAAI,EAAW,EAAI,GAAG,EAC5E,EAAW,GAAK,GAAO,EACvB,EAAW,GAAK,GAAO,EAE3B,IAAM,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,KAAI,MAAO,KAEzE,QAAS,EAAI,EAAG,EAAI,GAAI,IAAK,CAEzB,IAAM,EAAc,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EACjF,EAAc,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EAEjF,GAAQ,EAAK,EAAO,CAAC,EAAK,EAC1B,GAAQ,EAAK,EAAO,CAAC,EAAK,EAG1B,EAAW,GAAM,EAAI,EAAS,GAAM,GAAU,GAAI,EAAW,EAAE,EAC/D,EAAU,GAAM,EAAM,EAAI,EAAS,GAAM,GAAU,GAAI,EAAW,EAAE,EACpE,GAAM,EAAO,EAEb,GAAc,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EACjF,GAAc,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EAAQ,EAAO,EAAI,EAAI,EAAE,EACjF,GAAQ,EAAK,EAAO,EAAK,EAAO,EAAK,EACrC,GAAQ,EAAK,EAAO,EAAK,EAAO,EAAK,EAC3C,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACT,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,EAAK,EAAG,EAAK,EAAG,EAAM,EAAG,GAAM,CAAC,EAC5D,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,EAAK,EAAK,EACV,IAAM,GAAU,GAAM,GAAK,GAAS,EAAI,EACxC,EAAS,GAAM,GAAK,EAAK,GAAS,EAAI,EACtC,EAAK,GAAM,GAGd,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,GACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACnE,CAAE,EAAG,EAAI,EAAG,CAAG,EAAQ,EAAI,KAAK,GAAK,EAAG,KAAK,GAAK,EAAG,EAAK,EAAG,EAAK,CAAC,EACpE,KAAK,IAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,CAAE,EAE3E,UAAU,EAAG,CACT,EAAM,EAAY,CAAU,EAEhC,OAAO,EAAG,CACN,EAAM,KAAK,MAAM,EACjB,KAAK,IAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAC,EAE/D,CAEO,MAAM,WAAgB,CAAS,CAClC,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,WAAW,EAAG,CACV,MAAM,EAAE,EAEhB,CAEO,MAAM,WAAgB,CAAS,CAClC,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,GAAK,EACpB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,GAAK,EAAU,IAAM,EACrB,WAAW,EAAG,CACV,MAAM,EAAE,EAEhB,CAQA,IAAM,EAA0B,YAAY,KAAK,CAC7C,WAAY,UAAY,WAAY,WAAY,UAAY,UAAY,WAAY,WACpF,UAAY,WAAY,WAAY,SAAY,WAAY,WAAY,UAAY,UACxF,CAAC,EAEK,EAA0B,YAAY,KAAK,CAC7C,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WACpF,WAAY,WAAY,WAAY,WAAY,UAAY,UAAY,UAAY,UACxF,CAAC,EAEM,MAAM,WAAoB,CAAS,CACtC,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,WAAW,EAAG,CACV,MAAM,EAAE,EAEhB,CAEO,MAAM,WAAoB,CAAS,CACtC,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,GAAK,EAClB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,GAAK,EAAQ,IAAM,EACnB,WAAW,EAAG,CACV,MAAM,EAAE,EAEhB,CASO,IAAM,GAAyB,GAAa,IAAM,IAAI,GAC7C,GAAQ,CAAI,CAAC,EChXtB,MAAM,EAAM,CACf,MACA,MACA,SACA,UACA,SAAW,GACX,UAAY,GACZ,WAAW,CAAC,EAAM,EAAK,CAInB,GAHA,EAAM,CAAI,EACV,EAAO,EAAK,OAAW,KAAK,EAC5B,KAAK,MAAQ,EAAK,OAAO,EACrB,OAAO,KAAK,MAAM,SAAW,WAC7B,MAAU,MAAM,qDAAqD,EACzE,KAAK,SAAW,KAAK,MAAM,SAC3B,KAAK,UAAY,KAAK,MAAM,UAC5B,IAAM,EAAW,KAAK,SAChB,EAAM,IAAI,WAAW,CAAQ,EAEnC,EAAI,IAAI,EAAI,OAAS,EAAW,EAAK,OAAO,EAAE,OAAO,CAAG,EAAE,OAAO,EAAI,CAAG,EACxE,QAAS,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC5B,EAAI,IAAM,GACd,KAAK,MAAM,OAAO,CAAG,EAErB,KAAK,MAAQ,EAAK,OAAO,EAEzB,QAAS,EAAI,EAAG,EAAI,EAAI,OAAQ,IAC5B,EAAI,IAAM,IACd,KAAK,MAAM,OAAO,CAAG,EACrB,EAAM,CAAG,EAEb,MAAM,CAAC,EAAK,CAGR,OAFA,EAAQ,IAAI,EACZ,KAAK,MAAM,OAAO,CAAG,EACd,KAEX,UAAU,CAAC,EAAK,CACZ,EAAQ,IAAI,EACZ,EAAO,EAAK,KAAK,UAAW,QAAQ,EACpC,KAAK,SAAW,GAChB,KAAK,MAAM,WAAW,CAAG,EACzB,KAAK,MAAM,OAAO,CAAG,EACrB,KAAK,MAAM,WAAW,CAAG,EACzB,KAAK,QAAQ,EAEjB,MAAM,EAAG,CACL,IAAM,EAAM,IAAI,WAAW,KAAK,MAAM,SAAS,EAE/C,OADA,KAAK,WAAW,CAAG,EACZ,EAEX,UAAU,CAAC,EAAI,CAEX,IAAO,OAAO,OAAO,OAAO,eAAe,IAAI,EAAG,CAAC,CAAC,EACpD,IAAQ,QAAO,QAAO,WAAU,YAAW,WAAU,aAAc,KAQnE,OAPA,EAAK,EACL,EAAG,SAAW,EACd,EAAG,UAAY,EACf,EAAG,SAAW,EACd,EAAG,UAAY,EACf,EAAG,MAAQ,EAAM,WAAW,EAAG,KAAK,EACpC,EAAG,MAAQ,EAAM,WAAW,EAAG,KAAK,EAC7B,EAEX,KAAK,EAAG,CACJ,OAAO,KAAK,WAAW,EAE3B,OAAO,EAAG,CACN,KAAK,UAAY,GACjB,KAAK,MAAM,QAAQ,EACnB,KAAK,MAAM,QAAQ,EAE3B,CAWO,IAAM,EAAO,CAAC,EAAM,EAAK,IAAY,IAAI,GAAM,EAAM,CAAG,EAAE,OAAO,CAAO,EAAE,OAAO,EACxF,EAAK,OAAS,CAAC,EAAM,IAAQ,IAAI,GAAM,EAAM,CAAG,EC1EzC,SAAS,EAAO,CAAC,EAAM,EAAK,EAAM,CAKrC,GAJA,EAAM,CAAI,EAIN,IAAS,OACT,EAAO,IAAI,WAAW,EAAK,SAAS,EACxC,OAAO,EAAK,EAAM,EAAM,CAAG,EAE/B,IAAM,GAA+B,WAAW,GAAG,CAAC,EAC9C,GAA+B,WAAW,GAAG,EAQ5C,SAAS,EAAM,CAAC,EAAM,EAAK,EAAM,EAAS,GAAI,CACjD,EAAM,CAAI,EACV,GAAQ,EAAQ,QAAQ,EACxB,IAAM,EAAO,EAAK,UAClB,GAAI,EAAS,IAAM,EACf,MAAU,MAAM,+BAA+B,EACnD,IAAM,EAAS,KAAK,KAAK,EAAS,CAAI,EACtC,GAAI,IAAS,OACT,EAAO,GAEP,OAAO,EAAM,OAAW,MAAM,EAElC,IAAM,EAAM,IAAI,WAAW,EAAS,CAAI,EAElC,EAAO,EAAK,OAAO,EAAM,CAAG,EAC5B,EAAU,EAAK,WAAW,EAC1B,EAAI,IAAI,WAAW,EAAK,SAAS,EACvC,QAAS,EAAU,EAAG,EAAU,EAAQ,IACpC,GAAa,GAAK,EAAU,EAG5B,EAAQ,OAAO,IAAY,EAAI,GAAe,CAAC,EAC1C,OAAO,CAAI,EACX,OAAO,EAAY,EACnB,WAAW,CAAC,EACjB,EAAI,IAAI,EAAG,EAAO,CAAO,EACzB,EAAK,WAAW,CAAO,EAK3B,OAHA,EAAK,QAAQ,EACb,EAAQ,QAAQ,EAChB,EAAM,EAAG,EAAY,EACd,EAAI,MAAM,EAAG,CAAM,EAmBvB,IAAM,GAAO,CAAC,EAAM,EAAK,EAAM,EAAM,IAAW,GAAO,EAAM,GAAQ,EAAM,EAAK,CAAI,EAAG,EAAM,CAAM,EC9E1G,SAAS,CAAO,CAAC,EAAwC,CACvD,GAAI,OAAO,IAAU,SAAU,OAAO,IAAI,YAAY,EAAE,OAAO,CAAK,EACpE,OAAO,EAGF,SAAS,CAAM,CAAC,EAAuC,CAC5D,OAAO,GAAY,EAAQ,CAAI,CAAC,EAG3B,SAAS,CAAU,CACxB,EACA,EACY,CACZ,OAAO,EAAK,GAAa,EAAQ,CAAG,EAAG,EAAQ,CAAI,CAAC,EAI/C,SAAS,EAAU,CACxB,EACA,GAEE,OACA,QAC8D,CAAC,EACrD,CACZ,IAAM,EAAU,EAAO,EAAQ,CAAI,EAAI,IAAI,WAAW,EAAE,EAClD,EAAS,EAAQ,CAAG,EACpB,EAAU,EAAO,EAAQ,CAAI,EAAI,IAAI,WAAW,CAAC,EAEvD,OAAO,GAAK,GAAa,EAAQ,EAAS,EAAS,CAAM,EAI3D,IAAM,GAAqB,mCAEpB,SAAS,EAAqB,CAAC,EAA0B,CAC9D,IAAI,EAAO,EACP,EAAQ,EACR,EAAS,GACb,QAAS,EAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACpC,EAAS,GAAS,EAAK,EAAK,GAC5B,GAAQ,EACR,MAAO,GAAQ,EACb,GAAU,GAAoB,IAAW,EAAO,EAAM,IACtD,GAAQ,EAGZ,GAAI,EAAO,EACT,GAAU,GAAoB,GAAU,EAAI,EAAS,IAEvD,OAAO,EAGF,SAAS,EAAY,CAAC,EAAmB,EAA+B,CAC7E,IAAM,EAAa,KAAK,KAAK,EAAY,CAAC,EACpC,EAAM,IAAI,WAAW,CAAU,EAC/B,EAAY,KAAK,IAAI,EAAY,EAAM,MAAM,EACnD,EAAI,IAAI,EAAM,SAAS,EAAG,CAAS,CAAC,EAEpC,IAAM,EAAY,EAAa,EAAI,EACnC,GAAI,EAAY,EAAG,CACjB,IAAM,EAAO,KAAQ,EACrB,EAAI,EAAa,GAAK,EAAI,EAAa,GAAM,EAE/C,OAAO,EAIF,SAAS,EAAc,CAAC,EAAoB,EAAwB,CACzE,GAAI,EAAO,SAAW,EAAG,MAAU,MAAM,8BAA8B,EAGvE,IAAI,EAAM,GACJ,EAAS,EAAO,EAAO,OAAS,GAAM,GAC5C,QAAS,EAAI,EAAG,EAAI,OAAS,EAAQ,IAAK,CACxC,IAAM,GAAO,EAAS,EAAI,GAAK,KAAK,IAAI,EAAG,EAAO,OAAS,CAAC,EAOtD,KALF,EAAO,GAAQ,MAAS,GACzB,EAAO,EAAM,IAAO,GACpB,EAAO,EAAM,IAAO,EACrB,EAAO,EAAM,IACC,KACE,SAAS,EAAE,SAAS,EAAG,GAAG,EAC5C,GAAO,EAET,OAAO,EAAI,MAAM,EAAG,CAAM,EAIrB,SAAS,EAAQ,CAAC,EAAsB,CAC7C,IAAM,EAAO,EAAO,CAAI,EACxB,OAAO,MAAM,KAAK,CAAI,EACnB,IAAI,CAAC,IAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAC1C,KAAK,EAAE,EAIL,SAAS,EAAoB,EAAW,CAC7C,IAAM,EAAc,IAAI,WAAW,EAAE,EAErC,OADA,OAAO,gBAAgB,CAAW,EAC3B,KAAK,OAAO,aAAa,GAAG,CAAW,CAAC,EAI1C,SAAS,EAAa,EAAW,CACtC,IAAM,EAAc,IAAI,WAAW,EAAE,EAErC,OADA,OAAO,gBAAgB,CAAW,EAC3B,KAAK,OAAO,aAAa,GAAG,CAAW,CAAC,EC1G1C,IAAM,GAA4B,EAC5B,GAA2B,cAC3B,GAAkC,qBAExC,SAAS,CAAkB,CAAC,EAA0C,CAC3E,IAAM,EAAO,KAAK,UAAU,CAC1B,GALoC,cAMpC,IAPqC,EAQrC,OAAQ,EAAM,OACd,YAAa,EAAM,eAEf,EAAM,QAAU,CAAE,OAAQ,EAAM,MAAO,CAC7C,CAAC,EACD,OAAO,IAAI,YAAY,EAAE,OAAO,CAAI,EAG/B,SAAS,EAAwB,CACtC,EACY,CACZ,IAAM,EAAO,KAAK,UAAU,CAC1B,GAlB2C,qBAmB3C,IArBqC,EAsBrC,OAAQ,EAAM,OACd,SAAU,EAAM,SAChB,YAAa,EAAM,WACrB,CAAC,EACD,OAAO,IAAI,YAAY,EAAE,OAAO,CAAI,EC7B/B,IAAM,GAAyB,MACzB,EAA0B,IAE1B,GAAkB,EAClB,GAAkB,GAClB,GAAsB,EAGtB,GAAsB,aAEtB,GAAmB,CAAC,QAAQ,ECFlC,IAAM,GAAS,eAEf,SAAS,EAAiB,CAAC,EAAoC,CACpE,IAAM,EAAO,GAAgB,CAAM,EACnC,GAAI,EAAK,KAAO,KAAM,GAAe,EAAK,GAAG,EAE7C,IAAM,EAAQ,CACZ,OAAO,EAAK,MACZ,MAAM,mBAAmB,EAAK,EAAE,IAChC,OAAO,mBAAmB,EAAK,GAAG,GACpC,EAEA,GAAI,EAAK,GAAK,MAAQ,OAAO,KAAK,EAAK,CAAC,EAAE,OAAS,EAAG,CACpD,IAAM,EAAa,KAAK,UAAU,EAAK,CAAC,EACxC,GAAe,CAAU,EACzB,EAAM,KAAK,KAAK,mBAAmB,CAAU,GAAG,EAGlD,IAAM,EAAM,GAAS,EAAM,KAAK,GAAG,EAEnC,OADA,GAAU,CAAG,EACN,EAGF,SAAS,EAAiB,CAAC,EAAmC,CACnE,GAAI,CAAC,EAAM,WAAW,EAAM,EAAG,MAAU,MAAM,4CAA4C,EAE3F,IAAM,EADI,EAAM,MAAM,GAAO,MAAM,EACnB,MAAM,GAAG,EAAE,OAAO,OAAO,EACnC,EAAM,IAAI,IAChB,QAAW,KAAQ,EAAO,CACxB,IAAO,EAAG,GAAQ,EAAK,MAAM,IAAK,CAAC,EACnC,GAAI,CAAC,EAAG,SACR,IAAM,EAAI,GAAQ,KAAO,mBAAmB,CAAI,EAAI,GACpD,EAAI,IAAI,EAAG,CAAC,EAEd,IAAM,EAAS,EAAI,IAAI,KAAK,EACtB,EAAK,EAAI,IAAI,IAAI,EACjB,EAAM,EAAI,IAAI,KAAK,EACnB,EAAO,EAAI,IAAI,GAAG,EACxB,GAAI,GAAU,MAAQ,GAAM,MAAQ,GAAO,KAAM,MAAU,MAAM,wDAAwD,EACzH,IAAM,EAAM,OAAO,CAAM,EACzB,GAAI,CAAC,OAAO,UAAU,CAAG,GAAK,GAAO,EAAG,MAAU,MAAM,4CAA4C,EAEpG,IAAI,EACJ,GAAI,GAAQ,MAAQ,IAAS,GAC3B,GAAI,CAEF,GADA,EAAI,KAAK,MAAM,CAAI,EACf,OAAO,IAAM,UAAY,IAAM,MAAQ,MAAM,QAAQ,CAAC,EACxD,MAAU,MAAM,uCAAuC,EAEzD,KAAM,CACN,MAAU,MAAM,oCAAoC,EAIxD,IAAM,EAAO,GAAgB,CAAE,IAAK,EAAU,KAAI,MAAK,GAAE,CAAC,EAC1D,GAAI,EAAK,KAAO,KAAM,GAAe,EAAK,GAAG,EAC7C,GAAI,EAAK,GAAK,KAAM,GAAe,KAAK,UAAU,EAAK,CAAC,CAAC,EAEzD,GADoB,CAAC,GAAG,EAAI,KAAK,CAAC,EAAE,OAAO,CAAC,IAAM,IAAM,OAAS,IAAM,MAAQ,IAAM,OAAS,IAAM,GAAG,EACvF,OAAS,EAAG,MAAU,MAAM,yCAAyC,EAErF,OADA,GAAU,GAAkB,CAAI,CAAC,EAC1B,EAGF,SAAS,EAA0B,CAAC,EAA6D,CACtG,GAAI,CAEF,OADA,GAAkB,CAAK,EAChB,CAAE,GAAI,EAAK,EAClB,MAAO,EAAY,CACnB,MAAO,CAAE,GAAI,GAAO,OAAQ,OAAO,CAAC,CAAE,GAI1C,SAAS,EAAe,CAAC,EAAgD,CACvE,IAAM,EAAK,EAAO,GAAG,UAAU,EAAsB,EAAE,KAAK,EACtD,EAA0B,CAAE,IAAK,EAAO,IAAK,KAAI,IAAK,EAAO,GAAI,EACvE,GAAI,EAAO,KAAO,KAAM,EAAI,IAAM,EAAO,IAAI,UAAU,EAAsB,EAAE,KAAK,EACpF,GAAI,EAAO,GAAK,KAEd,EAAI,EAAI,EAAO,EAEjB,OAAO,EAGT,SAAS,EAAS,CAAC,EAAiB,CAElC,GADc,IAAI,YAAY,EAAE,OAAO,CAAC,EAC9B,OAAS,EAAyB,MAAU,MAAM,yBAAyB,SAA+B,EAGtH,SAAS,EAAc,CAAC,EAAqB,CAE3C,GADc,IAAI,YAAY,EAAE,OAAO,CAAK,EAClC,OAAS,EAAyB,MAAU,MAAM,+BAA+B,SAA+B,ECpGrH,IAAK,IAAL,CAAK,IAAL,CAEL,eAAe,eACf,eAAe,eACf,sBAAsB,sBACtB,oBAAoB,oBAGpB,eAAe,eACf,sBAAsB,sBACtB,gBAAgB,gBAChB,iBAAiB,iBAGjB,2CAA2C,2CAC3C,6BAA6B,6BAC7B,wBAAwB,wBAGxB,gBAAgB,gBAChB,yBAAyB,yBAGzB,eAAe,eACf,iBAAiB,iBAGjB,kBAAkB,oBA3BR,SA8BL,MAAM,UAAsB,KAAM,CAErB,KAEA,QAHlB,WAAW,CACO,EAChB,EACgB,EAChB,CACA,MAAM,CAAO,EAJG,YAEA,eAGhB,KAAK,KAAO,sBAIP,YAAW,CAAC,EAAc,EAAmB,EAAuC,CACzF,OAAO,IAAI,GAAiB,EAAM,EAAW,CAAW,QAGnD,YAAW,CAAC,EAAkB,EAA+B,CAClE,OAAO,IAAI,EACT,eACA,2BAA2B,YAAmB,KAC9C,CAAE,WAAU,QAAO,CACrB,QAGK,kBAAiB,CAAC,EAAc,EAAwC,CAC7E,OAAO,IAAI,GAAuB,EAAM,CAAM,QAGzC,iBAAgB,CAAC,EAAuC,CAC7D,OAAO,IAAI,GAAsB,CAAM,QAIlC,YAAW,EAAqB,CACrC,OAAO,IAAI,SAGN,kBAAiB,CAAC,EAA+B,CACtD,OAAO,IAAI,EACT,sBACA,iCAAiC,IACjC,CAAE,QAAO,CACX,QAGK,aAAY,CAAC,EAAkB,EAAgB,EAAkC,CACtF,OAAO,IAAI,GAAkB,EAAU,EAAQ,CAAK,QAG/C,aAAY,CAAC,EAAkB,EAAoC,CACxE,OAAO,IAAI,EACT,iBACA,4BAA4B,iBAA2B,KACvD,CAAE,WAAU,aAAY,CAC1B,QAIK,oCAAmC,CAAC,EAAkB,EAAmE,CAC9H,OAAO,IAAI,GAAyC,EAAU,CAAa,QAGtE,yBAAwB,CAAC,EAA+B,CAC7D,OAAO,IAAI,EACT,6BACA,+BAA+B,IAC/B,CAAE,QAAO,CACX,QAGK,oBAAmB,CAAC,EAAgB,EAA0C,CACnF,OAAO,IAAI,GAAyB,EAAQ,CAAM,QAI7C,aAAY,CAAC,EAAe,EAAgB,EAA+B,CAChF,OAAO,IAAI,EACT,gBACA,WAAW,MAAU,IACrB,CAAE,QAAO,QAAO,QAAO,CACzB,QAGK,qBAAoB,CAAC,EAA8B,CACxD,OAAO,IAAI,EACT,yBACA,2BAA2B,IAC3B,CAAE,OAAM,CACV,QAIK,YAAW,CAAC,EAAmB,EAA+B,CACnE,OAAO,IAAI,EACT,eACA,mBAAmB,MAAc,IACjC,CAAE,YAAW,QAAO,CACtB,QAGK,cAAa,CAAC,EAA+B,CAClD,OAAO,IAAI,EACT,iBACA,mBAAmB,IACnB,CAAE,QAAO,CACX,QAIK,eAAc,CAAC,EAAsC,CAC1D,OAAO,IAAI,GAAoB,CAAO,QAIjC,OAAM,CAAC,EAAyB,EAAiB,EAAkD,CACxG,OAAO,IAAI,EAAc,EAAM,EAAS,CAAO,EAEnD,CAGO,MAAM,WAAyB,CAAc,CAClD,WAAW,CAAC,EAAc,EAAmB,EAAqB,CAChE,MACE,eACA,gBAAgB,iBAAoB,oBAA4B,IAChE,CAAE,OAAM,YAAW,aAAY,CACjC,EACA,KAAK,KAAO,mBAEhB,CAEO,MAAM,WAAyB,CAAc,CAClD,WAAW,EAAG,CACZ,MACE,eACA,kDACF,EACA,KAAK,KAAO,mBAEhB,CAEO,MAAM,WAA0B,CAAc,CACnD,WAAW,CAAC,EAAkB,EAAgB,EAAe,CAC3D,MACE,gBACA,QAAQ,yBAA6B,YAAmB,KACxD,CAAE,WAAU,SAAQ,OAAM,CAC5B,EACA,KAAK,KAAO,oBAEhB,CAEO,MAAM,WAAiD,CAAc,CAC1E,WAAW,CAAC,EAAkB,EAAyB,CACrD,MACE,2CACA,6CAA6C,wBAA+B,EAAc,KACxF,IACF,KACA,CAAE,WAAU,eAAc,CAC5B,EACA,KAAK,KAAO,2CAEhB,CAEO,MAAM,WAAiC,CAAc,CAC1D,WAAW,CAAC,EAAgB,EAAgB,CAC1C,MACE,wBACA,8BAA8B,OAAY,IAC1C,CAAE,SAAQ,QAAO,CACnB,EACA,KAAK,KAAO,2BAEhB,CAEO,MAAM,WAA8B,CAAc,CACvD,WAAW,CAAC,EAAgB,CAC1B,MAAM,oBAAqC,sBAAsB,IAAU,CACzE,QACF,CAAC,EACD,KAAK,KAAO,wBAEhB,CAEO,MAAM,WAA+B,CAAc,CACxD,WAAW,CAAC,EAAc,EAAgB,CACxC,MACE,sBACA,wBAAwB,OAAU,IAClC,CAAE,OAAM,QAAO,CACjB,EACA,KAAK,KAAO,yBAEhB,CAEO,MAAM,WAA4B,CAAc,CACrD,WAAW,CAAC,EAAiB,CAC3B,MAAM,kBAAmC,oBAAoB,IAAW,CAAE,SAAQ,CAAC,EACnF,KAAK,KAAO,sBAEhB,CC7NA,qBAEO,MAAM,CAAe,CACN,OAApB,WAAW,CAAS,EAA8B,CAA9B,cAEpB,YAAY,CACV,EACA,EACA,EACoC,CACpC,IAAM,EAAY,EAGZ,EAAU,KAAK,MAAM,IAAI,YAAY,EAAE,OAAO,CAAS,CAAC,EACxD,EAAS,EAAQ,OACjB,EAAc,EAAQ,YAGtB,EAAS,EAGX,EACJ,GAAI,EAAW,CAGb,IAAM,EAAiB,GAAK,OAAO,CAAS,EAC5C,EAAS,EAAW,EAAgB,CAAS,EACxC,QAAI,EAET,EAAS,EAAW,EAAQ,CAAS,EAGrC,OAAS,EAAO,CAAS,EAG3B,IAAM,EAAU,KAAK,IACnB,GACA,KAAK,IAAI,GAAiB,KAAK,OAAO,UAAU,CAClD,EACM,EAAa,EAAI,KAAK,KAAK,EAAU,CAAC,EACtC,EAAY,GAAa,EAAQ,CAAU,EAcjD,MAAO,CAAE,WAXsB,CAC7B,KAHW,GAAe,EAAW,CAAO,EAI5C,SACA,UAAW,EACX,UAAW,EAAc,KAAK,OAAO,SAEjC,GAAa,CAAE,WAAU,KAEzB,GAAU,CAAE,QAAO,CACzB,EAEqB,iBAAkB,CAAU,EAGnD,YAAY,CAAC,EAA8B,CACzC,IAAM,EAAc,KAAK,IAAI,EAC7B,GAAI,EAAc,EAAW,WAAa,KAAK,OAAO,aAAe,GACnE,MAAM,EAAc,YAAY,EAAW,KAAM,EAAW,UAAW,CAAW,EAGpF,IAAM,EAAY,EAAmB,CACnC,OAAQ,EAAW,OACnB,YAAa,EAAW,UACxB,OAAQ,EAAW,MACrB,CAAC,EAGG,EACJ,GAAI,EAAW,UAAW,CAGxB,IAAM,EAAiB,GAAK,OAAO,EAAW,SAAS,EACvD,EAAS,EAAW,EAAgB,CAAS,EACxC,QAAI,EAAW,OAEpB,EAAS,EAAW,EAAW,OAAQ,CAAS,EAGhD,OAAS,EAAO,CAAS,EAG3B,IAAM,EAAU,KAAK,IACnB,GACA,KAAK,IAAI,GAAiB,KAAK,OAAO,UAAU,CAClD,EACM,EAAY,GAAa,EAAQ,EAAI,KAAK,KAAK,EAAU,CAAC,CAAC,EAC3D,EAAW,GAAe,EAAW,CAAO,EAElD,GAAI,IAAa,EAAW,KAC1B,MAAM,EAAc,YAAY,EAAU,EAAW,IAAI,EAG/D,CC9FO,MAAM,CAAmB,CACtB,eACA,OAER,WAAW,CAAC,EAA8B,CACxC,KAAK,OAAS,EACd,KAAK,eAAiB,IAAI,EAAe,CAAM,QAO1C,oCAAmC,CACxC,EACA,EAAqB,QACrB,EAAgB,SAC0B,CAC1C,IAAM,EAAM,KAAK,IAAI,EACrB,MAAO,CACL,QAAS,MACT,UAAW,EACX,SAAU,EACV,UAAW,EAAM,EACjB,MAAO,GAAc,EACrB,OACF,EAOF,qBAAqB,CACnB,EACwC,CAGxC,GAAI,CAAC,KAAK,oBAAoB,CAAW,EACvC,MAAU,MAAM,gCAAgC,EAIlD,IAAM,EAAoB,EAAmB,gBAAgB,CAAW,EAGlE,EAAc,KAAK,MAAM,KAAK,IAAI,EAAI,KAAK,OAAO,KAAK,EAAI,KAAK,OAAO,MACvE,EAAmB,EAAmB,CAC1C,OAAQ,EAAY,UACpB,cACA,OAAQ,CACV,CAAC,EAgBD,MAAO,CACL,WAP+C,IAPlC,KAAK,eAAe,aACjC,EACA,GACA,CACF,EAIY,WACV,aAAc,EAAmB,gBAAgB,CAAW,EAC5D,YAAa,EAAY,SAC3B,CAIA,EAMF,qBAAqB,CACnB,EACA,EACM,CAKN,GAHA,KAAK,eAAe,aAAa,CAAU,EAGvC,CAAC,KAAK,oBAAoB,CAAW,EACvC,MAAU,MAAM,2CAA2C,EAI7D,GAAI,EAAW,eAAiB,EAAmB,gBAAgB,CAAW,EAC5E,MAAU,MAAM,mDAAmD,EAIrE,GAAI,EAAW,cAAgB,EAAY,UACzC,MAAU,MAAM,kDAAkD,EAO9D,mBAAmB,CAAC,EAA6C,CAEvE,GAAI,KAAK,IAAI,EAAI,EAAY,UAC3B,MAAO,GAIT,GAAI,KAAK,IAAI,EAAI,EAAY,SAC3B,MAAO,GAIT,GACE,CAAC,EAAY,SACb,CAAC,EAAY,WACb,CAAC,EAAY,UACb,CAAC,EAAY,WACb,CAAC,EAAY,OACb,CAAC,EAAY,OACb,CAAC,EAAY,UAEb,MAAO,GAIT,GAAI,EAAY,UAAY,MAC1B,MAAO,GAGT,MAAO,SAMF,qBAAoB,CAAC,EAA4D,CACtF,IAAM,EAAO,KAAK,UAAU,CAC1B,QAAS,EAAK,QACd,UAAW,EAAK,UAChB,SAAU,EAAK,SACf,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,MAAO,EAAK,KACd,CAAC,EACD,OAAO,IAAI,YAAY,EAAE,OAAO,CAAI,QAO/B,gBAAe,CAAC,EAAqC,CAE1D,IAAM,EAAa,KAAK,qBAAqB,CAAI,EAC3C,EAAiB,IAAI,YAAY,EAAE,OAAO,EAAK,SAAS,EAGxD,EAAW,IAAI,WAAW,EAAW,OAAS,EAAe,MAAM,EACzE,EAAS,IAAI,EAAY,CAAC,EAC1B,EAAS,IAAI,EAAgB,EAAW,MAAM,EAE9C,IAAM,EAAO,EAAO,CAAQ,EAC5B,OAAO,MAAM,KAAK,CAAI,EACnB,IAAI,CAAC,IAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAC1C,KAAK,EAAE,QAOL,6BAA4B,CAAC,EAA6C,CAE/E,GACE,CAAC,EAAY,SACb,CAAC,EAAY,WACb,CAAC,EAAY,UACb,CAAC,EAAY,WACb,CAAC,EAAY,OACb,CAAC,EAAY,OACb,CAAC,EAAY,UAEb,MAAO,GAIT,GAAI,EAAY,UAAY,MAC1B,MAAO,GAIT,GAAI,KAAK,IAAI,EAAI,EAAY,UAC3B,MAAO,GAIT,GAAI,KAAK,IAAI,EAAI,EAAY,SAC3B,MAAO,GAGT,MAAO,GAMT,iBAAiB,EAAmB,CAClC,OAAO,KAAK,eAEhB,CC5NA,0BACA,qBACA,oBACE,kBACA,0BACA,6BACA,gBACA,wBAEF,gCAAS,sBAAuB,0BA6BzB,MAAM,WAAsB,EAIjC,CAEQ,eAAe,CAAC,EAAsC,CAC5D,GAAI,OAAO,IAAU,SACnB,OAAO,IAAI,GAAU,CAAK,EAE5B,OAAO,EAIT,gBAAgB,CACd,EACS,CAET,GAAI,EAAQ,QAAU,SAAU,MAAO,GACvC,GAAI,CAAC,EAAQ,QAAU,CAAC,EAAQ,WAAa,CAAC,EAAQ,sBACpD,MAAO,GAGT,GAAI,CACF,IAAM,EAAU,EAAmB,EAAQ,qBAAqB,EAC1D,EAAM,KAAK,gBAAgB,EAAQ,MAAM,EACzC,EAAW,GAAK,OAAO,EAAQ,SAAS,EACxC,EAAW,EAAI,QAAQ,EAG7B,GAAI,EAAS,SAAW,IAAM,EAAS,SAAW,GAChD,MAAO,GAIT,OAAO,GAAK,KAAK,SAAS,OAAO,EAAS,EAAU,CAAQ,EAC5D,KAAM,CAEN,MAAO,IAKX,oBAAoB,CAClB,EACS,CAET,GAAI,EAAQ,QAAU,SAAU,MAAO,GACvC,GAAI,CAAC,EAAQ,QAAU,CAAC,EAAQ,WAAa,CAAC,EAAQ,YACpD,MAAO,GAET,IAAM,EAAO,EAAQ,YAGrB,GAAI,CAAC,EAAmB,6BAA6B,CAAI,EACvD,MAAO,GAIT,GAAI,EAAK,YAAc,EAAQ,OAAQ,MAAO,GAG9C,GAAI,EAAK,QAAU,EAAQ,MAAO,MAAO,GAGzC,GAAI,CAEF,IAAM,EAAuB,CAC3B,QAAS,EAAK,QACd,UAAW,EAAK,UAChB,SAAU,EAAK,SACf,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,MAAO,EAAK,KACd,EACM,EACJ,EAAmB,qBAAqB,CAAoB,EAExD,EAAM,KAAK,gBAAgB,EAAQ,MAAM,EACzC,EAAW,GAAK,OAAO,EAAQ,SAAS,EACxC,EAAW,EAAI,QAAQ,EAG7B,GAAI,EAAS,SAAW,IAAM,EAAS,SAAW,GAChD,MAAO,GAIT,OAAO,GAAK,KAAK,SAAS,OAAO,EAAS,EAAU,CAAQ,EAC5D,KAAM,CAEN,MAAO,IAKX,sBAAsB,CACpB,EACS,CAET,GAAI,EAAQ,QAAU,SAAU,MAAO,GACvC,GACE,CAAC,EAAQ,QACT,CAAC,EAAQ,WACT,CAAC,EAAQ,4BAET,MAAO,GAGT,GAAI,CACF,IAAM,EAAU,GACd,EAAQ,2BACV,EACM,EAAM,KAAK,gBAAgB,EAAQ,MAAM,EACzC,EAAW,GAAK,OAAO,EAAQ,SAAS,EACxC,EAAW,EAAI,QAAQ,EAG7B,GAAI,EAAS,SAAW,IAAM,EAAS,SAAW,GAChD,MAAO,GAIT,OAAO,GAAK,KAAK,SAAS,OAAO,EAAS,EAAU,CAAQ,EAC5D,KAAM,CAEN,MAAO,UAKJ,qBAAoB,CACzB,EACwB,CACxB,IAAM,EAAa,GAAkB,CAAI,EACzC,OAAO,GAAsB,CAAU,EAIzC,eAAe,CAAC,EAAiC,CAC/C,GAAI,CACF,IAAM,EAAK,KAAK,uBAAuB,CAAQ,EAC/C,QAAW,KAAM,KAAK,oBAAoB,CAAE,EAAG,CAC7C,IAAM,EAAO,EAAG,KAChB,GAAI,CACF,IAAM,EAAI,IAAI,YAAY,EAAE,OAAO,CAAI,EAGvC,GADe,GAAkB,CAAC,EACtB,OAAO,EACnB,KAAM,GAIV,OAAO,KACP,KAAM,CACN,OAAO,MAKH,sBAAsB,CAAC,EAAqC,CAClE,GAAI,CAEF,IAAM,EAAc,GAAqB,YACvC,OAAO,KAAK,EAAU,QAAQ,CAChC,EAGA,GAAI,EAAY,mBAAmB,EACjC,OAAO,EAIP,YAAO,EAAY,KAAK,OAAO,KAAK,EAAU,QAAQ,CAAC,EAEzD,KAAM,CACN,GAAI,CAEF,OAAO,EAAY,KAAK,OAAO,KAAK,EAAU,QAAQ,CAAC,EACvD,KAAM,CACN,MAAM,EAAc,yBAClB,mCACF,IAMN,SAAS,CAAC,EAA6C,CACrD,IAAM,EAAI,KAAK,gBAAgB,CAAQ,EACvC,GAAI,CAAC,EAAG,OAAO,KACf,OAAO,GAAkB,CAAC,EAIpB,mBAAmB,CAAC,EAAiD,CAC3E,GAAI,aAAc,EAChB,OAAO,EAAG,aAAa,OAAO,CAAC,IAC7B,EAAG,UAAU,OAAO,EAAe,CACrC,EACK,KAGL,IAAM,EADM,EACI,QAChB,GAAI,aAAe,EAAW,CAC5B,IAAM,EAAkC,CAAC,EACzC,QAAW,KAAM,EAAI,qBAAsB,CACzC,IAAM,EAAM,EAAI,kBAAkB,EAAG,gBACrC,GAAI,GAAO,EAAI,OAAO,EAAe,EAAG,CAEtC,IAAM,EAAO,EAAG,kBAAkB,IAAI,CAAC,KAAO,CAC5C,OAAQ,EAAI,kBAAkB,GAC9B,SAAU,GACV,WAAY,EACd,EAAE,EACF,EAAM,KACJ,IAAI,GAAuB,CACzB,OACA,UAAW,EACX,KAAM,EAAG,IACX,CAAC,CACH,GAGJ,OAAO,EAET,MAAO,CAAC,GAQZ,4BAA4B,CAAC,EAAwB,EAAwB,CAE3E,IAAM,EAAc,KAAK,IAAI,EAC7B,GAAI,EAAc,EAAW,UAC3B,MAAM,EAAc,YAClB,EAAW,KACX,EAAW,UACX,CACF,EAGF,IAAM,EAAO,KAAK,UAAU,CAAQ,EACpC,GAAI,CAAC,EACH,MAAM,EAAc,YAAY,EAIlC,GAAI,EAAK,MAAQ,EACf,MAAM,EAAc,aAAa,IAAK,OAAO,EAAK,GAAG,EAAG,KAAK,EAI/D,IAAM,EAAmB,GAAS,EAAW,IAAI,EACjD,GAAI,EAAK,KAAO,EACd,MAAM,EAAc,aAAa,EAAkB,EAAK,GAAI,IAAI,EAIlE,GAAI,EAAK,MAAQ,EAAW,OAC1B,MAAM,EAAc,aAAa,EAAW,OAAQ,EAAK,IAAK,KAAK,EASvE,oCAAoC,CAAC,EAAwB,CAC3D,IAAM,EAAO,KAAK,UAAU,CAAQ,EACpC,GAAI,CAAC,EACH,MAAM,EAAc,YAAY,EAGlC,IAAM,EAAW,EAAK,IACtB,GAAI,CAAC,EACH,MAAM,EAAc,kBAClB,mCACF,EAGF,IAAI,EACJ,GAAI,CACF,EAAS,IAAI,GAAU,CAAQ,EAC/B,KAAM,CACN,MAAM,EAAc,oBAClB,EACA,2BACF,EAGF,IAAM,EAAK,KAAK,uBAAuB,CAAQ,EACzC,EAA0B,CAAC,EAGjC,GAAI,aAAc,EAAa,CAO7B,GAAI,CANa,EAAG,WAAW,KAAK,CAAC,IAAQ,CAC3C,GAAI,CAAC,EAAI,UAAW,MAAO,GAE3B,OADA,EAAc,KAAK,EAAI,UAAU,SAAS,CAAC,EACpC,EAAI,UAAU,OAAO,CAAM,EACnC,EAGC,MAAM,EAAc,oCAClB,EACA,CACF,EAEF,OAIF,GAAI,aAAc,GAAsB,CACtC,IAAM,EAAM,EAAG,QACf,GAAI,aAAe,EAAW,CAC5B,IAAM,EAAc,EAAI,OAAO,sBAC/B,QAAS,EAAI,EAAG,EAAI,EAAa,IAAK,CACpC,IAAM,EAAM,EAAI,kBAAkB,GAClC,GAAI,GAEF,GADA,EAAc,KAAK,EAAI,SAAS,CAAC,EAC7B,EAAI,OAAO,CAAM,EACnB,QAIN,MAAM,EAAc,oCAClB,EACA,CACF,GAIJ,MAAM,EAAc,yBAClB,gCACF,QAOK,mBAAkB,CACvB,EACA,EACQ,CAIR,GAFgB,IAAI,GAAc,EACL,gBAAgB,CAAQ,EAEnD,MAAM,EAAc,yBAClB,qFACF,EAGF,IAAM,EAAS,GAAc,qBAAqB,CAAI,EAEtD,GAAI,CAEF,IAAM,EAAc,GAAqB,YACvC,OAAO,KAAK,EAAU,QAAQ,CAChC,EAGA,GAAI,EAAY,mBAAmB,EAAW,CAC5C,IAAM,EAAM,EAAY,QAGlB,EAAgB,CAAC,GAAG,EAAI,iBAAiB,EAC/C,GAAI,CAAC,EAAc,KAAK,CAAC,IAAM,EAAE,OAAO,EAAe,CAAC,EACtD,EAAc,KAAK,EAAe,EASpC,IAAM,EAAa,CACjB,eANqB,EAAc,UAAU,CAAC,IAC9C,EAAE,OAAO,EAAe,CAC1B,EAKE,kBAAmB,CAAC,EACpB,KAAM,EAAO,IACf,EAEM,EAAS,IAAI,EAAU,CAC3B,OAAQ,EAAI,OACZ,kBAAmB,EACnB,gBAAiB,EAAI,gBACrB,qBAAsB,CAAC,GAAG,EAAI,qBAAsB,CAAU,EAC9D,oBAAqB,EAAI,mBAC3B,CAAC,EAGK,EAAQ,IAAI,GAAqB,CAAM,EAI7C,OAFA,EAAM,WAAa,EAAY,WAExB,OAAO,KAAK,EAAM,UAAU,CAAC,EAAE,SAAS,QAAQ,EAClD,KAGL,IAAM,EAAW,EAAY,KAAK,OAAO,KAAK,EAAU,QAAQ,CAAC,EAKjE,OAFA,EAAS,IAAI,CAAM,EAEZ,OAAO,KACZ,EAAS,UAAU,CAAE,qBAAsB,EAAM,CAAC,CACpD,EAAE,SAAS,QAAQ,GAErB,KAAM,CACN,GAAI,CAEF,IAAM,EAAW,EAAY,KAAK,OAAO,KAAK,EAAU,QAAQ,CAAC,EAKjE,OAFA,EAAS,IAAI,CAAM,EAEZ,OAAO,KACZ,EAAS,UAAU,CAAE,qBAAsB,EAAM,CAAC,CACpD,EAAE,SAAS,QAAQ,EACnB,KAAM,CACN,MAAM,EAAc,yBAClB,mCACF,IAIR,CCtcO,MAAM,EAAoB,CAKF,OAJrB,SAAyC,CAAC,EAC1C,gBACA,oBAER,WAAW,CAAkB,EAA8B,CAA9B,cAE3B,KAAK,SAAS,OAAS,IAAI,GAG3B,KAAK,gBAAkB,IAAI,EAAe,CAAM,EAChD,KAAK,oBAAsB,IAAI,EAAmB,CAAM,EAGnD,SAAS,EAAyB,CACvC,OAAO,KAAK,OAId,eAAe,CAAC,EAAe,EAA6B,CAC1D,KAAK,SAAS,GAAS,EAIzB,UAAU,CAAC,EAAyC,CAClD,OAAO,KAAK,SAAS,MAInB,QAAO,EAAG,CACZ,MAAO,CACL,OAAQ,KAAK,SAAS,MACxB,KAIE,eAAc,EAAG,CACnB,OAAO,KAAK,gBAId,wBAAwB,CAAC,EAAgB,EAAqC,CAC5E,IAAM,EAAc,KAAK,MAAM,KAAK,IAAI,EAAI,KAAK,OAAO,KAAK,EAAI,KAAK,OAAO,MAC7E,OAAO,EAAmB,CAAE,SAAQ,cAAa,OAAQ,CAAe,CAAC,KAGvE,mBAAkB,EAAG,CACvB,OAAO,KAAK,oBAId,mCAAmC,CACjC,EACA,EAAqB,QACrB,EAAgB,SAC0B,CAC1C,OAAO,EAAmB,oCACxB,EACA,EACA,CACF,EAmBF,YAAY,CACV,EACA,EACA,EACA,EAIA,CACA,GAAI,IAAa,SAAU,CAEzB,GAAI,CAAC,EACH,MAAM,EAAc,iBAAiB,0CAA0C,EAEjF,OAAO,KAAK,eAAe,aAAa,EAAsB,EAAW,CAAc,EAGvF,YAAO,KAAK,mBAAmB,sBAC7B,CACF,EAeJ,YAAY,CACV,EACA,EACA,EAGM,CACN,GAAI,IAAa,SAAU,CAIzB,GAFA,KAAK,eAAe,aAAa,CAAwB,EAErD,CAAC,EAAQ,OAEb,IAAM,EAAU,EAIV,EAAU,KAAK,WAAW,EAAQ,KAAK,EAC7C,GAAI,CAAC,EAAS,MAAM,EAAc,eAAe,EAAQ,KAAK,EAU9D,GAAI,CARO,EAAQ,iBAAiB,IAC/B,EACH,sBAAuB,CACrB,OAAQ,EAAW,OACnB,YAAa,EAAW,SAC1B,CACF,CAAmD,EAGjD,MAAU,MAAM,+BAA+B,EAE5C,KACL,IAAM,EAAc,EAIpB,KAAK,mBAAmB,sBACtB,EACA,CACF,EAGA,IAAM,EAAU,KAAK,WAAW,EAAY,KAAK,EACjD,GAAI,CAAC,EAAS,MAAM,EAAc,eAAe,EAAY,KAAK,EASlE,GAAI,CAPO,EAAQ,qBAAqB,CACtC,MAAO,EAAY,MACnB,OAAQ,EAAY,UACpB,UAAW,EAAY,UACvB,YAAa,CACf,CAAC,EAGC,MAAU,MAAM,+BAA+B,GAIvD",
23
- "debugId": "3299667FD6C48DB964756E2164756E21",
23
+ "debugId": "808A5A1E903C58E064756E2164756E21",
24
24
  "names": []
25
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioncodes/protocol",
3
- "version": "2.0.7",
3
+ "version": "2.0.8",
4
4
  "module": "index.ts",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",