@antseed/node 0.2.162 → 0.2.164
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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +26 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +62 -3
- package/dist/node.js.map +1 -1
- package/dist/payments/chain-config.d.ts +11 -2
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +12 -1
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/evm/verification-signals-client.d.ts +16 -7
- package/dist/payments/evm/verification-signals-client.d.ts.map +1 -1
- package/dist/payments/evm/verification-signals-client.js +26 -7
- package/dist/payments/evm/verification-signals-client.js.map +1 -1
- package/dist/payments/evm/verifier-client.d.ts +80 -13
- package/dist/payments/evm/verifier-client.d.ts.map +1 -1
- package/dist/payments/evm/verifier-client.js +198 -45
- package/dist/payments/evm/verifier-client.js.map +1 -1
- package/dist/payments/generated-contract-addresses.d.ts +3 -2
- package/dist/payments/generated-contract-addresses.d.ts.map +1 -1
- package/dist/payments/generated-contract-addresses.js +3 -2
- package/dist/payments/generated-contract-addresses.js.map +1 -1
- package/dist/payments/index.d.ts +3 -3
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +2 -2
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/seller-payment-manager.d.ts +9 -2
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +51 -24
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/reputation/model-reputation.d.ts +1 -1
- package/dist/reputation/model-reputation.js +1 -1
- package/dist/seller-request-handler.js +4 -4
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/peer.d.ts +1 -1
- package/package.json +3 -3
|
@@ -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
|
|
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;CAyDrG"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Interface, getAddress } from 'ethers';
|
|
2
2
|
import { createCachedMulticallReader } from './multicall.js';
|
|
3
|
-
import {
|
|
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
|
|
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,9 +13,27 @@ export class VerificationSignalsClient {
|
|
|
12
13
|
_verificationAddress;
|
|
13
14
|
_read;
|
|
14
15
|
_emissionsGate;
|
|
15
|
-
|
|
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,
|
|
@@ -39,16 +58,16 @@ export class VerificationSignalsClient {
|
|
|
39
58
|
}
|
|
40
59
|
if (agents.size === 0)
|
|
41
60
|
return out;
|
|
42
|
-
const target = this.
|
|
43
|
-
const requests = [{ target, iface:
|
|
61
|
+
const target = await this._results();
|
|
62
|
+
const requests = [{ target, iface: RESULTS_IFACE, method: 'validityEpochs' }];
|
|
44
63
|
const needsGate = this._emissionsGate === undefined;
|
|
45
64
|
if (needsGate)
|
|
46
|
-
requests.push({ target, iface:
|
|
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:
|
|
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);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-signals-client.js","sourceRoot":"","sources":["../../../src/payments/evm/verification-signals-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAyB,MAAM,QAAQ,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAyB,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,
|
|
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 source 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
|
|
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
|
|
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
|
-
/**
|
|
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
|
|
52
|
+
/** The service's report round: it moves on whenever any source 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
|
-
|
|
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`: a source'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 source verifiers 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 modelCredits(uint256 epoch,address auditor,bytes32 modelHash) external view returns (uint256)", "function maxCreditsPerModelPerEpoch() external view returns (uint32)", "function results() external view returns (address)", "function sellerPools() 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)", "event UnknownAgentSkipped(uint256 indexed agentId,bytes32 indexed modelHash)"];
|
|
109
|
+
/** `AntseedVerificationResults`: verdicts and verification rewards, for every source. */
|
|
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 source))", "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 validityEpochs() external view returns (uint8)", "function emissionsGate() external view returns (address)", "function registry() external view returns (address)", "function currentEpoch() external view returns (uint256)", "function isSource(address source) external view returns (bool)", "function sourceShareBps(address source) external view returns (uint16)", "function sourceShareBpsAt(address source,uint256 epoch) external view returns (uint16)", "function sourceBudget(address source,uint256 epoch) external view returns (uint256)", "function rewardsStartEpoch(address source) external view returns (uint64)", "function maxCreditsPerAuditorPerEpoch(address source) external view returns (uint32)", "function maxAuditorShareBps(address source) external view returns (uint16)", "function epochCredits(address source,uint256 epoch) external view returns (uint256)", "function auditorEpochCredits(address source,uint256 epoch,address auditor) external view returns (uint256)", "function auditorEpochClaimed(address source,uint256 epoch,address auditor) external view returns (bool)", "function claimedCredits(address source,uint256 epoch) external view returns (uint256)", "function paidRewards(address source,uint256 epoch) external view returns (uint256)", "function settledRemainder(uint256 epoch) external view returns (uint256)", "function unclaimableRemainder(uint256 epoch) external view returns (uint256)", "function claimRewards(address source,uint256[] epochs) external returns (uint256)", "function pendingReward(address source,address auditor,uint256 epoch) external view returns (uint256)", "function settleEpochRemainder(uint256 epoch) external returns (uint256 burnedAmount,uint256 reserveAmount)", "event ServiceStatusChanged(uint256 indexed agentId,bytes32 indexed serviceHash,bytes32 modelHash,uint8 previous,uint8 current,address source,uint256 epoch)", "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 source,uint256 indexed epoch,address indexed auditor,uint256 credits)", "event CreditsVoided(address indexed source,uint256 indexed epoch,address indexed auditor,uint256 credits)", "event RewardClaimed(address indexed source,uint256 indexed epoch,address indexed auditor,uint256 amount,uint256 reserveAmount)", "event EpochRemainderSettled(uint256 indexed epoch,uint256 amount,uint256 burnedAmount,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;
|
|
@@ -96,27 +120,67 @@ export interface VerifierServiceStatus {
|
|
|
96
120
|
updatedAt: bigint;
|
|
97
121
|
/** Emissions epoch the verdict was given in; it counts while `currentEpoch < epoch + validityEpochs`. 0 when there is none. */
|
|
98
122
|
epoch: bigint;
|
|
123
|
+
/** Source contract that recorded the verdict (e.g. the KBF audits contract); the zero address when there is none. */
|
|
124
|
+
source: string;
|
|
99
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Reads and writes the split verification contracts on behalf of a KBF verifier:
|
|
128
|
+
*
|
|
129
|
+
* - `AntseedKbfAudits` (`contractAddress`): approved auditors (`AuditorSet` events), audits, report
|
|
130
|
+
* tallies, per-model credits;
|
|
131
|
+
* - `AntseedVerificationResults` (`kbf.results()`): verdicts, epochs, credits and reward claims,
|
|
132
|
+
* keyed by the KBF contract as the source.
|
|
133
|
+
*
|
|
134
|
+
* The results address is discovered from the KBF contract on first use and cached.
|
|
135
|
+
*/
|
|
100
136
|
export declare class VerifierClient extends BaseEvmClient {
|
|
101
137
|
private _contractInstance;
|
|
138
|
+
private _resultsInstance;
|
|
139
|
+
private readonly _config;
|
|
102
140
|
private readonly _deploymentBlock;
|
|
103
141
|
private readonly _logQueryChunkBlocks;
|
|
104
142
|
constructor(config: VerifierClientConfig);
|
|
105
|
-
/** Block the
|
|
143
|
+
/** Block the KBF audits contract was deployed at, when configured. */
|
|
106
144
|
get deploymentBlock(): number | undefined;
|
|
145
|
+
/** The `AntseedKbfAudits` contract. */
|
|
107
146
|
private _contract;
|
|
108
|
-
/**
|
|
147
|
+
/** The `AntseedVerificationResults` contract the KBF contract records into. */
|
|
148
|
+
private _results;
|
|
149
|
+
/** `AntseedVerificationResults` address (configured, or read from the KBF contract). */
|
|
150
|
+
resultsAddress(): Promise<string>;
|
|
151
|
+
/** Records one auditor's results for every seller audited as one model, on the KBF contract. */
|
|
109
152
|
submitModelAudit(signer: AbstractSigner, input: SubmitModelAuditInput): Promise<string>;
|
|
153
|
+
/** Claims KBF rewards for `epochs` on the results contract: `results.claimRewards(kbf, epochs)`. */
|
|
110
154
|
claimAuditorRewards(signer: AbstractSigner, epochs: readonly (number | bigint)[]): Promise<string>;
|
|
155
|
+
/** Claimable KBF reward of a finalized epoch: `results.pendingReward(kbf, auditor, epoch)`. */
|
|
111
156
|
pendingAuditorReward(auditor: string, epoch: number | bigint): Promise<bigint>;
|
|
112
|
-
/**
|
|
157
|
+
/** KBF credits the auditor earned in `epoch`, and the epoch's KBF total, from the results contract. */
|
|
113
158
|
auditCredits(auditor: string, epoch: number | bigint): Promise<AuditorCredits>;
|
|
114
159
|
modelCredits(epoch: number | bigint, auditor: string, model: string): Promise<bigint>;
|
|
160
|
+
/** Per-auditor cap (results layer, for the KBF source, per epoch) and per-model cap (KBF contract). */
|
|
115
161
|
creditLimits(): Promise<{
|
|
116
162
|
perAuditor: bigint;
|
|
117
163
|
perModel: bigint;
|
|
118
164
|
}>;
|
|
119
|
-
/**
|
|
165
|
+
/**
|
|
166
|
+
* KBF reward settings on the results contract: the first epoch whose audits earn credits
|
|
167
|
+
* (`VERIFICATION_REWARDS_OFF` while rewards are off), KBF's share of the bucket for `epoch`
|
|
168
|
+
* (default: the latest setting) and the most of that share one auditor can receive, both in bps.
|
|
169
|
+
*/
|
|
170
|
+
rewardSettings(epoch?: number | bigint): Promise<{
|
|
171
|
+
rewardsStartEpoch: bigint;
|
|
172
|
+
shareBps: number;
|
|
173
|
+
maxAuditorShareBps: number;
|
|
174
|
+
}>;
|
|
175
|
+
/** The auditor's display profile on the KBF contract; empty strings when never set. */
|
|
176
|
+
auditorProfile(auditor: string): Promise<AuditorProfile>;
|
|
177
|
+
/** Sets the signer's display profile on the KBF contract (approved auditors only). */
|
|
178
|
+
setAuditorProfile(signer: AbstractSigner, profile: AuditorProfile): Promise<string>;
|
|
179
|
+
/** What `settleEpochRemainder(epoch)` would sweep now (burn, then reserve); 0 for the current epoch. */
|
|
180
|
+
unclaimableRemainder(epoch: number | bigint): Promise<bigint>;
|
|
181
|
+
/** Sweeps a finalized epoch's unclaimable verification budget; anyone may send it. */
|
|
182
|
+
settleEpochRemainder(signer: AbstractSigner, epoch: number | bigint): Promise<string>;
|
|
183
|
+
/** The emissions gate the results contract pinned at deployment; `expectedEpoch` is checked against it. */
|
|
120
184
|
emissionsGate(): Promise<string>;
|
|
121
185
|
validityEpochs(): Promise<number>;
|
|
122
186
|
/** The current epoch exactly as `submitModelAudit` checks it. */
|
|
@@ -133,13 +197,15 @@ export declare class VerifierClient extends BaseEvmClient {
|
|
|
133
197
|
}>;
|
|
134
198
|
serviceStatus(agentId: number | bigint, service: string): Promise<VerifierServiceStatus>;
|
|
135
199
|
serviceStatusByHash(agentId: number | bigint, hash: string): Promise<VerifierServiceStatus>;
|
|
200
|
+
/** Whether `auditor` is approved on the KBF contract. */
|
|
136
201
|
approvedAuditor(auditor: string): Promise<boolean>;
|
|
137
202
|
registry(): Promise<string>;
|
|
138
203
|
identityRegistry(): Promise<string>;
|
|
139
204
|
agentOwner(agentId: number | bigint): Promise<string>;
|
|
140
205
|
/**
|
|
141
|
-
* The service's current report round: only reports made in it count. It moves on whenever
|
|
142
|
-
* service's verdict
|
|
206
|
+
* The service's current report round: only reports made in it count. It moves on whenever any
|
|
207
|
+
* source moves the service's verdict into or out of DIFF, an auditor is revoked, or the results
|
|
208
|
+
* owner clears the service.
|
|
143
209
|
*/
|
|
144
210
|
reportRound(agentId: number | bigint, serviceHashValue: string): Promise<number>;
|
|
145
211
|
/** Distinct approved auditors each verdict needs in one epoch before it is recorded. */
|
|
@@ -152,8 +218,9 @@ export declare class VerifierClient extends BaseEvmClient {
|
|
|
152
218
|
auditor?: string | null;
|
|
153
219
|
}, fromBlock?: number, toBlock?: number | 'latest'): Promise<ModelAuditedEvent[]>;
|
|
154
220
|
/**
|
|
155
|
-
* Every `AuditorSet` change in block order, with its block timestamp. The
|
|
156
|
-
* its auditors, so replaying these events is how to rebuild the approved set
|
|
221
|
+
* Every `AuditorSet` change of the KBF contract in block order, with its block timestamp. The
|
|
222
|
+
* contract cannot list its auditors, so replaying these events is how to rebuild the approved set
|
|
223
|
+
* at a point in time.
|
|
157
224
|
*/
|
|
158
225
|
queryAuditorSetEvents(fromBlock?: number, toBlock?: number | 'latest'): Promise<AuditorSetEvent[]>;
|
|
159
226
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verifier-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/verifier-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EAEpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED
|
|
1
|
+
{"version":3,"file":"verifier-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/verifier-client.ts"],"names":[],"mappings":"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"}
|