@antseed/node 0.2.88 → 0.2.90

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 (68) hide show
  1. package/dist/buyer-request-handler.js +2 -2
  2. package/dist/buyer-request-handler.js.map +1 -1
  3. package/dist/index.d.ts +3 -3
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/payments/buyer-payment-manager.d.ts +11 -0
  8. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  9. package/dist/payments/buyer-payment-manager.js +127 -15
  10. package/dist/payments/buyer-payment-manager.js.map +1 -1
  11. package/dist/payments/buyer-payment-negotiator.d.ts +1 -1
  12. package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
  13. package/dist/payments/buyer-payment-negotiator.js +4 -2
  14. package/dist/payments/buyer-payment-negotiator.js.map +1 -1
  15. package/dist/payments/channel-store.d.ts +13 -0
  16. package/dist/payments/channel-store.d.ts.map +1 -1
  17. package/dist/payments/channel-store.js +54 -0
  18. package/dist/payments/channel-store.js.map +1 -1
  19. package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
  20. package/dist/payments/evm/base-evm-client.js +11 -4
  21. package/dist/payments/evm/base-evm-client.js.map +1 -1
  22. package/dist/payments/evm/emissions-client.d.ts +11 -7
  23. package/dist/payments/evm/emissions-client.d.ts.map +1 -1
  24. package/dist/payments/evm/emissions-client.js +37 -1
  25. package/dist/payments/evm/emissions-client.js.map +1 -1
  26. package/dist/payments/evm/signatures.d.ts +33 -1
  27. package/dist/payments/evm/signatures.d.ts.map +1 -1
  28. package/dist/payments/evm/signatures.js +15 -3
  29. package/dist/payments/evm/signatures.js.map +1 -1
  30. package/dist/payments/index.d.ts +3 -3
  31. package/dist/payments/index.d.ts.map +1 -1
  32. package/dist/payments/index.js +1 -1
  33. package/dist/payments/index.js.map +1 -1
  34. package/dist/seller-request-handler.d.ts +6 -1
  35. package/dist/seller-request-handler.d.ts.map +1 -1
  36. package/dist/seller-request-handler.js +113 -36
  37. package/dist/seller-request-handler.js.map +1 -1
  38. package/dist/storage/migrations/channels/{003_create_usage_verification_tables.d.ts → 003_create_service_totals.d.ts} +1 -1
  39. package/dist/storage/migrations/channels/003_create_service_totals.d.ts.map +1 -0
  40. package/dist/storage/migrations/channels/003_create_service_totals.js +21 -0
  41. package/dist/storage/migrations/channels/003_create_service_totals.js.map +1 -0
  42. package/dist/storage/migrations/channels/index.d.ts.map +1 -1
  43. package/dist/storage/migrations/channels/index.js +2 -1
  44. package/dist/storage/migrations/channels/index.js.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/p2p/verification-codec.d.ts +0 -16
  47. package/dist/p2p/verification-codec.d.ts.map +0 -1
  48. package/dist/p2p/verification-codec.js +0 -121
  49. package/dist/p2p/verification-codec.js.map +0 -1
  50. package/dist/p2p/verification-mux.d.ts +0 -30
  51. package/dist/p2p/verification-mux.d.ts.map +0 -1
  52. package/dist/p2p/verification-mux.js +0 -89
  53. package/dist/p2p/verification-mux.js.map +0 -1
  54. package/dist/payments/evm/usage-verification-client.d.ts +0 -72
  55. package/dist/payments/evm/usage-verification-client.d.ts.map +0 -1
  56. package/dist/payments/evm/usage-verification-client.js +0 -141
  57. package/dist/payments/evm/usage-verification-client.js.map +0 -1
  58. package/dist/payments/usage-verification-manager.d.ts +0 -68
  59. package/dist/payments/usage-verification-manager.d.ts.map +0 -1
  60. package/dist/payments/usage-verification-manager.js +0 -316
  61. package/dist/payments/usage-verification-manager.js.map +0 -1
  62. package/dist/payments/usage-verification-store.d.ts +0 -56
  63. package/dist/payments/usage-verification-store.d.ts.map +0 -1
  64. package/dist/payments/usage-verification-store.js +0 -146
  65. package/dist/payments/usage-verification-store.js.map +0 -1
  66. package/dist/storage/migrations/channels/003_create_usage_verification_tables.d.ts.map +0 -1
  67. package/dist/storage/migrations/channels/003_create_usage_verification_tables.js +0 -54
  68. package/dist/storage/migrations/channels/003_create_usage_verification_tables.js.map +0 -1
@@ -1,121 +0,0 @@
1
- const encoder = new TextEncoder();
2
- const decoder = new TextDecoder();
3
- const MAX_PAYLOAD_SIZE = 65536;
4
- function parseJson(data) {
5
- if (data.byteLength > MAX_PAYLOAD_SIZE) {
6
- throw new Error(`Verification payload too large: ${data.byteLength} bytes (max ${MAX_PAYLOAD_SIZE})`);
7
- }
8
- const raw = JSON.parse(decoder.decode(data));
9
- if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
10
- throw new Error('Expected JSON object');
11
- return raw;
12
- }
13
- function requireString(obj, field) {
14
- const val = obj[field];
15
- if (typeof val !== 'string' || val.length === 0)
16
- throw new Error(`Missing or invalid string field: ${field}`);
17
- return val;
18
- }
19
- function optionalString(obj, field) {
20
- return typeof obj[field] === 'string' ? obj[field] : undefined;
21
- }
22
- function requireBool(obj, field) {
23
- const val = obj[field];
24
- if (typeof val !== 'boolean')
25
- throw new Error(`Missing or invalid boolean field: ${field}`);
26
- return val;
27
- }
28
- function requireClaim(obj, field = 'claim') {
29
- const raw = obj[field];
30
- if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
31
- throw new Error(`Missing or invalid claim field: ${field}`);
32
- const claim = raw;
33
- return {
34
- version: requireString(claim, 'version'),
35
- channelId: requireString(claim, 'channelId'),
36
- buyer: requireString(claim, 'buyer'),
37
- seller: requireString(claim, 'seller'),
38
- sellerAgentId: requireString(claim, 'sellerAgentId'),
39
- serviceKey: requireString(claim, 'serviceKey'),
40
- providerName: requireString(claim, 'providerName'),
41
- serviceName: requireString(claim, 'serviceName'),
42
- cumulativeInputTokens: requireString(claim, 'cumulativeInputTokens'),
43
- cumulativeCachedInputTokens: requireString(claim, 'cumulativeCachedInputTokens'),
44
- cumulativeFreshInputTokens: requireString(claim, 'cumulativeFreshInputTokens'),
45
- cumulativeOutputTokens: requireString(claim, 'cumulativeOutputTokens'),
46
- cumulativeRequestCount: requireString(claim, 'cumulativeRequestCount'),
47
- cumulativeCostUsdc: requireString(claim, 'cumulativeCostUsdc'),
48
- paymentCumulativeAmount: requireString(claim, 'paymentCumulativeAmount'),
49
- };
50
- }
51
- function encode(payload) {
52
- return encoder.encode(JSON.stringify(payload));
53
- }
54
- export const encodeVerificationCommitRequest = encode;
55
- export const encodeVerificationCommitResponse = encode;
56
- export const encodeVerificationCommitProof = encode;
57
- export const encodeVerificationRevealPackage = encode;
58
- export const encodeVerificationRevealResponse = encode;
59
- export const encodeVerificationRevealAck = encode;
60
- export function decodeVerificationCommitRequest(data) {
61
- const obj = parseJson(data);
62
- return {
63
- requestId: requireString(obj, 'requestId'),
64
- claim: requireClaim(obj),
65
- claimHash: requireString(obj, 'claimHash'),
66
- revealHash: requireString(obj, 'revealHash'),
67
- expectedEpoch: requireString(obj, 'expectedEpoch'),
68
- sellerSig: requireString(obj, 'sellerSig'),
69
- };
70
- }
71
- export function decodeVerificationCommitResponse(data) {
72
- const obj = parseJson(data);
73
- return {
74
- requestId: requireString(obj, 'requestId'),
75
- accepted: requireBool(obj, 'accepted'),
76
- claimHash: requireString(obj, 'claimHash'),
77
- revealHash: optionalString(obj, 'revealHash'),
78
- buyerSig: optionalString(obj, 'buyerSig'),
79
- reason: optionalString(obj, 'reason'),
80
- };
81
- }
82
- export function decodeVerificationCommitProof(data) {
83
- const obj = parseJson(data);
84
- return {
85
- requestId: requireString(obj, 'requestId'),
86
- claimHash: requireString(obj, 'claimHash'),
87
- txHash: optionalString(obj, 'txHash'),
88
- };
89
- }
90
- export function decodeVerificationRevealPackage(data) {
91
- const obj = parseJson(data);
92
- const party = requireString(obj, 'party');
93
- if (party !== 'buyer' && party !== 'seller')
94
- throw new Error('Invalid reveal package party');
95
- return {
96
- requestId: requireString(obj, 'requestId'),
97
- claim: requireClaim(obj),
98
- claimHash: requireString(obj, 'claimHash'),
99
- nonce: requireString(obj, 'nonce'),
100
- party,
101
- };
102
- }
103
- export function decodeVerificationRevealResponse(data) {
104
- const obj = parseJson(data);
105
- return {
106
- requestId: requireString(obj, 'requestId'),
107
- accepted: requireBool(obj, 'accepted'),
108
- claimHash: requireString(obj, 'claimHash'),
109
- nonce: optionalString(obj, 'nonce'),
110
- reason: optionalString(obj, 'reason'),
111
- };
112
- }
113
- export function decodeVerificationRevealAck(data) {
114
- const obj = parseJson(data);
115
- return {
116
- requestId: requireString(obj, 'requestId'),
117
- claimHash: requireString(obj, 'claimHash'),
118
- txHash: optionalString(obj, 'txHash'),
119
- };
120
- }
121
- //# sourceMappingURL=verification-codec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-codec.js","sourceRoot":"","sources":["../../src/p2p/verification-codec.ts"],"names":[],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- import type { PeerConnection } from './connection-manager.js';
2
- import type { FramedMessage, VerificationCommitProofPayload, VerificationCommitRequestPayload, VerificationCommitResponsePayload, VerificationRevealAckPayload, VerificationRevealPackagePayload, VerificationRevealResponsePayload } from '../types/protocol.js';
3
- export type VerificationMessageHandler<T> = (payload: T) => void | Promise<void>;
4
- export declare class VerificationMux {
5
- private readonly _connection;
6
- private _messageIdCounter;
7
- private _onCommitRequest?;
8
- private _onCommitResponse?;
9
- private _onCommitProof?;
10
- private _onRevealPackage?;
11
- private _onRevealResponse?;
12
- private _onRevealAck?;
13
- constructor(connection: PeerConnection);
14
- onCommitRequest(handler: VerificationMessageHandler<VerificationCommitRequestPayload>): void;
15
- onCommitResponse(handler: VerificationMessageHandler<VerificationCommitResponsePayload>): void;
16
- onCommitProof(handler: VerificationMessageHandler<VerificationCommitProofPayload>): void;
17
- onRevealPackage(handler: VerificationMessageHandler<VerificationRevealPackagePayload>): void;
18
- onRevealResponse(handler: VerificationMessageHandler<VerificationRevealResponsePayload>): void;
19
- onRevealAck(handler: VerificationMessageHandler<VerificationRevealAckPayload>): void;
20
- sendCommitRequest(payload: VerificationCommitRequestPayload): void;
21
- sendCommitResponse(payload: VerificationCommitResponsePayload): void;
22
- sendCommitProof(payload: VerificationCommitProofPayload): void;
23
- sendRevealPackage(payload: VerificationRevealPackagePayload): void;
24
- sendRevealResponse(payload: VerificationRevealResponsePayload): void;
25
- sendRevealAck(payload: VerificationRevealAckPayload): void;
26
- handleFrame(frame: FramedMessage): Promise<boolean>;
27
- static isVerificationMessage(type: number): boolean;
28
- private _send;
29
- }
30
- //# sourceMappingURL=verification-mux.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-mux.d.ts","sourceRoot":"","sources":["../../src/p2p/verification-mux.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EACV,aAAa,EACb,8BAA8B,EAC9B,gCAAgC,EAChC,iCAAiC,EACjC,4BAA4B,EAC5B,gCAAgC,EAChC,iCAAiC,EAClC,MAAM,sBAAsB,CAAC;AAc9B,MAAM,MAAM,0BAA0B,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,gBAAgB,CAAC,CAA+D;IACxF,OAAO,CAAC,iBAAiB,CAAC,CAAgE;IAC1F,OAAO,CAAC,cAAc,CAAC,CAA6D;IACpF,OAAO,CAAC,gBAAgB,CAAC,CAA+D;IACxF,OAAO,CAAC,iBAAiB,CAAC,CAAgE;IAC1F,OAAO,CAAC,YAAY,CAAC,CAA2D;gBAEpE,UAAU,EAAE,cAAc;IAItC,eAAe,CAAC,OAAO,EAAE,0BAA0B,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAC5F,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC,iCAAiC,CAAC,GAAG,IAAI;IAC9F,aAAa,CAAC,OAAO,EAAE,0BAA0B,CAAC,8BAA8B,CAAC,GAAG,IAAI;IACxF,eAAe,CAAC,OAAO,EAAE,0BAA0B,CAAC,gCAAgC,CAAC,GAAG,IAAI;IAC5F,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC,iCAAiC,CAAC,GAAG,IAAI;IAC9F,WAAW,CAAC,OAAO,EAAE,0BAA0B,CAAC,4BAA4B,CAAC,GAAG,IAAI;IAEpF,iBAAiB,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IAGlE,kBAAkB,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI;IAGpE,eAAe,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI;IAG9D,iBAAiB,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IAGlE,kBAAkB,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI;IAGpE,aAAa,CAAC,OAAO,EAAE,4BAA4B,GAAG,IAAI;IAIpD,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BzD,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInD,OAAO,CAAC,KAAK;CAQd"}
@@ -1,89 +0,0 @@
1
- import { MessageType } from '../types/protocol.js';
2
- import { encodeFrame } from './message-protocol.js';
3
- import * as codec from './verification-codec.js';
4
- import { debugLog } from '../utils/debug.js';
5
- const MESSAGE_TYPE_NAME = {
6
- [MessageType.VerificationCommitRequest]: 'VerificationCommitRequest',
7
- [MessageType.VerificationCommitResponse]: 'VerificationCommitResponse',
8
- [MessageType.VerificationCommitProof]: 'VerificationCommitProof',
9
- [MessageType.VerificationRevealPackage]: 'VerificationRevealPackage',
10
- [MessageType.VerificationRevealResponse]: 'VerificationRevealResponse',
11
- [MessageType.VerificationRevealAck]: 'VerificationRevealAck',
12
- };
13
- export class VerificationMux {
14
- _connection;
15
- _messageIdCounter = 0;
16
- _onCommitRequest;
17
- _onCommitResponse;
18
- _onCommitProof;
19
- _onRevealPackage;
20
- _onRevealResponse;
21
- _onRevealAck;
22
- constructor(connection) {
23
- this._connection = connection;
24
- }
25
- onCommitRequest(handler) { this._onCommitRequest = handler; }
26
- onCommitResponse(handler) { this._onCommitResponse = handler; }
27
- onCommitProof(handler) { this._onCommitProof = handler; }
28
- onRevealPackage(handler) { this._onRevealPackage = handler; }
29
- onRevealResponse(handler) { this._onRevealResponse = handler; }
30
- onRevealAck(handler) { this._onRevealAck = handler; }
31
- sendCommitRequest(payload) {
32
- this._send(MessageType.VerificationCommitRequest, codec.encodeVerificationCommitRequest(payload));
33
- }
34
- sendCommitResponse(payload) {
35
- this._send(MessageType.VerificationCommitResponse, codec.encodeVerificationCommitResponse(payload));
36
- }
37
- sendCommitProof(payload) {
38
- this._send(MessageType.VerificationCommitProof, codec.encodeVerificationCommitProof(payload));
39
- }
40
- sendRevealPackage(payload) {
41
- this._send(MessageType.VerificationRevealPackage, codec.encodeVerificationRevealPackage(payload));
42
- }
43
- sendRevealResponse(payload) {
44
- this._send(MessageType.VerificationRevealResponse, codec.encodeVerificationRevealResponse(payload));
45
- }
46
- sendRevealAck(payload) {
47
- this._send(MessageType.VerificationRevealAck, codec.encodeVerificationRevealAck(payload));
48
- }
49
- async handleFrame(frame) {
50
- const name = MESSAGE_TYPE_NAME[frame.type];
51
- if (!name)
52
- return false;
53
- debugLog(`[VerificationMux] ← recv ${name} (${frame.payload.length}b)`);
54
- switch (frame.type) {
55
- case MessageType.VerificationCommitRequest:
56
- await this._onCommitRequest?.(codec.decodeVerificationCommitRequest(frame.payload));
57
- return true;
58
- case MessageType.VerificationCommitResponse:
59
- await this._onCommitResponse?.(codec.decodeVerificationCommitResponse(frame.payload));
60
- return true;
61
- case MessageType.VerificationCommitProof:
62
- await this._onCommitProof?.(codec.decodeVerificationCommitProof(frame.payload));
63
- return true;
64
- case MessageType.VerificationRevealPackage:
65
- await this._onRevealPackage?.(codec.decodeVerificationRevealPackage(frame.payload));
66
- return true;
67
- case MessageType.VerificationRevealResponse:
68
- await this._onRevealResponse?.(codec.decodeVerificationRevealResponse(frame.payload));
69
- return true;
70
- case MessageType.VerificationRevealAck:
71
- await this._onRevealAck?.(codec.decodeVerificationRevealAck(frame.payload));
72
- return true;
73
- default:
74
- return false;
75
- }
76
- }
77
- static isVerificationMessage(type) {
78
- return type >= 0x80 && type <= 0x8f;
79
- }
80
- _send(type, payload) {
81
- debugLog(`[VerificationMux] → send ${MESSAGE_TYPE_NAME[type] ?? `0x${type.toString(16)}`} (${payload.length}b)`);
82
- this._connection.send(encodeFrame({
83
- type,
84
- messageId: this._messageIdCounter++ & 0xffffffff,
85
- payload,
86
- }));
87
- }
88
- }
89
- //# sourceMappingURL=verification-mux.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"verification-mux.js","sourceRoot":"","sources":["../../src/p2p/verification-mux.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import { type AbstractSigner } from 'ethers';
2
- import { BaseEvmClient } from './base-evm-client.js';
3
- import type { UsageClaimMessage } from './signatures.js';
4
- export interface UsageVerificationClientConfig {
5
- rpcUrl: string;
6
- fallbackRpcUrls?: string[];
7
- contractAddress: string;
8
- evmChainId?: number;
9
- }
10
- export interface UsageStatsInfo {
11
- inputTokens: bigint;
12
- cachedInputTokens: bigint;
13
- freshInputTokens: bigint;
14
- outputTokens: bigint;
15
- requestCount: bigint;
16
- costUsdc: bigint;
17
- attestationCount: bigint;
18
- partialRevealCount: bigint;
19
- lastUpdatedAt: number;
20
- }
21
- export interface UsageCommitPairInput {
22
- claimHash: string;
23
- channelId: string;
24
- buyer: string;
25
- seller: string;
26
- sellerAgentId: bigint;
27
- serviceKey: string;
28
- buyerRevealHash: string;
29
- sellerRevealHash: string;
30
- expectedEpoch: bigint;
31
- buyerSig: string;
32
- sellerSig: string;
33
- }
34
- export interface UsageRevealedEvent {
35
- blockNumber: number;
36
- txHash: string;
37
- logIndex: number;
38
- claimHash: string;
39
- channelId: string;
40
- serviceKey: string;
41
- epoch: bigint;
42
- buyer: string;
43
- seller: string;
44
- sellerAgentId: bigint;
45
- providerName: string;
46
- serviceName: string;
47
- inputTokensDelta: bigint;
48
- cachedInputTokensDelta: bigint;
49
- freshInputTokensDelta: bigint;
50
- outputTokensDelta: bigint;
51
- requestCountDelta: bigint;
52
- costUsdcDelta: bigint;
53
- paymentCumulativeAmount: bigint;
54
- }
55
- export declare class UsageVerificationClient extends BaseEvmClient {
56
- constructor(config: UsageVerificationClientConfig);
57
- currentEpoch(): Promise<bigint>;
58
- domainSeparator(): Promise<string>;
59
- hashUsageClaim(claim: UsageClaimMessage): Promise<string>;
60
- revealHash(claimHash: string, nonce: string): Promise<string>;
61
- commitPair(signer: AbstractSigner, input: UsageCommitPairInput): Promise<string>;
62
- revealPair(signer: AbstractSigner, claim: UsageClaimMessage, buyerNonce: string, sellerNonce: string): Promise<string>;
63
- revealPartial(signer: AbstractSigner, claim: UsageClaimMessage, nonce: string, party: number): Promise<string>;
64
- getSellerServiceStats(sellerAgentId: bigint | number, serviceKey: string, epoch: bigint | number): Promise<UsageStatsInfo>;
65
- getBuyerServiceStats(buyer: string, serviceKey: string, epoch: bigint | number): Promise<UsageStatsInfo>;
66
- getUsageRevealedEvents(params: {
67
- fromBlock: number;
68
- toBlock: number;
69
- }): Promise<UsageRevealedEvent[]>;
70
- getBlockNumber(): Promise<number>;
71
- }
72
- //# sourceMappingURL=usage-verification-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage-verification-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/usage-verification-client.ts"],"names":[],"mappings":"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"}
@@ -1,141 +0,0 @@
1
- import { Contract, ethers } from 'ethers';
2
- import { BaseEvmClient } from './base-evm-client.js';
3
- const USAGE_VERIFICATION_ABI = [
4
- 'function currentEpoch() external view returns (uint256)',
5
- 'function domainSeparator() external view returns (bytes32)',
6
- 'function hashUsageClaim((uint256 version, bytes32 channelId, address buyer, address seller, uint256 sellerAgentId, bytes32 serviceKey, string providerName, string serviceName, uint256 cumulativeInputTokens, uint256 cumulativeCachedInputTokens, uint256 cumulativeFreshInputTokens, uint256 cumulativeOutputTokens, uint256 cumulativeRequestCount, uint256 cumulativeCostUsdc, uint256 paymentCumulativeAmount) claim) external pure returns (bytes32)',
7
- 'function revealHash(bytes32 claimHash, bytes32 nonce) external pure returns (bytes32)',
8
- 'function commitPair((bytes32 claimHash, bytes32 channelId, address buyer, address seller, uint256 sellerAgentId, bytes32 serviceKey, bytes32 buyerRevealHash, bytes32 sellerRevealHash, uint256 expectedEpoch, bytes buyerSig, bytes sellerSig) input) external',
9
- 'function revealPair((uint256 version, bytes32 channelId, address buyer, address seller, uint256 sellerAgentId, bytes32 serviceKey, string providerName, string serviceName, uint256 cumulativeInputTokens, uint256 cumulativeCachedInputTokens, uint256 cumulativeFreshInputTokens, uint256 cumulativeOutputTokens, uint256 cumulativeRequestCount, uint256 cumulativeCostUsdc, uint256 paymentCumulativeAmount) claim, bytes32 buyerNonce, bytes32 sellerNonce) external',
10
- 'function revealPartial((uint256 version, bytes32 channelId, address buyer, address seller, uint256 sellerAgentId, bytes32 serviceKey, string providerName, string serviceName, uint256 cumulativeInputTokens, uint256 cumulativeCachedInputTokens, uint256 cumulativeFreshInputTokens, uint256 cumulativeOutputTokens, uint256 cumulativeRequestCount, uint256 cumulativeCostUsdc, uint256 paymentCumulativeAmount) claim, bytes32 nonce, uint8 party) external',
11
- 'function getSellerServiceStats(uint256 sellerAgentId, bytes32 serviceKey, uint256 epoch) external view returns (uint256 inputTokens, uint256 cachedInputTokens, uint256 freshInputTokens, uint256 outputTokens, uint256 requestCount, uint256 costUsdc, uint256 attestationCount, uint256 partialRevealCount, uint64 lastUpdatedAt)',
12
- 'function getBuyerServiceStats(address buyer, bytes32 serviceKey, uint256 epoch) external view returns (uint256 inputTokens, uint256 cachedInputTokens, uint256 freshInputTokens, uint256 outputTokens, uint256 requestCount, uint256 costUsdc, uint256 attestationCount, uint256 partialRevealCount, uint64 lastUpdatedAt)',
13
- 'event UsageRevealed(bytes32 indexed claimHash, bytes32 indexed channelId, bytes32 indexed serviceKey, uint256 epoch, address buyer, address seller, uint256 sellerAgentId, string providerName, string serviceName, uint256 inputTokensDelta, uint256 cachedInputTokensDelta, uint256 freshInputTokensDelta, uint256 outputTokensDelta, uint256 requestCountDelta, uint256 costUsdcDelta, uint256 paymentCumulativeAmount)',
14
- ];
15
- export class UsageVerificationClient extends BaseEvmClient {
16
- constructor(config) {
17
- super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId);
18
- }
19
- async currentEpoch() {
20
- const contract = new Contract(this._contractAddress, USAGE_VERIFICATION_ABI, this._provider);
21
- return contract.getFunction('currentEpoch')();
22
- }
23
- async domainSeparator() {
24
- const contract = new Contract(this._contractAddress, USAGE_VERIFICATION_ABI, this._provider);
25
- return contract.getFunction('domainSeparator')();
26
- }
27
- async hashUsageClaim(claim) {
28
- const contract = new Contract(this._contractAddress, USAGE_VERIFICATION_ABI, this._provider);
29
- return contract.getFunction('hashUsageClaim')(claimToTuple(claim));
30
- }
31
- async revealHash(claimHash, nonce) {
32
- const contract = new Contract(this._contractAddress, USAGE_VERIFICATION_ABI, this._provider);
33
- return contract.getFunction('revealHash')(claimHash, nonce);
34
- }
35
- async commitPair(signer, input) {
36
- return this._execWrite(signer, USAGE_VERIFICATION_ABI, 'commitPair', inputToTuple(input));
37
- }
38
- async revealPair(signer, claim, buyerNonce, sellerNonce) {
39
- return this._execWrite(signer, USAGE_VERIFICATION_ABI, 'revealPair', claimToTuple(claim), buyerNonce, sellerNonce);
40
- }
41
- async revealPartial(signer, claim, nonce, party) {
42
- return this._execWrite(signer, USAGE_VERIFICATION_ABI, 'revealPartial', claimToTuple(claim), nonce, party);
43
- }
44
- async getSellerServiceStats(sellerAgentId, serviceKey, epoch) {
45
- const contract = new Contract(this._contractAddress, USAGE_VERIFICATION_ABI, this._provider);
46
- const result = await contract.getFunction('getSellerServiceStats')(sellerAgentId, serviceKey, epoch);
47
- return statsFromTuple(result);
48
- }
49
- async getBuyerServiceStats(buyer, serviceKey, epoch) {
50
- const contract = new Contract(this._contractAddress, USAGE_VERIFICATION_ABI, this._provider);
51
- const result = await contract.getFunction('getBuyerServiceStats')(buyer, serviceKey, epoch);
52
- return statsFromTuple(result);
53
- }
54
- async getUsageRevealedEvents(params) {
55
- const iface = new ethers.Interface(USAGE_VERIFICATION_ABI);
56
- const topic = iface.getEvent('UsageRevealed').topicHash;
57
- const logs = await this._provider.getLogs({
58
- address: this._contractAddress,
59
- fromBlock: params.fromBlock,
60
- toBlock: params.toBlock,
61
- topics: [topic],
62
- });
63
- return logs.map((log) => {
64
- const parsed = iface.parseLog({ topics: [...log.topics], data: log.data });
65
- if (!parsed || parsed.name !== 'UsageRevealed')
66
- throw new Error('Unexpected usage verification event');
67
- return {
68
- blockNumber: log.blockNumber,
69
- txHash: log.transactionHash,
70
- logIndex: log.index,
71
- claimHash: parsed.args[0],
72
- channelId: parsed.args[1],
73
- serviceKey: parsed.args[2],
74
- epoch: parsed.args[3],
75
- buyer: parsed.args[4].toLowerCase(),
76
- seller: parsed.args[5].toLowerCase(),
77
- sellerAgentId: parsed.args[6],
78
- providerName: parsed.args[7],
79
- serviceName: parsed.args[8],
80
- inputTokensDelta: parsed.args[9],
81
- cachedInputTokensDelta: parsed.args[10],
82
- freshInputTokensDelta: parsed.args[11],
83
- outputTokensDelta: parsed.args[12],
84
- requestCountDelta: parsed.args[13],
85
- costUsdcDelta: parsed.args[14],
86
- paymentCumulativeAmount: parsed.args[15],
87
- };
88
- }).sort((a, b) => a.blockNumber !== b.blockNumber ? a.blockNumber - b.blockNumber : a.logIndex - b.logIndex);
89
- }
90
- async getBlockNumber() {
91
- return this._provider.getBlockNumber();
92
- }
93
- }
94
- function claimToTuple(claim) {
95
- return [
96
- claim.version,
97
- claim.channelId,
98
- claim.buyer,
99
- claim.seller,
100
- claim.sellerAgentId,
101
- claim.serviceKey,
102
- claim.providerName,
103
- claim.serviceName,
104
- claim.cumulativeInputTokens,
105
- claim.cumulativeCachedInputTokens,
106
- claim.cumulativeFreshInputTokens,
107
- claim.cumulativeOutputTokens,
108
- claim.cumulativeRequestCount,
109
- claim.cumulativeCostUsdc,
110
- claim.paymentCumulativeAmount,
111
- ];
112
- }
113
- function inputToTuple(input) {
114
- return [
115
- input.claimHash,
116
- input.channelId,
117
- input.buyer,
118
- input.seller,
119
- input.sellerAgentId,
120
- input.serviceKey,
121
- input.buyerRevealHash,
122
- input.sellerRevealHash,
123
- input.expectedEpoch,
124
- input.buyerSig,
125
- input.sellerSig,
126
- ];
127
- }
128
- function statsFromTuple(result) {
129
- return {
130
- inputTokens: result[0],
131
- cachedInputTokens: result[1],
132
- freshInputTokens: result[2],
133
- outputTokens: result[3],
134
- requestCount: result[4],
135
- costUsdc: result[5],
136
- attestationCount: result[6],
137
- partialRevealCount: result[7],
138
- lastUpdatedAt: Number(result[8]),
139
- };
140
- }
141
- //# sourceMappingURL=usage-verification-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage-verification-client.js","sourceRoot":"","sources":["../../../src/payments/evm/usage-verification-client.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import type { AbstractSigner } from 'ethers';
2
- import type { Identity } from '../p2p/identity.js';
3
- import type { VerificationMux } from '../p2p/verification-mux.js';
4
- import type { StakingClient } from './evm/staking-client.js';
5
- import { UsageVerificationClient } from './evm/usage-verification-client.js';
6
- import type { UsageVerificationClientConfig } from './evm/usage-verification-client.js';
7
- import type { StoredChannel } from './channel-store.js';
8
- import type { VerificationCommitRequestPayload, VerificationCommitResponsePayload, VerificationRevealPackagePayload, VerificationRevealResponsePayload, VerificationUsageClaimPayload } from '../types/protocol.js';
9
- import type { UsageClaimMessage } from './evm/signatures.js';
10
- import { type ServicePricing } from './pricing.js';
11
- export interface UsageVerificationConfig extends UsageVerificationClientConfig {
12
- chainId: number;
13
- dataDir: string;
14
- }
15
- export interface SellerUsageRecordInput {
16
- requestId: string;
17
- channel: StoredChannel;
18
- providerName: string;
19
- serviceName: string;
20
- inputTokens: bigint;
21
- cachedInputTokens: bigint;
22
- freshInputTokens: bigint;
23
- outputTokens: bigint;
24
- costUsdc: bigint;
25
- paymentCumulativeAmount: bigint;
26
- mux: VerificationMux;
27
- }
28
- export declare class SellerUsageVerificationManager {
29
- private _signer;
30
- private readonly _client;
31
- private readonly _store;
32
- private readonly _domain;
33
- private readonly _stakingClient?;
34
- constructor(identity: Identity, config: UsageVerificationConfig, stakingClient?: StakingClient);
35
- get client(): UsageVerificationClient;
36
- setSigner(signer: AbstractSigner): void;
37
- recordAndRequestCommit(input: SellerUsageRecordInput): Promise<void>;
38
- handleCommitResponse(payload: VerificationCommitResponsePayload, mux: VerificationMux): Promise<void>;
39
- retryCommittedReveals(limit?: number): Promise<void>;
40
- handleRevealResponse(payload: VerificationRevealResponsePayload, mux: VerificationMux): Promise<void>;
41
- close(): void;
42
- private _resolveSellerAgentId;
43
- }
44
- export declare class BuyerUsageVerificationManager {
45
- private readonly _identity;
46
- private _signer;
47
- private readonly _domain;
48
- private readonly _store;
49
- private readonly _requestService;
50
- constructor(identity: Identity, config: UsageVerificationConfig);
51
- setSigner(signer: AbstractSigner): void;
52
- trackRequestService(requestId: string, service: string): void;
53
- handleCommitRequest(payload: VerificationCommitRequestPayload, mux: VerificationMux): Promise<void>;
54
- handleRevealPackage(payload: VerificationRevealPackagePayload, mux: VerificationMux): void;
55
- handleRevealAck(payload: {
56
- claimHash: string;
57
- txHash?: string;
58
- }): void;
59
- close(): void;
60
- }
61
- export declare function claimPayloadToMessage(claim: VerificationUsageClaimPayload): UsageClaimMessage;
62
- export declare function computeUsageCostFromTokens(params: {
63
- freshInputTokens: number;
64
- cachedInputTokens: number;
65
- outputTokens: number;
66
- pricing: ServicePricing;
67
- }): bigint;
68
- //# sourceMappingURL=usage-verification-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage-verification-manager.d.ts","sourceRoot":"","sources":["../../src/payments/usage-verification-manager.ts"],"names":[],"mappings":"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"}