@revibase/transaction-manager 0.2.1 → 0.3.1
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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Install @solana/webcrypto-ed25519-polyfill and call its \`install\` function before generating keys in environments that do not support Ed25519.
|
|
4
4
|
|
|
5
|
-
For a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.`,[Gn]:"No signature verification implementation could be found.",[Hn]:"No key generation implementation could be found.",[Wn]:"No signing implementation could be found.",[Kn]:"No key export implementation could be found.",[An]:"Timestamp value must be in the range [-(2n ** 63n), (2n ** 63n) - 1]. `$value` given",[xo]:"Transaction processing left an account with an outstanding borrowed reference",[Oo]:"Account in use",[Co]:"Account loaded twice",[mo]:"Attempt to debit an account but found no record of a prior credit.",[Ko]:"Transaction loads an address table account that doesn't exist",[Mo]:"This transaction has already been processed",[yo]:"Blockhash not found",[Uo]:"Loader call chain is too deep",[Fo]:"Transactions are currently disabled due to cluster maintenance",[Jo]:"Transaction contains a duplicate instruction ($index) that is not allowed",[ho]:"Insufficient funds for fee",[Qo]:"Transaction results in an account ($accountIndex) with insufficient funds for rent",[Lo]:"This account may not be used to pay transaction fees",[vo]:"Transaction contains an invalid account reference",[Yo]:"Transaction loads an address table account with invalid data",[Xo]:"Transaction address table lookup uses an invalid index",[$o]:"Transaction loads an address table account with an invalid owner",[ti]:"LoadedAccountsDataSizeLimit set for transaction must be greater than 0.",[wo]:"This program may not be used for executing instructions",[jo]:"Transaction leaves an account with a lower balance than rent-exempt minimum",[Vo]:"Transaction loads a writable account that cannot be written",[ei]:"Transaction exceeded max loaded accounts data size cap",[bo]:"Transaction requires a fee but has no signature present",[po]:"Attempt to load a program that does not exist",[ri]:"Execution of the program referenced by account at index $accountIndex is temporarily restricted.",[ni]:"ResanitizationNeeded",[Bo]:"Transaction failed to sanitize accounts offsets correctly",[Po]:"Transaction did not pass signature verification",[Wo]:"Transaction locked too many accounts",[oi]:"Sum of account balances before and after transaction do not match",[Do]:"The transaction failed with the error `$errorName`",[ko]:"Transaction version is unsupported",[Ho]:"Transaction would exceed account data limit within the block",[qo]:"Transaction would exceed total account data limit",[Go]:"Transaction would exceed max account limit within the block",[zo]:"Transaction would exceed max Block Cost Limit",[Zo]:"Transaction would exceed max Vote Cost Limit",[tt]:"Attempted to sign a transaction with an address that is not a signer for it",[Eo]:"Transaction is missing an address at index: $index.",[nt]:"Transaction has no expected signers therefore it cannot be encoded",[rt]:"Transaction size $transactionSize exceeds limit of $transactionSizeLimit bytes",[Z]:"Transaction does not have a blockhash lifetime",[q]:"Transaction is not a durable nonce transaction",[J]:"Contents of these address lookup tables unknown: $lookupTableAddresses",[Q]:"Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved",[te]:"No fee payer set in CompiledTransaction",[ee]:"Could not find program address at index $index",[So]:"Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more",[No]:"Transaction failed when it was simulated in order to estimate the compute unit consumption. The compute unit estimate provided is for a transaction that failed when simulated and may not be representative of the compute units this transaction would consume if successful. Inspect the `cause` property of this error to learn more",[To]:"Transaction is missing a fee payer.",[et]:"Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.",[fo]:"Transaction first instruction is not advance nonce account instruction.",[go]:"Transaction with no instructions cannot be durable nonce transaction.",[Ze]:"This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees",[qe]:"This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable",[ne]:"The transaction message expected the transaction to have $numRequiredSignatures signatures, got $signaturesLength.",[Qe]:"Transaction is missing signatures for addresses: $addresses.",[Je]:"Transaction version must be in the range [0, 127]. `$actualVersion` given",[re]:"This version of Kit does not support decoding transactions with version $unsupportedVersion. The current max supported version is 0.",[ot]:"The transaction has a durable nonce lifetime (with nonce `$nonce`), but the nonce account address is in a lookup table. The lifetime constraint cannot be constructed without fetching the lookup tables for the transaction."},S="i",g="t";function zi(e,t={}){let n=xi[e];if(n.length===0)return "";let r;function o(a){if(r[g]===2){let s=n.slice(r[S]+1,a);i.push(s in t?`${t[s]}`:`$${s}`);}else r[g]===1&&i.push(n.slice(r[S],a));}let i=[];return n.split("").forEach((a,s)=>{if(s===0){r={[S]:0,[g]:n[0]==="\\"?0:n[0]==="$"?2:1};return}let c;switch(r[g]){case 0:c={[S]:s,[g]:1};break;case 1:a==="\\"?c={[S]:s,[g]:0}:a==="$"&&(c={[S]:s,[g]:2});break;case 2:a==="\\"?c={[S]:s,[g]:0}:a==="$"?c={[S]:s,[g]:2}:a.match(/\w/)||(c={[S]:s,[g]:1});break}c&&(r!==c&&o(s),r=c);}),o(),i.join("")}function ki(e,t={}){if(process.env.NODE_ENV!=="production")return zi(e,t);{let n=`Solana error #${e}; Decode this error by running \`npx @solana/errors decode -- ${e}`;return Object.keys(t).length&&(n+=` '${Fi(t)}'`),`${n}\``}}var I=class extends Error{cause=this.cause;context;constructor(...[e,t]){let n,r;t&&Object.entries(Object.getOwnPropertyDescriptors(t)).forEach(([i,a])=>{i==="cause"?r={cause:a.value}:(n===void 0&&(n={}),Object.defineProperty(n,i,a));});let o=ki(e,n);super(o,r),this.context=n===void 0?{}:n,this.context.__code=e,this.name="SolanaError";}};function Vi(e,t){if(e.length>=t)return e;let n=new Uint8Array(t).fill(0);return n.set(e),n}var Gi=(e,t)=>Vi(e.length<=t?e:e.slice(0,t),t);function lt(e,t){return "fixedSize"in t?t.fixedSize:t.getSizeFromValue(e)}function M(e){return Object.freeze({...e,encode:t=>{let n=new Uint8Array(lt(t,e));return e.write(t,n,0),n}})}function R(e){return Object.freeze({...e,decode:(t,n=0)=>e.read(t,n)[0]})}function N(e){return "fixedSize"in e&&typeof e.fixedSize=="number"}function Et(e,t,n=0){if(t.length-n<=0)throw new I(oe,{codecDescription:e})}function P(e,t,n,r=0){let o=n.length-r;if(o<t)throw new I(ie,{bytesLength:o,codecDescription:e,expected:t})}function Rt(e,t,n){if(t<0||t>n)throw new I(se,{bytesLength:n,codecDescription:e,offset:t})}function Tt(e,t){let n=(a,s)=>{let[c,u]=t.read(a,s),d=Number(c);return s=u,(s>0||a.length>d)&&(a=a.slice(s,s+d)),P("addDecoderSizePrefix",d,a),[e.decode(a),s+d]};if(N(t)&&N(e))return R({...e,fixedSize:t.fixedSize+e.fixedSize,read:n});let r=N(t)?t.fixedSize:t.maxSize??null,o=N(e)?e.fixedSize:e.maxSize??null,i=r!==null&&o!==null?r+o:null;return R({...e,...i!==null?{maxSize:i}:{},read:n})}function p(e,t){return R({fixedSize:t,read:(n,r)=>{P("fixCodecSize",t,n,r),(r>0||n.length>t)&&(n=n.slice(r,r+t)),N(e)&&(n=Gi(n,e.fixedSize));let[o]=e.read(n,0);return [o,r+t]}})}function Hi(e,t){return R({...e,read:(n,r)=>{let o=u=>Wi(u,n.length),i=t.preOffset?t.preOffset({bytes:n,preOffset:r,wrapBytes:o}):r;Rt("offsetDecoder",i,n.length);let[a,s]=e.read(n,i),c=t.postOffset?t.postOffset({bytes:n,newPreOffset:i,postOffset:s,preOffset:r,wrapBytes:o}):s;return Rt("offsetDecoder",c,n.length),[a,c]}})}function Wi(e,t){return t===0?0:(e%t+t)%t}function Ki(e,t){if(N(e)){let n=t(e.fixedSize);if(n<0)throw new I(ae,{bytesLength:n,codecDescription:"resizeDecoder"});return R({...e,fixedSize:n})}return e}function gt(e,t){return Hi(Ki(e,n=>n+t),{postOffset:({postOffset:n})=>n+t})}function y(e,t){return R({...e,read:(n,r)=>{let[o,i]=e.read(n,r);return [t(o,n,r),i]}})}function Nt(e,t,n=t){if(!t.match(new RegExp(`^[${e}]*$`)))throw new I(x,{alphabet:e,base:e.length,value:n})}var $i=e=>M({getSizeFromValue:t=>{let[n,r]=ft(t,e[0]);if(!r)return t.length;let o=St(r,e);return n.length+Math.ceil(o.toString(16).length/2)},write(t,n,r){if(Nt(e,t),t==="")return r;let[o,i]=ft(t,e[0]);if(!i)return n.set(new Uint8Array(o.length).fill(0),r),r+o.length;let a=St(i,e),s=[];for(;a>0n;)s.unshift(Number(a%256n)),a/=256n;let c=[...Array(o.length).fill(0),...s];return n.set(c,r),r+c.length}}),Yi=e=>R({read(t,n){let r=n===0?t:t.slice(n);if(r.length===0)return ["",0];let o=r.findIndex(c=>c!==0);o=o===-1?r.length:o;let i=e[0].repeat(o);if(o===r.length)return [i,t.length];let a=r.slice(o).reduce((c,u)=>c*256n+BigInt(u),0n),s=Xi(a,e);return [i+s,t.length]}});function ft(e,t){let[n,r]=e.split(new RegExp(`((?!${t}).*)`));return [n,r]}function St(e,t){let n=BigInt(t.length),r=0n;for(let o of e)r*=n,r+=BigInt(t.indexOf(o));return r}function Xi(e,t){let n=BigInt(t.length),r=[];for(;e>0n;)r.unshift(t[Number(e%n)]),e/=n;return r.join("")}var Dt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ce=()=>$i(Dt),Ot=()=>Yi(Dt);var ji="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",U=()=>M({getSizeFromValue:e=>Buffer.from(e,"base64").length,write(e,t,n){Nt(ji,e.replace(/=/g,""));let r=Buffer.from(e,"base64");return t.set(r,n),r.length+n}});var Zi=e=>e.replace(/\u0000/g,"");var qi=globalThis.TextDecoder;var Ct=()=>{let e;return R({read(t,n){let r=(e||=new qi).decode(t.slice(n));return [Zi(r),t.length]}})};function Ji(e){return !("exists"in e)||"exists"in e&&e.exists}function mt(e){let t=e.filter(n=>Ji(n)&&n.data instanceof Uint8Array);if(t.length>0){let n=t.map(r=>r.address);throw new I(j,{addresses:n})}}function Qi(e,t){if(!t)return Object.freeze({address:e,exists:false});let n=U().encode(t.data[0]);return Object.freeze({...pt(t),address:e,data:n,exists:true})}function ea(e,t){if(!t)return Object.freeze({address:e,exists:false});let n=t.data.parsed.info;return Object.freeze({...pt(t),address:e,data:n,exists:true})}function pt(e){return Object.freeze({executable:e.executable,lamports:e.lamports,programAddress:e.owner,space:e.space})}async function ht(e,t,n={}){let{abortSignal:r,...o}=n;return (await e.getMultipleAccounts(t,{...o,encoding:"jsonParsed"}).send({abortSignal:r})).value.map((a,s)=>a&&typeof a=="object"&&"parsed"in a.data?ea(t[s],a):Qi(t[s],a))}function Lt(e){let t=e.filter(n=>!n.exists);if(t.length>0){let n=t.map(r=>r.address);throw new I(X,{addresses:n})}}var ue,de;function ta(){return ue||(ue=ce()),ue}function na(){return de||(de=Ot()),de}function z(e){if(e.length<32||e.length>44)throw new I(Y,{actualLength:e.length});let r=ta().encode(e).byteLength;if(r!==32)throw new I($,{actualLength:r})}function b(e){return z(e),e}function B(){return p(na(),32)}function ra(e){return e?.endian!==1}function Mt(e){return R({fixedSize:e.size,read(t,n=0){Et(e.name,t,n),P(e.name,e.size,t,n);let r=new DataView(oa(t,n,e.size));return [e.get(r,ra(e.config)),n+e.size]}})}function oa(e,t,n){let r=e.byteOffset+(t??0),o=n??e.byteLength;return e.buffer.slice(r,r+o)}var f=()=>R({maxSize:3,read:(e,t)=>{let n=0,r=0;for(;++r;){let o=r-1,i=e[t+o],a=127&i;if(n|=a<<o*7,(i&128)===0)break}return [n,t+r]}});var yt=(e={})=>Mt({config:e,get:(t,n)=>t.getUint32(0,n),name:"u32",size:4});var C=()=>Mt({get:e=>e.getUint8(0),name:"u8",size:1});function k(e){return e.reduce((t,n)=>t===null||n===null?null:t+n,0)}function Ie(e){return N(e)?e.fixedSize:null}function Re(e){return N(e)?e.fixedSize:e.maxSize??null}function D(e,t={}){let n=t.size??yt(),r=Ie(e),o=Ut(n,r),i=Ut(n,Re(e))??void 0;return R({...o!==null?{fixedSize:o}:{maxSize:i},read:(a,s)=>{let c=[];if(typeof n=="object"&&a.slice(s).length===0)return [c,s];if(n==="remainder"){for(;s<a.length;){let[A,_]=e.read(a,s);s=_,c.push(A);}return [c,s]}let[u,d]=typeof n=="number"?[n,s]:n.read(a,s);s=d;for(let A=0;A<u;A+=1){let[_,l]=e.read(a,s);s=l,c.push(_);}return [c,s]}})}function Ut(e,t){return typeof e!="number"?null:e===0?0:t===null?null:t*e}function F(){return R({read:(e,t)=>{let n=e.slice(t);return [n,t+n.length]}})}function bt(e){let t=k(e.map(Ie)),n=k(e.map(Re))??void 0;return R({...t===null?{maxSize:n}:{fixedSize:t},read:(r,o)=>{let i=[];return e.forEach(a=>{let[s,c]=a.read(r,o);i.push(s),o=c;}),[i,o]}})}function h(e){let t=e.map(([,o])=>o),n=k(t.map(Ie)),r=k(t.map(Re))??void 0;return R({...n===null?{maxSize:r}:{fixedSize:n},read:(o,i)=>{let a={};return e.forEach(([s,c])=>{let[u,d]=c.read(o,i);i=d,a[s]=u;}),[a,i]}})}function vt(e,...t){return t.reduce((n,r)=>r(n),e)}var E=(e=>(e[e.WRITABLE_SIGNER=3]="WRITABLE_SIGNER",e[e.READONLY_SIGNER=2]="READONLY_SIGNER",e[e.WRITABLE=1]="WRITABLE",e[e.READONLY=0]="READONLY",e))(E||{});function Pt(e){return e>=2}function da(e,t){return "lifetimeConstraint"in t&&t.lifetimeConstraint&&"blockhash"in t.lifetimeConstraint&&t.lifetimeConstraint.blockhash===e.blockhash&&t.lifetimeConstraint.lastValidBlockHeight===e.lastValidBlockHeight?t:Object.freeze({...t,lifetimeConstraint:Object.freeze(e)})}var _a=e=>R({read(t,n){let r=n===0?t:t.slice(n);if(r.length===0)return ["",0];let o=r.findIndex(c=>c!==0);o=o===-1?r.length:o;let i=e[0].repeat(o);if(o===r.length)return [i,t.length];let a=r.slice(o).reduce((c,u)=>c*256n+BigInt(u),0n),s=Aa(a,e);return [i+s,t.length]}});function Aa(e,t){let n=BigInt(t.length),r=[];for(;e>0n;)r.unshift(t[Number(e%n)]),e/=n;return r.join("")}var Ia="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var Ra=()=>_a(Ia);var le;function la(){if(!le){let e=D(C(),{size:f()});le=h([["lookupTableAddress",B()],["writableIndexes",e],["readonlyIndexes",e]]);}return le}var Ee;function Te(){return Ee||(Ee=C()),Ee}function Ea(){return h([["numSignerAccounts",Te()],["numReadonlySignerAccounts",Te()],["numReadonlyNonSignerAccounts",Te()]])}var ge;function Ta(){return ge||(ge=y(h([["programAddressIndex",C()],["accountIndices",D(C(),{size:f()})],["data",Tt(F(),f())]]),e=>{if(e.accountIndices.length&&e.data.byteLength)return e;let{accountIndices:t,data:n,...r}=e;return {...r,...t.length?{accountIndices:t}:null,...n.byteLength?{data:n}:null}})),ge}var ga=0,wt=128;function fe(){return R({maxSize:1,read:(e,t)=>{let n=e[t];if((n&wt)===0)return ["legacy",t];{let r=n^wt;if(r>ga)throw new I(re,{unsupportedVersion:r});return [r,t+1]}}})}function fa(){return [["version",fe()],["header",Ea()],["staticAccounts",D(B(),{size:f()})],["lifetimeToken",p(Ra(),32)],["instructions",D(Ta(),{size:f()})],["addressTableLookups",Sa()]]}function Sa(){return D(la(),{size:f()})}function Ft(){return y(h(fa()),({addressTableLookups:e,...t})=>t.version==="legacy"||!e?.length?t:{...t,addressTableLookups:e})}function Na(e){return Object.freeze({instructions:Object.freeze([]),version:e.version})}var xt="SysvarRecentB1ockHashes11111111111111111111",zt="11111111111111111111111111111111";function Bt(e,t){return {accounts:[{address:e,role:E.WRITABLE},{address:xt,role:E.READONLY},{address:t,role:E.READONLY_SIGNER}],data:new Uint8Array([4,0,0,0]),programAddress:zt}}function Se(e){return e.programAddress===zt&&e.data!=null&&Da(e.data)&&e.accounts?.length===3&&e.accounts[0].address!=null&&e.accounts[0].role===E.WRITABLE&&e.accounts[1].address===xt&&e.accounts[1].role===E.READONLY&&e.accounts[2].address!=null&&Pt(e.accounts[2].role)}function Da(e){return e.byteLength===4&&e[0]===4&&e[1]===0&&e[2]===0&&e[3]===0}function kt(e){return "lifetimeConstraint"in e&&typeof e.lifetimeConstraint.nonce=="string"&&e.instructions[0]!=null&&Se(e.instructions[0])}function Oa(e,t,n){return e.accounts[0].address===t&&e.accounts[2].address===n}function Ca({nonce:e,nonceAccountAddress:t,nonceAuthorityAddress:n},r){let o,i=r.instructions[0];if(i&&Se(i))if(Oa(i,t,n)){if(kt(r)&&r.lifetimeConstraint.nonce===e)return r;o=[i,...r.instructions.slice(1)];}else o=[Object.freeze(Bt(t,n)),...r.instructions.slice(1)];else o=[Object.freeze(Bt(t,n)),...r.instructions];return Object.freeze({...r,instructions:Object.freeze(o),lifetimeConstraint:Object.freeze({nonce:e})})}function ma(e,t){if("feePayer"in t&&e===t.feePayer?.address&&pa(t.feePayer))return t;let n={...t,feePayer:Object.freeze({address:e})};return Object.freeze(n),n}function pa(e){return !!e&&"address"in e&&typeof e.address=="string"&&Object.keys(e).length===1}function ha(e,t){return La([e],t)}function La(e,t){return Object.freeze({...t,instructions:Object.freeze([...t.instructions,...e])})}function Ma(e){let{header:t}=e,n=t.numSignerAccounts-t.numReadonlySignerAccounts,r=e.staticAccounts.length-t.numSignerAccounts-t.numReadonlyNonSignerAccounts,o=[],i=0;for(let a=0;a<n;a++)o.push({address:e.staticAccounts[i],role:E.WRITABLE_SIGNER}),i++;for(let a=0;a<t.numReadonlySignerAccounts;a++)o.push({address:e.staticAccounts[i],role:E.READONLY_SIGNER}),i++;for(let a=0;a<r;a++)o.push({address:e.staticAccounts[i],role:E.WRITABLE}),i++;for(let a=0;a<t.numReadonlyNonSignerAccounts;a++)o.push({address:e.staticAccounts[i],role:E.READONLY}),i++;return o}function ya(e,t){let r=e.map(a=>a.lookupTableAddress).filter(a=>t[a]===void 0);if(r.length>0)throw new I(J,{lookupTableAddresses:r});let o=[],i=[];for(let a of e){let s=t[a.lookupTableAddress],c=a.readonlyIndexes,u=a.writableIndexes,d=Math.max(...c,...u);if(d>=s.length)throw new I(Q,{highestKnownIndex:s.length-1,highestRequestedIndex:d,lookupTableAddress:a.lookupTableAddress});let A=c.map(l=>({address:s[l],addressIndex:l,lookupTableAddress:a.lookupTableAddress,role:E.READONLY}));o.push(...A);let _=u.map(l=>({address:s[l],addressIndex:l,lookupTableAddress:a.lookupTableAddress,role:E.WRITABLE}));i.push(..._);}return [...i,...o]}function Ua(e,t){let n=t[e.programAddressIndex]?.address;if(!n)throw new I(ee,{index:e.programAddressIndex});let r=e.accountIndices?.map(i=>t[i]),{data:o}=e;return Object.freeze({programAddress:n,...r&&r.length?{accounts:Object.freeze(r)}:{},...o&&o.length?{data:o}:{}})}function ba(e,t,n){if(!t||!Se(t))return {blockhash:e,lastValidBlockHeight:n??2n**64n-1n};{let r=t.accounts[0].address;z(r);let o=t.accounts[2].address;return z(o),{nonce:e,nonceAccountAddress:r,nonceAuthorityAddress:o}}}function Vt(e,t){let n=e.staticAccounts[0];if(!n)throw new I(te);let r=Ma(e),o="addressTableLookups"in e&&e.addressTableLookups!==void 0&&e.addressTableLookups.length>0?ya(e.addressTableLookups,t?.addressesByLookupTableAddress??{}):[],i=[...r,...o],a=e.instructions.map(u=>Ua(u,i)),s=a[0],c=ba(e.lifetimeToken,s,t?.lastValidBlockHeight);return vt(Na({version:e.version}),u=>ma(n,u),u=>a.reduce((d,A)=>ha(A,d),u),u=>"blockhash"in c?da(c,u):Ca(c,u))}function Gt(){return y(h([["signatures",D(p(F(),64),{size:f()})],["messageBytes",F()]]),va)}function va(e){let{messageBytes:t,signatures:n}=e,r=bt([fe(),gt(C(),2),D(B(),{size:f()})]),[o,i,a]=r.decode(t),s=a.slice(0,i);if(s.length!==n.length)throw new I(ne,{numRequiredSignatures:i,signaturesLength:n.length,signerAddresses:s});let c={};return s.forEach((u,d)=>{let A=n[d];A.every(_=>_===0)?c[u]=null:c[u]=A;}),{messageBytes:t,signatures:Object.freeze(c)}}async function Ne(e,t,n){if(e.length===0)return {};let r=await ht(t,e,n);return mt(r),Lt(r),r.reduce((o,i)=>({...o,[i.address]:i.data.addresses}),{})}var V="ComputeBudget111111111111111111111111111111";function Ht(e,t){if(e.length!==t.length)return false;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var Wt="MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";var De="Secp256r1SigVerify1111111111111111111111111",Kt=new Set([V,core.MULTI_WALLET_PROGRAM_ADDRESS,De,Wt]),G="2c1LgZfCun82niPCgfg2cTMZmAiahraTjY4KNb1BSU4Z";function $t(){return {[b(G)]:["ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL","11111111111111111111111111111111","TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA","TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb","metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s","Sysvar1nstructions1111111111111111111111111","auth9SigNpDKz4sJJ1DfCTuZrZNSAgh9sFD3rboVmgg","SysvarS1otHashes111111111111111111111111111","3C6AdJiD9qxMqZTmB53b5HC5Yfq2Bb57XAzYDzu4YDcj","BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY","noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV","cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK","GXtd2izAiMJPwMEjfgTRH3d7k9mjn4Jq3JrWFv9gySYy","SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7","35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh","HwXnGK3tPkkVY6P439H2p68AxpeuWXd5PcrAxFpbmfbA","compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq","bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU","oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto","cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y","bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi","oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg","cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B","bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb","oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ","cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf","bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8","oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq","cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc","bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2","oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P","cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6","amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx","ACXg8a7VaqecBWrSbdu73W4Pg9gsqXJ3EXAqkHyhvVXg","r18WwUxfG8kQ69bQPAB2jV6zGNKy3GosFGctjQoV4ti","cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m","2cLqZJrYMuCzKdSZBoWxZ3tXoeCMmMyDiuy6UBaKnbmK","5tgzUZaVtfnnSEBgmBDtJj6PdgYCnA1uaEGEUi3y5Njg","2yaSthpW4U4VZvBhwPfGA7HwC9v9Rfq3SNRZvJkKcrNe"].map(b)}}var Yt=new Map;async function Xt(e,t){let n=Date.now(),r=Yt.get(e);if(r&&n-r.cachedAt<3e5)return r;let o=t?`${t.origin}?origin=${encodeURIComponent(e)}`:`${e}/.well-known/revibase.json`,i=await fetch(o);if(!i.ok)throw new Error(`Failed to fetch .well-known/revibase.json for ${e}`);let a=await i.json();if(!a?.clientJwk)throw new Error(`Invalid .well-known response from ${e}`);let s={...a,cachedAt:n};return Yt.set(e,s),s}function v(e,t){if(e.length!==t.length)return false;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}async function Zt(e,t){if(e)try{let n=await jose.importJWK(core.convertBase64StringToJWK(e.jwk)),r=await jose.compactVerify(e.jws,n);if(!v(r.payload,t))throw new Error("Invalid Payload")}catch{throw new Error("Auth provider signature verification failed")}}async function qt(e,t){try{let n=await jose.importJWK(core.convertBase64StringToJWK(e.jwk)),r=await jose.compactVerify(e.jws,n);if(!v(r.payload,t))throw new Error("Invalid Payload")}catch{throw new Error("Device signature verification failed")}}async function Jt(e,t,n){let r=await Xt(e.clientOrigin,n);try{let o=await jose.importJWK(core.convertBase64StringToJWK(r.clientJwk)),i=await jose.compactVerify(e.jws,o);if(!v(i.payload,t))throw new Error("Invalid Payload")}catch{throw new Error("Client signature verification failed ")}return r}async function Qt(e,t){let{authResponse:n,startRequest:r,slotHash:o,slotNumber:i,device:a,client:s}=e;if(r.data.type!=="transaction")throw new Error("Invalid request type.");let{response:c}=n,u=core.base64URLStringToBuffer(c.clientDataJSON),d=JSON.parse(Ct().decode(u)),{challenge:A}=await core.createTransactionChallenge(r.data.payload,s.clientOrigin,a.jwk,r.rid,o,i),_=core.base64URLStringToBuffer(d.challenge);if(!v(_,A))throw new Error("Invalid challenge");let l=core.getSecp256r1MessageHash(n);if(!v(l,t))throw new Error("Invalid message hash")}async function pe(e,t){let n=sha2_js.sha256(t);return v(e.finalBufferHash,n)}async function O(e,t,n){if(!e)return [];let r=e.find(i=>i.instructionIndex===t-1)?.data;if(!r)return [];let{payload:o}=core.getSecp256r1VerifyInstructionDataDecoder().decode(r);return Promise.all(n.map(async i=>{let a=o[i.verifyArgs.signedMessageIndex],s=sha2_js.sha256(a.message);return {signer:new core.Secp256r1Key(a.publicKey),messageHash:s}}))}function he(e){return e.map(t=>{if(t.memberKey.keyType===core.KeyType.Secp256r1){if(t.messageHash.__option==="None")throw new Error("Message hash cannot be found.");return {signer:new core.Secp256r1Key(core.convertMemberKeyToString(t.memberKey)),messageHash:t.messageHash.value}}else return {signer:b(core.convertMemberKeyToString(t.memberKey))}})}async function m(e,t,n,r,o){if(!r)throw new Error("Transaction Auth Response is missing");if(n.filter(s=>s.signer instanceof core.Secp256r1Key).length!==r.length)throw new Error(`Signer count mismatch. Expected ${n.length} auth responses, got ${r.length}`);let i=await core.getWalletAddressFromSettings(b(t)),a=await Promise.all(n.map(async({signer:s,messageHash:c})=>{if(s instanceof core.Secp256r1Key){if(!c)throw new Error("Hash not found.");let u=r.find(nn=>Ht(core.getSecp256r1MessageHash(nn.authResponse),c));if(!u)throw new Error("Hash mismatch");let{client:d,device:A,authProvider:_,startRequest:l}=u;if(l.data.type!=="transaction")throw new Error("Invalid request type.");if(l.validTill<Date.now())throw new Error("Request has expired.");if(l.data.sendTx&&!_)throw new Error("Auth provider cannot be empty when send tx is true.");let[tn]=await Promise.all([Jt(d,l.data.sendTx?core.createClientAuthorizationStartRequestChallenge(l):c,o),Qt(u,c),Zt(_,c),qt(A,c)]);return {signer:s,walletAddress:i,client:{origin:d.clientOrigin,...tn},device:A.jwk,authProvider:_?.jwk}}return {signer:s,walletAddress:i}}));return {instructions:e,signers:a}}async function L(e,t){let n=e?.data?.data;if(!n||n.__option==="None")throw new Error(t);return core.getSettingsFromIndex(n.value.index)}async function Le(e,t){let n=core.vaultTransactionMessageDeserialize(t);return (await ye(n,e)).instructions}function Me(e,t){if(!e)throw new Error("Invalid instruction accounts.");let n=3+(t.addressTableLookups?.length??0),r=e.slice(n);return t.instructions.map(o=>({accounts:[...o.accountIndices].map(i=>r[i]),data:o.data,programAddress:r[o.programAddressIndex].address}))}async function ye(e,t){let r="addressTableLookups"in e&&e.addressTableLookups!==void 0&&e.addressTableLookups.length>0?e.addressTableLookups.map(i=>i.lookupTableAddress):[],o=r.length>0?await zs(r,t):{};return Vt(e,{addressesByLookupTableAddress:o})}async function zs(e,t){if(e.some(r=>r.toString()===G)){let r=e.filter(o=>o.toString()!==G);return {...$t(),...await Ne(r,t)}}return Ne(e,t)}async function Ue(e,t,n,r,o){if(!e.data)throw new Error("Invalid instruction data.");if(!e.accounts)throw new Error("Invalid instruction accounts");let i=core.getChangeConfigCompressedInstructionDataDecoder().decode(e.data),a=await L(i.settingsMutArgs,"Invalid instruction data. Settings not found."),s=await O(t,n,i.signers.filter(d=>d.__kind==="Secp256r1").map(d=>d.fields[0])),c=3,u=i.signers.filter(d=>d.__kind==="Ed25519").map(d=>({signer:e.accounts[c+d.fields[0]].address}));return m([e],a,s.concat(u),r,o)}async function be(e,t,n,r,o){if(!e.data)throw new Error("Invalid instruction data.");if(!e.accounts)throw new Error("Invalid instruction accounts.");let i=core.getChangeConfigInstructionDataDecoder().decode(e.data),a=e.accounts[0].address.toString(),s=await O(t,n,i.signers.filter(d=>d.__kind==="Secp256r1").map(d=>d.fields[0])),c=5,u=i.signers.filter(d=>d.__kind==="Ed25519").map(d=>({signer:e.accounts[c+d.fields[0]].address}));return m([e],a,s.concat(u),r,o)}async function ve(e,t,n,r,o,i){if(!t.data)throw new Error("Invalid instruction data.");if(!t.accounts)throw new Error("Invalid instruction accounts.");let s=(e===core.MultiWalletInstruction.NativeTransferIntentCompressed?core.getNativeTransferIntentCompressedInstructionDataDecoder():core.getTokenTransferIntentCompressedInstructionDataDecoder()).decode(t.data),c=await L(s.settingsMutArgs,"Invalid instruction data. Settings not found."),u=await O(n,r,s.signers.filter(_=>_.__kind==="Secp256r1").map(_=>_.fields[0])),d=e===core.MultiWalletInstruction.NativeTransferIntentCompressed?6:17,A=s.signers.filter(_=>_.__kind==="Ed25519").map(_=>({signer:t.accounts[d+_.fields[0]].address}));return m([t],c,u.concat(A),o,i)}async function Pe(e,t,n,r,o,i){if(!t.data)throw new Error("Invalid instruction data.");if(!t.accounts)throw new Error("Invalid instruction accounts.");let s=(e===core.MultiWalletInstruction.NativeTransferIntent?core.getNativeTransferIntentInstructionDataDecoder():core.getTokenTransferIntentInstructionDataDecoder()).decode(t.data),c=t.accounts[0].address.toString(),u=await O(n,r,s.signers.filter(_=>_.__kind==="Secp256r1").map(_=>_.fields[0])),d=e===core.MultiWalletInstruction.NativeTransferIntentCompressed?6:18,A=s.signers.filter(_=>_.__kind==="Ed25519").map(_=>({signer:t.accounts[d+_.fields[0]].address}));return m([t],c,u.concat(A),o,i)}function we(e,t){if(!e.data)throw new Error("Invalid instruction data");let n=core.getCreateUserAccountsInstructionDataDecoder().decode(e.data);for(let r of n.createUserArgs){if(r.member.toString()!==t.publicKey)throw new Error(`Member public key mismatch. Expected: ${t.publicKey}, got: ${r.member.toString()}`);if(r.transactionManagerUrl?.__option==="None")throw new Error("Transaction manager URL cannot be empty when creating user accounts");if(r.transactionManagerUrl?.value!==t.url)throw new Error(`Transaction manager URL mismatch. Expected: ${t.url}, got: ${r.transactionManagerUrl?.value}`)}return null}function Be(e,t){if(!e.data)throw new Error("Invalid instruction data");let n=core.getEditTransactionManagerUrlInstructionDataDecoder().decode(e.data),r=core.convertMemberKeyToString(n.userMutArgs.data.member);if(r!==t.publicKey)throw new Error(`Member public key mismatch. Expected: ${t.publicKey}, got: ${r}`);if(n.transactionManagerUrl!==t.url)throw new Error(`Transaction manager URL mismatch. Expected: ${t.url}, got: ${n.transactionManagerUrl}`);return null}async function Fe(e,t,n,r,o,i,a,s,c){if(!t.accounts)throw new Error("Invalid instruction accounts");if(!t.data)throw new Error("Invalid instruction data");Qs(t,r);let u=n===core.MultiWalletInstruction.TransactionBufferCreate||n===core.MultiWalletInstruction.TransactionBufferCreateCompressed,d=n===core.MultiWalletInstruction.TransactionBufferCreateCompressed||n===core.MultiWalletInstruction.TransactionExecuteSyncCompressed,A;return u?A=await ec(e,t,d,s):A=await rc(t,d,a,o),m(A.instructionsToVerify,A.settingsAddress,A.signers,i,c)}function Qs(e,t){let n=e.accounts?.find(r=>r.address.toString()===t.publicKey);if(n&&n.role!==E.READONLY_SIGNER)throw new Error("Transaction Manager should be readonly signer.")}async function ec(e,t,n,r){if(!r)throw new Error("Missing transaction message bytes");if(!t.data||!t.accounts)throw new Error("Invalid instruction");let o=U().encode(r);return n?tc(e,t,o):nc(e,t,o)}async function tc(e,t,n){let r=core.getTransactionBufferCreateCompressedInstructionDataDecoder().decode(t.data),o=await L(r.settingsReadonlyArgs,"Settings account is required for compressed transaction buffer create"),i=he(r.args.expectedSigners);if(!await pe(r.args,n))throw new Error("Hash mismatch.");let s=await Le(e,n);return {settingsAddress:o,signers:i,instructionsToVerify:s}}async function nc(e,t,n){let r=core.getTransactionBufferCreateInstructionDataDecoder().decode(t.data),o=t.accounts[0].address.toString(),i=he(r.args.expectedSigners);if(!await pe(r.args,n))throw new Error("Hash mismatch.");let s=await Le(e,n);return {settingsAddress:o,signers:i,instructionsToVerify:s}}async function rc(e,t,n,r){if(!e.data||!e.accounts)throw new Error("Invalid instruction");return t?oc(e,n,r):ic(e,n,r)}async function oc(e,t,n){if(!e.accounts)throw new Error("Invalid instruction accounts.");let r=core.getTransactionExecuteSyncCompressedInstructionDataDecoder().decode(e.data),o=await L(r.settingsMutArgs,"Settings account is required for compressed transaction execute"),i=await O(t,n,r.signers.filter(u=>u.__kind==="Secp256r1").map(u=>u.fields[0])),a=3,s=r.signers.filter(u=>u.__kind==="Ed25519").map(u=>({signer:e.accounts[a+u.fields[0]].address})),c=Me(e.accounts,r.transactionMessage);return {settingsAddress:o,signers:i.concat(s),instructionsToVerify:c}}async function ic(e,t,n){if(!e.accounts)throw new Error("Invalid instruction accounts.");let r=core.getTransactionExecuteSyncInstructionDataDecoder().decode(e.data),o=e.accounts[0].address.toString(),i=await O(t,n,r.signers.filter(u=>u.__kind==="Secp256r1").map(u=>u.fields[0])),a=3,s=r.signers.filter(u=>u.__kind==="Ed25519").map(u=>({signer:e.accounts[a+u.fields[0]].address})),c=Me(e.accounts,r.transactionMessage);return {settingsAddress:o,signers:i.concat(s),instructionsToVerify:c}}async function cc(e,t,n,r){let{transaction:o,transactionMessageBytes:i,authResponses:a}=n,{messageBytes:s}=Gt().decode(U().encode(o)),c=Ft().decode(s),{instructions:u}=await ye(c,e),d=uc(u),A=(await Promise.all(u.map((_,l)=>dc(e,_,t,l,a,d,i,r)))).filter(_=>_!==null);return {transactionMessage:s,verificationResults:A}}function uc(e){return e.map((t,n)=>({instruction:t,instructionIndex:n})).filter(({instruction:t})=>t.programAddress.toString()===De).map(({instructionIndex:t,instruction:n})=>({instructionIndex:t,data:n.data}))}async function dc(e,t,n,r,o,i,a,s){let c=t.programAddress.toString();if(!Kt.has(c))throw new Error("Instruction rejected by Transaction Manager.");if(c!==core.MULTI_WALLET_PROGRAM_ADDRESS.toString())return null;if(!t.data)throw new Error("Invalid instruction data.");let u=core.identifyMultiWalletInstruction({data:t.data});return _c(e,t,u,n,r,o,i,a,s)}async function _c(e,t,n,r,o,i,a,s,c){switch(n){case core.MultiWalletInstruction.DecompressSettingsAccount:case core.MultiWalletInstruction.TransactionBufferClose:case core.MultiWalletInstruction.TransactionBufferCloseCompressed:return null;case core.MultiWalletInstruction.ChangeConfig:return be(t,a,o,i,c);case core.MultiWalletInstruction.ChangeConfigCompressed:return Ue(t,a,o,i,c);case core.MultiWalletInstruction.CreateUserAccounts:return we(t,r);case core.MultiWalletInstruction.EditTransactionManagerUrl:return Be(t,r);case core.MultiWalletInstruction.NativeTransferIntent:case core.MultiWalletInstruction.TokenTransferIntent:return Pe(n,t,a,o,i,c);case core.MultiWalletInstruction.NativeTransferIntentCompressed:case core.MultiWalletInstruction.TokenTransferIntentCompressed:return ve(n,t,a,o,i,c);case core.MultiWalletInstruction.TransactionBufferCreate:case core.MultiWalletInstruction.TransactionBufferCreateCompressed:case core.MultiWalletInstruction.TransactionExecuteSync:case core.MultiWalletInstruction.TransactionExecuteSyncCompressed:return Fe(e,t,n,r,o,i,a,s,c);default:throw new Error("Instruction rejected by transaction manager.")}}/*! Bundled license information:
|
|
5
|
+
For a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20.`,[Gn]:"No signature verification implementation could be found.",[Hn]:"No key generation implementation could be found.",[Wn]:"No signing implementation could be found.",[Kn]:"No key export implementation could be found.",[An]:"Timestamp value must be in the range [-(2n ** 63n), (2n ** 63n) - 1]. `$value` given",[xo]:"Transaction processing left an account with an outstanding borrowed reference",[Oo]:"Account in use",[Co]:"Account loaded twice",[mo]:"Attempt to debit an account but found no record of a prior credit.",[Ko]:"Transaction loads an address table account that doesn't exist",[Mo]:"This transaction has already been processed",[yo]:"Blockhash not found",[Uo]:"Loader call chain is too deep",[Fo]:"Transactions are currently disabled due to cluster maintenance",[Jo]:"Transaction contains a duplicate instruction ($index) that is not allowed",[ho]:"Insufficient funds for fee",[Qo]:"Transaction results in an account ($accountIndex) with insufficient funds for rent",[Lo]:"This account may not be used to pay transaction fees",[vo]:"Transaction contains an invalid account reference",[Yo]:"Transaction loads an address table account with invalid data",[Xo]:"Transaction address table lookup uses an invalid index",[$o]:"Transaction loads an address table account with an invalid owner",[ti]:"LoadedAccountsDataSizeLimit set for transaction must be greater than 0.",[wo]:"This program may not be used for executing instructions",[jo]:"Transaction leaves an account with a lower balance than rent-exempt minimum",[Vo]:"Transaction loads a writable account that cannot be written",[ei]:"Transaction exceeded max loaded accounts data size cap",[bo]:"Transaction requires a fee but has no signature present",[po]:"Attempt to load a program that does not exist",[ri]:"Execution of the program referenced by account at index $accountIndex is temporarily restricted.",[ni]:"ResanitizationNeeded",[Bo]:"Transaction failed to sanitize accounts offsets correctly",[Po]:"Transaction did not pass signature verification",[Wo]:"Transaction locked too many accounts",[oi]:"Sum of account balances before and after transaction do not match",[Do]:"The transaction failed with the error `$errorName`",[ko]:"Transaction version is unsupported",[Ho]:"Transaction would exceed account data limit within the block",[qo]:"Transaction would exceed total account data limit",[Go]:"Transaction would exceed max account limit within the block",[zo]:"Transaction would exceed max Block Cost Limit",[Zo]:"Transaction would exceed max Vote Cost Limit",[tt]:"Attempted to sign a transaction with an address that is not a signer for it",[Eo]:"Transaction is missing an address at index: $index.",[nt]:"Transaction has no expected signers therefore it cannot be encoded",[rt]:"Transaction size $transactionSize exceeds limit of $transactionSizeLimit bytes",[Z]:"Transaction does not have a blockhash lifetime",[q]:"Transaction is not a durable nonce transaction",[J]:"Contents of these address lookup tables unknown: $lookupTableAddresses",[Q]:"Lookup of address at index $highestRequestedIndex failed for lookup table `$lookupTableAddress`. Highest known index is $highestKnownIndex. The lookup table may have been extended since its contents were retrieved",[te]:"No fee payer set in CompiledTransaction",[ee]:"Could not find program address at index $index",[So]:"Failed to estimate the compute unit consumption for this transaction message. This is likely because simulating the transaction failed. Inspect the `cause` property of this error to learn more",[No]:"Transaction failed when it was simulated in order to estimate the compute unit consumption. The compute unit estimate provided is for a transaction that failed when simulated and may not be representative of the compute units this transaction would consume if successful. Inspect the `cause` property of this error to learn more",[To]:"Transaction is missing a fee payer.",[et]:"Could not determine this transaction's signature. Make sure that the transaction has been signed by its fee payer.",[fo]:"Transaction first instruction is not advance nonce account instruction.",[go]:"Transaction with no instructions cannot be durable nonce transaction.",[Ze]:"This transaction includes an address (`$programAddress`) which is both invoked and set as the fee payer. Program addresses may not pay fees",[qe]:"This transaction includes an address (`$programAddress`) which is both invoked and marked writable. Program addresses may not be writable",[ne]:"The transaction message expected the transaction to have $numRequiredSignatures signatures, got $signaturesLength.",[Qe]:"Transaction is missing signatures for addresses: $addresses.",[Je]:"Transaction version must be in the range [0, 127]. `$actualVersion` given",[re]:"This version of Kit does not support decoding transactions with version $unsupportedVersion. The current max supported version is 0.",[ot]:"The transaction has a durable nonce lifetime (with nonce `$nonce`), but the nonce account address is in a lookup table. The lifetime constraint cannot be constructed without fetching the lookup tables for the transaction."},S="i",g="t";function zi(e,t={}){let n=xi[e];if(n.length===0)return "";let r;function o(a){if(r[g]===2){let s=n.slice(r[S]+1,a);i.push(s in t?`${t[s]}`:`$${s}`);}else r[g]===1&&i.push(n.slice(r[S],a));}let i=[];return n.split("").forEach((a,s)=>{if(s===0){r={[S]:0,[g]:n[0]==="\\"?0:n[0]==="$"?2:1};return}let c;switch(r[g]){case 0:c={[S]:s,[g]:1};break;case 1:a==="\\"?c={[S]:s,[g]:0}:a==="$"&&(c={[S]:s,[g]:2});break;case 2:a==="\\"?c={[S]:s,[g]:0}:a==="$"?c={[S]:s,[g]:2}:a.match(/\w/)||(c={[S]:s,[g]:1});break}c&&(r!==c&&o(s),r=c);}),o(),i.join("")}function ki(e,t={}){if(process.env.NODE_ENV!=="production")return zi(e,t);{let n=`Solana error #${e}; Decode this error by running \`npx @solana/errors decode -- ${e}`;return Object.keys(t).length&&(n+=` '${Fi(t)}'`),`${n}\``}}var I=class extends Error{cause=this.cause;context;constructor(...[e,t]){let n,r;t&&Object.entries(Object.getOwnPropertyDescriptors(t)).forEach(([i,a])=>{i==="cause"?r={cause:a.value}:(n===void 0&&(n={}),Object.defineProperty(n,i,a));});let o=ki(e,n);super(o,r),this.context=n===void 0?{}:n,this.context.__code=e,this.name="SolanaError";}};function Vi(e,t){if(e.length>=t)return e;let n=new Uint8Array(t).fill(0);return n.set(e),n}var Gi=(e,t)=>Vi(e.length<=t?e:e.slice(0,t),t);function lt(e,t){return "fixedSize"in t?t.fixedSize:t.getSizeFromValue(e)}function M(e){return Object.freeze({...e,encode:t=>{let n=new Uint8Array(lt(t,e));return e.write(t,n,0),n}})}function R(e){return Object.freeze({...e,decode:(t,n=0)=>e.read(t,n)[0]})}function N(e){return "fixedSize"in e&&typeof e.fixedSize=="number"}function Et(e,t,n=0){if(t.length-n<=0)throw new I(oe,{codecDescription:e})}function P(e,t,n,r=0){let o=n.length-r;if(o<t)throw new I(ie,{bytesLength:o,codecDescription:e,expected:t})}function Rt(e,t,n){if(t<0||t>n)throw new I(se,{bytesLength:n,codecDescription:e,offset:t})}function Tt(e,t){let n=(a,s)=>{let[c,u]=t.read(a,s),d=Number(c);return s=u,(s>0||a.length>d)&&(a=a.slice(s,s+d)),P("addDecoderSizePrefix",d,a),[e.decode(a),s+d]};if(N(t)&&N(e))return R({...e,fixedSize:t.fixedSize+e.fixedSize,read:n});let r=N(t)?t.fixedSize:t.maxSize??null,o=N(e)?e.fixedSize:e.maxSize??null,i=r!==null&&o!==null?r+o:null;return R({...e,...i!==null?{maxSize:i}:{},read:n})}function p(e,t){return R({fixedSize:t,read:(n,r)=>{P("fixCodecSize",t,n,r),(r>0||n.length>t)&&(n=n.slice(r,r+t)),N(e)&&(n=Gi(n,e.fixedSize));let[o]=e.read(n,0);return [o,r+t]}})}function Hi(e,t){return R({...e,read:(n,r)=>{let o=u=>Wi(u,n.length),i=t.preOffset?t.preOffset({bytes:n,preOffset:r,wrapBytes:o}):r;Rt("offsetDecoder",i,n.length);let[a,s]=e.read(n,i),c=t.postOffset?t.postOffset({bytes:n,newPreOffset:i,postOffset:s,preOffset:r,wrapBytes:o}):s;return Rt("offsetDecoder",c,n.length),[a,c]}})}function Wi(e,t){return t===0?0:(e%t+t)%t}function Ki(e,t){if(N(e)){let n=t(e.fixedSize);if(n<0)throw new I(ae,{bytesLength:n,codecDescription:"resizeDecoder"});return R({...e,fixedSize:n})}return e}function gt(e,t){return Hi(Ki(e,n=>n+t),{postOffset:({postOffset:n})=>n+t})}function y(e,t){return R({...e,read:(n,r)=>{let[o,i]=e.read(n,r);return [t(o,n,r),i]}})}function Nt(e,t,n=t){if(!t.match(new RegExp(`^[${e}]*$`)))throw new I(x,{alphabet:e,base:e.length,value:n})}var $i=e=>M({getSizeFromValue:t=>{let[n,r]=ft(t,e[0]);if(!r)return t.length;let o=St(r,e);return n.length+Math.ceil(o.toString(16).length/2)},write(t,n,r){if(Nt(e,t),t==="")return r;let[o,i]=ft(t,e[0]);if(!i)return n.set(new Uint8Array(o.length).fill(0),r),r+o.length;let a=St(i,e),s=[];for(;a>0n;)s.unshift(Number(a%256n)),a/=256n;let c=[...Array(o.length).fill(0),...s];return n.set(c,r),r+c.length}}),Yi=e=>R({read(t,n){let r=n===0?t:t.slice(n);if(r.length===0)return ["",0];let o=r.findIndex(c=>c!==0);o=o===-1?r.length:o;let i=e[0].repeat(o);if(o===r.length)return [i,t.length];let a=r.slice(o).reduce((c,u)=>c*256n+BigInt(u),0n),s=Xi(a,e);return [i+s,t.length]}});function ft(e,t){let[n,r]=e.split(new RegExp(`((?!${t}).*)`));return [n,r]}function St(e,t){let n=BigInt(t.length),r=0n;for(let o of e)r*=n,r+=BigInt(t.indexOf(o));return r}function Xi(e,t){let n=BigInt(t.length),r=[];for(;e>0n;)r.unshift(t[Number(e%n)]),e/=n;return r.join("")}var Dt="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ce=()=>$i(Dt),Ot=()=>Yi(Dt);var ji="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",U=()=>M({getSizeFromValue:e=>Buffer.from(e,"base64").length,write(e,t,n){Nt(ji,e.replace(/=/g,""));let r=Buffer.from(e,"base64");return t.set(r,n),r.length+n}});var Zi=e=>e.replace(/\u0000/g,"");var qi=globalThis.TextDecoder;var Ct=()=>{let e;return R({read(t,n){let r=(e||=new qi).decode(t.slice(n));return [Zi(r),t.length]}})};function Ji(e){return !("exists"in e)||"exists"in e&&e.exists}function mt(e){let t=e.filter(n=>Ji(n)&&n.data instanceof Uint8Array);if(t.length>0){let n=t.map(r=>r.address);throw new I(j,{addresses:n})}}function Qi(e,t){if(!t)return Object.freeze({address:e,exists:false});let n=U().encode(t.data[0]);return Object.freeze({...pt(t),address:e,data:n,exists:true})}function ea(e,t){if(!t)return Object.freeze({address:e,exists:false});let n=t.data.parsed.info;return Object.freeze({...pt(t),address:e,data:n,exists:true})}function pt(e){return Object.freeze({executable:e.executable,lamports:e.lamports,programAddress:e.owner,space:e.space})}async function ht(e,t,n={}){let{abortSignal:r,...o}=n;return (await e.getMultipleAccounts(t,{...o,encoding:"jsonParsed"}).send({abortSignal:r})).value.map((a,s)=>a&&typeof a=="object"&&"parsed"in a.data?ea(t[s],a):Qi(t[s],a))}function Lt(e){let t=e.filter(n=>!n.exists);if(t.length>0){let n=t.map(r=>r.address);throw new I(X,{addresses:n})}}var ue,de;function ta(){return ue||(ue=ce()),ue}function na(){return de||(de=Ot()),de}function z(e){if(e.length<32||e.length>44)throw new I(Y,{actualLength:e.length});let r=ta().encode(e).byteLength;if(r!==32)throw new I($,{actualLength:r})}function b(e){return z(e),e}function B(){return p(na(),32)}function ra(e){return e?.endian!==1}function Mt(e){return R({fixedSize:e.size,read(t,n=0){Et(e.name,t,n),P(e.name,e.size,t,n);let r=new DataView(oa(t,n,e.size));return [e.get(r,ra(e.config)),n+e.size]}})}function oa(e,t,n){let r=e.byteOffset+(t??0),o=n??e.byteLength;return e.buffer.slice(r,r+o)}var f=()=>R({maxSize:3,read:(e,t)=>{let n=0,r=0;for(;++r;){let o=r-1,i=e[t+o],a=127&i;if(n|=a<<o*7,(i&128)===0)break}return [n,t+r]}});var yt=(e={})=>Mt({config:e,get:(t,n)=>t.getUint32(0,n),name:"u32",size:4});var C=()=>Mt({get:e=>e.getUint8(0),name:"u8",size:1});function k(e){return e.reduce((t,n)=>t===null||n===null?null:t+n,0)}function Ie(e){return N(e)?e.fixedSize:null}function Re(e){return N(e)?e.fixedSize:e.maxSize??null}function D(e,t={}){let n=t.size??yt(),r=Ie(e),o=Ut(n,r),i=Ut(n,Re(e))??void 0;return R({...o!==null?{fixedSize:o}:{maxSize:i},read:(a,s)=>{let c=[];if(typeof n=="object"&&a.slice(s).length===0)return [c,s];if(n==="remainder"){for(;s<a.length;){let[A,_]=e.read(a,s);s=_,c.push(A);}return [c,s]}let[u,d]=typeof n=="number"?[n,s]:n.read(a,s);s=d;for(let A=0;A<u;A+=1){let[_,l]=e.read(a,s);s=l,c.push(_);}return [c,s]}})}function Ut(e,t){return typeof e!="number"?null:e===0?0:t===null?null:t*e}function F(){return R({read:(e,t)=>{let n=e.slice(t);return [n,t+n.length]}})}function bt(e){let t=k(e.map(Ie)),n=k(e.map(Re))??void 0;return R({...t===null?{maxSize:n}:{fixedSize:t},read:(r,o)=>{let i=[];return e.forEach(a=>{let[s,c]=a.read(r,o);i.push(s),o=c;}),[i,o]}})}function h(e){let t=e.map(([,o])=>o),n=k(t.map(Ie)),r=k(t.map(Re))??void 0;return R({...n===null?{maxSize:r}:{fixedSize:n},read:(o,i)=>{let a={};return e.forEach(([s,c])=>{let[u,d]=c.read(o,i);i=d,a[s]=u;}),[a,i]}})}function vt(e,...t){return t.reduce((n,r)=>r(n),e)}var E=(e=>(e[e.WRITABLE_SIGNER=3]="WRITABLE_SIGNER",e[e.READONLY_SIGNER=2]="READONLY_SIGNER",e[e.WRITABLE=1]="WRITABLE",e[e.READONLY=0]="READONLY",e))(E||{});function Pt(e){return e>=2}function da(e,t){return "lifetimeConstraint"in t&&t.lifetimeConstraint&&"blockhash"in t.lifetimeConstraint&&t.lifetimeConstraint.blockhash===e.blockhash&&t.lifetimeConstraint.lastValidBlockHeight===e.lastValidBlockHeight?t:Object.freeze({...t,lifetimeConstraint:Object.freeze(e)})}var _a=e=>R({read(t,n){let r=n===0?t:t.slice(n);if(r.length===0)return ["",0];let o=r.findIndex(c=>c!==0);o=o===-1?r.length:o;let i=e[0].repeat(o);if(o===r.length)return [i,t.length];let a=r.slice(o).reduce((c,u)=>c*256n+BigInt(u),0n),s=Aa(a,e);return [i+s,t.length]}});function Aa(e,t){let n=BigInt(t.length),r=[];for(;e>0n;)r.unshift(t[Number(e%n)]),e/=n;return r.join("")}var Ia="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";var Ra=()=>_a(Ia);var le;function la(){if(!le){let e=D(C(),{size:f()});le=h([["lookupTableAddress",B()],["writableIndexes",e],["readonlyIndexes",e]]);}return le}var Ee;function Te(){return Ee||(Ee=C()),Ee}function Ea(){return h([["numSignerAccounts",Te()],["numReadonlySignerAccounts",Te()],["numReadonlyNonSignerAccounts",Te()]])}var ge;function Ta(){return ge||(ge=y(h([["programAddressIndex",C()],["accountIndices",D(C(),{size:f()})],["data",Tt(F(),f())]]),e=>{if(e.accountIndices.length&&e.data.byteLength)return e;let{accountIndices:t,data:n,...r}=e;return {...r,...t.length?{accountIndices:t}:null,...n.byteLength?{data:n}:null}})),ge}var ga=0,wt=128;function fe(){return R({maxSize:1,read:(e,t)=>{let n=e[t];if((n&wt)===0)return ["legacy",t];{let r=n^wt;if(r>ga)throw new I(re,{unsupportedVersion:r});return [r,t+1]}}})}function fa(){return [["version",fe()],["header",Ea()],["staticAccounts",D(B(),{size:f()})],["lifetimeToken",p(Ra(),32)],["instructions",D(Ta(),{size:f()})],["addressTableLookups",Sa()]]}function Sa(){return D(la(),{size:f()})}function Ft(){return y(h(fa()),({addressTableLookups:e,...t})=>t.version==="legacy"||!e?.length?t:{...t,addressTableLookups:e})}function Na(e){return Object.freeze({instructions:Object.freeze([]),version:e.version})}var xt="SysvarRecentB1ockHashes11111111111111111111",zt="11111111111111111111111111111111";function Bt(e,t){return {accounts:[{address:e,role:E.WRITABLE},{address:xt,role:E.READONLY},{address:t,role:E.READONLY_SIGNER}],data:new Uint8Array([4,0,0,0]),programAddress:zt}}function Se(e){return e.programAddress===zt&&e.data!=null&&Da(e.data)&&e.accounts?.length===3&&e.accounts[0].address!=null&&e.accounts[0].role===E.WRITABLE&&e.accounts[1].address===xt&&e.accounts[1].role===E.READONLY&&e.accounts[2].address!=null&&Pt(e.accounts[2].role)}function Da(e){return e.byteLength===4&&e[0]===4&&e[1]===0&&e[2]===0&&e[3]===0}function kt(e){return "lifetimeConstraint"in e&&typeof e.lifetimeConstraint.nonce=="string"&&e.instructions[0]!=null&&Se(e.instructions[0])}function Oa(e,t,n){return e.accounts[0].address===t&&e.accounts[2].address===n}function Ca({nonce:e,nonceAccountAddress:t,nonceAuthorityAddress:n},r){let o,i=r.instructions[0];if(i&&Se(i))if(Oa(i,t,n)){if(kt(r)&&r.lifetimeConstraint.nonce===e)return r;o=[i,...r.instructions.slice(1)];}else o=[Object.freeze(Bt(t,n)),...r.instructions.slice(1)];else o=[Object.freeze(Bt(t,n)),...r.instructions];return Object.freeze({...r,instructions:Object.freeze(o),lifetimeConstraint:Object.freeze({nonce:e})})}function ma(e,t){if("feePayer"in t&&e===t.feePayer?.address&&pa(t.feePayer))return t;let n={...t,feePayer:Object.freeze({address:e})};return Object.freeze(n),n}function pa(e){return !!e&&"address"in e&&typeof e.address=="string"&&Object.keys(e).length===1}function ha(e,t){return La([e],t)}function La(e,t){return Object.freeze({...t,instructions:Object.freeze([...t.instructions,...e])})}function Ma(e){let{header:t}=e,n=t.numSignerAccounts-t.numReadonlySignerAccounts,r=e.staticAccounts.length-t.numSignerAccounts-t.numReadonlyNonSignerAccounts,o=[],i=0;for(let a=0;a<n;a++)o.push({address:e.staticAccounts[i],role:E.WRITABLE_SIGNER}),i++;for(let a=0;a<t.numReadonlySignerAccounts;a++)o.push({address:e.staticAccounts[i],role:E.READONLY_SIGNER}),i++;for(let a=0;a<r;a++)o.push({address:e.staticAccounts[i],role:E.WRITABLE}),i++;for(let a=0;a<t.numReadonlyNonSignerAccounts;a++)o.push({address:e.staticAccounts[i],role:E.READONLY}),i++;return o}function ya(e,t){let r=e.map(a=>a.lookupTableAddress).filter(a=>t[a]===void 0);if(r.length>0)throw new I(J,{lookupTableAddresses:r});let o=[],i=[];for(let a of e){let s=t[a.lookupTableAddress],c=a.readonlyIndexes,u=a.writableIndexes,d=Math.max(...c,...u);if(d>=s.length)throw new I(Q,{highestKnownIndex:s.length-1,highestRequestedIndex:d,lookupTableAddress:a.lookupTableAddress});let A=c.map(l=>({address:s[l],addressIndex:l,lookupTableAddress:a.lookupTableAddress,role:E.READONLY}));o.push(...A);let _=u.map(l=>({address:s[l],addressIndex:l,lookupTableAddress:a.lookupTableAddress,role:E.WRITABLE}));i.push(..._);}return [...i,...o]}function Ua(e,t){let n=t[e.programAddressIndex]?.address;if(!n)throw new I(ee,{index:e.programAddressIndex});let r=e.accountIndices?.map(i=>t[i]),{data:o}=e;return Object.freeze({programAddress:n,...r&&r.length?{accounts:Object.freeze(r)}:{},...o&&o.length?{data:o}:{}})}function ba(e,t,n){if(!t||!Se(t))return {blockhash:e,lastValidBlockHeight:n??2n**64n-1n};{let r=t.accounts[0].address;z(r);let o=t.accounts[2].address;return z(o),{nonce:e,nonceAccountAddress:r,nonceAuthorityAddress:o}}}function Vt(e,t){let n=e.staticAccounts[0];if(!n)throw new I(te);let r=Ma(e),o="addressTableLookups"in e&&e.addressTableLookups!==void 0&&e.addressTableLookups.length>0?ya(e.addressTableLookups,t?.addressesByLookupTableAddress??{}):[],i=[...r,...o],a=e.instructions.map(u=>Ua(u,i)),s=a[0],c=ba(e.lifetimeToken,s,t?.lastValidBlockHeight);return vt(Na({version:e.version}),u=>ma(n,u),u=>a.reduce((d,A)=>ha(A,d),u),u=>"blockhash"in c?da(c,u):Ca(c,u))}function Gt(){return y(h([["signatures",D(p(F(),64),{size:f()})],["messageBytes",F()]]),va)}function va(e){let{messageBytes:t,signatures:n}=e,r=bt([fe(),gt(C(),2),D(B(),{size:f()})]),[o,i,a]=r.decode(t),s=a.slice(0,i);if(s.length!==n.length)throw new I(ne,{numRequiredSignatures:i,signaturesLength:n.length,signerAddresses:s});let c={};return s.forEach((u,d)=>{let A=n[d];A.every(_=>_===0)?c[u]=null:c[u]=A;}),{messageBytes:t,signatures:Object.freeze(c)}}async function Ne(e,t,n){if(e.length===0)return {};let r=await ht(t,e,n);return mt(r),Lt(r),r.reduce((o,i)=>({...o,[i.address]:i.data.addresses}),{})}var V="ComputeBudget111111111111111111111111111111";function Ht(e,t){if(e.length!==t.length)return false;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var Wt="MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr";var De="Secp256r1SigVerify1111111111111111111111111",Kt=new Set([V,core.MULTI_WALLET_PROGRAM_ADDRESS,De,Wt]),G="2c1LgZfCun82niPCgfg2cTMZmAiahraTjY4KNb1BSU4Z";function $t(){return {[b(G)]:["ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL","11111111111111111111111111111111","TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA","TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb","metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s","Sysvar1nstructions1111111111111111111111111","auth9SigNpDKz4sJJ1DfCTuZrZNSAgh9sFD3rboVmgg","SysvarS1otHashes111111111111111111111111111","3C6AdJiD9qxMqZTmB53b5HC5Yfq2Bb57XAzYDzu4YDcj","BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY","noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV","cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK","GXtd2izAiMJPwMEjfgTRH3d7k9mjn4Jq3JrWFv9gySYy","SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7","35hkDgaAKwMCaxRz2ocSZ6NaUrtKkyNqU6c4RV3tYJRh","HwXnGK3tPkkVY6P439H2p68AxpeuWXd5PcrAxFpbmfbA","compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq","bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU","oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto","cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y","bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi","oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg","cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B","bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb","oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ","cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf","bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8","oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq","cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc","bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2","oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P","cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6","amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx","ACXg8a7VaqecBWrSbdu73W4Pg9gsqXJ3EXAqkHyhvVXg","r18WwUxfG8kQ69bQPAB2jV6zGNKy3GosFGctjQoV4ti","cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m","2cLqZJrYMuCzKdSZBoWxZ3tXoeCMmMyDiuy6UBaKnbmK","5tgzUZaVtfnnSEBgmBDtJj6PdgYCnA1uaEGEUi3y5Njg","2yaSthpW4U4VZvBhwPfGA7HwC9v9Rfq3SNRZvJkKcrNe"].map(b)}}var Yt=new Map;async function Xt(e,t){let n=Date.now(),r=Yt.get(e);if(r&&n-r.cachedAt<3e5)return r;let o=t?`${t.origin}?origin=${encodeURIComponent(e)}`:`${e}/.well-known/revibase.json`,i=await fetch(o);if(!i.ok)throw new Error(`Failed to fetch .well-known/revibase.json for ${e}`);let a=await i.json();if(!a?.clientJwk)throw new Error(`Invalid .well-known response from ${e}`);let s={...a,cachedAt:n};return Yt.set(e,s),s}function v(e,t){if(e.length!==t.length)return false;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}async function Zt(e,t){if(e)try{let n=await jose.importJWK(core.convertBase64StringToJWK(e.jwk)),r=await jose.compactVerify(e.jws,n);if(!v(r.payload,t))throw new Error("Invalid Payload")}catch{throw new Error("Auth provider signature verification failed")}}async function qt(e,t){try{let n=await jose.importJWK(core.convertBase64StringToJWK(e.jwk)),r=await jose.compactVerify(e.jws,n);if(!v(r.payload,t))throw new Error("Invalid Payload")}catch{throw new Error("Device signature verification failed")}}async function Jt(e,t,n){let r=await Xt(e.clientOrigin,n);try{let o=await jose.importJWK(core.convertBase64StringToJWK(r.clientJwk)),i=await jose.compactVerify(e.jws,o);if(!v(i.payload,t))throw new Error("Invalid Payload")}catch{throw new Error("Client signature verification failed ")}return r}async function Qt(e,t){let{authResponse:n,startRequest:r,slotHash:o,slotNumber:i,device:a,client:s}=e;if(r.data.type!=="transaction")throw new Error("Invalid request type.");let{response:c}=n,u=core.base64URLStringToBuffer(c.clientDataJSON),d=JSON.parse(Ct().decode(u)),{challenge:A}=await core.createTransactionChallenge(r.data.payload,s.clientOrigin,a.jwk,r.rid,o,i),_=core.base64URLStringToBuffer(d.challenge);if(!v(_,A))throw new Error("Invalid challenge");let l=core.getSecp256r1MessageHash(n);if(!v(l,t))throw new Error("Invalid message hash")}async function pe(e,t){let n=sha2_js.sha256(t);return v(e.finalBufferHash,n)}async function O(e,t,n){if(!e)return [];let r=e.find(i=>i.instructionIndex===t-1)?.data;if(!r)return [];let{payload:o}=core.getSecp256r1VerifyInstructionDataDecoder().decode(r);return Promise.all(n.map(async i=>{let a=o[i.verifyArgs.signedMessageIndex],s=sha2_js.sha256(a.message);return {signer:new core.Secp256r1Key(a.publicKey),messageHash:s}}))}function he(e){return e.map(t=>{if(t.memberKey.keyType===core.KeyType.Secp256r1){if(t.messageHash.__option==="None")throw new Error("Message hash cannot be found.");return {signer:new core.Secp256r1Key(core.convertMemberKeyToString(t.memberKey)),messageHash:t.messageHash.value}}else return {signer:b(core.convertMemberKeyToString(t.memberKey))}})}async function m(e,t,n,r,o){if(!r)throw new Error("Transaction Auth Response is missing");if(n.filter(s=>s.signer instanceof core.Secp256r1Key).length!==r.length)throw new Error(`Signer count mismatch. Expected ${n.length} auth responses, got ${r.length}`);let i=await core.getWalletAddressFromSettings(b(t)),a=await Promise.all(n.map(async({signer:s,messageHash:c})=>{if(s instanceof core.Secp256r1Key){if(!c)throw new Error("Hash not found.");let u=r.find(nn=>Ht(core.getSecp256r1MessageHash(nn.authResponse),c));if(!u)throw new Error("Hash mismatch");let{client:d,device:A,authProvider:_,startRequest:l}=u;if(l.data.type!=="transaction")throw new Error("Invalid request type.");if(l.validTill<Date.now())throw new Error("Request has expired.");if(l.data.sendTx&&!_)throw new Error("Auth provider cannot be empty when send tx is true.");let[tn]=await Promise.all([Jt(d,l.data.sendTx?core.createClientAuthorizationStartRequestChallenge(l):c,o),Qt(u,c),Zt(_,c),qt(A,c)]);return {signer:s,walletAddress:i,client:{origin:d.clientOrigin,...tn},device:A.jwk,authProvider:_?.jwk,startRequest:l}}return {signer:s,walletAddress:i}}));return {instructions:e,signers:a}}async function L(e,t){let n=e?.data?.data;if(!n||n.__option==="None")throw new Error(t);return core.getSettingsFromIndex(n.value.index)}async function Le(e,t){let n=core.vaultTransactionMessageDeserialize(t);return (await ye(n,e)).instructions}function Me(e,t){if(!e)throw new Error("Invalid instruction accounts.");let n=3+(t.addressTableLookups?.length??0),r=e.slice(n);return t.instructions.map(o=>({accounts:[...o.accountIndices].map(i=>r[i]),data:o.data,programAddress:r[o.programAddressIndex].address}))}async function ye(e,t){let r="addressTableLookups"in e&&e.addressTableLookups!==void 0&&e.addressTableLookups.length>0?e.addressTableLookups.map(i=>i.lookupTableAddress):[],o=r.length>0?await zs(r,t):{};return Vt(e,{addressesByLookupTableAddress:o})}async function zs(e,t){if(e.some(r=>r.toString()===G)){let r=e.filter(o=>o.toString()!==G);return {...$t(),...await Ne(r,t)}}return Ne(e,t)}async function Ue(e,t,n,r,o){if(!e.data)throw new Error("Invalid instruction data.");if(!e.accounts)throw new Error("Invalid instruction accounts");let i=core.getChangeConfigCompressedInstructionDataDecoder().decode(e.data),a=await L(i.settingsMutArgs,"Invalid instruction data. Settings not found."),s=await O(t,n,i.signers.filter(d=>d.__kind==="Secp256r1").map(d=>d.fields[0])),c=3,u=i.signers.filter(d=>d.__kind==="Ed25519").map(d=>({signer:e.accounts[c+d.fields[0]].address}));return m([e],a,s.concat(u),r,o)}async function be(e,t,n,r,o){if(!e.data)throw new Error("Invalid instruction data.");if(!e.accounts)throw new Error("Invalid instruction accounts.");let i=core.getChangeConfigInstructionDataDecoder().decode(e.data),a=e.accounts[0].address.toString(),s=await O(t,n,i.signers.filter(d=>d.__kind==="Secp256r1").map(d=>d.fields[0])),c=5,u=i.signers.filter(d=>d.__kind==="Ed25519").map(d=>({signer:e.accounts[c+d.fields[0]].address}));return m([e],a,s.concat(u),r,o)}async function ve(e,t,n,r,o,i){if(!t.data)throw new Error("Invalid instruction data.");if(!t.accounts)throw new Error("Invalid instruction accounts.");let s=(e===core.MultiWalletInstruction.NativeTransferIntentCompressed?core.getNativeTransferIntentCompressedInstructionDataDecoder():core.getTokenTransferIntentCompressedInstructionDataDecoder()).decode(t.data),c=await L(s.settingsMutArgs,"Invalid instruction data. Settings not found."),u=await O(n,r,s.signers.filter(_=>_.__kind==="Secp256r1").map(_=>_.fields[0])),d=e===core.MultiWalletInstruction.NativeTransferIntentCompressed?6:17,A=s.signers.filter(_=>_.__kind==="Ed25519").map(_=>({signer:t.accounts[d+_.fields[0]].address}));return m([t],c,u.concat(A),o,i)}async function Pe(e,t,n,r,o,i){if(!t.data)throw new Error("Invalid instruction data.");if(!t.accounts)throw new Error("Invalid instruction accounts.");let s=(e===core.MultiWalletInstruction.NativeTransferIntent?core.getNativeTransferIntentInstructionDataDecoder():core.getTokenTransferIntentInstructionDataDecoder()).decode(t.data),c=t.accounts[0].address.toString(),u=await O(n,r,s.signers.filter(_=>_.__kind==="Secp256r1").map(_=>_.fields[0])),d=e===core.MultiWalletInstruction.NativeTransferIntentCompressed?6:18,A=s.signers.filter(_=>_.__kind==="Ed25519").map(_=>({signer:t.accounts[d+_.fields[0]].address}));return m([t],c,u.concat(A),o,i)}function we(e,t){if(!e.data)throw new Error("Invalid instruction data");let n=core.getCreateUserAccountsInstructionDataDecoder().decode(e.data);for(let r of n.createUserArgs){if(r.member.toString()!==t.publicKey)throw new Error(`Member public key mismatch. Expected: ${t.publicKey}, got: ${r.member.toString()}`);if(r.transactionManagerUrl?.__option==="None")throw new Error("Transaction manager URL cannot be empty when creating user accounts");if(r.transactionManagerUrl?.value!==t.url)throw new Error(`Transaction manager URL mismatch. Expected: ${t.url}, got: ${r.transactionManagerUrl?.value}`)}return null}function Be(e,t){if(!e.data)throw new Error("Invalid instruction data");let n=core.getEditTransactionManagerUrlInstructionDataDecoder().decode(e.data),r=core.convertMemberKeyToString(n.userMutArgs.data.member);if(r!==t.publicKey)throw new Error(`Member public key mismatch. Expected: ${t.publicKey}, got: ${r}`);if(n.transactionManagerUrl!==t.url)throw new Error(`Transaction manager URL mismatch. Expected: ${t.url}, got: ${n.transactionManagerUrl}`);return null}async function Fe(e,t,n,r,o,i,a,s,c){if(!t.accounts)throw new Error("Invalid instruction accounts");if(!t.data)throw new Error("Invalid instruction data");Qs(t,r);let u=n===core.MultiWalletInstruction.TransactionBufferCreate||n===core.MultiWalletInstruction.TransactionBufferCreateCompressed,d=n===core.MultiWalletInstruction.TransactionBufferCreateCompressed||n===core.MultiWalletInstruction.TransactionExecuteSyncCompressed,A;return u?A=await ec(e,t,d,s):A=await rc(t,d,a,o),m(A.instructionsToVerify,A.settingsAddress,A.signers,i,c)}function Qs(e,t){let n=e.accounts?.find(r=>r.address.toString()===t.publicKey);if(n&&n.role!==E.READONLY_SIGNER)throw new Error("Transaction Manager should be readonly signer.")}async function ec(e,t,n,r){if(!r)throw new Error("Missing transaction message bytes");if(!t.data||!t.accounts)throw new Error("Invalid instruction");let o=U().encode(r);return n?tc(e,t,o):nc(e,t,o)}async function tc(e,t,n){let r=core.getTransactionBufferCreateCompressedInstructionDataDecoder().decode(t.data),o=await L(r.settingsReadonlyArgs,"Settings account is required for compressed transaction buffer create"),i=he(r.args.expectedSigners);if(!await pe(r.args,n))throw new Error("Hash mismatch.");let s=await Le(e,n);return {settingsAddress:o,signers:i,instructionsToVerify:s}}async function nc(e,t,n){let r=core.getTransactionBufferCreateInstructionDataDecoder().decode(t.data),o=t.accounts[0].address.toString(),i=he(r.args.expectedSigners);if(!await pe(r.args,n))throw new Error("Hash mismatch.");let s=await Le(e,n);return {settingsAddress:o,signers:i,instructionsToVerify:s}}async function rc(e,t,n,r){if(!e.data||!e.accounts)throw new Error("Invalid instruction");return t?oc(e,n,r):ic(e,n,r)}async function oc(e,t,n){if(!e.accounts)throw new Error("Invalid instruction accounts.");let r=core.getTransactionExecuteSyncCompressedInstructionDataDecoder().decode(e.data),o=await L(r.settingsMutArgs,"Settings account is required for compressed transaction execute"),i=await O(t,n,r.signers.filter(u=>u.__kind==="Secp256r1").map(u=>u.fields[0])),a=3,s=r.signers.filter(u=>u.__kind==="Ed25519").map(u=>({signer:e.accounts[a+u.fields[0]].address})),c=Me(e.accounts,r.transactionMessage);return {settingsAddress:o,signers:i.concat(s),instructionsToVerify:c}}async function ic(e,t,n){if(!e.accounts)throw new Error("Invalid instruction accounts.");let r=core.getTransactionExecuteSyncInstructionDataDecoder().decode(e.data),o=e.accounts[0].address.toString(),i=await O(t,n,r.signers.filter(u=>u.__kind==="Secp256r1").map(u=>u.fields[0])),a=3,s=r.signers.filter(u=>u.__kind==="Ed25519").map(u=>({signer:e.accounts[a+u.fields[0]].address})),c=Me(e.accounts,r.transactionMessage);return {settingsAddress:o,signers:i.concat(s),instructionsToVerify:c}}async function cc(e,t,n,r){let{transaction:o,transactionMessageBytes:i,authResponses:a}=n,{messageBytes:s}=Gt().decode(U().encode(o)),c=Ft().decode(s),{instructions:u}=await ye(c,e),d=uc(u),A=(await Promise.all(u.map((_,l)=>dc(e,_,t,l,a,d,i,r)))).filter(_=>_!==null);return {transactionMessage:s,verificationResults:A}}function uc(e){return e.map((t,n)=>({instruction:t,instructionIndex:n})).filter(({instruction:t})=>t.programAddress.toString()===De).map(({instructionIndex:t,instruction:n})=>({instructionIndex:t,data:n.data}))}async function dc(e,t,n,r,o,i,a,s){let c=t.programAddress.toString();if(!Kt.has(c))throw new Error("Instruction rejected by Transaction Manager.");if(c!==core.MULTI_WALLET_PROGRAM_ADDRESS.toString())return null;if(!t.data)throw new Error("Invalid instruction data.");let u=core.identifyMultiWalletInstruction({data:t.data});return _c(e,t,u,n,r,o,i,a,s)}async function _c(e,t,n,r,o,i,a,s,c){switch(n){case core.MultiWalletInstruction.DecompressSettingsAccount:case core.MultiWalletInstruction.TransactionBufferClose:case core.MultiWalletInstruction.TransactionBufferCloseCompressed:return null;case core.MultiWalletInstruction.ChangeConfig:return be(t,a,o,i,c);case core.MultiWalletInstruction.ChangeConfigCompressed:return Ue(t,a,o,i,c);case core.MultiWalletInstruction.CreateUserAccounts:return we(t,r);case core.MultiWalletInstruction.EditTransactionManagerUrl:return Be(t,r);case core.MultiWalletInstruction.NativeTransferIntent:case core.MultiWalletInstruction.TokenTransferIntent:return Pe(n,t,a,o,i,c);case core.MultiWalletInstruction.NativeTransferIntentCompressed:case core.MultiWalletInstruction.TokenTransferIntentCompressed:return ve(n,t,a,o,i,c);case core.MultiWalletInstruction.TransactionBufferCreate:case core.MultiWalletInstruction.TransactionBufferCreateCompressed:case core.MultiWalletInstruction.TransactionExecuteSync:case core.MultiWalletInstruction.TransactionExecuteSyncCompressed:return Fe(e,t,n,r,o,i,a,s,c);default:throw new Error("Instruction rejected by transaction manager.")}}/*! Bundled license information:
|
|
6
6
|
|
|
7
7
|
@noble/curves/utils.js:
|
|
8
8
|
(*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|