@vouch-protocol/sdk 0.1.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 (46) hide show
  1. package/README.md +87 -0
  2. package/dist/sdk/src/config.d.ts +18 -0
  3. package/dist/sdk/src/config.d.ts.map +1 -0
  4. package/dist/sdk/src/config.js +48 -0
  5. package/dist/sdk/src/config.js.map +1 -0
  6. package/dist/sdk/src/constants.d.ts +111 -0
  7. package/dist/sdk/src/constants.d.ts.map +1 -0
  8. package/dist/sdk/src/constants.js +123 -0
  9. package/dist/sdk/src/constants.js.map +1 -0
  10. package/dist/sdk/src/credentials.d.ts +85 -0
  11. package/dist/sdk/src/credentials.d.ts.map +1 -0
  12. package/dist/sdk/src/credentials.js +91 -0
  13. package/dist/sdk/src/credentials.js.map +1 -0
  14. package/dist/sdk/src/did.d.ts +68 -0
  15. package/dist/sdk/src/did.d.ts.map +1 -0
  16. package/dist/sdk/src/did.js +89 -0
  17. package/dist/sdk/src/did.js.map +1 -0
  18. package/dist/sdk/src/index.d.ts +9 -0
  19. package/dist/sdk/src/index.d.ts.map +1 -0
  20. package/dist/sdk/src/index.js +28 -0
  21. package/dist/sdk/src/index.js.map +1 -0
  22. package/dist/sdk/src/registry.d.ts +69 -0
  23. package/dist/sdk/src/registry.d.ts.map +1 -0
  24. package/dist/sdk/src/registry.js +179 -0
  25. package/dist/sdk/src/registry.js.map +1 -0
  26. package/dist/sdk/src/types.d.ts +107 -0
  27. package/dist/sdk/src/types.d.ts.map +1 -0
  28. package/dist/sdk/src/types.js +46 -0
  29. package/dist/sdk/src/types.js.map +1 -0
  30. package/dist/sdk/src/vault.d.ts +51 -0
  31. package/dist/sdk/src/vault.d.ts.map +1 -0
  32. package/dist/sdk/src/vault.js +128 -0
  33. package/dist/sdk/src/vault.js.map +1 -0
  34. package/dist/target/types/kya.d.ts +5074 -0
  35. package/dist/target/types/kya.d.ts.map +1 -0
  36. package/dist/target/types/kya.js +3 -0
  37. package/dist/target/types/kya.js.map +1 -0
  38. package/package.json +41 -0
  39. package/src/config.ts +55 -0
  40. package/src/constants.ts +134 -0
  41. package/src/credentials.ts +115 -0
  42. package/src/did.ts +140 -0
  43. package/src/index.ts +8 -0
  44. package/src/registry.ts +287 -0
  45. package/src/types.ts +129 -0
  46. package/src/vault.ts +208 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DID_SOL_METHOD = exports.DID_SOL_PREFIX = void 0;
4
+ exports.deriveAgentDid = deriveAgentDid;
5
+ exports.parseDid = parseDid;
6
+ exports.agentPdaFromDid = agentPdaFromDid;
7
+ exports.generateDidDocument = generateDidDocument;
8
+ const web3_js_1 = require("@solana/web3.js");
9
+ const constants_1 = require("./constants");
10
+ // ── Constants ──
11
+ exports.DID_SOL_PREFIX = "did:sol:";
12
+ exports.DID_SOL_METHOD = "sol";
13
+ // ── DID Derivation ──
14
+ /**
15
+ * Derive the W3C DID (did:sol:<base58>) for an agent given its owner pubkey.
16
+ * The did:sol method maps 1:1 to Solana public keys.
17
+ */
18
+ function deriveAgentDid(owner) {
19
+ return `${exports.DID_SOL_PREFIX}${owner.toBase58()}`;
20
+ }
21
+ /**
22
+ * Parse a did:sol: URI and extract the Solana public key.
23
+ * Returns null if the DID is not a valid did:sol URI.
24
+ */
25
+ function parseDid(did) {
26
+ if (!did.startsWith(exports.DID_SOL_PREFIX))
27
+ return null;
28
+ const base58 = did.slice(exports.DID_SOL_PREFIX.length);
29
+ try {
30
+ return new web3_js_1.PublicKey(base58);
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ /**
37
+ * Derive the Agent PDA from a did:sol URI.
38
+ * Returns null if the DID is invalid.
39
+ */
40
+ function agentPdaFromDid(did, programId = constants_1.VOUCH_PROGRAM_ID) {
41
+ const owner = parseDid(did);
42
+ if (!owner)
43
+ return null;
44
+ return web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.AGENT, owner.toBuffer()], programId);
45
+ }
46
+ /**
47
+ * Generate a W3C DID Document for a Vouch-registered agent.
48
+ *
49
+ * The DID Document links the agent's on-chain identity (did:sol) to its
50
+ * A2A Agent Card URL, enabling W3C-compliant identity resolution.
51
+ */
52
+ function generateDidDocument(params) {
53
+ const { owner, agentPda, agent } = params;
54
+ const did = deriveAgentDid(owner);
55
+ const services = [
56
+ {
57
+ id: `${did}#agent-card`,
58
+ type: "A2AAgentCard",
59
+ serviceEndpoint: agent.agentCardUrl,
60
+ description: "A2A Agent Card for capability discovery",
61
+ },
62
+ {
63
+ id: `${did}#vouch-registry`,
64
+ type: "VouchRegistry",
65
+ serviceEndpoint: `solana:${constants_1.VOUCH_PROGRAM_ID.toBase58()}:${agentPda.toBase58()}`,
66
+ description: "On-chain Vouch identity PDA",
67
+ },
68
+ ];
69
+ return {
70
+ "@context": [
71
+ "https://www.w3.org/ns/did/v1",
72
+ "https://w3id.org/security/suites/ed25519-2020/v1",
73
+ ],
74
+ id: did,
75
+ controller: did,
76
+ verificationMethod: [
77
+ {
78
+ id: `${did}#key-1`,
79
+ type: "Ed25519VerificationKey2020",
80
+ controller: did,
81
+ publicKeyBase58: owner.toBase58(),
82
+ },
83
+ ],
84
+ authentication: [`${did}#key-1`],
85
+ assertionMethod: [`${did}#key-1`], // V6-L10: Required for VC issuance
86
+ service: services,
87
+ };
88
+ }
89
+ //# sourceMappingURL=did.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"did.js","sourceRoot":"","sources":["../../../src/did.ts"],"names":[],"mappings":";;;AAeA,wCAEC;AAMD,4BAQC;AAMD,0CAUC;AAkDD,kDA0CC;AA3ID,6CAA4C;AAC5C,2CAAsD;AAGtD,kBAAkB;AAEL,QAAA,cAAc,GAAG,UAAU,CAAC;AAC5B,QAAA,cAAc,GAAG,KAAK,CAAC;AAEpC,uBAAuB;AAEvB;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAgB;IAC7C,OAAO,GAAG,sBAAc,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,GAAW;IAClC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,sBAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAc,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC;QACH,OAAO,IAAI,mBAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAC7B,GAAW,EACX,YAAuB,4BAAgB;IAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,iBAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EAC/B,SAAS,CACV,CAAC;AACJ,CAAC;AA4CD;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,MAInC;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAsB;QAClC;YACE,EAAE,EAAE,GAAG,GAAG,aAAa;YACvB,IAAI,EAAE,cAAc;YACpB,eAAe,EAAE,KAAK,CAAC,YAAY;YACnC,WAAW,EAAE,yCAAyC;SACvD;QACD;YACE,EAAE,EAAE,GAAG,GAAG,iBAAiB;YAC3B,IAAI,EAAE,eAAe;YACrB,eAAe,EAAE,UAAU,4BAAgB,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE;YAC/E,WAAW,EAAE,6BAA6B;SAC3C;KACF,CAAC;IAEF,OAAO;QACL,UAAU,EAAE;YACV,8BAA8B;YAC9B,kDAAkD;SACnD;QACD,EAAE,EAAE,GAAG;QACP,UAAU,EAAE,GAAG;QACf,kBAAkB,EAAE;YAClB;gBACE,EAAE,EAAE,GAAG,GAAG,QAAQ;gBAClB,IAAI,EAAE,4BAA4B;gBAClC,UAAU,EAAE,GAAG;gBACf,eAAe,EAAE,KAAK,CAAC,QAAQ,EAAE;aAClC;SACF;QACD,cAAc,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC;QAChC,eAAe,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,EAAE,mCAAmC;QACtE,OAAO,EAAE,QAAQ;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { RegistryClient } from "./registry";
2
+ export { VaultClient } from "./vault";
3
+ export * from "./constants";
4
+ export { fetchConfig } from "./config";
5
+ export type { VouchConfigData } from "./config";
6
+ export * from "./types";
7
+ export * from "./did";
8
+ export * from "./credentials";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.fetchConfig = exports.VaultClient = exports.RegistryClient = void 0;
18
+ var registry_1 = require("./registry");
19
+ Object.defineProperty(exports, "RegistryClient", { enumerable: true, get: function () { return registry_1.RegistryClient; } });
20
+ var vault_1 = require("./vault");
21
+ Object.defineProperty(exports, "VaultClient", { enumerable: true, get: function () { return vault_1.VaultClient; } });
22
+ __exportStar(require("./constants"), exports);
23
+ var config_1 = require("./config");
24
+ Object.defineProperty(exports, "fetchConfig", { enumerable: true, get: function () { return config_1.fetchConfig; } });
25
+ __exportStar(require("./types"), exports);
26
+ __exportStar(require("./did"), exports);
27
+ __exportStar(require("./credentials"), exports);
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,iCAAsC;AAA7B,oGAAA,WAAW,OAAA;AACpB,8CAA4B;AAC5B,mCAAuC;AAA9B,qGAAA,WAAW,OAAA;AAEpB,0CAAwB;AACxB,wCAAsB;AACtB,gDAA8B"}
@@ -0,0 +1,69 @@
1
+ import { Program, AnchorProvider, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { Kya } from "../../target/types/kya";
4
+ import type { VouchConfig, AgentIdentity } from "./types";
5
+ import type { DidDocument } from "./did";
6
+ export declare class RegistryClient {
7
+ readonly program: Program<Kya>;
8
+ readonly provider: AnchorProvider;
9
+ constructor(program: Program<Kya>, provider: AnchorProvider);
10
+ static findConfigPda(programId?: PublicKey): [PublicKey, number];
11
+ static findAgentPda(owner: PublicKey, programId?: PublicKey): [PublicKey, number];
12
+ static findDeactivationRecordPda(owner: PublicKey, programId?: PublicKey): [PublicKey, number];
13
+ registerAgent(params: {
14
+ owner: PublicKey;
15
+ name: string;
16
+ serviceCategory: Record<string, Record<string, never>>;
17
+ agentCardUrl: string;
18
+ agentCardHash: number[] | Uint8Array;
19
+ }): Promise<string>;
20
+ updateAgent(params: {
21
+ owner: PublicKey;
22
+ agentPda: PublicKey;
23
+ newCapabilities?: BN | number | null;
24
+ newName?: string | null;
25
+ newServiceCategory?: Record<string, Record<string, never>> | null;
26
+ newVersion?: string | null;
27
+ newAgentCardUrl?: string | null;
28
+ newAgentCardHash?: number[] | Uint8Array | null;
29
+ }): Promise<string>;
30
+ deactivateAgent(params: {
31
+ owner: PublicKey;
32
+ agentPda: PublicKey;
33
+ }): Promise<string>;
34
+ closeAgent(params: {
35
+ owner: PublicKey;
36
+ agentPda: PublicKey;
37
+ }): Promise<string>;
38
+ suspendAgent(params: {
39
+ authority: PublicKey;
40
+ agentPda: PublicKey;
41
+ }): Promise<string>;
42
+ reactivateAgent(params: {
43
+ authority: PublicKey;
44
+ agentPda: PublicKey;
45
+ }): Promise<string>;
46
+ closeDeactivationRecord(params: {
47
+ owner: PublicKey;
48
+ }): Promise<string>;
49
+ checkAgentEligibility(agentPda: PublicKey): Promise<string>;
50
+ verifyAgent(agentPda: PublicKey): Promise<string>;
51
+ fetchConfig(): Promise<VouchConfig>;
52
+ fetchAgent(agentPda: PublicKey): Promise<AgentIdentity>;
53
+ fetchAgentByOwner(owner: PublicKey): Promise<AgentIdentity>;
54
+ fetchDeactivationRecord(owner: PublicKey): Promise<any>;
55
+ /**
56
+ * Derive the W3C DID (did:sol:<base58>) for an agent owner.
57
+ */
58
+ static deriveAgentDid(owner: PublicKey): string;
59
+ /**
60
+ * Resolve a did:sol URI to the on-chain AgentIdentity.
61
+ * Returns null if the DID is invalid or the agent doesn't exist.
62
+ */
63
+ resolveAgentByDid(did: string): Promise<AgentIdentity | null>;
64
+ /**
65
+ * Generate a W3C DID Document for a Vouch-registered agent.
66
+ */
67
+ generateDidDocument(owner: PublicKey): Promise<DidDocument>;
68
+ }
69
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegistryClient = void 0;
4
+ const anchor_1 = require("@coral-xyz/anchor");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const constants_1 = require("./constants");
7
+ const did_1 = require("./did");
8
+ class RegistryClient {
9
+ constructor(program, provider) {
10
+ this.program = program;
11
+ this.provider = provider;
12
+ }
13
+ // ── PDA derivation ──
14
+ static findConfigPda(programId = constants_1.VOUCH_PROGRAM_ID) {
15
+ return web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.VOUCH_CONFIG], programId);
16
+ }
17
+ static findAgentPda(owner, programId = constants_1.VOUCH_PROGRAM_ID) {
18
+ return web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.AGENT, owner.toBuffer()], programId);
19
+ }
20
+ static findDeactivationRecordPda(owner, programId = constants_1.VOUCH_PROGRAM_ID) {
21
+ return web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.DEACTIVATED, owner.toBuffer()], programId);
22
+ }
23
+ // ── Instructions (agent owner operations) ──
24
+ async registerAgent(params) {
25
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
26
+ const [agentPda] = RegistryClient.findAgentPda(params.owner, this.program.programId);
27
+ return this.program.methods
28
+ .registerAgent(params.name, params.serviceCategory, params.agentCardUrl, Array.from(params.agentCardHash))
29
+ .accounts({
30
+ owner: params.owner,
31
+ config: configPda,
32
+ agent: agentPda,
33
+ deactivationRecord: web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.DEACTIVATED, params.owner.toBuffer()], this.program.programId)[0],
34
+ systemProgram: web3_js_1.SystemProgram.programId,
35
+ })
36
+ .rpc();
37
+ }
38
+ async updateAgent(params) {
39
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
40
+ return this.program.methods
41
+ .updateAgent(params.newCapabilities !== undefined && params.newCapabilities !== null
42
+ ? new anchor_1.BN(params.newCapabilities) : null, params.newName ?? null, params.newServiceCategory ?? null, params.newVersion ?? null, params.newAgentCardUrl ?? null, params.newAgentCardHash ? Array.from(params.newAgentCardHash) : null)
43
+ .accounts({
44
+ owner: params.owner,
45
+ config: configPda,
46
+ agent: params.agentPda,
47
+ })
48
+ .rpc();
49
+ }
50
+ async deactivateAgent(params) {
51
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
52
+ return this.program.methods
53
+ .deactivateAgent()
54
+ .accounts({
55
+ owner: params.owner,
56
+ config: configPda,
57
+ agent: params.agentPda,
58
+ deactivationRecord: web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.DEACTIVATED, params.owner.toBuffer()], this.program.programId)[0],
59
+ systemProgram: web3_js_1.SystemProgram.programId,
60
+ })
61
+ .rpc();
62
+ }
63
+ async closeAgent(params) {
64
+ // V6-M10: Include stake_account PDA required by on-chain CloseAgent
65
+ const [stakePda] = web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.STAKE, params.agentPda.toBuffer()], this.program.programId);
66
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
67
+ return this.program.methods
68
+ .closeAgent()
69
+ .accounts({
70
+ owner: params.owner,
71
+ config: configPda,
72
+ agent: params.agentPda,
73
+ stakeAccount: stakePda,
74
+ })
75
+ .rpc();
76
+ }
77
+ async suspendAgent(params) {
78
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
79
+ return this.program.methods
80
+ .suspendAgent()
81
+ .accounts({
82
+ authority: params.authority,
83
+ config: configPda,
84
+ agent: params.agentPda,
85
+ })
86
+ .rpc();
87
+ }
88
+ async reactivateAgent(params) {
89
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
90
+ return this.program.methods
91
+ .reactivateAgent()
92
+ .accounts({
93
+ authority: params.authority,
94
+ config: configPda,
95
+ agent: params.agentPda,
96
+ })
97
+ .rpc();
98
+ }
99
+ async closeDeactivationRecord(params) {
100
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
101
+ const [deactivationRecordPda] = web3_js_1.PublicKey.findProgramAddressSync([constants_1.SEEDS.DEACTIVATED, params.owner.toBuffer()], this.program.programId);
102
+ return this.program.methods
103
+ .closeDeactivationRecord()
104
+ .accounts({
105
+ owner: params.owner,
106
+ config: configPda,
107
+ deactivationRecord: deactivationRecordPda,
108
+ })
109
+ .rpc();
110
+ }
111
+ async checkAgentEligibility(agentPda) {
112
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
113
+ return this.program.methods
114
+ .checkAgentEligibility()
115
+ .accounts({
116
+ agent: agentPda,
117
+ config: configPda,
118
+ })
119
+ .rpc();
120
+ }
121
+ async verifyAgent(agentPda) {
122
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
123
+ return this.program.methods
124
+ .verifyAgent()
125
+ .accounts({
126
+ agent: agentPda,
127
+ config: configPda,
128
+ })
129
+ .rpc();
130
+ }
131
+ // ── Fetchers ──
132
+ async fetchConfig() {
133
+ const [configPda] = RegistryClient.findConfigPda(this.program.programId);
134
+ return this.program.account.vouchConfig.fetch(configPda);
135
+ }
136
+ async fetchAgent(agentPda) {
137
+ return this.program.account.agentIdentity.fetch(agentPda);
138
+ }
139
+ async fetchAgentByOwner(owner) {
140
+ const [agentPda] = RegistryClient.findAgentPda(owner, this.program.programId);
141
+ return this.fetchAgent(agentPda);
142
+ }
143
+ async fetchDeactivationRecord(owner) {
144
+ const [pda] = RegistryClient.findDeactivationRecordPda(owner, this.program.programId);
145
+ return this.program.account.deactivationRecord.fetch(pda);
146
+ }
147
+ // ── DID Resolution ──
148
+ /**
149
+ * Derive the W3C DID (did:sol:<base58>) for an agent owner.
150
+ */
151
+ static deriveAgentDid(owner) {
152
+ return (0, did_1.deriveAgentDid)(owner);
153
+ }
154
+ /**
155
+ * Resolve a did:sol URI to the on-chain AgentIdentity.
156
+ * Returns null if the DID is invalid or the agent doesn't exist.
157
+ */
158
+ async resolveAgentByDid(did) {
159
+ const owner = (0, did_1.parseDid)(did);
160
+ if (!owner)
161
+ return null;
162
+ try {
163
+ return await this.fetchAgentByOwner(owner);
164
+ }
165
+ catch {
166
+ return null;
167
+ }
168
+ }
169
+ /**
170
+ * Generate a W3C DID Document for a Vouch-registered agent.
171
+ */
172
+ async generateDidDocument(owner) {
173
+ const [agentPda] = RegistryClient.findAgentPda(owner, this.program.programId);
174
+ const agent = await this.fetchAgent(agentPda);
175
+ return (0, did_1.generateDidDocument)({ owner, agentPda, agent });
176
+ }
177
+ }
178
+ exports.RegistryClient = RegistryClient;
179
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ import { PublicKey } from "@solana/web3.js";
2
+ import { BN } from "@coral-xyz/anchor";
3
+ export declare enum AgentTier {
4
+ Observer = "observer",
5
+ Basic = "basic",
6
+ Standard = "standard",
7
+ Premium = "premium"
8
+ }
9
+ export declare enum AgentStatus {
10
+ Active = "active",
11
+ Suspended = "suspended",
12
+ Deactivated = "deactivated"
13
+ }
14
+ export declare enum ServiceCategory {
15
+ Commerce = "commerce",
16
+ DataAnalysis = "dataAnalysis",
17
+ ContentCreation = "contentCreation",
18
+ CustomerService = "customerService",
19
+ Financial = "financial",
20
+ Logistics = "logistics",
21
+ Development = "development",
22
+ Research = "research",
23
+ Other = "other"
24
+ }
25
+ export interface VouchConfig {
26
+ admin: PublicKey;
27
+ pendingAdmin: PublicKey | null;
28
+ paused: boolean;
29
+ treasury: PublicKey;
30
+ usdcMint: PublicKey;
31
+ tierThresholds: [BN, BN, BN, BN];
32
+ cooldownPeriod: BN;
33
+ stakeToTxRatio: number;
34
+ bump: number;
35
+ }
36
+ export interface AgentIdentity {
37
+ owner: PublicKey;
38
+ tier: {
39
+ [key in AgentTier]?: {};
40
+ };
41
+ capabilities: BN;
42
+ name: string;
43
+ serviceCategory: {
44
+ [key in ServiceCategory]?: {};
45
+ };
46
+ version: string;
47
+ agentCardUrl: string;
48
+ agentCardHash: number[];
49
+ status: {
50
+ [key in AgentStatus]?: {};
51
+ };
52
+ createdAt: BN;
53
+ updatedAt: BN;
54
+ bump: number;
55
+ reputationScore: number;
56
+ reputationUpdatedAt: BN;
57
+ reputationChangeToday: number;
58
+ reputationDayStart: BN;
59
+ tierEffectiveAt: BN;
60
+ suspendedBy: PublicKey | null;
61
+ }
62
+ export interface StakeAccount {
63
+ agent: PublicKey;
64
+ owner: PublicKey;
65
+ depositedAmount: BN;
66
+ lockedAmount: BN;
67
+ pendingWithdrawal: BN;
68
+ bump: number;
69
+ }
70
+ export interface WithdrawalRequest {
71
+ stakeAccount: PublicKey;
72
+ owner: PublicKey;
73
+ amount: BN;
74
+ unlockAt: BN;
75
+ createdAt: BN;
76
+ bump: number;
77
+ }
78
+ export interface PendingConfigChange {
79
+ proposer: PublicKey;
80
+ proposedAt: BN;
81
+ executableAt: BN;
82
+ newTierThresholds: [BN, BN, BN, BN] | null;
83
+ newCooldownPeriod: BN | null;
84
+ newTreasury: PublicKey | null;
85
+ newStakeToTxRatio: number | null;
86
+ bump: number;
87
+ }
88
+ export interface DeactivationRecord {
89
+ owner: PublicKey;
90
+ deactivatedAt: BN;
91
+ finalReputationScore: number;
92
+ bump: number;
93
+ }
94
+ export interface ReputationReporter {
95
+ authority: PublicKey;
96
+ registeredBy: PublicKey;
97
+ label: string;
98
+ weight: number;
99
+ totalReports: BN;
100
+ lastReportSlot: BN;
101
+ isActive: boolean;
102
+ bump: number;
103
+ }
104
+ export declare function parseEnum<T extends string>(enumObj: {
105
+ [key: string]: {} | undefined;
106
+ } | null | undefined, enumType: Record<string, T>): T | null;
107
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceCategory = exports.AgentStatus = exports.AgentTier = void 0;
4
+ exports.parseEnum = parseEnum;
5
+ // ── Enums ──
6
+ var AgentTier;
7
+ (function (AgentTier) {
8
+ AgentTier["Observer"] = "observer";
9
+ AgentTier["Basic"] = "basic";
10
+ AgentTier["Standard"] = "standard";
11
+ AgentTier["Premium"] = "premium";
12
+ })(AgentTier || (exports.AgentTier = AgentTier = {}));
13
+ var AgentStatus;
14
+ (function (AgentStatus) {
15
+ AgentStatus["Active"] = "active";
16
+ AgentStatus["Suspended"] = "suspended";
17
+ AgentStatus["Deactivated"] = "deactivated";
18
+ })(AgentStatus || (exports.AgentStatus = AgentStatus = {}));
19
+ var ServiceCategory;
20
+ (function (ServiceCategory) {
21
+ ServiceCategory["Commerce"] = "commerce";
22
+ ServiceCategory["DataAnalysis"] = "dataAnalysis";
23
+ ServiceCategory["ContentCreation"] = "contentCreation";
24
+ ServiceCategory["CustomerService"] = "customerService";
25
+ ServiceCategory["Financial"] = "financial";
26
+ ServiceCategory["Logistics"] = "logistics";
27
+ ServiceCategory["Development"] = "development";
28
+ ServiceCategory["Research"] = "research";
29
+ ServiceCategory["Other"] = "other";
30
+ })(ServiceCategory || (exports.ServiceCategory = ServiceCategory = {}));
31
+ // ── Helper for parsing Anchor enum variants ──
32
+ function parseEnum(enumObj, enumType) {
33
+ if (!enumObj)
34
+ return null;
35
+ const objKey = Object.keys(enumObj)[0];
36
+ if (!objKey)
37
+ return null;
38
+ const lowerKey = objKey.toLowerCase();
39
+ for (const [enumKey, enumValue] of Object.entries(enumType)) {
40
+ if (enumKey.toLowerCase() === lowerKey) {
41
+ return enumValue;
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":";;;AAkHA,8BAcC;AA7HD,cAAc;AAEd,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,kCAAqB,CAAA;IACrB,gCAAmB,CAAA;AACrB,CAAC,EALW,SAAS,yBAAT,SAAS,QAKpB;AAED,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,gCAAiB,CAAA;IACjB,sCAAuB,CAAA;IACvB,0CAA2B,CAAA;AAC7B,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAED,IAAY,eAUX;AAVD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,gDAA6B,CAAA;IAC7B,sDAAmC,CAAA;IACnC,sDAAmC,CAAA;IACnC,0CAAuB,CAAA;IACvB,0CAAuB,CAAA;IACvB,8CAA2B,CAAA;IAC3B,wCAAqB,CAAA;IACrB,kCAAe,CAAA;AACjB,CAAC,EAVW,eAAe,+BAAf,eAAe,QAU1B;AAoFD,gDAAgD;AAEhD,SAAgB,SAAS,CACvB,OAA6D,EAC7D,QAA2B;IAE3B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { Program, AnchorProvider, BN } from "@coral-xyz/anchor";
2
+ import { PublicKey } from "@solana/web3.js";
3
+ import { Kya } from "../../target/types/kya";
4
+ import type { StakeAccount, WithdrawalRequest } from "./types";
5
+ export declare class VaultClient {
6
+ readonly program: Program<Kya>;
7
+ readonly provider: AnchorProvider;
8
+ constructor(program: Program<Kya>, provider: AnchorProvider);
9
+ static findConfigPda(programId?: PublicKey): [PublicKey, number];
10
+ static findStakePda(agentPda: PublicKey, programId?: PublicKey): [PublicKey, number];
11
+ static findWithdrawalPda(stakeAccountPda: PublicKey, programId?: PublicKey): [PublicKey, number];
12
+ /**
13
+ * V6-M04: Derive the canonical vault token account (ATA of config PDA for USDC mint).
14
+ * This is the only vault address accepted by the on-chain program.
15
+ */
16
+ static findVaultTokenAccount(usdcMint: PublicKey, programId?: PublicKey): PublicKey;
17
+ deposit(params: {
18
+ owner: PublicKey;
19
+ agentPda: PublicKey;
20
+ ownerTokenAccount: PublicKey;
21
+ vaultTokenAccount: PublicKey;
22
+ amount: BN | number;
23
+ }): Promise<string>;
24
+ requestWithdrawal(params: {
25
+ owner: PublicKey;
26
+ agentPda: PublicKey;
27
+ stakeAccountPda: PublicKey;
28
+ amount: BN | number;
29
+ }): Promise<string>;
30
+ completeWithdrawal(params: {
31
+ owner: PublicKey;
32
+ stakeAccountPda: PublicKey;
33
+ agentPda: PublicKey;
34
+ vaultTokenAccount: PublicKey;
35
+ ownerTokenAccount: PublicKey;
36
+ }): Promise<string>;
37
+ cancelWithdrawal(params: {
38
+ owner: PublicKey;
39
+ agentPda: PublicKey;
40
+ stakeAccountPda: PublicKey;
41
+ }): Promise<string>;
42
+ closeStake(params: {
43
+ owner: PublicKey;
44
+ agentPda: PublicKey;
45
+ }): Promise<string>;
46
+ fetchConfig(): Promise<any>;
47
+ fetchStakeAccount(stakePda: PublicKey): Promise<StakeAccount>;
48
+ fetchStakeByAgent(agentPda: PublicKey): Promise<StakeAccount>;
49
+ fetchWithdrawalRequest(stakeAccountPda: PublicKey): Promise<WithdrawalRequest>;
50
+ }
51
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../../src/vault.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE/D,qBAAa,WAAW;aAEJ,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC;aACrB,QAAQ,EAAE,cAAc;gBADxB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,EACrB,QAAQ,EAAE,cAAc;IAK1C,MAAM,CAAC,aAAa,CAClB,SAAS,GAAE,SAA4B,GACtC,CAAC,SAAS,EAAE,MAAM,CAAC;IAItB,MAAM,CAAC,YAAY,CACjB,QAAQ,EAAE,SAAS,EACnB,SAAS,GAAE,SAA4B,GACtC,CAAC,SAAS,EAAE,MAAM,CAAC;IAOtB,MAAM,CAAC,iBAAiB,CACtB,eAAe,EAAE,SAAS,EAC1B,SAAS,GAAE,SAA4B,GACtC,CAAC,SAAS,EAAE,MAAM,CAAC;IAOtB;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAE,SAA4B,GAAG,SAAS;IAO/F,OAAO,CAAC,MAAM,EAAE;QACpB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;QACpB,iBAAiB,EAAE,SAAS,CAAC;QAC7B,iBAAiB,EAAE,SAAS,CAAC;QAC7B,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;KACrB;IAsBK,iBAAiB,CAAC,MAAM,EAAE;QAC9B,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;QACpB,eAAe,EAAE,SAAS,CAAC;QAC3B,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;KACrB;IAoBK,kBAAkB,CAAC,MAAM,EAAE;QAC/B,KAAK,EAAE,SAAS,CAAC;QACjB,eAAe,EAAE,SAAS,CAAC;QAC3B,QAAQ,EAAE,SAAS,CAAC;QACpB,iBAAiB,EAAE,SAAS,CAAC;QAC7B,iBAAiB,EAAE,SAAS,CAAC;KAC9B;IAuBK,gBAAgB,CAAC,MAAM,EAAE;QAC7B,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;QACpB,eAAe,EAAE,SAAS,CAAC;KAC5B;IAqBK,UAAU,CAAC,MAAM,EAAE;QACvB,KAAK,EAAE,SAAS,CAAC;QACjB,QAAQ,EAAE,SAAS,CAAC;KACrB;IAiBK,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAK3B,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAI7D,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ7D,sBAAsB,CAC1B,eAAe,EAAE,SAAS,GACzB,OAAO,CAAC,iBAAiB,CAAC;CAS9B"}