@framers/agentos-ext-anchor-providers 1.1.0 → 1.2.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.
Files changed (60) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +38 -16
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/providers/EthereumProvider.d.ts +48 -4
  7. package/dist/providers/EthereumProvider.d.ts.map +1 -1
  8. package/dist/providers/EthereumProvider.js +261 -27
  9. package/dist/providers/EthereumProvider.js.map +1 -1
  10. package/dist/providers/OpenTimestampsProvider.d.ts +26 -2
  11. package/dist/providers/OpenTimestampsProvider.d.ts.map +1 -1
  12. package/dist/providers/OpenTimestampsProvider.js +141 -26
  13. package/dist/providers/OpenTimestampsProvider.js.map +1 -1
  14. package/dist/providers/RekorProvider.d.ts +32 -3
  15. package/dist/providers/RekorProvider.d.ts.map +1 -1
  16. package/dist/providers/RekorProvider.js +212 -25
  17. package/dist/providers/RekorProvider.js.map +1 -1
  18. package/dist/providers/SolanaProvider.d.ts +58 -4
  19. package/dist/providers/SolanaProvider.d.ts.map +1 -1
  20. package/dist/providers/SolanaProvider.js +310 -25
  21. package/dist/providers/SolanaProvider.js.map +1 -1
  22. package/dist/providers/WormSnapshotProvider.d.ts +30 -2
  23. package/dist/providers/WormSnapshotProvider.d.ts.map +1 -1
  24. package/dist/providers/WormSnapshotProvider.js +176 -27
  25. package/dist/providers/WormSnapshotProvider.js.map +1 -1
  26. package/dist/register.d.ts.map +1 -1
  27. package/dist/register.js +1 -0
  28. package/dist/register.js.map +1 -1
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/types.js +1 -0
  31. package/dist/types.js.map +1 -1
  32. package/dist/utils/http-client.d.ts.map +1 -1
  33. package/dist/utils/http-client.js +1 -0
  34. package/dist/utils/http-client.js.map +1 -1
  35. package/dist/utils/index.d.ts.map +1 -1
  36. package/dist/utils/index.js +1 -0
  37. package/dist/utils/index.js.map +1 -1
  38. package/dist/utils/serialization.d.ts.map +1 -1
  39. package/dist/utils/serialization.js +1 -0
  40. package/dist/utils/serialization.js.map +1 -1
  41. package/manifest.json +5 -5
  42. package/package.json +26 -21
  43. package/CHANGELOG.md +0 -16
  44. package/src/index.ts +0 -59
  45. package/src/providers/EthereumProvider.ts +0 -87
  46. package/src/providers/OpenTimestampsProvider.ts +0 -86
  47. package/src/providers/RekorProvider.ts +0 -82
  48. package/src/providers/SolanaProvider.ts +0 -439
  49. package/src/providers/WormSnapshotProvider.ts +0 -84
  50. package/src/register.ts +0 -69
  51. package/src/types.ts +0 -27
  52. package/src/utils/http-client.ts +0 -75
  53. package/src/utils/index.ts +0 -3
  54. package/src/utils/serialization.ts +0 -33
  55. package/test/integration.spec.ts +0 -175
  56. package/test/providers.spec.ts +0 -163
  57. package/test/register.spec.ts +0 -69
  58. package/test/types.spec.ts +0 -55
  59. package/test/utils.spec.ts +0 -225
  60. package/tsconfig.json +0 -21
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  /**
2
3
  * @file SolanaProvider.ts
3
4
  * @description Solana on-chain anchor provider (Wunderland-compatible).
@@ -17,17 +18,67 @@ import { existsSync, readFileSync } from 'fs';
17
18
  import { resolveBaseConfig } from '../types.js';
18
19
  import { hashCanonicalAnchor } from '../utils/serialization.js';
19
20
  const DEFAULT_HEXACO = [800, 450, 650, 750, 850, 700];
21
+ const SIGN_DOMAIN = Buffer.from('WUNDERLAND_SOL_V2', 'utf8');
22
+ const ACTION_CREATE_ENCLAVE = 1;
23
+ const ACTION_ANCHOR_POST = 2;
24
+ const ENTRY_KIND_POST = 0;
25
+ const AGENT_IDENTITY_DATA_SIZE = 219;
20
26
  function instructionDiscriminator(methodName) {
21
27
  return createHash('sha256')
22
28
  .update(`global:${methodName}`)
23
29
  .digest()
24
30
  .subarray(0, 8);
25
31
  }
32
+ // ── base58 (needed for getProgramAccounts memcmp discriminator filter) ─────
33
+ const BASE58_ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
34
+ function base58Encode(bytes) {
35
+ if (bytes.length === 0)
36
+ return '';
37
+ const digits = [0];
38
+ for (const byte of bytes) {
39
+ let carry = byte;
40
+ for (let i = 0; i < digits.length; i += 1) {
41
+ carry += (digits[i] ?? 0) << 8;
42
+ digits[i] = carry % 58;
43
+ carry = (carry / 58) | 0;
44
+ }
45
+ while (carry > 0) {
46
+ digits.push(carry % 58);
47
+ carry = (carry / 58) | 0;
48
+ }
49
+ }
50
+ // Preserve leading zeros (bs58 behavior).
51
+ for (let k = 0; k < bytes.length && bytes[k] === 0 && k < bytes.length - 1; k += 1) {
52
+ digits.push(0);
53
+ }
54
+ return digits
55
+ .reverse()
56
+ .map((d) => BASE58_ALPHABET[d] ?? '')
57
+ .join('');
58
+ }
59
+ function accountDiscriminator(accountName) {
60
+ return createHash('sha256').update(`account:${accountName}`).digest().subarray(0, 8);
61
+ }
26
62
  function encodeName32(displayName) {
27
63
  const bytes = Buffer.alloc(32, 0);
28
64
  Buffer.from(displayName, 'utf-8').copy(bytes, 0, 0, Math.min(displayName.length, 32));
29
65
  return bytes;
30
66
  }
67
+ function normalizeEnclaveName(name) {
68
+ return name.trim().toLowerCase();
69
+ }
70
+ function enclaveNameHash(name) {
71
+ return createHash('sha256').update(normalizeEnclaveName(name), 'utf8').digest();
72
+ }
73
+ function buildAgentMessage(opts) {
74
+ return Buffer.concat([
75
+ SIGN_DOMAIN,
76
+ Buffer.from([opts.action & 0xff]),
77
+ opts.programId,
78
+ opts.agentIdentityPda,
79
+ opts.payload,
80
+ ]);
81
+ }
31
82
  function parseSolExternalRef(externalRef) {
32
83
  // Format: sol:<cluster>:<postPda>:<txSignature>
33
84
  const parts = externalRef.split(':');
@@ -54,6 +105,16 @@ function canonicalizeSolanaManifest(anchor) {
54
105
  timestamp: anchor.timestamp,
55
106
  });
56
107
  }
108
+ // Account decoding offsets (must match on-chain Anchor structs).
109
+ const AGENT_TOTAL_ENTRIES_OFFSET = 8 + 32 + 32 + 32 + 32 + 12 + 1 + 8; // 157
110
+ const POST_CONTENT_HASH_OFFSET = 8 + 32 + 32 + 1 + 32 + 4; // 109
111
+ function decodeAgentTotalEntries(agentData) {
112
+ const minLen = AGENT_TOTAL_ENTRIES_OFFSET + 4;
113
+ if (agentData.length < minLen) {
114
+ throw new Error(`AgentIdentity account data too small (${agentData.length} bytes).`);
115
+ }
116
+ return agentData.readUInt32LE(AGENT_TOTAL_ENTRIES_OFFSET);
117
+ }
57
118
  export class SolanaProvider {
58
119
  id = 'solana';
59
120
  name = 'Solana On-Chain Anchor (Wunderland)';
@@ -64,7 +125,9 @@ export class SolanaProvider {
64
125
  this.config = {
65
126
  cluster: 'devnet',
66
127
  commitment: 'confirmed',
67
- autoInitializeAgent: true,
128
+ enclaveName: 'wunderland',
129
+ autoCreateEnclave: false,
130
+ autoInitializeAgent: false,
68
131
  agentDisplayName: 'AgentOS',
69
132
  ...config,
70
133
  };
@@ -92,47 +155,168 @@ export class SolanaProvider {
92
155
  const signer = await this.loadSigner(web3);
93
156
  const connection = new web3.Connection(this.config.rpcUrl, this.config.commitment);
94
157
  const programId = new web3.PublicKey(this.config.programId);
95
- // ── Derive agent PDA ────────────────────────────────────────────────
96
- const [agentPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('agent'), signer.publicKey.toBuffer()], programId);
97
- // ── Ensure agent exists (optional auto-init) ────────────────────────
98
- let agentInfo = await connection.getAccountInfo(agentPda, this.config.commitment);
158
+ const [configPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('config')], programId);
159
+ const [treasuryPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('treasury')], programId);
160
+ const [economicsPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('econ')], programId);
161
+ const cfgInfo = await connection.getAccountInfo(configPda, this.config.commitment);
162
+ if (!cfgInfo) {
163
+ throw new Error('ProgramConfig not found. Run initialize_config as the program upgrade authority before anchoring.');
164
+ }
165
+ const econInfo = await connection.getAccountInfo(economicsPda, this.config.commitment);
166
+ if (!econInfo && this.config.autoInitializeAgent) {
167
+ throw new Error('EconomicsConfig not found. Run initialize_economics as the program authority before using autoInitializeAgent.');
168
+ }
169
+ const agentId = (() => {
170
+ if (this.config.agentIdHex) {
171
+ const cleaned = this.config.agentIdHex.trim().toLowerCase();
172
+ if (!/^[0-9a-f]{64}$/.test(cleaned)) {
173
+ throw new Error(`agentIdHex must be 64 hex chars (got ${this.config.agentIdHex.length}).`);
174
+ }
175
+ return Buffer.from(cleaned, 'hex');
176
+ }
177
+ return createHash('sha256')
178
+ .update(`agentos:${signer.publicKey.toBase58()}`, 'utf8')
179
+ .digest();
180
+ })();
181
+ if (agentId.length !== 32) {
182
+ throw new Error(`agentId must be 32 bytes (got ${agentId.length}).`);
183
+ }
184
+ // ── Ensure agent exists (optional auto-init) ───────────────────────
185
+ const owner = await this.tryLoadOwnerSigner(web3);
186
+ // Preferred: derive via owner (fast, avoids full scan).
187
+ const derivedAgentPda = owner
188
+ ? web3.PublicKey.findProgramAddressSync([Buffer.from('agent'), owner.publicKey.toBuffer(), agentId], programId)[0]
189
+ : null;
190
+ const derivedAgentInfo = derivedAgentPda
191
+ ? await connection.getAccountInfo(derivedAgentPda, this.config.commitment)
192
+ : null;
193
+ const found = derivedAgentInfo
194
+ ? { pda: derivedAgentPda, info: derivedAgentInfo }
195
+ : await this.findAgentIdentityBySearch({
196
+ connection,
197
+ web3,
198
+ programId,
199
+ agentId,
200
+ agentSigner: signer.publicKey,
201
+ });
202
+ let agentPda = found?.pda ?? derivedAgentPda;
203
+ let agentInfo = found?.info ?? derivedAgentInfo;
99
204
  if (!agentInfo && this.config.autoInitializeAgent) {
205
+ if (!owner) {
206
+ throw new Error('autoInitializeAgent requires owner signer configuration. Provide one of: ownerSecretKeyJson, ownerKeypairPath, ownerPrivateKeyBase58 (or legacy registrar* aliases).');
207
+ }
208
+ if (owner.publicKey.equals(signer.publicKey)) {
209
+ throw new Error('Invalid config: owner wallet must not equal agent signer (agent_signer != owner).');
210
+ }
211
+ // Ensure we use the owner-derived PDA for initialization.
212
+ const [initAgentPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('agent'), owner.publicKey.toBuffer(), agentId], programId);
213
+ agentPda = initAgentPda;
214
+ const [vaultPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('vault'), agentPda.toBuffer()], programId);
215
+ const [ownerCounterPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('owner_counter'), owner.publicKey.toBuffer()], programId);
100
216
  const displayName = this.config.agentDisplayName || 'AgentOS';
101
217
  const traits = this.config.agentHexacoTraits || DEFAULT_HEXACO;
102
- const initData = Buffer.alloc(8 + 32 + 12);
103
- instructionDiscriminator('initialize_agent').copy(initData, 0);
104
- encodeName32(displayName).copy(initData, 8);
218
+ const traitBytes = Buffer.alloc(12);
105
219
  for (let i = 0; i < 6; i++) {
106
220
  const val = traits[i];
107
221
  if (val < 0 || val > 1000) {
108
222
  throw new Error(`Invalid agentHexacoTraits[${i}] value: ${val} (expected 0..1000)`);
109
223
  }
110
- initData.writeUInt16LE(val, 8 + 32 + i * 2);
224
+ traitBytes.writeUInt16LE(val >>> 0, i * 2);
111
225
  }
112
- const ix = new web3.TransactionInstruction({
226
+ const metadataHash = createHash('sha256')
227
+ .update(JSON.stringify({
228
+ schema: 'wunderland.agent-metadata.v1',
229
+ displayName,
230
+ hexacoU16: traits,
231
+ createdBy: 'agentos.solana-provider',
232
+ agentIdHex: agentId.toString('hex'),
233
+ }), 'utf8')
234
+ .digest();
235
+ const initData = Buffer.concat([
236
+ instructionDiscriminator('initialize_agent'),
237
+ agentId,
238
+ encodeName32(displayName),
239
+ traitBytes,
240
+ metadataHash,
241
+ signer.publicKey.toBuffer(), // agent_signer
242
+ ]);
243
+ const initIx = new web3.TransactionInstruction({
113
244
  programId,
114
245
  keys: [
246
+ { pubkey: configPda, isSigner: false, isWritable: true },
247
+ { pubkey: treasuryPda, isSigner: false, isWritable: true },
248
+ { pubkey: economicsPda, isSigner: false, isWritable: false },
249
+ { pubkey: ownerCounterPda, isSigner: false, isWritable: true },
250
+ { pubkey: owner.publicKey, isSigner: true, isWritable: true },
115
251
  { pubkey: agentPda, isSigner: false, isWritable: true },
116
- { pubkey: signer.publicKey, isSigner: true, isWritable: true },
252
+ { pubkey: vaultPda, isSigner: false, isWritable: true },
117
253
  { pubkey: web3.SystemProgram.programId, isSigner: false, isWritable: false },
118
254
  ],
119
255
  data: initData,
120
256
  });
121
- const tx = new web3.Transaction().add(ix);
122
- await web3.sendAndConfirmTransaction(connection, tx, [signer]);
257
+ const initTx = new web3.Transaction().add(initIx);
258
+ initTx.feePayer = owner.publicKey;
259
+ await web3.sendAndConfirmTransaction(connection, initTx, [owner]);
123
260
  agentInfo = await connection.getAccountInfo(agentPda, this.config.commitment);
124
261
  }
125
- if (!agentInfo) {
126
- throw new Error('AgentIdentity not found. Provide a registered signer or enable autoInitializeAgent.');
262
+ if (!agentPda || !agentInfo) {
263
+ throw new Error(`AgentIdentity not found. Register this agent on-chain (initialize_agent) or enable autoInitializeAgent with an owner signer. agentId=${agentId.toString('hex')}, agentSigner=${signer.publicKey.toBase58()}`);
127
264
  }
128
- // total_posts is at offset 8 + 32 + 32 + 12 + 1 + 8 = 93
129
- const agentData = Buffer.from(agentInfo.data);
130
- if (agentData.length < 97) {
131
- throw new Error(`AgentIdentity account data too small (${agentData.length} bytes).`);
265
+ // ── Ensure enclave exists (optional auto-create) ───────────────────
266
+ const enclaveName = this.config.enclaveName || 'wunderland';
267
+ const nameHash = enclaveNameHash(enclaveName);
268
+ const [enclavePda] = web3.PublicKey.findProgramAddressSync([Buffer.from('enclave'), nameHash], programId);
269
+ const [enclaveTreasuryPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('enclave_treasury'), enclavePda.toBuffer()], programId);
270
+ let enclaveInfo = await connection.getAccountInfo(enclavePda, this.config.commitment);
271
+ if (!enclaveInfo && this.config.autoCreateEnclave) {
272
+ const metadataHash = createHash('sha256')
273
+ .update(JSON.stringify({
274
+ schema: 'wunderland.enclave-metadata.v1',
275
+ name: normalizeEnclaveName(enclaveName),
276
+ createdBy: 'agentos.solana-provider',
277
+ }), 'utf8')
278
+ .digest();
279
+ const payload = Buffer.concat([nameHash, metadataHash]);
280
+ const message = buildAgentMessage({
281
+ action: ACTION_CREATE_ENCLAVE,
282
+ programId: programId.toBuffer(),
283
+ agentIdentityPda: agentPda.toBuffer(),
284
+ payload,
285
+ });
286
+ const ed25519Ix = web3.Ed25519Program.createInstructionWithPrivateKey({
287
+ privateKey: signer.secretKey,
288
+ message,
289
+ });
290
+ const createData = Buffer.concat([
291
+ instructionDiscriminator('create_enclave'),
292
+ nameHash,
293
+ metadataHash,
294
+ ]);
295
+ const createIx = new web3.TransactionInstruction({
296
+ programId,
297
+ keys: [
298
+ { pubkey: configPda, isSigner: false, isWritable: true },
299
+ { pubkey: agentPda, isSigner: false, isWritable: false },
300
+ { pubkey: enclavePda, isSigner: false, isWritable: true },
301
+ { pubkey: enclaveTreasuryPda, isSigner: false, isWritable: true },
302
+ { pubkey: signer.publicKey, isSigner: true, isWritable: true },
303
+ { pubkey: web3.SYSVAR_INSTRUCTIONS_PUBKEY, isSigner: false, isWritable: false },
304
+ { pubkey: web3.SystemProgram.programId, isSigner: false, isWritable: false },
305
+ ],
306
+ data: createData,
307
+ });
308
+ const createTx = new web3.Transaction().add(ed25519Ix, createIx);
309
+ createTx.feePayer = signer.publicKey;
310
+ await web3.sendAndConfirmTransaction(connection, createTx, [signer]);
311
+ enclaveInfo = await connection.getAccountInfo(enclavePda, this.config.commitment);
132
312
  }
133
- const postIndex = agentData.readUInt32LE(93);
313
+ if (!enclaveInfo) {
314
+ throw new Error(`Enclave not found (${enclavePda.toBase58()}). Create it on-chain or enable autoCreateEnclave.`);
315
+ }
316
+ const agentData = Buffer.from(agentInfo.data);
317
+ const entryIndex = decodeAgentTotalEntries(agentData);
134
318
  const indexBuf = Buffer.alloc(4);
135
- indexBuf.writeUInt32LE(postIndex);
319
+ indexBuf.writeUInt32LE(entryIndex >>> 0, 0);
136
320
  const [postPda] = web3.PublicKey.findProgramAddressSync([Buffer.from('post'), agentPda.toBuffer(), indexBuf], programId);
137
321
  // ── Hashes ──────────────────────────────────────────────────────────
138
322
  const contentHashHex = await hashCanonicalAnchor(anchor);
@@ -142,6 +326,24 @@ export class SolanaProvider {
142
326
  if (contentHash.length !== 32 || manifestHash.length !== 32) {
143
327
  throw new Error('Computed hashes are not 32 bytes.');
144
328
  }
329
+ const payload = Buffer.concat([
330
+ enclavePda.toBuffer(),
331
+ Buffer.from([ENTRY_KIND_POST]),
332
+ Buffer.alloc(32, 0), // reply_to = none
333
+ indexBuf,
334
+ contentHash,
335
+ manifestHash,
336
+ ]);
337
+ const message = buildAgentMessage({
338
+ action: ACTION_ANCHOR_POST,
339
+ programId: programId.toBuffer(),
340
+ agentIdentityPda: agentPda.toBuffer(),
341
+ payload,
342
+ });
343
+ const ed25519Ix = web3.Ed25519Program.createInstructionWithPrivateKey({
344
+ privateKey: signer.secretKey,
345
+ message,
346
+ });
145
347
  const data = Buffer.concat([
146
348
  instructionDiscriminator('anchor_post'),
147
349
  contentHash,
@@ -152,12 +354,15 @@ export class SolanaProvider {
152
354
  keys: [
153
355
  { pubkey: postPda, isSigner: false, isWritable: true },
154
356
  { pubkey: agentPda, isSigner: false, isWritable: true },
357
+ { pubkey: enclavePda, isSigner: false, isWritable: false },
155
358
  { pubkey: signer.publicKey, isSigner: true, isWritable: true },
359
+ { pubkey: web3.SYSVAR_INSTRUCTIONS_PUBKEY, isSigner: false, isWritable: false },
156
360
  { pubkey: web3.SystemProgram.programId, isSigner: false, isWritable: false },
157
361
  ],
158
362
  data,
159
363
  });
160
- const postTx = new web3.Transaction().add(postIx);
364
+ const postTx = new web3.Transaction().add(ed25519Ix, postIx);
365
+ postTx.feePayer = signer.publicKey;
161
366
  const txSignature = await web3.sendAndConfirmTransaction(connection, postTx, [signer]);
162
367
  return {
163
368
  providerId: this.id,
@@ -169,7 +374,8 @@ export class SolanaProvider {
169
374
  commitment: this.config.commitment,
170
375
  postPda: postPda.toBase58(),
171
376
  agentPda: agentPda.toBase58(),
172
- postIndex,
377
+ enclavePda: enclavePda.toBase58(),
378
+ postIndex: entryIndex,
173
379
  txSignature,
174
380
  },
175
381
  };
@@ -197,8 +403,7 @@ export class SolanaProvider {
197
403
  if (!postInfo)
198
404
  return false;
199
405
  const data = Buffer.from(postInfo.data);
200
- // discriminator (8) + agent (32) + post_index (4)
201
- const offset = 8 + 32 + 4;
406
+ const offset = POST_CONTENT_HASH_OFFSET;
202
407
  if (data.length < offset + 64)
203
408
  return false;
204
409
  const onChainContentHash = data.subarray(offset, offset + 32);
@@ -242,6 +447,10 @@ export class SolanaProvider {
242
447
  }
243
448
  throw new Error('Missing signer configuration. Provide one of: signerSecretKeyJson, signerKeypairPath, signerPrivateKeyBase58.');
244
449
  }
450
+ async loadRegistrarSigner(web3) {
451
+ // Deprecated: retain method for backward compatibility, but treat "registrar" as "owner".
452
+ return this.loadOwnerSigner(web3);
453
+ }
245
454
  async loadBs58() {
246
455
  const moduleName = 'bs58';
247
456
  try {
@@ -252,5 +461,81 @@ export class SolanaProvider {
252
461
  throw new Error('signerPrivateKeyBase58 requires the optional dependency "bs58" at runtime.');
253
462
  }
254
463
  }
464
+ async tryLoadOwnerSigner(web3) {
465
+ try {
466
+ return await this.loadOwnerSigner(web3);
467
+ }
468
+ catch {
469
+ return null;
470
+ }
471
+ }
472
+ async loadOwnerSigner(web3) {
473
+ if (this.config.ownerSecretKeyJson && this.config.ownerSecretKeyJson.length > 0) {
474
+ return web3.Keypair.fromSecretKey(Uint8Array.from(this.config.ownerSecretKeyJson));
475
+ }
476
+ if (this.config.ownerKeypairPath) {
477
+ if (!existsSync(this.config.ownerKeypairPath)) {
478
+ throw new Error(`ownerKeypairPath does not exist: ${this.config.ownerKeypairPath}`);
479
+ }
480
+ const raw = JSON.parse(readFileSync(this.config.ownerKeypairPath, 'utf-8'));
481
+ return web3.Keypair.fromSecretKey(Uint8Array.from(raw));
482
+ }
483
+ if (this.config.ownerPrivateKeyBase58) {
484
+ const bs58 = await this.loadBs58();
485
+ const secretKey = bs58.decode(this.config.ownerPrivateKeyBase58);
486
+ return web3.Keypair.fromSecretKey(secretKey);
487
+ }
488
+ // Legacy aliases
489
+ if (this.config.registrarSecretKeyJson && this.config.registrarSecretKeyJson.length > 0) {
490
+ return web3.Keypair.fromSecretKey(Uint8Array.from(this.config.registrarSecretKeyJson));
491
+ }
492
+ if (this.config.registrarKeypairPath) {
493
+ if (!existsSync(this.config.registrarKeypairPath)) {
494
+ throw new Error(`registrarKeypairPath does not exist: ${this.config.registrarKeypairPath}`);
495
+ }
496
+ const raw = JSON.parse(readFileSync(this.config.registrarKeypairPath, 'utf-8'));
497
+ return web3.Keypair.fromSecretKey(Uint8Array.from(raw));
498
+ }
499
+ if (this.config.registrarPrivateKeyBase58) {
500
+ const bs58 = await this.loadBs58();
501
+ const secretKey = bs58.decode(this.config.registrarPrivateKeyBase58);
502
+ return web3.Keypair.fromSecretKey(secretKey);
503
+ }
504
+ throw new Error('Missing owner signer configuration. Provide one of: ownerSecretKeyJson, ownerKeypairPath, ownerPrivateKeyBase58 (or legacy registrar* aliases).');
505
+ }
506
+ async findAgentIdentityBySearch(opts) {
507
+ try {
508
+ const disc = accountDiscriminator('AgentIdentity');
509
+ const discBase58 = base58Encode(disc);
510
+ const agentIdBase58 = base58Encode(opts.agentId);
511
+ // Account layout (current): disc(8) + owner(32) + agent_id(32) + agent_signer(32) + ...
512
+ const AGENT_ID_OFFSET = 8 + 32;
513
+ const AGENT_SIGNER_OFFSET = 8 + 32 + 32;
514
+ const accounts = await opts.connection.getProgramAccounts(opts.programId, {
515
+ filters: [
516
+ { dataSize: AGENT_IDENTITY_DATA_SIZE },
517
+ { memcmp: { offset: 0, bytes: discBase58 } },
518
+ { memcmp: { offset: AGENT_ID_OFFSET, bytes: agentIdBase58 } },
519
+ { memcmp: { offset: AGENT_SIGNER_OFFSET, bytes: opts.agentSigner.toBase58() } },
520
+ ],
521
+ });
522
+ if (!Array.isArray(accounts) || accounts.length === 0)
523
+ return null;
524
+ if (accounts.length > 1) {
525
+ // Should not happen when filtering by both agent_id + agent_signer, but guard anyway.
526
+ throw new Error(`Multiple AgentIdentity accounts matched (count=${accounts.length}).`);
527
+ }
528
+ const acc = accounts[0];
529
+ if (!acc?.pubkey || !acc?.account?.data)
530
+ return null;
531
+ return {
532
+ pda: acc.pubkey,
533
+ info: { data: acc.account.data },
534
+ };
535
+ }
536
+ catch {
537
+ return null;
538
+ }
539
+ }
255
540
  }
256
541
  //# sourceMappingURL=SolanaProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolanaProvider.js","sourceRoot":"","sources":["../../src/providers/SolanaProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SolanaProvider.js","sourceRoot":"","sources":["../../src/providers/SolanaProvider.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,16 @@
1
1
  /**
2
2
  * @file WormSnapshotProvider.ts
3
3
  * @description S3 Object Lock / WORM storage anchor provider.
4
- * Publishes anchor records to an S3 bucket with Object Lock governance/compliance retention.
4
+ *
5
+ * `publish()` writes the canonical anchor JSON to an S3 bucket with
6
+ * Object Lock retention so the object cannot be overwritten or deleted
7
+ * before the configured retention date. `verify()` issues a HeadObject
8
+ * and confirms the active retention window is still in the future.
5
9
  *
6
10
  * Proof level: `externally-archived`
7
- * Required peer dependency: `@aws-sdk/client-s3`
11
+ * Required peer dependency: `@aws-sdk/client-s3` (loaded via dynamic
12
+ * import at runtime so projects that don't use this provider don't pay
13
+ * the bundle cost).
8
14
  *
9
15
  * @module @framers/agentos-ext-anchor-providers
10
16
  */
@@ -21,6 +27,14 @@ export interface WormSnapshotProviderConfig extends BaseProviderConfig {
21
27
  retentionDays?: number;
22
28
  /** Retention mode: 'GOVERNANCE' or 'COMPLIANCE'. Default: 'GOVERNANCE'. */
23
29
  retentionMode?: 'GOVERNANCE' | 'COMPLIANCE';
30
+ /** Optional explicit credentials (otherwise the AWS SDK chain is used). */
31
+ credentials?: {
32
+ accessKeyId: string;
33
+ secretAccessKey: string;
34
+ sessionToken?: string;
35
+ };
36
+ /** Custom endpoint URL (S3-compatible stores: MinIO, etc.). */
37
+ endpoint?: string;
24
38
  }
25
39
  export declare class WormSnapshotProvider implements AnchorProvider {
26
40
  readonly id = "worm-snapshot";
@@ -28,8 +42,22 @@ export declare class WormSnapshotProvider implements AnchorProvider {
28
42
  readonly proofLevel: ProofLevel;
29
43
  private readonly config;
30
44
  private readonly baseConfig;
45
+ /** Cached S3Client instance — reused across publish/verify calls. */
46
+ private cachedClient;
31
47
  constructor(config: WormSnapshotProviderConfig);
32
48
  publish(anchor: AnchorRecord): Promise<AnchorProviderResult>;
49
+ /**
50
+ * Verify the stored object still exists in the bucket and that its
51
+ * Object Lock retention window has not expired. Does NOT re-hash the
52
+ * stored body (that would require GetObject + a network read of the
53
+ * whole anchor); checks the metadata `sha256` against the recomputed
54
+ * canonical anchor hash for a constant-time integrity signal.
55
+ */
33
56
  verify(anchor: AnchorRecord): Promise<boolean>;
57
+ dispose(): Promise<void>;
58
+ /** Dynamic-import the AWS SDK so the package isn't a hard dep. */
59
+ private loadSdk;
60
+ /** Build/cache an S3Client with this provider's config. */
61
+ private getClient;
34
62
  }
35
63
  //# sourceMappingURL=WormSnapshotProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WormSnapshotProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WormSnapshotProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;CAC7C;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,oCAAoC;IACjD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAyB;IAExD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;gBAE9C,MAAM,EAAE,0BAA0B;IAUxC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8B5D,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAMrD"}
1
+ {"version":3,"file":"WormSnapshotProvider.d.ts","sourceRoot":"","sources":["../../src/providers/WormSnapshotProvider.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB;IACpE,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IAC5C,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,EAAE,mBAAmB;IAC9B,QAAQ,CAAC,IAAI,oCAAoC;IACjD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAyB;IAExD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGrB;IACF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA+B;IAE1D,qEAAqE;IACrE,OAAO,CAAC,YAAY,CAAa;gBAErB,MAAM,EAAE,0BAA0B;IAoBxC,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA2ElE;;;;;;OAMG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAyC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,kEAAkE;YACpD,OAAO;IAYrB,2DAA2D;YAC7C,SAAS;CAmBxB"}