@veritier/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.
- package/dist/AgentManager.d.ts +32 -0
- package/dist/AgentManager.d.ts.map +1 -0
- package/dist/AgentManager.js +87 -0
- package/dist/AgentManager.js.map +1 -0
- package/dist/HSPSettlementGate.d.ts +43 -0
- package/dist/HSPSettlementGate.d.ts.map +1 -0
- package/dist/HSPSettlementGate.js +86 -0
- package/dist/HSPSettlementGate.js.map +1 -0
- package/dist/IdentityManager.d.ts +30 -0
- package/dist/IdentityManager.d.ts.map +1 -0
- package/dist/IdentityManager.js +66 -0
- package/dist/IdentityManager.js.map +1 -0
- package/dist/ProofGenerator.d.ts +27 -0
- package/dist/ProofGenerator.d.ts.map +1 -0
- package/dist/ProofGenerator.js +115 -0
- package/dist/ProofGenerator.js.map +1 -0
- package/dist/TierChecker.d.ts +13 -0
- package/dist/TierChecker.d.ts.map +1 -0
- package/dist/TierChecker.js +41 -0
- package/dist/TierChecker.js.map +1 -0
- package/dist/Veritier.d.ts +78 -0
- package/dist/Veritier.d.ts.map +1 -0
- package/dist/Veritier.js +124 -0
- package/dist/Veritier.js.map +1 -0
- package/dist/abis/AgentRegistry.json +863 -0
- package/dist/abis/ComplianceAggregator.json +293 -0
- package/dist/abis/IdentityRegistry.json +536 -0
- package/dist/constants.d.ts +19 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +33 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +120 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +20 -0
- package/dist/types.js.map +1 -0
- package/package.json +21 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import type { VeritierConfig, AgentInfo, TierDistribution, ProofResult, Groth16Proof, SolidityCalldata, AgeProofParams, JurisdictionProofParams, TierProofParams, VerifyAndRegisterParams, RegisterAgentParams, SubmitFeedbackParams, UpgradeAgentTierParams } from "./types";
|
|
3
|
+
import { ProofGenerator } from "./ProofGenerator";
|
|
4
|
+
/**
|
|
5
|
+
* Veritier — Main SDK class
|
|
6
|
+
*
|
|
7
|
+
* Privacy-preserving tiered identity & access protocol for HashKey Chain.
|
|
8
|
+
* Composes proof generation, identity management, agent management, and compliance checking.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { Veritier } from "@veritier/sdk";
|
|
13
|
+
*
|
|
14
|
+
* const veritier = new Veritier({
|
|
15
|
+
* chainId: 133,
|
|
16
|
+
* rpcUrl: "https://testnet.hsk.xyz",
|
|
17
|
+
* contracts: { identityRegistry: "0x...", agentRegistry: "0x...", complianceAggregator: "0x..." },
|
|
18
|
+
* circuitArtifacts: {
|
|
19
|
+
* ageProof: { wasm: "/circuits/age_proof.wasm", zkey: "/circuits/age_proof_final.zkey" },
|
|
20
|
+
* jurisdictionProof: { wasm: "...", zkey: "..." },
|
|
21
|
+
* tierProof: { wasm: "...", zkey: "..." },
|
|
22
|
+
* },
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare class Veritier {
|
|
27
|
+
readonly config: VeritierConfig;
|
|
28
|
+
readonly provider: ethers.JsonRpcProvider;
|
|
29
|
+
readonly proofGenerator: ProofGenerator;
|
|
30
|
+
private identity;
|
|
31
|
+
private agents;
|
|
32
|
+
private compliance;
|
|
33
|
+
constructor(config: VeritierConfig);
|
|
34
|
+
/** Get the current tier of an address (0 if expired or unverified) */
|
|
35
|
+
getTier(address: string): Promise<number>;
|
|
36
|
+
/** Check if an address is verified (tier > 0 and not expired) */
|
|
37
|
+
isVerified(address: string): Promise<boolean>;
|
|
38
|
+
/** Check if an address meets a required tier */
|
|
39
|
+
checkTier(address: string, requiredTier: number): Promise<boolean>;
|
|
40
|
+
/** Get the identity Merkle root */
|
|
41
|
+
getIdentityRoot(): Promise<string>;
|
|
42
|
+
/** Verify a ZK proof and register at a tier (submits on-chain transaction) */
|
|
43
|
+
verifyAndRegister(params: VerifyAndRegisterParams): Promise<ethers.TransactionReceipt>;
|
|
44
|
+
/** Upgrade to a higher tier with a new proof */
|
|
45
|
+
upgradeTier(params: VerifyAndRegisterParams): Promise<ethers.TransactionReceipt>;
|
|
46
|
+
/** Generate an AgeProof (proves user is at least ageThreshold years old) */
|
|
47
|
+
generateAgeProof(params: AgeProofParams): Promise<ProofResult>;
|
|
48
|
+
/** Generate a JurisdictionProof (proves country is in whitelist) */
|
|
49
|
+
generateJurisdictionProof(params: JurisdictionProofParams): Promise<ProofResult>;
|
|
50
|
+
/** Generate a TierProof (proves user holds a tier in the Merkle tree) */
|
|
51
|
+
generateTierProof(params: TierProofParams): Promise<ProofResult>;
|
|
52
|
+
/** Convert snarkjs proof to Solidity calldata format */
|
|
53
|
+
static proofToSolidityCalldata(proof: Groth16Proof): SolidityCalldata;
|
|
54
|
+
/** Register a new AI agent (caller must be Tier 2+) */
|
|
55
|
+
registerAgent(params: RegisterAgentParams): Promise<{
|
|
56
|
+
agentId: bigint;
|
|
57
|
+
tx: ethers.TransactionReceipt;
|
|
58
|
+
}>;
|
|
59
|
+
/** Get an agent's current tier */
|
|
60
|
+
getAgentTier(agentId: bigint): Promise<number>;
|
|
61
|
+
/** Get full agent details (owner, URI, tier, reputation) */
|
|
62
|
+
getAgent(agentId: bigint): Promise<AgentInfo>;
|
|
63
|
+
/** Submit feedback for an agent (-100 to +100) */
|
|
64
|
+
submitFeedback(params: SubmitFeedbackParams): Promise<ethers.TransactionReceipt>;
|
|
65
|
+
/** Upgrade an agent's tier (requires reputation + cooldown) */
|
|
66
|
+
upgradeAgentTier(params: UpgradeAgentTierParams): Promise<ethers.TransactionReceipt>;
|
|
67
|
+
/** Get reputation score for an agent */
|
|
68
|
+
getReputationScore(agentId: bigint): Promise<{
|
|
69
|
+
total: bigint;
|
|
70
|
+
count: bigint;
|
|
71
|
+
average: number;
|
|
72
|
+
}>;
|
|
73
|
+
/** Get aggregate tier distribution */
|
|
74
|
+
getTierDistribution(): Promise<TierDistribution>;
|
|
75
|
+
/** Get jurisdiction distribution (bucket → count) */
|
|
76
|
+
getJurisdictionDistribution(): Promise<Record<number, bigint>>;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=Veritier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Veritier.d.ts","sourceRoot":"","sources":["../src/Veritier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,QAAQ;IACnB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAc;gBAEpB,MAAM,EAAE,cAAc;IAWlC,sEAAsE;IAChE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/C,iEAAiE;IAC3D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAInD,gDAAgD;IAC1C,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxE,mCAAmC;IAC7B,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIxC,8EAA8E;IACxE,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAI5F,gDAAgD;IAC1C,WAAW,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAMtF,4EAA4E;IACtE,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAIpE,oEAAoE;IAC9D,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAItF,yEAAyE;IACnE,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAItE,wDAAwD;IACxD,MAAM,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB;IAMrE,uDAAuD;IACjD,aAAa,CACjB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAA;KAAE,CAAC;IAI9D,kCAAkC;IAC5B,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD,4DAA4D;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAInD,kDAAkD;IAC5C,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAItF,+DAA+D;IACzD,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;IAI1F,wCAAwC;IAClC,kBAAkB,CACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAM7D,sCAAsC;IAChC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAItD,qDAAqD;IAC/C,2BAA2B,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAGrE"}
|
package/dist/Veritier.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Veritier = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const ProofGenerator_1 = require("./ProofGenerator");
|
|
6
|
+
const IdentityManager_1 = require("./IdentityManager");
|
|
7
|
+
const AgentManager_1 = require("./AgentManager");
|
|
8
|
+
const TierChecker_1 = require("./TierChecker");
|
|
9
|
+
/**
|
|
10
|
+
* Veritier — Main SDK class
|
|
11
|
+
*
|
|
12
|
+
* Privacy-preserving tiered identity & access protocol for HashKey Chain.
|
|
13
|
+
* Composes proof generation, identity management, agent management, and compliance checking.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { Veritier } from "@veritier/sdk";
|
|
18
|
+
*
|
|
19
|
+
* const veritier = new Veritier({
|
|
20
|
+
* chainId: 133,
|
|
21
|
+
* rpcUrl: "https://testnet.hsk.xyz",
|
|
22
|
+
* contracts: { identityRegistry: "0x...", agentRegistry: "0x...", complianceAggregator: "0x..." },
|
|
23
|
+
* circuitArtifacts: {
|
|
24
|
+
* ageProof: { wasm: "/circuits/age_proof.wasm", zkey: "/circuits/age_proof_final.zkey" },
|
|
25
|
+
* jurisdictionProof: { wasm: "...", zkey: "..." },
|
|
26
|
+
* tierProof: { wasm: "...", zkey: "..." },
|
|
27
|
+
* },
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
class Veritier {
|
|
32
|
+
config;
|
|
33
|
+
provider;
|
|
34
|
+
proofGenerator;
|
|
35
|
+
identity;
|
|
36
|
+
agents;
|
|
37
|
+
compliance;
|
|
38
|
+
constructor(config) {
|
|
39
|
+
this.config = config;
|
|
40
|
+
this.provider = new ethers_1.ethers.JsonRpcProvider(config.rpcUrl);
|
|
41
|
+
this.proofGenerator = new ProofGenerator_1.ProofGenerator(config.circuitArtifacts);
|
|
42
|
+
this.identity = new IdentityManager_1.IdentityManager(config, this.provider);
|
|
43
|
+
this.agents = new AgentManager_1.AgentManager(config, this.provider);
|
|
44
|
+
this.compliance = new TierChecker_1.TierChecker(config, this.provider);
|
|
45
|
+
}
|
|
46
|
+
// === Identity Management ===
|
|
47
|
+
/** Get the current tier of an address (0 if expired or unverified) */
|
|
48
|
+
async getTier(address) {
|
|
49
|
+
return this.identity.getTier(address);
|
|
50
|
+
}
|
|
51
|
+
/** Check if an address is verified (tier > 0 and not expired) */
|
|
52
|
+
async isVerified(address) {
|
|
53
|
+
return this.identity.isVerified(address);
|
|
54
|
+
}
|
|
55
|
+
/** Check if an address meets a required tier */
|
|
56
|
+
async checkTier(address, requiredTier) {
|
|
57
|
+
return this.identity.isTierValid(address, requiredTier);
|
|
58
|
+
}
|
|
59
|
+
/** Get the identity Merkle root */
|
|
60
|
+
async getIdentityRoot() {
|
|
61
|
+
return this.identity.getIdentityRoot();
|
|
62
|
+
}
|
|
63
|
+
/** Verify a ZK proof and register at a tier (submits on-chain transaction) */
|
|
64
|
+
async verifyAndRegister(params) {
|
|
65
|
+
return this.identity.verifyAndRegister(params);
|
|
66
|
+
}
|
|
67
|
+
/** Upgrade to a higher tier with a new proof */
|
|
68
|
+
async upgradeTier(params) {
|
|
69
|
+
return this.identity.upgradeTier(params);
|
|
70
|
+
}
|
|
71
|
+
// === Proof Generation ===
|
|
72
|
+
/** Generate an AgeProof (proves user is at least ageThreshold years old) */
|
|
73
|
+
async generateAgeProof(params) {
|
|
74
|
+
return this.proofGenerator.generateAgeProof(params);
|
|
75
|
+
}
|
|
76
|
+
/** Generate a JurisdictionProof (proves country is in whitelist) */
|
|
77
|
+
async generateJurisdictionProof(params) {
|
|
78
|
+
return this.proofGenerator.generateJurisdictionProof(params);
|
|
79
|
+
}
|
|
80
|
+
/** Generate a TierProof (proves user holds a tier in the Merkle tree) */
|
|
81
|
+
async generateTierProof(params) {
|
|
82
|
+
return this.proofGenerator.generateTierProof(params);
|
|
83
|
+
}
|
|
84
|
+
/** Convert snarkjs proof to Solidity calldata format */
|
|
85
|
+
static proofToSolidityCalldata(proof) {
|
|
86
|
+
return ProofGenerator_1.ProofGenerator.proofToSolidityCalldata(proof);
|
|
87
|
+
}
|
|
88
|
+
// === Agent Management ===
|
|
89
|
+
/** Register a new AI agent (caller must be Tier 2+) */
|
|
90
|
+
async registerAgent(params) {
|
|
91
|
+
return this.agents.registerAgent(params);
|
|
92
|
+
}
|
|
93
|
+
/** Get an agent's current tier */
|
|
94
|
+
async getAgentTier(agentId) {
|
|
95
|
+
return this.agents.getAgentTier(agentId);
|
|
96
|
+
}
|
|
97
|
+
/** Get full agent details (owner, URI, tier, reputation) */
|
|
98
|
+
async getAgent(agentId) {
|
|
99
|
+
return this.agents.getAgent(agentId);
|
|
100
|
+
}
|
|
101
|
+
/** Submit feedback for an agent (-100 to +100) */
|
|
102
|
+
async submitFeedback(params) {
|
|
103
|
+
return this.agents.submitFeedback(params);
|
|
104
|
+
}
|
|
105
|
+
/** Upgrade an agent's tier (requires reputation + cooldown) */
|
|
106
|
+
async upgradeAgentTier(params) {
|
|
107
|
+
return this.agents.upgradeAgentTier(params);
|
|
108
|
+
}
|
|
109
|
+
/** Get reputation score for an agent */
|
|
110
|
+
async getReputationScore(agentId) {
|
|
111
|
+
return this.agents.getReputationScore(agentId);
|
|
112
|
+
}
|
|
113
|
+
// === Compliance ===
|
|
114
|
+
/** Get aggregate tier distribution */
|
|
115
|
+
async getTierDistribution() {
|
|
116
|
+
return this.compliance.getTierDistribution();
|
|
117
|
+
}
|
|
118
|
+
/** Get jurisdiction distribution (bucket → count) */
|
|
119
|
+
async getJurisdictionDistribution() {
|
|
120
|
+
return this.compliance.getJurisdictionDistribution();
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.Veritier = Veritier;
|
|
124
|
+
//# sourceMappingURL=Veritier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Veritier.js","sourceRoot":"","sources":["../src/Veritier.ts"],"names":[],"mappings":"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"}
|