@antseed/node 0.2.61 → 0.2.63

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 (140) hide show
  1. package/dist/discovery/default-metadata-resolver.d.ts +16 -0
  2. package/dist/discovery/default-metadata-resolver.d.ts.map +1 -0
  3. package/dist/discovery/default-metadata-resolver.js +16 -0
  4. package/dist/discovery/default-metadata-resolver.js.map +1 -0
  5. package/dist/discovery/profile-manager.d.ts +50 -0
  6. package/dist/discovery/profile-manager.d.ts.map +1 -0
  7. package/dist/discovery/profile-manager.js +105 -0
  8. package/dist/discovery/profile-manager.js.map +1 -0
  9. package/dist/discovery/profile-search.d.ts +27 -0
  10. package/dist/discovery/profile-search.d.ts.map +1 -0
  11. package/dist/discovery/profile-search.js +75 -0
  12. package/dist/discovery/profile-search.js.map +1 -0
  13. package/dist/discovery/reputation-verifier.d.ts +5 -0
  14. package/dist/discovery/reputation-verifier.d.ts.map +1 -0
  15. package/dist/discovery/reputation-verifier.js +5 -0
  16. package/dist/discovery/reputation-verifier.js.map +1 -0
  17. package/dist/discovery/stats-verifier.d.ts +27 -0
  18. package/dist/discovery/stats-verifier.d.ts.map +1 -0
  19. package/dist/discovery/stats-verifier.js +38 -0
  20. package/dist/discovery/stats-verifier.js.map +1 -0
  21. package/dist/index.d.ts +3 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/node.d.ts +23 -0
  26. package/dist/node.d.ts.map +1 -1
  27. package/dist/node.js +105 -19
  28. package/dist/node.js.map +1 -1
  29. package/dist/p2p/connection-manager.js +2 -2
  30. package/dist/p2p/connection-manager.js.map +1 -1
  31. package/dist/p2p/handshake.d.ts +47 -0
  32. package/dist/p2p/handshake.d.ts.map +1 -0
  33. package/dist/p2p/handshake.js +107 -0
  34. package/dist/p2p/handshake.js.map +1 -0
  35. package/dist/p2p/reconnect.d.ts +48 -0
  36. package/dist/p2p/reconnect.d.ts.map +1 -0
  37. package/dist/p2p/reconnect.js +89 -0
  38. package/dist/p2p/reconnect.js.map +1 -0
  39. package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
  40. package/dist/payments/buyer-payment-manager.js +1 -0
  41. package/dist/payments/buyer-payment-manager.js.map +1 -1
  42. package/dist/payments/chain-config.d.ts +2 -0
  43. package/dist/payments/chain-config.d.ts.map +1 -1
  44. package/dist/payments/chain-config.js +4 -5
  45. package/dist/payments/chain-config.js.map +1 -1
  46. package/dist/payments/disputes.d.ts +18 -0
  47. package/dist/payments/disputes.d.ts.map +1 -0
  48. package/dist/payments/disputes.js +47 -0
  49. package/dist/payments/disputes.js.map +1 -0
  50. package/dist/payments/evm/ants-token-client.d.ts +1 -0
  51. package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
  52. package/dist/payments/evm/ants-token-client.js +1 -1
  53. package/dist/payments/evm/ants-token-client.js.map +1 -1
  54. package/dist/payments/evm/base-evm-client.d.ts +1 -1
  55. package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
  56. package/dist/payments/evm/base-evm-client.js +9 -15
  57. package/dist/payments/evm/base-evm-client.js.map +1 -1
  58. package/dist/payments/evm/channels-client.d.ts +1 -0
  59. package/dist/payments/evm/channels-client.d.ts.map +1 -1
  60. package/dist/payments/evm/channels-client.js +1 -1
  61. package/dist/payments/evm/channels-client.js.map +1 -1
  62. package/dist/payments/evm/deposits-client.d.ts +1 -0
  63. package/dist/payments/evm/deposits-client.d.ts.map +1 -1
  64. package/dist/payments/evm/deposits-client.js +1 -1
  65. package/dist/payments/evm/deposits-client.js.map +1 -1
  66. package/dist/payments/evm/emissions-client.d.ts +17 -0
  67. package/dist/payments/evm/emissions-client.d.ts.map +1 -1
  68. package/dist/payments/evm/emissions-client.js +74 -9
  69. package/dist/payments/evm/emissions-client.js.map +1 -1
  70. package/dist/payments/evm/escrow-client.d.ts +82 -0
  71. package/dist/payments/evm/escrow-client.d.ts.map +1 -0
  72. package/dist/payments/evm/escrow-client.js +277 -0
  73. package/dist/payments/evm/escrow-client.js.map +1 -0
  74. package/dist/payments/evm/identity-client.d.ts +1 -0
  75. package/dist/payments/evm/identity-client.d.ts.map +1 -1
  76. package/dist/payments/evm/identity-client.js +1 -1
  77. package/dist/payments/evm/identity-client.js.map +1 -1
  78. package/dist/payments/evm/keypair.d.ts +10 -0
  79. package/dist/payments/evm/keypair.d.ts.map +1 -0
  80. package/dist/payments/evm/keypair.js +13 -0
  81. package/dist/payments/evm/keypair.js.map +1 -0
  82. package/dist/payments/evm/sessions-client.d.ts +30 -0
  83. package/dist/payments/evm/sessions-client.d.ts.map +1 -0
  84. package/dist/payments/evm/sessions-client.js +61 -0
  85. package/dist/payments/evm/sessions-client.js.map +1 -0
  86. package/dist/payments/evm/staking-client.d.ts +1 -0
  87. package/dist/payments/evm/staking-client.d.ts.map +1 -1
  88. package/dist/payments/evm/staking-client.js +1 -1
  89. package/dist/payments/evm/staking-client.js.map +1 -1
  90. package/dist/payments/evm/stats-client.d.ts +1 -0
  91. package/dist/payments/evm/stats-client.d.ts.map +1 -1
  92. package/dist/payments/evm/stats-client.js +1 -1
  93. package/dist/payments/evm/stats-client.js.map +1 -1
  94. package/dist/payments/evm/subpool-client.d.ts +1 -0
  95. package/dist/payments/evm/subpool-client.d.ts.map +1 -1
  96. package/dist/payments/evm/subpool-client.js +1 -1
  97. package/dist/payments/evm/subpool-client.js.map +1 -1
  98. package/dist/payments/evm/wallet.d.ts +5 -0
  99. package/dist/payments/evm/wallet.d.ts.map +1 -0
  100. package/dist/payments/evm/wallet.js +31 -0
  101. package/dist/payments/evm/wallet.js.map +1 -0
  102. package/dist/payments/seller-payment-manager.d.ts.map +1 -1
  103. package/dist/payments/seller-payment-manager.js +1 -0
  104. package/dist/payments/seller-payment-manager.js.map +1 -1
  105. package/dist/payments/session-store.d.ts +68 -0
  106. package/dist/payments/session-store.d.ts.map +1 -0
  107. package/dist/payments/session-store.js +272 -0
  108. package/dist/payments/session-store.js.map +1 -0
  109. package/dist/payments/settlement.d.ts +6 -0
  110. package/dist/payments/settlement.d.ts.map +1 -0
  111. package/dist/payments/settlement.js +25 -0
  112. package/dist/payments/settlement.js.map +1 -0
  113. package/dist/proxy/index.d.ts +1 -1
  114. package/dist/proxy/index.d.ts.map +1 -1
  115. package/dist/proxy/index.js +1 -1
  116. package/dist/proxy/index.js.map +1 -1
  117. package/dist/proxy/model-api-adapter.d.ts +30 -0
  118. package/dist/proxy/model-api-adapter.d.ts.map +1 -0
  119. package/dist/proxy/model-api-adapter.js +891 -0
  120. package/dist/proxy/model-api-adapter.js.map +1 -0
  121. package/dist/proxy/provider-detection.d.ts +0 -2
  122. package/dist/proxy/provider-detection.d.ts.map +1 -1
  123. package/dist/proxy/provider-detection.js +0 -2
  124. package/dist/proxy/provider-detection.js.map +1 -1
  125. package/dist/seller-request-handler.d.ts.map +1 -1
  126. package/dist/seller-request-handler.js +10 -3
  127. package/dist/seller-request-handler.js.map +1 -1
  128. package/dist/types/model-api.d.ts +4 -0
  129. package/dist/types/model-api.d.ts.map +1 -0
  130. package/dist/types/model-api.js +11 -0
  131. package/dist/types/model-api.js.map +1 -0
  132. package/dist/types/peer-profile.d.ts +24 -0
  133. package/dist/types/peer-profile.d.ts.map +1 -0
  134. package/dist/types/peer-profile.js +2 -0
  135. package/dist/types/peer-profile.js.map +1 -0
  136. package/dist/types/staking.d.ts +16 -0
  137. package/dist/types/staking.d.ts.map +1 -0
  138. package/dist/types/staking.js +6 -0
  139. package/dist/types/staking.js.map +1 -0
  140. package/package.json +2 -2
package/dist/node.js CHANGED
@@ -20,7 +20,7 @@ import { KeepaliveManager, buildPongPayload } from "./p2p/keepalive.js";
20
20
  import { MessageType } from "./types/protocol.js";
21
21
  import { NatTraversal } from "./p2p/nat-traversal.js";
22
22
  import { signUtf8 } from "./p2p/identity.js";
23
- import { BalanceManager, DepositsClient, ChannelsClient, StakingClient, ChannelStore, } from "./payments/index.js";
23
+ import { BalanceManager, DepositsClient, ChannelsClient, StakingClient, ChannelStore, CHANNEL_STATUS, } from "./payments/index.js";
24
24
  import { debugLog, debugWarn } from "./utils/debug.js";
25
25
  import { parsePublicAddress } from "./discovery/public-address.js";
26
26
  import { BuyerPaymentManager } from "./payments/buyer-payment-manager.js";
@@ -29,6 +29,15 @@ import { SellerPaymentManager } from "./payments/seller-payment-manager.js";
29
29
  import { IdentityClient } from "./payments/evm/identity-client.js";
30
30
  import { SellerRequestHandler } from "./seller-request-handler.js";
31
31
  import { BuyerRequestHandler, } from "./buyer-request-handler.js";
32
+ const EMPTY_BUYER_USAGE = {
33
+ totalRequests: 0,
34
+ totalInputTokens: '0',
35
+ totalOutputTokens: '0',
36
+ totalSettlements: 0,
37
+ uniqueSellers: 0,
38
+ activeChannels: 0,
39
+ channels: [],
40
+ };
32
41
  export class AntseedNode extends EventEmitter {
33
42
  _config;
34
43
  _identity = null;
@@ -402,6 +411,58 @@ export class AntseedNode extends EventEmitter {
402
411
  tokensDelivered: c.tokensDelivered,
403
412
  }));
404
413
  }
414
+ /**
415
+ * On buyer rows in payment_channels, `tokensDelivered` stores cumulative
416
+ * input tokens and `previousConsumption` stores cumulative output tokens —
417
+ * columns are semantically overloaded vs seller rows. Set in
418
+ * buyer-payment-manager.recordAndPersistTokens.
419
+ */
420
+ getBuyerUsageTotals() {
421
+ const buyerAddress = this._identity?.wallet.address ?? null;
422
+ if (!buyerAddress || !this._channelStore)
423
+ return EMPTY_BUYER_USAGE;
424
+ const stored = this._channelStore.getAllChannelsByBuyer('buyer', buyerAddress);
425
+ let totalRequests = 0;
426
+ let totalInput = 0n;
427
+ let totalOutput = 0n;
428
+ let totalSettlements = 0;
429
+ let activeChannels = 0;
430
+ const sellers = new Set();
431
+ const channels = [];
432
+ for (const c of stored) {
433
+ totalRequests += c.requestCount;
434
+ try {
435
+ totalInput += BigInt(c.tokensDelivered || '0');
436
+ }
437
+ catch { /* skip */ }
438
+ try {
439
+ totalOutput += BigInt(c.previousConsumption || '0');
440
+ }
441
+ catch { /* skip */ }
442
+ if (c.status === CHANNEL_STATUS.SETTLED)
443
+ totalSettlements += 1;
444
+ if (c.status === CHANNEL_STATUS.ACTIVE)
445
+ activeChannels += 1;
446
+ if (c.peerId)
447
+ sellers.add(c.peerId);
448
+ channels.push({
449
+ reservedAt: c.reservedAt,
450
+ updatedAt: c.updatedAt,
451
+ requestCount: c.requestCount,
452
+ inputTokens: c.tokensDelivered || '0',
453
+ outputTokens: c.previousConsumption || '0',
454
+ });
455
+ }
456
+ return {
457
+ totalRequests,
458
+ totalInputTokens: totalInput.toString(),
459
+ totalOutputTokens: totalOutput.toString(),
460
+ totalSettlements,
461
+ uniqueSellers: sellers.size,
462
+ activeChannels,
463
+ channels,
464
+ };
465
+ }
405
466
  async sendRequest(peer, req, options) {
406
467
  if (!this._buyerHandler)
407
468
  throw new Error("Node not started or not in buyer mode");
@@ -758,6 +819,7 @@ export class AntseedNode extends EventEmitter {
758
819
  ...(fallbackRpcUrls ? { fallbackRpcUrls } : {}),
759
820
  contractAddress: payments.depositsAddress,
760
821
  usdcAddress: payments.usdcAddress,
822
+ ...(payments.chainId ? { evmChainId: payments.chainId } : {}),
761
823
  });
762
824
  debugLog(`[Node] DepositsClient initialized (contract=${payments.depositsAddress.slice(0, 10)}...)`);
763
825
  }
@@ -767,6 +829,7 @@ export class AntseedNode extends EventEmitter {
767
829
  rpcUrl: payments.rpcUrl,
768
830
  ...(fallbackRpcUrls ? { fallbackRpcUrls } : {}),
769
831
  contractAddress: payments.channelsAddress,
832
+ ...(payments.chainId ? { evmChainId: payments.chainId } : {}),
770
833
  });
771
834
  debugLog(`[Node] ChannelsClient initialized (contract=${payments.channelsAddress.slice(0, 10)}...)`);
772
835
  }
@@ -777,6 +840,7 @@ export class AntseedNode extends EventEmitter {
777
840
  ...(fallbackRpcUrls ? { fallbackRpcUrls } : {}),
778
841
  contractAddress: payments.stakingAddress,
779
842
  usdcAddress: payments.usdcAddress,
843
+ ...(payments.chainId ? { evmChainId: payments.chainId } : {}),
780
844
  });
781
845
  debugLog(`[Node] StakingClient initialized (contract=${payments.stakingAddress.slice(0, 10)}...)`);
782
846
  }
@@ -786,6 +850,7 @@ export class AntseedNode extends EventEmitter {
786
850
  rpcUrl: payments.rpcUrl,
787
851
  ...(fallbackRpcUrls ? { fallbackRpcUrls } : {}),
788
852
  contractAddress: payments.identityRegistryAddress,
853
+ ...(payments.chainId ? { evmChainId: payments.chainId } : {}),
789
854
  });
790
855
  debugLog(`[Node] IdentityClient initialized (contract=${payments.identityRegistryAddress.slice(0, 10)}...)`);
791
856
  }
@@ -947,32 +1012,53 @@ export class AntseedNode extends EventEmitter {
947
1012
  const providerServiceCategoryEntries = {};
948
1013
  const providerServiceApiProtocolEntries = {};
949
1014
  for (const providerAnnouncement of result.metadata.providers) {
1015
+ const provName = providerAnnouncement.provider;
950
1016
  const serviceEntries = {};
951
1017
  for (const service of providerAnnouncement.services) {
952
1018
  serviceEntries[service] =
953
1019
  providerAnnouncement.servicePricing?.[service] ?? providerAnnouncement.defaultPricing;
954
1020
  }
955
- providerPricingEntries[providerAnnouncement.provider] = {
956
- defaults: {
957
- inputUsdPerMillion: providerAnnouncement.defaultPricing.inputUsdPerMillion,
958
- outputUsdPerMillion: providerAnnouncement.defaultPricing.outputUsdPerMillion,
959
- ...(providerAnnouncement.defaultPricing.cachedInputUsdPerMillion != null
960
- ? { cachedInputUsdPerMillion: providerAnnouncement.defaultPricing.cachedInputUsdPerMillion }
961
- : {}),
962
- },
963
- ...(Object.keys(serviceEntries).length > 0 ? { services: serviceEntries } : {}),
964
- };
965
- if (providerAnnouncement.serviceCategories && Object.keys(providerAnnouncement.serviceCategories).length > 0) {
966
- providerServiceCategoryEntries[providerAnnouncement.provider] = {
967
- services: Object.fromEntries(Object.entries(providerAnnouncement.serviceCategories)
968
- .map(([service, categories]) => [service, [...categories]])),
1021
+ const existing = providerPricingEntries[provName];
1022
+ if (existing) {
1023
+ // Merge services from duplicate provider names
1024
+ Object.assign(existing.services ?? {}, serviceEntries);
1025
+ if (!existing.services && Object.keys(serviceEntries).length > 0) {
1026
+ existing.services = serviceEntries;
1027
+ }
1028
+ }
1029
+ else {
1030
+ providerPricingEntries[provName] = {
1031
+ defaults: {
1032
+ inputUsdPerMillion: providerAnnouncement.defaultPricing.inputUsdPerMillion,
1033
+ outputUsdPerMillion: providerAnnouncement.defaultPricing.outputUsdPerMillion,
1034
+ ...(providerAnnouncement.defaultPricing.cachedInputUsdPerMillion != null
1035
+ ? { cachedInputUsdPerMillion: providerAnnouncement.defaultPricing.cachedInputUsdPerMillion }
1036
+ : {}),
1037
+ },
1038
+ ...(Object.keys(serviceEntries).length > 0 ? { services: serviceEntries } : {}),
969
1039
  };
970
1040
  }
1041
+ if (providerAnnouncement.serviceCategories && Object.keys(providerAnnouncement.serviceCategories).length > 0) {
1042
+ const existingCats = providerServiceCategoryEntries[provName];
1043
+ const newEntries = Object.fromEntries(Object.entries(providerAnnouncement.serviceCategories)
1044
+ .map(([service, categories]) => [service, [...categories]]));
1045
+ if (existingCats) {
1046
+ Object.assign(existingCats.services, newEntries);
1047
+ }
1048
+ else {
1049
+ providerServiceCategoryEntries[provName] = { services: newEntries };
1050
+ }
1051
+ }
971
1052
  if (providerAnnouncement.serviceApiProtocols && Object.keys(providerAnnouncement.serviceApiProtocols).length > 0) {
972
- providerServiceApiProtocolEntries[providerAnnouncement.provider] = {
973
- services: Object.fromEntries(Object.entries(providerAnnouncement.serviceApiProtocols)
974
- .map(([service, protocols]) => [service, [...protocols]])),
975
- };
1053
+ const existingProtos = providerServiceApiProtocolEntries[provName];
1054
+ const newEntries = Object.fromEntries(Object.entries(providerAnnouncement.serviceApiProtocols)
1055
+ .map(([service, protocols]) => [service, [...protocols]]));
1056
+ if (existingProtos) {
1057
+ Object.assign(existingProtos.services, newEntries);
1058
+ }
1059
+ else {
1060
+ providerServiceApiProtocolEntries[provName] = { services: newEntries };
1061
+ }
976
1062
  }
977
1063
  }
978
1064
  const hasProviderPricing = Object.keys(providerPricingEntries).length > 0;
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
@@ -629,7 +629,7 @@ export class ConnectionManager extends EventEmitter {
629
629
  const iceServers = this._iceConfig.iceServers.flatMap((server) => {
630
630
  return Array.isArray(server.urls) ? server.urls : [server.urls];
631
631
  });
632
- return new ndc.PeerConnection(`idleai-${remotePeerId.slice(0, 12)}`, {
632
+ return new ndc.PeerConnection(`antseed-${remotePeerId.slice(0, 12)}`, {
633
633
  iceServers,
634
634
  iceTransportPolicy: this._iceConfig.iceTransportPolicy ?? "all",
635
635
  });
@@ -715,7 +715,7 @@ export class ConnectionManager extends EventEmitter {
715
715
  this._detectedTransportMode = "tcp";
716
716
  return this._detectedTransportMode;
717
717
  }
718
- const probe = new ndc.PeerConnection("idleai-transport-probe", { iceServers: [] });
718
+ const probe = new ndc.PeerConnection("antseed-transport-probe", { iceServers: [] });
719
719
  try {
720
720
  const channel = probe.createDataChannel("probe", { ordered: true });
721
721
  channel.close();
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/p2p/connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/p2p/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type PeerId } from "../types/peer.js";
2
+ import { MessageType } from "../types/protocol.js";
3
+ import type { PeerConnection } from "./connection-manager.js";
4
+ export interface HandshakeResult {
5
+ remotePeerId: PeerId;
6
+ verified: boolean;
7
+ }
8
+ /**
9
+ * Build the HandshakeInit payload:
10
+ * [32 bytes pubkey] [32 bytes nonce] [64 bytes signature(nonce)]
11
+ */
12
+ export declare function buildHandshakeInit(publicKey: Uint8Array, privateKey: Uint8Array): Promise<{
13
+ payload: Uint8Array;
14
+ nonce: Uint8Array;
15
+ }>;
16
+ /**
17
+ * Verify a received HandshakeInit payload.
18
+ * Returns the remote peer's public key and nonce if valid.
19
+ */
20
+ export declare function verifyHandshakeInit(payload: Uint8Array): Promise<{
21
+ remotePubKey: Uint8Array;
22
+ nonce: Uint8Array;
23
+ valid: boolean;
24
+ }>;
25
+ /**
26
+ * Build a HandshakeAck payload:
27
+ * [32 bytes pubkey] [32 bytes echo-nonce] [64 bytes signature(echo-nonce)]
28
+ */
29
+ export declare function buildHandshakeAck(publicKey: Uint8Array, privateKey: Uint8Array, remoteNonce: Uint8Array): Promise<Uint8Array>;
30
+ /**
31
+ * Verify a received HandshakeAck payload against the nonce we originally sent.
32
+ */
33
+ export declare function verifyHandshakeAck(payload: Uint8Array, originalNonce: Uint8Array): Promise<{
34
+ remotePubKey: Uint8Array;
35
+ valid: boolean;
36
+ }>;
37
+ /**
38
+ * Perform the full handshake as the initiator.
39
+ * Sends HandshakeInit, waits for HandshakeAck, verifies.
40
+ */
41
+ export declare function performHandshake(conn: PeerConnection, localPublicKey: Uint8Array, localPrivateKey: Uint8Array, sendFn: (type: MessageType, payload: Uint8Array) => void, waitForMessage: (type: MessageType, timeoutMs: number) => Promise<Uint8Array>): Promise<HandshakeResult>;
42
+ /**
43
+ * Respond to a handshake as the responder.
44
+ * Waits for HandshakeInit, verifies, sends HandshakeAck.
45
+ */
46
+ export declare function respondToHandshake(conn: PeerConnection, localPublicKey: Uint8Array, localPrivateKey: Uint8Array, sendFn: (type: MessageType, payload: Uint8Array) => void, waitForMessage: (type: MessageType, timeoutMs: number) => Promise<Uint8Array>): Promise<HandshakeResult>;
47
+ //# sourceMappingURL=handshake.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handshake.d.ts","sourceRoot":"","sources":["../../src/p2p/handshake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQ9D,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB;AASD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC,CAUrD;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC;IAAE,YAAY,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAY1E;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,UAAU,GACtB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,UAAU,EACnB,aAAa,EAAE,UAAU,GACxB,OAAO,CAAC;IAAE,YAAY,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAiBvD;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,cAAc,EACpB,cAAc,EAAE,UAAU,EAC1B,eAAe,EAAE,UAAU,EAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,EACxD,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,GAC5E,OAAO,CAAC,eAAe,CAAC,CAgB1B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,EACpB,cAAc,EAAE,UAAU,EAC1B,eAAe,EAAE,UAAU,EAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,EACxD,cAAc,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,GAC5E,OAAO,CAAC,eAAe,CAAC,CAgB1B"}