@xyo-network/chain-bridge 1.19.13 → 1.19.15

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 (177) hide show
  1. package/dist/node/BridgeActor.d.ts +3 -2
  2. package/dist/node/BridgeActor.d.ts.map +1 -1
  3. package/dist/node/config/getBridgeEscrowAddress.d.ts +3 -3
  4. package/dist/node/config/getBridgeEscrowAddress.d.ts.map +1 -1
  5. package/dist/node/config/getBridgeFeesAddress.d.ts +3 -3
  6. package/dist/node/config/getBridgeFeesAddress.d.ts.map +1 -1
  7. package/dist/node/config/getBridgeSettings.d.ts +2 -2
  8. package/dist/node/config/getBridgeSettings.d.ts.map +1 -1
  9. package/dist/node/config/getBridgeWalletAccount.d.ts +3 -3
  10. package/dist/node/config/getBridgeWalletAccount.d.ts.map +1 -1
  11. package/dist/node/config/getFeeStructure.d.ts +2 -2
  12. package/dist/node/config/getFeeStructure.d.ts.map +1 -1
  13. package/dist/node/config/getGateway.d.ts +3 -2
  14. package/dist/node/config/getGateway.d.ts.map +1 -1
  15. package/dist/node/config/getMaxBridgeAmount.d.ts +2 -2
  16. package/dist/node/config/getMaxBridgeAmount.d.ts.map +1 -1
  17. package/dist/node/config/getMinBridgeAmount.d.ts +2 -2
  18. package/dist/node/config/getMinBridgeAmount.d.ts.map +1 -1
  19. package/dist/node/config/getRemoteChainId.d.ts +3 -2
  20. package/dist/node/config/getRemoteChainId.d.ts.map +1 -1
  21. package/dist/node/config/getRemoteTokenAddress.d.ts +2 -2
  22. package/dist/node/config/getRemoteTokenAddress.d.ts.map +1 -1
  23. package/dist/node/config/getTransferAddresses.d.ts +2 -2
  24. package/dist/node/config/getTransferAddresses.d.ts.map +1 -1
  25. package/dist/node/config/getXl1ChainId.d.ts +3 -2
  26. package/dist/node/config/getXl1ChainId.d.ts.map +1 -1
  27. package/dist/node/config/getXl1TokenAddress.d.ts +2 -2
  28. package/dist/node/config/getXl1TokenAddress.d.ts.map +1 -1
  29. package/dist/node/index.mjs +72 -553
  30. package/dist/node/index.mjs.map +1 -1
  31. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts.map +1 -1
  32. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.d.ts.map +1 -1
  33. package/dist/node/queue/connection.d.ts +2 -2
  34. package/dist/node/queue/connection.d.ts.map +1 -1
  35. package/dist/node/queue/workers/EthTransactionPreparation.d.ts.map +1 -1
  36. package/dist/node/server/addFlowProducer.d.ts +2 -2
  37. package/dist/node/server/addFlowProducer.d.ts.map +1 -1
  38. package/dist/node/server/addWorkers.d.ts +2 -2
  39. package/dist/node/server/addWorkers.d.ts.map +1 -1
  40. package/dist/node/server/app.d.ts +3 -3
  41. package/dist/node/server/app.d.ts.map +1 -1
  42. package/dist/node/server/index.d.ts +0 -2
  43. package/dist/node/server/index.d.ts.map +1 -1
  44. package/dist/node/server/routes/addRoutes.d.ts +3 -2
  45. package/dist/node/server/routes/addRoutes.d.ts.map +1 -1
  46. package/dist/node/server/routes/bridge/addBridgeRoutes.d.ts +3 -2
  47. package/dist/node/server/routes/bridge/addBridgeRoutes.d.ts.map +1 -1
  48. package/dist/node/server/routes/bridge/routeDefinitions/getRouteDefinitions.d.ts +3 -2
  49. package/dist/node/server/routes/bridge/routeDefinitions/getRouteDefinitions.d.ts.map +1 -1
  50. package/dist/node/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.d.ts +2 -2
  51. package/dist/node/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.d.ts.map +1 -1
  52. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeConfig.d.ts +2 -2
  53. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeConfig.d.ts.map +1 -1
  54. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.d.ts +2 -2
  55. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.d.ts.map +1 -1
  56. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts +2 -2
  57. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts.map +1 -1
  58. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts +3 -2
  59. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts.map +1 -1
  60. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts +2 -2
  61. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts.map +1 -1
  62. package/dist/node/server/server.d.ts +3 -10
  63. package/dist/node/server/server.d.ts.map +1 -1
  64. package/dist/node/{manifest → services}/getIterableMap.d.ts +2 -2
  65. package/dist/node/services/getIterableMap.d.ts.map +1 -0
  66. package/dist/node/services/getServices.d.ts +9 -0
  67. package/dist/node/services/getServices.d.ts.map +1 -0
  68. package/dist/node/services/index.d.ts +1 -0
  69. package/dist/node/services/index.d.ts.map +1 -1
  70. package/dist/node/util/BridgeFees.d.ts +7 -0
  71. package/dist/node/util/BridgeFees.d.ts.map +1 -0
  72. package/dist/node/util/bridgeFeesAsBigInt.d.ts +7 -0
  73. package/dist/node/util/bridgeFeesAsBigInt.d.ts.map +1 -0
  74. package/dist/node/util/calculateBridgeFees.d.ts +4 -8
  75. package/dist/node/util/calculateBridgeFees.d.ts.map +1 -1
  76. package/dist/node/util/createBridgeTransfer.d.ts +14 -0
  77. package/dist/node/util/createBridgeTransfer.d.ts.map +1 -0
  78. package/dist/node/util/generateBridgeEstimate.d.ts +3 -2
  79. package/dist/node/util/generateBridgeEstimate.d.ts.map +1 -1
  80. package/dist/node/util/index.d.ts +3 -0
  81. package/dist/node/util/index.d.ts.map +1 -1
  82. package/dist/node/util/validateBridgeEstimate.d.ts +3 -2
  83. package/dist/node/util/validateBridgeEstimate.d.ts.map +1 -1
  84. package/dist/node/util/validateBridgeEstimateExact.d.ts +3 -2
  85. package/dist/node/util/validateBridgeEstimateExact.d.ts.map +1 -1
  86. package/dist/node/util/validateBridgeTransaction.d.ts +3 -2
  87. package/dist/node/util/validateBridgeTransaction.d.ts.map +1 -1
  88. package/package.json +39 -49
  89. package/src/BridgeActor.ts +3 -3
  90. package/src/config/getBridgeEscrowAddress.ts +5 -5
  91. package/src/config/getBridgeFeesAddress.ts +5 -5
  92. package/src/config/getBridgeSettings.ts +2 -2
  93. package/src/config/getBridgeWalletAccount.ts +7 -4
  94. package/src/config/getFeeStructure.ts +3 -3
  95. package/src/config/getGateway.ts +5 -4
  96. package/src/config/getMaxBridgeAmount.ts +3 -3
  97. package/src/config/getMinBridgeAmount.ts +3 -3
  98. package/src/config/getRemoteChainId.ts +4 -3
  99. package/src/config/getRemoteTokenAddress.ts +3 -3
  100. package/src/config/getTransferAddresses.ts +2 -2
  101. package/src/config/getXl1ChainId.ts +4 -3
  102. package/src/config/getXl1TokenAddress.ts +3 -3
  103. package/src/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.ts +1 -1
  104. package/src/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.ts +1 -1
  105. package/src/interface/util/getBridgeIntentIdentifier.ts +1 -1
  106. package/src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.ts +1 -1
  107. package/src/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.ts +1 -1
  108. package/src/queue/connection.ts +3 -3
  109. package/src/queue/workers/EthTransactionMonitor.ts +1 -1
  110. package/src/queue/workers/EthTransactionPreparation.ts +2 -4
  111. package/src/queue/workers/EthTransactionSubmission.ts +1 -1
  112. package/src/queue/workers/Xl1TransactionMonitor.ts +1 -1
  113. package/src/queue/workers/Xl1TransactionPreparation.ts +1 -1
  114. package/src/queue/workers/Xl1TransactionSubmission.ts +1 -1
  115. package/src/queue/workers/util/submitEthTransaction.ts +1 -1
  116. package/src/server/addFlowProducer.ts +2 -2
  117. package/src/server/addWorkers.ts +2 -2
  118. package/src/server/app.ts +3 -4
  119. package/src/server/index.ts +2 -2
  120. package/src/server/routes/addRoutes.ts +3 -2
  121. package/src/server/routes/bridge/addBridgeRoutes.ts +3 -2
  122. package/src/server/routes/bridge/routeDefinitions/getRouteDefinitions.ts +3 -2
  123. package/src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts +3 -2
  124. package/src/server/routes/bridge/routeDefinitions/routes/bridgeConfig.ts +3 -2
  125. package/src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts +3 -2
  126. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts +4 -3
  127. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts +3 -2
  128. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts +3 -4
  129. package/src/server/server.ts +7 -48
  130. package/src/{manifest → services}/getIterableMap.ts +2 -2
  131. package/src/{manifest → services}/getServices.ts +9 -13
  132. package/src/services/index.ts +1 -0
  133. package/src/util/BridgeFees.ts +7 -0
  134. package/src/util/bridgeFeesAsBigInt.ts +15 -0
  135. package/src/util/calculateBridgeFees.ts +5 -11
  136. package/src/util/createBridgeTransfer.ts +31 -0
  137. package/src/util/generateBridgeEstimate.ts +9 -17
  138. package/src/util/index.ts +3 -0
  139. package/src/util/validateBridgeEstimate.ts +4 -5
  140. package/src/util/validateBridgeEstimateExact.ts +4 -5
  141. package/src/util/validateBridgeTransaction.ts +4 -3
  142. package/dist/node/indexers/index.d.ts +0 -2
  143. package/dist/node/indexers/index.d.ts.map +0 -1
  144. package/dist/node/manifest/getIterableMap.d.ts.map +0 -1
  145. package/dist/node/manifest/getModuleLocator.d.ts +0 -15
  146. package/dist/node/manifest/getModuleLocator.d.ts.map +0 -1
  147. package/dist/node/manifest/getNode.d.ts +0 -15
  148. package/dist/node/manifest/getNode.d.ts.map +0 -1
  149. package/dist/node/manifest/getServices.d.ts +0 -13
  150. package/dist/node/manifest/getServices.d.ts.map +0 -1
  151. package/dist/node/manifest/index.d.ts +0 -7
  152. package/dist/node/manifest/index.d.ts.map +0 -1
  153. package/dist/node/manifest/nodeManifest.d.ts +0 -6
  154. package/dist/node/manifest/nodeManifest.d.ts.map +0 -1
  155. package/dist/node/manifest/private/index.d.ts +0 -5
  156. package/dist/node/manifest/private/index.d.ts.map +0 -1
  157. package/dist/node/manifest/public/index.d.ts +0 -14
  158. package/dist/node/manifest/public/index.d.ts.map +0 -1
  159. package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts +0 -3
  160. package/dist/node/server/routes/dataLake/addDataLakeRoutes.d.ts.map +0 -1
  161. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts +0 -10
  162. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts.map +0 -1
  163. package/dist/node/server/routes/dataLake/index.d.ts +0 -2
  164. package/dist/node/server/routes/dataLake/index.d.ts.map +0 -1
  165. package/src/indexers/index.ts +0 -1
  166. package/src/manifest/getModuleLocator.ts +0 -153
  167. package/src/manifest/getNode.ts +0 -40
  168. package/src/manifest/index.ts +0 -6
  169. package/src/manifest/node.json +0 -17
  170. package/src/manifest/nodeManifest.ts +0 -8
  171. package/src/manifest/private/index.ts +0 -4
  172. package/src/manifest/public/Ethereum.json +0 -48
  173. package/src/manifest/public/XL1.json +0 -48
  174. package/src/manifest/public/index.ts +0 -23
  175. package/src/server/routes/dataLake/addDataLakeRoutes.ts +0 -9
  176. package/src/server/routes/dataLake/archivistMiddleware.ts +0 -85
  177. package/src/server/routes/dataLake/index.ts +0 -1
@@ -3,7 +3,8 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
3
3
 
4
4
  // src/BridgeActor.ts
5
5
  import { creatable } from "@xylabs/sdk-js";
6
- import { ActorV3, XyoGatewayRunnerMoniker as XyoGatewayRunnerMoniker2 } from "@xyo-network/xl1-sdk";
6
+ import { asBridgeConfigContext } from "@xyo-network/chain-orchestration";
7
+ import { ActorV3, XyoGatewayRunnerMoniker } from "@xyo-network/xl1-sdk";
7
8
 
8
9
  // src/server/app.ts
9
10
  import { customPoweredByHeader, disableCaseSensitiveRouting, disableExpressDefaultPoweredByHeader, getJsonBodyParser, getJsonBodyParserOptions, responseProfiler, standardErrors, standardResponses } from "@xylabs/express";
@@ -18,7 +19,7 @@ var connection;
18
19
  var maxRetriesPerRequest = null;
19
20
  var getConnection = /* @__PURE__ */ __name((config) => {
20
21
  if (isDefined(connection)) return connection;
21
- const { redisHost: host, redisPort: port } = config.actors.bridge;
22
+ const { redisHost: host, redisPort: port } = config;
22
23
  connection = new Redis({
23
24
  host,
24
25
  port,
@@ -52,7 +53,7 @@ var createWorkers = /* @__PURE__ */ __name((connection2, services) => {
52
53
 
53
54
  // src/queue/workers/EthTransactionMonitor.ts
54
55
  import { assertEx } from "@xylabs/sdk-js";
55
- import { PayloadBuilder } from "@xyo-network/payload-builder";
56
+ import { PayloadBuilder } from "@xyo-network/sdk-js";
56
57
  import { Worker } from "bullmq";
57
58
  var name = "Monitor Submitted ETH Transaction";
58
59
  var queueName = "eth-tx-monitor";
@@ -91,7 +92,7 @@ var EthTransactionMonitor = {
91
92
 
92
93
  // src/queue/workers/EthTransactionPreparation.ts
93
94
  import { assertEx as assertEx2, hexToBigInt } from "@xylabs/sdk-js";
94
- import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
95
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/sdk-js";
95
96
  import { isBridgeIntent } from "@xyo-network/xl1-sdk";
96
97
  import { Worker as Worker2 } from "bullmq";
97
98
  import { getAddress } from "ethers";
@@ -137,12 +138,12 @@ var EthTransactionPreparation = {
137
138
 
138
139
  // src/queue/workers/EthTransactionSubmission.ts
139
140
  import { assertEx as assertEx4, isDefined as isDefined3 } from "@xylabs/sdk-js";
140
- import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
141
+ import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/sdk-js";
141
142
  import { Worker as Worker3 } from "bullmq";
142
143
 
143
144
  // src/queue/workers/util/submitEthTransaction.ts
144
145
  import { assertEx as assertEx3, hexToBigInt as hexToBigInt2, toEthAddress } from "@xylabs/sdk-js";
145
- import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
146
+ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/sdk-js";
146
147
  import { isBridgeIntent as isBridgeIntent2 } from "@xyo-network/xl1-sdk";
147
148
  var submitEthTransaction = /* @__PURE__ */ __name(async (tx, bridgeableToken, bridge, wallet) => {
148
149
  const xl1Transaction = assertEx3(tx[0], () => "No corresponding XL1 transaction found");
@@ -240,7 +241,7 @@ var Xl1ToEthBridgeParent = {
240
241
 
241
242
  // src/queue/workers/Xl1TransactionMonitor.ts
242
243
  import { assertEx as assertEx5, isDefined as isDefined4, isNull } from "@xylabs/sdk-js";
243
- import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
244
+ import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/sdk-js";
244
245
  import { UnrecoverableError, Worker as Worker5 } from "bullmq";
245
246
  var name5 = "Monitor Submitted XL1 Transaction";
246
247
  var queueName5 = "xl1-tx-monitor";
@@ -286,7 +287,7 @@ var Xl1TransactionMonitor = {
286
287
 
287
288
  // src/queue/workers/Xl1TransactionPreparation.ts
288
289
  import { assertEx as assertEx6 } from "@xylabs/sdk-js";
289
- import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/payload-builder";
290
+ import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/sdk-js";
290
291
  import { Worker as Worker6 } from "bullmq";
291
292
  var name6 = "Prepare XL1 Transaction";
292
293
  var queueName6 = "xl1-tx-prepare";
@@ -322,7 +323,7 @@ var Xl1TransactionPreparation = {
322
323
 
323
324
  // src/queue/workers/Xl1TransactionSubmission.ts
324
325
  import { assertEx as assertEx7, isDefined as isDefined5 } from "@xylabs/sdk-js";
325
- import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/payload-builder";
326
+ import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/sdk-js";
326
327
  import { Worker as Worker7 } from "bullmq";
327
328
  var name7 = "Submit XL1 Transaction";
328
329
  var queueName7 = "xl1-tx-submit";
@@ -477,7 +478,7 @@ var addInstrumentation = /* @__PURE__ */ __name(() => {
477
478
 
478
479
  // src/server/routes/bridge/routeDefinitions/routes/bridgeConfig.ts
479
480
  import { requestHandlerValidator } from "@xylabs/express";
480
- import { BridgeSettingsZod } from "@xyo-network/xl1-sdk";
481
+ import { BridgeSettingsZod } from "@xyo-network/chain-orchestration";
481
482
 
482
483
  // src/config/asChainId.ts
483
484
  import { asHex } from "@xylabs/sdk-js";
@@ -496,20 +497,20 @@ var asToken = /* @__PURE__ */ __name((value) => {
496
497
  // src/config/getBridgeEscrowAddress.ts
497
498
  import { asAddress as asAddress2, assertEx as assertEx8 } from "@xylabs/sdk-js";
498
499
  var tryGetBridgeEscrowAddress = /* @__PURE__ */ __name((config) => {
499
- const address = asAddress2(config.actors.bridge.escrowAddress);
500
+ const address = asAddress2(config.escrowAddress);
500
501
  return address;
501
502
  }, "tryGetBridgeEscrowAddress");
502
503
 
503
504
  // src/config/getBridgeFeesAddress.ts
504
505
  import { asAddress as asAddress3, assertEx as assertEx9 } from "@xylabs/sdk-js";
505
506
  var tryGetBridgeFeesAddress = /* @__PURE__ */ __name((config) => {
506
- const address = asAddress3(config.actors.bridge.feesAddress);
507
+ const address = asAddress3(config.feesAddress);
507
508
  return address;
508
509
  }, "tryGetBridgeFeesAddress");
509
510
 
510
511
  // src/config/getFeeStructure.ts
511
512
  var getFeeStructure = /* @__PURE__ */ __name((config) => {
512
- const { feeFixed, feeRateBasisPoints } = config.actors.bridge;
513
+ const { feeFixed, feeRateBasisPoints } = config;
513
514
  return {
514
515
  feeFixed,
515
516
  feeRateBasisPoints
@@ -518,27 +519,27 @@ var getFeeStructure = /* @__PURE__ */ __name((config) => {
518
519
 
519
520
  // src/config/getMaxBridgeAmount.ts
520
521
  var getMaxBridgeAmount = /* @__PURE__ */ __name((config) => {
521
- const { maxBridgeAmount } = config.actors.bridge;
522
+ const { maxBridgeAmount } = config;
522
523
  return maxBridgeAmount;
523
524
  }, "getMaxBridgeAmount");
524
525
 
525
526
  // src/config/getMinBridgeAmount.ts
526
527
  var getMinBridgeAmount = /* @__PURE__ */ __name((config) => {
527
- const { minBridgeAmount } = config.actors.bridge;
528
+ const { minBridgeAmount } = config;
528
529
  return minBridgeAmount;
529
530
  }, "getMinBridgeAmount");
530
531
 
531
532
  // src/config/getRemoteChainId.ts
532
533
  import { assertEx as assertEx10 } from "@xylabs/sdk-js";
533
534
  var getRemoteChainId = /* @__PURE__ */ __name((config) => {
534
- const remoteChainId = assertEx10(asChainId(config.actors.bridge.remoteChainId), () => "Invalid remote chain ID in config");
535
+ const remoteChainId = assertEx10(asChainId(config.remoteChainId), () => "Invalid remote chain ID in config");
535
536
  return remoteChainId;
536
537
  }, "getRemoteChainId");
537
538
 
538
539
  // src/config/getRemoteTokenAddress.ts
539
540
  import { assertEx as assertEx11 } from "@xylabs/sdk-js";
540
541
  var getRemoteTokenAddress = /* @__PURE__ */ __name((config) => {
541
- const token = asToken(config.actors.bridge.remoteTokenAddress);
542
+ const token = asToken(config.remoteTokenAddress);
542
543
  return assertEx11(token, () => "Remote token address is not defined in bridge configuration");
543
544
  }, "getRemoteTokenAddress");
544
545
 
@@ -549,7 +550,7 @@ import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from "@xyo-network/xl1
549
550
  var accountServiceSingleton;
550
551
  var getBridgeWalletAccount = /* @__PURE__ */ __name(async (config) => {
551
552
  if (accountServiceSingleton) return accountServiceSingleton;
552
- let walletPhrase = config.actors.bridge.mnemonic;
553
+ let walletPhrase = config.mnemonic;
553
554
  if (isUndefined(walletPhrase)) {
554
555
  console.log("[Bridge] No wallet mnemonic specified!");
555
556
  const randomMnemonic = HDWallet.generateMnemonic();
@@ -579,7 +580,7 @@ var getTransferAddresses = /* @__PURE__ */ __name(async (config) => {
579
580
  // src/config/getXl1ChainId.ts
580
581
  import { assertEx as assertEx12, isDefined as isDefined7 } from "@xylabs/sdk-js";
581
582
  var getXl1ChainId = /* @__PURE__ */ __name((config) => {
582
- const xl1ChainId = config.actors.bridge.xl1ChainId;
583
+ const xl1ChainId = config.xl1ChainId;
583
584
  if (isDefined7(xl1ChainId)) {
584
585
  return assertEx12(asChainId(xl1ChainId), () => "Invalid xl1ChainId in bridge config");
585
586
  }
@@ -589,7 +590,7 @@ var getXl1ChainId = /* @__PURE__ */ __name((config) => {
589
590
  // src/config/getXl1TokenAddress.ts
590
591
  import { isDefined as isDefined8 } from "@xylabs/sdk-js";
591
592
  var getXl1TokenAddress = /* @__PURE__ */ __name((config) => {
592
- const token = asToken(config.actors.bridge.xl1TokenAddress);
593
+ const token = asToken(config.xl1TokenAddress);
593
594
  if (isDefined8(token)) return token;
594
595
  return getXl1ChainId(config);
595
596
  }, "getXl1TokenAddress");
@@ -709,8 +710,8 @@ var makeBridgeFromRemoteStatusRoute = /* @__PURE__ */ __name((config) => {
709
710
 
710
711
  // src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts
711
712
  import { requestHandlerValidator as requestHandlerValidator3 } from "@xylabs/express";
712
- import { PayloadBuilder as PayloadBuilder11 } from "@xyo-network/payload-builder";
713
713
  import { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema as PayloadZodStrictOfSchema2 } from "@xyo-network/payload-model";
714
+ import { PayloadBuilder as PayloadBuilder11 } from "@xyo-network/sdk-js";
714
715
  import { BridgeIntentFieldsZod, BridgeIntentSchema as BridgeIntentSchema2, BridgeSourceObservationFieldsZod, BridgeSourceObservationSchema, SignedTransactionBoundWitnessZod, TransferZod } from "@xyo-network/xl1-sdk";
715
716
  import { z as z2 } from "zod";
716
717
 
@@ -726,16 +727,33 @@ var calculateBridgeFees = /* @__PURE__ */ __name((srcAmount, feeStructure) => {
726
727
  const destAmountBigInt = srcAmountBigInt > feeTotalBigInt ? srcAmountBigInt - feeTotalBigInt : 0n;
727
728
  const destAmount = toHex2(destAmountBigInt);
728
729
  return {
729
- destAmount,
730
730
  feeFixed,
731
- feeVariable
731
+ feeVariable,
732
+ srcAmount
732
733
  };
733
734
  }, "calculateBridgeFees");
734
735
 
736
+ // src/util/createBridgeTransfer.ts
737
+ import { hexToBigInt as hexToBigInt4 } from "@xylabs/sdk-js";
738
+ import { createTransferPayload } from "@xyo-network/xl1-sdk";
739
+ var createBridgeTransfer = /* @__PURE__ */ __name((sender, srcAmount, escrowAddress, feesAddress, context) => {
740
+ const { feeFixed, feeVariable } = context;
741
+ const escrowAmount = hexToBigInt4(srcAmount);
742
+ const feesAmount = hexToBigInt4(feeFixed) + hexToBigInt4(feeVariable);
743
+ const transfers = escrowAddress === feesAddress ? {
744
+ [feesAddress]: escrowAmount + feesAmount
745
+ } : {
746
+ [escrowAddress]: escrowAmount,
747
+ [feesAddress]: feesAmount
748
+ };
749
+ const transfer = createTransferPayload(sender, transfers, context);
750
+ return transfer;
751
+ }, "createBridgeTransfer");
752
+
735
753
  // src/util/generateBridgeEstimate.ts
736
- import { hexToBigInt as hexToBigInt4, toAddress as toAddress2 } from "@xylabs/sdk-js";
737
- import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/payload-builder";
738
- import { BridgeIntentSchema, createTransferPayload } from "@xyo-network/xl1-sdk";
754
+ import { toAddress as toAddress2 } from "@xylabs/sdk-js";
755
+ import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/sdk-js";
756
+ import { BridgeIntentSchema } from "@xyo-network/xl1-sdk";
739
757
  import { v4 } from "uuid";
740
758
  var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount, destAddress, config, nonceOverride) => {
741
759
  const { escrowAddress, feeFixed, feeRateBasisPoints, feesAddress, remoteChainId, remoteTokenAddress, xl1ChainId, xl1TokenAddress } = await getBridgeSettings(config);
@@ -744,7 +762,6 @@ var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount
744
762
  feeFixed,
745
763
  feeRateBasisPoints
746
764
  });
747
- const { destAmount, feeFixed: feeFixedAmount, feeVariable } = fees;
748
765
  const nonce = nonceOverride ?? v4();
749
766
  const bridgeIntentFields = {
750
767
  // Source
@@ -755,22 +772,14 @@ var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount
755
772
  // Destination
756
773
  dest: remoteChainId,
757
774
  destAddress,
758
- destAmount,
775
+ destAmount: srcAmount,
759
776
  destToken: remoteTokenAddress,
760
777
  nonce
761
778
  };
762
779
  const bridgeIntent = new PayloadBuilder8({
763
780
  schema: BridgeIntentSchema
764
781
  }).fields(bridgeIntentFields).build();
765
- const context = {
766
- destAmount,
767
- feeFixed: feeFixedAmount,
768
- feeVariable
769
- };
770
- const transfer = createTransferPayload(sender, {
771
- [escrowAddress]: hexToBigInt4(destAmount),
772
- [feesAddress]: hexToBigInt4(feeFixedAmount) + hexToBigInt4(feeVariable)
773
- }, context);
782
+ const transfer = createBridgeTransfer(sender, srcAmount, escrowAddress, feesAddress, fees);
774
783
  return [
775
784
  bridgeIntent,
776
785
  transfer
@@ -779,7 +788,7 @@ var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount
779
788
 
780
789
  // src/util/validateBridgeEstimateExact.ts
781
790
  import { isUndefined as isUndefined3 } from "@xylabs/sdk-js";
782
- import { PayloadBuilder as PayloadBuilder9 } from "@xyo-network/payload-builder";
791
+ import { PayloadBuilder as PayloadBuilder9 } from "@xyo-network/sdk-js";
783
792
  var validateBridgeEstimateExact = /* @__PURE__ */ __name(async (intent, transfer, config) => {
784
793
  const { srcAddress, srcAmount, destAddress } = intent;
785
794
  const [calculatedIntent, calculatedTransfer] = await generateBridgeEstimate(srcAddress, srcAmount, destAddress, config);
@@ -796,7 +805,7 @@ var validateBridgeEstimateExact = /* @__PURE__ */ __name(async (intent, transfer
796
805
  // src/util/validateBridgeTransaction.ts
797
806
  import { asAddress as asAddress4, isDefined as isDefined9 } from "@xylabs/sdk-js";
798
807
  import { addressesContains, BoundWitnessValidator, payloadHashesContainsAll } from "@xyo-network/boundwitness-validator";
799
- import { PayloadBuilder as PayloadBuilder10 } from "@xyo-network/payload-builder";
808
+ import { PayloadBuilder as PayloadBuilder10 } from "@xyo-network/sdk-js";
800
809
  var validateBridgeTransaction = /* @__PURE__ */ __name(async (signedTxBw, intent, transfer, config) => {
801
810
  const { srcAddress } = intent;
802
811
  const chainId = getXl1ChainId(config);
@@ -1034,7 +1043,7 @@ var addRoutes = /* @__PURE__ */ __name((app, config, gateway) => {
1034
1043
  }, "addRoutes");
1035
1044
 
1036
1045
  // src/server/app.ts
1037
- var getApp = /* @__PURE__ */ __name((node, config, gateway) => {
1046
+ var getApp = /* @__PURE__ */ __name((config, gateway) => {
1038
1047
  addInstrumentation();
1039
1048
  const app = express();
1040
1049
  app.set("etag", false);
@@ -1048,390 +1057,23 @@ var getApp = /* @__PURE__ */ __name((node, config, gateway) => {
1048
1057
  disableExpressDefaultPoweredByHeader(app);
1049
1058
  app.use(customPoweredByHeader);
1050
1059
  disableCaseSensitiveRouting(app);
1051
- app.node = node;
1052
1060
  addFlowProducer(app, config);
1053
1061
  addRoutes(app, config, gateway);
1054
1062
  app.use(standardErrors);
1055
1063
  return app;
1056
1064
  }, "getApp");
1057
1065
 
1058
- // src/server/server.ts
1059
- import { assertEx as assertEx19, isDefined as isDefined14, isString } from "@xylabs/sdk-js";
1060
- import { boot } from "@xyo-network/bios";
1061
- import { HDWallet as HDWallet3 } from "@xyo-network/wallet";
1066
+ // src/services/getServices.ts
1067
+ import { assertEx as assertEx14, isDefined as isDefined10 } from "@xylabs/sdk-js";
1068
+ import { initEvmProvider } from "@xyo-network/chain-orchestration";
1069
+ import { BridgeableToken__factory, LiquidityPoolBridge__factory } from "@xyo-network/typechain";
1070
+ import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
1071
+ import { getAddress as getAddress2, Wallet } from "ethers";
1062
1072
 
1063
- // src/manifest/getModuleLocator.ts
1073
+ // src/services/getIterableMap.ts
1064
1074
  import { BaseMongoSdk } from "@xylabs/mongo";
1065
- import { assertEx as assertEx16, isDefined as isDefined12 } from "@xylabs/sdk-js";
1066
- import { MemoryArchivist } from "@xyo-network/archivist-memory";
1067
- import { MongoDBArchivistV2 } from "@xyo-network/archivist-mongodb";
1068
- import { ViewArchivist } from "@xyo-network/archivist-view";
1069
- import { initEvmProvider } from "@xyo-network/chain-orchestration";
1070
1075
  import { MongoMap } from "@xyo-network/chain-protocol";
1071
- import { initTelemetry } from "@xyo-network/chain-telemetry";
1072
- import { AbstractModule, LoggerModuleStatusReporter } from "@xyo-network/module-abstract";
1073
- import { ModuleFactoryLocator } from "@xyo-network/module-factory-locator";
1074
- import { MemorySentinel } from "@xyo-network/sentinel-memory";
1075
- import { hasMongoConfig, mapToMapType, XyoGatewayRunnerMoniker } from "@xyo-network/xl1-sdk";
1076
-
1077
- // src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.ts
1078
- import { asAddress as asAddress6, asHex as asHex4, assertEx as assertEx14, delay, hexFromBigInt, hexToBigInt as hexToBigInt5, isDefined as isDefined10, isUndefined as isUndefined4 } from "@xylabs/sdk-js";
1079
- import { PayloadBuilder as PayloadBuilder12 } from "@xyo-network/payload-builder";
1080
- import { asSchema } from "@xyo-network/payload-model";
1081
- import { AbstractSentinel } from "@xyo-network/sentinel-abstract";
1082
- import { LiquidityPoolBridge__factory } from "@xyo-network/typechain";
1083
- import { BridgeDestinationObservationSchema as BridgeDestinationObservationSchema3, flattenHydratedTransaction, flattenHydratedTransactions, isBridgeIntent as isBridgeIntent3, tryUnflattenHydratedTransaction } from "@xyo-network/xl1-sdk";
1084
- import { Mutex } from "async-mutex";
1085
- import { getAddress as getAddress2 } from "ethers/address";
1086
- import { Wallet } from "ethers/wallet";
1087
- var EVMLiquidityBridgeTransactionCompletionMonitorSentinelConfigSchema = asSchema("network.xyo.sentinel.chain.evm.liquidity.bridge.transaction.completion.monitor.config", true);
1088
- var defaultJobCheckIntervalMs = 15e3;
1089
- var EVMLiquidityBridgeTransactionCompletionMonitorSentinel = class extends AbstractSentinel {
1090
- static {
1091
- __name(this, "EVMLiquidityBridgeTransactionCompletionMonitorSentinel");
1092
- }
1093
- static configSchemas = [
1094
- EVMLiquidityBridgeTransactionCompletionMonitorSentinelConfigSchema
1095
- ];
1096
- static defaultConfigSchema = EVMLiquidityBridgeTransactionCompletionMonitorSentinelConfigSchema;
1097
- _attemptsCounter;
1098
- _bridge;
1099
- _bridgeChainId;
1100
- _bridgeRemoteChainId;
1101
- _bridgeTokenAddress;
1102
- _checkCounter;
1103
- _errorCounter;
1104
- _reportMutex = new Mutex();
1105
- _successCounter;
1106
- _wallet;
1107
- get bridge() {
1108
- return assertEx14(this._bridge, () => new Error("Bridge contract not initialized"));
1109
- }
1110
- get completedTransactions() {
1111
- return assertEx14(this.params.completedTransactions, () => "Completed transactions map is not defined");
1112
- }
1113
- get jobCheckInterval() {
1114
- return isDefined10(this.config.jobCheckInterval) ? this.config.jobCheckInterval : defaultJobCheckIntervalMs;
1115
- }
1116
- get pendingTransactions() {
1117
- return assertEx14(this.params.pendingTransactions, () => "Pending transactions map is not defined");
1118
- }
1119
- get wallet() {
1120
- return assertEx14(this._wallet, () => "wallet is required");
1121
- }
1122
- async createHandler() {
1123
- await super.createHandler();
1124
- this._attemptsCounter = this.meter?.createCounter("evm_liquidity_bridge_transaction_completion_monitor_sentinel_attempts_total", {
1125
- description: "Number of attempts"
1126
- });
1127
- this._checkCounter = this.meter?.createCounter("evm_liquidity_bridge_transaction_completion_monitor_sentinel_check_total", {
1128
- description: "Number of checks"
1129
- });
1130
- this._successCounter = this.meter?.createCounter("evm_liquidity_bridge_transaction_completion_monitor_sentinel_success_total", {
1131
- description: "Number of successes"
1132
- });
1133
- this._errorCounter = this.meter?.createCounter("evm_liquidity_bridge_transaction_completion_monitor_sentinel_errors_total", {
1134
- description: "Number of errors"
1135
- });
1136
- const { provider, bridgeAddress } = this.params;
1137
- const key = assertEx14(this.account?.private?.hex, () => new Error("Account private key is required"));
1138
- this._wallet = new Wallet(key, provider);
1139
- this._bridge = LiquidityPoolBridge__factory.connect(getAddress2(bridgeAddress), this._wallet);
1140
- const network = await provider.getNetwork();
1141
- this._bridgeChainId = assertEx14(hexFromBigInt(network.chainId), () => new Error("Failed to parse bridgeChainId"));
1142
- const tokenAddress = await this.bridge.token();
1143
- this._bridgeTokenAddress = asAddress6(tokenAddress, true);
1144
- const bridgeRemoteChain = await this.bridge.remoteChain();
1145
- this._bridgeRemoteChainId = asHex4(bridgeRemoteChain);
1146
- }
1147
- async reportHandler(payloads) {
1148
- if (isDefined10(payloads) && payloads.length > 0) {
1149
- const signedHydratedTransaction = tryUnflattenHydratedTransaction(payloads);
1150
- if (isDefined10(signedHydratedTransaction)) {
1151
- const txHash = await PayloadBuilder12.hash(signedHydratedTransaction[0]);
1152
- this.logger?.info(`Adding transaction ${signedHydratedTransaction[0]} with hash ${txHash} to pending transactions for monitoring`);
1153
- await this.pendingTransactions.set(txHash, signedHydratedTransaction);
1154
- return flattenHydratedTransaction(signedHydratedTransaction);
1155
- }
1156
- return [];
1157
- } else {
1158
- if (this._reportMutex.isLocked()) {
1159
- this.logger?.debug(`EVMLiquidityBridgeTransactionCompletionMonitorSentinel [${this.id}] is already running, skipping report [${Date.now()}]`);
1160
- return [];
1161
- }
1162
- return await this._reportMutex.runExclusive(async () => {
1163
- const response = [];
1164
- if (isUndefined4(payloads) || payloads.length === 0) {
1165
- await this.processAllTransactions();
1166
- }
1167
- return response;
1168
- });
1169
- }
1170
- }
1171
- async processAllTransactions() {
1172
- const results = [];
1173
- for await (const [hash, signedHydratedTransaction] of this.pendingTransactions) {
1174
- const result = await this.processTransaction([
1175
- hash,
1176
- signedHydratedTransaction
1177
- ]);
1178
- if (isDefined10(result)) results.push(result[1]);
1179
- await delay(this.jobCheckInterval);
1180
- }
1181
- return flattenHydratedTransactions(results);
1182
- }
1183
- async processTransaction([hash, signedHydratedTransaction]) {
1184
- this.logger?.info(`Checking for transaction ${signedHydratedTransaction[0]} with hash ${hash}`);
1185
- try {
1186
- let ret = void 0;
1187
- this._checkCounter?.add(1);
1188
- const bridgeIntents = signedHydratedTransaction[1].filter(isBridgeIntent3);
1189
- if (bridgeIntents.length !== 1) {
1190
- await this.pendingTransactions.delete(hash);
1191
- return ret;
1192
- }
1193
- const bridgeIntent = bridgeIntents[0];
1194
- this._attemptsCounter?.add(1);
1195
- const bridgeDestinationObservation = await this.relayBridgeIntentSync(bridgeIntent);
1196
- await this.completedTransactions.set(hash, bridgeDestinationObservation);
1197
- await this.pendingTransactions.delete(hash);
1198
- this._successCounter?.add(1);
1199
- return ret;
1200
- } catch (error) {
1201
- this._errorCounter?.add(1);
1202
- this.logger?.error(`Error checking for transaction ${signedHydratedTransaction[0]} with hash ${hash}:`, error);
1203
- }
1204
- }
1205
- /**
1206
- * Relays a given BridgeIntent.
1207
- * @param bridgeIntent The BridgeIntent to relay
1208
- * @returns Relays the intent in a blocking manner, returning the resulting BridgeDestinationObservation if successful
1209
- */
1210
- async relayBridgeIntentSync(bridgeIntent) {
1211
- const amount = hexToBigInt5(bridgeIntent.destAmount);
1212
- const nonce = await this.wallet.getNonce();
1213
- const srcAddress = getAddress2(bridgeIntent.srcAddress);
1214
- const destAddress = getAddress2(bridgeIntent.destAddress);
1215
- const tx = await this.bridge.bridgeFromRemote(srcAddress, destAddress, amount, nonce);
1216
- const confirmation = await tx.wait();
1217
- const transactionResponse = await confirmation?.getTransaction();
1218
- const destConfirmation = asHex4(transactionResponse?.hash ?? "", true);
1219
- const { schema, ...rest } = bridgeIntent;
1220
- const result = new PayloadBuilder12({
1221
- schema: BridgeDestinationObservationSchema3
1222
- }).fields({
1223
- ...rest,
1224
- destConfirmation
1225
- }).build();
1226
- return result;
1227
- }
1228
- };
1229
-
1230
- // src/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.ts
1231
- import { assertEx as assertEx15, delay as delay2, isDefined as isDefined11, isNull as isNull2, isUndefined as isUndefined5 } from "@xylabs/sdk-js";
1232
- import { PayloadBuilder as PayloadBuilder13 } from "@xyo-network/payload-builder";
1233
- import { asSchema as asSchema2 } from "@xyo-network/payload-model";
1234
- import { AbstractSentinel as AbstractSentinel2 } from "@xyo-network/sentinel-abstract";
1235
- import { flattenHydratedTransaction as flattenHydratedTransaction2, flattenHydratedTransactions as flattenHydratedTransactions2, tryUnflattenHydratedTransaction as tryUnflattenHydratedTransaction2 } from "@xyo-network/xl1-sdk";
1236
- import { Mutex as Mutex2 } from "async-mutex";
1237
- var XL1TransactionCompletionMonitorSentinelConfigSchema = asSchema2("network.xyo.sentinel.chain.transaction.completion.monitor.config", true);
1238
- var defaultJobCheckIntervalMs2 = 15e3;
1239
- var XL1TransactionCompletionMonitorSentinel = class extends AbstractSentinel2 {
1240
- static {
1241
- __name(this, "XL1TransactionCompletionMonitorSentinel");
1242
- }
1243
- static configSchemas = [
1244
- XL1TransactionCompletionMonitorSentinelConfigSchema
1245
- ];
1246
- static defaultConfigSchema = XL1TransactionCompletionMonitorSentinelConfigSchema;
1247
- _attemptsCounter;
1248
- _checkCounter;
1249
- _errorCounter;
1250
- _reportMutex = new Mutex2();
1251
- _successCounter;
1252
- get completedTransactions() {
1253
- return assertEx15(this.params.completedTransactions, () => "Completed transactions map is not defined");
1254
- }
1255
- get jobCheckInterval() {
1256
- return isDefined11(this.config.jobCheckInterval) ? this.config.jobCheckInterval : defaultJobCheckIntervalMs2;
1257
- }
1258
- get pendingTransactions() {
1259
- return assertEx15(this.params.pendingTransactions, () => "Pending transactions map is not defined");
1260
- }
1261
- get viewer() {
1262
- return assertEx15(this.params.viewer, () => "Viewer is not defined in params");
1263
- }
1264
- async createHandler() {
1265
- await super.createHandler();
1266
- this._attemptsCounter = this.meter?.createCounter("xl1_transaction_completion_monitor_sentinel_attempts_total", {
1267
- description: "Number of attempts"
1268
- });
1269
- this._checkCounter = this.meter?.createCounter("xl1_transaction_completion_monitor_sentinel_check_total", {
1270
- description: "Number of checks"
1271
- });
1272
- this._successCounter = this.meter?.createCounter("xl1_transaction_completion_monitor_sentinel_success_total", {
1273
- description: "Number of successes"
1274
- });
1275
- this._errorCounter = this.meter?.createCounter("xl1_transaction_completion_monitor_sentinel_errors_total", {
1276
- description: "Number of errors"
1277
- });
1278
- }
1279
- async reportHandler(payloads) {
1280
- if (isDefined11(payloads) && payloads.length > 0) {
1281
- const signedHydratedTransaction = tryUnflattenHydratedTransaction2(payloads);
1282
- if (isDefined11(signedHydratedTransaction)) {
1283
- const txHash = await PayloadBuilder13.hash(signedHydratedTransaction[0]);
1284
- this.logger?.info(`Adding transaction ${signedHydratedTransaction[0]} with hash ${txHash} to pending transactions for monitoring`);
1285
- await this.pendingTransactions.set(txHash, signedHydratedTransaction);
1286
- return flattenHydratedTransaction2(signedHydratedTransaction);
1287
- }
1288
- return [];
1289
- } else {
1290
- if (this._reportMutex.isLocked()) {
1291
- this.logger?.debug(`XL1TransactionCompletionMonitorSentinel [${this.id}] is already running, skipping report [${Date.now()}]`);
1292
- return [];
1293
- }
1294
- return await this._reportMutex.runExclusive(async () => {
1295
- const response = [];
1296
- if (isUndefined5(payloads) || payloads.length === 0) {
1297
- await this.processAllTransactions();
1298
- }
1299
- return response;
1300
- });
1301
- }
1302
- }
1303
- async processAllTransactions() {
1304
- const results = [];
1305
- for await (const [hash, signedHydratedTransaction] of this.pendingTransactions) {
1306
- const result = await this.processTransaction([
1307
- hash,
1308
- signedHydratedTransaction
1309
- ]);
1310
- if (isDefined11(result)) results.push(result[1]);
1311
- await delay2(this.jobCheckInterval);
1312
- }
1313
- return flattenHydratedTransactions2(results);
1314
- }
1315
- async processTransaction([hash, signedHydratedTransaction]) {
1316
- this.logger?.info(`Checking for transaction ${signedHydratedTransaction[0]} with hash ${hash}`);
1317
- try {
1318
- let ret = void 0;
1319
- this._checkCounter?.add(1);
1320
- this._attemptsCounter?.add(1);
1321
- const tx = await this.viewer.transactionByHash(hash);
1322
- if (isDefined11(tx) && !isNull2(tx)) {
1323
- await this.completedTransactions.set(hash, signedHydratedTransaction);
1324
- this.logger?.info(`Found transaction ${signedHydratedTransaction[0]} with hash ${hash}`);
1325
- this.logger?.info(`Removing completed transaction ${signedHydratedTransaction[0]} with hash ${hash}`);
1326
- await this.pendingTransactions.delete(hash);
1327
- ret = [
1328
- hash,
1329
- signedHydratedTransaction
1330
- ];
1331
- } else {
1332
- const currentBlockNumber = await this.viewer.currentBlockNumber();
1333
- if (signedHydratedTransaction[0].exp < currentBlockNumber) {
1334
- this.logger?.info(`Removing expired transaction ${signedHydratedTransaction[0]} with hash ${hash}`);
1335
- await this.pendingTransactions.delete(hash);
1336
- }
1337
- }
1338
- this._successCounter?.add(1);
1339
- return ret;
1340
- } catch (error) {
1341
- this._errorCounter?.add(1);
1342
- this.logger?.error(`Error checking for transaction ${signedHydratedTransaction[0]} with hash ${hash}:`, error);
1343
- }
1344
- }
1345
- };
1346
-
1347
- // src/manifest/getModuleLocator.ts
1348
- var getModuleLocator = /* @__PURE__ */ __name(async (context) => {
1349
- const { config, locator, logger } = context;
1350
- const { otlpEndpoint } = config.telemetry?.otel ?? {};
1351
- const { path: endpoint = "/metrics", port = 9468 } = config.telemetry?.metrics?.scrape ?? {};
1352
- const { traceProvider, meterProvider } = await initTelemetry({
1353
- attributes: {
1354
- serviceName: "xl1-bridge",
1355
- serviceVersion: "1.0.0"
1356
- },
1357
- otlpEndpoint,
1358
- metricsConfig: {
1359
- endpoint,
1360
- port
1361
- }
1362
- });
1363
- if (isDefined12(logger)) AbstractModule.defaultLogger = logger;
1364
- const statusReporter = logger ? new LoggerModuleStatusReporter(logger) : void 0;
1365
- const moduleLocator = new ModuleFactoryLocator();
1366
- const mongoConfig = config.storage?.mongo;
1367
- if (hasMongoConfig(mongoConfig)) {
1368
- const { connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName } = mongoConfig;
1369
- const payloadSdkConfig = {
1370
- dbConnectionString,
1371
- dbDomain,
1372
- dbName,
1373
- dbPassword,
1374
- dbUserName
1375
- };
1376
- const params = {
1377
- meterProvider,
1378
- payloadSdkConfig,
1379
- statusReporter,
1380
- traceProvider
1381
- };
1382
- moduleLocator.register(MongoDBArchivistV2.factory(params), void 0, true);
1383
- }
1384
- moduleLocator.register(MemoryArchivist.factory({
1385
- traceProvider,
1386
- meterProvider,
1387
- statusReporter
1388
- }));
1389
- moduleLocator.register(MemorySentinel.factory({
1390
- traceProvider,
1391
- meterProvider,
1392
- statusReporter
1393
- }));
1394
- moduleLocator.register(ViewArchivist.factory({
1395
- traceProvider,
1396
- meterProvider,
1397
- statusReporter
1398
- }));
1399
- const gateway = await locator.getInstance(XyoGatewayRunnerMoniker);
1400
- const viewer = assertEx16(gateway.connection.viewer, () => "Gateway viewer is not defined");
1401
- const pendingXl1ToEthXl1BridgeIntentTransactions = await getIterableMap(config, "liquidity_bridge_xl1_to_eth_xl1_pending");
1402
- const completedXl1ToEthXl1BridgeIntentTransactions = await getIterableMap(config, "liquidity_bridge_xl1_to_eth_xl1_completed");
1403
- const xl1TransactionCompletionMonitorSentinelParams = {
1404
- completedTransactions: completedXl1ToEthXl1BridgeIntentTransactions,
1405
- config: {
1406
- schema: XL1TransactionCompletionMonitorSentinelConfigSchema
1407
- },
1408
- meterProvider,
1409
- pendingTransactions: pendingXl1ToEthXl1BridgeIntentTransactions,
1410
- statusReporter,
1411
- traceProvider,
1412
- viewer
1413
- };
1414
- moduleLocator.register(XL1TransactionCompletionMonitorSentinel.factory(xl1TransactionCompletionMonitorSentinelParams));
1415
- const completedEthXl1BridgeTransactions = await getIterableMap(config, "liquidity_bridge_eth_xl1_bridge_completed");
1416
- const provider = await initEvmProvider({
1417
- config
1418
- });
1419
- const bridgeAddress = config.actors.bridge.remoteBridgeContractAddress;
1420
- const evmLiquidityBridgeTransactionCompletionMonitorSentinelParams = {
1421
- bridgeAddress,
1422
- completedTransactions: completedEthXl1BridgeTransactions,
1423
- config: {
1424
- schema: EVMLiquidityBridgeTransactionCompletionMonitorSentinelConfigSchema
1425
- },
1426
- meterProvider,
1427
- pendingTransactions: completedXl1ToEthXl1BridgeIntentTransactions,
1428
- provider,
1429
- statusReporter,
1430
- traceProvider
1431
- };
1432
- moduleLocator.register(EVMLiquidityBridgeTransactionCompletionMonitorSentinel.factory(evmLiquidityBridgeTransactionCompletionMonitorSentinelParams));
1433
- return moduleLocator;
1434
- }, "getModuleLocator");
1076
+ import { hasMongoConfig, mapToMapType } from "@xyo-network/xl1-sdk";
1435
1077
  var getIterableMap = /* @__PURE__ */ __name(async (config, collection) => {
1436
1078
  const mongoConfig = config.storage?.mongo;
1437
1079
  if (hasMongoConfig(mongoConfig)) {
@@ -1460,110 +1102,19 @@ var getIterableMap = /* @__PURE__ */ __name(async (config, collection) => {
1460
1102
  }
1461
1103
  }, "getIterableMap");
1462
1104
 
1463
- // src/manifest/getNode.ts
1464
- import { assertEx as assertEx17 } from "@xylabs/sdk-js";
1465
- import { ManifestWrapper } from "@xyo-network/manifest-wrapper";
1466
- import { buildJsonRpcProviderLocator, HttpRpcTransport } from "@xyo-network/xl1-sdk";
1467
-
1468
- // src/manifest/node.json
1469
- var node_default = {
1470
- $schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
1471
- nodes: [
1472
- {
1473
- config: {
1474
- accountPath: "44'/60'/1",
1475
- name: "XYOEthereumBridge",
1476
- schema: "network.xyo.node.config"
1477
- },
1478
- modules: {
1479
- private: [],
1480
- public: []
1481
- }
1482
- }
1483
- ],
1484
- schema: "network.xyo.manifest"
1485
- };
1486
-
1487
- // src/manifest/nodeManifest.ts
1488
- var NodeManifest = node_default;
1489
-
1490
- // src/manifest/getNode.ts
1491
- var getNode = /* @__PURE__ */ __name(async (context) => {
1492
- const { config, wallet } = context;
1493
- const endpoint = assertEx17(config.actors.bridge.remote?.rpc?.url ?? config.remote?.rpc?.url, () => "RPC URL is required for Node");
1494
- const transportFactory = /* @__PURE__ */ __name((schemas) => new HttpRpcTransport(endpoint, schemas), "transportFactory");
1495
- const signerAccount = await getBridgeWalletAccount(config);
1496
- const locator = await buildJsonRpcProviderLocator({
1497
- signerAccount,
1498
- transportFactory
1499
- });
1500
- const moduleLocator = await getModuleLocator({
1501
- ...context,
1502
- locator
1503
- });
1504
- const wrapper = new ManifestWrapper(NodeManifest, wallet, moduleLocator, [], []);
1505
- const [node, ...childNodes] = await wrapper.loadNodes();
1506
- if (childNodes?.length > 0) {
1507
- await Promise.all(childNodes.map((childNode) => node.register(childNode)));
1508
- await Promise.all(childNodes.map((childNode) => node.attach(childNode.address, true)));
1509
- }
1510
- return node;
1511
- }, "getNode");
1512
-
1513
- // src/manifest/getServices.ts
1514
- import { assertEx as assertEx18, isDefined as isDefined13 } from "@xylabs/sdk-js";
1515
- import { initEvmProvider as initEvmProvider2 } from "@xyo-network/chain-orchestration";
1516
- import { BridgeableToken__factory, LiquidityPoolBridge__factory as LiquidityPoolBridge__factory2 } from "@xyo-network/typechain";
1517
- import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
1518
- import { getAddress as getAddress3, Wallet as Wallet2 } from "ethers";
1519
-
1520
- // src/manifest/getIterableMap.ts
1521
- import { BaseMongoSdk as BaseMongoSdk2 } from "@xylabs/mongo";
1522
- import { MongoMap as MongoMap2 } from "@xyo-network/chain-protocol";
1523
- import { hasMongoConfig as hasMongoConfig2, mapToMapType as mapToMapType2 } from "@xyo-network/xl1-sdk";
1524
- var getIterableMap2 = /* @__PURE__ */ __name(async (config, collection) => {
1525
- const mongoConfig = config.storage?.mongo;
1526
- if (hasMongoConfig2(mongoConfig)) {
1527
- const { connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName } = mongoConfig;
1528
- const payloadSdkConfig = {
1529
- dbConnectionString,
1530
- dbDomain,
1531
- dbName,
1532
- dbPassword,
1533
- dbUserName
1534
- };
1535
- const sdkBalanceSummaryMap = new BaseMongoSdk2({
1536
- ...payloadSdkConfig,
1537
- collection
1538
- });
1539
- const result = await MongoMap2.create({
1540
- sdk: sdkBalanceSummaryMap,
1541
- getCache: {
1542
- enabled: true,
1543
- maxEntries: 5e3
1544
- }
1545
- });
1546
- return result;
1547
- } else {
1548
- return mapToMapType2(/* @__PURE__ */ new Map());
1549
- }
1550
- }, "getIterableMap");
1551
-
1552
- // src/manifest/getServices.ts
1105
+ // src/services/getServices.ts
1553
1106
  var getServices = /* @__PURE__ */ __name(async (context, gateway) => {
1554
1107
  const { config } = context;
1555
- const ethTxStateMap = await getIterableMap2(config, "liquidity_bridge_xl1_to_eth_eth_tx_state");
1556
- const xl1TxStateMap = await getIterableMap2(config, "liquidity_bridge_xl1_to_eth_xl1_tx_state");
1557
- const provider = await initEvmProvider2({
1558
- config
1559
- });
1560
- const { remoteBridgeContractAddress, remoteChainWalletPrivateKey, remoteTokenAddress, mnemonic } = config.actors.bridge;
1561
- const account = isDefined13(mnemonic) ? await HDWallet2.fromPhrase(mnemonic) : await HDWallet2.random();
1562
- const wallet = new Wallet2(remoteChainWalletPrivateKey, provider);
1563
- const bridgeableToken = BridgeableToken__factory.connect(getAddress3(remoteTokenAddress), wallet);
1564
- const bridge = LiquidityPoolBridge__factory2.connect(getAddress3(remoteBridgeContractAddress), wallet);
1108
+ const ethTxStateMap = await getIterableMap(config, "liquidity_bridge_xl1_to_eth_eth_tx_state");
1109
+ const xl1TxStateMap = await getIterableMap(config, "liquidity_bridge_xl1_to_eth_xl1_tx_state");
1110
+ const provider = await initEvmProvider(context);
1111
+ const { remoteBridgeContractAddress, remoteChainWalletPrivateKey, remoteTokenAddress, mnemonic } = config;
1112
+ const account = isDefined10(mnemonic) ? await HDWallet2.fromPhrase(mnemonic) : await HDWallet2.random();
1113
+ const wallet = new Wallet(remoteChainWalletPrivateKey, provider);
1114
+ const bridgeableToken = BridgeableToken__factory.connect(getAddress2(remoteTokenAddress), wallet);
1115
+ const bridge = LiquidityPoolBridge__factory.connect(getAddress2(remoteBridgeContractAddress), wallet);
1565
1116
  const bridgeOwner = await bridge.owner();
1566
- assertEx18(bridgeOwner.toLowerCase() === wallet.address.toLowerCase(), () => "Wallet is not the owner of the bridge contract");
1117
+ assertEx14(bridgeOwner.toLowerCase() === wallet.address.toLowerCase(), () => "Wallet is not the owner of the bridge contract");
1567
1118
  return {
1568
1119
  account,
1569
1120
  bridge,
@@ -1584,43 +1135,11 @@ var addWorkers = /* @__PURE__ */ __name((config, services) => {
1584
1135
 
1585
1136
  // src/server/server.ts
1586
1137
  var hostname = "::";
1587
- var getSeedPhrase = /* @__PURE__ */ __name(async (bios, config, logger) => {
1588
- const storedSeedPhrase = await bios.seedPhraseStore.get("os");
1589
- logger?.debug(`[Bridge] Stored mnemonic: ${storedSeedPhrase}`);
1590
- const { mnemonic } = config.actors.api;
1591
- if (isString(storedSeedPhrase) && isString(mnemonic)) {
1592
- logger?.warn("[Bridge] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.");
1593
- await bios.seedPhraseStore.set("os", mnemonic);
1594
- } else {
1595
- let seedPhrase;
1596
- if (isString(mnemonic)) {
1597
- seedPhrase = mnemonic;
1598
- } else {
1599
- seedPhrase = HDWallet3.generateMnemonic();
1600
- logger?.log("[Bridge] No mnemonic provided, using random mnemonic. This is not recommended for production use.");
1601
- logger?.log(`[Bridge] Mnemonic: ${seedPhrase}`);
1602
- }
1603
- await bios.seedPhraseStore.set("os", seedPhrase);
1604
- }
1605
- return assertEx19(await bios.seedPhraseStore.get("os"), () => "Unable to acquire mnemonic from bios");
1606
- }, "getSeedPhrase");
1607
1138
  var getServer = /* @__PURE__ */ __name(async (context, gateway) => {
1608
1139
  const { logger, config } = context;
1609
- const { port, mnemonic } = config.actors.bridge;
1610
- const bios = await boot();
1611
- const seedPhrase = isDefined14(mnemonic) ? mnemonic : await getSeedPhrase(bios, config, logger);
1612
- const wallet = await HDWallet3.fromPhrase(seedPhrase);
1613
- const nodeContext = {
1614
- wallet,
1615
- logger,
1616
- config
1617
- };
1618
- const node = context.node ?? await getNode(nodeContext);
1619
- const app = getApp(node, config, gateway);
1620
- const services = await getServices({
1621
- config,
1622
- logger
1623
- }, gateway);
1140
+ const { port } = config;
1141
+ const app = getApp(config, gateway);
1142
+ const services = await getServices(context, gateway);
1624
1143
  addWorkers(config, services);
1625
1144
  const server = app.listen(port, hostname, () => logger?.log(`[Bridge] Server listening at http://${hostname}:${port}`));
1626
1145
  server.setTimeout(2e4);
@@ -1646,7 +1165,7 @@ var BridgeActor = class extends ActorV3 {
1646
1165
  }
1647
1166
  async createHandler() {
1648
1167
  await super.createHandler();
1649
- this._gatewayRunner = await this.locator.getInstance(XyoGatewayRunnerMoniker2);
1168
+ this._gatewayRunner = await this.locator.getInstance(XyoGatewayRunnerMoniker);
1650
1169
  }
1651
1170
  async startHandler() {
1652
1171
  await super.startHandler();
@@ -1658,7 +1177,7 @@ var BridgeActor = class extends ActorV3 {
1658
1177
  this.stopServer();
1659
1178
  }
1660
1179
  async startServer() {
1661
- this.server = await getServer(this.context, this._gatewayRunner);
1180
+ this.server = await getServer(asBridgeConfigContext(this.context, true), this._gatewayRunner);
1662
1181
  }
1663
1182
  stopServer() {
1664
1183
  this.server?.close();