@antseed/node 0.2.27 → 0.2.28

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 +10 -23
  128. package/dist/payments/evm/identity-client.d.ts.map +1 -1
  129. package/dist/payments/evm/identity-client.js +43 -100
  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":"identity.d.ts","sourceRoot":"","sources":["../../src/p2p/identity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAQlC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,UAAU,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,0CAA0C;IAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,SAAS,CAAC,EAAE,MAAM;IAKxB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS9B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI1C;AAKD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiCvG;AAED,iEAAiE;AACjE,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,6CAA6C;AAC7C,wBAAsB,eAAe,CACnC,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAiBT"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/p2p/identity.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAiD,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAYlC,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/B,0CAA0C;IAC1C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,SAAS,CAAC,EAAE,MAAM;IAKxB,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAS9B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI1C;AAKD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAK/D;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,CAyBvG;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,UAAU,GACf,UAAU,CAOZ;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,UAAU,EACrB,IAAI,EAAE,UAAU,GACf,OAAO,CAUT;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAST"}
@@ -1,16 +1,19 @@
1
- import * as ed from "@noble/ed25519";
1
+ import { randomBytes } from "node:crypto";
2
2
  import { readFile, writeFile, mkdir } from "node:fs/promises";
3
3
  import { join } from "node:path";
4
4
  import { homedir } from "node:os";
5
- import { createPrivateKey, createPublicKey, sign as nodeSign, verify as nodeVerify, } from "node:crypto";
5
+ import { Wallet, hashMessage, getBytes, hexlify, verifyMessage } from "ethers";
6
6
  import { toPeerId } from "../types/peer.js";
7
7
  import { hexToBytes, bytesToHex } from "../utils/hex.js";
8
8
  export { hexToBytes, bytesToHex };
9
- /** Directory where identity keys are stored. */
9
+ /**
10
+ * Domain prefixes for signing contexts.
11
+ * Prevents cross-domain signature replay between different parts of the protocol.
12
+ */
13
+ const DOMAIN_DATA = new TextEncoder().encode("antseed-data-v1:");
14
+ const DOMAIN_MSG = "antseed-msg-v1:";
10
15
  const CONFIG_DIR = join(homedir(), ".antseed");
11
16
  const PRIVATE_KEY_FILE = "identity.key";
12
- const ED25519_PKCS8_SEED_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
13
- const ED25519_SPKI_PUBLIC_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
14
17
  /**
15
18
  * Stores identity private key as a hex file on disk (default behavior).
16
19
  */
@@ -37,76 +40,88 @@ export class FileIdentityStore {
37
40
  }
38
41
  /** Environment variable for passing identity hex from a parent process (e.g. desktop → CLI). */
39
42
  const IDENTITY_HEX_ENV = 'ANTSEED_IDENTITY_HEX';
43
+ export function identityFromPrivateKeyHex(hex) {
44
+ const privateKey = hexToBytes(hex);
45
+ const wallet = new Wallet('0x' + hex);
46
+ const peerId = toPeerId(wallet.address.slice(2).toLowerCase());
47
+ return { peerId, privateKey, wallet };
48
+ }
40
49
  /**
41
50
  * Load an existing identity or create and persist a new one.
42
51
  *
43
- * Accepts either a config directory path (legacy file-based storage)
44
- * or an IdentityStore instance for pluggable backends (e.g. keytar).
45
- *
46
- * If the ANTSEED_IDENTITY_HEX env var is set, it is used directly
47
- * (e.g. when the desktop app injects identity from the keychain).
52
+ * The identity is a secp256k1 private key stored as 64 hex chars.
53
+ * The peerId is derived as the EVM address (lowercase, no 0x prefix).
48
54
  */
49
55
  export async function loadOrCreateIdentity(configDirOrStore) {
50
56
  // Check for identity injected via environment (desktop → CLI child process).
51
- // The CLI clears the variable after reading to limit exposure in /proc/<pid>/environ.
52
57
  const envHex = process.env[IDENTITY_HEX_ENV]?.trim();
53
58
  if (envHex && envHex.length === 64) {
54
59
  delete process.env[IDENTITY_HEX_ENV];
55
- const privateKey = hexToBytes(envHex);
56
- const publicKey = await ed.getPublicKeyAsync(privateKey);
57
- const peerId = toPeerId(bytesToHex(publicKey));
58
- return { peerId, privateKey, publicKey };
60
+ return identityFromPrivateKeyHex(envHex);
59
61
  }
60
62
  const store = configDirOrStore === undefined || typeof configDirOrStore === 'string'
61
63
  ? new FileIdentityStore(configDirOrStore)
62
64
  : configDirOrStore;
63
65
  const existingHex = await store.load();
64
- if (existingHex) {
65
- const privateKey = hexToBytes(existingHex);
66
- const publicKey = await ed.getPublicKeyAsync(privateKey);
67
- const peerId = toPeerId(bytesToHex(publicKey));
68
- return { peerId, privateKey, publicKey };
66
+ if (existingHex && existingHex.length === 64) {
67
+ return identityFromPrivateKeyHex(existingHex);
69
68
  }
70
- // Key doesn't exist — generate a new one.
71
- const privateKey = ed.utils.randomPrivateKey();
72
- const publicKey = await ed.getPublicKeyAsync(privateKey);
73
- const peerId = toPeerId(bytesToHex(publicKey));
74
- await store.save(bytesToHex(privateKey));
75
- return { peerId, privateKey, publicKey };
69
+ // Key doesn't exist — generate a new secp256k1 private key.
70
+ const privateKey = randomBytes(32);
71
+ const hex = bytesToHex(privateKey);
72
+ await store.save(hex);
73
+ return identityFromPrivateKeyHex(hex);
76
74
  }
77
- /** Sign arbitrary data with the local identity's private key. */
78
- export async function signData(privateKey, data) {
79
- return ed.signAsync(data, privateKey);
75
+ /**
76
+ * Sign arbitrary binary data with the identity's secp256k1 private key.
77
+ * Domain-tagged with "antseed-data-v1:" prefix to prevent cross-domain replay.
78
+ * Uses EIP-191 personal_sign. Returns a 65-byte signature (r + s + v).
79
+ */
80
+ export function signData(wallet, data) {
81
+ const tagged = new Uint8Array(DOMAIN_DATA.length + data.length);
82
+ tagged.set(DOMAIN_DATA, 0);
83
+ tagged.set(data, DOMAIN_DATA.length);
84
+ const digest = hashMessage(tagged);
85
+ const sig = wallet.signingKey.sign(digest);
86
+ return getBytes(sig.serialized);
80
87
  }
81
- /** Verify a signature from a remote peer. */
82
- export async function verifySignature(publicKey, signature, data) {
83
- return ed.verifyAsync(signature, data, publicKey);
88
+ /**
89
+ * Verify a binary data signature from a remote peer using ecrecover.
90
+ * The expectedAddress is the 40-char hex peerId (no 0x prefix).
91
+ */
92
+ export function verifySignature(expectedAddress, signature, data) {
93
+ try {
94
+ const tagged = new Uint8Array(DOMAIN_DATA.length + data.length);
95
+ tagged.set(DOMAIN_DATA, 0);
96
+ tagged.set(data, DOMAIN_DATA.length);
97
+ const recovered = verifyMessage(tagged, hexlify(signature));
98
+ return recovered.slice(2).toLowerCase() === expectedAddress.toLowerCase();
99
+ }
100
+ catch {
101
+ return false;
102
+ }
84
103
  }
85
104
  /**
86
- * Sign a UTF-8 message and return a hex-encoded Ed25519 signature.
87
- * Uses Node's crypto implementation for synchronous signing.
105
+ * Sign a UTF-8 message and return a hex-encoded secp256k1 signature (130 hex chars = 65 bytes).
106
+ * Domain-tagged with "antseed-msg-v1:" prefix to prevent cross-domain replay.
88
107
  */
89
- export function signUtf8Ed25519(privateKeySeed, message) {
90
- const key = createPrivateKey({
91
- key: Buffer.concat([ED25519_PKCS8_SEED_PREFIX, Buffer.from(privateKeySeed)]),
92
- format: "der",
93
- type: "pkcs8",
94
- });
95
- const signature = nodeSign(null, Buffer.from(message, "utf-8"), key);
96
- return signature.toString("hex");
108
+ export function signUtf8(wallet, message) {
109
+ const tagged = DOMAIN_MSG + message;
110
+ const msgBytes = new TextEncoder().encode(tagged);
111
+ const digest = hashMessage(msgBytes);
112
+ const sig = wallet.signingKey.sign(digest);
113
+ return sig.serialized.slice(2);
97
114
  }
98
115
  /**
99
- * Verify a UTF-8 message against a hex-encoded Ed25519 signature.
116
+ * Verify a UTF-8 message against a hex-encoded secp256k1 signature.
117
+ * Returns true if the recovered address matches the expected address.
100
118
  */
101
- export function verifyUtf8Ed25519(publicKeyHex, message, signatureHex) {
119
+ export function verifyUtf8(address, message, signatureHex) {
102
120
  try {
103
- const publicKeyBytes = hexToBytes(publicKeyHex);
104
- const key = createPublicKey({
105
- key: Buffer.concat([ED25519_SPKI_PUBLIC_PREFIX, Buffer.from(publicKeyBytes)]),
106
- format: "der",
107
- type: "spki",
108
- });
109
- return nodeVerify(null, Buffer.from(message, "utf-8"), key, Buffer.from(signatureHex, "hex"));
121
+ const tagged = DOMAIN_MSG + message;
122
+ const msgBytes = new TextEncoder().encode(tagged);
123
+ const recovered = verifyMessage(msgBytes, '0x' + signatureHex);
124
+ return recovered.slice(2).toLowerCase() === address.toLowerCase();
110
125
  }
111
126
  catch {
112
127
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/p2p/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/p2p/identity.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { type Identity, loadOrCreateIdentity, signData, verifySignature, hexToBytes, bytesToHex, signUtf8Ed25519, verifyUtf8Ed25519 } from './identity.js';
1
+ export { type Identity, type IdentityStore, FileIdentityStore, loadOrCreateIdentity, identityFromPrivateKeyHex, signData, verifySignature, hexToBytes, bytesToHex, signUtf8, verifyUtf8 } from './identity.js';
2
2
  export { encodeFrame, decodeFrame, FrameDecoder, MessageMux, type MessageHandler } from './message-protocol.js';
3
3
  export { ConnectionManager, PeerConnection, type PeerEndpoint } from './connection-manager.js';
4
4
  export { type IceServer, type IceConfig, getDefaultIceConfig, buildIceConfig, needsTurnFallback, extractCandidateType } from './ice-config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC3J,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/I,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxL,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/M,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/I,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxL,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC9D,cAAc,oBAAoB,CAAC"}
package/dist/p2p/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { loadOrCreateIdentity, signData, verifySignature, hexToBytes, bytesToHex, signUtf8Ed25519, verifyUtf8Ed25519 } from './identity.js';
1
+ export { FileIdentityStore, loadOrCreateIdentity, identityFromPrivateKeyHex, signData, verifySignature, hexToBytes, bytesToHex, signUtf8, verifyUtf8 } from './identity.js';
2
2
  export { encodeFrame, decodeFrame, FrameDecoder, MessageMux } from './message-protocol.js';
3
3
  export { ConnectionManager, PeerConnection } from './connection-manager.js';
4
4
  export { getDefaultIceConfig, buildIceConfig, needsTurnFallback, extractCandidateType } from './ice-config.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,oBAAoB,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAC3J,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAkC,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/I,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAiD,wBAAwB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxL,OAAO,EAAE,YAAY,EAA4C,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqC,iBAAiB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/M,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAuB,MAAM,uBAAuB,CAAC;AAChH,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAkC,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC/I,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAiD,wBAAwB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACxL,OAAO,EAAE,YAAY,EAA4C,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,cAAc,oBAAoB,CAAC"}
@@ -1,14 +1,10 @@
1
- import type { SpendingAuthPayload, AuthAckPayload, SellerReceiptPayload, BuyerAckPayload, TopUpRequestPayload, PaymentRequiredPayload } from '../types/protocol.js';
1
+ import type { SpendingAuthPayload, AuthAckPayload, PaymentRequiredPayload, NeedAuthPayload } from '../types/protocol.js';
2
2
  export declare function encodeSpendingAuth(payload: SpendingAuthPayload): Uint8Array;
3
3
  export declare function encodeAuthAck(payload: AuthAckPayload): Uint8Array;
4
- export declare function encodeSellerReceipt(payload: SellerReceiptPayload): Uint8Array;
5
- export declare function encodeBuyerAck(payload: BuyerAckPayload): Uint8Array;
6
- export declare function encodeTopUpRequest(payload: TopUpRequestPayload): Uint8Array;
4
+ export declare function encodePaymentRequired(payload: PaymentRequiredPayload): Uint8Array;
5
+ export declare function encodeNeedAuth(payload: NeedAuthPayload): Uint8Array;
7
6
  export declare function decodeSpendingAuth(data: Uint8Array): SpendingAuthPayload;
8
7
  export declare function decodeAuthAck(data: Uint8Array): AuthAckPayload;
9
- export declare function decodeSellerReceipt(data: Uint8Array): SellerReceiptPayload;
10
- export declare function decodeBuyerAck(data: Uint8Array): BuyerAckPayload;
11
- export declare function decodeTopUpRequest(data: Uint8Array): TopUpRequestPayload;
12
- export declare function encodePaymentRequired(payload: PaymentRequiredPayload): Uint8Array;
13
8
  export declare function decodePaymentRequired(data: Uint8Array): PaymentRequiredPayload;
9
+ export declare function decodeNeedAuth(data: Uint8Array): NeedAuthPayload;
14
10
  //# sourceMappingURL=payment-codec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payment-codec.d.ts","sourceRoot":"","sources":["../../src/p2p/payment-codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAsC9B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAE3E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAEjE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAE7E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAEnE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAE3E;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAYxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAM9D;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,CAS1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAQhE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAQxE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CAEjF;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,sBAAsB,CAY9E"}
1
+ {"version":3,"file":"payment-codec.d.ts","sourceRoot":"","sources":["../../src/p2p/payment-codec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AA8B9B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAE3E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,UAAU,CAEjE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CAEjF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAEnE;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAcxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,CAK9D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,sBAAsB,CAU9E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAQhE"}
@@ -19,13 +19,6 @@ function requireString(obj, field) {
19
19
  }
20
20
  return val;
21
21
  }
22
- function requireNumber(obj, field) {
23
- const val = obj[field];
24
- if (typeof val !== 'number' || !Number.isFinite(val)) {
25
- throw new Error(`Missing or invalid number field: ${field}`);
26
- }
27
- return val;
28
- }
29
22
  // --- Encoders ---
30
23
  export function encodeSpendingAuth(payload) {
31
24
  return encoder.encode(JSON.stringify(payload));
@@ -33,73 +26,41 @@ export function encodeSpendingAuth(payload) {
33
26
  export function encodeAuthAck(payload) {
34
27
  return encoder.encode(JSON.stringify(payload));
35
28
  }
36
- export function encodeSellerReceipt(payload) {
37
- return encoder.encode(JSON.stringify(payload));
38
- }
39
- export function encodeBuyerAck(payload) {
29
+ export function encodePaymentRequired(payload) {
40
30
  return encoder.encode(JSON.stringify(payload));
41
31
  }
42
- export function encodeTopUpRequest(payload) {
32
+ export function encodeNeedAuth(payload) {
43
33
  return encoder.encode(JSON.stringify(payload));
44
34
  }
45
35
  // --- Decoders (with runtime validation) ---
46
36
  export function decodeSpendingAuth(data) {
47
37
  const obj = parseJson(data);
48
- return {
49
- sessionId: requireString(obj, 'sessionId'),
50
- maxAmountUsdc: requireString(obj, 'maxAmountUsdc'),
51
- nonce: requireNumber(obj, 'nonce'),
52
- deadline: requireNumber(obj, 'deadline'),
53
- buyerSig: requireString(obj, 'buyerSig'),
54
- buyerEvmAddr: requireString(obj, 'buyerEvmAddr'),
55
- previousConsumption: requireString(obj, 'previousConsumption'),
56
- previousSessionId: requireString(obj, 'previousSessionId'),
38
+ const result = {
39
+ channelId: requireString(obj, 'channelId'),
40
+ cumulativeAmount: requireString(obj, 'cumulativeAmount'),
41
+ metadataHash: requireString(obj, 'metadataHash'),
42
+ metadata: typeof obj.metadata === 'string' ? obj.metadata : '',
43
+ spendingAuthSig: requireString(obj, 'spendingAuthSig'),
57
44
  };
45
+ // Optional reserve params (only on initial auth)
46
+ if (typeof obj.reserveSalt === 'string')
47
+ result.reserveSalt = obj.reserveSalt;
48
+ if (typeof obj.reserveMaxAmount === 'string')
49
+ result.reserveMaxAmount = obj.reserveMaxAmount;
50
+ if (typeof obj.reserveDeadline === 'number')
51
+ result.reserveDeadline = obj.reserveDeadline;
52
+ return result;
58
53
  }
59
54
  export function decodeAuthAck(data) {
60
55
  const obj = parseJson(data);
61
56
  return {
62
- sessionId: requireString(obj, 'sessionId'),
63
- nonce: requireNumber(obj, 'nonce'),
57
+ channelId: requireString(obj, 'channelId'),
64
58
  };
65
59
  }
66
- export function decodeSellerReceipt(data) {
67
- const obj = parseJson(data);
68
- return {
69
- sessionId: requireString(obj, 'sessionId'),
70
- runningTotal: requireString(obj, 'runningTotal'),
71
- requestCount: requireNumber(obj, 'requestCount'),
72
- responseHash: requireString(obj, 'responseHash'),
73
- sellerSig: requireString(obj, 'sellerSig'),
74
- };
75
- }
76
- export function decodeBuyerAck(data) {
77
- const obj = parseJson(data);
78
- return {
79
- sessionId: requireString(obj, 'sessionId'),
80
- runningTotal: requireString(obj, 'runningTotal'),
81
- requestCount: requireNumber(obj, 'requestCount'),
82
- buyerSig: requireString(obj, 'buyerSig'),
83
- };
84
- }
85
- export function decodeTopUpRequest(data) {
86
- const obj = parseJson(data);
87
- return {
88
- sessionId: requireString(obj, 'sessionId'),
89
- currentUsed: requireString(obj, 'currentUsed'),
90
- currentMax: requireString(obj, 'currentMax'),
91
- requestedAdditional: requireString(obj, 'requestedAdditional'),
92
- };
93
- }
94
- export function encodePaymentRequired(payload) {
95
- return encoder.encode(JSON.stringify(payload));
96
- }
97
60
  export function decodePaymentRequired(data) {
98
61
  const obj = parseJson(data);
99
62
  const result = {
100
- sellerEvmAddr: requireString(obj, 'sellerEvmAddr'),
101
- tokenRate: requireString(obj, 'tokenRate'),
102
- firstSignCap: requireString(obj, 'firstSignCap'),
63
+ minBudgetPerRequest: requireString(obj, 'minBudgetPerRequest'),
103
64
  suggestedAmount: requireString(obj, 'suggestedAmount'),
104
65
  requestId: requireString(obj, 'requestId'),
105
66
  };
@@ -109,4 +70,13 @@ export function decodePaymentRequired(data) {
109
70
  result.outputUsdPerMillion = obj.outputUsdPerMillion;
110
71
  return result;
111
72
  }
73
+ export function decodeNeedAuth(data) {
74
+ const obj = parseJson(data);
75
+ return {
76
+ channelId: requireString(obj, 'channelId'),
77
+ requiredCumulativeAmount: requireString(obj, 'requiredCumulativeAmount'),
78
+ currentAcceptedCumulative: requireString(obj, 'currentAcceptedCumulative'),
79
+ deposit: requireString(obj, 'deposit'),
80
+ };
81
+ }
112
82
  //# sourceMappingURL=payment-codec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payment-codec.js","sourceRoot":"","sources":["../../src/p2p/payment-codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment-codec.js","sourceRoot":"","sources":["../../src/p2p/payment-codec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { PeerConnection } from './connection-manager.js';
2
- import type { SpendingAuthPayload, AuthAckPayload, SellerReceiptPayload, BuyerAckPayload, TopUpRequestPayload, PaymentRequiredPayload } from '../types/protocol.js';
2
+ import type { SpendingAuthPayload, AuthAckPayload, PaymentRequiredPayload, NeedAuthPayload } from '../types/protocol.js';
3
3
  import type { FramedMessage } from '../types/protocol.js';
4
4
  export type PaymentMessageHandler<T> = (payload: T) => void | Promise<void>;
5
5
  /**
@@ -12,23 +12,17 @@ export declare class PaymentMux {
12
12
  private _messageIdCounter;
13
13
  private _onSpendingAuth?;
14
14
  private _onAuthAck?;
15
- private _onSellerReceipt?;
16
- private _onBuyerAck?;
17
- private _onTopUpRequest?;
18
15
  private _onPaymentRequired?;
16
+ private _onNeedAuth?;
19
17
  constructor(connection: PeerConnection);
20
18
  onSpendingAuth(handler: PaymentMessageHandler<SpendingAuthPayload>): void;
21
19
  onAuthAck(handler: PaymentMessageHandler<AuthAckPayload>): void;
22
- onSellerReceipt(handler: PaymentMessageHandler<SellerReceiptPayload>): void;
23
- onBuyerAck(handler: PaymentMessageHandler<BuyerAckPayload>): void;
24
- onTopUpRequest(handler: PaymentMessageHandler<TopUpRequestPayload>): void;
25
20
  onPaymentRequired(handler: PaymentMessageHandler<PaymentRequiredPayload>): void;
21
+ onNeedAuth(handler: PaymentMessageHandler<NeedAuthPayload>): void;
26
22
  sendSpendingAuth(payload: SpendingAuthPayload): void;
27
23
  sendAuthAck(payload: AuthAckPayload): void;
28
- sendSellerReceipt(payload: SellerReceiptPayload): void;
29
- sendBuyerAck(payload: BuyerAckPayload): void;
30
- sendTopUpRequest(payload: TopUpRequestPayload): void;
31
24
  sendPaymentRequired(payload: PaymentRequiredPayload): void;
25
+ sendNeedAuth(payload: NeedAuthPayload): void;
32
26
  /**
33
27
  * Returns true if this frame is a payment message and was handled.
34
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"payment-mux.d.ts","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAa1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,iBAAiB,CAAK;IAG9B,OAAO,CAAC,eAAe,CAAC,CAA6C;IACrE,OAAO,CAAC,UAAU,CAAC,CAAwC;IAC3D,OAAO,CAAC,gBAAgB,CAAC,CAA8C;IACvE,OAAO,CAAC,WAAW,CAAC,CAAyC;IAC7D,OAAO,CAAC,eAAe,CAAC,CAA6C;IACrE,OAAO,CAAC,kBAAkB,CAAC,CAAgD;gBAE/D,UAAU,EAAE,cAAc;IAKtC,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAGzE,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI;IAG/D,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAG3E,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,eAAe,CAAC,GAAG,IAAI;IAGjE,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAGzE,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAK/E,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAGpD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAG1C,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAGtD,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAG5C,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAGpD,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAK1D;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BzD,mEAAmE;IACnE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9C,OAAO,CAAC,KAAK;CASd"}
1
+ {"version":3,"file":"payment-mux.d.ts","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAW1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,iBAAiB,CAAK;IAG9B,OAAO,CAAC,eAAe,CAAC,CAA6C;IACrE,OAAO,CAAC,UAAU,CAAC,CAAwC;IAC3D,OAAO,CAAC,kBAAkB,CAAC,CAAgD;IAC3E,OAAO,CAAC,WAAW,CAAC,CAAyC;gBAEjD,UAAU,EAAE,cAAc;IAKtC,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAGzE,SAAS,CAAC,OAAO,EAAE,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAI;IAG/D,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAG/E,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,eAAe,CAAC,GAAG,IAAI;IAKjE,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAGpD,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAG1C,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAG1D,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAK5C;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBzD,mEAAmE;IACnE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9C,OAAO,CAAC,KAAK;CASd"}
@@ -5,10 +5,8 @@ import { debugLog } from '../utils/debug.js';
5
5
  const MESSAGE_TYPE_NAME = {
6
6
  [MessageType.SpendingAuth]: 'SpendingAuth',
7
7
  [MessageType.AuthAck]: 'AuthAck',
8
- [MessageType.SellerReceipt]: 'SellerReceipt',
9
- [MessageType.BuyerAck]: 'BuyerAck',
10
- [MessageType.TopUpRequest]: 'TopUpRequest',
11
8
  [MessageType.PaymentRequired]: 'PaymentRequired',
9
+ [MessageType.NeedAuth]: 'NeedAuth',
12
10
  };
13
11
  /**
14
12
  * Multiplexes payment messages over a PeerConnection.
@@ -21,10 +19,8 @@ export class PaymentMux {
21
19
  // Handler registrations
22
20
  _onSpendingAuth;
23
21
  _onAuthAck;
24
- _onSellerReceipt;
25
- _onBuyerAck;
26
- _onTopUpRequest;
27
22
  _onPaymentRequired;
23
+ _onNeedAuth;
28
24
  constructor(connection) {
29
25
  this._connection = connection;
30
26
  }
@@ -35,18 +31,12 @@ export class PaymentMux {
35
31
  onAuthAck(handler) {
36
32
  this._onAuthAck = handler;
37
33
  }
38
- onSellerReceipt(handler) {
39
- this._onSellerReceipt = handler;
40
- }
41
- onBuyerAck(handler) {
42
- this._onBuyerAck = handler;
43
- }
44
- onTopUpRequest(handler) {
45
- this._onTopUpRequest = handler;
46
- }
47
34
  onPaymentRequired(handler) {
48
35
  this._onPaymentRequired = handler;
49
36
  }
37
+ onNeedAuth(handler) {
38
+ this._onNeedAuth = handler;
39
+ }
50
40
  // --- Sending ---
51
41
  sendSpendingAuth(payload) {
52
42
  this._send(MessageType.SpendingAuth, codec.encodeSpendingAuth(payload));
@@ -54,18 +44,12 @@ export class PaymentMux {
54
44
  sendAuthAck(payload) {
55
45
  this._send(MessageType.AuthAck, codec.encodeAuthAck(payload));
56
46
  }
57
- sendSellerReceipt(payload) {
58
- this._send(MessageType.SellerReceipt, codec.encodeSellerReceipt(payload));
59
- }
60
- sendBuyerAck(payload) {
61
- this._send(MessageType.BuyerAck, codec.encodeBuyerAck(payload));
62
- }
63
- sendTopUpRequest(payload) {
64
- this._send(MessageType.TopUpRequest, codec.encodeTopUpRequest(payload));
65
- }
66
47
  sendPaymentRequired(payload) {
67
48
  this._send(MessageType.PaymentRequired, codec.encodePaymentRequired(payload));
68
49
  }
50
+ sendNeedAuth(payload) {
51
+ this._send(MessageType.NeedAuth, codec.encodeNeedAuth(payload));
52
+ }
69
53
  // --- Receiving ---
70
54
  /**
71
55
  * Returns true if this frame is a payment message and was handled.
@@ -82,18 +66,12 @@ export class PaymentMux {
82
66
  case MessageType.AuthAck:
83
67
  await this._onAuthAck?.(codec.decodeAuthAck(frame.payload));
84
68
  return true;
85
- case MessageType.SellerReceipt:
86
- await this._onSellerReceipt?.(codec.decodeSellerReceipt(frame.payload));
87
- return true;
88
- case MessageType.BuyerAck:
89
- await this._onBuyerAck?.(codec.decodeBuyerAck(frame.payload));
90
- return true;
91
- case MessageType.TopUpRequest:
92
- await this._onTopUpRequest?.(codec.decodeTopUpRequest(frame.payload));
93
- return true;
94
69
  case MessageType.PaymentRequired:
95
70
  await this._onPaymentRequired?.(codec.decodePaymentRequired(frame.payload));
96
71
  return true;
72
+ case MessageType.NeedAuth:
73
+ await this._onNeedAuth?.(codec.decodeNeedAuth(frame.payload));
74
+ return true;
97
75
  default:
98
76
  return false;
99
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"payment-mux.js","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASnD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,iBAAiB,GAA2B;IAChD,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,cAAc;IAC1C,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS;IAChC,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,eAAe;IAC5C,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,UAAU;IAClC,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,cAAc;IAC1C,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,iBAAiB;CACjD,CAAC;AAIF;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACb,WAAW,CAAiB;IAC5B,iBAAiB,GAAG,CAAC,CAAC;IAE9B,wBAAwB;IAChB,eAAe,CAA8C;IAC7D,UAAU,CAAyC;IACnD,gBAAgB,CAA+C;IAC/D,WAAW,CAA0C;IACrD,eAAe,CAA8C;IAC7D,kBAAkB,CAAiD;IAE3E,YAAY,UAA0B;QACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,+BAA+B;IAC/B,cAAc,CAAC,OAAmD;QAChE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IACD,SAAS,CAAC,OAA8C;QACtD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;IAC5B,CAAC;IACD,eAAe,CAAC,OAAoD;QAClE,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;IAClC,CAAC;IACD,UAAU,CAAC,OAA+C;QACxD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;IAC7B,CAAC;IACD,cAAc,CAAC,OAAmD;QAChE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;IACjC,CAAC;IACD,iBAAiB,CAAC,OAAsD;QACtE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;IACpC,CAAC;IAED,kBAAkB;IAClB,gBAAgB,CAAC,OAA4B;QAC3C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,WAAW,CAAC,OAAuB;QACjC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,iBAAiB,CAAC,OAA6B;QAC7C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,YAAY,CAAC,OAAwB;QACnC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IACD,gBAAgB,CAAC,OAA4B;QAC3C,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IACD,mBAAmB,CAAC,OAA+B;QACjD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,oBAAoB;IACpB;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAoB;QACpC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QACxB,QAAQ,CAAC,uBAAuB,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QACnE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,WAAW,CAAC,YAAY;gBAC3B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC;YACd,KAAK,WAAW,CAAC,OAAO;gBACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,KAAK,WAAW,CAAC,aAAa;gBAC5B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxE,OAAO,IAAI,CAAC;YACd,KAAK,WAAW,CAAC,QAAQ;gBACvB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACd,KAAK,WAAW,CAAC,YAAY;gBAC3B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACtE,OAAO,IAAI,CAAC;YACd,KAAK,WAAW,CAAC,eAAe;gBAC9B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5E,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAClC,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,IAAiB,EAAE,OAAmB;QAClD,QAAQ,CAAC,uBAAuB,iBAAiB,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;QAC5G,MAAM,KAAK,GAAG,WAAW,CAAC;YACxB,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,UAAU;YAChD,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"payment-mux.js","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import type { WalletInfo, Transaction, TransactionType } from './types.js';
2
2
  export interface UnifiedBalance {
3
3
  cryptoUSDC: number;
4
- inEscrowUSDC: number;
4
+ inDepositsUSDC: number;
5
5
  totalUSD: number;
6
6
  }
7
7
  export declare class BalanceManager {
8
8
  private transactions;
9
- getBalance(walletInfo: WalletInfo | null, inEscrowUSDC: number): UnifiedBalance;
9
+ getBalance(walletInfo: WalletInfo | null, inDepositsUSDC: number): UnifiedBalance;
10
10
  recordTransaction(tx: Transaction): void;
11
11
  getTransactionHistory(filter?: TransactionType, limit?: number, offset?: number): Transaction[];
12
12
  getTotalEarnings(since?: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"balance-manager.d.ts","sourceRoot":"","sources":["../../src/payments/balance-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAqB;IAEzC,UAAU,CACR,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GACnB,cAAc;IAWjB,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIxC,qBAAqB,CACnB,MAAM,CAAC,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,EAAE;IAYhB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAOxC,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAOlC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7C"}
1
+ {"version":3,"file":"balance-manager.d.ts","sourceRoot":"","sources":["../../src/payments/balance-manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAqB;IAEzC,UAAU,CACR,UAAU,EAAE,UAAU,GAAG,IAAI,EAC7B,cAAc,EAAE,MAAM,GACrB,cAAc;IAWjB,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIxC,qBAAqB,CACnB,MAAM,CAAC,EAAE,eAAe,EACxB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,EAAE;IAYhB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAOxC,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAOlC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAS7C"}
@@ -2,12 +2,12 @@ import { readFile, writeFile, mkdir } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  export class BalanceManager {
4
4
  transactions = [];
5
- getBalance(walletInfo, inEscrowUSDC) {
5
+ getBalance(walletInfo, inDepositsUSDC) {
6
6
  const cryptoUSDC = walletInfo ? parseFloat(walletInfo.balanceUSDC) : 0;
7
- const totalUSD = cryptoUSDC + inEscrowUSDC;
7
+ const totalUSD = cryptoUSDC + inDepositsUSDC;
8
8
  return {
9
9
  cryptoUSDC,
10
- inEscrowUSDC,
10
+ inDepositsUSDC,
11
11
  totalUSD,
12
12
  };
13
13
  }
@@ -25,13 +25,13 @@ export class BalanceManager {
25
25
  }
26
26
  getTotalEarnings(since) {
27
27
  return this.transactions
28
- .filter((tx) => tx.type === 'escrow_release')
28
+ .filter((tx) => tx.type === 'deposit_release')
29
29
  .filter((tx) => (since !== undefined ? tx.timestamp >= since : true))
30
30
  .reduce((sum, tx) => sum + tx.amountUSD, 0);
31
31
  }
32
32
  getTotalSpending(since) {
33
33
  return this.transactions
34
- .filter((tx) => tx.type === 'escrow_lock')
34
+ .filter((tx) => tx.type === 'deposit_lock')
35
35
  .filter((tx) => (since !== undefined ? tx.timestamp >= since : true))
36
36
  .reduce((sum, tx) => sum + tx.amountUSD, 0);
37
37
  }