@xyo-network/chain-bridge 1.17.2 → 1.17.6

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 (163) hide show
  1. package/dist/node/config/asChainId.d.ts +3 -0
  2. package/dist/node/config/asChainId.d.ts.map +1 -0
  3. package/dist/node/config/asToken.d.ts +3 -0
  4. package/dist/node/config/asToken.d.ts.map +1 -0
  5. package/dist/node/config/getBridgeEscrowAddress.d.ts +5 -0
  6. package/dist/node/config/getBridgeEscrowAddress.d.ts.map +1 -0
  7. package/dist/node/config/getBridgeFeesAddress.d.ts +5 -0
  8. package/dist/node/config/getBridgeFeesAddress.d.ts.map +1 -0
  9. package/dist/node/config/getBridgeSettings.d.ts +3 -0
  10. package/dist/node/config/getBridgeSettings.d.ts.map +1 -0
  11. package/dist/node/config/getBridgeWalletAccount.d.ts +6 -0
  12. package/dist/node/config/getBridgeWalletAccount.d.ts.map +1 -0
  13. package/dist/node/config/getFeeStructure.d.ts +4 -0
  14. package/dist/node/config/getFeeStructure.d.ts.map +1 -0
  15. package/dist/node/config/getGateway.d.ts +3 -0
  16. package/dist/node/config/getGateway.d.ts.map +1 -0
  17. package/dist/node/config/getMaxBridgeAmount.d.ts +4 -0
  18. package/dist/node/config/getMaxBridgeAmount.d.ts.map +1 -0
  19. package/dist/node/config/getMinBridgeAmount.d.ts +4 -0
  20. package/dist/node/config/getMinBridgeAmount.d.ts.map +1 -0
  21. package/dist/node/config/getRemoteChainId.d.ts +4 -0
  22. package/dist/node/config/getRemoteChainId.d.ts.map +1 -0
  23. package/dist/node/config/getRemoteTokenAddress.d.ts +4 -0
  24. package/dist/node/config/getRemoteTokenAddress.d.ts.map +1 -0
  25. package/dist/node/config/getTransferAddresses.d.ts +8 -0
  26. package/dist/node/config/getTransferAddresses.d.ts.map +1 -0
  27. package/dist/node/config/getXl1ChainId.d.ts +4 -0
  28. package/dist/node/config/getXl1ChainId.d.ts.map +1 -0
  29. package/dist/node/config/getXl1TokenAddress.d.ts +4 -0
  30. package/dist/node/config/getXl1TokenAddress.d.ts.map +1 -0
  31. package/dist/node/config/index.d.ts +16 -0
  32. package/dist/node/config/index.d.ts.map +1 -0
  33. package/dist/node/index.mjs +1155 -206
  34. package/dist/node/index.mjs.map +1 -1
  35. package/dist/node/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.d.ts.map +1 -1
  36. package/dist/node/manifest/getLocator.d.ts.map +1 -1
  37. package/dist/node/manifest/public/index.d.ts +0 -4
  38. package/dist/node/manifest/public/index.d.ts.map +1 -1
  39. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts +77 -0
  40. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts.map +1 -0
  41. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/index.d.ts +2 -0
  42. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/index.d.ts.map +1 -0
  43. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.d.ts +56 -0
  44. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.d.ts.map +1 -0
  45. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/index.d.ts +2 -0
  46. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/index.d.ts.map +1 -0
  47. package/dist/node/modules/index.d.ts +2 -1
  48. package/dist/node/modules/index.d.ts.map +1 -1
  49. package/dist/node/server/app.d.ts +3 -1
  50. package/dist/node/server/app.d.ts.map +1 -1
  51. package/dist/node/server/routes/addRoutes.d.ts +2 -1
  52. package/dist/node/server/routes/addRoutes.d.ts.map +1 -1
  53. package/dist/node/server/routes/bridge/addBridgeRoutes.d.ts +2 -1
  54. package/dist/node/server/routes/bridge/addBridgeRoutes.d.ts.map +1 -1
  55. package/dist/node/server/routes/bridge/routeDefinitions/getRouteDefinitions.d.ts +2 -1
  56. package/dist/node/server/routes/bridge/routeDefinitions/getRouteDefinitions.d.ts.map +1 -1
  57. package/dist/node/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.d.ts +2 -1
  58. package/dist/node/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.d.ts.map +1 -1
  59. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeConfig.d.ts +4 -0
  60. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeConfig.d.ts.map +1 -0
  61. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.d.ts +2 -1
  62. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.d.ts.map +1 -1
  63. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts +2 -1
  64. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts.map +1 -1
  65. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts +2 -1
  66. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts.map +1 -1
  67. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts +2 -1
  68. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts.map +1 -1
  69. package/dist/node/server/routes/bridge/routeDefinitions/routes/index.d.ts +1 -0
  70. package/dist/node/server/routes/bridge/routeDefinitions/routes/index.d.ts.map +1 -1
  71. package/dist/node/server/routes/index.d.ts +0 -2
  72. package/dist/node/server/routes/index.d.ts.map +1 -1
  73. package/dist/node/server/server.d.ts +1 -1
  74. package/dist/node/server/server.d.ts.map +1 -1
  75. package/dist/node/util/calculateBridgeFees.d.ts +10 -0
  76. package/dist/node/util/calculateBridgeFees.d.ts.map +1 -0
  77. package/dist/node/util/generateBridgeEstimate.d.ts +5 -0
  78. package/dist/node/util/generateBridgeEstimate.d.ts.map +1 -0
  79. package/dist/node/util/index.d.ts +6 -0
  80. package/dist/node/util/index.d.ts.map +1 -0
  81. package/dist/node/util/validateBridgeEstimate.d.ts +13 -0
  82. package/dist/node/util/validateBridgeEstimate.d.ts.map +1 -0
  83. package/dist/node/util/validateBridgeEstimateExact.d.ts +12 -0
  84. package/dist/node/util/validateBridgeEstimateExact.d.ts.map +1 -0
  85. package/dist/node/util/validateBridgeTransaction.d.ts +15 -0
  86. package/dist/node/util/validateBridgeTransaction.d.ts.map +1 -0
  87. package/package.json +31 -15
  88. package/src/config/asChainId.ts +7 -0
  89. package/src/config/asToken.ts +7 -0
  90. package/src/config/getBridgeEscrowAddress.ts +13 -0
  91. package/src/config/getBridgeFeesAddress.ts +13 -0
  92. package/src/config/getBridgeSettings.ts +24 -0
  93. package/src/config/getBridgeWalletAccount.ts +34 -0
  94. package/src/config/getFeeStructure.ts +8 -0
  95. package/src/config/getGateway.ts +19 -0
  96. package/src/config/getMaxBridgeAmount.ts +7 -0
  97. package/src/config/getMinBridgeAmount.ts +7 -0
  98. package/src/config/getRemoteChainId.ts +10 -0
  99. package/src/config/getRemoteTokenAddress.ts +10 -0
  100. package/src/config/getTransferAddresses.ts +17 -0
  101. package/src/config/getXl1ChainId.ts +13 -0
  102. package/src/config/getXl1TokenAddress.ts +12 -0
  103. package/src/config/index.ts +15 -0
  104. package/src/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.ts +1 -2
  105. package/src/manifest/getLocator.ts +97 -34
  106. package/src/manifest/public/Ethereum.json +24 -64
  107. package/src/manifest/public/XL1.json +24 -64
  108. package/src/manifest/public/index.ts +0 -6
  109. package/src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.ts +234 -0
  110. package/src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/index.ts +1 -0
  111. package/src/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.ts +166 -0
  112. package/src/modules/XL1TransactionCompletionMonitorSentinel/index.ts +1 -0
  113. package/src/modules/index.ts +2 -1
  114. package/src/server/app.ts +5 -4
  115. package/src/server/routes/addRoutes.ts +3 -2
  116. package/src/server/routes/bridge/addBridgeRoutes.ts +3 -2
  117. package/src/server/routes/bridge/routeDefinitions/getRouteDefinitions.ts +8 -6
  118. package/src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts +16 -13
  119. package/src/server/routes/bridge/routeDefinitions/routes/bridgeConfig.ts +43 -0
  120. package/src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts +40 -37
  121. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts +68 -45
  122. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts +48 -75
  123. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts +95 -47
  124. package/src/server/routes/bridge/routeDefinitions/routes/index.ts +1 -0
  125. package/src/server/routes/index.ts +0 -2
  126. package/src/server/server.ts +37 -31
  127. package/src/util/calculateBridgeFees.ts +39 -0
  128. package/src/util/generateBridgeEstimate.ts +64 -0
  129. package/src/util/index.ts +5 -0
  130. package/src/util/validateBridgeEstimate.ts +60 -0
  131. package/src/util/validateBridgeEstimateExact.ts +34 -0
  132. package/src/util/validateBridgeTransaction.ts +40 -0
  133. package/dist/node/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.d.ts +0 -47
  134. package/dist/node/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.d.ts.map +0 -1
  135. package/dist/node/modules/XL1toEvmBridgeSentinel/index.d.ts +0 -2
  136. package/dist/node/modules/XL1toEvmBridgeSentinel/index.d.ts.map +0 -1
  137. package/dist/node/server/routes/address/AddressPathParams.d.ts +0 -4
  138. package/dist/node/server/routes/address/AddressPathParams.d.ts.map +0 -1
  139. package/dist/node/server/routes/address/addNodeRoutes.d.ts +0 -3
  140. package/dist/node/server/routes/address/addNodeRoutes.d.ts.map +0 -1
  141. package/dist/node/server/routes/address/get/get.d.ts +0 -4
  142. package/dist/node/server/routes/address/get/get.d.ts.map +0 -1
  143. package/dist/node/server/routes/address/get/index.d.ts +0 -2
  144. package/dist/node/server/routes/address/get/index.d.ts.map +0 -1
  145. package/dist/node/server/routes/address/index.d.ts +0 -2
  146. package/dist/node/server/routes/address/index.d.ts.map +0 -1
  147. package/dist/node/server/routes/address/post/getQueryConfig.d.ts +0 -6
  148. package/dist/node/server/routes/address/post/getQueryConfig.d.ts.map +0 -1
  149. package/dist/node/server/routes/address/post/index.d.ts +0 -2
  150. package/dist/node/server/routes/address/post/index.d.ts.map +0 -1
  151. package/dist/node/server/routes/address/post/post.d.ts +0 -8
  152. package/dist/node/server/routes/address/post/post.d.ts.map +0 -1
  153. package/src/manifest/public/Chain.json +0 -32
  154. package/src/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.ts +0 -156
  155. package/src/modules/XL1toEvmBridgeSentinel/index.ts +0 -1
  156. package/src/server/routes/address/AddressPathParams.ts +0 -3
  157. package/src/server/routes/address/addNodeRoutes.ts +0 -21
  158. package/src/server/routes/address/get/get.ts +0 -30
  159. package/src/server/routes/address/get/index.ts +0 -1
  160. package/src/server/routes/address/index.ts +0 -1
  161. package/src/server/routes/address/post/getQueryConfig.ts +0 -23
  162. package/src/server/routes/address/post/index.ts +0 -1
  163. package/src/server/routes/address/post/post.ts +0 -77
@@ -1 +1 @@
1
- {"version":3,"file":"addRoutes.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/addRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,SAErC,CAAA"}
1
+ {"version":3,"file":"addRoutes.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/addRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,SAAS,GAAI,KAAK,OAAO,EAAE,QAAQ,MAAM,SAErD,CAAA"}
@@ -1,3 +1,4 @@
1
+ import type { Config } from '@xyo-network/xl1-protocol-sdk';
1
2
  import type { Express } from 'express';
2
- export declare const addBridgeRoutes: (app: Express) => void;
3
+ export declare const addBridgeRoutes: (app: Express, config: Config) => void;
3
4
  //# sourceMappingURL=addBridgeRoutes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addBridgeRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/bridge/addBridgeRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,SAK3C,CAAA"}
1
+ {"version":3,"file":"addBridgeRoutes.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/bridge/addBridgeRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,EAAE,QAAQ,MAAM,SAK3D,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { RouteDefinition } from '@xylabs/express';
2
- export declare const getRouteDefinitions: () => RouteDefinition[];
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export declare const getRouteDefinitions: (config: Config) => RouteDefinition[];
3
4
  //# sourceMappingURL=getRouteDefinitions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getRouteDefinitions.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/bridge/routeDefinitions/getRouteDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAMtD,eAAO,MAAM,mBAAmB,QAAO,eAAe,EAOrD,CAAA"}
1
+ {"version":3,"file":"getRouteDefinitions.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/bridge/routeDefinitions/getRouteDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,KAAG,eAAe,EAQnE,CAAA"}
@@ -1,2 +1,3 @@
1
- export declare const ChainIdPathParam: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
1
+ import type { Config } from '@xyo-network/xl1-protocol-sdk';
2
+ export declare const getRemoteChainIdZod: (config: Config) => import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
2
3
  //# sourceMappingURL=ChainIdPathParam.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainIdPathParam.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,kHAS5B,CAAA"}
1
+ {"version":3,"file":"ChainIdPathParam.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAI3D,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,qHAYjD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { RouteDefinition } from '@xylabs/express';
2
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export declare const makeBridgeConfigRoute: (config: Config) => RouteDefinition;
4
+ //# sourceMappingURL=bridgeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridgeConfig.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EAAqB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAQ9E,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG,eAgCtD,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { RouteDefinition } from '@xylabs/express';
2
- export declare const bridgeFromRemoteStatus: RouteDefinition;
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export declare const makeBridgeFromRemoteStatusRoute: (config: Config) => RouteDefinition;
3
4
  //# sourceMappingURL=bridgeFromRemoteStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeFromRemoteStatus.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA0BtD,eAAO,MAAM,sBAAsB,EAAE,eA4BpC,CAAA"}
1
+ {"version":3,"file":"bridgeFromRemoteStatus.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAStD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,eAAO,MAAM,+BAA+B,GAAI,QAAQ,MAAM,KAAG,eA0ChE,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { RouteDefinition } from '@xylabs/express';
2
- export declare const bridgeToRemote: RouteDefinition;
2
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export declare const makeBridgeToRemoteRoute: (config: Config) => RouteDefinition;
3
4
  //# sourceMappingURL=bridgeToRemote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeToRemote.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA+BtD,eAAO,MAAM,cAAc,EAAE,eAqB5B,CAAA"}
1
+ {"version":3,"file":"bridgeToRemote.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAYtD,OAAO,EAAE,KAAK,MAAM,EAA8B,MAAM,+BAA+B,CAAA;AAMvF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,eAyDxD,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { RouteDefinition } from '@xylabs/express';
2
- export declare const bridgeToRemoteEstimate: RouteDefinition;
2
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export declare const makeBridgeToRemoteEstimateRoute: (config: Config) => RouteDefinition;
3
4
  //# sourceMappingURL=bridgeToRemoteEstimate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeToRemoteEstimate.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA2CtD,eAAO,MAAM,sBAAsB,EAAE,eAuCpC,CAAA"}
1
+ {"version":3,"file":"bridgeToRemoteEstimate.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAOtD,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAOrF,eAAO,MAAM,+BAA+B,GAAI,QAAQ,MAAM,KAAG,eAyChE,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import type { RouteDefinition } from '@xylabs/express';
2
- export declare const bridgeToRemoteStatus: RouteDefinition;
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export declare const makeBridgeToRemoteStatusRoute: (config: Config) => RouteDefinition;
3
4
  //# sourceMappingURL=bridgeToRemoteStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeToRemoteStatus.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AA0BtD,eAAO,MAAM,oBAAoB,EAAE,eA4BlC,CAAA"}
1
+ {"version":3,"file":"bridgeToRemoteStatus.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAWtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAO3D,eAAO,MAAM,6BAA6B,GAAI,QAAQ,MAAM,KAAG,eAoF9D,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './bridgeConfig.ts';
1
2
  export * from './bridgeFromRemoteStatus.ts';
2
3
  export * from './bridgeToRemote.ts';
3
4
  export * from './bridgeToRemoteEstimate.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA"}
@@ -1,4 +1,2 @@
1
- export * from './address/index.ts';
2
1
  export * from './addRoutes.ts';
3
- export * from './healthz/index.ts';
4
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@xylabs/sdk-js';
1
+ import { type Logger } from '@xylabs/sdk-js';
2
2
  import type { NodeInstance } from '@xyo-network/node-model';
3
3
  import { type Config } from '@xyo-network/xl1-protocol-sdk';
4
4
  interface GetServerContext {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA6B3D,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,gHAcxD,CAAA"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAC0B,KAAK,MAAM,EAC3C,MAAM,gBAAgB,CAAA;AAGvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA8B3D,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,YAAY,CAAA;CACpB;AAED,eAAO,MAAM,SAAS,GAAU,SAAS,gBAAgB,gHAcxD,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { Hex } from '@xylabs/sdk-js';
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk';
3
+ export type FeeStructure = Pick<Config['bridge'], 'feeFixed' | 'feeRateBasisPoints'>;
4
+ export interface FeeCalculationResult {
5
+ destAmount: Hex;
6
+ feeFixed: Hex;
7
+ feeVariable: Hex;
8
+ }
9
+ export declare const calculateBridgeFees: (srcAmount: Hex, feeStructure: FeeStructure) => FeeCalculationResult;
10
+ //# sourceMappingURL=calculateBridgeFees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateBridgeFees.d.ts","sourceRoot":"","sources":["../../../src/util/calculateBridgeFees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAAA;AAEpF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,GAAG,CAAA;IACf,QAAQ,EAAE,GAAG,CAAA;IACb,WAAW,EAAE,GAAG,CAAA;CACjB;AAED,eAAO,MAAM,mBAAmB,GAAI,WAAW,GAAG,EAAE,cAAc,YAAY,KAAG,oBA0BhF,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { Hex } from '@xylabs/sdk-js';
2
+ import type { BridgeIntent, Transfer } from '@xyo-network/xl1-protocol';
3
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
4
+ export declare const generateBridgeEstimate: (srcAddress: Hex, srcAmount: Hex, destAddress: Hex, config: Config, nonceOverride?: string) => Promise<[BridgeIntent, Transfer]>;
5
+ //# sourceMappingURL=generateBridgeEstimate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateBridgeEstimate.d.ts","sourceRoot":"","sources":["../../../src/util/generateBridgeEstimate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAIzC,OAAO,KAAK,EACV,YAAY,EAAsB,QAAQ,EAC3C,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAM3D,eAAO,MAAM,sBAAsB,GACjC,YAAY,GAAG,EACf,WAAW,GAAG,EACd,aAAa,GAAG,EAChB,QAAQ,MAAM,EACd,gBAAgB,MAAM,KACrB,OAAO,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CA2ClC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export * from './calculateBridgeFees.ts';
2
+ export * from './generateBridgeEstimate.ts';
3
+ export * from './validateBridgeEstimate.ts';
4
+ export * from './validateBridgeEstimateExact.ts';
5
+ export * from './validateBridgeTransaction.ts';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { BridgeIntent, Transfer } from '@xyo-network/xl1-protocol';
2
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
3
+ /**
4
+ * Validates a bridge estimate by checking the intent and transfer against the provided configuration. This method
5
+ * exists to allow for "at least" validation of a bridge estimates in case we want to allow for some flexibility in
6
+ * the bridge estimate.
7
+ * @param intent The BridgeIntent
8
+ * @param transfer The Transfer
9
+ * @param config The Config
10
+ * @returns True if the bridge estimate satisfies bridging conditions, false otherwise.
11
+ */
12
+ export declare const validateBridgeEstimate: (intent: BridgeIntent, transfer: Transfer, config: Config) => Promise<boolean>;
13
+ //# sourceMappingURL=validateBridgeEstimate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateBridgeEstimate.d.ts","sourceRoot":"","sources":["../../../src/util/validateBridgeEstimate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAK3D;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,YAAY,EACpB,UAAU,QAAQ,EAClB,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAuCjB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import type { BridgeIntent, Transfer } from '@xyo-network/xl1-protocol';
2
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
3
+ /**
4
+ * Validates a bridge estimate by checking the intent and transfer against the provided configuration. This method
5
+ * only returns true if the bridge estimate matches exactly.
6
+ * @param intent The BridgeIntent
7
+ * @param transfer The Transfer
8
+ * @param config The Config
9
+ * @returns True if the bridge estimate satisfies bridging conditions, false otherwise.
10
+ */
11
+ export declare const validateBridgeEstimateExact: (intent: BridgeIntent, transfer: Transfer, config: Config) => Promise<boolean>;
12
+ //# sourceMappingURL=validateBridgeEstimateExact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateBridgeEstimateExact.d.ts","sourceRoot":"","sources":["../../../src/util/validateBridgeEstimateExact.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AACvE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAI3D;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACtC,QAAQ,YAAY,EACpB,UAAU,QAAQ,EAClB,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAcjB,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { BridgeIntent, TransactionBoundWitness, Transfer } from '@xyo-network/xl1-protocol';
2
+ import { type Config } from '@xyo-network/xl1-protocol-sdk';
3
+ /**
4
+ * Validates a bridge estimate by checking the intent and transfer against the provided configuration. This method
5
+ * exists to allow for "at least" validation of a bridge estimates in case we want to allow for some flexibility in
6
+ * the bridge estimate.
7
+ * @ param signedTransaction The signed transaction bound witness
8
+ * @param signedTxBw The signed transaction bound witness
9
+ * @param intent The BridgeIntent
10
+ * @param transfer The Transfer
11
+ * @param config The Config
12
+ * @returns True if the bridge estimate satisfies bridging conditions, false otherwise.
13
+ */
14
+ export declare const validateBridgeTransaction: (signedTxBw: TransactionBoundWitness, intent: BridgeIntent, transfer: Transfer, config: Config) => Promise<boolean>;
15
+ //# sourceMappingURL=validateBridgeTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateBridgeTransaction.d.ts","sourceRoot":"","sources":["../../../src/util/validateBridgeTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAChD,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAE3D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,GACpC,YAAY,uBAAuB,EACnC,QAAQ,YAAY,EACpB,UAAU,QAAQ,EAClB,QAAQ,MAAM,KACb,OAAO,CAAC,OAAO,CAajB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/chain-bridge",
3
- "version": "1.17.2",
3
+ "version": "1.17.6",
4
4
  "description": "XYO Layer One Bridge",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -52,25 +52,40 @@
52
52
  "@opentelemetry/instrumentation": "~0.208.0",
53
53
  "@opentelemetry/instrumentation-express": "~0.57.0",
54
54
  "@opentelemetry/instrumentation-http": "~0.208.0",
55
- "@xylabs/express": "~5.0.50",
56
- "@xylabs/sdk-js": "~5.0.50",
55
+ "@xylabs/express": "~5.0.51",
56
+ "@xylabs/mongo": "~5.0.51",
57
+ "@xylabs/sdk-js": "~5.0.51",
58
+ "@xyo-network/archivist-memory": "~5.2.17",
57
59
  "@xyo-network/archivist-model": "~5.2.17",
60
+ "@xyo-network/archivist-mongodb": "~5.2.17",
61
+ "@xyo-network/archivist-view": "~5.2.17",
62
+ "@xyo-network/bios": "~7.2.0",
58
63
  "@xyo-network/boundwitness-model": "~5.2.17",
59
- "@xyo-network/chain-protocol": "~1.17.2",
64
+ "@xyo-network/boundwitness-validator": "~5.2.17",
65
+ "@xyo-network/chain-protocol": "workspace:~",
66
+ "@xyo-network/chain-services": "workspace:~",
67
+ "@xyo-network/chain-telemetry": "workspace:~",
60
68
  "@xyo-network/manifest-model": "~5.2.17",
69
+ "@xyo-network/manifest-wrapper": "~5.2.17",
70
+ "@xyo-network/module-abstract": "~5.2.17",
61
71
  "@xyo-network/module-factory-locator": "~5.2.17",
62
72
  "@xyo-network/module-model": "~5.2.17",
63
73
  "@xyo-network/node-model": "~5.2.17",
64
74
  "@xyo-network/payload-builder": "~5.2.17",
65
75
  "@xyo-network/payload-model": "~5.2.17",
66
76
  "@xyo-network/sentinel-abstract": "~5.2.17",
77
+ "@xyo-network/sentinel-memory": "~5.2.17",
67
78
  "@xyo-network/sentinel-model": "~5.2.17",
68
79
  "@xyo-network/typechain": "~4.0.11",
80
+ "@xyo-network/wallet": "~5.2.17",
69
81
  "@xyo-network/wallet-model": "~5.2.17",
70
- "@xyo-network/xl1-protocol": "~1.14.16",
71
- "@xyo-network/xl1-protocol-sdk": "~1.17.2",
82
+ "@xyo-network/xl1-protocol": "~1.14.17",
83
+ "@xyo-network/xl1-protocol-sdk": "workspace:~",
84
+ "@xyo-network/xl1-rpc": "workspace:~",
85
+ "async-mutex": "~0.5.0",
72
86
  "compression": "~1.8.1",
73
87
  "cors": "~2.8.5",
88
+ "ethers": "~6.16.0",
74
89
  "express": "~5.2.1",
75
90
  "rxjs": "~7.8.2",
76
91
  "uuid": "~13.0.0",
@@ -82,11 +97,12 @@
82
97
  "@types/cors": "~2.8.19",
83
98
  "@types/express": "5.0.6",
84
99
  "@types/express-serve-static-core": "~5.1.0",
85
- "@types/node": "~24.10.1",
86
- "@xylabs/mongo": "~5.0.50",
87
- "@xylabs/sdk-js": "~5.0.50",
100
+ "@types/node": "~24.10.3",
101
+ "@xylabs/mongo": "~5.0.51",
102
+ "@xylabs/sdk-js": "~5.0.51",
88
103
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
89
104
  "@xylabs/tsconfig": "~7.2.8",
105
+ "@xylabs/vitest-extended": "~5.0.51",
90
106
  "@xyo-network/account": "~5.2.17",
91
107
  "@xyo-network/account-model": "~5.2.17",
92
108
  "@xyo-network/archivist-abstract": "~5.2.17",
@@ -96,10 +112,9 @@
96
112
  "@xyo-network/bios": "~7.2.0",
97
113
  "@xyo-network/bios-model": "~7.2.0",
98
114
  "@xyo-network/boundwitness-builder": "~5.2.17",
99
- "@xyo-network/chain-modules": "~1.17.2",
100
- "@xyo-network/chain-protocol": "~1.17.2",
101
- "@xyo-network/chain-services": "~1.17.2",
102
- "@xyo-network/chain-telemetry": "~1.17.2",
115
+ "@xyo-network/chain-protocol": "workspace:~",
116
+ "@xyo-network/chain-services": "workspace:~",
117
+ "@xyo-network/chain-telemetry": "workspace:~",
103
118
  "@xyo-network/manifest-wrapper": "~5.2.17",
104
119
  "@xyo-network/module-abstract": "~5.2.17",
105
120
  "@xyo-network/module-abstract-mongodb": "~5.2.17",
@@ -108,12 +123,13 @@
108
123
  "@xyo-network/payload-builder": "~5.2.17",
109
124
  "@xyo-network/sentinel-memory": "~5.2.17",
110
125
  "@xyo-network/wallet": "~5.2.17",
111
- "@xyo-network/xl1-protocol": "~1.14.16",
126
+ "@xyo-network/xl1-protocol": "~1.14.17",
112
127
  "async-mutex": "~0.5.0",
113
128
  "dotenv": "~17.2.3",
114
129
  "eslint": "^9.39.1",
115
130
  "ethers": "^6.16.0",
116
131
  "http-status-codes": "~2.3.0",
132
+ "mongodb": "~6.21.0",
117
133
  "nodemon": "~3.1.11",
118
134
  "tslib": "~2.8.1",
119
135
  "typescript": "~5.9.3",
@@ -127,4 +143,4 @@
127
143
  "publishConfig": {
128
144
  "access": "restricted"
129
145
  }
130
- }
146
+ }
@@ -0,0 +1,7 @@
1
+ import { asHex } from '@xylabs/sdk-js'
2
+ import type { ChainId } from '@xyo-network/xl1-protocol'
3
+
4
+ export const asChainId = (value: unknown): ChainId | undefined => {
5
+ const chainId = asHex(value)
6
+ return chainId
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import { asAddress } from '@xylabs/sdk-js'
3
+
4
+ export const asToken = (value: unknown): Address | undefined => {
5
+ const token = asAddress(value)
6
+ return token
7
+ }
@@ -0,0 +1,13 @@
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import { asAddress, assertEx } from '@xylabs/sdk-js'
3
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
+
5
+ export const tryGetBridgeEscrowAddress = (config: Config): Address | undefined => {
6
+ const address = asAddress(config.bridge.escrowAddress)
7
+ return address
8
+ }
9
+
10
+ export const getBridgeEscrowAddress = (config: Config): Address => {
11
+ const address = assertEx(tryGetBridgeEscrowAddress(config), () => `Invalid bridge escrow address: ${config.bridge.escrowAddress}`)
12
+ return address
13
+ }
@@ -0,0 +1,13 @@
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import { asAddress, assertEx } from '@xylabs/sdk-js'
3
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
+
5
+ export const tryGetBridgeFeesAddress = (config: Config): Address | undefined => {
6
+ const address = asAddress(config.bridge.feesAddress)
7
+ return address
8
+ }
9
+
10
+ export const getBridgeFeesAddress = (config: Config): Address => {
11
+ const address = assertEx(tryGetBridgeFeesAddress(config), () => `Invalid bridge fees address: ${config.bridge.feesAddress}`)
12
+ return address
13
+ }
@@ -0,0 +1,24 @@
1
+ import type { BridgeSettings, Config } from '@xyo-network/xl1-protocol-sdk'
2
+
3
+ import { getFeeStructure } from './getFeeStructure.ts'
4
+ import { getMaxBridgeAmount } from './getMaxBridgeAmount.ts'
5
+ import { getMinBridgeAmount } from './getMinBridgeAmount.ts'
6
+ import { getRemoteChainId } from './getRemoteChainId.ts'
7
+ import { getRemoteTokenAddress } from './getRemoteTokenAddress.ts'
8
+ import { getTransferAddresses } from './getTransferAddresses.ts'
9
+ import { getXl1ChainId } from './getXl1ChainId.ts'
10
+ import { getXl1TokenAddress } from './getXl1TokenAddress.ts'
11
+
12
+ export const getBridgeSettings = async (config: Config): Promise<BridgeSettings> => {
13
+ const { feeFixed, feeRateBasisPoints } = getFeeStructure(config)
14
+ const { feesAddress, escrowAddress } = await getTransferAddresses(config)
15
+ const maxBridgeAmount = getMaxBridgeAmount(config)
16
+ const minBridgeAmount = getMinBridgeAmount(config)
17
+ const remoteChainId = getRemoteChainId(config)
18
+ const remoteTokenAddress = getRemoteTokenAddress(config)
19
+ const xl1TokenAddress = getXl1TokenAddress(config)
20
+ const xl1ChainId = getXl1ChainId(config)
21
+ return {
22
+ feeFixed, feeRateBasisPoints, feesAddress, escrowAddress, maxBridgeAmount, minBridgeAmount, remoteChainId, remoteTokenAddress, xl1TokenAddress, xl1ChainId,
23
+ }
24
+ }
@@ -0,0 +1,34 @@
1
+ import type { Address, Promisable } from '@xylabs/sdk-js'
2
+ import { isDefined, isUndefined } from '@xylabs/sdk-js'
3
+ import { HDWallet } from '@xyo-network/wallet'
4
+ import type { WalletInstance } from '@xyo-network/wallet-model'
5
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
6
+ import { ADDRESS_INDEX, generateXyoBaseWalletFromPhrase } from '@xyo-network/xl1-protocol-sdk'
7
+
8
+ let accountServiceSingleton: Promisable<WalletInstance> | undefined
9
+
10
+ export const getBridgeWalletAccount = async (config: Config): Promise<WalletInstance> => {
11
+ if (accountServiceSingleton) return accountServiceSingleton
12
+ let walletPhrase = config.bridge.mnemonic
13
+ if (isUndefined(walletPhrase)) {
14
+ console.log('[Bridge] No wallet mnemonic specified!')
15
+ const randomMnemonic = HDWallet.generateMnemonic()
16
+ console.log(`[Bridge] Using randomly generated mnemonic:
17
+
18
+ ${randomMnemonic}
19
+
20
+ `)
21
+ walletPhrase = randomMnemonic
22
+ }
23
+ const wallet = await generateXyoBaseWalletFromPhrase(walletPhrase)
24
+ const account = await wallet.derivePath(ADDRESS_INDEX.XYO)
25
+ accountServiceSingleton = account
26
+ return accountServiceSingleton
27
+ }
28
+
29
+ export const getAddressOrBridgeWalletAccountAddress = async (getConfigAccount: (config: Config) => Address | undefined, config: Config): Promise<Address> => {
30
+ const address = getConfigAccount(config)
31
+ if (isDefined(address)) return address
32
+ const walletAccount = await getBridgeWalletAccount(config)
33
+ return walletAccount.address
34
+ }
@@ -0,0 +1,8 @@
1
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
2
+
3
+ import type { FeeStructure } from '../util/index.ts'
4
+
5
+ export const getFeeStructure = (config: Config): FeeStructure => {
6
+ const { feeFixed, feeRateBasisPoints } = config.bridge
7
+ return { feeFixed, feeRateBasisPoints }
8
+ }
@@ -0,0 +1,19 @@
1
+ import { isDefined } from '@xylabs/sdk-js'
2
+ import { HDWallet } from '@xyo-network/wallet'
3
+ import {
4
+ type Config, SimpleXyoGatewayRunner, SimpleXyoSigner, type XyoGatewayRunner,
5
+ } from '@xyo-network/xl1-protocol-sdk'
6
+ import { HttpRpcXyoConnection } from '@xyo-network/xl1-rpc'
7
+
8
+ let gatewayInstance: XyoGatewayRunner | undefined
9
+
10
+ export const getGateway = async (config: Config): Promise<XyoGatewayRunner> => {
11
+ if (isDefined(gatewayInstance)) return gatewayInstance
12
+ const { mnemonic, chainRpcApiUrl: endpoint } = config.bridge
13
+ const walletPromise = isDefined(mnemonic) ? HDWallet.fromPhrase(mnemonic) : HDWallet.random()
14
+ const account = await walletPromise
15
+ const signer = new SimpleXyoSigner(account)
16
+ const connection = new HttpRpcXyoConnection({ endpoint })
17
+ gatewayInstance = new SimpleXyoGatewayRunner(connection, signer)
18
+ return gatewayInstance
19
+ }
@@ -0,0 +1,7 @@
1
+ import type { Hex } from '@xylabs/sdk-js'
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
3
+
4
+ export const getMaxBridgeAmount = (config: Config): Hex => {
5
+ const { maxBridgeAmount } = config.bridge
6
+ return maxBridgeAmount
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { Hex } from '@xylabs/sdk-js'
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
3
+
4
+ export const getMinBridgeAmount = (config: Config): Hex => {
5
+ const { minBridgeAmount } = config.bridge
6
+ return minBridgeAmount
7
+ }
@@ -0,0 +1,10 @@
1
+ import { assertEx } from '@xylabs/sdk-js'
2
+ import type { ChainId } from '@xyo-network/xl1-protocol'
3
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
+
5
+ import { asChainId } from './asChainId.ts'
6
+
7
+ export const getRemoteChainId = (config: Config): ChainId => {
8
+ const remoteChainId = assertEx(asChainId(config.bridge.remoteChainId), () => 'Invalid remote chain ID in config')
9
+ return remoteChainId
10
+ }
@@ -0,0 +1,10 @@
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import { assertEx } from '@xylabs/sdk-js'
3
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
+
5
+ import { asToken } from './asToken.ts'
6
+
7
+ export const getRemoteTokenAddress = (config: Config): Address => {
8
+ const token = asToken(config.bridge.remoteTokenAddress)
9
+ return assertEx(token, () => 'Remote token address is not defined in bridge configuration')
10
+ }
@@ -0,0 +1,17 @@
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
3
+
4
+ import { tryGetBridgeEscrowAddress } from './getBridgeEscrowAddress.ts'
5
+ import { tryGetBridgeFeesAddress } from './getBridgeFeesAddress.ts'
6
+ import { getBridgeWalletAccount } from './getBridgeWalletAccount.ts'
7
+
8
+ export interface TransferAddresses {
9
+ escrowAddress: Address
10
+ feesAddress: Address
11
+ }
12
+
13
+ export const getTransferAddresses = async (config: Config): Promise<TransferAddresses> => {
14
+ const escrowAddress = tryGetBridgeEscrowAddress(config) ?? (await getBridgeWalletAccount(config)).address
15
+ const feesAddress = tryGetBridgeFeesAddress(config) ?? (await getBridgeWalletAccount(config)).address
16
+ return { escrowAddress, feesAddress }
17
+ }
@@ -0,0 +1,13 @@
1
+ import { assertEx, isDefined } from '@xylabs/sdk-js'
2
+ import type { ChainId } from '@xyo-network/xl1-protocol'
3
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
+
5
+ import { asChainId } from './asChainId.ts'
6
+
7
+ export const getXl1ChainId = (config: Config): ChainId => {
8
+ const xl1ChainId = config.bridge.xl1ChainId
9
+ if (isDefined(xl1ChainId)) {
10
+ return assertEx(asChainId(xl1ChainId), () => 'Invalid xl1ChainId in bridge config')
11
+ }
12
+ return assertEx(asChainId(config.chain.id), () => 'Invalid chain.id in config')
13
+ }
@@ -0,0 +1,12 @@
1
+ import type { Hex } from '@xylabs/sdk-js'
2
+ import { isDefined } from '@xylabs/sdk-js'
3
+ import type { Config } from '@xyo-network/xl1-protocol-sdk'
4
+
5
+ import { asToken } from './asToken.ts'
6
+ import { getXl1ChainId } from './getXl1ChainId.ts'
7
+
8
+ export const getXl1TokenAddress = (config: Config): Hex => {
9
+ const token = asToken(config.bridge.xl1TokenAddress)
10
+ if (isDefined(token)) return token
11
+ return getXl1ChainId(config)
12
+ }
@@ -0,0 +1,15 @@
1
+ export * from './asChainId.ts'
2
+ export * from './asToken.ts'
3
+ export * from './getBridgeEscrowAddress.ts'
4
+ export * from './getBridgeFeesAddress.ts'
5
+ export * from './getBridgeSettings.ts'
6
+ export * from './getBridgeWalletAccount.ts'
7
+ export * from './getFeeStructure.ts'
8
+ export * from './getGateway.ts'
9
+ export * from './getMaxBridgeAmount.ts'
10
+ export * from './getMinBridgeAmount.ts'
11
+ export * from './getRemoteChainId.ts'
12
+ export * from './getRemoteTokenAddress.ts'
13
+ export * from './getTransferAddresses.ts'
14
+ export * from './getXl1ChainId.ts'
15
+ export * from './getXl1TokenAddress.ts'
@@ -1,7 +1,6 @@
1
1
  import type { Address, Hex } from '@xylabs/sdk-js'
2
2
  import {
3
- asAddress, asHex, assertEx, hexFromBigInt, hexToBigInt, isNull, isUndefined,
4
- toAddress,
3
+ asAddress, asHex, assertEx, hexFromBigInt, hexToBigInt, isNull, isUndefined, toAddress,
5
4
  } from '@xylabs/sdk-js'
6
5
  import { PayloadBuilder } from '@xyo-network/payload-builder'
7
6
  import type { LiquidityPoolBridge } from '@xyo-network/typechain'