@antseed/node 0.2.93 → 0.2.95
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/buyer-request-handler.d.ts +4 -1
- package/dist/buyer-request-handler.d.ts.map +1 -1
- package/dist/buyer-request-handler.js +83 -4
- package/dist/buyer-request-handler.js.map +1 -1
- package/dist/discovery/http-metadata-resolver.d.ts +7 -0
- package/dist/discovery/http-metadata-resolver.d.ts.map +1 -1
- package/dist/discovery/http-metadata-resolver.js +16 -3
- package/dist/discovery/http-metadata-resolver.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/verification-links.d.ts +16 -0
- package/dist/discovery/verification-links.d.ts.map +1 -0
- package/dist/discovery/verification-links.js +71 -0
- package/dist/discovery/verification-links.js.map +1 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +25 -2
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +247 -21
- package/dist/node.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +9 -1
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +67 -0
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/p2p/payment-mux.d.ts +13 -1
- package/dist/p2p/payment-mux.d.ts.map +1 -1
- package/dist/p2p/payment-mux.js +44 -0
- package/dist/p2p/payment-mux.js.map +1 -1
- package/dist/payments/buyer-free-usage-manager.d.ts +39 -0
- package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -0
- package/dist/payments/buyer-free-usage-manager.js +280 -0
- package/dist/payments/buyer-free-usage-manager.js.map +1 -0
- package/dist/payments/buyer-payment-manager.d.ts +2 -4
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +34 -110
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts +6 -2
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +41 -13
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/payments/chain-config.d.ts +3 -2
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +4 -4
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/channel-session-state.d.ts +2 -1
- package/dist/payments/channel-session-state.d.ts.map +1 -1
- package/dist/payments/channel-session-state.js +4 -3
- package/dist/payments/channel-session-state.js.map +1 -1
- package/dist/payments/channel-store.d.ts +31 -15
- package/dist/payments/channel-store.d.ts.map +1 -1
- package/dist/payments/channel-store.js +74 -35
- package/dist/payments/channel-store.js.map +1 -1
- package/dist/payments/channel-usage-accounting.d.ts +18 -0
- package/dist/payments/channel-usage-accounting.d.ts.map +1 -0
- package/dist/payments/channel-usage-accounting.js +66 -0
- package/dist/payments/channel-usage-accounting.js.map +1 -0
- package/dist/payments/evm/free-usage-client.d.ts +34 -0
- package/dist/payments/evm/free-usage-client.d.ts.map +1 -0
- package/dist/payments/evm/free-usage-client.js +61 -0
- package/dist/payments/evm/free-usage-client.js.map +1 -0
- package/dist/payments/evm/signatures.d.ts +70 -0
- package/dist/payments/evm/signatures.d.ts.map +1 -1
- package/dist/payments/evm/signatures.js +89 -0
- package/dist/payments/evm/signatures.js.map +1 -1
- package/dist/payments/index.d.ts +10 -6
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +7 -4
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/seller-free-usage-manager.d.ts +44 -0
- package/dist/payments/seller-free-usage-manager.d.ts.map +1 -0
- package/dist/payments/seller-free-usage-manager.js +350 -0
- package/dist/payments/seller-free-usage-manager.js.map +1 -0
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +21 -20
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/payments/types.d.ts +2 -0
- package/dist/payments/types.d.ts.map +1 -1
- package/dist/reputation/on-chain-reputation.d.ts +35 -3
- package/dist/reputation/on-chain-reputation.d.ts.map +1 -1
- package/dist/reputation/on-chain-reputation.js +87 -7
- package/dist/reputation/on-chain-reputation.js.map +1 -1
- package/dist/seller-request-handler.d.ts +2 -0
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +8 -0
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/storage/migrations/channels/004_add_channel_kind.d.ts +3 -0
- package/dist/storage/migrations/channels/004_add_channel_kind.d.ts.map +1 -0
- package/dist/storage/migrations/channels/004_add_channel_kind.js +16 -0
- package/dist/storage/migrations/channels/004_add_channel_kind.js.map +1 -0
- package/dist/storage/migrations/channels/index.d.ts.map +1 -1
- package/dist/storage/migrations/channels/index.js +2 -1
- package/dist/storage/migrations/channels/index.js.map +1 -1
- package/dist/types/peer.d.ts +15 -1
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js.map +1 -1
- package/dist/types/protocol.d.ts +47 -0
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +4 -0
- package/dist/types/protocol.js.map +1 -1
- package/dist/verification/samples.js +1 -1
- package/dist/verification/samples.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Contract } from 'ethers';
|
|
2
|
+
import { BaseEvmClient } from './base-evm-client.js';
|
|
3
|
+
import { computeFreeUsageChannelId } from './signatures.js';
|
|
4
|
+
const FREE_USAGE_ABI = [
|
|
5
|
+
'function open(address buyer, bytes32 salt, uint256 deadline, bytes buyerSig) external',
|
|
6
|
+
'function record(bytes32 channelId, uint256 sequence, bytes metadata, uint256 deadline, bytes buyerSig) external',
|
|
7
|
+
'function close(bytes32 channelId, uint256 sequence, bytes metadata, uint256 deadline, bytes buyerSig) external',
|
|
8
|
+
'function channels(bytes32 channelId) external view returns (address buyer, address seller, uint256 latestSequence, bytes32 metadataHash, uint256 deadline, uint256 updatedAt, uint256 closedAt, uint8 status)',
|
|
9
|
+
'function computeChannelId(address buyer, address seller, bytes32 salt) external pure returns (bytes32)',
|
|
10
|
+
'function getAgentStats(uint256 agentId) external view returns (uint64 channelCount, uint64 lastSettledAt)',
|
|
11
|
+
'function activeChannelCount(address seller) external view returns (uint256)',
|
|
12
|
+
'function domainSeparator() external view returns (bytes32)',
|
|
13
|
+
];
|
|
14
|
+
export class FreeUsageClient extends BaseEvmClient {
|
|
15
|
+
constructor(config) {
|
|
16
|
+
super(config.rpcUrl, config.contractAddress, config.fallbackRpcUrls, config.evmChainId);
|
|
17
|
+
}
|
|
18
|
+
async open(signer, buyer, salt, deadline, buyerSig) {
|
|
19
|
+
return this._execWrite(signer, FREE_USAGE_ABI, 'open', buyer, salt, deadline, buyerSig);
|
|
20
|
+
}
|
|
21
|
+
async record(signer, channelId, sequence, metadata, deadline, buyerSig) {
|
|
22
|
+
return this._execWrite(signer, FREE_USAGE_ABI, 'record', channelId, sequence, metadata, deadline, buyerSig);
|
|
23
|
+
}
|
|
24
|
+
async close(signer, channelId, sequence, metadata, deadline, buyerSig) {
|
|
25
|
+
return this._execWrite(signer, FREE_USAGE_ABI, 'close', channelId, sequence, metadata, deadline, buyerSig);
|
|
26
|
+
}
|
|
27
|
+
async getSession(channelId) {
|
|
28
|
+
const contract = new Contract(this._contractAddress, FREE_USAGE_ABI, this._provider);
|
|
29
|
+
const result = await contract.getFunction('channels')(channelId);
|
|
30
|
+
return {
|
|
31
|
+
buyer: result[0],
|
|
32
|
+
seller: result[1],
|
|
33
|
+
latestSequence: result[2],
|
|
34
|
+
metadataHash: result[3],
|
|
35
|
+
deadline: result[4],
|
|
36
|
+
updatedAt: result[5],
|
|
37
|
+
closedAt: result[6],
|
|
38
|
+
status: Number(result[7]),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
computeChannelId(buyer, seller, salt) {
|
|
42
|
+
return computeFreeUsageChannelId(buyer, seller, salt);
|
|
43
|
+
}
|
|
44
|
+
async getAgentStats(agentId) {
|
|
45
|
+
const contract = new Contract(this._contractAddress, FREE_USAGE_ABI, this._provider);
|
|
46
|
+
const result = await contract.getFunction('getAgentStats')(agentId);
|
|
47
|
+
return {
|
|
48
|
+
channelCount: Number(result[0]),
|
|
49
|
+
lastSettledAt: Number(result[1]),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async activeChannelCount(seller) {
|
|
53
|
+
const contract = new Contract(this._contractAddress, FREE_USAGE_ABI, this._provider);
|
|
54
|
+
return contract.getFunction('activeChannelCount')(seller);
|
|
55
|
+
}
|
|
56
|
+
async domainSeparator() {
|
|
57
|
+
const contract = new Contract(this._contractAddress, FREE_USAGE_ABI, this._provider);
|
|
58
|
+
return contract.getFunction('domainSeparator')();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=free-usage-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-usage-client.js","sourceRoot":"","sources":["../../../src/payments/evm/free-usage-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,18 @@ export declare const SET_OPERATOR_TYPES: {
|
|
|
17
17
|
type: string;
|
|
18
18
|
}[];
|
|
19
19
|
};
|
|
20
|
+
export declare const FREE_USAGE_OPEN_TYPES: {
|
|
21
|
+
FreeUsageOpen: {
|
|
22
|
+
name: string;
|
|
23
|
+
type: string;
|
|
24
|
+
}[];
|
|
25
|
+
};
|
|
26
|
+
export declare const FREE_USAGE_AUTH_TYPES: {
|
|
27
|
+
FreeUsageAuth: {
|
|
28
|
+
name: string;
|
|
29
|
+
type: string;
|
|
30
|
+
}[];
|
|
31
|
+
};
|
|
20
32
|
export interface SpendingAuthMessage {
|
|
21
33
|
channelId: string;
|
|
22
34
|
cumulativeAmount: bigint;
|
|
@@ -31,6 +43,16 @@ export interface SetOperatorMessage {
|
|
|
31
43
|
operator: string;
|
|
32
44
|
nonce: bigint;
|
|
33
45
|
}
|
|
46
|
+
export interface FreeUsageOpenMessage {
|
|
47
|
+
channelId: string;
|
|
48
|
+
deadline: bigint;
|
|
49
|
+
}
|
|
50
|
+
export interface FreeUsageAuthMessage {
|
|
51
|
+
channelId: string;
|
|
52
|
+
sequence: bigint;
|
|
53
|
+
metadataHash: string;
|
|
54
|
+
deadline: bigint;
|
|
55
|
+
}
|
|
34
56
|
/**
|
|
35
57
|
* SpendingAuth metadata v2.
|
|
36
58
|
*
|
|
@@ -70,17 +92,65 @@ export interface SpendingAuthServiceMetadata {
|
|
|
70
92
|
export declare const METADATA_VERSION = 2n;
|
|
71
93
|
export declare function encodeMetadata(metadata: SpendingAuthMetadata): string;
|
|
72
94
|
export declare function getServiceMetadataId(service: string): string;
|
|
95
|
+
export interface ServiceMetadataDelta {
|
|
96
|
+
amount: bigint;
|
|
97
|
+
inputTokens: bigint;
|
|
98
|
+
cachedInputTokens: bigint;
|
|
99
|
+
outputTokens: bigint;
|
|
100
|
+
requests: bigint;
|
|
101
|
+
}
|
|
102
|
+
export declare function withServiceMetadata<T extends {
|
|
103
|
+
services?: SpendingAuthServiceMetadata[];
|
|
104
|
+
}>(metadata: T, service: string | undefined, delta: ServiceMetadataDelta): T;
|
|
73
105
|
export declare function computeMetadataHash(metadata: SpendingAuthMetadata): string;
|
|
74
106
|
export declare const ZERO_METADATA: SpendingAuthMetadata;
|
|
75
107
|
export declare const ZERO_METADATA_HASH: string;
|
|
108
|
+
/**
|
|
109
|
+
* FreeUsage metadata v1.
|
|
110
|
+
*
|
|
111
|
+
* ABI layout:
|
|
112
|
+
* abi.encode(
|
|
113
|
+
* uint256 version,
|
|
114
|
+
* uint256 cumulativeInputTokens,
|
|
115
|
+
* uint256 cumulativeOutputTokens,
|
|
116
|
+
* uint256 cumulativeRequestCount,
|
|
117
|
+
* ServiceTotal[] services
|
|
118
|
+
* )
|
|
119
|
+
*
|
|
120
|
+
* Uses the same service tuple as paid SpendingAuth metadata so indexers can
|
|
121
|
+
* decode per-service attribution uniformly. cumulativeAmount is always zero
|
|
122
|
+
* for free usage.
|
|
123
|
+
*/
|
|
124
|
+
export interface FreeUsageMetadata {
|
|
125
|
+
cumulativeInputTokens: bigint;
|
|
126
|
+
cumulativeOutputTokens: bigint;
|
|
127
|
+
cumulativeRequestCount: bigint;
|
|
128
|
+
services?: SpendingAuthServiceMetadata[];
|
|
129
|
+
}
|
|
130
|
+
export type FreeUsageServiceMetadata = SpendingAuthServiceMetadata;
|
|
131
|
+
export declare const FREE_USAGE_METADATA_VERSION = 1n;
|
|
132
|
+
export declare function encodeFreeUsageMetadata(metadata: FreeUsageMetadata): string;
|
|
133
|
+
export declare function computeFreeUsageMetadataHash(metadata: FreeUsageMetadata): string;
|
|
134
|
+
export declare const ZERO_FREE_USAGE_METADATA: FreeUsageMetadata;
|
|
135
|
+
export declare const ZERO_FREE_USAGE_METADATA_HASH: string;
|
|
76
136
|
/**
|
|
77
137
|
* Compute the deterministic channelId.
|
|
78
138
|
* Must match: keccak256(abi.encode(buyer, seller, salt))
|
|
79
139
|
*/
|
|
80
140
|
export declare function computeChannelId(buyer: string, seller: string, salt: string): string;
|
|
141
|
+
export declare const FREE_USAGE_CHANNEL_DOMAIN: string;
|
|
142
|
+
/**
|
|
143
|
+
* Compute the deterministic free usage channelId.
|
|
144
|
+
* Domain-separated from AntseedChannels.computeChannelId so a paid and free
|
|
145
|
+
* channel cannot share an ID even if buyer, seller, and salt are identical.
|
|
146
|
+
*/
|
|
147
|
+
export declare function computeFreeUsageChannelId(buyer: string, seller: string, salt: string): string;
|
|
81
148
|
export declare function makeChannelsDomain(chainId: number, contractAddress: string): TypedDataDomain;
|
|
82
149
|
export declare function makeDepositsDomain(chainId: number, contractAddress: string): TypedDataDomain;
|
|
150
|
+
export declare function makeFreeUsageDomain(chainId: number, contractAddress: string): TypedDataDomain;
|
|
83
151
|
export declare function signSpendingAuth(signer: AbstractSigner, domain: TypedDataDomain, msg: SpendingAuthMessage): Promise<string>;
|
|
84
152
|
export declare function signReserveAuth(signer: AbstractSigner, domain: TypedDataDomain, msg: ReserveAuthMessage): Promise<string>;
|
|
85
153
|
export declare function signSetOperator(signer: AbstractSigner, domain: TypedDataDomain, msg: SetOperatorMessage): Promise<string>;
|
|
154
|
+
export declare function signFreeUsageOpen(signer: AbstractSigner, domain: TypedDataDomain, msg: FreeUsageOpenMessage): Promise<string>;
|
|
155
|
+
export declare function signFreeUsageAuth(signer: AbstractSigner, domain: TypedDataDomain, msg: FreeUsageAuthMessage): Promise<string>;
|
|
86
156
|
//# sourceMappingURL=signatures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAA2B,MAAM,QAAQ,CAAC;AAM5F,eAAO,MAAM,mBAAmB;;;;;CAM/B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;CAM9B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAMF,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;IACpC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAKnC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAerE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAE1E;AAED,eAAO,MAAM,aAAa,EAAE,oBAK3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,20 @@ export const SET_OPERATOR_TYPES = {
|
|
|
22
22
|
{ name: 'nonce', type: 'uint256' },
|
|
23
23
|
],
|
|
24
24
|
};
|
|
25
|
+
export const FREE_USAGE_OPEN_TYPES = {
|
|
26
|
+
FreeUsageOpen: [
|
|
27
|
+
{ name: 'channelId', type: 'bytes32' },
|
|
28
|
+
{ name: 'deadline', type: 'uint256' },
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
export const FREE_USAGE_AUTH_TYPES = {
|
|
32
|
+
FreeUsageAuth: [
|
|
33
|
+
{ name: 'channelId', type: 'bytes32' },
|
|
34
|
+
{ name: 'sequence', type: 'uint256' },
|
|
35
|
+
{ name: 'metadataHash', type: 'bytes32' },
|
|
36
|
+
{ name: 'deadline', type: 'uint256' },
|
|
37
|
+
],
|
|
38
|
+
};
|
|
25
39
|
export const METADATA_VERSION = 2n;
|
|
26
40
|
const SERVICE_METADATA_ABI_TYPE = 'tuple(bytes32 serviceId,uint256 cumulativeAmount,uint256 cumulativeInputTokens,uint256 cumulativeCachedInputTokens,uint256 cumulativeOutputTokens,uint256 cumulativeRequestCount)[]';
|
|
27
41
|
export function encodeMetadata(metadata) {
|
|
@@ -38,6 +52,35 @@ export function encodeMetadata(metadata) {
|
|
|
38
52
|
export function getServiceMetadataId(service) {
|
|
39
53
|
return id(service.trim());
|
|
40
54
|
}
|
|
55
|
+
export function withServiceMetadata(metadata, service, delta) {
|
|
56
|
+
if (!service || service.trim().length === 0)
|
|
57
|
+
return metadata;
|
|
58
|
+
const serviceId = getServiceMetadataId(service);
|
|
59
|
+
const byServiceId = new Map();
|
|
60
|
+
for (const entry of metadata.services ?? []) {
|
|
61
|
+
byServiceId.set(entry.serviceId, { ...entry });
|
|
62
|
+
}
|
|
63
|
+
const existing = byServiceId.get(serviceId) ?? {
|
|
64
|
+
serviceId,
|
|
65
|
+
cumulativeAmount: 0n,
|
|
66
|
+
cumulativeInputTokens: 0n,
|
|
67
|
+
cumulativeCachedInputTokens: 0n,
|
|
68
|
+
cumulativeOutputTokens: 0n,
|
|
69
|
+
cumulativeRequestCount: 0n,
|
|
70
|
+
};
|
|
71
|
+
byServiceId.set(serviceId, {
|
|
72
|
+
serviceId,
|
|
73
|
+
cumulativeAmount: existing.cumulativeAmount + delta.amount,
|
|
74
|
+
cumulativeInputTokens: existing.cumulativeInputTokens + delta.inputTokens,
|
|
75
|
+
cumulativeCachedInputTokens: existing.cumulativeCachedInputTokens + delta.cachedInputTokens,
|
|
76
|
+
cumulativeOutputTokens: existing.cumulativeOutputTokens + delta.outputTokens,
|
|
77
|
+
cumulativeRequestCount: existing.cumulativeRequestCount + delta.requests,
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
...metadata,
|
|
81
|
+
services: [...byServiceId.values()].sort((a, b) => a.serviceId < b.serviceId ? -1 : a.serviceId > b.serviceId ? 1 : 0),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
41
84
|
export function computeMetadataHash(metadata) {
|
|
42
85
|
return keccak256(encodeMetadata(metadata));
|
|
43
86
|
}
|
|
@@ -48,6 +91,28 @@ export const ZERO_METADATA = {
|
|
|
48
91
|
services: [],
|
|
49
92
|
};
|
|
50
93
|
export const ZERO_METADATA_HASH = computeMetadataHash(ZERO_METADATA);
|
|
94
|
+
export const FREE_USAGE_METADATA_VERSION = 1n;
|
|
95
|
+
export function encodeFreeUsageMetadata(metadata) {
|
|
96
|
+
const coder = AbiCoder.defaultAbiCoder();
|
|
97
|
+
const services = [...(metadata.services ?? [])].sort((a, b) => a.serviceId < b.serviceId ? -1 : a.serviceId > b.serviceId ? 1 : 0);
|
|
98
|
+
return coder.encode(['uint256', 'uint256', 'uint256', 'uint256', SERVICE_METADATA_ABI_TYPE], [
|
|
99
|
+
FREE_USAGE_METADATA_VERSION,
|
|
100
|
+
metadata.cumulativeInputTokens,
|
|
101
|
+
metadata.cumulativeOutputTokens,
|
|
102
|
+
metadata.cumulativeRequestCount,
|
|
103
|
+
services,
|
|
104
|
+
]);
|
|
105
|
+
}
|
|
106
|
+
export function computeFreeUsageMetadataHash(metadata) {
|
|
107
|
+
return keccak256(encodeFreeUsageMetadata(metadata));
|
|
108
|
+
}
|
|
109
|
+
export const ZERO_FREE_USAGE_METADATA = {
|
|
110
|
+
cumulativeInputTokens: 0n,
|
|
111
|
+
cumulativeOutputTokens: 0n,
|
|
112
|
+
cumulativeRequestCount: 0n,
|
|
113
|
+
services: [],
|
|
114
|
+
};
|
|
115
|
+
export const ZERO_FREE_USAGE_METADATA_HASH = computeFreeUsageMetadataHash(ZERO_FREE_USAGE_METADATA);
|
|
51
116
|
// =========================================================================
|
|
52
117
|
// Channel ID computation (must match AntseedChannels.computeChannelId)
|
|
53
118
|
// =========================================================================
|
|
@@ -59,6 +124,16 @@ export function computeChannelId(buyer, seller, salt) {
|
|
|
59
124
|
const coder = AbiCoder.defaultAbiCoder();
|
|
60
125
|
return keccak256(coder.encode(['address', 'address', 'bytes32'], [buyer, seller, salt]));
|
|
61
126
|
}
|
|
127
|
+
export const FREE_USAGE_CHANNEL_DOMAIN = id('ANTSEED_FREE_USAGE_CHANNEL');
|
|
128
|
+
/**
|
|
129
|
+
* Compute the deterministic free usage channelId.
|
|
130
|
+
* Domain-separated from AntseedChannels.computeChannelId so a paid and free
|
|
131
|
+
* channel cannot share an ID even if buyer, seller, and salt are identical.
|
|
132
|
+
*/
|
|
133
|
+
export function computeFreeUsageChannelId(buyer, seller, salt) {
|
|
134
|
+
const coder = AbiCoder.defaultAbiCoder();
|
|
135
|
+
return keccak256(coder.encode(['bytes32', 'address', 'address', 'bytes32'], [FREE_USAGE_CHANNEL_DOMAIN, buyer, seller, salt]));
|
|
136
|
+
}
|
|
62
137
|
// =========================================================================
|
|
63
138
|
// EIP-712 Domain helpers
|
|
64
139
|
// =========================================================================
|
|
@@ -78,6 +153,14 @@ export function makeDepositsDomain(chainId, contractAddress) {
|
|
|
78
153
|
verifyingContract: contractAddress,
|
|
79
154
|
};
|
|
80
155
|
}
|
|
156
|
+
export function makeFreeUsageDomain(chainId, contractAddress) {
|
|
157
|
+
return {
|
|
158
|
+
name: 'AntseedFreeUsage',
|
|
159
|
+
version: '1',
|
|
160
|
+
chainId,
|
|
161
|
+
verifyingContract: contractAddress,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
81
164
|
// =========================================================================
|
|
82
165
|
// Signing functions — EIP-712 (on-chain)
|
|
83
166
|
// =========================================================================
|
|
@@ -90,4 +173,10 @@ export async function signReserveAuth(signer, domain, msg) {
|
|
|
90
173
|
export async function signSetOperator(signer, domain, msg) {
|
|
91
174
|
return signer.signTypedData(domain, SET_OPERATOR_TYPES, msg);
|
|
92
175
|
}
|
|
176
|
+
export async function signFreeUsageOpen(signer, domain, msg) {
|
|
177
|
+
return signer.signTypedData(domain, FREE_USAGE_OPEN_TYPES, msg);
|
|
178
|
+
}
|
|
179
|
+
export async function signFreeUsageAuth(signer, domain, msg) {
|
|
180
|
+
return signer.signTypedData(domain, FREE_USAGE_AUTH_TYPES, msg);
|
|
181
|
+
}
|
|
93
182
|
//# sourceMappingURL=signatures.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE5F,4EAA4E;AAC5E,0EAA0E;AAC1E,4EAA4E;AAE5E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE;QACZ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;KAC1C;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"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"}
|
package/dist/payments/index.d.ts
CHANGED
|
@@ -6,22 +6,26 @@ export { DepositsClient } from './evm/deposits-client.js';
|
|
|
6
6
|
export type { DepositsClientConfig, BuyerBalanceInfo } from './evm/deposits-client.js';
|
|
7
7
|
export { ChannelsClient } from './evm/channels-client.js';
|
|
8
8
|
export type { ChannelsClientConfig, ChannelInfo, AgentStats, CloseRequestedEvent } from './evm/channels-client.js';
|
|
9
|
+
export { FreeUsageClient } from './evm/free-usage-client.js';
|
|
10
|
+
export type { FreeUsageClientConfig, FreeUsageChannelInfo, FreeUsageAgentStats } from './evm/free-usage-client.js';
|
|
9
11
|
export { IdentityClient } from './evm/identity-client.js';
|
|
10
12
|
export type { IdentityClientConfig } from './evm/identity-client.js';
|
|
11
13
|
export { StakingClient } from './evm/staking-client.js';
|
|
12
14
|
export type { StakingClientConfig } from './evm/staking-client.js';
|
|
13
|
-
export { signSpendingAuth, signReserveAuth, signSetOperator, makeChannelsDomain, makeDepositsDomain, SPENDING_AUTH_TYPES, RESERVE_AUTH_TYPES, SET_OPERATOR_TYPES, computeMetadataHash, encodeMetadata, getServiceMetadataId, METADATA_VERSION, computeChannelId, ZERO_METADATA, ZERO_METADATA_HASH, } from './evm/signatures.js';
|
|
14
|
-
export type { SpendingAuthMessage, ReserveAuthMessage, SetOperatorMessage, SpendingAuthMetadata, SpendingAuthServiceMetadata } from './evm/signatures.js';
|
|
15
|
+
export { signSpendingAuth, signReserveAuth, signFreeUsageOpen, signFreeUsageAuth, signSetOperator, makeChannelsDomain, makeDepositsDomain, makeFreeUsageDomain, SPENDING_AUTH_TYPES, RESERVE_AUTH_TYPES, FREE_USAGE_OPEN_TYPES, FREE_USAGE_AUTH_TYPES, SET_OPERATOR_TYPES, computeMetadataHash, encodeMetadata, computeFreeUsageMetadataHash, encodeFreeUsageMetadata, getServiceMetadataId, METADATA_VERSION, FREE_USAGE_METADATA_VERSION, computeChannelId, computeFreeUsageChannelId, FREE_USAGE_CHANNEL_DOMAIN, ZERO_METADATA, ZERO_METADATA_HASH, ZERO_FREE_USAGE_METADATA, ZERO_FREE_USAGE_METADATA_HASH, } from './evm/signatures.js';
|
|
16
|
+
export type { SpendingAuthMessage, ReserveAuthMessage, SetOperatorMessage, FreeUsageOpenMessage, FreeUsageAuthMessage, SpendingAuthMetadata, SpendingAuthServiceMetadata, FreeUsageMetadata, FreeUsageServiceMetadata, } from './evm/signatures.js';
|
|
15
17
|
export { ANTSTokenClient } from './evm/ants-token-client.js';
|
|
16
18
|
export type { ANTSTokenClientConfig } from './evm/ants-token-client.js';
|
|
17
19
|
export { EmissionsClient } from './evm/emissions-client.js';
|
|
18
20
|
export type { EmissionsClientConfig, EmissionsEpochParams } from './evm/emissions-client.js';
|
|
19
|
-
export {
|
|
20
|
-
export type {
|
|
21
|
-
export { ChannelStore, CHANNEL_STATUS } from './channel-store.js';
|
|
22
|
-
export type { StoredChannel, StoredReceipt } from './channel-store.js';
|
|
21
|
+
export { ChannelStore, CHANNEL_KIND, CHANNEL_ROLE, CHANNEL_STATUS } from './channel-store.js';
|
|
22
|
+
export type { ChannelKind, ChannelRole, ChannelStatus, StoredChannel, StoredReceipt } from './channel-store.js';
|
|
23
23
|
export { BuyerPaymentManager } from './buyer-payment-manager.js';
|
|
24
24
|
export type { BuyerPaymentConfig, PerRequestAuthResult } from './buyer-payment-manager.js';
|
|
25
|
+
export { BuyerFreeUsageManager } from './buyer-free-usage-manager.js';
|
|
26
|
+
export type { BuyerFreeUsageConfig } from './buyer-free-usage-manager.js';
|
|
27
|
+
export { SellerFreeUsageManager } from './seller-free-usage-manager.js';
|
|
28
|
+
export type { SellerFreeUsageConfig } from './seller-free-usage-manager.js';
|
|
25
29
|
export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
|
|
26
30
|
export type { BuyerNegotiatorConfig, Handle402Result, NegotiationEmitter } from './buyer-payment-negotiator.js';
|
|
27
31
|
export { SellerPaymentManager, DEFAULT_MIN_SETTLE_DELTA_STR } from './seller-payment-manager.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,OAAO,EACP,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGnH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
|
package/dist/payments/index.js
CHANGED
|
@@ -6,21 +6,24 @@ export { BaseEvmClient } from './evm/base-evm-client.js';
|
|
|
6
6
|
export { DepositsClient } from './evm/deposits-client.js';
|
|
7
7
|
// Channels client (reserve, settle, timeout)
|
|
8
8
|
export { ChannelsClient } from './evm/channels-client.js';
|
|
9
|
+
// Free usage client (zero-price signed usage)
|
|
10
|
+
export { FreeUsageClient } from './evm/free-usage-client.js';
|
|
9
11
|
// Identity client (ERC-8004 IdentityRegistry)
|
|
10
12
|
export { IdentityClient } from './evm/identity-client.js';
|
|
11
13
|
// Staking client (seller staking, token rate, slashing)
|
|
12
14
|
export { StakingClient } from './evm/staking-client.js';
|
|
13
|
-
export { signSpendingAuth, signReserveAuth, signSetOperator, makeChannelsDomain, makeDepositsDomain, SPENDING_AUTH_TYPES, RESERVE_AUTH_TYPES, SET_OPERATOR_TYPES, computeMetadataHash, encodeMetadata, getServiceMetadataId, METADATA_VERSION, computeChannelId, ZERO_METADATA, ZERO_METADATA_HASH, } from './evm/signatures.js';
|
|
15
|
+
export { signSpendingAuth, signReserveAuth, signFreeUsageOpen, signFreeUsageAuth, signSetOperator, makeChannelsDomain, makeDepositsDomain, makeFreeUsageDomain, SPENDING_AUTH_TYPES, RESERVE_AUTH_TYPES, FREE_USAGE_OPEN_TYPES, FREE_USAGE_AUTH_TYPES, SET_OPERATOR_TYPES, computeMetadataHash, encodeMetadata, computeFreeUsageMetadataHash, encodeFreeUsageMetadata, getServiceMetadataId, METADATA_VERSION, FREE_USAGE_METADATA_VERSION, computeChannelId, computeFreeUsageChannelId, FREE_USAGE_CHANNEL_DOMAIN, ZERO_METADATA, ZERO_METADATA_HASH, ZERO_FREE_USAGE_METADATA, ZERO_FREE_USAGE_METADATA_HASH, } from './evm/signatures.js';
|
|
14
16
|
// ANTS token
|
|
15
17
|
export { ANTSTokenClient } from './evm/ants-token-client.js';
|
|
16
18
|
// Emissions
|
|
17
19
|
export { EmissionsClient } from './evm/emissions-client.js';
|
|
18
|
-
// Subscription Pool
|
|
19
|
-
export { SubPoolClient } from './evm/subpool-client.js';
|
|
20
20
|
// Channel persistence
|
|
21
|
-
export { ChannelStore, CHANNEL_STATUS } from './channel-store.js';
|
|
21
|
+
export { ChannelStore, CHANNEL_KIND, CHANNEL_ROLE, CHANNEL_STATUS } from './channel-store.js';
|
|
22
22
|
// Buyer payment manager
|
|
23
23
|
export { BuyerPaymentManager } from './buyer-payment-manager.js';
|
|
24
|
+
// Free usage managers
|
|
25
|
+
export { BuyerFreeUsageManager } from './buyer-free-usage-manager.js';
|
|
26
|
+
export { SellerFreeUsageManager } from './seller-free-usage-manager.js';
|
|
24
27
|
// Buyer payment negotiator (402 handling, SpendingAuth flow, cost tracking)
|
|
25
28
|
export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
|
|
26
29
|
// Seller payment manager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,8CAA8C;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAa7B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9F,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAGjG,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAG/F,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Identity } from '../p2p/identity.js';
|
|
2
|
+
import type { PaymentMux } from '../p2p/payment-mux.js';
|
|
3
|
+
import type { FreeUsageAuthPayload, FreeUsageOpenPayload } from '../types/protocol.js';
|
|
4
|
+
import { FreeUsageClient } from './evm/free-usage-client.js';
|
|
5
|
+
export interface SellerFreeUsageConfig {
|
|
6
|
+
rpcUrl: string;
|
|
7
|
+
fallbackRpcUrls?: string[];
|
|
8
|
+
freeUsageContractAddress: string;
|
|
9
|
+
chainId: number;
|
|
10
|
+
recordBatchSize?: number;
|
|
11
|
+
recordFlushIntervalMs?: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class SellerFreeUsageManager {
|
|
14
|
+
private readonly _signer;
|
|
15
|
+
private readonly _client;
|
|
16
|
+
private readonly _domain;
|
|
17
|
+
private readonly _sellerEvmAddr;
|
|
18
|
+
private readonly _recordBatchSize;
|
|
19
|
+
private readonly _recordFlushIntervalMs;
|
|
20
|
+
private readonly _sessions;
|
|
21
|
+
private readonly _buyerLocks;
|
|
22
|
+
constructor(identity: Identity, config: SellerFreeUsageConfig);
|
|
23
|
+
get client(): FreeUsageClient;
|
|
24
|
+
handleOpen(buyerPeerId: string, payload: FreeUsageOpenPayload, paymentMux: PaymentMux): void;
|
|
25
|
+
handleAuth(buyerPeerId: string, payload: FreeUsageAuthPayload, paymentMux: PaymentMux): void;
|
|
26
|
+
onPeerDisconnect(buyerPeerId: string): void;
|
|
27
|
+
flushAllPendingRecords(): Promise<void>;
|
|
28
|
+
reportUsageRequest(buyerPeerId: string, paymentMux: PaymentMux, usage: {
|
|
29
|
+
requestId?: string;
|
|
30
|
+
inputTokens: number;
|
|
31
|
+
outputTokens: number;
|
|
32
|
+
service?: string;
|
|
33
|
+
}): void;
|
|
34
|
+
private _handleOpenInner;
|
|
35
|
+
private _openOnChain;
|
|
36
|
+
private _handleAuthInner;
|
|
37
|
+
private _scheduleRecordFlush;
|
|
38
|
+
private _clearFlushTimer;
|
|
39
|
+
private _flushPendingRecord;
|
|
40
|
+
private _doFlushPendingRecord;
|
|
41
|
+
private _tryGetExistingSession;
|
|
42
|
+
private _decodeFreeUsageMetadata;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=seller-free-usage-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seller-free-usage-manager.d.ts","sourceRoot":"","sources":["../../src/payments/seller-free-usage-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAS7D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAkDD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IACvE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoC;gBAEpD,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,qBAAqB;IAc7D,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAU5F,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAU5F,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBrC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7C,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GACzF,IAAI;YA0CO,gBAAgB;YAyDhB,YAAY;YAiBZ,gBAAgB;IAmF9B,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,mBAAmB;YAkBb,qBAAqB;YA+DrB,sBAAsB;IAQpC,OAAO,CAAC,wBAAwB;CAcjC"}
|