@antseed/node 0.2.27 → 0.2.29

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 (234) hide show
  1. package/README.md +14 -13
  2. package/dist/buyer-request-handler.d.ts +41 -0
  3. package/dist/buyer-request-handler.d.ts.map +1 -0
  4. package/dist/buyer-request-handler.js +254 -0
  5. package/dist/buyer-request-handler.js.map +1 -0
  6. package/dist/discovery/announcer.d.ts +5 -4
  7. package/dist/discovery/announcer.d.ts.map +1 -1
  8. package/dist/discovery/announcer.js +11 -18
  9. package/dist/discovery/announcer.js.map +1 -1
  10. package/dist/discovery/index.d.ts +0 -1
  11. package/dist/discovery/index.d.ts.map +1 -1
  12. package/dist/discovery/index.js +0 -1
  13. package/dist/discovery/index.js.map +1 -1
  14. package/dist/discovery/metadata-codec.d.ts +2 -2
  15. package/dist/discovery/metadata-codec.d.ts.map +1 -1
  16. package/dist/discovery/metadata-codec.js +47 -72
  17. package/dist/discovery/metadata-codec.js.map +1 -1
  18. package/dist/discovery/metadata-validator.js +6 -6
  19. package/dist/discovery/metadata-validator.js.map +1 -1
  20. package/dist/discovery/peer-lookup.d.ts.map +1 -1
  21. package/dist/discovery/peer-lookup.js +1 -2
  22. package/dist/discovery/peer-lookup.js.map +1 -1
  23. package/dist/discovery/peer-metadata.d.ts +3 -5
  24. package/dist/discovery/peer-metadata.d.ts.map +1 -1
  25. package/dist/discovery/peer-metadata.js +1 -1
  26. package/dist/discovery/reputation-verifier.d.ts +2 -25
  27. package/dist/discovery/reputation-verifier.d.ts.map +1 -1
  28. package/dist/discovery/reputation-verifier.js +2 -48
  29. package/dist/discovery/reputation-verifier.js.map +1 -1
  30. package/dist/discovery/stats-verifier.d.ts +27 -0
  31. package/dist/discovery/stats-verifier.d.ts.map +1 -0
  32. package/dist/discovery/stats-verifier.js +38 -0
  33. package/dist/discovery/stats-verifier.js.map +1 -0
  34. package/dist/index.d.ts +10 -7
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +8 -5
  37. package/dist/index.js.map +1 -1
  38. package/dist/metering/index.d.ts +1 -0
  39. package/dist/metering/index.d.ts.map +1 -1
  40. package/dist/metering/index.js +1 -0
  41. package/dist/metering/index.js.map +1 -1
  42. package/dist/metering/receipt-generator.d.ts +4 -4
  43. package/dist/metering/receipt-generator.d.ts.map +1 -1
  44. package/dist/metering/receipt-verifier.d.ts +6 -6
  45. package/dist/metering/receipt-verifier.d.ts.map +1 -1
  46. package/dist/metering/receipt-verifier.js +1 -1
  47. package/dist/metering/seller-session-tracker.d.ts +91 -0
  48. package/dist/metering/seller-session-tracker.d.ts.map +1 -0
  49. package/dist/metering/seller-session-tracker.js +261 -0
  50. package/dist/metering/seller-session-tracker.js.map +1 -0
  51. package/dist/metering/storage.d.ts +11 -5
  52. package/dist/metering/storage.d.ts.map +1 -1
  53. package/dist/metering/storage.js +28 -80
  54. package/dist/metering/storage.js.map +1 -1
  55. package/dist/node.d.ts +69 -117
  56. package/dist/node.d.ts.map +1 -1
  57. package/dist/node.js +240 -1269
  58. package/dist/node.js.map +1 -1
  59. package/dist/p2p/connection-auth.d.ts +2 -1
  60. package/dist/p2p/connection-auth.d.ts.map +1 -1
  61. package/dist/p2p/connection-auth.js +6 -6
  62. package/dist/p2p/connection-auth.js.map +1 -1
  63. package/dist/p2p/connection-manager.d.ts +3 -2
  64. package/dist/p2p/connection-manager.d.ts.map +1 -1
  65. package/dist/p2p/connection-manager.js +6 -6
  66. package/dist/p2p/connection-manager.js.map +1 -1
  67. package/dist/p2p/identity.d.ts +22 -15
  68. package/dist/p2p/identity.d.ts.map +1 -1
  69. package/dist/p2p/identity.js +66 -51
  70. package/dist/p2p/identity.js.map +1 -1
  71. package/dist/p2p/index.d.ts +1 -1
  72. package/dist/p2p/index.d.ts.map +1 -1
  73. package/dist/p2p/index.js +1 -1
  74. package/dist/p2p/index.js.map +1 -1
  75. package/dist/p2p/payment-codec.d.ts +4 -8
  76. package/dist/p2p/payment-codec.d.ts.map +1 -1
  77. package/dist/p2p/payment-codec.js +27 -57
  78. package/dist/p2p/payment-codec.js.map +1 -1
  79. package/dist/p2p/payment-mux.d.ts +4 -10
  80. package/dist/p2p/payment-mux.d.ts.map +1 -1
  81. package/dist/p2p/payment-mux.js +11 -33
  82. package/dist/p2p/payment-mux.js.map +1 -1
  83. package/dist/payments/balance-manager.d.ts +2 -2
  84. package/dist/payments/balance-manager.d.ts.map +1 -1
  85. package/dist/payments/balance-manager.js +5 -5
  86. package/dist/payments/balance-manager.js.map +1 -1
  87. package/dist/payments/buyer-payment-manager.d.ts +154 -21
  88. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  89. package/dist/payments/buyer-payment-manager.js +540 -166
  90. package/dist/payments/buyer-payment-manager.js.map +1 -1
  91. package/dist/payments/buyer-payment-negotiator.d.ts +84 -0
  92. package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -0
  93. package/dist/payments/buyer-payment-negotiator.js +624 -0
  94. package/dist/payments/buyer-payment-negotiator.js.map +1 -0
  95. package/dist/payments/chain-config.d.ts +10 -4
  96. package/dist/payments/chain-config.d.ts.map +1 -1
  97. package/dist/payments/chain-config.js +19 -9
  98. package/dist/payments/chain-config.js.map +1 -1
  99. package/dist/payments/channel-session-state.d.ts +13 -0
  100. package/dist/payments/channel-session-state.d.ts.map +1 -0
  101. package/dist/payments/channel-session-state.js +25 -0
  102. package/dist/payments/channel-session-state.js.map +1 -0
  103. package/dist/payments/channel-store.d.ts +87 -0
  104. package/dist/payments/channel-store.d.ts.map +1 -0
  105. package/dist/payments/channel-store.js +276 -0
  106. package/dist/payments/channel-store.js.map +1 -0
  107. package/dist/payments/evm/ants-token-client.d.ts +1 -1
  108. package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
  109. package/dist/payments/evm/ants-token-client.js +3 -4
  110. package/dist/payments/evm/ants-token-client.js.map +1 -1
  111. package/dist/payments/evm/base-evm-client.d.ts +10 -1
  112. package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
  113. package/dist/payments/evm/base-evm-client.js +34 -1
  114. package/dist/payments/evm/base-evm-client.js.map +1 -1
  115. package/dist/payments/evm/channels-client.d.ts +51 -0
  116. package/dist/payments/evm/channels-client.d.ts.map +1 -0
  117. package/dist/payments/evm/channels-client.js +101 -0
  118. package/dist/payments/evm/channels-client.js.map +1 -0
  119. package/dist/payments/evm/deposits-client.d.ts +30 -0
  120. package/dist/payments/evm/deposits-client.d.ts.map +1 -0
  121. package/dist/payments/evm/deposits-client.js +78 -0
  122. package/dist/payments/evm/deposits-client.js.map +1 -0
  123. package/dist/payments/evm/emissions-client.d.ts +3 -4
  124. package/dist/payments/evm/emissions-client.d.ts.map +1 -1
  125. package/dist/payments/evm/emissions-client.js +11 -30
  126. package/dist/payments/evm/emissions-client.js.map +1 -1
  127. package/dist/payments/evm/identity-client.d.ts +15 -23
  128. package/dist/payments/evm/identity-client.d.ts.map +1 -1
  129. package/dist/payments/evm/identity-client.js +68 -99
  130. package/dist/payments/evm/identity-client.js.map +1 -1
  131. package/dist/payments/evm/keypair.d.ts +3 -14
  132. package/dist/payments/evm/keypair.d.ts.map +1 -1
  133. package/dist/payments/evm/keypair.js +4 -20
  134. package/dist/payments/evm/keypair.js.map +1 -1
  135. package/dist/payments/evm/sessions-client.d.ts +30 -0
  136. package/dist/payments/evm/sessions-client.d.ts.map +1 -0
  137. package/dist/payments/evm/sessions-client.js +61 -0
  138. package/dist/payments/evm/sessions-client.js.map +1 -0
  139. package/dist/payments/evm/signatures.d.ts +43 -12
  140. package/dist/payments/evm/signatures.d.ts.map +1 -1
  141. package/dist/payments/evm/signatures.js +62 -45
  142. package/dist/payments/evm/signatures.js.map +1 -1
  143. package/dist/payments/evm/staking-client.d.ts +24 -0
  144. package/dist/payments/evm/staking-client.d.ts.map +1 -0
  145. package/dist/payments/evm/staking-client.js +54 -0
  146. package/dist/payments/evm/staking-client.js.map +1 -0
  147. package/dist/payments/evm/stats-client.d.ts +20 -0
  148. package/dist/payments/evm/stats-client.d.ts.map +1 -0
  149. package/dist/payments/evm/stats-client.js +25 -0
  150. package/dist/payments/evm/stats-client.js.map +1 -0
  151. package/dist/payments/index.d.ts +17 -10
  152. package/dist/payments/index.d.ts.map +1 -1
  153. package/dist/payments/index.js +15 -8
  154. package/dist/payments/index.js.map +1 -1
  155. package/dist/payments/pricing.d.ts +25 -0
  156. package/dist/payments/pricing.d.ts.map +1 -0
  157. package/dist/payments/pricing.js +33 -0
  158. package/dist/payments/pricing.js.map +1 -0
  159. package/dist/payments/readiness.d.ts +4 -3
  160. package/dist/payments/readiness.d.ts.map +1 -1
  161. package/dist/payments/readiness.js +11 -18
  162. package/dist/payments/readiness.js.map +1 -1
  163. package/dist/payments/seller-payment-manager.d.ts +72 -47
  164. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  165. package/dist/payments/seller-payment-manager.js +558 -275
  166. package/dist/payments/seller-payment-manager.js.map +1 -1
  167. package/dist/payments/session-store.d.ts +3 -0
  168. package/dist/payments/session-store.d.ts.map +1 -1
  169. package/dist/payments/session-store.js +31 -2
  170. package/dist/payments/session-store.js.map +1 -1
  171. package/dist/payments/types.d.ts +5 -3
  172. package/dist/payments/types.d.ts.map +1 -1
  173. package/dist/proxy/proxy-mux.d.ts.map +1 -1
  174. package/dist/proxy/proxy-mux.js +3 -2
  175. package/dist/proxy/proxy-mux.js.map +1 -1
  176. package/dist/proxy/request-codec.d.ts.map +1 -1
  177. package/dist/proxy/request-codec.js +3 -0
  178. package/dist/proxy/request-codec.js.map +1 -1
  179. package/dist/reputation/rating-manager.d.ts.map +1 -1
  180. package/dist/reputation/rating-manager.js +2 -4
  181. package/dist/reputation/rating-manager.js.map +1 -1
  182. package/dist/reputation/report-manager.d.ts.map +1 -1
  183. package/dist/reputation/report-manager.js +2 -4
  184. package/dist/reputation/report-manager.js.map +1 -1
  185. package/dist/routing/default-router.d.ts.map +1 -1
  186. package/dist/routing/default-router.js +4 -9
  187. package/dist/routing/default-router.js.map +1 -1
  188. package/dist/seller-request-handler.d.ts +54 -0
  189. package/dist/seller-request-handler.d.ts.map +1 -0
  190. package/dist/seller-request-handler.js +359 -0
  191. package/dist/seller-request-handler.js.map +1 -0
  192. package/dist/storage/migrate.d.ts +13 -0
  193. package/dist/storage/migrate.d.ts.map +1 -0
  194. package/dist/storage/migrate.js +28 -0
  195. package/dist/storage/migrate.js.map +1 -0
  196. package/dist/storage/migrations/channels/001_create_tables.d.ts +3 -0
  197. package/dist/storage/migrations/channels/001_create_tables.d.ts.map +1 -0
  198. package/dist/storage/migrations/channels/001_create_tables.js +45 -0
  199. package/dist/storage/migrations/channels/001_create_tables.js.map +1 -0
  200. package/dist/storage/migrations/channels/002_add_auth_sig_columns.d.ts +3 -0
  201. package/dist/storage/migrations/channels/002_add_auth_sig_columns.d.ts.map +1 -0
  202. package/dist/storage/migrations/channels/002_add_auth_sig_columns.js +19 -0
  203. package/dist/storage/migrations/channels/002_add_auth_sig_columns.js.map +1 -0
  204. package/dist/storage/migrations/channels/index.d.ts +3 -0
  205. package/dist/storage/migrations/channels/index.d.ts.map +1 -0
  206. package/dist/storage/migrations/channels/index.js +4 -0
  207. package/dist/storage/migrations/channels/index.js.map +1 -0
  208. package/dist/storage/migrations/metering/001_create_tables.d.ts +3 -0
  209. package/dist/storage/migrations/metering/001_create_tables.d.ts.map +1 -0
  210. package/dist/storage/migrations/metering/001_create_tables.js +80 -0
  211. package/dist/storage/migrations/metering/001_create_tables.js.map +1 -0
  212. package/dist/storage/migrations/metering/index.d.ts +3 -0
  213. package/dist/storage/migrations/metering/index.d.ts.map +1 -0
  214. package/dist/storage/migrations/metering/index.js +3 -0
  215. package/dist/storage/migrations/metering/index.js.map +1 -0
  216. package/dist/types/capability.d.ts +1 -1
  217. package/dist/types/metering.d.ts +1 -1
  218. package/dist/types/peer.d.ts +10 -11
  219. package/dist/types/peer.d.ts.map +1 -1
  220. package/dist/types/peer.js +7 -3
  221. package/dist/types/peer.js.map +1 -1
  222. package/dist/types/protocol.d.ts +22 -70
  223. package/dist/types/protocol.d.ts.map +1 -1
  224. package/dist/types/protocol.js +1 -3
  225. package/dist/types/protocol.js.map +1 -1
  226. package/dist/types/rating.d.ts +1 -1
  227. package/dist/types/rating.d.ts.map +1 -1
  228. package/dist/types/report.d.ts +1 -1
  229. package/dist/types/report.d.ts.map +1 -1
  230. package/dist/utils/response-usage.d.ts +10 -0
  231. package/dist/utils/response-usage.d.ts.map +1 -0
  232. package/dist/utils/response-usage.js +34 -0
  233. package/dist/utils/response-usage.js.map +1 -0
  234. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"reputation-verifier.js","sourceRoot":"","sources":["../../src/discovery/reputation-verifier.ts"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAA8B,EAC9B,QAAsB;IAEtB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,IAAI;YACX,gBAAgB,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,EAAE,CAAC;YACrB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;SAClD,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE/D,0DAA0D;IAC1D,8DAA8D;IAC9D,4FAA4F;IAC5F,2EAA2E;IAC3E,MAAM,gBAAgB,GAAG,UAAU,CAAC,wBAAwB,CAAC;IAC7D,MAAM,kBAAkB,GACtB,UAAU,CAAC,cAAc;QACzB,UAAU,CAAC,wBAAwB;QACnC,UAAU,CAAC,0BAA0B,CAAC;IACxC,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;IAEjD,mEAAmE;IACnE,yEAAyE;IACzE,qCAAqC;IACrC,MAAM,KAAK,GACT,QAAQ,CAAC,iBAAiB,KAAK,SAAS;QACxC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAC1C,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAC1C,QAAQ,CAAC,iBAAiB,KAAK,gBAAgB;QAC/C,QAAQ,CAAC,mBAAmB,KAAK,kBAAkB;QACnD,QAAQ,CAAC,mBAAmB,KAAK,kBAAkB,CAAC;IAEtD,OAAO;QACL,KAAK;QACL,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;KAClD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reputation-verifier.js","sourceRoot":"","sources":["../../src/discovery/reputation-verifier.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,IAAI,gBAAgB,EAAoD,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { PeerMetadata } from "./peer-metadata.js";
2
+ import type { StatsClient } from "../payments/evm/stats-client.js";
3
+ import type { StakingClient } from "../payments/evm/staking-client.js";
4
+ export interface StatsVerification {
5
+ /** Whether the claimed stats match on-chain data. */
6
+ valid: boolean;
7
+ /** The actual on-chain reputation score (channel count). */
8
+ actualReputation: number;
9
+ /** The actual on-chain channel count. */
10
+ actualChannelCount: number;
11
+ /** The actual on-chain ghost/dispute count. */
12
+ actualDisputeCount: number;
13
+ /** The claimed on-chain reputation score from metadata. */
14
+ claimedReputation?: number;
15
+ /** The claimed on-chain channel count from metadata. */
16
+ claimedChannelCount?: number;
17
+ /** The claimed on-chain dispute count from metadata. */
18
+ claimedDisputeCount?: number;
19
+ }
20
+ /**
21
+ * Verify a peer's claimed on-chain stats against the AntseedStats contract.
22
+ * Uses the staking client to look up the agentId from the peer's EVM address
23
+ * (derived from peerId), then fetches stats from the StatsClient and compares
24
+ * claimed vs actual.
25
+ */
26
+ export declare function verifyStats(statsClient: StatsClient, stakingClient: StakingClient, metadata: PeerMetadata): Promise<StatsVerification>;
27
+ //# sourceMappingURL=stats-verifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-verifier.d.ts","sourceRoot":"","sources":["../../src/discovery/stats-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAGvE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAiC5B"}
@@ -0,0 +1,38 @@
1
+ import { peerIdToAddress } from "../types/peer.js";
2
+ /**
3
+ * Verify a peer's claimed on-chain stats against the AntseedStats contract.
4
+ * Uses the staking client to look up the agentId from the peer's EVM address
5
+ * (derived from peerId), then fetches stats from the StatsClient and compares
6
+ * claimed vs actual.
7
+ */
8
+ export async function verifyStats(statsClient, stakingClient, metadata) {
9
+ const evmAddress = peerIdToAddress(metadata.peerId);
10
+ const agentId = await stakingClient.getAgentId(evmAddress);
11
+ const stats = await statsClient.getStats(agentId);
12
+ // Map AgentStats fields to the verification format:
13
+ // - channelCount is the total completed channels
14
+ // - ghostCount maps to dispute count (channels where provider went silent)
15
+ // - Use channelCount as the reputation metric (higher = more trusted)
16
+ const actualReputation = stats.channelCount;
17
+ const actualChannelCount = stats.channelCount;
18
+ const actualDisputeCount = stats.ghostCount;
19
+ // Always compare against on-chain data.
20
+ // If peer omits stats fields, treat as unverified — prevents bypass
21
+ // by simply not claiming any values.
22
+ const valid = metadata.onChainReputation !== undefined &&
23
+ metadata.onChainChannelCount !== undefined &&
24
+ metadata.onChainDisputeCount !== undefined &&
25
+ metadata.onChainReputation === actualReputation &&
26
+ metadata.onChainChannelCount === actualChannelCount &&
27
+ metadata.onChainDisputeCount === actualDisputeCount;
28
+ return {
29
+ valid,
30
+ actualReputation,
31
+ actualChannelCount,
32
+ actualDisputeCount,
33
+ claimedReputation: metadata.onChainReputation,
34
+ claimedChannelCount: metadata.onChainChannelCount,
35
+ claimedDisputeCount: metadata.onChainDisputeCount,
36
+ };
37
+ }
38
+ //# sourceMappingURL=stats-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-verifier.js","sourceRoot":"","sources":["../../src/discovery/stats-verifier.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAmBnD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAwB,EACxB,aAA4B,EAC5B,QAAsB;IAEtB,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAElD,oDAAoD;IACpD,iDAAiD;IACjD,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC;IAC5C,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC;IAC9C,MAAM,kBAAkB,GAAG,KAAK,CAAC,UAAU,CAAC;IAE5C,wCAAwC;IACxC,oEAAoE;IACpE,qCAAqC;IACrC,MAAM,KAAK,GACT,QAAQ,CAAC,iBAAiB,KAAK,SAAS;QACxC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAC1C,QAAQ,CAAC,mBAAmB,KAAK,SAAS;QAC1C,QAAQ,CAAC,iBAAiB,KAAK,gBAAgB;QAC/C,QAAQ,CAAC,mBAAmB,KAAK,kBAAkB;QACnD,QAAQ,CAAC,mBAAmB,KAAK,kBAAkB,CAAC;IAEtD,OAAO;QACL,KAAK;QACL,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;QAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;KAClD,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export { AntseedNode, type NodeConfig, type NodePaymentsConfig, type RequestStre
2
2
  export type { Provider, ProviderStreamCallbacks } from './interfaces/seller-provider.js';
3
3
  export type { Router } from './interfaces/buyer-router.js';
4
4
  export * from './types/index.js';
5
- export { loadOrCreateIdentity, type Identity, type IdentityStore, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
5
+ export { loadOrCreateIdentity, identityFromPrivateKeyHex, type Identity, type IdentityStore, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
6
6
  export { DHTNode, DEFAULT_DHT_CONFIG } from './discovery/dht-node.js';
7
7
  export { OFFICIAL_BOOTSTRAP_NODES, mergeBootstrapNodes, toBootstrapConfig } from './discovery/bootstrap.js';
8
8
  export { WELL_KNOWN_SERVICE_CATEGORIES, WELL_KNOWN_SERVICE_API_PROTOCOLS, type ServiceApiProtocol, type PeerMetadata, type ProviderAnnouncement, } from './discovery/peer-metadata.js';
@@ -10,17 +10,20 @@ export { MetadataServer, type MetadataServerConfig } from './discovery/metadata-
10
10
  export { parsePublicAddress, MAX_PUBLIC_ADDRESS_LENGTH, type ParsedPublicAddress } from './discovery/public-address.js';
11
11
  export { MeteringStorage } from './metering/storage.js';
12
12
  export { BalanceManager } from './payments/balance-manager.js';
13
- export { BaseEscrowClient, type BaseEscrowConfig } from './payments/evm/escrow-client.js';
14
- export { identityToEvmWallet, identityToEvmAddress } from './payments/evm/keypair.js';
15
- export { signSpendingAuth, makeEscrowDomain } from './payments/evm/signatures.js';
16
- export type { SpendingAuthMessage } from './payments/evm/signatures.js';
13
+ export { DepositsClient, type DepositsClientConfig, type BuyerBalanceInfo } from './payments/evm/deposits-client.js';
14
+ export { ChannelsClient, type ChannelsClientConfig, type ChannelInfo, type AgentStats } from './payments/evm/channels-client.js';
15
+ export { IdentityClient, type IdentityClientConfig } from './payments/evm/identity-client.js';
16
+ export { StakingClient, type StakingClientConfig, type SellerAccountInfo } from './payments/evm/staking-client.js';
17
+ export { signData, verifySignature, signUtf8, verifyUtf8 } from './p2p/identity.js';
18
+ export { signSpendingAuth, signReserveAuth, signSetOperator, makeChannelsDomain, makeDepositsDomain, SPENDING_AUTH_TYPES, RESERVE_AUTH_TYPES, SET_OPERATOR_TYPES, computeMetadataHash, encodeMetadata, computeChannelId, ZERO_METADATA, ZERO_METADATA_HASH, } from './payments/evm/signatures.js';
19
+ export type { SpendingAuthMessage, ReserveAuthMessage, SetOperatorMessage, SpendingAuthMetadata } from './payments/evm/signatures.js';
17
20
  export { NatTraversal, type NatMapping, type NatTraversalResult } from './p2p/nat-traversal.js';
18
21
  export { BuyerPaymentManager } from './payments/buyer-payment-manager.js';
19
22
  export type { BuyerPaymentConfig } from './payments/buyer-payment-manager.js';
20
23
  export { SellerPaymentManager } from './payments/seller-payment-manager.js';
21
24
  export type { SellerPaymentConfig } from './payments/seller-payment-manager.js';
22
- export { SessionStore } from './payments/session-store.js';
23
- export type { StoredSession, StoredReceipt } from './payments/session-store.js';
25
+ export { ChannelStore } from './payments/channel-store.js';
26
+ export type { StoredChannel, StoredReceipt } from './payments/channel-store.js';
24
27
  export { getChainConfig, resolveChainConfig, DEFAULT_CHAIN_ID, CHAIN_CONFIGS } from './payments/chain-config.js';
25
28
  export type { ChainConfig } from './payments/chain-config.js';
26
29
  export { formatUsdc, parseUsdc } from './payments/usdc-utils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { AntseedNode, } from './node.js';
3
3
  // Types (re-export everything)
4
4
  export * from './types/index.js';
5
5
  // Submodule re-exports (commonly used)
6
- export { loadOrCreateIdentity, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
6
+ export { loadOrCreateIdentity, identityFromPrivateKeyHex, FileIdentityStore, hexToBytes, bytesToHex, } from './p2p/identity.js';
7
7
  export { DHTNode, DEFAULT_DHT_CONFIG } from './discovery/dht-node.js';
8
8
  export { OFFICIAL_BOOTSTRAP_NODES, mergeBootstrapNodes, toBootstrapConfig } from './discovery/bootstrap.js';
9
9
  export { WELL_KNOWN_SERVICE_CATEGORIES, WELL_KNOWN_SERVICE_API_PROTOCOLS, } from './discovery/peer-metadata.js';
@@ -11,13 +11,16 @@ export { MetadataServer } from './discovery/metadata-server.js';
11
11
  export { parsePublicAddress, MAX_PUBLIC_ADDRESS_LENGTH } from './discovery/public-address.js';
12
12
  export { MeteringStorage } from './metering/storage.js';
13
13
  export { BalanceManager } from './payments/balance-manager.js';
14
- export { BaseEscrowClient } from './payments/evm/escrow-client.js';
15
- export { identityToEvmWallet, identityToEvmAddress } from './payments/evm/keypair.js';
16
- export { signSpendingAuth, makeEscrowDomain } from './payments/evm/signatures.js';
14
+ export { DepositsClient } from './payments/evm/deposits-client.js';
15
+ export { ChannelsClient } from './payments/evm/channels-client.js';
16
+ export { IdentityClient } from './payments/evm/identity-client.js';
17
+ export { StakingClient } from './payments/evm/staking-client.js';
18
+ export { signData, verifySignature, signUtf8, verifyUtf8 } from './p2p/identity.js';
19
+ export { signSpendingAuth, signReserveAuth, signSetOperator, makeChannelsDomain, makeDepositsDomain, SPENDING_AUTH_TYPES, RESERVE_AUTH_TYPES, SET_OPERATOR_TYPES, computeMetadataHash, encodeMetadata, computeChannelId, ZERO_METADATA, ZERO_METADATA_HASH, } from './payments/evm/signatures.js';
17
20
  export { NatTraversal } from './p2p/nat-traversal.js';
18
21
  export { BuyerPaymentManager } from './payments/buyer-payment-manager.js';
19
22
  export { SellerPaymentManager } from './payments/seller-payment-manager.js';
20
- export { SessionStore } from './payments/session-store.js';
23
+ export { ChannelStore } from './payments/channel-store.js';
21
24
  export { getChainConfig, resolveChainConfig, DEFAULT_CHAIN_ID, CHAIN_CONFIGS } from './payments/chain-config.js';
22
25
  export { formatUsdc, parseUsdc } from './payments/usdc-utils.js';
23
26
  export { ProxyMux } from './proxy/proxy-mux.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EACL,WAAW,GAKZ,MAAM,WAAW,CAAC;AAInB,+BAA+B;AAC/B,cAAc,kBAAkB,CAAC;AAEjC,uCAAuC;AACvC,OAAO,EACL,oBAAoB,EAGpB,iBAAiB,EACjB,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GAIjC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAA6B,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA4B,MAAM,+BAA+B,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAElF,OAAO,EAAE,YAAY,EAA4C,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEjH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EACL,+BAA+B,EAC/B,2CAA2C,EAC3C,2CAA2C,EAC3C,uCAAuC,EACvC,8BAA8B,EAC9B,6CAA6C,EAC7C,6CAA6C,EAC7C,2CAA2C,EAC3C,4CAA4C,GAK7C,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,aAAa,EAA4B,MAAM,6BAA6B,CAAC;AAItF,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,0BAA0B;AAC1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACnG,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,oBAAoB,GACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,gBAAgB,EAChB,cAAc,GAGf,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export { ReceiptGenerator, buildSignaturePayload, calculateCost, type Signer } f
4
4
  export { ReceiptVerifier, type SignatureVerifier, type VerifierOptions } from './receipt-verifier.js';
5
5
  export { SessionTracker } from './session-tracker.js';
6
6
  export { UsageAggregator, type AggregationGranularity, type TimePeriod } from './usage-aggregator.js';
7
+ export { SellerSessionTracker, type SellerSessionSnapshot, type SellerSessionState, type SessionTrackerEvents, type SessionTrackerConfig } from './seller-session-tracker.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9K,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9K,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,sBAAsB,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -4,4 +4,5 @@ export { ReceiptGenerator, buildSignaturePayload, calculateCost } from './receip
4
4
  export { ReceiptVerifier } from './receipt-verifier.js';
5
5
  export { SessionTracker } from './session-tracker.js';
6
6
  export { UsageAggregator } from './usage-aggregator.js';
7
+ export { SellerSessionTracker } from './seller-session-tracker.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9K,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAgD,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAgD,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metering/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9K,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAe,MAAM,wBAAwB,CAAC;AAC7G,OAAO,EAAE,eAAe,EAAgD,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAgD,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAA6G,MAAM,6BAA6B,CAAC"}
@@ -1,16 +1,16 @@
1
1
  import type { ProviderType, TokenCount, UsageReceipt } from '../types/metering.js';
2
2
  /**
3
- * Interface for signing data with the seller's Ed25519 private key.
4
- * The actual implementation lives in the identity module (PRD-01).
3
+ * Interface for signing data with the seller's secp256k1 private key.
4
+ * The actual implementation lives in the identity module.
5
5
  */
6
6
  export interface Signer {
7
7
  /**
8
- * Sign a message with the seller's Ed25519 private key.
8
+ * Sign a message with the seller's secp256k1 private key.
9
9
  * @param message - UTF-8 string to sign
10
10
  * @returns Hex-encoded signature
11
11
  */
12
12
  sign(message: string): string;
13
- /** The seller's peer ID (Ed25519 public key hex) */
13
+ /** The seller's peer ID (EVM address hex, no 0x prefix) */
14
14
  peerId: string;
15
15
  }
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"receipt-generator.d.ts","sourceRoot":"","sources":["../../src/metering/receipt-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,MAAM,CAYtF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,+BAA+B,EAAE,MAAM,GAAG,MAAM,CAGlG;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM;IAI1B;;;;;;;;;;OAUG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,+BAA+B,EAAE,MAAM,GACtC,YAAY;CA0BhB"}
1
+ {"version":3,"file":"receipt-generator.d.ts","sourceRoot":"","sources":["../../src/metering/receipt-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,MAAM,CAYtF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,+BAA+B,EAAE,MAAM,GAAG,MAAM,CAGlG;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM;IAI1B;;;;;;;;;;OAUG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,EAClB,+BAA+B,EAAE,MAAM,GACtC,YAAY;CA0BhB"}
@@ -1,17 +1,17 @@
1
1
  import type { UsageReceipt, TokenCount, ReceiptVerification } from '../types/metering.js';
2
2
  /**
3
- * Interface for verifying Ed25519 signatures.
4
- * The actual implementation lives in the identity module (PRD-01).
3
+ * Interface for verifying secp256k1 signatures.
4
+ * The actual implementation lives in the identity module.
5
5
  */
6
6
  export interface SignatureVerifier {
7
7
  /**
8
- * Verify an Ed25519 signature.
8
+ * Verify a secp256k1 signature via ecrecover.
9
9
  * @param message - The original signed message (UTF-8 string)
10
10
  * @param signature - Hex-encoded signature
11
- * @param publicKeyHex - Signer's Ed25519 public key (hex)
11
+ * @param address - Signer's EVM address (hex, no 0x prefix)
12
12
  * @returns true if signature is valid
13
13
  */
14
- verify(message: string, signature: string, publicKeyHex: string): boolean;
14
+ verify(message: string, signature: string, address: string): boolean;
15
15
  }
16
16
  export interface VerifierOptions {
17
17
  /**
@@ -32,7 +32,7 @@ export declare class ReceiptVerifier {
32
32
  * Verify a receipt against the buyer's independent token estimate.
33
33
  *
34
34
  * Verification steps:
35
- * 1. Verify the Ed25519 signature using the seller's public key
35
+ * 1. Verify the secp256k1 signature using the seller's address
36
36
  * 2. Compare seller's token estimate with buyer's estimate
37
37
  * 3. Calculate percentage difference
38
38
  * 4. Flag as disputed if difference exceeds threshold
@@ -1 +1 @@
1
- {"version":3,"file":"receipt-verifier.d.ts","sourceRoot":"","sources":["../../src/metering/receipt-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1F;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3E;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAMD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAKpF;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,GAAG,mBAAmB;IAmC7E;;;;OAIG;IACH,MAAM,CAAC,6BAA6B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;CAKnE"}
1
+ {"version":3,"file":"receipt-verifier.d.ts","sourceRoot":"","sources":["../../src/metering/receipt-verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1F;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;CACtE;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,uBAAuB,EAAE,MAAM,CAAC;CACjC;AAMD;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAKpF;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,GAAG,mBAAmB;IAmC7E;;;;OAIG;IACH,MAAM,CAAC,6BAA6B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;CAKnE"}
@@ -16,7 +16,7 @@ export class ReceiptVerifier {
16
16
  * Verify a receipt against the buyer's independent token estimate.
17
17
  *
18
18
  * Verification steps:
19
- * 1. Verify the Ed25519 signature using the seller's public key
19
+ * 1. Verify the secp256k1 signature using the seller's address
20
20
  * 2. Compare seller's token estimate with buyer's estimate
21
21
  * 3. Calculate percentage difference
22
22
  * 4. Flag as disputed if difference exceeds threshold
@@ -0,0 +1,91 @@
1
+ import type { Identity } from '../p2p/identity.js';
2
+ import type { SerializedHttpRequest } from '../types/http.js';
3
+ import type { TokenCount } from '../types/metering.js';
4
+ import type { MeteringStorage } from './storage.js';
5
+ import type { ReceiptGenerator } from './receipt-generator.js';
6
+ export interface SellerSessionState {
7
+ sessionId: string;
8
+ sessionIdBytes: Uint8Array;
9
+ startedAt: number;
10
+ lastActivityAt: number;
11
+ totalRequests: number;
12
+ totalTokens: number;
13
+ totalLatencyMs: number;
14
+ totalCostCents: number;
15
+ provider: string;
16
+ settling?: boolean;
17
+ }
18
+ export interface SellerSessionSnapshot {
19
+ sessionId: string;
20
+ buyerPeerId: string;
21
+ provider: string;
22
+ startedAt: number;
23
+ lastActivityAt: number;
24
+ totalRequests: number;
25
+ totalTokens: number;
26
+ avgLatencyMs: number;
27
+ settling: boolean;
28
+ }
29
+ export interface SessionTrackerEvents {
30
+ onSessionUpdated(snapshot: SellerSessionSnapshot & {
31
+ buyerPeerId: string;
32
+ }): void;
33
+ onSessionFinalized(info: {
34
+ buyerPeerId: string;
35
+ sessionId: string;
36
+ reason: string;
37
+ }): void;
38
+ }
39
+ export interface SessionTrackerConfig {
40
+ settlementIdleMs?: number;
41
+ }
42
+ /**
43
+ * Tracks seller-side session lifecycle: session state, metering, receipts, and settlement.
44
+ *
45
+ * Extracted from AntseedNode to separate seller session concerns
46
+ * from core node orchestration.
47
+ */
48
+ export declare class SellerSessionTracker {
49
+ private readonly _identity;
50
+ private readonly _metering;
51
+ private readonly _receiptGenerator;
52
+ private readonly _config;
53
+ private readonly _events;
54
+ /** Per-buyer session tracking: buyerPeerId → seller session state */
55
+ private readonly _sessions;
56
+ private readonly _settlementTimers;
57
+ constructor(identity: Identity, metering: MeteringStorage | null, receiptGenerator: ReceiptGenerator | null, config: SessionTrackerConfig, events: SessionTrackerEvents);
58
+ getActiveSessions(): SellerSessionSnapshot[];
59
+ getActiveChannelCount(): number;
60
+ /**
61
+ * Get or create a seller session for a buyer.
62
+ * Updates lastActivityAt and provider on existing sessions.
63
+ */
64
+ getOrCreateSession(buyerPeerId: string, providerName: string): SellerSessionState;
65
+ estimateTokens(inputBytes: number, outputBytes: number): TokenCount;
66
+ recordMetering(input: {
67
+ buyerPeerId: string;
68
+ providerName: string;
69
+ pricing: {
70
+ inputUsdPerMillion: number;
71
+ outputUsdPerMillion: number;
72
+ };
73
+ request: SerializedHttpRequest;
74
+ statusCode: number;
75
+ latencyMs: number;
76
+ inputBytes: number;
77
+ outputBytes: number;
78
+ responseBody: Uint8Array;
79
+ /** Pre-computed usage from parseResponseUsage — avoids re-parsing the same body. */
80
+ providerUsage?: {
81
+ inputTokens: number;
82
+ outputTokens: number;
83
+ };
84
+ }): Promise<void>;
85
+ scheduleSettlementTimer(buyerPeerId: string): void;
86
+ finalizeSession(buyerPeerId: string, reason: string): Promise<void>;
87
+ finalizeAllSessions(reason: string): Promise<void>;
88
+ clearTimers(): void;
89
+ private _emitSessionUpdated;
90
+ }
91
+ //# sourceMappingURL=seller-session-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seller-session-tracker.d.ts","sourceRoot":"","sources":["../../src/metering/seller-session-tracker.ts"],"names":[],"mappings":"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"}