@oobe-protocol-labs/synapse-sap-sdk 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/registries/metaplex-bridge.js +236 -6
- package/dist/cjs/registries/metaplex-bridge.js.map +1 -1
- package/dist/esm/registries/metaplex-bridge.js +236 -6
- package/dist/esm/registries/metaplex-bridge.js.map +1 -1
- package/dist/types/registries/index.d.ts +1 -1
- package/dist/types/registries/index.d.ts.map +1 -1
- package/dist/types/registries/metaplex-bridge.d.ts +224 -1
- package/dist/types/registries/metaplex-bridge.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/registries/index.ts +8 -0
- package/src/registries/metaplex-bridge.ts +464 -5
|
@@ -212,6 +212,148 @@ class MetaplexBridge {
|
|
|
212
212
|
return this.firstWeb3Ix(builder, "updateExternalPluginAdapterV1");
|
|
213
213
|
}
|
|
214
214
|
// ─────────────────────────────────────────────────────
|
|
215
|
+
// Write side — combined SAP × MPL register flows (v0.9.3)
|
|
216
|
+
// ─────────────────────────────────────────────────────
|
|
217
|
+
/**
|
|
218
|
+
* @name buildMintAndAttachIxs
|
|
219
|
+
* @description Build the two MPL Core instructions needed to mint a new
|
|
220
|
+
* asset for an existing SAP agent and immediately bind it via the
|
|
221
|
+
* `AgentIdentity` plugin (URI = canonical EIP-8004 URL).
|
|
222
|
+
*
|
|
223
|
+
* Flow:
|
|
224
|
+
* 1. Generate a fresh asset keypair (returned as `assetSecretKey`).
|
|
225
|
+
* 2. Build `mpl_core::create` with the new asset as signer.
|
|
226
|
+
* 3. Build `addExternalPluginAdapterV1` for the AgentIdentity URI.
|
|
227
|
+
*
|
|
228
|
+
* The returned `instructions` are deterministic order. The caller
|
|
229
|
+
* partial-signs the assembled transaction with `assetSecretKey` and the
|
|
230
|
+
* authority/payer wallet.
|
|
231
|
+
*
|
|
232
|
+
* @since v0.9.3
|
|
233
|
+
*/
|
|
234
|
+
async buildMintAndAttachIxs(opts) {
|
|
235
|
+
const { mplCore, umiBundle, umiCore } = await loadMplCore();
|
|
236
|
+
const umi = umiBundle.createUmi(opts.rpcUrl).use(mplCore.mplCore());
|
|
237
|
+
const [sapPda] = (0, pda_1.deriveAgent)(opts.sapAgentOwner);
|
|
238
|
+
const registrationUrl = this.deriveRegistrationUrl(sapPda, opts.registrationBaseUrl);
|
|
239
|
+
const assetUmiSigner = umiCore.generateSigner(umi);
|
|
240
|
+
const assetAddress = new web3_js_1.PublicKey(assetUmiSigner.publicKey.toString());
|
|
241
|
+
const assetSecretKey = assetUmiSigner.secretKey;
|
|
242
|
+
const authority = umiCore.createNoopSigner(umiCore.publicKey(opts.authority.toBase58()));
|
|
243
|
+
const payer = umiCore.createNoopSigner(umiCore.publicKey((opts.payer ?? opts.authority).toBase58()));
|
|
244
|
+
const ownerUmi = opts.owner
|
|
245
|
+
? umiCore.publicKey(opts.owner.toBase58())
|
|
246
|
+
: umiCore.publicKey(opts.authority.toBase58());
|
|
247
|
+
const createBuilder = mplCore.create(umi, {
|
|
248
|
+
asset: assetUmiSigner,
|
|
249
|
+
collection: opts.collection
|
|
250
|
+
? { publicKey: umiCore.publicKey(opts.collection.toBase58()) }
|
|
251
|
+
: undefined,
|
|
252
|
+
authority,
|
|
253
|
+
payer,
|
|
254
|
+
owner: ownerUmi,
|
|
255
|
+
name: opts.name,
|
|
256
|
+
uri: opts.metadataUri,
|
|
257
|
+
});
|
|
258
|
+
const mintIx = await this.firstWeb3Ix(createBuilder, "mpl_core::create");
|
|
259
|
+
const attachIx = await this.buildAddExternalPluginIx({
|
|
260
|
+
asset: assetAddress,
|
|
261
|
+
authority: opts.authority,
|
|
262
|
+
payer: opts.payer ?? opts.authority,
|
|
263
|
+
uri: registrationUrl,
|
|
264
|
+
rpcUrl: opts.rpcUrl,
|
|
265
|
+
});
|
|
266
|
+
return {
|
|
267
|
+
assetAddress,
|
|
268
|
+
assetSecretKey,
|
|
269
|
+
registrationUrl,
|
|
270
|
+
instructions: [mintIx, attachIx],
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* @name buildRegisterSapForMplOwnerIx
|
|
275
|
+
* @description Given an existing MPL Core asset, resolve its on-chain
|
|
276
|
+
* owner and build the SAP `registerAgent` instruction the owner must
|
|
277
|
+
* sign. Idempotent: if a SAP agent already exists for that owner the
|
|
278
|
+
* method returns `instruction: null` with `alreadyRegistered: true`.
|
|
279
|
+
*
|
|
280
|
+
* Use after a wallet has minted (or holds) an MPL Core agent NFT and
|
|
281
|
+
* wants to back-fill a SAP identity at the canonical PDA so the bridge's
|
|
282
|
+
* EIP-8004 URL becomes resolvable.
|
|
283
|
+
*
|
|
284
|
+
* @since v0.9.3
|
|
285
|
+
*/
|
|
286
|
+
async buildRegisterSapForMplOwnerIx(opts) {
|
|
287
|
+
const snap = await this.fetchMplSnapshot(opts.asset, opts.rpcUrl);
|
|
288
|
+
if (!snap) {
|
|
289
|
+
throw new Error(`buildRegisterSapForMplOwnerIx: MPL Core asset ${opts.asset.toBase58()} not readable`);
|
|
290
|
+
}
|
|
291
|
+
const [sapPda] = (0, pda_1.deriveAgent)(snap.owner);
|
|
292
|
+
const existing = await this.fetchAgentNullable(sapPda);
|
|
293
|
+
if (existing) {
|
|
294
|
+
return {
|
|
295
|
+
assetOwner: snap.owner,
|
|
296
|
+
sapAgentPda: sapPda,
|
|
297
|
+
alreadyRegistered: true,
|
|
298
|
+
currentAgentIdentityUri: snap.agentIdentityUri,
|
|
299
|
+
instruction: null,
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
const ix = await this.buildRegisterAgentIx({
|
|
303
|
+
wallet: snap.owner,
|
|
304
|
+
args: opts.registerArgs,
|
|
305
|
+
});
|
|
306
|
+
return {
|
|
307
|
+
assetOwner: snap.owner,
|
|
308
|
+
sapAgentPda: sapPda,
|
|
309
|
+
alreadyRegistered: false,
|
|
310
|
+
currentAgentIdentityUri: snap.agentIdentityUri,
|
|
311
|
+
instruction: ix,
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* @name buildRegisterBothIxs
|
|
316
|
+
* @description Atomic 3-instruction bundle for a wallet that owns
|
|
317
|
+
* neither side: `[SAP registerAgent, MPL Core create, MPL AgentIdentity attach]`.
|
|
318
|
+
* Single transaction, single user signature (plus the ephemeral asset
|
|
319
|
+
* keypair returned in `assetSecretKey`).
|
|
320
|
+
*
|
|
321
|
+
* Throws if a SAP agent already exists for `wallet` — callers should
|
|
322
|
+
* fall through to {@link MetaplexBridge.buildMintAndAttachIxs} instead.
|
|
323
|
+
*
|
|
324
|
+
* @since v0.9.3
|
|
325
|
+
*/
|
|
326
|
+
async buildRegisterBothIxs(opts) {
|
|
327
|
+
const [sapPda] = (0, pda_1.deriveAgent)(opts.wallet);
|
|
328
|
+
const existing = await this.fetchAgentNullable(sapPda);
|
|
329
|
+
if (existing) {
|
|
330
|
+
throw new Error(`buildRegisterBothIxs: SAP agent already exists at ${sapPda.toBase58()}; ` +
|
|
331
|
+
`use buildMintAndAttachIxs instead`);
|
|
332
|
+
}
|
|
333
|
+
const sapIx = await this.buildRegisterAgentIx({
|
|
334
|
+
wallet: opts.wallet,
|
|
335
|
+
args: opts.registerArgs,
|
|
336
|
+
});
|
|
337
|
+
const mint = await this.buildMintAndAttachIxs({
|
|
338
|
+
sapAgentOwner: opts.wallet,
|
|
339
|
+
authority: opts.wallet,
|
|
340
|
+
payer: opts.payer ?? opts.wallet,
|
|
341
|
+
owner: opts.wallet,
|
|
342
|
+
name: opts.mintName,
|
|
343
|
+
metadataUri: opts.mintMetadataUri,
|
|
344
|
+
registrationBaseUrl: opts.registrationBaseUrl,
|
|
345
|
+
rpcUrl: opts.rpcUrl,
|
|
346
|
+
collection: opts.collection,
|
|
347
|
+
});
|
|
348
|
+
return {
|
|
349
|
+
sapAgentPda: sapPda,
|
|
350
|
+
assetAddress: mint.assetAddress,
|
|
351
|
+
assetSecretKey: mint.assetSecretKey,
|
|
352
|
+
registrationUrl: mint.registrationUrl,
|
|
353
|
+
instructions: [sapIx, ...mint.instructions],
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
// ─────────────────────────────────────────────────────
|
|
215
357
|
// Read side
|
|
216
358
|
// ─────────────────────────────────────────────────────
|
|
217
359
|
/**
|
|
@@ -235,7 +377,7 @@ class MetaplexBridge {
|
|
|
235
377
|
}
|
|
236
378
|
let mpl = null;
|
|
237
379
|
if (input.asset) {
|
|
238
|
-
mpl = await this.fetchMplSnapshot(input.asset, input.rpcUrl);
|
|
380
|
+
mpl = await this.fetchMplSnapshot(input.asset, input.rpcUrl, input.rpcHeaders);
|
|
239
381
|
if (!sapPda && mpl?.registration?.synapseAgent) {
|
|
240
382
|
try {
|
|
241
383
|
sapPda = new web3_js_1.PublicKey(mpl.registration.synapseAgent);
|
|
@@ -299,7 +441,7 @@ class MetaplexBridge {
|
|
|
299
441
|
};
|
|
300
442
|
}
|
|
301
443
|
// 2) MPL Core asset resolution
|
|
302
|
-
const mpl = await this.fetchMplSnapshot(asPubkey, input.rpcUrl);
|
|
444
|
+
const mpl = await this.fetchMplSnapshot(asPubkey, input.rpcUrl, input.rpcHeaders);
|
|
303
445
|
if (!mpl) {
|
|
304
446
|
return {
|
|
305
447
|
input: input.identifier,
|
|
@@ -332,7 +474,7 @@ class MetaplexBridge {
|
|
|
332
474
|
* @since v0.9.0
|
|
333
475
|
*/
|
|
334
476
|
async verifyLink(args) {
|
|
335
|
-
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl);
|
|
477
|
+
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl, args.rpcHeaders);
|
|
336
478
|
if (!snap?.agentIdentityUri || !snap.registration)
|
|
337
479
|
return false;
|
|
338
480
|
const expectedSuffix = `/agents/${args.sapAgentPda.toBase58()}/eip-8004.json`;
|
|
@@ -340,6 +482,61 @@ class MetaplexBridge {
|
|
|
340
482
|
return false;
|
|
341
483
|
return snap.registration.synapseAgent === args.sapAgentPda.toBase58();
|
|
342
484
|
}
|
|
485
|
+
/**
|
|
486
|
+
* @name tripleCheckLink
|
|
487
|
+
* @description Explicit 3-layer verification for explorer/host badges.
|
|
488
|
+
* Returns one struct enumerating each check independently so UIs can
|
|
489
|
+
* present partial trust states (e.g. "MPL plugin present, JSON pending").
|
|
490
|
+
*
|
|
491
|
+
* Layers:
|
|
492
|
+
* 1. **mplOnChain** — Asset + AgentIdentity URI fetched on-chain.
|
|
493
|
+
* 2. **eip8004Json** — JSON fetched and `synapseAgent` matches PDA.
|
|
494
|
+
* 3. **sapOnChain** — `AgentAccount` PDA exists on the SAP program.
|
|
495
|
+
*
|
|
496
|
+
* @since v0.9.3
|
|
497
|
+
*/
|
|
498
|
+
async tripleCheckLink(args) {
|
|
499
|
+
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl, args.rpcHeaders);
|
|
500
|
+
if (!snap) {
|
|
501
|
+
const fallbackPda = args.expectedOwner
|
|
502
|
+
? (0, pda_1.deriveAgent)(args.expectedOwner)[0]
|
|
503
|
+
: args.asset;
|
|
504
|
+
return {
|
|
505
|
+
asset: args.asset,
|
|
506
|
+
sapAgentPda: fallbackPda,
|
|
507
|
+
mplOnChain: false,
|
|
508
|
+
eip8004Json: false,
|
|
509
|
+
sapOnChain: false,
|
|
510
|
+
linked: false,
|
|
511
|
+
agentIdentityUri: null,
|
|
512
|
+
registration: null,
|
|
513
|
+
identity: null,
|
|
514
|
+
error: "MPL Core asset not readable on-chain",
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
const owner = args.expectedOwner ?? snap.owner;
|
|
518
|
+
const [sapPda] = (0, pda_1.deriveAgent)(owner);
|
|
519
|
+
const expectedSuffix = `/agents/${sapPda.toBase58()}/eip-8004.json`;
|
|
520
|
+
const mplOnChain = !!snap.agentIdentityUri;
|
|
521
|
+
const eip8004Json = !!snap.registration &&
|
|
522
|
+
!!snap.agentIdentityUri &&
|
|
523
|
+
snap.agentIdentityUri.endsWith(expectedSuffix) &&
|
|
524
|
+
snap.registration.synapseAgent === sapPda.toBase58();
|
|
525
|
+
const identity = await this.fetchAgentNullable(sapPda);
|
|
526
|
+
const sapOnChain = !!identity;
|
|
527
|
+
return {
|
|
528
|
+
asset: args.asset,
|
|
529
|
+
sapAgentPda: sapPda,
|
|
530
|
+
mplOnChain,
|
|
531
|
+
eip8004Json,
|
|
532
|
+
sapOnChain,
|
|
533
|
+
linked: mplOnChain && eip8004Json && sapOnChain,
|
|
534
|
+
agentIdentityUri: snap.agentIdentityUri,
|
|
535
|
+
registration: snap.registration,
|
|
536
|
+
identity,
|
|
537
|
+
error: null,
|
|
538
|
+
};
|
|
539
|
+
}
|
|
343
540
|
// ═════════════════════════════════════════════════════
|
|
344
541
|
// Private — SAP fetching
|
|
345
542
|
// ═════════════════════════════════════════════════════
|
|
@@ -386,9 +583,17 @@ class MetaplexBridge {
|
|
|
386
583
|
// ═════════════════════════════════════════════════════
|
|
387
584
|
// Private — MPL fetching
|
|
388
585
|
// ═════════════════════════════════════════════════════
|
|
389
|
-
async
|
|
390
|
-
const { mplCore, umiBundle
|
|
391
|
-
|
|
586
|
+
async buildUmi(rpcUrl, rpcHeaders) {
|
|
587
|
+
const { mplCore, umiBundle } = await loadMplCore();
|
|
588
|
+
// umi-bundle-defaults.createUmi accepts an options object with httpHeaders
|
|
589
|
+
// since umi 1.x — required for gated providers like Synapse RPC that
|
|
590
|
+
// enforce `x-api-key`. Without it `getAccountInfo` returns 401 silently.
|
|
591
|
+
const umi = umiBundle.createUmi(rpcUrl, rpcHeaders ? { httpHeaders: rpcHeaders } : undefined).use(mplCore.mplCore());
|
|
592
|
+
return umi;
|
|
593
|
+
}
|
|
594
|
+
async fetchMplSnapshot(asset, rpcUrl, rpcHeaders) {
|
|
595
|
+
const { mplCore, umiCore } = await loadMplCore();
|
|
596
|
+
const umi = await this.buildUmi(rpcUrl, rpcHeaders);
|
|
392
597
|
try {
|
|
393
598
|
const fetched = await mplCore.fetchAsset(umi, umiCore.publicKey(asset.toBase58()));
|
|
394
599
|
const owner = new web3_js_1.PublicKey(fetched.owner.toString());
|
|
@@ -469,6 +674,31 @@ class MetaplexBridge {
|
|
|
469
674
|
});
|
|
470
675
|
return this.firstWeb3Ix(builder, "addExternalPluginAdapterV1");
|
|
471
676
|
}
|
|
677
|
+
// ═════════════════════════════════════════════════════
|
|
678
|
+
// Private — SAP instruction building (v0.9.3)
|
|
679
|
+
// ═════════════════════════════════════════════════════
|
|
680
|
+
async buildRegisterAgentIx(args) {
|
|
681
|
+
// Lazy import to avoid a hard cycle with `pda/index.ts`.
|
|
682
|
+
const { deriveGlobalRegistry } = await Promise.resolve().then(() => __importStar(require("../pda")));
|
|
683
|
+
const { SystemProgram } = await Promise.resolve().then(() => __importStar(require("@solana/web3.js")));
|
|
684
|
+
const [agentPda] = (0, pda_1.deriveAgent)(args.wallet);
|
|
685
|
+
const [statsPda] = (0, pda_1.deriveAgentStats)(agentPda);
|
|
686
|
+
const [globalPda] = deriveGlobalRegistry();
|
|
687
|
+
const a = args.args;
|
|
688
|
+
// Cast to `any` to sidestep Anchor's deep generic IDL inference, which
|
|
689
|
+
// otherwise blows TS recursion budget here. Same pattern as BaseModule.
|
|
690
|
+
const methods = this.program.methods;
|
|
691
|
+
return await methods
|
|
692
|
+
.registerAgent(a.name, a.description, a.capabilities, a.pricing, a.protocols, a.agentId ?? null, a.agentUri ?? null, a.x402Endpoint ?? null)
|
|
693
|
+
.accounts({
|
|
694
|
+
wallet: args.wallet,
|
|
695
|
+
agent: agentPda,
|
|
696
|
+
agentStats: statsPda,
|
|
697
|
+
globalRegistry: globalPda,
|
|
698
|
+
systemProgram: SystemProgram.programId,
|
|
699
|
+
})
|
|
700
|
+
.instruction();
|
|
701
|
+
}
|
|
472
702
|
async firstWeb3Ix(builder, name) {
|
|
473
703
|
const items = builder.getInstructions();
|
|
474
704
|
const first = items[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaplex-bridge.js","sourceRoot":"","sources":["../../../src/registries/metaplex-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"metaplex-bridge.js","sourceRoot":"","sources":["../../../src/registries/metaplex-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,6 +176,148 @@ export class MetaplexBridge {
|
|
|
176
176
|
return this.firstWeb3Ix(builder, "updateExternalPluginAdapterV1");
|
|
177
177
|
}
|
|
178
178
|
// ─────────────────────────────────────────────────────
|
|
179
|
+
// Write side — combined SAP × MPL register flows (v0.9.3)
|
|
180
|
+
// ─────────────────────────────────────────────────────
|
|
181
|
+
/**
|
|
182
|
+
* @name buildMintAndAttachIxs
|
|
183
|
+
* @description Build the two MPL Core instructions needed to mint a new
|
|
184
|
+
* asset for an existing SAP agent and immediately bind it via the
|
|
185
|
+
* `AgentIdentity` plugin (URI = canonical EIP-8004 URL).
|
|
186
|
+
*
|
|
187
|
+
* Flow:
|
|
188
|
+
* 1. Generate a fresh asset keypair (returned as `assetSecretKey`).
|
|
189
|
+
* 2. Build `mpl_core::create` with the new asset as signer.
|
|
190
|
+
* 3. Build `addExternalPluginAdapterV1` for the AgentIdentity URI.
|
|
191
|
+
*
|
|
192
|
+
* The returned `instructions` are deterministic order. The caller
|
|
193
|
+
* partial-signs the assembled transaction with `assetSecretKey` and the
|
|
194
|
+
* authority/payer wallet.
|
|
195
|
+
*
|
|
196
|
+
* @since v0.9.3
|
|
197
|
+
*/
|
|
198
|
+
async buildMintAndAttachIxs(opts) {
|
|
199
|
+
const { mplCore, umiBundle, umiCore } = await loadMplCore();
|
|
200
|
+
const umi = umiBundle.createUmi(opts.rpcUrl).use(mplCore.mplCore());
|
|
201
|
+
const [sapPda] = deriveAgent(opts.sapAgentOwner);
|
|
202
|
+
const registrationUrl = this.deriveRegistrationUrl(sapPda, opts.registrationBaseUrl);
|
|
203
|
+
const assetUmiSigner = umiCore.generateSigner(umi);
|
|
204
|
+
const assetAddress = new PublicKey(assetUmiSigner.publicKey.toString());
|
|
205
|
+
const assetSecretKey = assetUmiSigner.secretKey;
|
|
206
|
+
const authority = umiCore.createNoopSigner(umiCore.publicKey(opts.authority.toBase58()));
|
|
207
|
+
const payer = umiCore.createNoopSigner(umiCore.publicKey((opts.payer ?? opts.authority).toBase58()));
|
|
208
|
+
const ownerUmi = opts.owner
|
|
209
|
+
? umiCore.publicKey(opts.owner.toBase58())
|
|
210
|
+
: umiCore.publicKey(opts.authority.toBase58());
|
|
211
|
+
const createBuilder = mplCore.create(umi, {
|
|
212
|
+
asset: assetUmiSigner,
|
|
213
|
+
collection: opts.collection
|
|
214
|
+
? { publicKey: umiCore.publicKey(opts.collection.toBase58()) }
|
|
215
|
+
: undefined,
|
|
216
|
+
authority,
|
|
217
|
+
payer,
|
|
218
|
+
owner: ownerUmi,
|
|
219
|
+
name: opts.name,
|
|
220
|
+
uri: opts.metadataUri,
|
|
221
|
+
});
|
|
222
|
+
const mintIx = await this.firstWeb3Ix(createBuilder, "mpl_core::create");
|
|
223
|
+
const attachIx = await this.buildAddExternalPluginIx({
|
|
224
|
+
asset: assetAddress,
|
|
225
|
+
authority: opts.authority,
|
|
226
|
+
payer: opts.payer ?? opts.authority,
|
|
227
|
+
uri: registrationUrl,
|
|
228
|
+
rpcUrl: opts.rpcUrl,
|
|
229
|
+
});
|
|
230
|
+
return {
|
|
231
|
+
assetAddress,
|
|
232
|
+
assetSecretKey,
|
|
233
|
+
registrationUrl,
|
|
234
|
+
instructions: [mintIx, attachIx],
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* @name buildRegisterSapForMplOwnerIx
|
|
239
|
+
* @description Given an existing MPL Core asset, resolve its on-chain
|
|
240
|
+
* owner and build the SAP `registerAgent` instruction the owner must
|
|
241
|
+
* sign. Idempotent: if a SAP agent already exists for that owner the
|
|
242
|
+
* method returns `instruction: null` with `alreadyRegistered: true`.
|
|
243
|
+
*
|
|
244
|
+
* Use after a wallet has minted (or holds) an MPL Core agent NFT and
|
|
245
|
+
* wants to back-fill a SAP identity at the canonical PDA so the bridge's
|
|
246
|
+
* EIP-8004 URL becomes resolvable.
|
|
247
|
+
*
|
|
248
|
+
* @since v0.9.3
|
|
249
|
+
*/
|
|
250
|
+
async buildRegisterSapForMplOwnerIx(opts) {
|
|
251
|
+
const snap = await this.fetchMplSnapshot(opts.asset, opts.rpcUrl);
|
|
252
|
+
if (!snap) {
|
|
253
|
+
throw new Error(`buildRegisterSapForMplOwnerIx: MPL Core asset ${opts.asset.toBase58()} not readable`);
|
|
254
|
+
}
|
|
255
|
+
const [sapPda] = deriveAgent(snap.owner);
|
|
256
|
+
const existing = await this.fetchAgentNullable(sapPda);
|
|
257
|
+
if (existing) {
|
|
258
|
+
return {
|
|
259
|
+
assetOwner: snap.owner,
|
|
260
|
+
sapAgentPda: sapPda,
|
|
261
|
+
alreadyRegistered: true,
|
|
262
|
+
currentAgentIdentityUri: snap.agentIdentityUri,
|
|
263
|
+
instruction: null,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
const ix = await this.buildRegisterAgentIx({
|
|
267
|
+
wallet: snap.owner,
|
|
268
|
+
args: opts.registerArgs,
|
|
269
|
+
});
|
|
270
|
+
return {
|
|
271
|
+
assetOwner: snap.owner,
|
|
272
|
+
sapAgentPda: sapPda,
|
|
273
|
+
alreadyRegistered: false,
|
|
274
|
+
currentAgentIdentityUri: snap.agentIdentityUri,
|
|
275
|
+
instruction: ix,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* @name buildRegisterBothIxs
|
|
280
|
+
* @description Atomic 3-instruction bundle for a wallet that owns
|
|
281
|
+
* neither side: `[SAP registerAgent, MPL Core create, MPL AgentIdentity attach]`.
|
|
282
|
+
* Single transaction, single user signature (plus the ephemeral asset
|
|
283
|
+
* keypair returned in `assetSecretKey`).
|
|
284
|
+
*
|
|
285
|
+
* Throws if a SAP agent already exists for `wallet` — callers should
|
|
286
|
+
* fall through to {@link MetaplexBridge.buildMintAndAttachIxs} instead.
|
|
287
|
+
*
|
|
288
|
+
* @since v0.9.3
|
|
289
|
+
*/
|
|
290
|
+
async buildRegisterBothIxs(opts) {
|
|
291
|
+
const [sapPda] = deriveAgent(opts.wallet);
|
|
292
|
+
const existing = await this.fetchAgentNullable(sapPda);
|
|
293
|
+
if (existing) {
|
|
294
|
+
throw new Error(`buildRegisterBothIxs: SAP agent already exists at ${sapPda.toBase58()}; ` +
|
|
295
|
+
`use buildMintAndAttachIxs instead`);
|
|
296
|
+
}
|
|
297
|
+
const sapIx = await this.buildRegisterAgentIx({
|
|
298
|
+
wallet: opts.wallet,
|
|
299
|
+
args: opts.registerArgs,
|
|
300
|
+
});
|
|
301
|
+
const mint = await this.buildMintAndAttachIxs({
|
|
302
|
+
sapAgentOwner: opts.wallet,
|
|
303
|
+
authority: opts.wallet,
|
|
304
|
+
payer: opts.payer ?? opts.wallet,
|
|
305
|
+
owner: opts.wallet,
|
|
306
|
+
name: opts.mintName,
|
|
307
|
+
metadataUri: opts.mintMetadataUri,
|
|
308
|
+
registrationBaseUrl: opts.registrationBaseUrl,
|
|
309
|
+
rpcUrl: opts.rpcUrl,
|
|
310
|
+
collection: opts.collection,
|
|
311
|
+
});
|
|
312
|
+
return {
|
|
313
|
+
sapAgentPda: sapPda,
|
|
314
|
+
assetAddress: mint.assetAddress,
|
|
315
|
+
assetSecretKey: mint.assetSecretKey,
|
|
316
|
+
registrationUrl: mint.registrationUrl,
|
|
317
|
+
instructions: [sapIx, ...mint.instructions],
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
// ─────────────────────────────────────────────────────
|
|
179
321
|
// Read side
|
|
180
322
|
// ─────────────────────────────────────────────────────
|
|
181
323
|
/**
|
|
@@ -199,7 +341,7 @@ export class MetaplexBridge {
|
|
|
199
341
|
}
|
|
200
342
|
let mpl = null;
|
|
201
343
|
if (input.asset) {
|
|
202
|
-
mpl = await this.fetchMplSnapshot(input.asset, input.rpcUrl);
|
|
344
|
+
mpl = await this.fetchMplSnapshot(input.asset, input.rpcUrl, input.rpcHeaders);
|
|
203
345
|
if (!sapPda && mpl?.registration?.synapseAgent) {
|
|
204
346
|
try {
|
|
205
347
|
sapPda = new PublicKey(mpl.registration.synapseAgent);
|
|
@@ -263,7 +405,7 @@ export class MetaplexBridge {
|
|
|
263
405
|
};
|
|
264
406
|
}
|
|
265
407
|
// 2) MPL Core asset resolution
|
|
266
|
-
const mpl = await this.fetchMplSnapshot(asPubkey, input.rpcUrl);
|
|
408
|
+
const mpl = await this.fetchMplSnapshot(asPubkey, input.rpcUrl, input.rpcHeaders);
|
|
267
409
|
if (!mpl) {
|
|
268
410
|
return {
|
|
269
411
|
input: input.identifier,
|
|
@@ -296,7 +438,7 @@ export class MetaplexBridge {
|
|
|
296
438
|
* @since v0.9.0
|
|
297
439
|
*/
|
|
298
440
|
async verifyLink(args) {
|
|
299
|
-
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl);
|
|
441
|
+
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl, args.rpcHeaders);
|
|
300
442
|
if (!snap?.agentIdentityUri || !snap.registration)
|
|
301
443
|
return false;
|
|
302
444
|
const expectedSuffix = `/agents/${args.sapAgentPda.toBase58()}/eip-8004.json`;
|
|
@@ -304,6 +446,61 @@ export class MetaplexBridge {
|
|
|
304
446
|
return false;
|
|
305
447
|
return snap.registration.synapseAgent === args.sapAgentPda.toBase58();
|
|
306
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* @name tripleCheckLink
|
|
451
|
+
* @description Explicit 3-layer verification for explorer/host badges.
|
|
452
|
+
* Returns one struct enumerating each check independently so UIs can
|
|
453
|
+
* present partial trust states (e.g. "MPL plugin present, JSON pending").
|
|
454
|
+
*
|
|
455
|
+
* Layers:
|
|
456
|
+
* 1. **mplOnChain** — Asset + AgentIdentity URI fetched on-chain.
|
|
457
|
+
* 2. **eip8004Json** — JSON fetched and `synapseAgent` matches PDA.
|
|
458
|
+
* 3. **sapOnChain** — `AgentAccount` PDA exists on the SAP program.
|
|
459
|
+
*
|
|
460
|
+
* @since v0.9.3
|
|
461
|
+
*/
|
|
462
|
+
async tripleCheckLink(args) {
|
|
463
|
+
const snap = await this.fetchMplSnapshot(args.asset, args.rpcUrl, args.rpcHeaders);
|
|
464
|
+
if (!snap) {
|
|
465
|
+
const fallbackPda = args.expectedOwner
|
|
466
|
+
? deriveAgent(args.expectedOwner)[0]
|
|
467
|
+
: args.asset;
|
|
468
|
+
return {
|
|
469
|
+
asset: args.asset,
|
|
470
|
+
sapAgentPda: fallbackPda,
|
|
471
|
+
mplOnChain: false,
|
|
472
|
+
eip8004Json: false,
|
|
473
|
+
sapOnChain: false,
|
|
474
|
+
linked: false,
|
|
475
|
+
agentIdentityUri: null,
|
|
476
|
+
registration: null,
|
|
477
|
+
identity: null,
|
|
478
|
+
error: "MPL Core asset not readable on-chain",
|
|
479
|
+
};
|
|
480
|
+
}
|
|
481
|
+
const owner = args.expectedOwner ?? snap.owner;
|
|
482
|
+
const [sapPda] = deriveAgent(owner);
|
|
483
|
+
const expectedSuffix = `/agents/${sapPda.toBase58()}/eip-8004.json`;
|
|
484
|
+
const mplOnChain = !!snap.agentIdentityUri;
|
|
485
|
+
const eip8004Json = !!snap.registration &&
|
|
486
|
+
!!snap.agentIdentityUri &&
|
|
487
|
+
snap.agentIdentityUri.endsWith(expectedSuffix) &&
|
|
488
|
+
snap.registration.synapseAgent === sapPda.toBase58();
|
|
489
|
+
const identity = await this.fetchAgentNullable(sapPda);
|
|
490
|
+
const sapOnChain = !!identity;
|
|
491
|
+
return {
|
|
492
|
+
asset: args.asset,
|
|
493
|
+
sapAgentPda: sapPda,
|
|
494
|
+
mplOnChain,
|
|
495
|
+
eip8004Json,
|
|
496
|
+
sapOnChain,
|
|
497
|
+
linked: mplOnChain && eip8004Json && sapOnChain,
|
|
498
|
+
agentIdentityUri: snap.agentIdentityUri,
|
|
499
|
+
registration: snap.registration,
|
|
500
|
+
identity,
|
|
501
|
+
error: null,
|
|
502
|
+
};
|
|
503
|
+
}
|
|
307
504
|
// ═════════════════════════════════════════════════════
|
|
308
505
|
// Private — SAP fetching
|
|
309
506
|
// ═════════════════════════════════════════════════════
|
|
@@ -350,9 +547,17 @@ export class MetaplexBridge {
|
|
|
350
547
|
// ═════════════════════════════════════════════════════
|
|
351
548
|
// Private — MPL fetching
|
|
352
549
|
// ═════════════════════════════════════════════════════
|
|
353
|
-
async
|
|
354
|
-
const { mplCore, umiBundle
|
|
355
|
-
|
|
550
|
+
async buildUmi(rpcUrl, rpcHeaders) {
|
|
551
|
+
const { mplCore, umiBundle } = await loadMplCore();
|
|
552
|
+
// umi-bundle-defaults.createUmi accepts an options object with httpHeaders
|
|
553
|
+
// since umi 1.x — required for gated providers like Synapse RPC that
|
|
554
|
+
// enforce `x-api-key`. Without it `getAccountInfo` returns 401 silently.
|
|
555
|
+
const umi = umiBundle.createUmi(rpcUrl, rpcHeaders ? { httpHeaders: rpcHeaders } : undefined).use(mplCore.mplCore());
|
|
556
|
+
return umi;
|
|
557
|
+
}
|
|
558
|
+
async fetchMplSnapshot(asset, rpcUrl, rpcHeaders) {
|
|
559
|
+
const { mplCore, umiCore } = await loadMplCore();
|
|
560
|
+
const umi = await this.buildUmi(rpcUrl, rpcHeaders);
|
|
356
561
|
try {
|
|
357
562
|
const fetched = await mplCore.fetchAsset(umi, umiCore.publicKey(asset.toBase58()));
|
|
358
563
|
const owner = new PublicKey(fetched.owner.toString());
|
|
@@ -433,6 +638,31 @@ export class MetaplexBridge {
|
|
|
433
638
|
});
|
|
434
639
|
return this.firstWeb3Ix(builder, "addExternalPluginAdapterV1");
|
|
435
640
|
}
|
|
641
|
+
// ═════════════════════════════════════════════════════
|
|
642
|
+
// Private — SAP instruction building (v0.9.3)
|
|
643
|
+
// ═════════════════════════════════════════════════════
|
|
644
|
+
async buildRegisterAgentIx(args) {
|
|
645
|
+
// Lazy import to avoid a hard cycle with `pda/index.ts`.
|
|
646
|
+
const { deriveGlobalRegistry } = await import("../pda");
|
|
647
|
+
const { SystemProgram } = await import("@solana/web3.js");
|
|
648
|
+
const [agentPda] = deriveAgent(args.wallet);
|
|
649
|
+
const [statsPda] = deriveAgentStats(agentPda);
|
|
650
|
+
const [globalPda] = deriveGlobalRegistry();
|
|
651
|
+
const a = args.args;
|
|
652
|
+
// Cast to `any` to sidestep Anchor's deep generic IDL inference, which
|
|
653
|
+
// otherwise blows TS recursion budget here. Same pattern as BaseModule.
|
|
654
|
+
const methods = this.program.methods;
|
|
655
|
+
return await methods
|
|
656
|
+
.registerAgent(a.name, a.description, a.capabilities, a.pricing, a.protocols, a.agentId ?? null, a.agentUri ?? null, a.x402Endpoint ?? null)
|
|
657
|
+
.accounts({
|
|
658
|
+
wallet: args.wallet,
|
|
659
|
+
agent: agentPda,
|
|
660
|
+
agentStats: statsPda,
|
|
661
|
+
globalRegistry: globalPda,
|
|
662
|
+
systemProgram: SystemProgram.programId,
|
|
663
|
+
})
|
|
664
|
+
.instruction();
|
|
665
|
+
}
|
|
436
666
|
async firstWeb3Ix(builder, name) {
|
|
437
667
|
const items = builder.getInstructions();
|
|
438
668
|
const first = items[0];
|