@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.
Files changed (106) hide show
  1. package/dist/buyer-request-handler.d.ts +4 -1
  2. package/dist/buyer-request-handler.d.ts.map +1 -1
  3. package/dist/buyer-request-handler.js +83 -4
  4. package/dist/buyer-request-handler.js.map +1 -1
  5. package/dist/discovery/http-metadata-resolver.d.ts +7 -0
  6. package/dist/discovery/http-metadata-resolver.d.ts.map +1 -1
  7. package/dist/discovery/http-metadata-resolver.js +16 -3
  8. package/dist/discovery/http-metadata-resolver.js.map +1 -1
  9. package/dist/discovery/index.d.ts +1 -0
  10. package/dist/discovery/index.d.ts.map +1 -1
  11. package/dist/discovery/index.js +1 -0
  12. package/dist/discovery/index.js.map +1 -1
  13. package/dist/discovery/verification-links.d.ts +16 -0
  14. package/dist/discovery/verification-links.d.ts.map +1 -0
  15. package/dist/discovery/verification-links.js +71 -0
  16. package/dist/discovery/verification-links.js.map +1 -0
  17. package/dist/index.d.ts +8 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/node.d.ts +25 -2
  22. package/dist/node.d.ts.map +1 -1
  23. package/dist/node.js +247 -21
  24. package/dist/node.js.map +1 -1
  25. package/dist/p2p/payment-codec.d.ts +9 -1
  26. package/dist/p2p/payment-codec.d.ts.map +1 -1
  27. package/dist/p2p/payment-codec.js +67 -0
  28. package/dist/p2p/payment-codec.js.map +1 -1
  29. package/dist/p2p/payment-mux.d.ts +13 -1
  30. package/dist/p2p/payment-mux.d.ts.map +1 -1
  31. package/dist/p2p/payment-mux.js +44 -0
  32. package/dist/p2p/payment-mux.js.map +1 -1
  33. package/dist/payments/buyer-free-usage-manager.d.ts +39 -0
  34. package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -0
  35. package/dist/payments/buyer-free-usage-manager.js +280 -0
  36. package/dist/payments/buyer-free-usage-manager.js.map +1 -0
  37. package/dist/payments/buyer-payment-manager.d.ts +2 -4
  38. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  39. package/dist/payments/buyer-payment-manager.js +34 -110
  40. package/dist/payments/buyer-payment-manager.js.map +1 -1
  41. package/dist/payments/buyer-payment-negotiator.d.ts +6 -2
  42. package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
  43. package/dist/payments/buyer-payment-negotiator.js +41 -13
  44. package/dist/payments/buyer-payment-negotiator.js.map +1 -1
  45. package/dist/payments/chain-config.d.ts +3 -2
  46. package/dist/payments/chain-config.d.ts.map +1 -1
  47. package/dist/payments/chain-config.js +4 -4
  48. package/dist/payments/chain-config.js.map +1 -1
  49. package/dist/payments/channel-session-state.d.ts +2 -1
  50. package/dist/payments/channel-session-state.d.ts.map +1 -1
  51. package/dist/payments/channel-session-state.js +4 -3
  52. package/dist/payments/channel-session-state.js.map +1 -1
  53. package/dist/payments/channel-store.d.ts +31 -15
  54. package/dist/payments/channel-store.d.ts.map +1 -1
  55. package/dist/payments/channel-store.js +74 -35
  56. package/dist/payments/channel-store.js.map +1 -1
  57. package/dist/payments/channel-usage-accounting.d.ts +18 -0
  58. package/dist/payments/channel-usage-accounting.d.ts.map +1 -0
  59. package/dist/payments/channel-usage-accounting.js +66 -0
  60. package/dist/payments/channel-usage-accounting.js.map +1 -0
  61. package/dist/payments/evm/free-usage-client.d.ts +34 -0
  62. package/dist/payments/evm/free-usage-client.d.ts.map +1 -0
  63. package/dist/payments/evm/free-usage-client.js +61 -0
  64. package/dist/payments/evm/free-usage-client.js.map +1 -0
  65. package/dist/payments/evm/signatures.d.ts +70 -0
  66. package/dist/payments/evm/signatures.d.ts.map +1 -1
  67. package/dist/payments/evm/signatures.js +89 -0
  68. package/dist/payments/evm/signatures.js.map +1 -1
  69. package/dist/payments/index.d.ts +10 -6
  70. package/dist/payments/index.d.ts.map +1 -1
  71. package/dist/payments/index.js +7 -4
  72. package/dist/payments/index.js.map +1 -1
  73. package/dist/payments/seller-free-usage-manager.d.ts +44 -0
  74. package/dist/payments/seller-free-usage-manager.d.ts.map +1 -0
  75. package/dist/payments/seller-free-usage-manager.js +350 -0
  76. package/dist/payments/seller-free-usage-manager.js.map +1 -0
  77. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  78. package/dist/payments/seller-payment-manager.js +21 -20
  79. package/dist/payments/seller-payment-manager.js.map +1 -1
  80. package/dist/payments/types.d.ts +2 -0
  81. package/dist/payments/types.d.ts.map +1 -1
  82. package/dist/reputation/on-chain-reputation.d.ts +35 -3
  83. package/dist/reputation/on-chain-reputation.d.ts.map +1 -1
  84. package/dist/reputation/on-chain-reputation.js +87 -7
  85. package/dist/reputation/on-chain-reputation.js.map +1 -1
  86. package/dist/seller-request-handler.d.ts +2 -0
  87. package/dist/seller-request-handler.d.ts.map +1 -1
  88. package/dist/seller-request-handler.js +8 -0
  89. package/dist/seller-request-handler.js.map +1 -1
  90. package/dist/storage/migrations/channels/004_add_channel_kind.d.ts +3 -0
  91. package/dist/storage/migrations/channels/004_add_channel_kind.d.ts.map +1 -0
  92. package/dist/storage/migrations/channels/004_add_channel_kind.js +16 -0
  93. package/dist/storage/migrations/channels/004_add_channel_kind.js.map +1 -0
  94. package/dist/storage/migrations/channels/index.d.ts.map +1 -1
  95. package/dist/storage/migrations/channels/index.js +2 -1
  96. package/dist/storage/migrations/channels/index.js.map +1 -1
  97. package/dist/types/peer.d.ts +15 -1
  98. package/dist/types/peer.d.ts.map +1 -1
  99. package/dist/types/peer.js.map +1 -1
  100. package/dist/types/protocol.d.ts +47 -0
  101. package/dist/types/protocol.d.ts.map +1 -1
  102. package/dist/types/protocol.js +4 -0
  103. package/dist/types/protocol.js.map +1 -1
  104. package/dist/verification/samples.js +1 -1
  105. package/dist/verification/samples.js.map +1 -1
  106. 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;AAM7E;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,MAAM,CAMR;AAMD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,eAAe,CAO5F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,eAAe,CAO5F;AAMD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB"}
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":"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"}
1
+ {"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../../src/payments/evm/signatures.ts"],"names":[],"mappings":"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"}
@@ -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 { SubPoolClient } from './evm/subpool-client.js';
20
- export type { SubPoolClientConfig } from './evm/subpool-client.js';
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,GACnB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAG1J,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAG7F,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGhH,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC/F,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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"}
@@ -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,GACnB,MAAM,qBAAqB,CAAC;AAG7B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGlE,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,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"}
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"}