@xyo-network/chain-bridge 1.19.6 → 1.19.8

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 (117) hide show
  1. package/dist/node/config/getGateway.d.ts.map +1 -1
  2. package/dist/node/index.mjs +353 -351
  3. package/dist/node/index.mjs.map +1 -1
  4. package/dist/node/manifest/getIterableMap.d.ts +10 -0
  5. package/dist/node/manifest/getIterableMap.d.ts.map +1 -0
  6. package/dist/node/manifest/getModuleLocator.d.ts.map +1 -1
  7. package/dist/node/manifest/getNode.d.ts.map +1 -1
  8. package/dist/node/manifest/getServices.d.ts.map +1 -1
  9. package/dist/node/queue/flows/createXl1ToEthBridgeJob.d.ts +6 -0
  10. package/dist/node/queue/flows/createXl1ToEthBridgeJob.d.ts.map +1 -1
  11. package/dist/node/queue/workers/EthTransactionMonitor.d.ts +3 -0
  12. package/dist/node/queue/workers/EthTransactionMonitor.d.ts.map +1 -0
  13. package/dist/node/queue/workers/EthTransactionPreparation.d.ts +6 -0
  14. package/dist/node/queue/workers/EthTransactionPreparation.d.ts.map +1 -0
  15. package/dist/node/queue/workers/EthTransactionSubmission.d.ts +3 -0
  16. package/dist/node/queue/workers/EthTransactionSubmission.d.ts.map +1 -0
  17. package/dist/node/queue/workers/WorkerDescription.d.ts +2 -1
  18. package/dist/node/queue/workers/WorkerDescription.d.ts.map +1 -1
  19. package/dist/node/queue/workers/Xl1ToEthBridgeParent.d.ts +3 -0
  20. package/dist/node/queue/workers/Xl1ToEthBridgeParent.d.ts.map +1 -0
  21. package/dist/node/queue/workers/Xl1TransactionMonitor.d.ts +3 -0
  22. package/dist/node/queue/workers/Xl1TransactionMonitor.d.ts.map +1 -0
  23. package/dist/node/queue/workers/Xl1TransactionPreparation.d.ts +3 -0
  24. package/dist/node/queue/workers/Xl1TransactionPreparation.d.ts.map +1 -0
  25. package/dist/node/queue/workers/Xl1TransactionSubmission.d.ts +3 -0
  26. package/dist/node/queue/workers/Xl1TransactionSubmission.d.ts.map +1 -0
  27. package/dist/node/queue/workers/createWorkers.d.ts +2 -1
  28. package/dist/node/queue/workers/createWorkers.d.ts.map +1 -1
  29. package/dist/node/queue/workers/index.d.ts +7 -7
  30. package/dist/node/queue/workers/util/index.d.ts +3 -0
  31. package/dist/node/queue/workers/util/index.d.ts.map +1 -0
  32. package/dist/node/queue/workers/util/submitEthTransaction.d.ts +5 -0
  33. package/dist/node/queue/workers/util/submitEthTransaction.d.ts.map +1 -0
  34. package/dist/node/queue/workers/util/submitXl1Transaction.d.ts +43 -0
  35. package/dist/node/queue/workers/util/submitXl1Transaction.d.ts.map +1 -0
  36. package/dist/node/server/{flowProducer.d.ts → addFlowProducer.d.ts} +1 -1
  37. package/dist/node/server/addFlowProducer.d.ts.map +1 -0
  38. package/dist/node/server/addWorkers.d.ts +4 -0
  39. package/dist/node/server/addWorkers.d.ts.map +1 -0
  40. package/dist/node/server/index.d.ts +0 -2
  41. package/dist/node/server/index.d.ts.map +1 -1
  42. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeConfig.d.ts +22 -0
  43. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeConfig.d.ts.map +1 -1
  44. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts +81 -0
  45. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts.map +1 -1
  46. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts +72 -0
  47. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts.map +1 -1
  48. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts +81 -0
  49. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts.map +1 -1
  50. package/dist/node/server/server.d.ts.map +1 -1
  51. package/dist/node/services/IBridgeServiceCollection.d.ts +2 -1
  52. package/dist/node/services/IBridgeServiceCollection.d.ts.map +1 -1
  53. package/dist/node/util/calculateBridgeFees.d.ts +1 -1
  54. package/dist/node/util/calculateBridgeFees.d.ts.map +1 -1
  55. package/dist/node/util/getConfigFromEnv.d.ts +6 -0
  56. package/dist/node/util/getConfigFromEnv.d.ts.map +1 -0
  57. package/dist/node/util/index.d.ts +1 -0
  58. package/dist/node/util/index.d.ts.map +1 -1
  59. package/package.json +24 -20
  60. package/src/config/getBridgeEscrowAddress.ts +2 -2
  61. package/src/config/getBridgeFeesAddress.ts +2 -2
  62. package/src/config/getBridgeWalletAccount.ts +1 -1
  63. package/src/config/getFeeStructure.ts +1 -1
  64. package/src/config/getGateway.ts +7 -12
  65. package/src/config/getMaxBridgeAmount.ts +1 -1
  66. package/src/config/getMinBridgeAmount.ts +1 -1
  67. package/src/config/getRemoteChainId.ts +1 -1
  68. package/src/config/getRemoteTokenAddress.ts +1 -1
  69. package/src/config/getXl1ChainId.ts +1 -1
  70. package/src/config/getXl1TokenAddress.ts +1 -1
  71. package/src/manifest/getIterableMap.ts +34 -0
  72. package/src/manifest/getModuleLocator.ts +4 -6
  73. package/src/manifest/getNode.ts +8 -6
  74. package/src/manifest/getServices.ts +11 -47
  75. package/src/queue/connection.ts +1 -1
  76. package/src/queue/flows/createXl1ToEthBridgeJob.ts +34 -19
  77. package/src/queue/workers/{ethTransactionMonitor.ts → EthTransactionMonitor.ts} +16 -7
  78. package/src/queue/workers/{ethTransactionPreparation.ts → EthTransactionPreparation.ts} +21 -9
  79. package/src/queue/workers/{ethTransactionSubmission.ts → EthTransactionSubmission.ts} +24 -9
  80. package/src/queue/workers/WorkerDescription.ts +3 -1
  81. package/src/queue/workers/{xl1ToEthBridgeParent.ts → Xl1ToEthBridgeParent.ts} +10 -2
  82. package/src/queue/workers/{xl1TransactionMonitor.ts → Xl1TransactionMonitor.ts} +20 -10
  83. package/src/queue/workers/{xl1TransactionPreparation.ts → Xl1TransactionPreparation.ts} +16 -5
  84. package/src/queue/workers/{xl1TransactionSubmission.ts → Xl1TransactionSubmission.ts} +21 -10
  85. package/src/queue/workers/createWorkers.ts +16 -9
  86. package/src/queue/workers/index.ts +7 -7
  87. package/src/queue/workers/util/index.ts +2 -0
  88. package/src/queue/workers/util/submitEthTransaction.ts +25 -0
  89. package/src/queue/workers/util/submitXl1Transaction.ts +9 -0
  90. package/src/server/addWorkers.ts +9 -0
  91. package/src/server/app.ts +1 -1
  92. package/src/server/index.ts +2 -2
  93. package/src/server/routes/bridge/routeDefinitions/routes/bridgeConfig.ts +4 -2
  94. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts +13 -10
  95. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts +21 -15
  96. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts +17 -15
  97. package/src/server/server.ts +5 -3
  98. package/src/services/IBridgeServiceCollection.ts +2 -1
  99. package/src/util/calculateBridgeFees.ts +1 -1
  100. package/src/util/getConfigFromEnv.ts +15 -0
  101. package/src/util/index.ts +1 -0
  102. package/dist/node/queue/workers/ethTransactionMonitor.d.ts +0 -3
  103. package/dist/node/queue/workers/ethTransactionMonitor.d.ts.map +0 -1
  104. package/dist/node/queue/workers/ethTransactionPreparation.d.ts +0 -5
  105. package/dist/node/queue/workers/ethTransactionPreparation.d.ts.map +0 -1
  106. package/dist/node/queue/workers/ethTransactionSubmission.d.ts +0 -3
  107. package/dist/node/queue/workers/ethTransactionSubmission.d.ts.map +0 -1
  108. package/dist/node/queue/workers/xl1ToEthBridgeParent.d.ts +0 -3
  109. package/dist/node/queue/workers/xl1ToEthBridgeParent.d.ts.map +0 -1
  110. package/dist/node/queue/workers/xl1TransactionMonitor.d.ts +0 -3
  111. package/dist/node/queue/workers/xl1TransactionMonitor.d.ts.map +0 -1
  112. package/dist/node/queue/workers/xl1TransactionPreparation.d.ts +0 -3
  113. package/dist/node/queue/workers/xl1TransactionPreparation.d.ts.map +0 -1
  114. package/dist/node/queue/workers/xl1TransactionSubmission.d.ts +0 -3
  115. package/dist/node/queue/workers/xl1TransactionSubmission.d.ts.map +0 -1
  116. package/dist/node/server/flowProducer.d.ts.map +0 -1
  117. /package/src/server/{flowProducer.ts → addFlowProducer.ts} +0 -0
@@ -8,6 +8,7 @@ import { HDWallet } from '@xyo-network/wallet'
8
8
  import { type Config } from '@xyo-network/xl1-sdk'
9
9
 
10
10
  import { getNode, getServices } from '../manifest/index.ts'
11
+ import { addWorkers } from './addWorkers.ts'
11
12
  import { getApp } from './app.ts'
12
13
 
13
14
  const hostname = '::'
@@ -17,7 +18,7 @@ const hostname = '::'
17
18
  const getSeedPhrase = async (bios: BiosExternalInterface, config: Config, logger?: Logger): Promise<string> => {
18
19
  const storedSeedPhrase = await bios.seedPhraseStore.get('os')
19
20
  logger?.debug(`[Bridge] Stored mnemonic: ${storedSeedPhrase}`)
20
- const { mnemonic } = config.api
21
+ const { mnemonic } = config.actors.api
21
22
  if (isString(storedSeedPhrase) && isString(mnemonic)) {
22
23
  logger?.warn('[Bridge] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.')
23
24
  await bios.seedPhraseStore.set('os', mnemonic)
@@ -43,7 +44,7 @@ interface GetServerContext {
43
44
 
44
45
  export const getServer = async (context: GetServerContext) => {
45
46
  const { logger, config } = context
46
- const { port, mnemonic } = config.bridge
47
+ const { port, mnemonic } = config.actors.bridge
47
48
  const bios = await boot()
48
49
  const seedPhrase = isDefined(mnemonic) ? mnemonic : await getSeedPhrase(bios, config, logger)
49
50
  const wallet = await HDWallet.fromPhrase(seedPhrase)
@@ -52,7 +53,8 @@ export const getServer = async (context: GetServerContext) => {
52
53
  }
53
54
  const node = context.node ?? await getNode(nodeContext)
54
55
  const app = getApp(node, config)
55
- app.services = await getServices({ config, logger })
56
+ const services = await getServices({ config, logger })
57
+ addWorkers(config, services)
56
58
  const server = app.listen(port, hostname, () => logger?.log(`[Bridge] Server listening at http://${hostname}:${port}`))
57
59
  server.setTimeout(20_000)
58
60
  return server
@@ -1,6 +1,6 @@
1
1
  import type { Hash } from '@xylabs/sdk-js'
2
2
  import type { AccountInstance } from '@xyo-network/account-model'
3
- import type { LiquidityPoolBridge } from '@xyo-network/typechain'
3
+ import type { BridgeableToken, LiquidityPoolBridge } from '@xyo-network/typechain'
4
4
  import type { IterableMap, XyoGatewayRunner } from '@xyo-network/xl1-sdk'
5
5
  import type { Provider, Wallet } from 'ethers'
6
6
 
@@ -10,6 +10,7 @@ import type { Xl1TxState } from './Xl1TxState.ts'
10
10
  export interface IBridgeServiceCollection {
11
11
  account: AccountInstance
12
12
  bridge: LiquidityPoolBridge
13
+ bridgeableToken: BridgeableToken
13
14
  ethTxStateMap: IterableMap<Hash, EthTxState>
14
15
  gateway: XyoGatewayRunner
15
16
  provider: Provider
@@ -2,7 +2,7 @@ import type { Hex } from '@xylabs/sdk-js'
2
2
  import { hexToBigInt, toHex } from '@xylabs/sdk-js'
3
3
  import type { Config } from '@xyo-network/xl1-sdk'
4
4
 
5
- export type FeeStructure = Pick<Config['bridge'], 'feeFixed' | 'feeRateBasisPoints'>
5
+ export type FeeStructure = Pick<Config['actors']['bridge'], 'feeFixed' | 'feeRateBasisPoints'>
6
6
 
7
7
  export interface FeeCalculationResult {
8
8
  destAmount: Hex
@@ -0,0 +1,15 @@
1
+ import { type Config, ConfigZod } from '@xyo-network/xl1-sdk'
2
+ import type { Configuration } from 'yargs-parser'
3
+ import parser from 'yargs-parser'
4
+
5
+ export const ConfigParserEnvPrefix = 'XL1_'
6
+ export const ConfigParserConfiguration: Partial<Configuration> = {
7
+ 'dot-notation': true, // foo.bar → { foo: { bar } }
8
+ 'parse-numbers': false, // Don't auto-parse numbers to allow strings like "0x1"
9
+ 'populate--': true, // Populate -- with all options so we can detected user-supplied vs defaults
10
+ }
11
+
12
+ export const getConfigFromEnv = (): Config => {
13
+ const parsed = parser([], { configuration: ConfigParserConfiguration, envPrefix: ConfigParserEnvPrefix })
14
+ return ConfigZod.parse(parsed)
15
+ }
package/src/util/index.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './calculateBridgeFees.ts'
2
2
  export * from './generateBridgeEstimate.ts'
3
+ export * from './getConfigFromEnv.ts'
3
4
  export * from './validateBridgeEstimate.ts'
4
5
  export * from './validateBridgeEstimateExact.ts'
5
6
  export * from './validateBridgeTransaction.ts'
@@ -1,3 +0,0 @@
1
- import type { WorkerDescription } from './WorkerDescription.ts';
2
- export declare const ethTransactionMonitor: WorkerDescription;
3
- //# sourceMappingURL=ethTransactionMonitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ethTransactionMonitor.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/ethTransactionMonitor.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AA+B/D,eAAO,MAAM,qBAAqB,EAAE,iBAEnC,CAAA"}
@@ -1,5 +0,0 @@
1
- import type { Redis } from 'ioredis';
2
- import type { WorkerDescription } from './WorkerDescription.ts';
3
- export declare const createWorker: (connection: Redis) => void;
4
- export declare const ethTransactionPreparation: WorkerDescription;
5
- //# sourceMappingURL=ethTransactionPreparation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ethTransactionPreparation.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/ethTransactionPreparation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAS/D,eAAO,MAAM,YAAY,GAAI,YAAY,KAAK,SAwB7C,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,iBAEvC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { WorkerDescription } from './WorkerDescription.ts';
2
- export declare const ethTransactionSubmission: WorkerDescription;
3
- //# sourceMappingURL=ethTransactionSubmission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ethTransactionSubmission.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/ethTransactionSubmission.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAkE/D,eAAO,MAAM,wBAAwB,EAAE,iBAEtC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { WorkerDescription } from './WorkerDescription.ts';
2
- export declare const xl1ToEthBridgeParent: WorkerDescription;
3
- //# sourceMappingURL=xl1ToEthBridgeParent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xl1ToEthBridgeParent.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/xl1ToEthBridgeParent.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAkB/D,eAAO,MAAM,oBAAoB,EAAE,iBAElC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { WorkerDescription } from './WorkerDescription.ts';
2
- export declare const xl1TransactionMonitor: WorkerDescription;
3
- //# sourceMappingURL=xl1TransactionMonitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xl1TransactionMonitor.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/xl1TransactionMonitor.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAqD/D,eAAO,MAAM,qBAAqB,EAAE,iBAEnC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { WorkerDescription } from './WorkerDescription.ts';
2
- export declare const xl1TransactionPreparation: WorkerDescription;
3
- //# sourceMappingURL=xl1TransactionPreparation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xl1TransactionPreparation.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/xl1TransactionPreparation.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AA0B/D,eAAO,MAAM,yBAAyB,EAAE,iBAEvC,CAAA"}
@@ -1,3 +0,0 @@
1
- import type { WorkerDescription } from './WorkerDescription.ts';
2
- export declare const xl1TransactionSubmission: WorkerDescription;
3
- //# sourceMappingURL=xl1TransactionSubmission.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"xl1TransactionSubmission.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/xl1TransactionSubmission.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAiD/D,eAAO,MAAM,wBAAwB,EAAE,iBAEtC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowProducer.d.ts","sourceRoot":"","sources":["../../../src/server/flowProducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAItC,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,EAAE,QAAQ,MAAM,KAAG,OAK9D,CAAA"}