@xyo-network/chain-orchestration 1.20.4 → 1.20.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 (90) hide show
  1. package/dist/browser/index.mjs +15 -4
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/browser/node/config/locators/actors/bridgeLocatorFromConfig.d.ts.map +1 -1
  4. package/dist/browser/node/config/tryParseConfig.d.ts +12 -0
  5. package/dist/browser/node/config/tryParseConfig.d.ts.map +1 -1
  6. package/dist/browser/node/index.d.ts +1 -0
  7. package/dist/browser/node/index.d.ts.map +1 -1
  8. package/dist/browser/node/manifest/getLocator.d.ts.map +1 -1
  9. package/dist/browser/node/sharedMiddleware.d.ts +3 -0
  10. package/dist/browser/node/sharedMiddleware.d.ts.map +1 -0
  11. package/dist/browser/shared/config/actors/Api.d.ts +70 -0
  12. package/dist/browser/shared/config/actors/Api.d.ts.map +1 -1
  13. package/dist/browser/shared/config/actors/Bridge.d.ts +70 -0
  14. package/dist/browser/shared/config/actors/Bridge.d.ts.map +1 -1
  15. package/dist/browser/shared/config/actors/Mempool.d.ts +70 -0
  16. package/dist/browser/shared/config/actors/Mempool.d.ts.map +1 -1
  17. package/dist/browser/shared/config/actors/Producer.d.ts +70 -0
  18. package/dist/browser/shared/config/actors/Producer.d.ts.map +1 -1
  19. package/dist/browser/shared/config/actors/RewardRedemption.d.ts +70 -0
  20. package/dist/browser/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  21. package/dist/browser/shared/config/actors/Validator.d.ts +70 -0
  22. package/dist/browser/shared/config/actors/Validator.d.ts.map +1 -1
  23. package/dist/browser/shared/config/locators/commonLocatorFromConfig.d.ts.map +1 -1
  24. package/dist/browser/shared/config/mergeConfig.d.ts +6 -0
  25. package/dist/browser/shared/config/mergeConfig.d.ts.map +1 -1
  26. package/dist/browser/shared/init/initBridgedModule.d.ts +1 -2
  27. package/dist/browser/shared/init/initBridgedModule.d.ts.map +1 -1
  28. package/dist/neutral/index.mjs +15 -4
  29. package/dist/neutral/index.mjs.map +1 -1
  30. package/dist/neutral/node/config/locators/actors/bridgeLocatorFromConfig.d.ts.map +1 -1
  31. package/dist/neutral/node/config/tryParseConfig.d.ts +12 -0
  32. package/dist/neutral/node/config/tryParseConfig.d.ts.map +1 -1
  33. package/dist/neutral/node/index.d.ts +1 -0
  34. package/dist/neutral/node/index.d.ts.map +1 -1
  35. package/dist/neutral/node/manifest/getLocator.d.ts.map +1 -1
  36. package/dist/neutral/node/sharedMiddleware.d.ts +3 -0
  37. package/dist/neutral/node/sharedMiddleware.d.ts.map +1 -0
  38. package/dist/neutral/shared/config/actors/Api.d.ts +70 -0
  39. package/dist/neutral/shared/config/actors/Api.d.ts.map +1 -1
  40. package/dist/neutral/shared/config/actors/Bridge.d.ts +70 -0
  41. package/dist/neutral/shared/config/actors/Bridge.d.ts.map +1 -1
  42. package/dist/neutral/shared/config/actors/Mempool.d.ts +70 -0
  43. package/dist/neutral/shared/config/actors/Mempool.d.ts.map +1 -1
  44. package/dist/neutral/shared/config/actors/Producer.d.ts +70 -0
  45. package/dist/neutral/shared/config/actors/Producer.d.ts.map +1 -1
  46. package/dist/neutral/shared/config/actors/RewardRedemption.d.ts +70 -0
  47. package/dist/neutral/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  48. package/dist/neutral/shared/config/actors/Validator.d.ts +70 -0
  49. package/dist/neutral/shared/config/actors/Validator.d.ts.map +1 -1
  50. package/dist/neutral/shared/config/locators/commonLocatorFromConfig.d.ts.map +1 -1
  51. package/dist/neutral/shared/config/mergeConfig.d.ts +6 -0
  52. package/dist/neutral/shared/config/mergeConfig.d.ts.map +1 -1
  53. package/dist/neutral/shared/init/initBridgedModule.d.ts +1 -2
  54. package/dist/neutral/shared/init/initBridgedModule.d.ts.map +1 -1
  55. package/dist/node/index.mjs +62 -10
  56. package/dist/node/index.mjs.map +1 -1
  57. package/dist/node/node/config/locators/actors/bridgeLocatorFromConfig.d.ts.map +1 -1
  58. package/dist/node/node/config/tryParseConfig.d.ts +12 -0
  59. package/dist/node/node/config/tryParseConfig.d.ts.map +1 -1
  60. package/dist/node/node/index.d.ts +1 -0
  61. package/dist/node/node/index.d.ts.map +1 -1
  62. package/dist/node/node/manifest/getLocator.d.ts.map +1 -1
  63. package/dist/node/node/sharedMiddleware.d.ts +3 -0
  64. package/dist/node/node/sharedMiddleware.d.ts.map +1 -0
  65. package/dist/node/shared/config/actors/Api.d.ts +70 -0
  66. package/dist/node/shared/config/actors/Api.d.ts.map +1 -1
  67. package/dist/node/shared/config/actors/Bridge.d.ts +70 -0
  68. package/dist/node/shared/config/actors/Bridge.d.ts.map +1 -1
  69. package/dist/node/shared/config/actors/Mempool.d.ts +70 -0
  70. package/dist/node/shared/config/actors/Mempool.d.ts.map +1 -1
  71. package/dist/node/shared/config/actors/Producer.d.ts +70 -0
  72. package/dist/node/shared/config/actors/Producer.d.ts.map +1 -1
  73. package/dist/node/shared/config/actors/RewardRedemption.d.ts +70 -0
  74. package/dist/node/shared/config/actors/RewardRedemption.d.ts.map +1 -1
  75. package/dist/node/shared/config/actors/Validator.d.ts +70 -0
  76. package/dist/node/shared/config/actors/Validator.d.ts.map +1 -1
  77. package/dist/node/shared/config/locators/commonLocatorFromConfig.d.ts.map +1 -1
  78. package/dist/node/shared/config/mergeConfig.d.ts +6 -0
  79. package/dist/node/shared/config/mergeConfig.d.ts.map +1 -1
  80. package/dist/node/shared/init/initBridgedModule.d.ts +1 -2
  81. package/dist/node/shared/init/initBridgedModule.d.ts.map +1 -1
  82. package/package.json +35 -30
  83. package/src/node/config/locators/actors/bridgeLocatorFromConfig.ts +22 -2
  84. package/src/node/config/tryParseConfig.ts +1 -1
  85. package/src/node/index.ts +1 -0
  86. package/src/node/manifest/getLocator.ts +4 -3
  87. package/src/node/sharedMiddleware.ts +24 -0
  88. package/src/shared/config/actors/Bridge.ts +2 -3
  89. package/src/shared/config/locators/commonLocatorFromConfig.ts +16 -3
  90. package/src/shared/init/initBridgedModule.ts +1 -2
@@ -1,7 +1,7 @@
1
1
  import type { Promisable } from '@xylabs/sdk-js'
2
2
  import { isDefined } from '@xylabs/sdk-js'
3
3
  import { HDWallet } from '@xyo-network/sdk-js'
4
- import type { ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'
4
+ import type { ProviderFactoryLocatorInstance, RestDataLakeRunnerParams } from '@xyo-network/xl1-sdk'
5
5
  import {
6
6
  ADDRESS_INDEX,
7
7
  generateXyoBaseWalletFromPhrase,
@@ -13,6 +13,9 @@ import {
13
13
  JsonRpcXyoRunner,
14
14
  JsonRpcXyoViewer,
15
15
  ProviderFactoryLocator,
16
+ RestDataLakeRunner,
17
+ RestDataLakeViewer,
18
+ SimpleStakeEventsViewer,
16
19
  SimpleXyoConnectionRunner,
17
20
  SimpleXyoGatewayRunner,
18
21
  SimpleXyoRunner,
@@ -29,7 +32,7 @@ export async function bridgeLocatorFromConfig(
29
32
 
30
33
  const { config } = context
31
34
 
32
- const { mnemonic } = config
35
+ const { dataLake, mnemonic } = config
33
36
  const walletPhrase = isDefined(mnemonic) ? mnemonic : HDWallet.generateMnemonic()
34
37
  const wallet = await generateXyoBaseWalletFromPhrase(walletPhrase)
35
38
  const signerAccount = await wallet.derivePath(ADDRESS_INDEX.XYO)
@@ -51,8 +54,25 @@ export async function bridgeLocatorFromConfig(
51
54
  JsonRpcXyoViewer.factory<JsonRpcXyoViewer>(JsonRpcXyoViewer.dependencies, {}),
52
55
  ])
53
56
  }
57
+ if (isDefined(dataLake)) {
58
+ const { driver } = dataLake
59
+ switch (driver) {
60
+ case 'rest': {
61
+ const { url: endpoint } = dataLake
62
+ locator.registerMany([
63
+ RestDataLakeRunner.factory<RestDataLakeRunner<RestDataLakeRunnerParams>>(RestDataLakeRunner.dependencies, { endpoint }),
64
+ RestDataLakeViewer.factory<RestDataLakeViewer>(RestDataLakeViewer.dependencies, { endpoint }),
65
+ ])
66
+ break
67
+ }
68
+ default: {
69
+ throw new Error(`Unsupported data lake protocol: ${driver}`)
70
+ }
71
+ }
72
+ }
54
73
 
55
74
  locator.registerMany([
75
+ SimpleStakeEventsViewer.factory<SimpleStakeEventsViewer>(SimpleStakeEventsViewer.dependencies, { positions: [] }),
56
76
  SimpleXyoSigner.factory<SimpleXyoSigner>(SimpleXyoSigner.dependencies, { account: signerAccount }),
57
77
  SimpleXyoRunner.factory<SimpleXyoRunner>(SimpleXyoRunner.dependencies, {}),
58
78
  SimpleXyoConnectionRunner.factory<SimpleXyoConnectionRunner>(SimpleXyoConnectionRunner.dependencies, {}),
@@ -29,7 +29,7 @@ export async function tryParseConfig(options?: { configPath?: string; searchPlac
29
29
  searchPlaces,
30
30
  },
31
31
  )
32
- const result = configPath
32
+ const result = isDefined(configPath)
33
33
  ? (await explorer.load(configPath))?.config
34
34
  : (await explorer.search())?.config
35
35
  if (isDefined(result) && !isNull(result)) {
package/src/node/index.ts CHANGED
@@ -4,3 +4,4 @@ export * from './config/index.ts'
4
4
  export * from './health/index.ts'
5
5
  export * from './init/index.ts'
6
6
  export * from './manifest/index.ts'
7
+ export * from './sharedMiddleware.ts'
@@ -3,10 +3,11 @@ import { isDefined } from '@xylabs/sdk-js'
3
3
  import { MongoDBArchivistV2, MongoDBArchivistV2Deletable } from '@xyo-network/archivist-mongodb'
4
4
  import { ViewArchivist } from '@xyo-network/archivist-view'
5
5
  import { initTelemetry } from '@xyo-network/chain-telemetry'
6
- import { AbstractModule, LoggerModuleStatusReporter } from '@xyo-network/module-abstract'
7
6
  import type { MongoDBModuleParamsV2 } from '@xyo-network/module-model-mongodb'
8
- import { MemoryArchivist, ModuleFactoryLocator } from '@xyo-network/sdk-js'
9
- import { MemorySentinel } from '@xyo-network/sentinel-memory'
7
+ import {
8
+ AbstractModule, LoggerModuleStatusReporter,
9
+ MemoryArchivist, MemorySentinel, ModuleFactoryLocator,
10
+ } from '@xyo-network/sdk-js'
10
11
  import type { BaseConfigContext } from '@xyo-network/xl1-sdk'
11
12
  import { hasMongoConfig } from '@xyo-network/xl1-sdk'
12
13
 
@@ -0,0 +1,24 @@
1
+ import {
2
+ customPoweredByHeader,
3
+ disableCaseSensitiveRouting,
4
+ disableExpressDefaultPoweredByHeader,
5
+ getJsonBodyParser,
6
+ getJsonBodyParserOptions,
7
+ responseProfiler,
8
+ standardResponses,
9
+ } from '@xylabs/express'
10
+ import compression from 'compression'
11
+ import cors from 'cors'
12
+ import type { Express } from 'express'
13
+
14
+ export function sharedMiddleware(app: Express): void {
15
+ app.set('etag', false)
16
+ app.use(cors())
17
+ app.use(compression())
18
+ app.use(responseProfiler)
19
+ app.use(getJsonBodyParser(getJsonBodyParserOptions({ limit: '1mb' })))
20
+ app.use(standardResponses)
21
+ disableExpressDefaultPoweredByHeader(app)
22
+ app.use(customPoweredByHeader)
23
+ disableCaseSensitiveRouting(app)
24
+ }
@@ -1,6 +1,5 @@
1
1
  import {
2
- AddressZod, HexZod, toAddress, toHex,
3
- zodAsFactory, zodIsFactory, zodToFactory,
2
+ AddressZod, HexZod, toAddress, toHex, zodAsFactory, zodIsFactory, zodToFactory,
4
3
  } from '@xylabs/sdk-js'
5
4
  import type { ChainId } from '@xyo-network/xl1-sdk'
6
5
  import {
@@ -14,7 +13,7 @@ const DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress('2279B7A0a67DB372996a5FaB50D91
14
13
  const DEFAULT_HARDHAT_CHAIN_ID: ChainId = toHex('7A69')
15
14
  const DEFAULT_HARDHAT_REMOTE_CHAIN_WALLET_PRIVATE_KEY = toHex('0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80')
16
15
  const DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress('5FbDB2315678afecb367f032d93F642f64180aa3')
17
- const DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(100_000_000n) * AttoXL1ConvertFactor.xl1)
16
+ const DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(1_000_000n) * AttoXL1ConvertFactor.xl1)
18
17
  const DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(1500n) * AttoXL1ConvertFactor.xl1)
19
18
 
20
19
  export const BasisPointsZod = z.coerce.number().int().nonnegative().max(10_000)
@@ -1,7 +1,10 @@
1
1
  import type { Promisable } from '@xylabs/sdk-js'
2
2
  import { validateHydratedBlock, validateHydratedBlockState } from '@xyo-network/chain-validation'
3
- import type { BaseConfigContext, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk'
3
+ import type {
4
+ BaseConfigContext, HydratedBlockStateValidationFunction, ProviderFactoryLocatorInstance,
5
+ } from '@xyo-network/xl1-sdk'
4
6
  import {
7
+ BlockCumulativeBalanceValidatorFactory,
5
8
  ProviderFactoryLocator,
6
9
  SimpleBlockRewardViewer,
7
10
  SimpleBlockValidationViewer,
@@ -17,11 +20,21 @@ import {
17
20
  SimpleWindowedBlockViewer,
18
21
  } from '@xyo-network/xl1-sdk'
19
22
 
23
+ const cumulativeBalanceValidator = BlockCumulativeBalanceValidatorFactory()
24
+
25
+ const validateHydratedBlockStateWithCumulativeBalance: HydratedBlockStateValidationFunction = async (context, block) => {
26
+ const [stateErrors, cumulativeErrors] = await Promise.all([
27
+ validateHydratedBlockState(context, block),
28
+ cumulativeBalanceValidator(context, block),
29
+ ])
30
+ return [...stateErrors, ...cumulativeErrors]
31
+ }
32
+
20
33
  export function commonLocatorFromConfig(
21
34
  context: BaseConfigContext,
22
35
  validateDepsOnRegister = false,
23
36
  ): Promisable<ProviderFactoryLocatorInstance> {
24
- let locator: ProviderFactoryLocatorInstance = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)
37
+ const locator: ProviderFactoryLocatorInstance = new ProviderFactoryLocator(context, {}, validateDepsOnRegister)
25
38
 
26
39
  locator.registerMany([
27
40
  SimpleNetworkStakeViewer.factory<SimpleNetworkStakeViewer>(SimpleNetworkStakeViewer.dependencies, {}),
@@ -36,7 +49,7 @@ export function commonLocatorFromConfig(
36
49
  SimpleBlockRewardViewer.factory<SimpleBlockRewardViewer>(SimpleBlockRewardViewer.dependencies, {}),
37
50
  SimpleBlockValidationViewer.factory<SimpleBlockValidationViewer>(
38
51
  SimpleBlockValidationViewer.dependencies,
39
- { state: validateHydratedBlockState, protocol: validateHydratedBlock },
52
+ { state: validateHydratedBlockStateWithCumulativeBalance, protocol: validateHydratedBlock },
40
53
  ),
41
54
  SimpleTransactionViewer.factory<SimpleTransactionViewer>(SimpleTransactionViewer.dependencies, {}),
42
55
  ])
@@ -1,8 +1,7 @@
1
1
  import type { Address } from '@xylabs/sdk-js'
2
2
  import { assertEx } from '@xylabs/sdk-js'
3
- import type { BridgeInstance } from '@xyo-network/bridge-model'
4
3
  import type {
5
- AttachableArchivistInstance, AttachableModuleInstance, ModuleIdentifier,
4
+ AttachableArchivistInstance, AttachableModuleInstance, BridgeInstance, ModuleIdentifier,
6
5
  } from '@xyo-network/sdk-js'
7
6
  import { asAttachableArchivistInstance, asAttachableModuleInstance } from '@xyo-network/sdk-js'
8
7
  import { Mutex } from 'async-mutex'