@antseed/node 0.2.94 → 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 (91) 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/index.d.ts +7 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +4 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/node.d.ts +16 -2
  14. package/dist/node.d.ts.map +1 -1
  15. package/dist/node.js +115 -20
  16. package/dist/node.js.map +1 -1
  17. package/dist/p2p/payment-codec.d.ts +9 -1
  18. package/dist/p2p/payment-codec.d.ts.map +1 -1
  19. package/dist/p2p/payment-codec.js +67 -0
  20. package/dist/p2p/payment-codec.js.map +1 -1
  21. package/dist/p2p/payment-mux.d.ts +13 -1
  22. package/dist/p2p/payment-mux.d.ts.map +1 -1
  23. package/dist/p2p/payment-mux.js +44 -0
  24. package/dist/p2p/payment-mux.js.map +1 -1
  25. package/dist/payments/buyer-free-usage-manager.d.ts +39 -0
  26. package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -0
  27. package/dist/payments/buyer-free-usage-manager.js +280 -0
  28. package/dist/payments/buyer-free-usage-manager.js.map +1 -0
  29. package/dist/payments/buyer-payment-manager.d.ts +2 -4
  30. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  31. package/dist/payments/buyer-payment-manager.js +34 -110
  32. package/dist/payments/buyer-payment-manager.js.map +1 -1
  33. package/dist/payments/buyer-payment-negotiator.d.ts +6 -2
  34. package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
  35. package/dist/payments/buyer-payment-negotiator.js +41 -13
  36. package/dist/payments/buyer-payment-negotiator.js.map +1 -1
  37. package/dist/payments/chain-config.d.ts +3 -2
  38. package/dist/payments/chain-config.d.ts.map +1 -1
  39. package/dist/payments/chain-config.js +4 -4
  40. package/dist/payments/chain-config.js.map +1 -1
  41. package/dist/payments/channel-session-state.d.ts +2 -1
  42. package/dist/payments/channel-session-state.d.ts.map +1 -1
  43. package/dist/payments/channel-session-state.js +4 -3
  44. package/dist/payments/channel-session-state.js.map +1 -1
  45. package/dist/payments/channel-store.d.ts +31 -15
  46. package/dist/payments/channel-store.d.ts.map +1 -1
  47. package/dist/payments/channel-store.js +74 -35
  48. package/dist/payments/channel-store.js.map +1 -1
  49. package/dist/payments/channel-usage-accounting.d.ts +18 -0
  50. package/dist/payments/channel-usage-accounting.d.ts.map +1 -0
  51. package/dist/payments/channel-usage-accounting.js +66 -0
  52. package/dist/payments/channel-usage-accounting.js.map +1 -0
  53. package/dist/payments/evm/free-usage-client.d.ts +34 -0
  54. package/dist/payments/evm/free-usage-client.d.ts.map +1 -0
  55. package/dist/payments/evm/free-usage-client.js +61 -0
  56. package/dist/payments/evm/free-usage-client.js.map +1 -0
  57. package/dist/payments/evm/signatures.d.ts +70 -0
  58. package/dist/payments/evm/signatures.d.ts.map +1 -1
  59. package/dist/payments/evm/signatures.js +89 -0
  60. package/dist/payments/evm/signatures.js.map +1 -1
  61. package/dist/payments/index.d.ts +10 -6
  62. package/dist/payments/index.d.ts.map +1 -1
  63. package/dist/payments/index.js +7 -4
  64. package/dist/payments/index.js.map +1 -1
  65. package/dist/payments/seller-free-usage-manager.d.ts +44 -0
  66. package/dist/payments/seller-free-usage-manager.d.ts.map +1 -0
  67. package/dist/payments/seller-free-usage-manager.js +350 -0
  68. package/dist/payments/seller-free-usage-manager.js.map +1 -0
  69. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  70. package/dist/payments/seller-payment-manager.js +21 -20
  71. package/dist/payments/seller-payment-manager.js.map +1 -1
  72. package/dist/payments/types.d.ts +2 -0
  73. package/dist/payments/types.d.ts.map +1 -1
  74. package/dist/seller-request-handler.d.ts +2 -0
  75. package/dist/seller-request-handler.d.ts.map +1 -1
  76. package/dist/seller-request-handler.js +8 -0
  77. package/dist/seller-request-handler.js.map +1 -1
  78. package/dist/storage/migrations/channels/004_add_channel_kind.d.ts +3 -0
  79. package/dist/storage/migrations/channels/004_add_channel_kind.d.ts.map +1 -0
  80. package/dist/storage/migrations/channels/004_add_channel_kind.js +16 -0
  81. package/dist/storage/migrations/channels/004_add_channel_kind.js.map +1 -0
  82. package/dist/storage/migrations/channels/index.d.ts.map +1 -1
  83. package/dist/storage/migrations/channels/index.js +2 -1
  84. package/dist/storage/migrations/channels/index.js.map +1 -1
  85. package/dist/types/protocol.d.ts +47 -0
  86. package/dist/types/protocol.d.ts.map +1 -1
  87. package/dist/types/protocol.js +4 -0
  88. package/dist/types/protocol.js.map +1 -1
  89. package/dist/verification/samples.js +1 -1
  90. package/dist/verification/samples.js.map +1 -1
  91. package/package.json +1 -1
@@ -9,6 +9,14 @@ export const CHANNEL_STATUS = {
9
9
  TIMEOUT: 'timeout',
10
10
  GHOST: 'ghost',
11
11
  };
12
+ export const CHANNEL_KIND = {
13
+ PAID: 'paid',
14
+ FREE: 'free',
15
+ };
16
+ export const CHANNEL_ROLE = {
17
+ BUYER: 'buyer',
18
+ SELLER: 'seller',
19
+ };
12
20
  export class ChannelStore {
13
21
  _db;
14
22
  // ── Cached prepared statements (compiled once, reused every call) ──
@@ -46,19 +54,20 @@ export class ChannelStore {
46
54
  return {
47
55
  upsert: this._db.prepare(`
48
56
  INSERT INTO payment_channels (
49
- session_id, peer_id, role, seller_evm_addr, buyer_evm_addr,
57
+ session_id, peer_id, role, channel_kind, seller_evm_addr, buyer_evm_addr,
50
58
  nonce, auth_max, deadline, previous_session_id, previous_consumption,
51
59
  tokens_delivered, request_count, reserved_at, settled_at, settled_amount,
52
60
  status, latest_buyer_sig, latest_metadata_auth_sig, latest_metadata,
53
61
  created_at, updated_at
54
62
  ) VALUES (
55
- @sessionId, @peerId, @role, @sellerEvmAddr, @buyerEvmAddr,
63
+ @sessionId, @peerId, @role, @channelKind, @sellerEvmAddr, @buyerEvmAddr,
56
64
  @nonce, @authMax, @deadline, @previousSessionId, @previousConsumption,
57
65
  @tokensDelivered, @requestCount, @reservedAt, @settledAt, @settledAmount,
58
66
  @status, @latestBuyerSig, @latestSpendingAuthSig, @latestMetadata,
59
67
  @createdAt, @updatedAt
60
68
  )
61
69
  ON CONFLICT(session_id) DO UPDATE SET
70
+ channel_kind = @channelKind,
62
71
  auth_max = @authMax,
63
72
  previous_consumption = @previousConsumption,
64
73
  tokens_delivered = @tokensDelivered,
@@ -72,16 +81,16 @@ export class ChannelStore {
72
81
  updated_at = @updatedAt
73
82
  `),
74
83
  getById: this._db.prepare('SELECT * FROM payment_channels WHERE session_id = ?'),
75
- getActiveByPeer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND status = ? ORDER BY created_at DESC LIMIT 1'),
76
- getActiveByPeerAndBuyer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND buyer_evm_addr = ? AND status = ? ORDER BY created_at DESC LIMIT 1'),
77
- getLatestByPeer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? ORDER BY created_at DESC LIMIT 1'),
78
- getLatestByPeerAndBuyer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND buyer_evm_addr = ? ORDER BY created_at DESC LIMIT 1'),
84
+ getActiveByPeer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND channel_kind = ? AND status = ? ORDER BY created_at DESC LIMIT 1'),
85
+ getActiveByPeerAndBuyer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND buyer_evm_addr = ? AND channel_kind = ? AND status = ? ORDER BY created_at DESC LIMIT 1'),
86
+ getLatestByPeer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND channel_kind = ? ORDER BY created_at DESC LIMIT 1'),
87
+ getLatestByPeerAndBuyer: this._db.prepare('SELECT * FROM payment_channels WHERE peer_id = ? AND role = ? AND buyer_evm_addr = ? AND channel_kind = ? ORDER BY created_at DESC LIMIT 1'),
79
88
  updateStatusWithAmount: this._db.prepare('UPDATE payment_channels SET status = ?, settled_at = ?, settled_amount = ?, updated_at = ? WHERE session_id = ?'),
80
89
  updateStatus: this._db.prepare('UPDATE payment_channels SET status = ?, updated_at = ? WHERE session_id = ?'),
81
90
  updateTokens: this._db.prepare('UPDATE payment_channels SET tokens_delivered = ?, request_count = ?, updated_at = ? WHERE session_id = ?'),
82
91
  getMaxNonce: this._db.prepare('SELECT MAX(nonce) as max_nonce FROM payment_channels WHERE role = ?'),
83
- listAll: this._db.prepare('SELECT * FROM payment_channels ORDER BY updated_at DESC LIMIT ?'),
84
- getTimedOut: this._db.prepare('SELECT * FROM payment_channels WHERE status = ? AND updated_at < ? ORDER BY updated_at LIMIT 100'),
92
+ listAll: this._db.prepare('SELECT * FROM payment_channels WHERE channel_kind = ? ORDER BY updated_at DESC LIMIT ?'),
93
+ getTimedOut: this._db.prepare('SELECT * FROM payment_channels WHERE channel_kind = ? AND status = ? AND updated_at < ? ORDER BY updated_at LIMIT 100'),
85
94
  insertReceipt: this._db.prepare(`
86
95
  INSERT INTO payment_receipts (
87
96
  session_id, running_total, request_count, response_hash,
@@ -93,8 +102,8 @@ export class ChannelStore {
93
102
  `),
94
103
  getReceipts: this._db.prepare('SELECT * FROM payment_receipts WHERE session_id = ? ORDER BY created_at'),
95
104
  updateReceiptAck: this._db.prepare('UPDATE payment_receipts SET buyer_ack_sig = ? WHERE session_id = ? AND running_total = ? AND request_count = ?'),
96
- getActiveChannels: this._db.prepare('SELECT * FROM payment_channels WHERE role = ? AND status = ? ORDER BY created_at DESC'),
97
- getActiveChannelsByBuyer: this._db.prepare('SELECT * FROM payment_channels WHERE role = ? AND buyer_evm_addr = ? AND status = ? ORDER BY created_at DESC'),
105
+ getActiveChannels: this._db.prepare('SELECT * FROM payment_channels WHERE role = ? AND channel_kind = ? AND status = ? ORDER BY created_at DESC'),
106
+ getActiveChannelsByBuyer: this._db.prepare('SELECT * FROM payment_channels WHERE role = ? AND buyer_evm_addr = ? AND channel_kind = ? AND status = ? ORDER BY created_at DESC'),
98
107
  getTotalsByPeerAndBuyer: this._db.prepare(`
99
108
  SELECT
100
109
  COUNT(*) as total_sessions,
@@ -105,7 +114,7 @@ export class ChannelStore {
105
114
  MIN(reserved_at) as first_session_at,
106
115
  MAX(updated_at) as last_session_at
107
116
  FROM payment_channels
108
- WHERE peer_id = ? AND role = ? AND buyer_evm_addr = ?
117
+ WHERE peer_id = ? AND role = ? AND buyer_evm_addr = ? AND channel_kind = ?
109
118
  `),
110
119
  deleteServiceTotals: this._db.prepare('DELETE FROM payment_channel_service_totals WHERE session_id = ?'),
111
120
  insertServiceTotal: this._db.prepare(`
@@ -128,6 +137,7 @@ export class ChannelStore {
128
137
  sessionId: channel.sessionId,
129
138
  peerId: channel.peerId,
130
139
  role: channel.role,
140
+ channelKind: channel.channelKind ?? CHANNEL_KIND.PAID,
131
141
  sellerEvmAddr: channel.sellerEvmAddr,
132
142
  buyerEvmAddr: channel.buyerEvmAddr,
133
143
  nonce: channel.nonce,
@@ -152,20 +162,20 @@ export class ChannelStore {
152
162
  const row = this._stmts.getById.get(sessionId);
153
163
  return row ? rowToChannel(row) : null;
154
164
  }
155
- getActiveChannelByPeer(peerId, role) {
156
- const row = this._stmts.getActiveByPeer.get(peerId, role, CHANNEL_STATUS.ACTIVE);
165
+ getActiveChannelByPeer(peerId, role, channelKind = CHANNEL_KIND.PAID) {
166
+ const row = this._stmts.getActiveByPeer.get(peerId, role, channelKind, CHANNEL_STATUS.ACTIVE);
157
167
  return row ? rowToChannel(row) : null;
158
168
  }
159
- getActiveChannelByPeerAndBuyer(peerId, role, buyerEvmAddr) {
160
- const row = this._stmts.getActiveByPeerAndBuyer.get(peerId, role, buyerEvmAddr, CHANNEL_STATUS.ACTIVE);
169
+ getActiveChannelByPeerAndBuyer(peerId, role, buyerEvmAddr, channelKind = CHANNEL_KIND.PAID) {
170
+ const row = this._stmts.getActiveByPeerAndBuyer.get(peerId, role, buyerEvmAddr, channelKind, CHANNEL_STATUS.ACTIVE);
161
171
  return row ? rowToChannel(row) : null;
162
172
  }
163
- getLatestChannel(peerId, role) {
164
- const row = this._stmts.getLatestByPeer.get(peerId, role);
173
+ getLatestChannel(peerId, role, channelKind = CHANNEL_KIND.PAID) {
174
+ const row = this._stmts.getLatestByPeer.get(peerId, role, channelKind);
165
175
  return row ? rowToChannel(row) : null;
166
176
  }
167
- getLatestChannelByPeerAndBuyer(peerId, role, buyerEvmAddr) {
168
- const row = this._stmts.getLatestByPeerAndBuyer.get(peerId, role, buyerEvmAddr);
177
+ getLatestChannelByPeerAndBuyer(peerId, role, buyerEvmAddr, channelKind = CHANNEL_KIND.PAID) {
178
+ const row = this._stmts.getLatestByPeerAndBuyer.get(peerId, role, buyerEvmAddr, channelKind);
169
179
  return row ? rowToChannel(row) : null;
170
180
  }
171
181
  updateChannelStatus(sessionId, status, settledAmount) {
@@ -185,28 +195,28 @@ export class ChannelStore {
185
195
  return row?.max_nonce ?? 0;
186
196
  }
187
197
  /** List all channels ordered by most recent first. */
188
- listAllChannels(limit = 100) {
189
- const rows = this._stmts.listAll.all(limit);
198
+ listAllChannels(limit = 100, channelKind = CHANNEL_KIND.PAID) {
199
+ const rows = this._stmts.listAll.all(channelKind, limit);
190
200
  return rows.map(rowToChannel);
191
201
  }
192
202
  /** Get all active channels for a given role (buyer or seller). */
193
- getActiveChannels(role) {
194
- const rows = this._stmts.getActiveChannels.all(role, CHANNEL_STATUS.ACTIVE);
203
+ getActiveChannels(role, channelKind = CHANNEL_KIND.PAID) {
204
+ const rows = this._stmts.getActiveChannels.all(role, channelKind, CHANNEL_STATUS.ACTIVE);
195
205
  return rows.map(rowToChannel);
196
206
  }
197
- getActiveChannelsByBuyer(role, buyerEvmAddr) {
198
- const rows = this._stmts.getActiveChannelsByBuyer.all(role, buyerEvmAddr, CHANNEL_STATUS.ACTIVE);
207
+ getActiveChannelsByBuyer(role, buyerEvmAddr, channelKind = CHANNEL_KIND.PAID) {
208
+ const rows = this._stmts.getActiveChannelsByBuyer.all(role, buyerEvmAddr, channelKind, CHANNEL_STATUS.ACTIVE);
199
209
  return rows.map(rowToChannel);
200
210
  }
201
211
  /** All channels for a given buyer (any status), ordered by most recent first. */
202
- getAllChannelsByBuyer(role, buyerEvmAddr) {
212
+ getAllChannelsByBuyer(role, buyerEvmAddr, channelKind = CHANNEL_KIND.PAID) {
203
213
  const rows = this._db
204
- .prepare('SELECT * FROM payment_channels WHERE role = ? AND buyer_evm_addr = ? ORDER BY created_at DESC')
205
- .all(role, buyerEvmAddr);
214
+ .prepare('SELECT * FROM payment_channels WHERE role = ? AND buyer_evm_addr = ? AND channel_kind = ? ORDER BY created_at DESC')
215
+ .all(role, buyerEvmAddr, channelKind);
206
216
  return rows.map(rowToChannel);
207
217
  }
208
218
  /** Aggregate totals across all channels for a given peer and role. */
209
- getTotalsByPeer(peerId, role) {
219
+ getTotalsByPeer(peerId, role, channelKind = CHANNEL_KIND.PAID) {
210
220
  const row = this._db.prepare(`
211
221
  SELECT
212
222
  COUNT(*) as total_sessions,
@@ -217,8 +227,8 @@ export class ChannelStore {
217
227
  MIN(reserved_at) as first_session_at,
218
228
  MAX(updated_at) as last_session_at
219
229
  FROM payment_channels
220
- WHERE peer_id = ? AND role = ?
221
- `).get(peerId, role);
230
+ WHERE peer_id = ? AND role = ? AND channel_kind = ?
231
+ `).get(peerId, role, channelKind);
222
232
  return {
223
233
  totalSessions: row.total_sessions,
224
234
  totalRequests: row.total_requests,
@@ -229,8 +239,8 @@ export class ChannelStore {
229
239
  lastSessionAt: row.last_session_at,
230
240
  };
231
241
  }
232
- getTotalsByPeerAndBuyer(peerId, role, buyerEvmAddr) {
233
- const row = this._stmts.getTotalsByPeerAndBuyer.get(peerId, role, buyerEvmAddr);
242
+ getTotalsByPeerAndBuyer(peerId, role, buyerEvmAddr, channelKind = CHANNEL_KIND.PAID) {
243
+ const row = this._stmts.getTotalsByPeerAndBuyer.get(peerId, role, buyerEvmAddr, channelKind);
234
244
  return {
235
245
  totalSessions: row.total_sessions,
236
246
  totalRequests: row.total_requests,
@@ -242,9 +252,9 @@ export class ChannelStore {
242
252
  };
243
253
  }
244
254
  // ── Timeout queries ───────────────────────────────────────────
245
- getTimedOutChannels(timeoutSeconds) {
255
+ getTimedOutChannels(timeoutSeconds, channelKind = CHANNEL_KIND.PAID) {
246
256
  const cutoff = Date.now() - timeoutSeconds * 1000;
247
- const rows = this._stmts.getTimedOut.all(CHANNEL_STATUS.ACTIVE, cutoff);
257
+ const rows = this._stmts.getTimedOut.all(channelKind, CHANNEL_STATUS.ACTIVE, cutoff);
248
258
  return rows.map(rowToChannel);
249
259
  }
250
260
  // ── Receipt CRUD ──────────────────────────────────────────────
@@ -280,10 +290,38 @@ export class ChannelStore {
280
290
  updatedAt,
281
291
  })));
282
292
  }
293
+ replaceMetadataServiceTotals(sessionId, services = []) {
294
+ this.replaceServiceTotals(sessionId, services.map((service) => ({
295
+ serviceId: service.serviceId,
296
+ cumulativeAmount: service.cumulativeAmount.toString(),
297
+ cumulativeInputTokens: service.cumulativeInputTokens.toString(),
298
+ cumulativeCachedInputTokens: service.cumulativeCachedInputTokens.toString(),
299
+ cumulativeOutputTokens: service.cumulativeOutputTokens.toString(),
300
+ cumulativeRequestCount: service.cumulativeRequestCount.toString(),
301
+ })));
302
+ }
283
303
  getServiceTotals(sessionId) {
284
304
  const rows = this._stmts.getServiceTotals.all(sessionId);
285
305
  return rows.map(rowToServiceTotal);
286
306
  }
307
+ getMetadataServiceTotals(sessionId) {
308
+ return this.getServiceTotals(sessionId).map((total) => ({
309
+ serviceId: total.serviceId,
310
+ cumulativeAmount: BigInt(total.cumulativeAmount),
311
+ cumulativeInputTokens: BigInt(total.cumulativeInputTokens),
312
+ cumulativeCachedInputTokens: BigInt(total.cumulativeCachedInputTokens),
313
+ cumulativeOutputTokens: BigInt(total.cumulativeOutputTokens),
314
+ cumulativeRequestCount: BigInt(total.cumulativeRequestCount),
315
+ }));
316
+ }
317
+ getChannelMetadata(channel) {
318
+ return {
319
+ cumulativeInputTokens: BigInt(channel.tokensDelivered),
320
+ cumulativeOutputTokens: BigInt(channel.previousConsumption),
321
+ cumulativeRequestCount: BigInt(channel.requestCount),
322
+ services: this.getMetadataServiceTotals(channel.sessionId),
323
+ };
324
+ }
287
325
  // ── Lifecycle ─────────────────────────────────────────────────
288
326
  close() {
289
327
  this._db.close();
@@ -294,6 +332,7 @@ function rowToChannel(row) {
294
332
  sessionId: row.session_id,
295
333
  peerId: row.peer_id,
296
334
  role: row.role,
335
+ channelKind: (row.channel_kind ?? CHANNEL_KIND.PAID),
297
336
  sellerEvmAddr: row.seller_evm_addr,
298
337
  buyerEvmAddr: row.buyer_evm_addr,
299
338
  nonce: row.nonce,
@@ -1 +1 @@
1
- {"version":3,"file":"channel-store.js","sourceRoot":"","sources":["../../src/payments/channel-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-store.js","sourceRoot":"","sources":["../../src/payments/channel-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type ServiceMetadataDelta, type SpendingAuthMetadata } from './evm/signatures.js';
2
+ export declare class RequestServiceTracker {
3
+ private readonly _limit;
4
+ private readonly _services;
5
+ constructor(_limit?: number);
6
+ track(requestId: string, service: string): void;
7
+ get(requestId: string | undefined): string | undefined;
8
+ take(requestId: string | undefined): string | undefined;
9
+ }
10
+ export declare class CountedRequestTracker {
11
+ private readonly _limit;
12
+ private readonly _requestIds;
13
+ constructor(_limit?: number);
14
+ has(requestId: string | undefined): boolean;
15
+ mark(requestId: string | undefined): void;
16
+ }
17
+ export declare function advanceUsageMetadata(previous: SpendingAuthMetadata | undefined, service: string | undefined, delta: ServiceMetadataDelta): SpendingAuthMetadata;
18
+ //# sourceMappingURL=channel-usage-accounting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-usage-accounting.d.ts","sourceRoot":"","sources":["../../src/payments/channel-usage-accounting.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAgB7B,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;gBAE1B,MAAM,SAAgC;IAEnE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAK/C,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAKtD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;CAMxD;AAED,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAEpB,MAAM,SAAgC;IAEnE,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO;IAI3C,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAK1C;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,oBAAoB,GAC1B,oBAAoB,CAStB"}
@@ -0,0 +1,66 @@
1
+ import { withServiceMetadata, ZERO_METADATA, } from './evm/signatures.js';
2
+ const DEFAULT_REQUEST_TRACKER_LIMIT = 512;
3
+ function trimOldestMapEntry(map, limit) {
4
+ if (map.size < limit)
5
+ return;
6
+ const oldest = map.keys().next().value;
7
+ if (oldest !== undefined)
8
+ map.delete(oldest);
9
+ }
10
+ function trimOldestSetEntry(set, limit) {
11
+ if (set.size < limit)
12
+ return;
13
+ const oldest = set.values().next().value;
14
+ if (oldest !== undefined)
15
+ set.delete(oldest);
16
+ }
17
+ export class RequestServiceTracker {
18
+ _limit;
19
+ _services = new Map();
20
+ constructor(_limit = DEFAULT_REQUEST_TRACKER_LIMIT) {
21
+ this._limit = _limit;
22
+ }
23
+ track(requestId, service) {
24
+ trimOldestMapEntry(this._services, this._limit);
25
+ this._services.set(requestId, service);
26
+ }
27
+ get(requestId) {
28
+ if (!requestId)
29
+ return undefined;
30
+ return this._services.get(requestId);
31
+ }
32
+ take(requestId) {
33
+ if (!requestId)
34
+ return undefined;
35
+ const service = this._services.get(requestId);
36
+ this._services.delete(requestId);
37
+ return service;
38
+ }
39
+ }
40
+ export class CountedRequestTracker {
41
+ _limit;
42
+ _requestIds = new Set();
43
+ constructor(_limit = DEFAULT_REQUEST_TRACKER_LIMIT) {
44
+ this._limit = _limit;
45
+ }
46
+ has(requestId) {
47
+ return requestId != null && this._requestIds.has(requestId);
48
+ }
49
+ mark(requestId) {
50
+ if (!requestId)
51
+ return;
52
+ trimOldestSetEntry(this._requestIds, this._limit);
53
+ this._requestIds.add(requestId);
54
+ }
55
+ }
56
+ export function advanceUsageMetadata(previous, service, delta) {
57
+ const prev = previous ?? ZERO_METADATA;
58
+ const totals = {
59
+ cumulativeInputTokens: prev.cumulativeInputTokens + delta.inputTokens,
60
+ cumulativeOutputTokens: prev.cumulativeOutputTokens + delta.outputTokens,
61
+ cumulativeRequestCount: prev.cumulativeRequestCount + delta.requests,
62
+ services: prev.services ?? [],
63
+ };
64
+ return withServiceMetadata(totals, service, delta);
65
+ }
66
+ //# sourceMappingURL=channel-usage-accounting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-usage-accounting.js","sourceRoot":"","sources":["../../src/payments/channel-usage-accounting.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,aAAa,GAGd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAE1C,SAAS,kBAAkB,CAAO,GAAc,EAAE,KAAa;IAC7D,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK;QAAE,OAAO;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAI,GAAW,EAAE,KAAa;IACvD,IAAI,GAAG,CAAC,IAAI,GAAG,KAAK;QAAE,OAAO;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;IACzC,IAAI,MAAM,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,OAAO,qBAAqB;IAGH;IAFZ,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvD,YAA6B,SAAS,6BAA6B;QAAtC,WAAM,GAAN,MAAM,CAAgC;IAAG,CAAC;IAEvE,KAAK,CAAC,SAAiB,EAAE,OAAe;QACtC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,SAA6B;QAC/B,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,SAA6B;QAChC,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IAGH;IAFZ,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjD,YAA6B,SAAS,6BAA6B;QAAtC,WAAM,GAAN,MAAM,CAAgC;IAAG,CAAC;IAEvE,GAAG,CAAC,SAA6B;QAC/B,OAAO,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,SAA6B;QAChC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAClC,QAA0C,EAC1C,OAA2B,EAC3B,KAA2B;IAE3B,MAAM,IAAI,GAAG,QAAQ,IAAI,aAAa,CAAC;IACvC,MAAM,MAAM,GAAyB;QACnC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,WAAW;QACrE,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,YAAY;QACxE,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,QAAQ;QACpE,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC;IACF,OAAO,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type AbstractSigner } from 'ethers';
2
+ import { BaseEvmClient } from './base-evm-client.js';
3
+ export interface FreeUsageClientConfig {
4
+ rpcUrl: string;
5
+ fallbackRpcUrls?: string[];
6
+ contractAddress: string;
7
+ evmChainId?: number;
8
+ }
9
+ export interface FreeUsageAgentStats {
10
+ channelCount: number;
11
+ lastSettledAt: number;
12
+ }
13
+ export interface FreeUsageChannelInfo {
14
+ buyer: string;
15
+ seller: string;
16
+ latestSequence: bigint;
17
+ metadataHash: string;
18
+ deadline: bigint;
19
+ updatedAt: bigint;
20
+ closedAt: bigint;
21
+ status: number;
22
+ }
23
+ export declare class FreeUsageClient extends BaseEvmClient {
24
+ constructor(config: FreeUsageClientConfig);
25
+ open(signer: AbstractSigner, buyer: string, salt: string, deadline: bigint, buyerSig: string): Promise<string>;
26
+ record(signer: AbstractSigner, channelId: string, sequence: bigint, metadata: string, deadline: bigint, buyerSig: string): Promise<string>;
27
+ close(signer: AbstractSigner, channelId: string, sequence: bigint, metadata: string, deadline: bigint, buyerSig: string): Promise<string>;
28
+ getSession(channelId: string): Promise<FreeUsageChannelInfo>;
29
+ computeChannelId(buyer: string, seller: string, salt: string): string;
30
+ getAgentStats(agentId: number): Promise<FreeUsageAgentStats>;
31
+ activeChannelCount(seller: string): Promise<bigint>;
32
+ domainSeparator(): Promise<string>;
33
+ }
34
+ //# sourceMappingURL=free-usage-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"free-usage-client.d.ts","sourceRoot":"","sources":["../../../src/payments/evm/free-usage-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAY,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAaD,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,MAAM,EAAE,qBAAqB;IAInC,IAAI,CACR,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAIZ,MAAM,CACV,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAIZ,KAAK,CACT,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAIZ,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAelE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAI/D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAS5D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKnD,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;CAIzC"}
@@ -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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"}