@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.
- package/LICENSE +98 -0
- package/README.md +38 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/EthereumProvider.d.ts +48 -4
- package/dist/providers/EthereumProvider.d.ts.map +1 -1
- package/dist/providers/EthereumProvider.js +261 -27
- package/dist/providers/EthereumProvider.js.map +1 -1
- package/dist/providers/OpenTimestampsProvider.d.ts +26 -2
- package/dist/providers/OpenTimestampsProvider.d.ts.map +1 -1
- package/dist/providers/OpenTimestampsProvider.js +141 -26
- package/dist/providers/OpenTimestampsProvider.js.map +1 -1
- package/dist/providers/RekorProvider.d.ts +32 -3
- package/dist/providers/RekorProvider.d.ts.map +1 -1
- package/dist/providers/RekorProvider.js +212 -25
- package/dist/providers/RekorProvider.js.map +1 -1
- package/dist/providers/SolanaProvider.d.ts +58 -4
- package/dist/providers/SolanaProvider.d.ts.map +1 -1
- package/dist/providers/SolanaProvider.js +310 -25
- package/dist/providers/SolanaProvider.js.map +1 -1
- package/dist/providers/WormSnapshotProvider.d.ts +30 -2
- package/dist/providers/WormSnapshotProvider.d.ts.map +1 -1
- package/dist/providers/WormSnapshotProvider.js +176 -27
- package/dist/providers/WormSnapshotProvider.js.map +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +1 -0
- package/dist/register.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/http-client.d.ts.map +1 -1
- package/dist/utils/http-client.js +1 -0
- package/dist/utils/http-client.js.map +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/serialization.d.ts.map +1 -1
- package/dist/utils/serialization.js +1 -0
- package/dist/utils/serialization.js.map +1 -1
- package/manifest.json +5 -5
- package/package.json +26 -21
- package/CHANGELOG.md +0 -16
- package/src/index.ts +0 -59
- package/src/providers/EthereumProvider.ts +0 -87
- package/src/providers/OpenTimestampsProvider.ts +0 -86
- package/src/providers/RekorProvider.ts +0 -82
- package/src/providers/SolanaProvider.ts +0 -439
- package/src/providers/WormSnapshotProvider.ts +0 -84
- package/src/register.ts +0 -69
- package/src/types.ts +0 -27
- package/src/utils/http-client.ts +0 -75
- package/src/utils/index.ts +0 -3
- package/src/utils/serialization.ts +0 -33
- package/test/integration.spec.ts +0 -175
- package/test/providers.spec.ts +0 -163
- package/test/register.spec.ts +0 -69
- package/test/types.spec.ts +0 -55
- package/test/utils.spec.ts +0 -225
- 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
|
-
|
|
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
|
-
|
|
96
|
-
const [
|
|
97
|
-
|
|
98
|
-
|
|
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
|
|
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
|
-
|
|
224
|
+
traitBytes.writeUInt16LE(val >>> 0, i * 2);
|
|
111
225
|
}
|
|
112
|
-
const
|
|
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:
|
|
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
|
|
122
|
-
|
|
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(
|
|
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
|
-
//
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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":"
|
|
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"}
|