@antseed/node 0.2.163 → 0.2.165

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/dist/health/self-health-error.d.ts +8 -0
  2. package/dist/health/self-health-error.d.ts.map +1 -1
  3. package/dist/health/self-health-error.js +22 -0
  4. package/dist/health/self-health-error.js.map +1 -1
  5. package/dist/health/upstream-credit.d.ts.map +1 -1
  6. package/dist/health/upstream-credit.js +3 -2
  7. package/dist/health/upstream-credit.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/node.d.ts +5 -3
  13. package/dist/node.d.ts.map +1 -1
  14. package/dist/node.js +3 -3
  15. package/dist/node.js.map +1 -1
  16. package/dist/payments/chain-config.d.ts +11 -2
  17. package/dist/payments/chain-config.d.ts.map +1 -1
  18. package/dist/payments/chain-config.js +12 -1
  19. package/dist/payments/chain-config.js.map +1 -1
  20. package/dist/payments/evm/verification-signals-client.d.ts +20 -11
  21. package/dist/payments/evm/verification-signals-client.d.ts.map +1 -1
  22. package/dist/payments/evm/verification-signals-client.js +32 -16
  23. package/dist/payments/evm/verification-signals-client.js.map +1 -1
  24. package/dist/payments/evm/verifier-client.d.ts +90 -18
  25. package/dist/payments/evm/verifier-client.d.ts.map +1 -1
  26. package/dist/payments/evm/verifier-client.js +205 -56
  27. package/dist/payments/evm/verifier-client.js.map +1 -1
  28. package/dist/payments/generated-contract-addresses.d.ts +3 -2
  29. package/dist/payments/generated-contract-addresses.d.ts.map +1 -1
  30. package/dist/payments/generated-contract-addresses.js +3 -2
  31. package/dist/payments/generated-contract-addresses.js.map +1 -1
  32. package/dist/payments/index.d.ts +3 -3
  33. package/dist/payments/index.d.ts.map +1 -1
  34. package/dist/payments/index.js +2 -2
  35. package/dist/payments/index.js.map +1 -1
  36. package/dist/proxy/buyer-response-headers.d.ts +2 -0
  37. package/dist/proxy/buyer-response-headers.d.ts.map +1 -0
  38. package/dist/proxy/buyer-response-headers.js +31 -0
  39. package/dist/proxy/buyer-response-headers.js.map +1 -0
  40. package/dist/reputation/model-reputation.d.ts +1 -1
  41. package/dist/reputation/model-reputation.js +1 -1
  42. package/dist/seller-request-handler.d.ts.map +1 -1
  43. package/dist/seller-request-handler.js +30 -8
  44. package/dist/seller-request-handler.js.map +1 -1
  45. package/dist/types/peer.d.ts +1 -1
  46. package/package.json +2 -2
@@ -1,22 +1,24 @@
1
1
  import { type AbstractProvider } from 'ethers';
2
2
  /**
3
3
  * Reads which advertised services of a batch of sellers have a live DIFF
4
- * verdict on `AntseedKbfVerification`, in at most two Multicall3 round trips:
4
+ * verdict on `AntseedVerificationResults`, the verification results layer,
5
+ * whatever verification method (audit) recorded it. Two Multicall3 round
6
+ * trips per read, plus one on the first read when the results address has to
7
+ * be discovered from the KBF audits contract (`kbf.results()`, cached):
5
8
  *
6
- * round 1: verification.validityEpochs, verification.emissionsGate (first
7
- * read only; it is immutable), and per (agentId, service)
8
- * verification.serviceStatus
9
+ * round 1: results.emissionsGate (first read only; it is immutable), and per
10
+ * (agentId, service) results.serviceStatus
9
11
  * round 2: emissionsGate.currentEpoch
10
12
  *
11
- * `serviceStatus` holds only recorded results. A DIFF is recorded once
13
+ * `serviceStatus` holds only recorded results. KBF records a DIFF once
12
14
  * `requiredReports[DIFF]` (2 on Base) distinct approved auditors report it in
13
15
  * the same epoch and report round; a DIFF still waiting for its second auditor
14
- * stays in the contract's report counts and leaves `serviceStatus` at the
16
+ * stays in the KBF contract's report counts and leaves `serviceStatus` at the
15
17
  * previous result, so it never cuts reputation here.
16
18
  *
17
19
  * A recorded verdict is live exactly as the contract counts it:
18
- * `currentEpoch < verdict.epoch + validityEpochs`. SAME, UNDETERMINED, NONE
19
- * and expired verdicts are not DIFF.
20
+ * `currentEpoch < verdict.validUntilEpoch`, the expiry the recording audit
21
+ * chose. SAME, UNDETERMINED, NONE and expired verdicts are not DIFF.
20
22
  */
21
23
  export interface VerificationServiceQuery {
22
24
  agentId: number;
@@ -27,13 +29,20 @@ export declare class VerificationSignalsClient {
27
29
  private readonly _verificationAddress;
28
30
  private readonly _read;
29
31
  private _emissionsGate;
30
- constructor(provider: AbstractProvider, _verificationAddress: string);
32
+ private _resultsAddress;
33
+ /**
34
+ * @param _verificationAddress The KBF audits contract (`verificationContractAddress`).
35
+ * @param resultsAddress The results layer; read from `kbf.results()` on first use when absent.
36
+ */
37
+ constructor(provider: AbstractProvider, _verificationAddress: string, resultsAddress?: string);
38
+ /** The results layer address, discovered once from the KBF contract when not configured. */
39
+ private _results;
31
40
  /**
32
41
  * Live DIFF services per agent id, as verification keys (trimmed,
33
42
  * lowercased service names). An agent is missing from the result when any
34
43
  * of its reads failed, so a caller can keep its previous answer instead of
35
- * clearing a penalty on an RPC hiccup. Throws when the epoch or validity
36
- * window cannot be read at all.
44
+ * clearing a penalty on an RPC hiccup. Throws when the current epoch
45
+ * cannot be read at all.
37
46
  */
38
47
  readDiffServices(queries: readonly VerificationServiceQuery[]): Promise<Map<number, string[]>>;
39
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verification-signals-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/verification-signals-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAKtE;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAWD,qBAAa,yBAAyB;IAMlC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IALvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqE;IAC3F,OAAO,CAAC,cAAc,CAAqB;gBAGzC,QAAQ,EAAE,gBAAgB,EACT,oBAAoB,EAAE,MAAM;IAK/C;;;;;;OAMG;IACG,gBAAgB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAyDrG"}
1
+ {"version":3,"file":"verification-signals-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/verification-signals-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAKtE;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAYD,qBAAa,yBAAyB;IAWlC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAVvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqE;IAC3F,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAqB;IAE5C;;;OAGG;gBAED,QAAQ,EAAE,gBAAgB,EACT,oBAAoB,EAAE,MAAM,EAC7C,cAAc,CAAC,EAAE,MAAM;IAMzB,4FAA4F;YAC9E,QAAQ;IAStB;;;;;;OAMG;IACG,gBAAgB,CAAC,OAAO,EAAE,SAAS,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAuDrG"}
@@ -1,9 +1,10 @@
1
1
  import { Interface, getAddress } from 'ethers';
2
2
  import { createCachedMulticallReader } from './multicall.js';
3
- import { VERIFICATION_ABI, VERIFIER_VERDICT, serviceHash } from './verifier-client.js';
3
+ import { KBF_AUDITS_ABI, VERIFICATION_RESULTS_ABI, VERIFIER_VERDICT, serviceHash } from './verifier-client.js';
4
4
  import { verificationServiceKey } from '../../reputation/model-reputation.js';
5
5
  const VERDICT_DIFF = BigInt(VERIFIER_VERDICT.DIFF);
6
- const VERIFICATION_IFACE = new Interface(VERIFICATION_ABI);
6
+ const RESULTS_IFACE = new Interface(VERIFICATION_RESULTS_ABI);
7
+ const KBF_IFACE = new Interface(KBF_AUDITS_ABI);
7
8
  const GATE_IFACE = new Interface(['function currentEpoch() view returns (uint256)']);
8
9
  function first(result) {
9
10
  return result && result.length > 0 ? result[0] : undefined;
@@ -12,16 +13,34 @@ export class VerificationSignalsClient {
12
13
  _verificationAddress;
13
14
  _read;
14
15
  _emissionsGate;
15
- constructor(provider, _verificationAddress) {
16
+ _resultsAddress;
17
+ /**
18
+ * @param _verificationAddress The KBF audits contract (`verificationContractAddress`).
19
+ * @param resultsAddress The results layer; read from `kbf.results()` on first use when absent.
20
+ */
21
+ constructor(provider, _verificationAddress, resultsAddress) {
16
22
  this._verificationAddress = _verificationAddress;
17
23
  this._read = createCachedMulticallReader(provider);
24
+ if (resultsAddress)
25
+ this._resultsAddress = getAddress(resultsAddress);
26
+ }
27
+ /** The results layer address, discovered once from the KBF contract when not configured. */
28
+ async _results() {
29
+ if (this._resultsAddress)
30
+ return this._resultsAddress;
31
+ const [result] = await this._read([{ target: this._verificationAddress, iface: KBF_IFACE, method: 'results' }]);
32
+ const address = first(result);
33
+ if (typeof address !== 'string')
34
+ throw new Error('verification results() read failed');
35
+ this._resultsAddress = getAddress(address);
36
+ return this._resultsAddress;
18
37
  }
19
38
  /**
20
39
  * Live DIFF services per agent id, as verification keys (trimmed,
21
40
  * lowercased service names). An agent is missing from the result when any
22
41
  * of its reads failed, so a caller can keep its previous answer instead of
23
- * clearing a penalty on an RPC hiccup. Throws when the epoch or validity
24
- * window cannot be read at all.
42
+ * clearing a penalty on an RPC hiccup. Throws when the current epoch
43
+ * cannot be read at all.
25
44
  */
26
45
  async readDiffServices(queries) {
27
46
  const out = new Map();
@@ -39,24 +58,21 @@ export class VerificationSignalsClient {
39
58
  }
40
59
  if (agents.size === 0)
41
60
  return out;
42
- const target = this._verificationAddress;
43
- const requests = [{ target, iface: VERIFICATION_IFACE, method: 'validityEpochs' }];
61
+ const target = await this._results();
62
+ const requests = [];
44
63
  const needsGate = this._emissionsGate === undefined;
45
64
  if (needsGate)
46
- requests.push({ target, iface: VERIFICATION_IFACE, method: 'emissionsGate' });
65
+ requests.push({ target, iface: RESULTS_IFACE, method: 'emissionsGate' });
47
66
  const statusCalls = [];
48
67
  for (const [agentId, keys] of agents) {
49
68
  for (const key of keys) {
50
69
  statusCalls.push({ agentId, key, index: requests.length });
51
- requests.push({ target, iface: VERIFICATION_IFACE, method: 'serviceStatus', args: [BigInt(agentId), serviceHash(key)] });
70
+ requests.push({ target, iface: RESULTS_IFACE, method: 'serviceStatus', args: [BigInt(agentId), serviceHash(key)] });
52
71
  }
53
72
  }
54
73
  const results = await this._read(requests);
55
- const validity = first(results[0]);
56
- if (typeof validity !== 'bigint')
57
- throw new Error('verification validityEpochs read failed');
58
74
  if (needsGate) {
59
- const gate = first(results[1]);
75
+ const gate = first(results[0]);
60
76
  if (typeof gate !== 'string')
61
77
  throw new Error('verification emissionsGate read failed');
62
78
  this._emissionsGate = getAddress(gate);
@@ -75,12 +91,12 @@ export class VerificationSignalsClient {
75
91
  continue;
76
92
  }
77
93
  const verdict = status.verdict ?? status[1];
78
- const epoch = status.epoch ?? status[3];
79
- if (typeof verdict !== 'bigint' || typeof epoch !== 'bigint') {
94
+ const validUntil = status.validUntilEpoch ?? status[5];
95
+ if (typeof verdict !== 'bigint' || typeof validUntil !== 'bigint') {
80
96
  failed.add(call.agentId);
81
97
  continue;
82
98
  }
83
- if (verdict === VERDICT_DIFF && currentEpoch < epoch + validity)
99
+ if (verdict === VERDICT_DIFF && currentEpoch < validUntil)
84
100
  out.get(call.agentId).push(call.key);
85
101
  }
86
102
  for (const agentId of failed)
@@ -1 +1 @@
1
- {"version":3,"file":"verification-signals-client.js","sourceRoot":"","sources":["../../../src/payments/evm/verification-signals-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-signals-client.js","sourceRoot":"","sources":["../../../src/payments/evm/verification-signals-client.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,23 @@ import { BaseEvmClient } from './base-evm-client.js';
3
3
  export interface VerifierClientConfig {
4
4
  rpcUrl: string;
5
5
  fallbackRpcUrls?: string[];
6
+ /**
7
+ * The `AntseedKbfAudits` contract: the KBF audit auditors submit audits to, which also holds the
8
+ * approved auditors. The results layer is discovered from it (`results()`) unless given below.
9
+ */
6
10
  contractAddress: string;
7
11
  evmChainId?: number;
8
12
  /**
9
- * Block the verification contract was deployed at. Default lower bound for
13
+ * Block the KBF audits contract was deployed at. Default lower bound for
10
14
  * event queries; without it, queries require an explicit `fromBlock`.
11
15
  */
12
16
  deploymentBlock?: number;
17
+ /** `AntseedVerificationResults` address; read from `kbf.results()` when absent. */
18
+ resultsAddress?: string;
13
19
  /** Max blocks per `eth_getLogs` window (defaults to 10k). */
14
20
  logQueryChunkBlocks?: number;
15
21
  }
16
- /** Mirrors IAntseedKbfVerification.Verdict. */
22
+ /** Mirrors IAntseedVerificationResults.Verdict. */
17
23
  export declare const VERIFIER_VERDICT: {
18
24
  readonly NONE: 0;
19
25
  readonly SAME: 1;
@@ -23,7 +29,7 @@ export declare const VERIFIER_VERDICT: {
23
29
  export type VerifierVerdictName = Exclude<keyof typeof VERIFIER_VERDICT, 'NONE'>;
24
30
  export type VerifierVerdict = (typeof VERIFIER_VERDICT)[keyof typeof VERIFIER_VERDICT];
25
31
  export declare function verifierVerdict(name: VerifierVerdictName): VerifierVerdict;
26
- /** AntseedKbfVerification.MAX_RESULTS_PER_AUDIT. */
32
+ /** AntseedKbfAudits.MAX_RESULTS_PER_AUDIT. */
27
33
  export declare const MAX_RESULTS_PER_MODEL_AUDIT = 256;
28
34
  export interface ServiceResultInput {
29
35
  agentId: bigint;
@@ -43,7 +49,7 @@ export interface ServiceAuditedEvent {
43
49
  auditor: string;
44
50
  modelHash: string;
45
51
  verdict: VerifierVerdict;
46
- /** The service's report round: it moves on whenever the service's verdict moves into or out of DIFF, and only reports of the current round count. */
52
+ /** The service's report round: it moves on whenever any audit moves the service's verdict into or out of DIFF, an auditor is revoked, or the results owner clears the service; only reports of the current round count. */
47
53
  round: number;
48
54
  /** Distinct auditors reporting `verdict` for this service and model in the epoch and round, this report included. */
49
55
  reports: number;
@@ -83,7 +89,25 @@ export interface AuditorCredits {
83
89
  auditor: bigint;
84
90
  total: bigint;
85
91
  }
86
- export declare const VERIFICATION_ABI: readonly ["function submitModelAudit(uint256 expectedEpoch,bytes32 modelHash,bytes32 evidenceHash,string evidenceUri,(uint256 agentId,bytes32 serviceHash,uint8 verdict)[] results) external", "function serviceStatus(uint256 agentId,bytes32 serviceHash) external view returns ((bytes32 modelHash,uint8 verdict,uint64 updatedAt,uint64 epoch))", "function agentStatus(uint256 agentId) external view returns ((uint16 verifiedCount,uint16 diffCount))", "function isVerified(uint256 agentId) external view returns (bool)", "function claimAuditorRewards(uint256[] epochs) external returns (uint256)", "function pendingAuditorReward(address auditor,uint256 epoch) external view returns (uint256)", "function epochCredits(uint256 epoch) external view returns (uint256)", "function auditorEpochCredits(uint256 epoch,address auditor) external view returns (uint256)", "function modelCredits(uint256 epoch,address auditor,bytes32 modelHash) external view returns (uint256)", "function maxCreditsPerAuditorPerEpoch() external view returns (uint32)", "function maxCreditsPerModelPerEpoch() external view returns (uint32)", "function validityEpochs() external view returns (uint8)", "function emissionsGate() external view returns (address)", "function registry() external view returns (address)", "function sellerPools() external view returns (address)", "function approvedAuditors(address auditor) external view returns (bool)", "function requiredReports(uint8 verdict) external view returns (uint8)", "function reportRound(uint256 agentId,bytes32 serviceHash) external view returns (uint256)", "event AuditorSet(address indexed auditor,bool approved)", "event ModelAudited(bytes32 indexed modelHash,address indexed auditor,uint256 indexed epoch,bytes32 evidenceHash,string evidenceUri,uint256 resultCount)", "event ServiceAudited(uint256 indexed agentId,bytes32 indexed serviceHash,address indexed auditor,bytes32 modelHash,uint8 verdict,uint256 round,uint256 reports,uint256 required)", "event ServiceStatusChanged(uint256 indexed agentId,bytes32 indexed serviceHash,bytes32 modelHash,uint8 previous,uint8 current)", "event AuditCredited(uint256 indexed epoch,address indexed auditor,bytes32 indexed modelHash)"];
92
+ /** How an auditor shows itself in UIs (`AntseedKbfAudits.auditorProfile`). Empty strings when unset. */
93
+ export interface AuditorProfile {
94
+ name: string;
95
+ /** `https://` or `ipfs://` link to a square image. */
96
+ iconUri: string;
97
+ /** `https://` or `ipfs://` website or profile link. */
98
+ url: string;
99
+ }
100
+ /** AntseedKbfAudits profile limits. */
101
+ export declare const MAX_AUDITOR_PROFILE_NAME_BYTES = 64;
102
+ export declare const MAX_AUDITOR_PROFILE_URI_BYTES = 256;
103
+ /** `AntseedVerificationResults.REWARDS_OFF`: an audit's rewards start epoch while its rewards are off. */
104
+ export declare const VERIFICATION_REWARDS_OFF: bigint;
105
+ /** Throws when `profile` would be rejected by `setAuditorProfile`, with the reason. */
106
+ export declare function validateAuditorProfile(profile: AuditorProfile): void;
107
+ /** `AntseedKbfAudits`: the KBF audit auditors submit to. */
108
+ export declare const KBF_AUDITS_ABI: readonly ["function submitModelAudit(uint256 expectedEpoch,bytes32 modelHash,bytes32 evidenceHash,string evidenceUri,(uint256 agentId,bytes32 serviceHash,uint8 verdict)[] results) external", "function requiredReports(uint8 verdict) external view returns (uint8)", "function reportRound(uint256 agentId,bytes32 serviceHash) external view returns (uint256)", "function reportKey(uint256 epoch,uint256 agentId,bytes32 serviceHash,bytes32 modelHash,uint256 round) external pure returns (bytes32)", "function reportOf(bytes32 key,address auditor) external view returns (uint8)", "function reportCount(bytes32 key,uint8 verdict) external view returns (uint256)", "function creditedAudits(uint256 epoch,address auditor,bytes32 modelHash) external view returns (uint256)", "function maxCreditsPerModelPerEpoch() external view returns (uint32)", "function creditsPerAudit() external view returns (uint32)", "function modelCreditsPerAudit(bytes32 modelHash) external view returns (uint32)", "function creditsFor(bytes32 modelHash) external view returns (uint256)", "function validityEpochs() external view returns (uint8)", "function diffReplacementReports() external view returns (uint8)", "function results() external view returns (address)", "function sellerPools() external view returns (address)", "function identityRegistry() external view returns (address)", "function approvedAuditors(address auditor) external view returns (bool)", "function auditorRevocations() external view returns (uint256)", "function agentOwner(uint256 agentId) external view returns (bool known,address owner)", "function auditorProfile(address auditor) external view returns ((string name,string iconUri,string url))", "function setAuditorProfile(string name,string iconUri,string url) external", "event AuditorSet(address indexed auditor,bool approved,uint256 revocations)", "event AuditorProfileSet(address indexed auditor,string name,string iconUri,string url)", "event ModelAudited(bytes32 indexed modelHash,address indexed auditor,uint256 indexed epoch,bytes32 evidenceHash,string evidenceUri,uint256 resultCount)", "event ServiceAudited(uint256 indexed agentId,bytes32 indexed serviceHash,address indexed auditor,bytes32 modelHash,uint8 verdict,uint256 round,uint256 reports,uint256 required)", "event AuditCredited(uint256 indexed epoch,address indexed auditor,bytes32 indexed modelHash,uint256 credits)", "event UnknownAgentSkipped(uint256 indexed agentId,bytes32 indexed modelHash)", "event ValidityEpochsSet(uint8 validityEpochs)", "event CreditsPerAuditSet(uint32 credits)", "event ModelCreditsPerAuditSet(bytes32 indexed modelHash,uint32 credits)"];
109
+ /** `AntseedVerificationResults`: verdicts and verification rewards, for every audit. */
110
+ export declare const VERIFICATION_RESULTS_ABI: readonly ["function serviceStatus(uint256 agentId,bytes32 serviceHash) external view returns ((bytes32 modelHash,uint8 verdict,uint64 updatedAt,uint64 epoch,address audit,uint64 validUntilEpoch))", "function agentStatus(uint256 agentId) external view returns ((uint16 verifiedCount,uint16 diffCount))", "function isVerified(uint256 agentId) external view returns (bool)", "function liveVerdict(uint256 agentId,bytes32 serviceHash) external view returns (uint8)", "function serviceClears(uint256 agentId,bytes32 serviceHash) external view returns (uint256)", "function diffChanges(uint256 agentId,bytes32 serviceHash) external view returns (uint256)", "function emissionsGate() external view returns (address)", "function currentEpoch() external view returns (uint256)", "function isAudit(address audit) external view returns (bool)", "function auditShareBps(address audit) external view returns (uint16)", "function auditShareBpsAt(address audit,uint256 epoch) external view returns (uint16)", "function auditBudget(address audit,uint256 epoch) external view returns (uint256)", "function rewardsStartEpoch(address audit) external view returns (uint64)", "function maxCreditsPerAuditorPerEpoch(address audit) external view returns (uint32)", "function maxAuditorShareBps(address audit) external view returns (uint16)", "function epochCredits(address audit,uint256 epoch) external view returns (uint256)", "function auditorEpochCredits(address audit,uint256 epoch,address auditor) external view returns (uint256)", "function auditorEpochClaimed(address audit,uint256 epoch,address auditor) external view returns (bool)", "function claimAuditorReward(address audit,uint256 epoch) external", "function pendingAuditorReward(address audit,address auditor,uint256 epoch) external view returns (uint256)", "function paused() external view returns (bool)", "event ServiceStatusChanged(uint256 indexed agentId,bytes32 indexed serviceHash,bytes32 modelHash,uint8 previous,uint8 current,address audit,uint256 epoch,uint256 validUntilEpoch)", "event ServiceCleared(uint256 indexed agentId,bytes32 indexed serviceHash,uint256 epoch,uint256 clears)", "event AgentStatusChanged(uint256 indexed agentId,uint16 verifiedCount,uint16 diffCount)", "event Credited(address indexed audit,uint256 indexed epoch,address indexed auditor,uint256 credits)", "event AuditorRewardClaimed(address indexed audit,uint256 indexed epoch,address indexed auditor,uint256 credits,uint256 totalCredits,uint256 grossAmount,uint256 claimableAmount,uint256 reserveAmount)"];
87
111
  export declare function serviceHash(service: string): string;
88
112
  /** Identifies the model a service was audited as. */
89
113
  export declare function modelHash(model: string): string;
@@ -94,30 +118,75 @@ export interface VerifierServiceStatus {
94
118
  /** Latest result (SAME, DIFF, or UNDETERMINED); only SAME and DIFF count in the agent's status. */
95
119
  verdict: VerifierVerdict;
96
120
  updatedAt: bigint;
97
- /** Emissions epoch the verdict was given in; it counts while `currentEpoch < epoch + validityEpochs`. 0 when there is none. */
121
+ /** Emissions epoch the verdict was given in; 0 when there is none. */
98
122
  epoch: bigint;
123
+ /** First epoch the verdict no longer counts in, chosen by the audit that recorded it; 0 when there is none. */
124
+ validUntilEpoch: bigint;
125
+ /** Audit contract that recorded the verdict (e.g. the KBF audits contract); the zero address when there is none. */
126
+ audit: string;
99
127
  }
128
+ /**
129
+ * Reads and writes the split verification contracts on behalf of a KBF verifier:
130
+ *
131
+ * - `AntseedKbfAudits` (`contractAddress`): approved auditors (`AuditorSet` events), audits, report
132
+ * tallies, per-model credits;
133
+ * - `AntseedVerificationResults` (`kbf.results()`): verdicts, epochs, credits and reward claims,
134
+ * keyed by the KBF contract as the audit.
135
+ *
136
+ * The results address is discovered from the KBF contract on first use and cached.
137
+ */
100
138
  export declare class VerifierClient extends BaseEvmClient {
101
139
  private _contractInstance;
140
+ private _resultsInstance;
141
+ private readonly _config;
102
142
  private readonly _deploymentBlock;
103
143
  private readonly _logQueryChunkBlocks;
104
144
  constructor(config: VerifierClientConfig);
105
- /** Block the verification contract was deployed at, when configured. */
145
+ /** Block the KBF audits contract was deployed at, when configured. */
106
146
  get deploymentBlock(): number | undefined;
147
+ /** The `AntseedKbfAudits` contract. */
107
148
  private _contract;
108
- /** Records one auditor's results for every seller audited as one model. */
149
+ /** The `AntseedVerificationResults` contract the KBF contract records into. */
150
+ private _results;
151
+ /** `AntseedVerificationResults` address (configured, or read from the KBF contract). */
152
+ resultsAddress(): Promise<string>;
153
+ /** Records one auditor's results for every seller audited as one model, on the KBF contract. */
109
154
  submitModelAudit(signer: AbstractSigner, input: SubmitModelAuditInput): Promise<string>;
110
- claimAuditorRewards(signer: AbstractSigner, epochs: readonly (number | bigint)[]): Promise<string>;
155
+ /**
156
+ * Claims KBF rewards on the results contract, one transaction per epoch as the contract takes
157
+ * them: `results.claimAuditorReward(kbf, epoch)`. Returns the transaction hashes in order.
158
+ */
159
+ claimAuditorRewards(signer: AbstractSigner, epochs: readonly (number | bigint)[]): Promise<string[]>;
160
+ /** Claimable KBF reward of a finalized epoch: `results.pendingAuditorReward(kbf, auditor, epoch)`. */
111
161
  pendingAuditorReward(auditor: string, epoch: number | bigint): Promise<bigint>;
112
- /** Credits the auditor earned in `epoch`, and the epoch's total. */
162
+ /** KBF credits the auditor earned in `epoch`, and the epoch's KBF total, from the results contract. */
113
163
  auditCredits(auditor: string, epoch: number | bigint): Promise<AuditorCredits>;
114
- modelCredits(epoch: number | bigint, auditor: string, model: string): Promise<bigint>;
164
+ /** Audits of `model` (a model hash) by `auditor` in `epoch` that earned credits; at most `perModel` of `creditLimits`. */
165
+ creditedAudits(epoch: number | bigint, auditor: string, model: string): Promise<bigint>;
166
+ /** Credits one audit of `model` (a model hash) earns now: its own amount on the KBF contract, else the default. */
167
+ creditsFor(model: string): Promise<bigint>;
168
+ /** Per-auditor credit cap (results layer, for the KBF audit, per epoch) and per-model cap on credited audits (KBF contract). */
115
169
  creditLimits(): Promise<{
116
170
  perAuditor: bigint;
117
171
  perModel: bigint;
118
172
  }>;
119
- /** The emissions gate pinned by the contract at deployment; `expectedEpoch` is checked against it. */
173
+ /**
174
+ * KBF reward settings on the results contract: the first epoch whose audits earn credits
175
+ * (`VERIFICATION_REWARDS_OFF` while rewards are off), KBF's share of the bucket for `epoch`
176
+ * (default: the latest setting) and the most of that share one auditor can receive, both in bps.
177
+ */
178
+ rewardSettings(epoch?: number | bigint): Promise<{
179
+ rewardsStartEpoch: bigint;
180
+ shareBps: number;
181
+ maxAuditorShareBps: number;
182
+ }>;
183
+ /** The auditor's display profile on the KBF contract; empty strings when never set. */
184
+ auditorProfile(auditor: string): Promise<AuditorProfile>;
185
+ /** Sets the signer's display profile on the KBF contract (approved auditors only). */
186
+ setAuditorProfile(signer: AbstractSigner, profile: AuditorProfile): Promise<string>;
187
+ /** The emissions gate the results contract pinned at deployment; `expectedEpoch` is checked against it. */
120
188
  emissionsGate(): Promise<string>;
189
+ /** Epochs a KBF verdict counts for (KBF contract), including the one it was given in. */
121
190
  validityEpochs(): Promise<number>;
122
191
  /** The current epoch exactly as `submitModelAudit` checks it. */
123
192
  currentEpochWindow(): Promise<{
@@ -126,20 +195,22 @@ export declare class VerifierClient extends BaseEvmClient {
126
195
  endsAt: number;
127
196
  }>;
128
197
  isVerified(agentId: number | bigint): Promise<boolean>;
129
- /** SAME and DIFF services whose verdicts are still within `validityEpochs`. */
198
+ /** SAME and DIFF services whose verdicts still count (`currentEpoch < validUntilEpoch`). */
130
199
  agentStatus(agentId: number | bigint): Promise<{
131
200
  verifiedCount: number;
132
201
  diffCount: number;
133
202
  }>;
134
203
  serviceStatus(agentId: number | bigint, service: string): Promise<VerifierServiceStatus>;
135
204
  serviceStatusByHash(agentId: number | bigint, hash: string): Promise<VerifierServiceStatus>;
205
+ /** Whether `auditor` is approved on the KBF contract. */
136
206
  approvedAuditor(auditor: string): Promise<boolean>;
137
- registry(): Promise<string>;
207
+ /** The identity registry the KBF contract resolves agent owners with. */
138
208
  identityRegistry(): Promise<string>;
139
209
  agentOwner(agentId: number | bigint): Promise<string>;
140
210
  /**
141
- * The service's current report round: only reports made in it count. It moves on whenever the
142
- * service's verdict moves into or out of DIFF and whenever an auditor is revoked.
211
+ * The service's current report round: only reports made in it count. It moves on whenever any
212
+ * source moves the service's verdict into or out of DIFF, an auditor is revoked, or the results
213
+ * owner clears the service.
143
214
  */
144
215
  reportRound(agentId: number | bigint, serviceHashValue: string): Promise<number>;
145
216
  /** Distinct approved auditors each verdict needs in one epoch before it is recorded. */
@@ -152,8 +223,9 @@ export declare class VerifierClient extends BaseEvmClient {
152
223
  auditor?: string | null;
153
224
  }, fromBlock?: number, toBlock?: number | 'latest'): Promise<ModelAuditedEvent[]>;
154
225
  /**
155
- * Every `AuditorSet` change in block order, with its block timestamp. The contract cannot list
156
- * its auditors, so replaying these events is how to rebuild the approved set at a point in time.
226
+ * Every `AuditorSet` change of the KBF contract in block order, with its block timestamp. The
227
+ * contract cannot list its auditors, so replaying these events is how to rebuild the approved set
228
+ * at a point in time.
157
229
  */
158
230
  queryAuditorSetEvents(fromBlock?: number, toBlock?: number | 'latest'): Promise<AuditorSetEvent[]>;
159
231
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"verifier-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/verifier-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/verifier-client.ts"],"names":[],"mappings":"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"}