@ghostspeak/sdk 1.7.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/EscrowInstructions-4P3H6ETO.js +2 -0
  3. package/dist/EscrowInstructions-4P3H6ETO.js.map +1 -0
  4. package/dist/GhostSpeakClient-4SROinEf.d.ts +503 -0
  5. package/dist/accounts-IUZMPYVE.js +2 -0
  6. package/dist/accounts-IUZMPYVE.js.map +1 -0
  7. package/dist/agent-GZ2OES75.js +2 -0
  8. package/dist/agent-GZ2OES75.js.map +1 -0
  9. package/dist/auctionMarketplace-W4YM7HKU.js +2 -0
  10. package/dist/auctionMarketplace-W4YM7HKU.js.map +1 -0
  11. package/dist/chunk-2KOOI5BX.js +2 -0
  12. package/dist/chunk-2KOOI5BX.js.map +1 -0
  13. package/dist/chunk-32GWTXRJ.js +3 -0
  14. package/dist/chunk-32GWTXRJ.js.map +1 -0
  15. package/dist/chunk-B4WUFVLE.js +2 -0
  16. package/dist/chunk-B4WUFVLE.js.map +1 -0
  17. package/dist/chunk-C2OTQ5YS.js +2 -0
  18. package/dist/chunk-C2OTQ5YS.js.map +1 -0
  19. package/dist/chunk-CTC4ZJ26.js +5 -0
  20. package/dist/chunk-CTC4ZJ26.js.map +1 -0
  21. package/dist/chunk-DF7LLAMH.js +2 -0
  22. package/dist/chunk-DF7LLAMH.js.map +1 -0
  23. package/dist/chunk-DJ356OUX.js +2 -0
  24. package/dist/chunk-DJ356OUX.js.map +1 -0
  25. package/dist/chunk-DK5YDBXR.js +2 -0
  26. package/dist/chunk-DK5YDBXR.js.map +1 -0
  27. package/dist/chunk-DOTF5ECA.js +4 -0
  28. package/dist/chunk-DOTF5ECA.js.map +1 -0
  29. package/dist/chunk-FKEUXXZS.js +30 -0
  30. package/dist/chunk-FKEUXXZS.js.map +1 -0
  31. package/dist/chunk-GSHXEKBW.js +2 -0
  32. package/dist/chunk-GSHXEKBW.js.map +1 -0
  33. package/dist/chunk-IZDAEOLH.js +2 -0
  34. package/dist/chunk-IZDAEOLH.js.map +1 -0
  35. package/dist/chunk-JY554RGE.js +3 -0
  36. package/dist/chunk-JY554RGE.js.map +1 -0
  37. package/dist/chunk-KK3HV2RD.js +3 -0
  38. package/dist/chunk-KK3HV2RD.js.map +1 -0
  39. package/dist/chunk-PPOCDM6G.js +2 -0
  40. package/dist/chunk-PPOCDM6G.js.map +1 -0
  41. package/dist/chunk-PUI35LBF.js +2 -0
  42. package/dist/chunk-PUI35LBF.js.map +1 -0
  43. package/dist/chunk-Q34J6YDA.js +11 -0
  44. package/dist/chunk-Q34J6YDA.js.map +1 -0
  45. package/dist/chunk-QATBFZMM.js +3 -0
  46. package/dist/chunk-QATBFZMM.js.map +1 -0
  47. package/dist/chunk-QTKN3VZV.js +2 -0
  48. package/dist/chunk-QTKN3VZV.js.map +1 -0
  49. package/dist/chunk-RFBYMTTN.js +2 -0
  50. package/dist/chunk-RFBYMTTN.js.map +1 -0
  51. package/dist/chunk-RJJPOLCK.js +22 -0
  52. package/dist/chunk-RJJPOLCK.js.map +1 -0
  53. package/dist/chunk-RTWJTEND.js +2 -0
  54. package/dist/chunk-RTWJTEND.js.map +1 -0
  55. package/dist/chunk-SR3ZJCME.js +2 -0
  56. package/dist/chunk-SR3ZJCME.js.map +1 -0
  57. package/dist/chunk-TAWXH7KX.js +2 -0
  58. package/dist/chunk-TAWXH7KX.js.map +1 -0
  59. package/dist/client.d.ts +4 -0
  60. package/dist/client.js +2 -0
  61. package/dist/client.js.map +1 -0
  62. package/dist/confidential-transfer-manager-CGS3T5DG.js +2 -0
  63. package/dist/confidential-transfer-manager-CGS3T5DG.js.map +1 -0
  64. package/dist/crypto.d.ts +331 -0
  65. package/dist/crypto.js +2 -0
  66. package/dist/crypto.js.map +1 -0
  67. package/dist/elgamal-3ABOJSHC.js +2 -0
  68. package/dist/elgamal-3ABOJSHC.js.map +1 -0
  69. package/dist/enhanced-client-errors-W22U3LNH.js +2 -0
  70. package/dist/enhanced-client-errors-W22U3LNH.js.map +1 -0
  71. package/dist/errors.d.ts +119 -0
  72. package/dist/errors.js +2 -0
  73. package/dist/errors.js.map +1 -0
  74. package/dist/feature-flags-CEaxXgQQ.d.ts +4157 -0
  75. package/dist/generated-U3L4KUE4.js +2 -0
  76. package/dist/generated-U3L4KUE4.js.map +1 -0
  77. package/dist/ghostspeak_wasm-3KPNJTSS.js +2 -0
  78. package/dist/ghostspeak_wasm-3KPNJTSS.js.map +1 -0
  79. package/dist/index.d.ts +1944 -17757
  80. package/dist/index.js +17 -45969
  81. package/dist/index.js.map +1 -1
  82. package/dist/ipfs-types-BlxtJ3q2.d.ts +194 -0
  83. package/dist/metafile-esm.json +1 -0
  84. package/dist/minimal/core-minimal.d.ts +444 -0
  85. package/dist/minimal/core-minimal.js +12 -0
  86. package/dist/minimal/core-minimal.js.map +1 -0
  87. package/dist/pda-2GUWRQ5G.js +2 -0
  88. package/dist/pda-2GUWRQ5G.js.map +1 -0
  89. package/dist/registerAgentCompressed-L6ACXD2Z.js +2 -0
  90. package/dist/registerAgentCompressed-L6ACXD2Z.js.map +1 -0
  91. package/dist/token-2022-rpc-SRHRFN5Y.js +2 -0
  92. package/dist/token-2022-rpc-SRHRFN5Y.js.map +1 -0
  93. package/dist/types.d.ts +396 -0
  94. package/dist/types.js +2 -0
  95. package/dist/types.js.map +1 -0
  96. package/dist/utils.d.ts +19 -0
  97. package/dist/utils.js +2 -0
  98. package/dist/utils.js.map +1 -0
  99. package/dist/zk-proof-builder-GXZ42QZA.js +2 -0
  100. package/dist/zk-proof-builder-GXZ42QZA.js.map +1 -0
  101. package/package.json +27 -1
@@ -0,0 +1,2 @@
1
+ export{i as deriveA2AMessagePda,h as deriveA2ASessionPda,a as deriveAgentPda,o as deriveAgentTreeConfigPda,l as deriveAgentVerificationPda,s as deriveEscrowPDA,d as deriveJobApplicationPda,c as deriveJobPostingPda,g as derivePaymentPda,n as deriveReplicationRecordPda,m as deriveReplicationTemplatePda,b as deriveServiceListingPda,k as deriveServicePurchasePda,j as deriveUserRegistryPda,r as deriveWorkDeliveryPDA,f as deriveWorkDeliveryPda,q as deriveWorkOrderPDA,e as deriveWorkOrderPda,p as findProgramDerivedAddress}from'./chunk-DK5YDBXR.js';import'./chunk-DJ356OUX.js';//# sourceMappingURL=pda-2GUWRQ5G.js.map
2
+ //# sourceMappingURL=pda-2GUWRQ5G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"pda-2GUWRQ5G.js"}
@@ -0,0 +1,2 @@
1
+ export{i as REGISTER_AGENT_COMPRESSED_DISCRIMINATOR,j as getRegisterAgentCompressedDiscriminatorBytes,o as getRegisterAgentCompressedInstruction,n as getRegisterAgentCompressedInstructionAsync,m as getRegisterAgentCompressedInstructionDataCodec,l as getRegisterAgentCompressedInstructionDataDecoder,k as getRegisterAgentCompressedInstructionDataEncoder,p as parseRegisterAgentCompressedInstruction}from'./chunk-TAWXH7KX.js';import'./chunk-DJ356OUX.js';//# sourceMappingURL=registerAgentCompressed-L6ACXD2Z.js.map
2
+ //# sourceMappingURL=registerAgentCompressed-L6ACXD2Z.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"registerAgentCompressed-L6ACXD2Z.js"}
@@ -0,0 +1,2 @@
1
+ import {a}from'./chunk-RTWJTEND.js';import'./chunk-2KOOI5BX.js';import'./chunk-DJ356OUX.js';import {getAddressDecoder,getAddressEncoder}from'@solana/kit';import {getU64Decoder,getU16Decoder,getBooleanDecoder,getU8Decoder,getU32Decoder,getUtf8Decoder}from'@solana/codecs';var M="TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",D=82,N=165,B=2,G=2;function U(n,e){let o=[],c=e;for(;c+B+G<=n.length;){let s=getU16Decoder().decode(n.slice(c,c+2));c+=B;let a$1=Object.values(a).filter(p=>typeof p=="number").pop(),r=s;if(r===0||r>a$1)break;let t=getU16Decoder().decode(n.slice(c,c+2));c+=G;let f=n.slice(c,c+t);c+=t,o.push({extensionType:s,length:t,data:f});}return {extensions:o,remainingData:n.slice(c)}}function R(n){let e=0,o=n.slice(e,e+32),c=o.some(y=>y!==0);e+=32;let s=n.slice(e,e+32),a=s.some(y=>y!==0);e+=32;let r=getU64Decoder().decode(n.slice(e,e+8));e+=8;let t=getU64Decoder().decode(n.slice(e,e+8));e+=8;let f=getU64Decoder().decode(n.slice(e,e+8));e+=8;let p=getU16Decoder().decode(n.slice(e,e+2));e+=2;let m=getU64Decoder().decode(n.slice(e,e+8));e+=8;let T=getU64Decoder().decode(n.slice(e,e+8));e+=8;let A=getU16Decoder().decode(n.slice(e,e+2));return {transferFeeConfigAuthority:c?getAddressDecoder().decode(o):null,withdrawWithheldAuthority:a?getAddressDecoder().decode(s):null,withheldAmount:r,olderTransferFee:{epoch:t,maximumFee:f,transferFeeBasisPoints:p},newerTransferFee:{epoch:m,maximumFee:T,transferFeeBasisPoints:A}}}function L(n){let e=0,o=n.slice(e,e+32),c=o.some(f=>f!==0);e+=32;let s=getU64Decoder().decode(n.slice(e,e+8));e+=8;let a=getU16Decoder().decode(n.slice(e,e+2));e+=2;let r=getU64Decoder().decode(n.slice(e,e+8));e+=8;let t=getU16Decoder().decode(n.slice(e,e+2));return {rateAuthority:c?getAddressDecoder().decode(o):null,initializationTimestamp:s,preUpdateAverageRate:a,lastUpdateTimestamp:r,currentRate:t}}function O(n){let e=0,o=n.slice(e,e+32),c=o.some(t=>t!==0);e+=32;let s=getBooleanDecoder().decode(n.slice(e,e+1));e+=1;let a=n.slice(e,e+32),r=a.some(t=>t!==0);return {authority:c?getAddressDecoder().decode(o):null,autoApproveNewAccounts:s,auditorElgamalPubkey:r?a:null}}function _(n){let e=0,o=getBooleanDecoder().decode(n.slice(e,e+1));e+=1;let c=n.slice(e,e+32);e+=32;let s=n.slice(e,e+64);e+=64;let a=n.slice(e,e+64);e+=64;let r=n.slice(e,e+64);e+=64;let t=n.slice(e,e+64);e+=64;let f=getU64Decoder().decode(n.slice(e,e+8));e+=8;let p=getBooleanDecoder().decode(n.slice(e,e+1));e+=1;let m=getBooleanDecoder().decode(n.slice(e,e+1));e+=1;let T=getU64Decoder().decode(n.slice(e,e+8));e+=8;let A=getU64Decoder().decode(n.slice(e,e+8));e+=8;let y=getU64Decoder().decode(n.slice(e,e+8));e+=8;let k=getU64Decoder().decode(n.slice(e,e+8));e+=8;let u=getU64Decoder().decode(n.slice(e,e+8));return {approved:o,elgamalPubkey:c,pendingBalanceLo:s,pendingBalanceHi:a,availableBalanceLo:r,availableBalanceHi:t,decryptableAvailableBalance:f,allowConfidentialCredits:p,allowNonConfidentialCredits:m,pendingBalanceCreditCounterLo:T,pendingBalanceCreditCounterHi:A,maximumPendingBalanceCreditCounter:y,expectedPendingBalanceCreditCounter:k,actualPendingBalanceCreditCounter:u}}function z(n){let e=0,o=n[e]===1;e+=1;let c=o?getAddressDecoder().decode(n.slice(e,e+32)):null;e+=32;let s=getAddressDecoder().decode(n.slice(e,e+32));e+=32;let a=getU32Decoder().decode(n.slice(e,e+4));e+=4;let r=getUtf8Decoder().decode(n.slice(e,e+a));e+=a;let t=getU32Decoder().decode(n.slice(e,e+4));e+=4;let f=getUtf8Decoder().decode(n.slice(e,e+t));e+=t;let p=getU32Decoder().decode(n.slice(e,e+4));e+=4;let m=getUtf8Decoder().decode(n.slice(e,e+p));e+=p;let T=getU32Decoder().decode(n.slice(e,e+4));e+=4;let A=[];for(let y=0;y<T;y++){let k=getU32Decoder().decode(n.slice(e,e+4));e+=4;let u=getUtf8Decoder().decode(n.slice(e,e+k));e+=k;let C=getU32Decoder().decode(n.slice(e,e+4));e+=4;let b=getUtf8Decoder().decode(n.slice(e,e+C));e+=C,A.push({key:u,value:b});}return {updateAuthority:c,mint:s,name:r,symbol:f,uri:m,additionalMetadata:A}}function S(n,e){switch(n){case 1:return R(e);case 2:return {withheldAmount:getU64Decoder().decode(e)};case 3:return {closeAuthority:e.some(c=>c!==0)?getAddressDecoder().decode(e):null};case 4:return O(e);case 5:return _(e);case 6:return {state:getU8Decoder().decode(e)};case 7:return {};case 8:return {requireIncomingTransferMemos:getBooleanDecoder().decode(e)};case 9:case 13:return {};case 10:return L(e);case 11:return {lockCpi:getBooleanDecoder().decode(e)};case 12:return {delegate:e.some(c=>c!==0)?getAddressDecoder().decode(e):null};case 14:{let o=e.slice(0,32).some(s=>s!==0)?getAddressDecoder().decode(e.slice(0,32)):null,c=e.slice(32,64).some(s=>s!==0)?getAddressDecoder().decode(e.slice(32,64)):null;return {authority:o,programId:c}}case 15:return {transferring:getBooleanDecoder().decode(e)};case 16:case 18:case 19:{let o=e.slice(0,32).some(s=>s!==0)?getAddressDecoder().decode(e.slice(0,32)):null,c=e.slice(32,64).some(s=>s!==0)?getAddressDecoder().decode(e.slice(32,64)):null;return {authority:o,[`${n===16?"metadata":n===18?"group":"member"}Address`]:c}}case 17:return z(e);case 20:case 21:return {};default:return {}}}async function H(n,e,o){let a=(await n.getAccountInfo(e,{commitment:o,encoding:"base64"})).value;if(!a?.data)return null;let r;if(Array.isArray(a.data))r=new Uint8Array(Buffer.from(a.data[0],"base64"));else if(typeof a.data=="string")r=new Uint8Array(Buffer.from(a.data,"base64"));else throw new Error("Unexpected data format");if(a.owner!==M)throw new Error("Not a Token-2022 mint");let t=0,f=r[t]===1;t+=1;let p=f?getAddressDecoder().decode(r.slice(t,t+32)):null;t+=32;let m=getU64Decoder().decode(r.slice(t,t+8));t+=8;let T=r[t];t+=1;let A=r[t]===1;t+=1;let y=r[t]===1;t+=1;let k=y?getAddressDecoder().decode(r.slice(t,t+32)):null,u={};if(r.length>D){let C=U(r,D);for(let b of C.extensions){let i=S(b.extensionType,b.data);switch(b.extensionType){case 1:u.transferFeeConfig=i;break;case 3:u.mintCloseAuthority=i;break;case 4:u.confidentialTransferMint=i;break;case 6:u.defaultAccountState=i;break;case 9:u.nonTransferable=i;break;case 10:u.interestBearingConfig=i;break;case 12:u.permanentDelegate=i;break;case 14:u.transferHook=i;break;case 16:u.metadataPointer=i;break;case 17:u.tokenMetadata=i;break;case 18:u.groupPointer=i;break;case 20:u.tokenGroup=i;break}}}return {address:e,mintAuthority:p,supply:m,decimals:T,isInitialized:A,freezeAuthority:k,extensions:u}}async function j(n,e,o){let a=(await n.getMultipleAccounts(e,{commitment:o,encoding:"base64"})).value;return Promise.all(a.map(async(r,t)=>{if(!r?.data)return null;try{return await H(n,e[t],o)}catch{return null}}))}async function Y(n,e,o,c){let s=await H(n,e,c);if(!s)return false;switch(o){case 1:return !!s.extensions.transferFeeConfig;case 3:return !!s.extensions.mintCloseAuthority;case 4:return !!s.extensions.confidentialTransferMint;case 6:return !!s.extensions.defaultAccountState;case 9:return !!s.extensions.nonTransferable;case 10:return !!s.extensions.interestBearingConfig;case 12:return !!s.extensions.permanentDelegate;case 14:return !!s.extensions.transferHook;case 16:return !!s.extensions.metadataPointer;case 17:return !!s.extensions.tokenMetadata;case 18:return !!s.extensions.groupPointer;case 20:return !!s.extensions.tokenGroup;default:return false}}async function Z(n,e,o){let a=(await n.getAccountInfo(e,{commitment:o,encoding:"base64"})).value;if(!a?.data)return null;let r;if(Array.isArray(a.data))r=new Uint8Array(Buffer.from(a.data[0],"base64"));else if(typeof a.data=="string")r=new Uint8Array(Buffer.from(a.data,"base64"));else throw new Error("Unexpected data format");if(a.owner!==M)throw new Error("Not a Token-2022 account");let t=0,f=getAddressDecoder().decode(r.slice(t,t+32));t+=32;let p=getAddressDecoder().decode(r.slice(t,t+32));t+=32;let m=getU64Decoder().decode(r.slice(t,t+8));t+=8;let T=r[t]===1;t+=1;let A=T?getAddressDecoder().decode(r.slice(t,t+32)):null;t+=32;let y=r[t];t+=1;let k=r[t]===1;t+=1,t+=8;let u=getU64Decoder().decode(r.slice(t,t+8));t+=8;let C=r[t]===1;t+=1;let b=C?getAddressDecoder().decode(r.slice(t,t+32)):null,i={};if(r.length>N){let v=U(r,N);for(let E of v.extensions){let g=S(E.extensionType,E.data);switch(E.extensionType){case 2:i.transferFeeAmount=g;break;case 5:i.confidentialTransferAccount=g;break;case 7:i.immutableOwner=g;break;case 8:i.memoTransfer=g;break;case 13:i.nonTransferableAccount=g;break;case 11:i.cpiGuard=g;break;case 15:i.transferHookAccount=g;break;case 19:i.groupMemberPointer=g;break;case 21:i.tokenGroupMember=g;break}}}return {address:e,mint:f,owner:p,amount:m,delegate:A,state:y,isNative:k,delegatedAmount:u,closeAuthority:b,extensions:i}}async function $(n,e,o,c){let s=[{dataSize:165},{memcmp:{offset:32,bytes:Buffer.from(getAddressEncoder().encode(e)).toString("base64")}}];o&&s.push({memcmp:{offset:0,bytes:Buffer.from(getAddressEncoder().encode(o)).toString("base64")}});let t=(await n.getProgramAccounts(M,{commitment:c,encoding:"base64",filters:s})).value,f=[];for(let p of t)try{let m=await Z(n,p.pubkey,c);m&&f.push(m);}catch{}return f}function ee(n,e){let o=n;for(let c of e)switch(o+=B+G,c){case 1:o+=108;break;case 2:o+=8;break;case 3:case 12:o+=32;break;case 4:o+=65;break;case 5:o+=402;break;case 6:case 8:case 11:case 15:o+=1;break;case 7:case 9:case 13:o+=0;break;case 10:o+=52;break;case 14:case 16:case 18:case 19:o+=64;break;case 17:o+=256;break;case 20:case 21:o+=128;break}return o+=1,o}async function ne(n,e,o){return (await n.getAccountInfo(e,{commitment:o})).value?.owner===M}async function te(n,e,o){let a=(await n.getAccountInfo(e,{commitment:o})).value;if(!a)throw new Error("Mint account not found");if(a.owner===M)return M;if(a.owner==="TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")return "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";throw new Error("Unknown token program")}export{M as TOKEN_2022_PROGRAM_ID,ee as getAccountSizeForExtensions,H as getMintWithExtensions,j as getMultipleMintsWithExtensions,Z as getTokenAccountWithExtensions,$ as getTokenAccountsByOwnerWithExtensions,te as getTokenProgramForMint,ne as isToken2022,Y as mintHasExtension};//# sourceMappingURL=token-2022-rpc-SRHRFN5Y.js.map
2
+ //# sourceMappingURL=token-2022-rpc-SRHRFN5Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/token-2022-rpc.ts"],"names":["TOKEN_2022_PROGRAM_ID","MINT_SIZE","ACCOUNT_SIZE","EXTENSION_TYPE_SIZE","EXTENSION_LENGTH_SIZE","parseExtensions","data","baseSize","extensions","offset","extensionType","getU16Decoder","maxExtensionType","ExtensionType","val","extensionTypeNumber","length","extensionData","parseTransferFeeConfig","transferFeeConfigAuthority","hasAuthority","b","withdrawWithheldAuthority","hasWithdrawAuthority","withheldAmount","getU64Decoder","olderEpoch","olderMaximumFee","olderTransferFeeBasisPoints","newerEpoch","newerMaximumFee","newerTransferFeeBasisPoints","getAddressDecoder","parseInterestBearingConfig","rateAuthority","initializationTimestamp","preUpdateAverageRate","lastUpdateTimestamp","currentRate","parseConfidentialTransferMint","authority","autoApproveNewAccounts","getBooleanDecoder","auditorElgamalPubkey","hasAuditor","parseConfidentialTransferAccount","approved","elgamalPubkey","pendingBalanceLo","pendingBalanceHi","availableBalanceLo","availableBalanceHi","decryptableAvailableBalance","allowConfidentialCredits","allowNonConfidentialCredits","pendingBalanceCreditCounterLo","pendingBalanceCreditCounterHi","maximumPendingBalanceCreditCounter","expectedPendingBalanceCreditCounter","actualPendingBalanceCreditCounter","parseTokenMetadata","hasUpdateAuthority","updateAuthority","mint","nameLength","getU32Decoder","name","getUtf8Decoder","symbolLength","symbol","uriLength","uri","additionalMetadataCount","additionalMetadata","i","keyLength","key","valueLength","value","parseExtension","getU8Decoder","programId","pointerAuthority","pointerAddress","getMintWithExtensions","rpc","commitment","accountInfo","hasMintAuthority","mintAuthority","supply","decimals","isInitialized","hasFreezeAuthority","freezeAuthority","parsed","ext","getMultipleMintsWithExtensions","mints","accountInfos","info","index","mintHasExtension","mintData","getTokenAccountWithExtensions","account","owner","amount","hasDelegate","delegate","state","isNative","delegatedAmount","hasCloseAuthority","closeAuthority","getTokenAccountsByOwnerWithExtensions","filters","getAddressEncoder","accounts","results","getAccountSizeForExtensions","size","extension","isToken2022","getTokenProgramForMint"],"mappings":"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","file":"token-2022-rpc-SRHRFN5Y.js","sourcesContent":["/**\n * Token-2022 RPC Module\n * \n * Functions to query Token-2022 mint and account data with extensions\n * Includes parsers for all Token-2022 extension types\n */\n\nimport './text-encoder-polyfill.js'\nimport type { Address } from '@solana/addresses'\nimport { getAddressDecoder, getAddressEncoder } from '@solana/kit'\nimport { \n getU8Decoder, \n getU16Decoder, \n getU32Decoder, \n getU64Decoder,\n getBooleanDecoder,\n getUtf8Decoder\n} from '@solana/codecs'\nimport { \n type Commitment\n} from '../types/rpc-types.js'\nimport {\n createTypedRpcClient\n} from '../types/rpc-client-types.js'\nimport {\n type MintWithExtensions,\n type TokenAccountWithExtensions,\n ExtensionType,\n type ExtensionTLV,\n type ParsedExtensions,\n type TransferFeeConfig,\n type InterestBearingConfig,\n type MintCloseAuthority,\n type PermanentDelegate,\n type DefaultAccountState,\n type TransferHook,\n type MetadataPointer,\n type GroupPointer,\n type GroupMemberPointer,\n type ConfidentialTransferMint,\n type TransferFeeAmount,\n type ImmutableOwner,\n type NonTransferable,\n type MemoTransfer,\n type CpiGuard,\n type ConfidentialTransferAccount,\n type TransferHookAccount,\n type TokenMetadata,\n type TokenGroup,\n type TokenGroupMember,\n type AccountState\n} from '../types/token-2022-types.js'\n\n// =====================================================\n// CONSTANTS\n// =====================================================\n\n/** Token-2022 program ID */\nexport const TOKEN_2022_PROGRAM_ID = 'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb' as Address\n\n/** Mint account size without extensions */\nconst MINT_SIZE = 82\n\n/** Token account size without extensions */\nconst ACCOUNT_SIZE = 165\n\n/** Extension discriminator size */\nconst EXTENSION_TYPE_SIZE = 2\n\n/** Extension length size */\nconst EXTENSION_LENGTH_SIZE = 2\n\n// =====================================================\n// EXTENSION PARSERS\n// =====================================================\n\n/**\n * Parse TLV (Type-Length-Value) extensions from account data\n */\nfunction parseExtensions(data: Uint8Array, baseSize: number): ParsedExtensions {\n const extensions: ExtensionTLV[] = []\n let offset = baseSize\n\n while (offset + EXTENSION_TYPE_SIZE + EXTENSION_LENGTH_SIZE <= data.length) {\n // Read extension type (2 bytes, little-endian)\n const extensionType = getU16Decoder().decode(data.slice(offset, offset + 2)) as ExtensionType\n offset += EXTENSION_TYPE_SIZE\n\n // Check for account type discriminator (indicates end of extensions)\n const maxExtensionType = Object.values(ExtensionType).filter(val => typeof val === 'number').pop() as number\n const extensionTypeNumber = extensionType as number\n if (extensionTypeNumber === 0 || extensionTypeNumber > maxExtensionType) {\n break\n }\n\n // Read extension length (2 bytes, little-endian)\n const length = getU16Decoder().decode(data.slice(offset, offset + 2))\n offset += EXTENSION_LENGTH_SIZE\n\n // Read extension data\n const extensionData = data.slice(offset, offset + length)\n offset += length\n\n extensions.push({\n extensionType,\n length,\n data: extensionData\n })\n }\n\n return {\n extensions,\n remainingData: data.slice(offset)\n }\n}\n\n/**\n * Parse transfer fee configuration\n */\nfunction parseTransferFeeConfig(data: Uint8Array): TransferFeeConfig {\n let offset = 0\n \n // Transfer fee config authority (32 bytes, optional)\n const transferFeeConfigAuthority = data.slice(offset, offset + 32)\n const hasAuthority = transferFeeConfigAuthority.some(b => b !== 0)\n offset += 32\n\n // Withdraw withheld authority (32 bytes, optional)\n const withdrawWithheldAuthority = data.slice(offset, offset + 32)\n const hasWithdrawAuthority = withdrawWithheldAuthority.some(b => b !== 0)\n offset += 32\n\n // Withheld amount (8 bytes)\n const withheldAmount = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Older transfer fee\n const olderEpoch = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n const olderMaximumFee = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n const olderTransferFeeBasisPoints = getU16Decoder().decode(data.slice(offset, offset + 2))\n offset += 2\n\n // Newer transfer fee\n const newerEpoch = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n const newerMaximumFee = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n const newerTransferFeeBasisPoints = getU16Decoder().decode(data.slice(offset, offset + 2))\n\n return {\n transferFeeConfigAuthority: hasAuthority ? getAddressDecoder().decode(transferFeeConfigAuthority) : null,\n withdrawWithheldAuthority: hasWithdrawAuthority ? getAddressDecoder().decode(withdrawWithheldAuthority) : null,\n withheldAmount,\n olderTransferFee: {\n epoch: olderEpoch,\n maximumFee: olderMaximumFee,\n transferFeeBasisPoints: olderTransferFeeBasisPoints\n },\n newerTransferFee: {\n epoch: newerEpoch,\n maximumFee: newerMaximumFee,\n transferFeeBasisPoints: newerTransferFeeBasisPoints\n }\n }\n}\n\n/**\n * Parse interest-bearing configuration\n */\nfunction parseInterestBearingConfig(data: Uint8Array): InterestBearingConfig {\n let offset = 0\n\n // Rate authority (32 bytes, optional)\n const rateAuthority = data.slice(offset, offset + 32)\n const hasAuthority = rateAuthority.some(b => b !== 0)\n offset += 32\n\n // Initialization timestamp (8 bytes)\n const initializationTimestamp = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Pre-update average rate (2 bytes)\n const preUpdateAverageRate = getU16Decoder().decode(data.slice(offset, offset + 2))\n offset += 2\n\n // Last update timestamp (8 bytes)\n const lastUpdateTimestamp = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Current rate (2 bytes)\n const currentRate = getU16Decoder().decode(data.slice(offset, offset + 2))\n\n return {\n rateAuthority: hasAuthority ? getAddressDecoder().decode(rateAuthority) : null,\n initializationTimestamp,\n preUpdateAverageRate,\n lastUpdateTimestamp,\n currentRate\n }\n}\n\n/**\n * Parse confidential transfer mint configuration\n */\nfunction parseConfidentialTransferMint(data: Uint8Array): ConfidentialTransferMint {\n let offset = 0\n\n // Authority (32 bytes, optional)\n const authority = data.slice(offset, offset + 32)\n const hasAuthority = authority.some(b => b !== 0)\n offset += 32\n\n // Auto-approve new accounts (1 byte)\n const autoApproveNewAccounts = getBooleanDecoder().decode(data.slice(offset, offset + 1))\n offset += 1\n\n // Auditor ElGamal pubkey (32 bytes, optional)\n const auditorElgamalPubkey = data.slice(offset, offset + 32)\n const hasAuditor = auditorElgamalPubkey.some(b => b !== 0)\n\n return {\n authority: hasAuthority ? getAddressDecoder().decode(authority) : null,\n autoApproveNewAccounts,\n auditorElgamalPubkey: hasAuditor ? auditorElgamalPubkey : null\n }\n}\n\n/**\n * Parse confidential transfer account configuration\n */\nfunction parseConfidentialTransferAccount(data: Uint8Array): ConfidentialTransferAccount {\n let offset = 0\n\n // Approved (1 byte)\n const approved = getBooleanDecoder().decode(data.slice(offset, offset + 1))\n offset += 1\n\n // ElGamal pubkey (32 bytes)\n const elgamalPubkey = data.slice(offset, offset + 32)\n offset += 32\n\n // Pending balance low (64 bytes - ElGamal ciphertext)\n const pendingBalanceLo = data.slice(offset, offset + 64)\n offset += 64\n\n // Pending balance high (64 bytes - ElGamal ciphertext)\n const pendingBalanceHi = data.slice(offset, offset + 64)\n offset += 64\n\n // Available balance low (64 bytes - ElGamal ciphertext)\n const availableBalanceLo = data.slice(offset, offset + 64)\n offset += 64\n\n // Available balance high (64 bytes - ElGamal ciphertext)\n const availableBalanceHi = data.slice(offset, offset + 64)\n offset += 64\n\n // Decryptable available balance (8 bytes)\n const decryptableAvailableBalance = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Allow confidential credits (1 byte)\n const allowConfidentialCredits = getBooleanDecoder().decode(data.slice(offset, offset + 1))\n offset += 1\n\n // Allow non-confidential credits (1 byte)\n const allowNonConfidentialCredits = getBooleanDecoder().decode(data.slice(offset, offset + 1))\n offset += 1\n\n // Pending balance credit counter low (8 bytes)\n const pendingBalanceCreditCounterLo = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Pending balance credit counter high (8 bytes)\n const pendingBalanceCreditCounterHi = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Maximum pending balance credit counter (8 bytes)\n const maximumPendingBalanceCreditCounter = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Expected pending balance credit counter (8 bytes)\n const expectedPendingBalanceCreditCounter = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Actual pending balance credit counter (8 bytes)\n const actualPendingBalanceCreditCounter = getU64Decoder().decode(data.slice(offset, offset + 8))\n\n return {\n approved,\n elgamalPubkey,\n pendingBalanceLo,\n pendingBalanceHi,\n availableBalanceLo,\n availableBalanceHi,\n decryptableAvailableBalance,\n allowConfidentialCredits,\n allowNonConfidentialCredits,\n pendingBalanceCreditCounterLo,\n pendingBalanceCreditCounterHi,\n maximumPendingBalanceCreditCounter,\n expectedPendingBalanceCreditCounter,\n actualPendingBalanceCreditCounter\n }\n}\n\n/**\n * Parse token metadata\n */\nfunction parseTokenMetadata(data: Uint8Array): TokenMetadata {\n let offset = 0\n\n // Update authority (33 bytes - 1 byte option + 32 bytes pubkey)\n const hasUpdateAuthority = data[offset] === 1\n offset += 1\n const updateAuthority = hasUpdateAuthority ? getAddressDecoder().decode(data.slice(offset, offset + 32)) : null\n offset += 32\n\n // Mint (32 bytes)\n const mint = getAddressDecoder().decode(data.slice(offset, offset + 32))\n offset += 32\n\n // Name length (4 bytes) and name\n const nameLength = getU32Decoder().decode(data.slice(offset, offset + 4))\n offset += 4\n const name = getUtf8Decoder().decode(data.slice(offset, offset + nameLength))\n offset += nameLength\n\n // Symbol length (4 bytes) and symbol\n const symbolLength = getU32Decoder().decode(data.slice(offset, offset + 4))\n offset += 4\n const symbol = getUtf8Decoder().decode(data.slice(offset, offset + symbolLength))\n offset += symbolLength\n\n // URI length (4 bytes) and URI\n const uriLength = getU32Decoder().decode(data.slice(offset, offset + 4))\n offset += 4\n const uri = getUtf8Decoder().decode(data.slice(offset, offset + uriLength))\n offset += uriLength\n\n // Additional metadata count (4 bytes)\n const additionalMetadataCount = getU32Decoder().decode(data.slice(offset, offset + 4))\n offset += 4\n\n const additionalMetadata = []\n for (let i = 0; i < additionalMetadataCount; i++) {\n // Key length and key\n const keyLength = getU32Decoder().decode(data.slice(offset, offset + 4))\n offset += 4\n const key = getUtf8Decoder().decode(data.slice(offset, offset + keyLength))\n offset += keyLength\n\n // Value length and value\n const valueLength = getU32Decoder().decode(data.slice(offset, offset + 4))\n offset += 4\n const value = getUtf8Decoder().decode(data.slice(offset, offset + valueLength))\n offset += valueLength\n\n additionalMetadata.push({ key, value })\n }\n\n return {\n updateAuthority,\n mint,\n name,\n symbol,\n uri,\n additionalMetadata\n }\n}\n\n/**\n * Parse extension based on type\n */\nfunction parseExtension(extensionType: ExtensionType, data: Uint8Array): unknown {\n switch (extensionType) {\n case ExtensionType.TransferFeeConfig:\n return parseTransferFeeConfig(data)\n \n case ExtensionType.TransferFeeAmount:\n return { withheldAmount: getU64Decoder().decode(data) }\n \n case ExtensionType.MintCloseAuthority: {\n const closeAuthority = data.some(b => b !== 0) ? getAddressDecoder().decode(data) : null\n return { closeAuthority }\n }\n \n case ExtensionType.ConfidentialTransferMint:\n return parseConfidentialTransferMint(data)\n \n case ExtensionType.ConfidentialTransferAccount:\n return parseConfidentialTransferAccount(data)\n \n case ExtensionType.DefaultAccountState:\n return { state: getU8Decoder().decode(data) as AccountState }\n \n case ExtensionType.ImmutableOwner:\n return {} // No additional data\n \n case ExtensionType.MemoTransfer:\n return { requireIncomingTransferMemos: getBooleanDecoder().decode(data) }\n \n case ExtensionType.NonTransferable:\n case ExtensionType.NonTransferableAccount:\n return {} // No additional data\n \n case ExtensionType.InterestBearingConfig:\n return parseInterestBearingConfig(data)\n \n case ExtensionType.CpiGuard:\n return { lockCpi: getBooleanDecoder().decode(data) }\n \n case ExtensionType.PermanentDelegate: {\n const delegate = data.some(b => b !== 0) ? getAddressDecoder().decode(data) : null\n return { delegate }\n }\n \n case ExtensionType.TransferHook: {\n const authority = data.slice(0, 32).some(b => b !== 0) ? getAddressDecoder().decode(data.slice(0, 32)) : null\n const programId = data.slice(32, 64).some(b => b !== 0) ? getAddressDecoder().decode(data.slice(32, 64)) : null\n return { authority, programId }\n }\n \n case ExtensionType.TransferHookAccount:\n return { transferring: getBooleanDecoder().decode(data) }\n \n case ExtensionType.MetadataPointer:\n case ExtensionType.GroupPointer:\n case ExtensionType.GroupMemberPointer: {\n const pointerAuthority = data.slice(0, 32).some(b => b !== 0) ? getAddressDecoder().decode(data.slice(0, 32)) : null\n const pointerAddress = data.slice(32, 64).some(b => b !== 0) ? getAddressDecoder().decode(data.slice(32, 64)) : null\n return { authority: pointerAuthority, [`${extensionType === ExtensionType.MetadataPointer ? 'metadata' : extensionType === ExtensionType.GroupPointer ? 'group' : 'member'}Address`]: pointerAddress }\n }\n \n case ExtensionType.TokenMetadata:\n return parseTokenMetadata(data)\n \n case ExtensionType.TokenGroup:\n case ExtensionType.TokenGroupMember:\n // Complex parsing for group extensions - simplified for now\n return {}\n \n default:\n return {}\n }\n}\n\n// =====================================================\n// MINT QUERIES\n// =====================================================\n\n/**\n * Get mint account with extensions\n */\nexport async function getMintWithExtensions(\n rpc: unknown,\n mint: Address,\n commitment?: Commitment\n): Promise<MintWithExtensions | null> {\n // Get account info\n const typedRpc = createTypedRpcClient(rpc)\n const response = await typedRpc.getAccountInfo(mint, { commitment, encoding: 'base64' })\n const accountInfo = response.value\n \n if (!accountInfo?.data) {\n return null\n }\n\n // Decode account data\n let data: Uint8Array\n if (Array.isArray(accountInfo.data)) {\n data = new Uint8Array(Buffer.from(accountInfo.data[0], 'base64'))\n } else if (typeof accountInfo.data === 'string') {\n data = new Uint8Array(Buffer.from(accountInfo.data, 'base64'))\n } else {\n throw new Error('Unexpected data format')\n }\n \n // Check if this is a Token-2022 mint\n if (accountInfo.owner !== TOKEN_2022_PROGRAM_ID) {\n throw new Error('Not a Token-2022 mint')\n }\n\n // Parse basic mint data\n let offset = 0\n \n // COption<Pubkey> for mint authority (1 + 32 bytes)\n const hasMintAuthority = data[offset] === 1\n offset += 1\n const mintAuthority = hasMintAuthority ? getAddressDecoder().decode(data.slice(offset, offset + 32)) : null\n offset += 32\n\n // Supply (8 bytes)\n const supply = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // Decimals (1 byte)\n const decimals = data[offset]\n offset += 1\n\n // Is initialized (1 byte)\n const isInitialized = data[offset] === 1\n offset += 1\n\n // COption<Pubkey> for freeze authority (1 + 32 bytes)\n const hasFreezeAuthority = data[offset] === 1\n offset += 1\n const freezeAuthority = hasFreezeAuthority ? getAddressDecoder().decode(data.slice(offset, offset + 32)) : null\n\n // Parse extensions if present\n const extensions: MintWithExtensions['extensions'] = {}\n \n if (data.length > MINT_SIZE) {\n const parsed = parseExtensions(data, MINT_SIZE)\n \n for (const ext of parsed.extensions) {\n const extensionData = parseExtension(ext.extensionType, ext.data)\n \n switch (ext.extensionType) {\n case ExtensionType.TransferFeeConfig:\n extensions.transferFeeConfig = extensionData as TransferFeeConfig\n break\n case ExtensionType.MintCloseAuthority:\n extensions.mintCloseAuthority = extensionData as MintCloseAuthority\n break\n case ExtensionType.ConfidentialTransferMint:\n extensions.confidentialTransferMint = extensionData as ConfidentialTransferMint\n break\n case ExtensionType.DefaultAccountState:\n extensions.defaultAccountState = extensionData as DefaultAccountState\n break\n case ExtensionType.NonTransferable:\n extensions.nonTransferable = extensionData as NonTransferable\n break\n case ExtensionType.InterestBearingConfig:\n extensions.interestBearingConfig = extensionData as InterestBearingConfig\n break\n case ExtensionType.PermanentDelegate:\n extensions.permanentDelegate = extensionData as PermanentDelegate\n break\n case ExtensionType.TransferHook:\n extensions.transferHook = extensionData as TransferHook\n break\n case ExtensionType.MetadataPointer:\n extensions.metadataPointer = extensionData as MetadataPointer\n break\n case ExtensionType.TokenMetadata:\n extensions.tokenMetadata = extensionData as TokenMetadata\n break\n case ExtensionType.GroupPointer:\n extensions.groupPointer = extensionData as GroupPointer\n break\n case ExtensionType.TokenGroup:\n extensions.tokenGroup = extensionData as TokenGroup\n break\n }\n }\n }\n\n return {\n address: mint,\n mintAuthority,\n supply,\n decimals,\n isInitialized,\n freezeAuthority,\n extensions\n }\n}\n\n/**\n * Get multiple mints with extensions\n */\nexport async function getMultipleMintsWithExtensions(\n rpc: unknown,\n mints: Address[],\n commitment?: Commitment\n): Promise<(MintWithExtensions | null)[]> {\n const typedRpc = createTypedRpcClient(rpc)\n const response = await typedRpc.getMultipleAccounts(mints, { commitment, encoding: 'base64' })\n const accountInfos = response.value\n \n return Promise.all(accountInfos.map(async (info, index) => {\n if (!info?.data) return null\n \n try {\n // Process each account info\n return await getMintWithExtensions(rpc, mints[index], commitment)\n } catch {\n return null\n }\n }))\n}\n\n/**\n * Check if a mint has a specific extension\n */\nexport async function mintHasExtension(\n rpc: unknown,\n mint: Address,\n extensionType: ExtensionType,\n commitment?: Commitment\n): Promise<boolean> {\n const mintData = await getMintWithExtensions(rpc, mint, commitment)\n if (!mintData) return false\n\n switch (extensionType) {\n case ExtensionType.TransferFeeConfig:\n return Boolean(mintData.extensions.transferFeeConfig)\n case ExtensionType.MintCloseAuthority:\n return Boolean(mintData.extensions.mintCloseAuthority)\n case ExtensionType.ConfidentialTransferMint:\n return Boolean(mintData.extensions.confidentialTransferMint)\n case ExtensionType.DefaultAccountState:\n return Boolean(mintData.extensions.defaultAccountState)\n case ExtensionType.NonTransferable:\n return Boolean(mintData.extensions.nonTransferable)\n case ExtensionType.InterestBearingConfig:\n return Boolean(mintData.extensions.interestBearingConfig)\n case ExtensionType.PermanentDelegate:\n return Boolean(mintData.extensions.permanentDelegate)\n case ExtensionType.TransferHook:\n return Boolean(mintData.extensions.transferHook)\n case ExtensionType.MetadataPointer:\n return Boolean(mintData.extensions.metadataPointer)\n case ExtensionType.TokenMetadata:\n return Boolean(mintData.extensions.tokenMetadata)\n case ExtensionType.GroupPointer:\n return Boolean(mintData.extensions.groupPointer)\n case ExtensionType.TokenGroup:\n return Boolean(mintData.extensions.tokenGroup)\n default:\n return false\n }\n}\n\n// =====================================================\n// ACCOUNT QUERIES\n// =====================================================\n\n/**\n * Get token account with extensions\n */\nexport async function getTokenAccountWithExtensions(\n rpc: unknown,\n account: Address,\n commitment?: Commitment\n): Promise<TokenAccountWithExtensions | null> {\n // Get account info\n const typedRpc = createTypedRpcClient(rpc)\n const response = await typedRpc.getAccountInfo(account, { commitment, encoding: 'base64' })\n const accountInfo = response.value\n \n if (!accountInfo?.data) {\n return null\n }\n\n // Decode account data\n let data: Uint8Array\n if (Array.isArray(accountInfo.data)) {\n data = new Uint8Array(Buffer.from(accountInfo.data[0], 'base64'))\n } else if (typeof accountInfo.data === 'string') {\n data = new Uint8Array(Buffer.from(accountInfo.data, 'base64'))\n } else {\n throw new Error('Unexpected data format')\n }\n \n // Check if this is a Token-2022 account\n if (accountInfo.owner !== TOKEN_2022_PROGRAM_ID) {\n throw new Error('Not a Token-2022 account')\n }\n\n // Parse basic account data\n let offset = 0\n \n // Mint (32 bytes)\n const mint = getAddressDecoder().decode(data.slice(offset, offset + 32))\n offset += 32\n\n // Owner (32 bytes)\n const owner = getAddressDecoder().decode(data.slice(offset, offset + 32))\n offset += 32\n\n // Amount (8 bytes)\n const amount = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // COption<Pubkey> for delegate (1 + 32 bytes)\n const hasDelegate = data[offset] === 1\n offset += 1\n const delegate = hasDelegate ? getAddressDecoder().decode(data.slice(offset, offset + 32)) : null\n offset += 32\n\n // State (1 byte)\n const state = data[offset] as AccountState\n offset += 1\n\n // COption<u64> for is_native (1 + 8 bytes)\n const isNative = data[offset] === 1\n offset += 1\n offset += 8 // Skip native amount if present\n\n // Delegated amount (8 bytes)\n const delegatedAmount = getU64Decoder().decode(data.slice(offset, offset + 8))\n offset += 8\n\n // COption<Pubkey> for close authority (1 + 32 bytes)\n const hasCloseAuthority = data[offset] === 1\n offset += 1\n const closeAuthority = hasCloseAuthority ? getAddressDecoder().decode(data.slice(offset, offset + 32)) : null\n\n // Parse extensions if present\n const extensions: TokenAccountWithExtensions['extensions'] = {}\n \n if (data.length > ACCOUNT_SIZE) {\n const parsed = parseExtensions(data, ACCOUNT_SIZE)\n \n for (const ext of parsed.extensions) {\n const extensionData = parseExtension(ext.extensionType, ext.data)\n \n switch (ext.extensionType) {\n case ExtensionType.TransferFeeAmount:\n extensions.transferFeeAmount = extensionData as TransferFeeAmount\n break\n case ExtensionType.ConfidentialTransferAccount:\n extensions.confidentialTransferAccount = extensionData as ConfidentialTransferAccount\n break\n case ExtensionType.ImmutableOwner:\n extensions.immutableOwner = extensionData as ImmutableOwner\n break\n case ExtensionType.MemoTransfer:\n extensions.memoTransfer = extensionData as MemoTransfer\n break\n case ExtensionType.NonTransferableAccount:\n extensions.nonTransferableAccount = extensionData as NonTransferable\n break\n case ExtensionType.CpiGuard:\n extensions.cpiGuard = extensionData as CpiGuard\n break\n case ExtensionType.TransferHookAccount:\n extensions.transferHookAccount = extensionData as TransferHookAccount\n break\n case ExtensionType.GroupMemberPointer:\n extensions.groupMemberPointer = extensionData as GroupMemberPointer\n break\n case ExtensionType.TokenGroupMember:\n extensions.tokenGroupMember = extensionData as TokenGroupMember\n break\n }\n }\n }\n\n return {\n address: account,\n mint,\n owner,\n amount,\n delegate,\n state,\n isNative,\n delegatedAmount,\n closeAuthority,\n extensions\n }\n}\n\n/**\n * Get all token accounts for a wallet with extensions\n */\nexport async function getTokenAccountsByOwnerWithExtensions(\n rpc: unknown,\n owner: Address,\n mint?: Address,\n commitment?: Commitment\n): Promise<TokenAccountWithExtensions[]> {\n const filters = [\n {\n dataSize: 165 // Minimum Token-2022 account size\n },\n {\n memcmp: {\n offset: 32, // Owner offset\n bytes: Buffer.from(getAddressEncoder().encode(owner)).toString('base64')\n }\n }\n ]\n\n if (mint) {\n filters.push({\n memcmp: {\n offset: 0, // Mint offset\n bytes: Buffer.from(getAddressEncoder().encode(mint)).toString('base64')\n }\n })\n }\n\n const typedRpc = createTypedRpcClient(rpc)\n const response = await typedRpc.getProgramAccounts(TOKEN_2022_PROGRAM_ID, {\n commitment,\n encoding: 'base64',\n filters\n })\n const accounts = response.value\n\n const results: TokenAccountWithExtensions[] = []\n \n for (const account of accounts) {\n try {\n const parsed = await getTokenAccountWithExtensions(rpc, account.pubkey, commitment)\n if (parsed) {\n results.push(parsed)\n }\n } catch {\n // Skip invalid accounts\n }\n }\n\n return results\n}\n\n// =====================================================\n// UTILITY FUNCTIONS\n// =====================================================\n\n/**\n * Calculate required account size for extensions\n */\nexport function getAccountSizeForExtensions(\n baseSize: number,\n extensions: ExtensionType[]\n): number {\n let size = baseSize\n\n for (const extension of extensions) {\n size += EXTENSION_TYPE_SIZE + EXTENSION_LENGTH_SIZE\n\n // Add extension-specific sizes\n switch (extension) {\n case ExtensionType.TransferFeeConfig:\n size += 108 // 32 + 32 + 8 + 18 + 18\n break\n case ExtensionType.TransferFeeAmount:\n size += 8\n break\n case ExtensionType.MintCloseAuthority:\n case ExtensionType.PermanentDelegate:\n size += 32\n break\n case ExtensionType.ConfidentialTransferMint:\n size += 65 // 32 + 1 + 32\n break\n case ExtensionType.ConfidentialTransferAccount:\n size += 402 // Large extension with ciphertexts\n break\n case ExtensionType.DefaultAccountState:\n case ExtensionType.MemoTransfer:\n case ExtensionType.CpiGuard:\n case ExtensionType.TransferHookAccount:\n size += 1\n break\n case ExtensionType.ImmutableOwner:\n case ExtensionType.NonTransferable:\n case ExtensionType.NonTransferableAccount:\n size += 0 // No additional data\n break\n case ExtensionType.InterestBearingConfig:\n size += 52 // 32 + 8 + 2 + 8 + 2\n break\n case ExtensionType.TransferHook:\n case ExtensionType.MetadataPointer:\n case ExtensionType.GroupPointer:\n case ExtensionType.GroupMemberPointer:\n size += 64 // 32 + 32\n break\n case ExtensionType.TokenMetadata:\n size += 256 // Variable, using reasonable default\n break\n case ExtensionType.TokenGroup:\n case ExtensionType.TokenGroupMember:\n size += 128 // Variable, using reasonable default\n break\n }\n }\n\n // Add account type discriminator\n size += 1\n\n return size\n}\n\n/**\n * Check if a token is Token-2022\n */\nexport async function isToken2022(\n rpc: unknown,\n mint: Address,\n commitment?: Commitment\n): Promise<boolean> {\n const typedRpc = createTypedRpcClient(rpc)\n const response = await typedRpc.getAccountInfo(mint, { commitment })\n const accountInfo = response.value\n return accountInfo?.owner === TOKEN_2022_PROGRAM_ID\n}\n\n/**\n * Get token program for a mint (Token or Token-2022)\n */\nexport async function getTokenProgramForMint(\n rpc: unknown,\n mint: Address,\n commitment?: Commitment\n): Promise<Address> {\n const typedRpc = createTypedRpcClient(rpc)\n const response = await typedRpc.getAccountInfo(mint, { commitment })\n const accountInfo = response.value\n \n if (!accountInfo) {\n throw new Error('Mint account not found')\n }\n\n // Check if it's Token-2022\n if (accountInfo.owner === TOKEN_2022_PROGRAM_ID) {\n return TOKEN_2022_PROGRAM_ID\n }\n\n // Check if it's legacy Token program\n if (accountInfo.owner === 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address) {\n return 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA' as Address\n }\n\n throw new Error('Unknown token program')\n}"]}
@@ -0,0 +1,396 @@
1
+ import { Address } from '@solana/addresses';
2
+
3
+ /**
4
+ * Comprehensive Type System for GhostSpeak SDK
5
+ *
6
+ * All types are exported as individual named exports using ES2015 module syntax
7
+ * for better tree-shaking and compatibility with ESLint rules.
8
+ */
9
+
10
+ type Signature = string;
11
+ /**
12
+ * Transaction result with success/failure handling
13
+ */
14
+ type Result<T> = {
15
+ success: true;
16
+ data: T;
17
+ signature: Signature;
18
+ explorer: string;
19
+ } | {
20
+ success: false;
21
+ error: SDKError;
22
+ };
23
+ /**
24
+ * Generic transaction interface
25
+ */
26
+ interface Transaction<T> {
27
+ execute(): Promise<Result<T>>;
28
+ simulate(): Promise<SimulationResult>;
29
+ getCost(): Promise<bigint>;
30
+ debug(): this;
31
+ }
32
+ /**
33
+ * Simulation result
34
+ */
35
+ interface SimulationResult {
36
+ success: boolean;
37
+ logs: string[];
38
+ unitsConsumed?: bigint;
39
+ error?: string;
40
+ }
41
+ /**
42
+ * Agent entity
43
+ */
44
+ interface Agent {
45
+ address: Address;
46
+ type: AgentType;
47
+ owner: Address;
48
+ metadata: AgentMetadata;
49
+ reputation: Reputation;
50
+ isActive: boolean;
51
+ isVerified: boolean;
52
+ createdAt: Date;
53
+ }
54
+ /**
55
+ * Agent types
56
+ */
57
+ declare enum AgentType {
58
+ General = 0,
59
+ Specialized = 1,
60
+ Oracle = 2,
61
+ Validator = 3
62
+ }
63
+ /**
64
+ * Agent metadata
65
+ */
66
+ interface AgentMetadata {
67
+ name: string;
68
+ description: string;
69
+ capabilities: string[];
70
+ avatar?: string;
71
+ website?: string;
72
+ socialLinks?: Record<string, string>;
73
+ }
74
+ /**
75
+ * Reputation data
76
+ */
77
+ interface Reputation {
78
+ score: number;
79
+ jobsCompleted: number;
80
+ successRate: number;
81
+ totalEarnings: bigint;
82
+ ratings: Rating[];
83
+ }
84
+ /**
85
+ * Rating entry
86
+ */
87
+ interface Rating {
88
+ from: Address;
89
+ score: number;
90
+ comment?: string;
91
+ timestamp: Date;
92
+ }
93
+ /**
94
+ * Escrow entity
95
+ */
96
+ interface Escrow {
97
+ address: Address;
98
+ buyer: Address;
99
+ seller: Address;
100
+ amount: bigint;
101
+ status: EscrowStatus;
102
+ description: string;
103
+ milestones?: Milestone[];
104
+ createdAt: Date;
105
+ completedAt?: Date;
106
+ }
107
+ /**
108
+ * Escrow status
109
+ */
110
+ declare enum EscrowStatus {
111
+ Active = "active",
112
+ Completed = "completed",
113
+ Cancelled = "cancelled",
114
+ Disputed = "disputed",
115
+ Refunded = "refunded"
116
+ }
117
+ /**
118
+ * Milestone for escrow
119
+ */
120
+ interface Milestone {
121
+ amount: bigint;
122
+ description: string;
123
+ completed: boolean;
124
+ completedAt?: Date;
125
+ }
126
+ /**
127
+ * Channel entity
128
+ */
129
+ interface Channel {
130
+ address: Address;
131
+ name: string;
132
+ description: string;
133
+ type: ChannelType;
134
+ creator: Address;
135
+ members: Address[];
136
+ isPrivate: boolean;
137
+ maxMembers: number;
138
+ messageCount: number;
139
+ createdAt: Date;
140
+ }
141
+ /**
142
+ * Channel types
143
+ */
144
+ declare enum ChannelType {
145
+ Public = "public",
146
+ Private = "private",
147
+ Direct = "direct",
148
+ Group = "group"
149
+ }
150
+ /**
151
+ * Message entity
152
+ */
153
+ interface Message {
154
+ address: Address;
155
+ channel: Address;
156
+ sender: Address;
157
+ content: string;
158
+ type: MessageType;
159
+ attachments?: Attachment[];
160
+ reactions?: Reaction[];
161
+ replyTo?: Address;
162
+ editedAt?: Date;
163
+ timestamp: Date;
164
+ }
165
+ /**
166
+ * Message types
167
+ */
168
+ declare enum MessageType {
169
+ Text = "text",
170
+ Image = "image",
171
+ File = "file",
172
+ Code = "code",
173
+ System = "system"
174
+ }
175
+ /**
176
+ * Message attachment
177
+ */
178
+ interface Attachment {
179
+ uri: string;
180
+ mimeType: string;
181
+ size: number;
182
+ name: string;
183
+ }
184
+ /**
185
+ * Message reaction
186
+ */
187
+ interface Reaction {
188
+ emoji: string;
189
+ users: Address[];
190
+ }
191
+ /**
192
+ * Confidential balance
193
+ */
194
+ interface ConfidentialBalance {
195
+ encrypted: Uint8Array;
196
+ decrypted?: bigint;
197
+ }
198
+ /**
199
+ * Transfer with proof
200
+ */
201
+ interface ConfidentialTransfer {
202
+ from: Address;
203
+ to: Address;
204
+ encryptedAmount: Uint8Array;
205
+ proof: TransferProof;
206
+ }
207
+ /**
208
+ * Transfer proof data
209
+ */
210
+ interface TransferProof {
211
+ rangeProof: Uint8Array;
212
+ validityProof: Uint8Array;
213
+ equalityProof: Uint8Array;
214
+ }
215
+ /**
216
+ * SDK error with context
217
+ */
218
+ interface SDKError {
219
+ code: ErrorCode;
220
+ message: string;
221
+ context?: Record<string, unknown>;
222
+ solution?: string;
223
+ instruction?: string;
224
+ }
225
+ /**
226
+ * Error codes
227
+ */
228
+ declare enum ErrorCode {
229
+ NETWORK_ERROR = "NETWORK_ERROR",
230
+ RPC_ERROR = "RPC_ERROR",
231
+ TIMEOUT = "TIMEOUT",
232
+ INSUFFICIENT_BALANCE = "INSUFFICIENT_BALANCE",
233
+ TRANSACTION_FAILED = "TRANSACTION_FAILED",
234
+ SIMULATION_FAILED = "SIMULATION_FAILED",
235
+ ACCOUNT_NOT_FOUND = "ACCOUNT_NOT_FOUND",
236
+ INVALID_ACCOUNT = "INVALID_ACCOUNT",
237
+ UNAUTHORIZED = "UNAUTHORIZED",
238
+ INVALID_INPUT = "INVALID_INPUT",
239
+ INVALID_ADDRESS = "INVALID_ADDRESS",
240
+ INVALID_AMOUNT = "INVALID_AMOUNT",
241
+ PROGRAM_ERROR = "PROGRAM_ERROR",
242
+ INSTRUCTION_ERROR = "INSTRUCTION_ERROR",
243
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
244
+ }
245
+ /**
246
+ * Agent creation parameters
247
+ */
248
+ interface AgentCreationParams {
249
+ name: string;
250
+ capabilities: string[];
251
+ type?: AgentType;
252
+ metadata?: Partial<AgentMetadata>;
253
+ compressed?: boolean;
254
+ }
255
+ /**
256
+ * Escrow creation parameters
257
+ */
258
+ interface EscrowCreationParams {
259
+ buyer: Address;
260
+ seller: Address;
261
+ amount: bigint;
262
+ description: string;
263
+ milestones?: Milestone[];
264
+ }
265
+ /**
266
+ * Channel creation parameters
267
+ */
268
+ interface ChannelCreationParams {
269
+ name: string;
270
+ description: string;
271
+ type?: ChannelType;
272
+ isPrivate?: boolean;
273
+ maxMembers?: number;
274
+ }
275
+ /**
276
+ * Pagination options
277
+ */
278
+ interface PaginationOptions {
279
+ limit?: number;
280
+ offset?: number;
281
+ cursor?: string;
282
+ }
283
+ /**
284
+ * Filter options
285
+ */
286
+ interface FilterOptions<T> {
287
+ where?: Partial<T>;
288
+ orderBy?: keyof T;
289
+ orderDirection?: 'asc' | 'desc';
290
+ }
291
+ /**
292
+ * Query result with pagination
293
+ */
294
+ interface QueryResult<T> {
295
+ items: T[];
296
+ total: number;
297
+ hasMore: boolean;
298
+ nextCursor?: string;
299
+ }
300
+ /**
301
+ * Base event interface
302
+ */
303
+ interface Event<T = unknown> {
304
+ type: string;
305
+ timestamp: Date;
306
+ data: T;
307
+ }
308
+ /**
309
+ * Agent events
310
+ */
311
+ type AgentEvent = Event<{
312
+ agent: Agent;
313
+ }> & {
314
+ type: 'agent.created';
315
+ } | Event<{
316
+ agent: Agent;
317
+ changes: Partial<Agent>;
318
+ }> & {
319
+ type: 'agent.updated';
320
+ } | Event<{
321
+ agent: Agent;
322
+ }> & {
323
+ type: 'agent.verified';
324
+ };
325
+ /**
326
+ * Escrow events
327
+ */
328
+ type EscrowEvent = Event<{
329
+ escrow: Escrow;
330
+ }> & {
331
+ type: 'escrow.created';
332
+ } | Event<{
333
+ escrow: Escrow;
334
+ }> & {
335
+ type: 'escrow.completed';
336
+ } | Event<{
337
+ escrow: Escrow;
338
+ reason: string;
339
+ }> & {
340
+ type: 'escrow.disputed';
341
+ };
342
+ /**
343
+ * Channel events
344
+ */
345
+ type ChannelEvent = Event<{
346
+ channel: Channel;
347
+ message: Message;
348
+ }> & {
349
+ type: 'channel.message';
350
+ } | Event<{
351
+ channel: Channel;
352
+ member: Address;
353
+ }> & {
354
+ type: 'channel.member.joined';
355
+ } | Event<{
356
+ channel: Channel;
357
+ member: Address;
358
+ }> & {
359
+ type: 'channel.member.left';
360
+ };
361
+ /**
362
+ * Check if result is successful
363
+ */
364
+ declare function isSuccess<T>(result: Result<T>): result is Result<T> & {
365
+ success: true;
366
+ };
367
+ /**
368
+ * Check if result is error
369
+ */
370
+ declare function isError<T>(result: Result<T>): result is Result<T> & {
371
+ success: false;
372
+ };
373
+ /**
374
+ * Extract data from successful result
375
+ */
376
+ declare function unwrap<T>(result: Result<T>): T;
377
+ /**
378
+ * Make all properties optional recursively
379
+ */
380
+ type DeepPartial<T> = {
381
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
382
+ };
383
+ /**
384
+ * Extract addresses from entities
385
+ */
386
+ type AddressOf<T> = T extends {
387
+ address: Address;
388
+ } ? T['address'] : never;
389
+ /**
390
+ * Entity with address
391
+ */
392
+ type WithAddress<T> = T & {
393
+ address: Address;
394
+ };
395
+
396
+ export { type AddressOf, type Agent, type AgentCreationParams, type AgentEvent, type AgentMetadata, AgentType, type Attachment, type Channel, type ChannelCreationParams, type ChannelEvent, ChannelType, type ConfidentialBalance, type ConfidentialTransfer, type DeepPartial, ErrorCode, type Escrow, type EscrowCreationParams, type EscrowEvent, EscrowStatus, type Event, type FilterOptions, type Message, MessageType, type Milestone, type PaginationOptions, type QueryResult, type Rating, type Reaction, type Reputation, type Result, type SDKError, type SimulationResult, type Transaction, type TransferProof, type WithAddress, isError, isSuccess, unwrap };
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export{a as AgentType,c as ChannelType,e as ErrorCode,b as EscrowStatus,d as MessageType,g as isError,f as isSuccess,h as unwrap}from'./chunk-IZDAEOLH.js';import'./chunk-DJ356OUX.js';//# sourceMappingURL=types.js.map
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"types.js"}
@@ -0,0 +1,19 @@
1
+ export { E as ErrorContext, G as GhostSpeakSDKError, T as TokenProgram, n as accounts, m as confidential, j as createErrorContext, d as deriveAgentPda, b as deriveAssociatedTokenAddress, a as deriveListingPda, c as detectTokenProgram, h as enhanceTransactionError, q as features, f as findProgramDerivedAddress, e as formatTokenAmount, g as getTokenProgramType, o as governance, k as ipfs, i as isToken2022Mint, p as parseTokenAmount, l as privacy, t as token2022, w as withEnhancedErrors } from './feature-flags-CEaxXgQQ.js';
2
+ import '@solana/addresses';
3
+ import '@solana/kit';
4
+ import './ipfs-types-BlxtJ3q2.js';
5
+ import '@solana/web3.js';
6
+
7
+ /**
8
+ * Common utility functions for GhostSpeak SDK
9
+ */
10
+ /**
11
+ * Convert SOL to lamports
12
+ */
13
+ declare function sol(amount: number): bigint;
14
+ /**
15
+ * Convert lamports to SOL
16
+ */
17
+ declare function lamportsToSol(lamports: bigint): number;
18
+
19
+ export { lamportsToSol, sol };
package/dist/utils.js ADDED
@@ -0,0 +1,2 @@
1
+ export{p as accounts,s as governance}from'./chunk-Q34J6YDA.js';export{i as deriveAssociatedTokenAddress,m as detectTokenProgram,z as formatTokenAmount,o as getTokenProgramType,n as isToken2022Mint,A as parseTokenAmount,W as token2022}from'./chunk-32GWTXRJ.js';export{q as confidential,d as features,i as privacy}from'./chunk-JY554RGE.js';import'./chunk-RFBYMTTN.js';export{a as deriveAgentPda,b as deriveListingPda,p as findProgramDerivedAddress}from'./chunk-DK5YDBXR.js';import'./chunk-PPOCDM6G.js';import'./chunk-C2OTQ5YS.js';export{d as ipfs}from'./chunk-KK3HV2RD.js';import'./chunk-QTKN3VZV.js';import'./chunk-DF7LLAMH.js';export{o as GhostSpeakSDKError,t as createErrorContext,r as enhanceTransactionError,p as withEnhancedErrors}from'./chunk-FKEUXXZS.js';import'./chunk-TAWXH7KX.js';import'./chunk-RTWJTEND.js';import'./chunk-2KOOI5BX.js';import'./chunk-GSHXEKBW.js';import'./chunk-PUI35LBF.js';import'./chunk-B4WUFVLE.js';import'./chunk-DJ356OUX.js';function A(r){return BigInt(Math.round(r*1e9))}function E(r){return Number(r)/1e9}export{E as lamportsToSol,A as sol};//# sourceMappingURL=utils.js.map
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/common.ts"],"names":["sol","amount","lamportsToSol","lamports"],"mappings":"67BAOO,SAASA,CAAAA,CAAIC,EAAwB,CAC1C,OAAO,OAAO,IAAA,CAAK,KAAA,CAAMA,EAAS,GAAa,CAAC,CAClD,CAKO,SAASC,EAAcC,CAAAA,CAA0B,CACtD,OAAO,MAAA,CAAOA,CAAQ,EAAI,GAC5B","file":"utils.js","sourcesContent":["/**\n * Common utility functions for GhostSpeak SDK\n */\n\n/**\n * Convert SOL to lamports\n */\nexport function sol(amount: number): bigint {\n return BigInt(Math.round(amount * 1_000_000_000))\n}\n\n/**\n * Convert lamports to SOL\n */\nexport function lamportsToSol(lamports: bigint): number {\n return Number(lamports) / 1_000_000_000\n}"]}
@@ -0,0 +1,2 @@
1
+ export{e as ProofMode,m as clearZkProgramStatusCache,f as generateRangeProofWithCommitment,i as generateTransferProofWithInstruction,h as generateValidityProofWithInstruction,l as getZkProgramAddress,k as getZkProgramStatus,j as isZkProgramAvailable,g as verifyRangeProofLocal}from'./chunk-PPOCDM6G.js';import'./chunk-C2OTQ5YS.js';import'./chunk-DJ356OUX.js';//# sourceMappingURL=zk-proof-builder-GXZ42QZA.js.map
2
+ //# sourceMappingURL=zk-proof-builder-GXZ42QZA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"zk-proof-builder-GXZ42QZA.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ghostspeak/sdk",
3
- "version": "1.7.1",
3
+ "version": "2.0.0",
4
4
  "description": "TypeScript SDK for GhostSpeak AI Agent Commerce Protocol - Production Ready Beta",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,6 +10,30 @@
10
10
  ".": {
11
11
  "import": "./dist/index.js",
12
12
  "types": "./dist/index.d.ts"
13
+ },
14
+ "./client": {
15
+ "import": "./dist/client.js",
16
+ "types": "./dist/client.d.ts"
17
+ },
18
+ "./types": {
19
+ "import": "./dist/types.js",
20
+ "types": "./dist/types.d.ts"
21
+ },
22
+ "./errors": {
23
+ "import": "./dist/errors.js",
24
+ "types": "./dist/errors.d.ts"
25
+ },
26
+ "./crypto": {
27
+ "import": "./dist/crypto.js",
28
+ "types": "./dist/crypto.d.ts"
29
+ },
30
+ "./utils": {
31
+ "import": "./dist/utils.js",
32
+ "types": "./dist/utils.d.ts"
33
+ },
34
+ "./minimal": {
35
+ "import": "./dist/minimal/core-minimal.js",
36
+ "types": "./dist/minimal/core-minimal.d.ts"
13
37
  }
14
38
  },
15
39
  "files": [
@@ -19,6 +43,7 @@
19
43
  "build": "bun run build:wasm && tsup",
20
44
  "build:wasm": "bun run wasm:build",
21
45
  "build:dev": "tsup --watch",
46
+ "build:analyze": "NODE_ENV=production tsup && tsx scripts/analyze-bundle.ts",
22
47
  "dev": "tsup --watch",
23
48
  "type-check": "tsc --noEmit",
24
49
  "test": "vitest",
@@ -127,6 +152,7 @@
127
152
  "@vitest/coverage-v8": "^3.2.4",
128
153
  "@vitest/ui": "^3.2.4",
129
154
  "eslint": "^9.31.0",
155
+ "glob": "^10.4.5",
130
156
  "tsup": "^8.0.0",
131
157
  "tsx": "^4.20.3",
132
158
  "typescript": "^5.3.0",