@antseed/node 0.2.26 → 0.2.27

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 (111) hide show
  1. package/README.md +74 -1
  2. package/dist/discovery/announcer.d.ts +2 -0
  3. package/dist/discovery/announcer.d.ts.map +1 -1
  4. package/dist/discovery/announcer.js +10 -6
  5. package/dist/discovery/announcer.js.map +1 -1
  6. package/dist/discovery/index.d.ts +0 -1
  7. package/dist/discovery/index.d.ts.map +1 -1
  8. package/dist/discovery/index.js +0 -1
  9. package/dist/discovery/index.js.map +1 -1
  10. package/dist/discovery/reputation-verifier.d.ts +7 -4
  11. package/dist/discovery/reputation-verifier.d.ts.map +1 -1
  12. package/dist/discovery/reputation-verifier.js +33 -9
  13. package/dist/discovery/reputation-verifier.js.map +1 -1
  14. package/dist/index.d.ts +12 -3
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +6 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/node.d.ts +60 -33
  19. package/dist/node.d.ts.map +1 -1
  20. package/dist/node.js +640 -324
  21. package/dist/node.js.map +1 -1
  22. package/dist/p2p/connection-manager.d.ts.map +1 -1
  23. package/dist/p2p/connection-manager.js +6 -0
  24. package/dist/p2p/connection-manager.js.map +1 -1
  25. package/dist/p2p/identity.d.ts +27 -3
  26. package/dist/p2p/identity.d.ts.map +1 -1
  27. package/dist/p2p/identity.js +52 -13
  28. package/dist/p2p/identity.js.map +1 -1
  29. package/dist/p2p/index.d.ts +0 -2
  30. package/dist/p2p/index.d.ts.map +1 -1
  31. package/dist/p2p/index.js +0 -2
  32. package/dist/p2p/index.js.map +1 -1
  33. package/dist/p2p/payment-codec.d.ts +7 -13
  34. package/dist/p2p/payment-codec.d.ts.map +1 -1
  35. package/dist/p2p/payment-codec.js +32 -50
  36. package/dist/p2p/payment-codec.js.map +1 -1
  37. package/dist/p2p/payment-mux.d.ts +11 -20
  38. package/dist/p2p/payment-mux.d.ts.map +1 -1
  39. package/dist/p2p/payment-mux.js +36 -52
  40. package/dist/p2p/payment-mux.js.map +1 -1
  41. package/dist/payments/buyer-payment-manager.d.ts +34 -93
  42. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  43. package/dist/payments/buyer-payment-manager.js +184 -189
  44. package/dist/payments/buyer-payment-manager.js.map +1 -1
  45. package/dist/payments/chain-config.d.ts +38 -0
  46. package/dist/payments/chain-config.d.ts.map +1 -0
  47. package/dist/payments/chain-config.js +60 -0
  48. package/dist/payments/chain-config.js.map +1 -0
  49. package/dist/payments/evm/ants-token-client.d.ts +16 -0
  50. package/dist/payments/evm/ants-token-client.d.ts.map +1 -0
  51. package/dist/payments/evm/ants-token-client.js +66 -0
  52. package/dist/payments/evm/ants-token-client.js.map +1 -0
  53. package/dist/payments/evm/base-evm-client.d.ts +13 -0
  54. package/dist/payments/evm/base-evm-client.d.ts.map +1 -0
  55. package/dist/payments/evm/base-evm-client.js +38 -0
  56. package/dist/payments/evm/base-evm-client.js.map +1 -0
  57. package/dist/payments/evm/emissions-client.d.ts +23 -0
  58. package/dist/payments/evm/emissions-client.d.ts.map +1 -0
  59. package/dist/payments/evm/emissions-client.js +84 -0
  60. package/dist/payments/evm/emissions-client.js.map +1 -0
  61. package/dist/payments/evm/escrow-client.d.ts +57 -36
  62. package/dist/payments/evm/escrow-client.d.ts.map +1 -1
  63. package/dist/payments/evm/escrow-client.js +200 -93
  64. package/dist/payments/evm/escrow-client.js.map +1 -1
  65. package/dist/payments/evm/identity-client.d.ts +34 -0
  66. package/dist/payments/evm/identity-client.d.ts.map +1 -0
  67. package/dist/payments/evm/identity-client.js +125 -0
  68. package/dist/payments/evm/identity-client.js.map +1 -0
  69. package/dist/payments/evm/signatures.d.ts +18 -5
  70. package/dist/payments/evm/signatures.d.ts.map +1 -1
  71. package/dist/payments/evm/signatures.js +21 -12
  72. package/dist/payments/evm/signatures.js.map +1 -1
  73. package/dist/payments/evm/subpool-client.d.ts +30 -0
  74. package/dist/payments/evm/subpool-client.d.ts.map +1 -0
  75. package/dist/payments/evm/subpool-client.js +158 -0
  76. package/dist/payments/evm/subpool-client.js.map +1 -0
  77. package/dist/payments/index.d.ts +20 -7
  78. package/dist/payments/index.d.ts.map +1 -1
  79. package/dist/payments/index.js +17 -6
  80. package/dist/payments/index.js.map +1 -1
  81. package/dist/payments/readiness.d.ts +12 -0
  82. package/dist/payments/readiness.d.ts.map +1 -0
  83. package/dist/payments/readiness.js +64 -0
  84. package/dist/payments/readiness.js.map +1 -0
  85. package/dist/payments/seller-payment-manager.d.ts +74 -34
  86. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  87. package/dist/payments/seller-payment-manager.js +327 -118
  88. package/dist/payments/seller-payment-manager.js.map +1 -1
  89. package/dist/payments/session-store.d.ts +65 -0
  90. package/dist/payments/session-store.d.ts.map +1 -0
  91. package/dist/payments/session-store.js +243 -0
  92. package/dist/payments/session-store.js.map +1 -0
  93. package/dist/payments/usdc-utils.d.ts +9 -0
  94. package/dist/payments/usdc-utils.d.ts.map +1 -0
  95. package/dist/payments/usdc-utils.js +17 -0
  96. package/dist/payments/usdc-utils.js.map +1 -0
  97. package/dist/types/http.d.ts +2 -0
  98. package/dist/types/http.d.ts.map +1 -1
  99. package/dist/types/http.js +2 -0
  100. package/dist/types/http.js.map +1 -1
  101. package/dist/types/index.d.ts +0 -1
  102. package/dist/types/index.d.ts.map +1 -1
  103. package/dist/types/index.js +0 -1
  104. package/dist/types/index.js.map +1 -1
  105. package/dist/types/metering.d.ts +1 -1
  106. package/dist/types/metering.d.ts.map +1 -1
  107. package/dist/types/protocol.d.ts +43 -60
  108. package/dist/types/protocol.d.ts.map +1 -1
  109. package/dist/types/protocol.js +5 -8
  110. package/dist/types/protocol.js.map +1 -1
  111. package/package.json +3 -2
@@ -12,28 +12,67 @@ const PRIVATE_KEY_FILE = "identity.key";
12
12
  const ED25519_PKCS8_SEED_PREFIX = Buffer.from("302e020100300506032b657004220420", "hex");
13
13
  const ED25519_SPKI_PUBLIC_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
14
14
  /**
15
- * Load an existing identity from disk, or create and persist a new one.
16
- * The private key is stored as hex in ~/.antseed/identity.key.
15
+ * Stores identity private key as a hex file on disk (default behavior).
17
16
  */
18
- export async function loadOrCreateIdentity(configDir) {
19
- const dir = configDir ?? CONFIG_DIR;
20
- const keyPath = join(dir, PRIVATE_KEY_FILE);
21
- try {
22
- const hexKey = (await readFile(keyPath, "utf-8")).trim();
23
- const privateKey = hexToBytes(hexKey);
17
+ export class FileIdentityStore {
18
+ keyPath;
19
+ dir;
20
+ constructor(configDir) {
21
+ this.dir = configDir ?? CONFIG_DIR;
22
+ this.keyPath = join(this.dir, PRIVATE_KEY_FILE);
23
+ }
24
+ async load() {
25
+ try {
26
+ const hexKey = (await readFile(this.keyPath, "utf-8")).trim();
27
+ return hexKey.length > 0 ? hexKey : null;
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ async save(hexKey) {
34
+ await mkdir(this.dir, { recursive: true });
35
+ await writeFile(this.keyPath, hexKey, { mode: 0o600 });
36
+ }
37
+ }
38
+ /** Environment variable for passing identity hex from a parent process (e.g. desktop → CLI). */
39
+ const IDENTITY_HEX_ENV = 'ANTSEED_IDENTITY_HEX';
40
+ /**
41
+ * Load an existing identity or create and persist a new one.
42
+ *
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).
48
+ */
49
+ export async function loadOrCreateIdentity(configDirOrStore) {
50
+ // 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
+ const envHex = process.env[IDENTITY_HEX_ENV]?.trim();
53
+ if (envHex && envHex.length === 64) {
54
+ delete process.env[IDENTITY_HEX_ENV];
55
+ const privateKey = hexToBytes(envHex);
24
56
  const publicKey = await ed.getPublicKeyAsync(privateKey);
25
57
  const peerId = toPeerId(bytesToHex(publicKey));
26
58
  return { peerId, privateKey, publicKey };
27
59
  }
28
- catch {
29
- // Key doesn't exist — generate a new one.
30
- const privateKey = ed.utils.randomPrivateKey();
60
+ const store = configDirOrStore === undefined || typeof configDirOrStore === 'string'
61
+ ? new FileIdentityStore(configDirOrStore)
62
+ : configDirOrStore;
63
+ const existingHex = await store.load();
64
+ if (existingHex) {
65
+ const privateKey = hexToBytes(existingHex);
31
66
  const publicKey = await ed.getPublicKeyAsync(privateKey);
32
67
  const peerId = toPeerId(bytesToHex(publicKey));
33
- await mkdir(dir, { recursive: true });
34
- await writeFile(keyPath, bytesToHex(privateKey), { mode: 0o600 });
35
68
  return { peerId, privateKey, publicKey };
36
69
  }
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 };
37
76
  }
38
77
  /** Sign arbitrary data with the local identity's private key. */
39
78
  export async function signData(privateKey, data) {
@@ -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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"}
@@ -3,8 +3,6 @@ export { encodeFrame, decodeFrame, FrameDecoder, MessageMux, type MessageHandler
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';
5
5
  export { KeepaliveManager, buildPongPayload, type KeepaliveConfig, type KeepaliveCallbacks, DEFAULT_PING_INTERVAL_MS, DEFAULT_PONG_TIMEOUT_MS, MAX_MISSED_PONGS } from './keepalive.js';
6
- export { ReconnectManager, type ReconnectConfig, type ReconnectCallbacks } from './reconnect.js';
7
- export { performHandshake, respondToHandshake, buildHandshakeInit, verifyHandshakeInit, buildHandshakeAck, verifyHandshakeAck, type HandshakeResult } from './handshake.js';
8
6
  export { NatTraversal, type NatMapping, type NatTraversalResult } from './nat-traversal.js';
9
7
  export { PaymentMux } from './payment-mux.js';
10
8
  export type { PaymentMessageHandler } from './payment-mux.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,gBAAgB,EAAE,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5K,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,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"}
package/dist/p2p/index.js CHANGED
@@ -3,8 +3,6 @@ export { encodeFrame, decodeFrame, FrameDecoder, MessageMux } from './message-pr
3
3
  export { ConnectionManager, PeerConnection } from './connection-manager.js';
4
4
  export { getDefaultIceConfig, buildIceConfig, needsTurnFallback, extractCandidateType } from './ice-config.js';
5
5
  export { KeepaliveManager, buildPongPayload, DEFAULT_PING_INTERVAL_MS, DEFAULT_PONG_TIMEOUT_MS, MAX_MISSED_PONGS } from './keepalive.js';
6
- export { ReconnectManager } from './reconnect.js';
7
- export { performHandshake, respondToHandshake, buildHandshakeInit, verifyHandshakeInit, buildHandshakeAck, verifyHandshakeAck } from './handshake.js';
8
6
  export { NatTraversal } from './nat-traversal.js';
9
7
  export { PaymentMux } from './payment-mux.js';
10
8
  export * from './payment-codec.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,gBAAgB,EAAiD,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,kBAAkB,EAAwB,MAAM,gBAAgB,CAAC;AAC5K,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,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,20 +1,14 @@
1
- import type { SessionLockAuthPayload, SessionLockConfirmPayload, SessionLockRejectPayload, SellerReceiptPayload, BuyerAckPayload, SessionEndPayload, TopUpRequestPayload, TopUpAuthPayload, DisputeNotifyPayload } from '../types/protocol.js';
2
- export declare function encodeSessionLockAuth(payload: SessionLockAuthPayload): Uint8Array;
3
- export declare function encodeSessionLockConfirm(payload: SessionLockConfirmPayload): Uint8Array;
4
- export declare function encodeSessionLockReject(payload: SessionLockRejectPayload): Uint8Array;
1
+ import type { SpendingAuthPayload, AuthAckPayload, SellerReceiptPayload, BuyerAckPayload, TopUpRequestPayload, PaymentRequiredPayload } from '../types/protocol.js';
2
+ export declare function encodeSpendingAuth(payload: SpendingAuthPayload): Uint8Array;
3
+ export declare function encodeAuthAck(payload: AuthAckPayload): Uint8Array;
5
4
  export declare function encodeSellerReceipt(payload: SellerReceiptPayload): Uint8Array;
6
5
  export declare function encodeBuyerAck(payload: BuyerAckPayload): Uint8Array;
7
- export declare function encodeSessionEnd(payload: SessionEndPayload): Uint8Array;
8
6
  export declare function encodeTopUpRequest(payload: TopUpRequestPayload): Uint8Array;
9
- export declare function encodeTopUpAuth(payload: TopUpAuthPayload): Uint8Array;
10
- export declare function encodeDisputeNotify(payload: DisputeNotifyPayload): Uint8Array;
11
- export declare function decodeSessionLockAuth(data: Uint8Array): SessionLockAuthPayload;
12
- export declare function decodeSessionLockConfirm(data: Uint8Array): SessionLockConfirmPayload;
13
- export declare function decodeSessionLockReject(data: Uint8Array): SessionLockRejectPayload;
7
+ export declare function decodeSpendingAuth(data: Uint8Array): SpendingAuthPayload;
8
+ export declare function decodeAuthAck(data: Uint8Array): AuthAckPayload;
14
9
  export declare function decodeSellerReceipt(data: Uint8Array): SellerReceiptPayload;
15
10
  export declare function decodeBuyerAck(data: Uint8Array): BuyerAckPayload;
16
- export declare function decodeSessionEnd(data: Uint8Array): SessionEndPayload;
17
11
  export declare function decodeTopUpRequest(data: Uint8Array): TopUpRequestPayload;
18
- export declare function decodeTopUpAuth(data: Uint8Array): TopUpAuthPayload;
19
- export declare function decodeDisputeNotify(data: Uint8Array): DisputeNotifyPayload;
12
+ export declare function encodePaymentRequired(payload: PaymentRequiredPayload): Uint8Array;
13
+ export declare function decodePaymentRequired(data: Uint8Array): PaymentRequiredPayload;
20
14
  //# 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,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAiC9B,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CAEjF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,GAAG,UAAU,CAEvF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,UAAU,CAErF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAE7E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAEnE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAE3E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAErE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,UAAU,CAE7E;AAID,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,sBAAsB,CAO9E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,yBAAyB,CAMpF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,wBAAwB,CAMlF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,CAS1E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAQhE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,iBAAiB,CASpE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,mBAAmB,CAQxE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,gBAAgB,CAOlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,oBAAoB,CAO1E"}
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,7 +1,11 @@
1
1
  const encoder = new TextEncoder();
2
2
  const decoder = new TextDecoder();
3
3
  // --- Validation helpers ---
4
+ const MAX_PAYLOAD_SIZE = 65536; // 64KB
4
5
  function parseJson(data) {
6
+ if (data.byteLength > MAX_PAYLOAD_SIZE) {
7
+ throw new Error(`Payment payload too large: ${data.byteLength} bytes (max ${MAX_PAYLOAD_SIZE})`);
8
+ }
5
9
  const raw = JSON.parse(decoder.decode(data));
6
10
  if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
7
11
  throw new Error('Expected JSON object');
@@ -23,13 +27,10 @@ function requireNumber(obj, field) {
23
27
  return val;
24
28
  }
25
29
  // --- Encoders ---
26
- export function encodeSessionLockAuth(payload) {
27
- return encoder.encode(JSON.stringify(payload));
28
- }
29
- export function encodeSessionLockConfirm(payload) {
30
+ export function encodeSpendingAuth(payload) {
30
31
  return encoder.encode(JSON.stringify(payload));
31
32
  }
32
- export function encodeSessionLockReject(payload) {
33
+ export function encodeAuthAck(payload) {
33
34
  return encoder.encode(JSON.stringify(payload));
34
35
  }
35
36
  export function encodeSellerReceipt(payload) {
@@ -38,39 +39,28 @@ export function encodeSellerReceipt(payload) {
38
39
  export function encodeBuyerAck(payload) {
39
40
  return encoder.encode(JSON.stringify(payload));
40
41
  }
41
- export function encodeSessionEnd(payload) {
42
- return encoder.encode(JSON.stringify(payload));
43
- }
44
42
  export function encodeTopUpRequest(payload) {
45
43
  return encoder.encode(JSON.stringify(payload));
46
44
  }
47
- export function encodeTopUpAuth(payload) {
48
- return encoder.encode(JSON.stringify(payload));
49
- }
50
- export function encodeDisputeNotify(payload) {
51
- return encoder.encode(JSON.stringify(payload));
52
- }
53
45
  // --- Decoders (with runtime validation) ---
54
- export function decodeSessionLockAuth(data) {
46
+ export function decodeSpendingAuth(data) {
55
47
  const obj = parseJson(data);
56
48
  return {
57
49
  sessionId: requireString(obj, 'sessionId'),
58
- lockedAmount: requireString(obj, 'lockedAmount'),
50
+ maxAmountUsdc: requireString(obj, 'maxAmountUsdc'),
51
+ nonce: requireNumber(obj, 'nonce'),
52
+ deadline: requireNumber(obj, 'deadline'),
59
53
  buyerSig: requireString(obj, 'buyerSig'),
54
+ buyerEvmAddr: requireString(obj, 'buyerEvmAddr'),
55
+ previousConsumption: requireString(obj, 'previousConsumption'),
56
+ previousSessionId: requireString(obj, 'previousSessionId'),
60
57
  };
61
58
  }
62
- export function decodeSessionLockConfirm(data) {
59
+ export function decodeAuthAck(data) {
63
60
  const obj = parseJson(data);
64
61
  return {
65
62
  sessionId: requireString(obj, 'sessionId'),
66
- txSignature: requireString(obj, 'txSignature'),
67
- };
68
- }
69
- export function decodeSessionLockReject(data) {
70
- const obj = parseJson(data);
71
- return {
72
- sessionId: requireString(obj, 'sessionId'),
73
- reason: requireString(obj, 'reason'),
63
+ nonce: requireNumber(obj, 'nonce'),
74
64
  };
75
65
  }
76
66
  export function decodeSellerReceipt(data) {
@@ -92,39 +82,31 @@ export function decodeBuyerAck(data) {
92
82
  buyerSig: requireString(obj, 'buyerSig'),
93
83
  };
94
84
  }
95
- export function decodeSessionEnd(data) {
96
- const obj = parseJson(data);
97
- return {
98
- sessionId: requireString(obj, 'sessionId'),
99
- runningTotal: requireString(obj, 'runningTotal'),
100
- requestCount: requireNumber(obj, 'requestCount'),
101
- score: requireNumber(obj, 'score'),
102
- buyerSig: requireString(obj, 'buyerSig'),
103
- };
104
- }
105
85
  export function decodeTopUpRequest(data) {
106
86
  const obj = parseJson(data);
107
87
  return {
108
88
  sessionId: requireString(obj, 'sessionId'),
109
- additionalAmount: requireString(obj, 'additionalAmount'),
110
- currentRunningTotal: requireString(obj, 'currentRunningTotal'),
111
- currentLockedAmount: requireString(obj, 'currentLockedAmount'),
89
+ currentUsed: requireString(obj, 'currentUsed'),
90
+ currentMax: requireString(obj, 'currentMax'),
91
+ requestedAdditional: requireString(obj, 'requestedAdditional'),
112
92
  };
113
93
  }
114
- export function decodeTopUpAuth(data) {
115
- const obj = parseJson(data);
116
- return {
117
- sessionId: requireString(obj, 'sessionId'),
118
- additionalAmount: requireString(obj, 'additionalAmount'),
119
- buyerSig: requireString(obj, 'buyerSig'),
120
- };
94
+ export function encodePaymentRequired(payload) {
95
+ return encoder.encode(JSON.stringify(payload));
121
96
  }
122
- export function decodeDisputeNotify(data) {
97
+ export function decodePaymentRequired(data) {
123
98
  const obj = parseJson(data);
124
- return {
125
- sessionId: requireString(obj, 'sessionId'),
126
- reason: requireString(obj, 'reason'),
127
- txSignature: requireString(obj, 'txSignature'),
99
+ const result = {
100
+ sellerEvmAddr: requireString(obj, 'sellerEvmAddr'),
101
+ tokenRate: requireString(obj, 'tokenRate'),
102
+ firstSignCap: requireString(obj, 'firstSignCap'),
103
+ suggestedAmount: requireString(obj, 'suggestedAmount'),
104
+ requestId: requireString(obj, 'requestId'),
128
105
  };
106
+ if (typeof obj.inputUsdPerMillion === 'number')
107
+ result.inputUsdPerMillion = obj.inputUsdPerMillion;
108
+ if (typeof obj.outputUsdPerMillion === 'number')
109
+ result.outputUsdPerMillion = obj.outputUsdPerMillion;
110
+ return result;
129
111
  }
130
112
  //# 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,43 +1,34 @@
1
1
  import type { PeerConnection } from './connection-manager.js';
2
- import type { SessionLockAuthPayload, SessionLockConfirmPayload, SessionLockRejectPayload, SellerReceiptPayload, BuyerAckPayload, SessionEndPayload, TopUpRequestPayload, TopUpAuthPayload, DisputeNotifyPayload } from '../types/protocol.js';
2
+ import type { SpendingAuthPayload, AuthAckPayload, SellerReceiptPayload, BuyerAckPayload, TopUpRequestPayload, PaymentRequiredPayload } 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
  /**
6
- * Multiplexes bilateral payment messages over a PeerConnection.
6
+ * Multiplexes payment messages over a PeerConnection.
7
7
  * Register handlers for each message type, then call handleFrame()
8
8
  * when a payment-range frame arrives.
9
9
  */
10
10
  export declare class PaymentMux {
11
11
  private _connection;
12
12
  private _messageIdCounter;
13
- private _onSessionLockAuth?;
14
- private _onSessionLockConfirm?;
15
- private _onSessionLockReject?;
13
+ private _onSpendingAuth?;
14
+ private _onAuthAck?;
16
15
  private _onSellerReceipt?;
17
16
  private _onBuyerAck?;
18
- private _onSessionEnd?;
19
17
  private _onTopUpRequest?;
20
- private _onTopUpAuth?;
21
- private _onDisputeNotify?;
18
+ private _onPaymentRequired?;
22
19
  constructor(connection: PeerConnection);
23
- onSessionLockAuth(handler: PaymentMessageHandler<SessionLockAuthPayload>): void;
24
- onSessionLockConfirm(handler: PaymentMessageHandler<SessionLockConfirmPayload>): void;
25
- onSessionLockReject(handler: PaymentMessageHandler<SessionLockRejectPayload>): void;
20
+ onSpendingAuth(handler: PaymentMessageHandler<SpendingAuthPayload>): void;
21
+ onAuthAck(handler: PaymentMessageHandler<AuthAckPayload>): void;
26
22
  onSellerReceipt(handler: PaymentMessageHandler<SellerReceiptPayload>): void;
27
23
  onBuyerAck(handler: PaymentMessageHandler<BuyerAckPayload>): void;
28
- onSessionEnd(handler: PaymentMessageHandler<SessionEndPayload>): void;
29
24
  onTopUpRequest(handler: PaymentMessageHandler<TopUpRequestPayload>): void;
30
- onTopUpAuth(handler: PaymentMessageHandler<TopUpAuthPayload>): void;
31
- onDisputeNotify(handler: PaymentMessageHandler<DisputeNotifyPayload>): void;
32
- sendSessionLockAuth(payload: SessionLockAuthPayload): void;
33
- sendSessionLockConfirm(payload: SessionLockConfirmPayload): void;
34
- sendSessionLockReject(payload: SessionLockRejectPayload): void;
25
+ onPaymentRequired(handler: PaymentMessageHandler<PaymentRequiredPayload>): void;
26
+ sendSpendingAuth(payload: SpendingAuthPayload): void;
27
+ sendAuthAck(payload: AuthAckPayload): void;
35
28
  sendSellerReceipt(payload: SellerReceiptPayload): void;
36
29
  sendBuyerAck(payload: BuyerAckPayload): void;
37
- sendSessionEnd(payload: SessionEndPayload): void;
38
30
  sendTopUpRequest(payload: TopUpRequestPayload): void;
39
- sendTopUpAuth(payload: TopUpAuthPayload): void;
40
- sendDisputeNotify(payload: DisputeNotifyPayload): void;
31
+ sendPaymentRequired(payload: PaymentRequiredPayload): void;
41
32
  /**
42
33
  * Returns true if this frame is a payment message and was handled.
43
34
  */
@@ -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,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAG1D,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,kBAAkB,CAAC,CAAgD;IAC3E,OAAO,CAAC,qBAAqB,CAAC,CAAmD;IACjF,OAAO,CAAC,oBAAoB,CAAC,CAAkD;IAC/E,OAAO,CAAC,gBAAgB,CAAC,CAA8C;IACvE,OAAO,CAAC,WAAW,CAAC,CAAyC;IAC7D,OAAO,CAAC,aAAa,CAAC,CAA2C;IACjE,OAAO,CAAC,eAAe,CAAC,CAA6C;IACrE,OAAO,CAAC,YAAY,CAAC,CAA0C;IAC/D,OAAO,CAAC,gBAAgB,CAAC,CAA8C;gBAE3D,UAAU,EAAE,cAAc;IAKtC,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAG/E,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,CAAC,yBAAyB,CAAC,GAAG,IAAI;IAGrF,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,CAAC,wBAAwB,CAAC,GAAG,IAAI;IAGnF,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAG3E,UAAU,CAAC,OAAO,EAAE,qBAAqB,CAAC,eAAe,CAAC,GAAG,IAAI;IAGjE,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAGrE,cAAc,CAAC,OAAO,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,IAAI;IAGzE,WAAW,CAAC,OAAO,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAGnE,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAK3E,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAG1D,sBAAsB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAGhE,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAG9D,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAGtD,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAG5C,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAGhD,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAGpD,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAG9C,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAKtD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCzD,mEAAmE;IACnE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9C,OAAO,CAAC,KAAK;CAQd"}
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,8 +1,17 @@
1
1
  import { MessageType } from '../types/protocol.js';
2
2
  import { encodeFrame } from './message-protocol.js';
3
3
  import * as codec from './payment-codec.js';
4
+ import { debugLog } from '../utils/debug.js';
5
+ const MESSAGE_TYPE_NAME = {
6
+ [MessageType.SpendingAuth]: 'SpendingAuth',
7
+ [MessageType.AuthAck]: 'AuthAck',
8
+ [MessageType.SellerReceipt]: 'SellerReceipt',
9
+ [MessageType.BuyerAck]: 'BuyerAck',
10
+ [MessageType.TopUpRequest]: 'TopUpRequest',
11
+ [MessageType.PaymentRequired]: 'PaymentRequired',
12
+ };
4
13
  /**
5
- * Multiplexes bilateral payment messages over a PeerConnection.
14
+ * Multiplexes payment messages over a PeerConnection.
6
15
  * Register handlers for each message type, then call handleFrame()
7
16
  * when a payment-range frame arrives.
8
17
  */
@@ -10,27 +19,21 @@ export class PaymentMux {
10
19
  _connection;
11
20
  _messageIdCounter = 0;
12
21
  // Handler registrations
13
- _onSessionLockAuth;
14
- _onSessionLockConfirm;
15
- _onSessionLockReject;
22
+ _onSpendingAuth;
23
+ _onAuthAck;
16
24
  _onSellerReceipt;
17
25
  _onBuyerAck;
18
- _onSessionEnd;
19
26
  _onTopUpRequest;
20
- _onTopUpAuth;
21
- _onDisputeNotify;
27
+ _onPaymentRequired;
22
28
  constructor(connection) {
23
29
  this._connection = connection;
24
30
  }
25
31
  // --- Handler registration ---
26
- onSessionLockAuth(handler) {
27
- this._onSessionLockAuth = handler;
32
+ onSpendingAuth(handler) {
33
+ this._onSpendingAuth = handler;
28
34
  }
29
- onSessionLockConfirm(handler) {
30
- this._onSessionLockConfirm = handler;
31
- }
32
- onSessionLockReject(handler) {
33
- this._onSessionLockReject = handler;
35
+ onAuthAck(handler) {
36
+ this._onAuthAck = handler;
34
37
  }
35
38
  onSellerReceipt(handler) {
36
39
  this._onSellerReceipt = handler;
@@ -38,27 +41,18 @@ export class PaymentMux {
38
41
  onBuyerAck(handler) {
39
42
  this._onBuyerAck = handler;
40
43
  }
41
- onSessionEnd(handler) {
42
- this._onSessionEnd = handler;
43
- }
44
44
  onTopUpRequest(handler) {
45
45
  this._onTopUpRequest = handler;
46
46
  }
47
- onTopUpAuth(handler) {
48
- this._onTopUpAuth = handler;
49
- }
50
- onDisputeNotify(handler) {
51
- this._onDisputeNotify = handler;
47
+ onPaymentRequired(handler) {
48
+ this._onPaymentRequired = handler;
52
49
  }
53
50
  // --- Sending ---
54
- sendSessionLockAuth(payload) {
55
- this._send(MessageType.SessionLockAuth, codec.encodeSessionLockAuth(payload));
51
+ sendSpendingAuth(payload) {
52
+ this._send(MessageType.SpendingAuth, codec.encodeSpendingAuth(payload));
56
53
  }
57
- sendSessionLockConfirm(payload) {
58
- this._send(MessageType.SessionLockConfirm, codec.encodeSessionLockConfirm(payload));
59
- }
60
- sendSessionLockReject(payload) {
61
- this._send(MessageType.SessionLockReject, codec.encodeSessionLockReject(payload));
54
+ sendAuthAck(payload) {
55
+ this._send(MessageType.AuthAck, codec.encodeAuthAck(payload));
62
56
  }
63
57
  sendSellerReceipt(payload) {
64
58
  this._send(MessageType.SellerReceipt, codec.encodeSellerReceipt(payload));
@@ -66,32 +60,27 @@ export class PaymentMux {
66
60
  sendBuyerAck(payload) {
67
61
  this._send(MessageType.BuyerAck, codec.encodeBuyerAck(payload));
68
62
  }
69
- sendSessionEnd(payload) {
70
- this._send(MessageType.SessionEnd, codec.encodeSessionEnd(payload));
71
- }
72
63
  sendTopUpRequest(payload) {
73
64
  this._send(MessageType.TopUpRequest, codec.encodeTopUpRequest(payload));
74
65
  }
75
- sendTopUpAuth(payload) {
76
- this._send(MessageType.TopUpAuth, codec.encodeTopUpAuth(payload));
77
- }
78
- sendDisputeNotify(payload) {
79
- this._send(MessageType.DisputeNotify, codec.encodeDisputeNotify(payload));
66
+ sendPaymentRequired(payload) {
67
+ this._send(MessageType.PaymentRequired, codec.encodePaymentRequired(payload));
80
68
  }
81
69
  // --- Receiving ---
82
70
  /**
83
71
  * Returns true if this frame is a payment message and was handled.
84
72
  */
85
73
  async handleFrame(frame) {
74
+ const name = MESSAGE_TYPE_NAME[frame.type];
75
+ if (!name)
76
+ return false;
77
+ debugLog(`[PaymentMux] ← recv ${name} (${frame.payload.length}b)`);
86
78
  switch (frame.type) {
87
- case MessageType.SessionLockAuth:
88
- await this._onSessionLockAuth?.(codec.decodeSessionLockAuth(frame.payload));
89
- return true;
90
- case MessageType.SessionLockConfirm:
91
- await this._onSessionLockConfirm?.(codec.decodeSessionLockConfirm(frame.payload));
79
+ case MessageType.SpendingAuth:
80
+ await this._onSpendingAuth?.(codec.decodeSpendingAuth(frame.payload));
92
81
  return true;
93
- case MessageType.SessionLockReject:
94
- await this._onSessionLockReject?.(codec.decodeSessionLockReject(frame.payload));
82
+ case MessageType.AuthAck:
83
+ await this._onAuthAck?.(codec.decodeAuthAck(frame.payload));
95
84
  return true;
96
85
  case MessageType.SellerReceipt:
97
86
  await this._onSellerReceipt?.(codec.decodeSellerReceipt(frame.payload));
@@ -99,17 +88,11 @@ export class PaymentMux {
99
88
  case MessageType.BuyerAck:
100
89
  await this._onBuyerAck?.(codec.decodeBuyerAck(frame.payload));
101
90
  return true;
102
- case MessageType.SessionEnd:
103
- await this._onSessionEnd?.(codec.decodeSessionEnd(frame.payload));
104
- return true;
105
91
  case MessageType.TopUpRequest:
106
92
  await this._onTopUpRequest?.(codec.decodeTopUpRequest(frame.payload));
107
93
  return true;
108
- case MessageType.TopUpAuth:
109
- await this._onTopUpAuth?.(codec.decodeTopUpAuth(frame.payload));
110
- return true;
111
- case MessageType.DisputeNotify:
112
- await this._onDisputeNotify?.(codec.decodeDisputeNotify(frame.payload));
94
+ case MessageType.PaymentRequired:
95
+ await this._onPaymentRequired?.(codec.decodePaymentRequired(frame.payload));
113
96
  return true;
114
97
  default:
115
98
  return false;
@@ -120,6 +103,7 @@ export class PaymentMux {
120
103
  return type >= 0x50 && type <= 0x5f;
121
104
  }
122
105
  _send(type, payload) {
106
+ debugLog(`[PaymentMux] → send ${MESSAGE_TYPE_NAME[type] ?? `0x${type.toString(16)}`} (${payload.length}b)`);
123
107
  const frame = encodeFrame({
124
108
  type,
125
109
  messageId: this._messageIdCounter++ & 0xffffffff,
@@ -1 +1 @@
1
- {"version":3,"file":"payment-mux.js","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment-mux.js","sourceRoot":"","sources":["../../src/p2p/payment-mux.ts"],"names":[],"mappings":"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"}