@xyo-network/chain-bridge 1.16.9 → 1.16.11

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 (64) hide show
  1. package/dist/node/driver/indexer/ChainBlockIteration/ChainHashIterationService.d.ts +1 -2
  2. package/dist/node/driver/indexer/ChainBlockIteration/ChainHashIterationService.d.ts.map +1 -1
  3. package/dist/node/index.mjs +5 -6
  4. package/dist/node/index.mjs.map +1 -1
  5. package/dist/node/interface/interface/IntentIndexerInterface.d.ts +1 -1
  6. package/dist/node/interface/interface/IntentIndexerInterface.d.ts.map +1 -1
  7. package/dist/node/interface/interface/LockingProcessorInterface.d.ts +1 -1
  8. package/dist/node/interface/interface/LockingProcessorInterface.d.ts.map +1 -1
  9. package/dist/node/interface/repository/RepositoryInterface.d.ts +1 -1
  10. package/dist/node/interface/repository/RepositoryInterface.d.ts.map +1 -1
  11. package/dist/node/interface/service/Observer/ERC20TransferObserver/ERC20TransferObserver.d.ts +1 -1
  12. package/dist/node/interface/service/Observer/ERC20TransferObserver/ERC20TransferObserver.d.ts.map +1 -1
  13. package/dist/node/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.d.ts +1 -1
  14. package/dist/node/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.d.ts.map +1 -1
  15. package/dist/node/interface/service/Relay/ChainBridgeRelay/ChainBridgeRelayService.d.ts.map +1 -1
  16. package/dist/node/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.d.ts +1 -1
  17. package/dist/node/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.d.ts.map +1 -1
  18. package/dist/node/interface/util/getBridgeIntentIdentifier.d.ts +1 -1
  19. package/dist/node/interface/util/getBridgeIntentIdentifier.d.ts.map +1 -1
  20. package/dist/node/manifest/getLocator.d.ts +1 -1
  21. package/dist/node/manifest/getLocator.d.ts.map +1 -1
  22. package/dist/node/manifest/getNode.d.ts +1 -1
  23. package/dist/node/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.d.ts +47 -0
  24. package/dist/node/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.d.ts.map +1 -0
  25. package/dist/node/modules/XL1toEvmBridgeSentinel/index.d.ts +2 -0
  26. package/dist/node/modules/XL1toEvmBridgeSentinel/index.d.ts.map +1 -0
  27. package/dist/node/modules/index.d.ts +2 -0
  28. package/dist/node/modules/index.d.ts.map +1 -0
  29. package/dist/node/server/routes/address/get/get.d.ts.map +1 -1
  30. package/dist/node/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.d.ts +1 -1
  31. package/dist/node/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.d.ts.map +1 -1
  32. package/dist/node/server/routes/dataLake/archivistMiddleware.d.ts.map +1 -1
  33. package/dist/node/server/server.d.ts +1 -1
  34. package/package.json +42 -44
  35. package/src/driver/indexer/ChainBlockIteration/ChainHashIterationService.ts +5 -4
  36. package/src/driver/indexer/ChainBlocksObservable.ts +1 -1
  37. package/src/interface/interface/IntentIndexerInterface.ts +1 -1
  38. package/src/interface/interface/LockingProcessorInterface.ts +1 -1
  39. package/src/interface/repository/RepositoryInterface.ts +1 -1
  40. package/src/interface/service/Observer/ERC20TransferObserver/ERC20TransferObserver.ts +4 -6
  41. package/src/interface/service/Observer/ERC20TransferObserver/spec/ERC20TransferObserver.spec.ts +5 -4
  42. package/src/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.ts +4 -5
  43. package/src/interface/service/Observer/LiquidityPoolBridgeObserver/spec/LiquidityPoolBridgeObserver.spec.ts +5 -4
  44. package/src/interface/service/Observer/Observer.ts +1 -1
  45. package/src/interface/service/Relay/ChainBridgeRelay/ChainBridgeRelayService.ts +1 -2
  46. package/src/interface/service/Relay/ChainBridgeRelay/spec/ChainBridgeRelayService.spec.ts +1 -1
  47. package/src/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.ts +4 -5
  48. package/src/interface/service/Relay/LiquidityPoolBridgeRelay/spec/LiquidityPoolBridgeRelay.spec.ts +4 -3
  49. package/src/interface/util/getBridgeIntentIdentifier.ts +1 -1
  50. package/src/manifest/getLocator.ts +5 -5
  51. package/src/manifest/getNode.ts +1 -1
  52. package/src/manifest/public/spec/Node.spec.ts +1 -1
  53. package/src/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.ts +156 -0
  54. package/src/modules/XL1toEvmBridgeSentinel/index.ts +1 -0
  55. package/src/modules/index.ts +1 -0
  56. package/src/server/routes/address/get/get.ts +1 -2
  57. package/src/server/routes/address/post/post.ts +4 -4
  58. package/src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts +3 -3
  59. package/src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts +1 -1
  60. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts +1 -1
  61. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts +1 -1
  62. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts +1 -1
  63. package/src/server/routes/dataLake/archivistMiddleware.ts +1 -2
  64. package/src/server/server.ts +1 -1
@@ -1,5 +1,4 @@
1
- import type { Hash, Hex } from '@xylabs/hex';
2
- import type { Promisable } from '@xylabs/promise';
1
+ import type { Hash, Hex, Promisable } from '@xylabs/sdk-js';
3
2
  import type { ArchivistInstance } from '@xyo-network/archivist-model';
4
3
  import type { BaseServiceParams } from '@xyo-network/chain-services';
5
4
  import { BaseService } from '@xyo-network/chain-services';
@@ -1 +1 @@
1
- {"version":3,"file":"ChainHashIterationService.d.ts","sourceRoot":"","sources":["../../../../../src/driver/indexer/ChainBlockIteration/ChainHashIterationService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAC+B,KAAK,iBAAiB,EAE3D,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAA;AAEpH,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,cAAc,EAAE,iBAAiB,CAAA;IACjC,IAAI,EAAE,iBAAiB,CAAA;CACxB;AAED,qBAAa,yBAA0B,SAAQ,WAAW,CAAC,+BAA+B,EAAE,6BAA6B,CACvH,YAAW,gCAAgC;IAC3C,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAA;IAEtE,IAAI,cAAc,IAAI,iBAAiB,CAAgD;IAEvF,IAAI,OAAO,IAAI,GAAG,CAA2G;IAE7H,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIlD,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAUnD,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAKvE,QAAQ,CAAC,KAAK,GAAE,IAAI,GAAG,SAAqB,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAqB/G,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAM1C,iDAAiD;YAKjD,yCAAyC;CAMxD"}
1
+ {"version":3,"file":"ChainHashIterationService.d.ts","sourceRoot":"","sources":["../../../../../src/driver/indexer/ChainBlockIteration/ChainHashIterationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAAE,GAAG,EAAE,UAAU,EACtB,MAAM,gBAAgB,CAAA;AAKvB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAEzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAC+B,KAAK,iBAAiB,EAE3D,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,6BAA6B,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAA;AAEpH,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,cAAc,EAAE,iBAAiB,CAAA;IACjC,IAAI,EAAE,iBAAiB,CAAA;CACxB;AAED,qBAAa,yBAA0B,SAAQ,WAAW,CAAC,+BAA+B,EAAE,6BAA6B,CACvH,YAAW,gCAAgC;IAC3C,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAA;IAEtE,IAAI,cAAc,IAAI,iBAAiB,CAAgD;IAEvF,IAAI,OAAO,IAAI,GAAG,CAA2G;IAE7H,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,UAAU,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAIlD,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IAUnD,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAKvE,QAAQ,CAAC,KAAK,GAAE,IAAI,GAAG,SAAqB,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAqB/G,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;YAM1C,iDAAiD;YAKjD,yCAAyC;CAMxD"}
@@ -23,14 +23,13 @@ var addInstrumentation = /* @__PURE__ */ __name(() => {
23
23
 
24
24
  // src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts
25
25
  import { requestHandlerValidator } from "@xylabs/express";
26
- import { toAddress as toAddress2, toHex } from "@xylabs/hex";
26
+ import { toAddress as toAddress2, toHex } from "@xylabs/sdk-js";
27
27
  import { PayloadZodStrictOfSchema } from "@xyo-network/payload-model";
28
28
  import { BridgeDestinationObservationFieldsZod, BridgeDestinationObservationSchema } from "@xyo-network/xl1-protocol";
29
29
  import { z } from "zod";
30
30
 
31
31
  // src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts
32
- import { hexFromHexString, HexZod, isAddress, toAddress } from "@xylabs/hex";
33
- import { isUndefined } from "@xylabs/typeof";
32
+ import { hexFromHexString, HexZod, isAddress, isUndefined, toAddress } from "@xylabs/sdk-js";
34
33
  var remoteChainId = toAddress("0x01");
35
34
  var ChainIdPathParam = HexZod.refine((val) => {
36
35
  const chainIdHex = hexFromHexString(val, {
@@ -82,7 +81,7 @@ var bridgeFromRemoteStatus = {
82
81
 
83
82
  // src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts
84
83
  import { requestHandlerValidator as requestHandlerValidator2 } from "@xylabs/express";
85
- import { asHash } from "@xylabs/hex";
84
+ import { asHash } from "@xylabs/sdk-js";
86
85
  import { PayloadBuilder } from "@xyo-network/payload-builder";
87
86
  import { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema as PayloadZodStrictOfSchema2 } from "@xyo-network/payload-model";
88
87
  import { BridgeIntentFieldsZod, BridgeIntentSchema, BridgeSourceObservationFieldsZod, BridgeSourceObservationSchema, TransferSchema } from "@xyo-network/xl1-protocol";
@@ -123,7 +122,7 @@ var bridgeToRemote = {
123
122
 
124
123
  // src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts
125
124
  import { requestHandlerValidator as requestHandlerValidator3 } from "@xylabs/express";
126
- import { hexToBigInt, toAddress as toAddress3, toHex as toHex2 } from "@xylabs/hex";
125
+ import { hexToBigInt, toAddress as toAddress3, toHex as toHex2 } from "@xylabs/sdk-js";
127
126
  import { createTransferPayload } from "@xyo-network/chain-protocol";
128
127
  import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
129
128
  import { PayloadZodLooseOfSchema as PayloadZodLooseOfSchema2, PayloadZodStrictOfSchema as PayloadZodStrictOfSchema3 } from "@xyo-network/payload-model";
@@ -195,7 +194,7 @@ var bridgeToRemoteEstimate = {
195
194
 
196
195
  // src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts
197
196
  import { requestHandlerValidator as requestHandlerValidator4 } from "@xylabs/express";
198
- import { toAddress as toAddress4, toHex as toHex3 } from "@xylabs/hex";
197
+ import { toAddress as toAddress4, toHex as toHex3 } from "@xylabs/sdk-js";
199
198
  import { PayloadZodStrictOfSchema as PayloadZodStrictOfSchema4 } from "@xyo-network/payload-model";
200
199
  import { BridgeDestinationObservationFieldsZod as BridgeDestinationObservationFieldsZod2, BridgeDestinationObservationSchema as BridgeDestinationObservationSchema2 } from "@xyo-network/xl1-protocol";
201
200
  import { z as z4 } from "zod";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/server/app.ts","../../src/server/instrumentation.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts","../../src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts","../../src/server/routes/bridge/routeDefinitions/getRouteDefinitions.ts","../../src/server/routes/bridge/addBridgeRoutes.ts","../../src/server/routes/addRoutes.ts","../../src/server/server.ts"],"sourcesContent":["import {\n customPoweredByHeader, disableCaseSensitiveRouting, disableExpressDefaultPoweredByHeader, getJsonBodyParser, getJsonBodyParserOptions, responseProfiler,\n standardErrors, standardResponses,\n} from '@xylabs/express'\nimport compression from 'compression'\nimport cors from 'cors'\nimport type { Express } from 'express'\nimport express from 'express'\n\nimport { addInstrumentation } from './instrumentation.ts'\nimport { addRoutes } from './routes/index.ts'\n\n// export const getApp = (node: NodeInstance): Express => {\nexport const getApp = (): Express => {\n addInstrumentation()\n const app = express()\n app.set('etag', false)\n app.use(cors())\n app.use(compression())\n app.use(responseProfiler)\n app.use(getJsonBodyParser(getJsonBodyParserOptions({ limit: '1mb' })))\n app.use(standardResponses)\n disableExpressDefaultPoweredByHeader(app)\n app.use(customPoweredByHeader)\n disableCaseSensitiveRouting(app)\n // app.node = node\n addRoutes(app)\n app.use(standardErrors)\n return app\n}\n","import { registerInstrumentations } from '@opentelemetry/instrumentation'\nimport { ExpressInstrumentation } from '@opentelemetry/instrumentation-express'\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http'\n\n/**\n * Registers OpenTelemetry instrumentations for HTTP and Express.\n * This function is used to set up the necessary instrumentations for monitoring\n * HTTP requests and Express applications. Since it monkey patches the Express\n * router & middleware system, it should be called before any Express applications\n * are defined.\n */\nexport const addInstrumentation = () => {\n const instrumentations = [new HttpInstrumentation(), new ExpressInstrumentation()]\n registerInstrumentations({ instrumentations })\n}\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport { toAddress, toHex } from '@xylabs/hex'\nimport { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type { BridgeDestinationObservation } from '@xyo-network/xl1-protocol'\nimport {\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n} from '@xyo-network/xl1-protocol'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\nconst params = z.object({\n chainId: ChainIdPathParam,\n nonce: z.string(),\n})\nconst response = PayloadZodStrictOfSchema(BridgeDestinationObservationSchema).extend(\n BridgeDestinationObservationFieldsZod.shape,\n)\n\nconst validateRequest = requestHandlerValidator({\n params,\n response,\n})\n\nexport const bridgeFromRemoteStatus: RouteDefinition = {\n method: 'get',\n path: '/bridge/chains/:chainId/bridgeFromRemote/status/:nonce',\n handlers: validateRequest(async (req, res) => {\n const { chainId } = req.params\n const rand = await Promise.resolve(Math.random())\n\n // TODO: Replace with actual lookup logic (e.g. database or chain query)\n const found = rand > 0.5 // simulate lookup\n if (!found) return res.sendStatus(404)\n\n const confirmed = rand > 0.8 // simulate pending/confirmed\n if (!confirmed) return res.sendStatus(204)\n\n const observation: BridgeDestinationObservation = {\n schema: BridgeDestinationObservationSchema,\n dest: chainId,\n destAddress: toAddress('0xabc'),\n destAmount: toHex('0x100'),\n destToken: toAddress('0xdef'),\n src: toAddress('0x02'),\n srcAddress: toAddress('0x123'),\n srcAmount: toHex('0x200'),\n srcToken: toHex('0x456'),\n destConfirmation: toHex('0x9999'),\n }\n res.json(observation)\n }),\n}\n","import {\n hexFromHexString, HexZod, isAddress, toAddress,\n} from '@xylabs/hex'\nimport { isUndefined } from '@xylabs/typeof'\nimport type { ChainId } from '@xyo-network/xl1-protocol'\n\nconst remoteChainId: ChainId = toAddress('0x01')\n\nexport const ChainIdPathParam = HexZod.refine(\n (val) => {\n const chainIdHex = hexFromHexString(val, { prefix: true })\n if (isAddress(chainIdHex)) return false\n const suppliedChainId = toAddress(chainIdHex)\n if (isUndefined(suppliedChainId)) return false\n return suppliedChainId === remoteChainId\n },\n { message: `Only ${remoteChainId} is supported` },\n)\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport { asHash } from '@xylabs/hex'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type { BridgeSourceObservation, BridgeSourceObservationFields } from '@xyo-network/xl1-protocol'\nimport {\n BridgeIntentFieldsZod,\n BridgeIntentSchema,\n BridgeSourceObservationFieldsZod,\n BridgeSourceObservationSchema,\n TransferSchema,\n} from '@xyo-network/xl1-protocol'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\nconst params = z.object({ chainId: ChainIdPathParam })\nconst body = z.tuple([\n // TODO: TransactionBoundWitness\n PayloadZodStrictOfSchema(BridgeIntentSchema).extend(BridgeIntentFieldsZod.shape),\n PayloadZodLooseOfSchema(TransferSchema),\n])\nconst response = PayloadZodStrictOfSchema(BridgeSourceObservationSchema).extend(BridgeSourceObservationFieldsZod.shape)\n\nconst validateRequest = requestHandlerValidator({\n params,\n body,\n response,\n})\n\nexport const bridgeToRemote: RouteDefinition = {\n method: 'post',\n path: '/bridge/chains/:chainId/bridgeToRemote',\n handlers: validateRequest(async (req, res) => {\n const { body } = req\n const [bridgeIntent] = body\n // TODO: Execute bridge transaction on-chain\n const srcConfirmation = await Promise.resolve(asHash('0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'))\n\n // Extract common fields for BridgeSourceObservation from BridgeIntent\n const bridgeCommonFieldsZod = z.object({}).extend(BridgeSourceObservationFieldsZod.shape)\n const bridgeCommonFields = bridgeCommonFieldsZod.parse(bridgeIntent)\n const bridgeObservationFields: BridgeSourceObservationFields = {\n ...bridgeCommonFields,\n srcConfirmation,\n }\n const bridgeObservation: BridgeSourceObservation = new PayloadBuilder<BridgeSourceObservation>(\n { schema: BridgeSourceObservationSchema },\n ).fields(bridgeObservationFields).build()\n res.json(bridgeObservation)\n }),\n}\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport {\n hexToBigInt, toAddress, toHex,\n} from '@xylabs/hex'\nimport { createTransferPayload } from '@xyo-network/chain-protocol'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type {\n BridgeIntent, BridgeIntentFields, ChainId, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport {\n BridgeIntentFieldsZod, BridgeIntentSchema, TransferSchema,\n} from '@xyo-network/xl1-protocol'\nimport { v4 } from 'uuid'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\n// TODO: Get from config\nconst TOKEN_ADDRESS = '0x5FbDB2315678afecb367f032d93F642f64180aa3'\nconst bridgeableTokenContract = toHex(TOKEN_ADDRESS)\nconst xl1ChainId: ChainId = toAddress('0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9')\nconst fixedFee: bigint = 1_000_000_000_000_000n\nconst percentFee: bigint = 5n // 0.5%\nconst bridgeEscrowAddress = toAddress('0x0a')\nconst bridgeFeesAddress = toAddress('0x0b')\nconst remoteChainId: ChainId = toHex('0x01')\n\nconst params = z.object({ chainId: ChainIdPathParam })\nconst body = BridgeIntentFieldsZod.pick({\n destAddress: true,\n srcAddress: true,\n srcAmount: true,\n})\nconst response = z.tuple([\n PayloadZodStrictOfSchema(BridgeIntentSchema).extend(BridgeIntentFieldsZod.shape),\n PayloadZodLooseOfSchema(TransferSchema),\n])\nconst validateRequest = requestHandlerValidator({\n params, body, response,\n})\n\nexport const bridgeToRemoteEstimate: RouteDefinition = {\n method: 'post',\n path: '/bridge/chains/:chainId/bridgeToRemote/estimate',\n handlers: validateRequest((req, res) => {\n const {\n srcAddress, srcAmount, destAddress,\n } = req.body\n\n const srcAmountBigInt = hexToBigInt(srcAmount)\n const feeAmount = fixedFee + ((srcAmountBigInt * percentFee) / 100n)\n const destAmountBigInt = srcAmountBigInt > feeAmount ? srcAmountBigInt - feeAmount : 0n\n const destAmount = toHex(destAmountBigInt)\n const nonce = v4()\n\n const sender = toAddress(srcAddress)\n\n const bridgeIntentFields: BridgeIntentFields = {\n // Source\n src: xl1ChainId,\n srcAddress,\n srcAmount,\n srcToken: xl1ChainId,\n\n // Destination\n dest: remoteChainId,\n destAddress,\n destAmount,\n destToken: bridgeableTokenContract,\n nonce,\n }\n const bridgeIntent: BridgeIntent = new PayloadBuilder<BridgeIntent>({ schema: BridgeIntentSchema }).fields(bridgeIntentFields).build()\n\n const transfer: Transfer = createTransferPayload(sender, {\n [bridgeEscrowAddress]: destAmountBigInt,\n [bridgeFeesAddress]: feeAmount,\n })\n\n res.json([bridgeIntent, transfer])\n }),\n}\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport { toAddress, toHex } from '@xylabs/hex'\nimport { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type { BridgeDestinationObservation } from '@xyo-network/xl1-protocol'\nimport {\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n} from '@xyo-network/xl1-protocol'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\nconst params = z.object({\n chainId: ChainIdPathParam,\n nonce: z.string(),\n})\nconst response = PayloadZodStrictOfSchema(BridgeDestinationObservationSchema).extend(\n BridgeDestinationObservationFieldsZod.shape,\n)\n\nconst validateRequest = requestHandlerValidator({\n params,\n response,\n})\n\nexport const bridgeToRemoteStatus: RouteDefinition = {\n method: 'get',\n path: '/bridge/chains/:chainId/bridgeToRemote/status/:nonce',\n handlers: validateRequest(async (req, res) => {\n const { chainId } = req.params\n const rand = await Promise.resolve(Math.random())\n\n // TODO: Replace with actual lookup logic (e.g. database or chain query)\n const found = rand > 0.5 // simulate lookup\n if (!found) return res.sendStatus(404)\n\n const confirmed = rand > 0.8 // simulate pending/confirmed\n if (!confirmed) return res.sendStatus(204)\n\n const observation: BridgeDestinationObservation = {\n schema: BridgeDestinationObservationSchema,\n dest: chainId,\n destAddress: toAddress('0xabc'),\n destAmount: toHex('0x100'),\n destToken: toAddress('0xdef'),\n src: toAddress('0x02'),\n srcAddress: toAddress('0x123'),\n srcAmount: toHex('0x200'),\n srcToken: toHex('0x456'),\n destConfirmation: toHex('0x9999'),\n }\n res.json(observation)\n }),\n}\n","import type { RouteDefinition } from '@xylabs/express'\n\nimport {\n bridgeFromRemoteStatus, bridgeToRemote, bridgeToRemoteEstimate, bridgeToRemoteStatus,\n} from './routes/index.ts'\n\nexport const getRouteDefinitions = (): RouteDefinition[] => {\n return [\n bridgeFromRemoteStatus,\n bridgeToRemote,\n bridgeToRemoteEstimate,\n bridgeToRemoteStatus,\n ]\n}\n","import type { Express } from 'express'\n\nimport { getRouteDefinitions } from './routeDefinitions/index.ts'\n\nexport const addBridgeRoutes = (app: Express) => {\n const routeDefinitions = getRouteDefinitions()\n for (const definition of routeDefinitions) {\n app[definition.method](definition.path, definition.handlers)\n }\n}\n","import type { Express } from 'express'\n\nimport { addBridgeRoutes } from './bridge/index.ts'\n\nexport const addRoutes = (app: Express) => {\n addBridgeRoutes(app)\n}\n","import type { Logger } from '@xylabs/logger'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { type Config } from '@xyo-network/xl1-protocol-sdk'\n\nimport { getApp } from './app.ts'\n\nconst hostname = '::'\n// const hostname = '0.0.0.0'\n\n// TODO: Make nodejs version of bios support round tripping mnemonic between boots\n// const getSeedPhrase = async (bios: BiosExternalInterface, config: Config, logger?: Logger): Promise<string> => {\n// const storedSeedPhrase = await bios.seedPhraseStore.get('os')\n// logger?.debug(`[Bridge] Stored mnemonic: ${storedSeedPhrase}`)\n// const { mnemonic } = config.api\n// if (isString(storedSeedPhrase) && isString(mnemonic)) {\n// logger?.warn('[Bridge] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.')\n// await bios.seedPhraseStore.set('os', mnemonic)\n// } else {\n// let seedPhrase: string\n// if (isString(mnemonic)) {\n// seedPhrase = mnemonic\n// } else {\n// seedPhrase = HDWallet.generateMnemonic()\n// logger?.log('[Bridge] No mnemonic provided, using random mnemonic. This is not recommended for production use.')\n// logger?.log(`[Bridge] Mnemonic: ${seedPhrase}`)\n// }\n// await bios.seedPhraseStore.set('os', seedPhrase)\n// }\n// return assertEx(await bios.seedPhraseStore.get('os'), () => 'Unable to acquire mnemonic from bios')\n// }\n\ninterface GetServerContext {\n config: Config\n logger?: Logger\n node?: NodeInstance\n}\n\nexport const getServer = async (context: GetServerContext) => {\n const { logger } = context\n const { port } = context.config.bridge\n await Promise.resolve() // bios booting is currently disabled\n // const bios = await boot()\n // const seedPhrase = isDefined(mnemonic) ? mnemonic : await getSeedPhrase(bios, config, logger)\n // const wallet = await HDWallet.fromPhrase(seedPhrase)\n // const nodeContext = {\n // wallet, logger, config,\n // }\n const app = getApp()\n const server = app.listen(port, hostname, () => logger?.log(`[Bridge] Server listening at http://${hostname}:${port}`))\n server.setTimeout(20_000)\n return server\n}\n"],"mappings":"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","names":["customPoweredByHeader","disableCaseSensitiveRouting","disableExpressDefaultPoweredByHeader","getJsonBodyParser","getJsonBodyParserOptions","responseProfiler","standardErrors","standardResponses","compression","cors","express","registerInstrumentations","ExpressInstrumentation","HttpInstrumentation","addInstrumentation","instrumentations","HttpInstrumentation","ExpressInstrumentation","registerInstrumentations","requestHandlerValidator","toAddress","toHex","PayloadZodStrictOfSchema","BridgeDestinationObservationFieldsZod","BridgeDestinationObservationSchema","z","hexFromHexString","HexZod","isAddress","toAddress","isUndefined","remoteChainId","ChainIdPathParam","refine","val","chainIdHex","prefix","suppliedChainId","message","params","z","object","chainId","ChainIdPathParam","nonce","string","response","PayloadZodStrictOfSchema","BridgeDestinationObservationSchema","extend","BridgeDestinationObservationFieldsZod","shape","validateRequest","requestHandlerValidator","bridgeFromRemoteStatus","method","path","handlers","req","res","rand","Promise","resolve","Math","random","found","sendStatus","confirmed","observation","schema","dest","destAddress","toAddress","destAmount","toHex","destToken","src","srcAddress","srcAmount","srcToken","destConfirmation","json","requestHandlerValidator","asHash","PayloadBuilder","PayloadZodLooseOfSchema","PayloadZodStrictOfSchema","BridgeIntentFieldsZod","BridgeIntentSchema","BridgeSourceObservationFieldsZod","BridgeSourceObservationSchema","TransferSchema","z","params","z","object","chainId","ChainIdPathParam","body","tuple","PayloadZodStrictOfSchema","BridgeIntentSchema","extend","BridgeIntentFieldsZod","shape","PayloadZodLooseOfSchema","TransferSchema","response","BridgeSourceObservationSchema","BridgeSourceObservationFieldsZod","validateRequest","requestHandlerValidator","bridgeToRemote","method","path","handlers","req","res","bridgeIntent","srcConfirmation","Promise","resolve","asHash","bridgeCommonFieldsZod","bridgeCommonFields","parse","bridgeObservationFields","bridgeObservation","PayloadBuilder","schema","fields","build","json","requestHandlerValidator","hexToBigInt","toAddress","toHex","createTransferPayload","PayloadBuilder","PayloadZodLooseOfSchema","PayloadZodStrictOfSchema","BridgeIntentFieldsZod","BridgeIntentSchema","TransferSchema","v4","z","TOKEN_ADDRESS","bridgeableTokenContract","toHex","xl1ChainId","toAddress","fixedFee","percentFee","bridgeEscrowAddress","bridgeFeesAddress","remoteChainId","params","z","object","chainId","ChainIdPathParam","body","BridgeIntentFieldsZod","pick","destAddress","srcAddress","srcAmount","response","tuple","PayloadZodStrictOfSchema","BridgeIntentSchema","extend","shape","PayloadZodLooseOfSchema","TransferSchema","validateRequest","requestHandlerValidator","bridgeToRemoteEstimate","method","path","handlers","req","res","srcAmountBigInt","hexToBigInt","feeAmount","destAmountBigInt","destAmount","nonce","v4","sender","bridgeIntentFields","src","srcToken","dest","destToken","bridgeIntent","PayloadBuilder","schema","fields","build","transfer","createTransferPayload","json","requestHandlerValidator","toAddress","toHex","PayloadZodStrictOfSchema","BridgeDestinationObservationFieldsZod","BridgeDestinationObservationSchema","z","params","z","object","chainId","ChainIdPathParam","nonce","string","response","PayloadZodStrictOfSchema","BridgeDestinationObservationSchema","extend","BridgeDestinationObservationFieldsZod","shape","validateRequest","requestHandlerValidator","bridgeToRemoteStatus","method","path","handlers","req","res","rand","Promise","resolve","Math","random","found","sendStatus","confirmed","observation","schema","dest","destAddress","toAddress","destAmount","toHex","destToken","src","srcAddress","srcAmount","srcToken","destConfirmation","json","getRouteDefinitions","bridgeFromRemoteStatus","bridgeToRemote","bridgeToRemoteEstimate","bridgeToRemoteStatus","addBridgeRoutes","app","routeDefinitions","getRouteDefinitions","definition","method","path","handlers","addRoutes","app","addBridgeRoutes","getApp","addInstrumentation","app","express","set","use","cors","compression","responseProfiler","getJsonBodyParser","getJsonBodyParserOptions","limit","standardResponses","disableExpressDefaultPoweredByHeader","customPoweredByHeader","disableCaseSensitiveRouting","addRoutes","standardErrors","hostname","getServer","context","logger","port","config","bridge","Promise","resolve","app","getApp","server","listen","log","setTimeout"]}
1
+ {"version":3,"sources":["../../src/server/app.ts","../../src/server/instrumentation.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts","../../src/server/routes/bridge/routeDefinitions/pathParams/ChainIdPathParam.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts","../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts","../../src/server/routes/bridge/routeDefinitions/getRouteDefinitions.ts","../../src/server/routes/bridge/addBridgeRoutes.ts","../../src/server/routes/addRoutes.ts","../../src/server/server.ts"],"sourcesContent":["import {\n customPoweredByHeader, disableCaseSensitiveRouting, disableExpressDefaultPoweredByHeader, getJsonBodyParser, getJsonBodyParserOptions, responseProfiler,\n standardErrors, standardResponses,\n} from '@xylabs/express'\nimport compression from 'compression'\nimport cors from 'cors'\nimport type { Express } from 'express'\nimport express from 'express'\n\nimport { addInstrumentation } from './instrumentation.ts'\nimport { addRoutes } from './routes/index.ts'\n\n// export const getApp = (node: NodeInstance): Express => {\nexport const getApp = (): Express => {\n addInstrumentation()\n const app = express()\n app.set('etag', false)\n app.use(cors())\n app.use(compression())\n app.use(responseProfiler)\n app.use(getJsonBodyParser(getJsonBodyParserOptions({ limit: '1mb' })))\n app.use(standardResponses)\n disableExpressDefaultPoweredByHeader(app)\n app.use(customPoweredByHeader)\n disableCaseSensitiveRouting(app)\n // app.node = node\n addRoutes(app)\n app.use(standardErrors)\n return app\n}\n","import { registerInstrumentations } from '@opentelemetry/instrumentation'\nimport { ExpressInstrumentation } from '@opentelemetry/instrumentation-express'\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http'\n\n/**\n * Registers OpenTelemetry instrumentations for HTTP and Express.\n * This function is used to set up the necessary instrumentations for monitoring\n * HTTP requests and Express applications. Since it monkey patches the Express\n * router & middleware system, it should be called before any Express applications\n * are defined.\n */\nexport const addInstrumentation = () => {\n const instrumentations = [new HttpInstrumentation(), new ExpressInstrumentation()]\n registerInstrumentations({ instrumentations })\n}\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport { toAddress, toHex } from '@xylabs/sdk-js'\nimport { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type { BridgeDestinationObservation } from '@xyo-network/xl1-protocol'\nimport {\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n} from '@xyo-network/xl1-protocol'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\nconst params = z.object({\n chainId: ChainIdPathParam,\n nonce: z.string(),\n})\nconst response = PayloadZodStrictOfSchema(BridgeDestinationObservationSchema).extend(\n BridgeDestinationObservationFieldsZod.shape,\n)\n\nconst validateRequest = requestHandlerValidator({\n params,\n response,\n})\n\nexport const bridgeFromRemoteStatus: RouteDefinition = {\n method: 'get',\n path: '/bridge/chains/:chainId/bridgeFromRemote/status/:nonce',\n handlers: validateRequest(async (req, res) => {\n const { chainId } = req.params\n const rand = await Promise.resolve(Math.random())\n\n // TODO: Replace with actual lookup logic (e.g. database or chain query)\n const found = rand > 0.5 // simulate lookup\n if (!found) return res.sendStatus(404)\n\n const confirmed = rand > 0.8 // simulate pending/confirmed\n if (!confirmed) return res.sendStatus(204)\n\n const observation: BridgeDestinationObservation = {\n schema: BridgeDestinationObservationSchema,\n dest: chainId,\n destAddress: toAddress('0xabc'),\n destAmount: toHex('0x100'),\n destToken: toAddress('0xdef'),\n src: toAddress('0x02'),\n srcAddress: toAddress('0x123'),\n srcAmount: toHex('0x200'),\n srcToken: toHex('0x456'),\n destConfirmation: toHex('0x9999'),\n }\n res.json(observation)\n }),\n}\n","import {\n hexFromHexString, HexZod, isAddress, isUndefined,\n toAddress,\n} from '@xylabs/sdk-js'\nimport type { ChainId } from '@xyo-network/xl1-protocol'\n\nconst remoteChainId: ChainId = toAddress('0x01')\n\nexport const ChainIdPathParam = HexZod.refine(\n (val) => {\n const chainIdHex = hexFromHexString(val, { prefix: true })\n if (isAddress(chainIdHex)) return false\n const suppliedChainId = toAddress(chainIdHex)\n if (isUndefined(suppliedChainId)) return false\n return suppliedChainId === remoteChainId\n },\n { message: `Only ${remoteChainId} is supported` },\n)\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport { asHash } from '@xylabs/sdk-js'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type { BridgeSourceObservation, BridgeSourceObservationFields } from '@xyo-network/xl1-protocol'\nimport {\n BridgeIntentFieldsZod,\n BridgeIntentSchema,\n BridgeSourceObservationFieldsZod,\n BridgeSourceObservationSchema,\n TransferSchema,\n} from '@xyo-network/xl1-protocol'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\nconst params = z.object({ chainId: ChainIdPathParam })\nconst body = z.tuple([\n // TODO: TransactionBoundWitness\n PayloadZodStrictOfSchema(BridgeIntentSchema).extend(BridgeIntentFieldsZod.shape),\n PayloadZodLooseOfSchema(TransferSchema),\n])\nconst response = PayloadZodStrictOfSchema(BridgeSourceObservationSchema).extend(BridgeSourceObservationFieldsZod.shape)\n\nconst validateRequest = requestHandlerValidator({\n params,\n body,\n response,\n})\n\nexport const bridgeToRemote: RouteDefinition = {\n method: 'post',\n path: '/bridge/chains/:chainId/bridgeToRemote',\n handlers: validateRequest(async (req, res) => {\n const { body } = req\n const [bridgeIntent] = body\n // TODO: Execute bridge transaction on-chain\n const srcConfirmation = await Promise.resolve(asHash('0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'))\n\n // Extract common fields for BridgeSourceObservation from BridgeIntent\n const bridgeCommonFieldsZod = z.object({}).extend(BridgeSourceObservationFieldsZod.shape)\n const bridgeCommonFields = bridgeCommonFieldsZod.parse(bridgeIntent)\n const bridgeObservationFields: BridgeSourceObservationFields = {\n ...bridgeCommonFields,\n srcConfirmation,\n }\n const bridgeObservation: BridgeSourceObservation = new PayloadBuilder<BridgeSourceObservation>(\n { schema: BridgeSourceObservationSchema },\n ).fields(bridgeObservationFields).build()\n res.json(bridgeObservation)\n }),\n}\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport {\n hexToBigInt, toAddress, toHex,\n} from '@xylabs/sdk-js'\nimport { createTransferPayload } from '@xyo-network/chain-protocol'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type {\n BridgeIntent, BridgeIntentFields, ChainId, Transfer,\n} from '@xyo-network/xl1-protocol'\nimport {\n BridgeIntentFieldsZod, BridgeIntentSchema, TransferSchema,\n} from '@xyo-network/xl1-protocol'\nimport { v4 } from 'uuid'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\n// TODO: Get from config\nconst TOKEN_ADDRESS = '0x5FbDB2315678afecb367f032d93F642f64180aa3'\nconst bridgeableTokenContract = toHex(TOKEN_ADDRESS)\nconst xl1ChainId: ChainId = toAddress('0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9')\nconst fixedFee: bigint = 1_000_000_000_000_000n\nconst percentFee: bigint = 5n // 0.5%\nconst bridgeEscrowAddress = toAddress('0x0a')\nconst bridgeFeesAddress = toAddress('0x0b')\nconst remoteChainId: ChainId = toHex('0x01')\n\nconst params = z.object({ chainId: ChainIdPathParam })\nconst body = BridgeIntentFieldsZod.pick({\n destAddress: true,\n srcAddress: true,\n srcAmount: true,\n})\nconst response = z.tuple([\n PayloadZodStrictOfSchema(BridgeIntentSchema).extend(BridgeIntentFieldsZod.shape),\n PayloadZodLooseOfSchema(TransferSchema),\n])\nconst validateRequest = requestHandlerValidator({\n params, body, response,\n})\n\nexport const bridgeToRemoteEstimate: RouteDefinition = {\n method: 'post',\n path: '/bridge/chains/:chainId/bridgeToRemote/estimate',\n handlers: validateRequest((req, res) => {\n const {\n srcAddress, srcAmount, destAddress,\n } = req.body\n\n const srcAmountBigInt = hexToBigInt(srcAmount)\n const feeAmount = fixedFee + ((srcAmountBigInt * percentFee) / 100n)\n const destAmountBigInt = srcAmountBigInt > feeAmount ? srcAmountBigInt - feeAmount : 0n\n const destAmount = toHex(destAmountBigInt)\n const nonce = v4()\n\n const sender = toAddress(srcAddress)\n\n const bridgeIntentFields: BridgeIntentFields = {\n // Source\n src: xl1ChainId,\n srcAddress,\n srcAmount,\n srcToken: xl1ChainId,\n\n // Destination\n dest: remoteChainId,\n destAddress,\n destAmount,\n destToken: bridgeableTokenContract,\n nonce,\n }\n const bridgeIntent: BridgeIntent = new PayloadBuilder<BridgeIntent>({ schema: BridgeIntentSchema }).fields(bridgeIntentFields).build()\n\n const transfer: Transfer = createTransferPayload(sender, {\n [bridgeEscrowAddress]: destAmountBigInt,\n [bridgeFeesAddress]: feeAmount,\n })\n\n res.json([bridgeIntent, transfer])\n }),\n}\n","import type { RouteDefinition } from '@xylabs/express'\nimport { requestHandlerValidator } from '@xylabs/express'\nimport { toAddress, toHex } from '@xylabs/sdk-js'\nimport { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'\nimport type { BridgeDestinationObservation } from '@xyo-network/xl1-protocol'\nimport {\n BridgeDestinationObservationFieldsZod,\n BridgeDestinationObservationSchema,\n} from '@xyo-network/xl1-protocol'\nimport { z } from 'zod'\n\nimport { ChainIdPathParam } from '../pathParams/index.ts'\n\nconst params = z.object({\n chainId: ChainIdPathParam,\n nonce: z.string(),\n})\nconst response = PayloadZodStrictOfSchema(BridgeDestinationObservationSchema).extend(\n BridgeDestinationObservationFieldsZod.shape,\n)\n\nconst validateRequest = requestHandlerValidator({\n params,\n response,\n})\n\nexport const bridgeToRemoteStatus: RouteDefinition = {\n method: 'get',\n path: '/bridge/chains/:chainId/bridgeToRemote/status/:nonce',\n handlers: validateRequest(async (req, res) => {\n const { chainId } = req.params\n const rand = await Promise.resolve(Math.random())\n\n // TODO: Replace with actual lookup logic (e.g. database or chain query)\n const found = rand > 0.5 // simulate lookup\n if (!found) return res.sendStatus(404)\n\n const confirmed = rand > 0.8 // simulate pending/confirmed\n if (!confirmed) return res.sendStatus(204)\n\n const observation: BridgeDestinationObservation = {\n schema: BridgeDestinationObservationSchema,\n dest: chainId,\n destAddress: toAddress('0xabc'),\n destAmount: toHex('0x100'),\n destToken: toAddress('0xdef'),\n src: toAddress('0x02'),\n srcAddress: toAddress('0x123'),\n srcAmount: toHex('0x200'),\n srcToken: toHex('0x456'),\n destConfirmation: toHex('0x9999'),\n }\n res.json(observation)\n }),\n}\n","import type { RouteDefinition } from '@xylabs/express'\n\nimport {\n bridgeFromRemoteStatus, bridgeToRemote, bridgeToRemoteEstimate, bridgeToRemoteStatus,\n} from './routes/index.ts'\n\nexport const getRouteDefinitions = (): RouteDefinition[] => {\n return [\n bridgeFromRemoteStatus,\n bridgeToRemote,\n bridgeToRemoteEstimate,\n bridgeToRemoteStatus,\n ]\n}\n","import type { Express } from 'express'\n\nimport { getRouteDefinitions } from './routeDefinitions/index.ts'\n\nexport const addBridgeRoutes = (app: Express) => {\n const routeDefinitions = getRouteDefinitions()\n for (const definition of routeDefinitions) {\n app[definition.method](definition.path, definition.handlers)\n }\n}\n","import type { Express } from 'express'\n\nimport { addBridgeRoutes } from './bridge/index.ts'\n\nexport const addRoutes = (app: Express) => {\n addBridgeRoutes(app)\n}\n","import type { Logger } from '@xylabs/sdk-js'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { type Config } from '@xyo-network/xl1-protocol-sdk'\n\nimport { getApp } from './app.ts'\n\nconst hostname = '::'\n// const hostname = '0.0.0.0'\n\n// TODO: Make nodejs version of bios support round tripping mnemonic between boots\n// const getSeedPhrase = async (bios: BiosExternalInterface, config: Config, logger?: Logger): Promise<string> => {\n// const storedSeedPhrase = await bios.seedPhraseStore.get('os')\n// logger?.debug(`[Bridge] Stored mnemonic: ${storedSeedPhrase}`)\n// const { mnemonic } = config.api\n// if (isString(storedSeedPhrase) && isString(mnemonic)) {\n// logger?.warn('[Bridge] Stored mnemonic does not match supplied. Updating stored mnemonic to supplied.')\n// await bios.seedPhraseStore.set('os', mnemonic)\n// } else {\n// let seedPhrase: string\n// if (isString(mnemonic)) {\n// seedPhrase = mnemonic\n// } else {\n// seedPhrase = HDWallet.generateMnemonic()\n// logger?.log('[Bridge] No mnemonic provided, using random mnemonic. This is not recommended for production use.')\n// logger?.log(`[Bridge] Mnemonic: ${seedPhrase}`)\n// }\n// await bios.seedPhraseStore.set('os', seedPhrase)\n// }\n// return assertEx(await bios.seedPhraseStore.get('os'), () => 'Unable to acquire mnemonic from bios')\n// }\n\ninterface GetServerContext {\n config: Config\n logger?: Logger\n node?: NodeInstance\n}\n\nexport const getServer = async (context: GetServerContext) => {\n const { logger } = context\n const { port } = context.config.bridge\n await Promise.resolve() // bios booting is currently disabled\n // const bios = await boot()\n // const seedPhrase = isDefined(mnemonic) ? mnemonic : await getSeedPhrase(bios, config, logger)\n // const wallet = await HDWallet.fromPhrase(seedPhrase)\n // const nodeContext = {\n // wallet, logger, config,\n // }\n const app = getApp()\n const server = app.listen(port, hostname, () => logger?.log(`[Bridge] Server listening at http://${hostname}:${port}`))\n server.setTimeout(20_000)\n return server\n}\n"],"mappings":"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","names":["customPoweredByHeader","disableCaseSensitiveRouting","disableExpressDefaultPoweredByHeader","getJsonBodyParser","getJsonBodyParserOptions","responseProfiler","standardErrors","standardResponses","compression","cors","express","registerInstrumentations","ExpressInstrumentation","HttpInstrumentation","addInstrumentation","instrumentations","HttpInstrumentation","ExpressInstrumentation","registerInstrumentations","requestHandlerValidator","toAddress","toHex","PayloadZodStrictOfSchema","BridgeDestinationObservationFieldsZod","BridgeDestinationObservationSchema","z","hexFromHexString","HexZod","isAddress","isUndefined","toAddress","remoteChainId","ChainIdPathParam","refine","val","chainIdHex","prefix","suppliedChainId","message","params","z","object","chainId","ChainIdPathParam","nonce","string","response","PayloadZodStrictOfSchema","BridgeDestinationObservationSchema","extend","BridgeDestinationObservationFieldsZod","shape","validateRequest","requestHandlerValidator","bridgeFromRemoteStatus","method","path","handlers","req","res","rand","Promise","resolve","Math","random","found","sendStatus","confirmed","observation","schema","dest","destAddress","toAddress","destAmount","toHex","destToken","src","srcAddress","srcAmount","srcToken","destConfirmation","json","requestHandlerValidator","asHash","PayloadBuilder","PayloadZodLooseOfSchema","PayloadZodStrictOfSchema","BridgeIntentFieldsZod","BridgeIntentSchema","BridgeSourceObservationFieldsZod","BridgeSourceObservationSchema","TransferSchema","z","params","z","object","chainId","ChainIdPathParam","body","tuple","PayloadZodStrictOfSchema","BridgeIntentSchema","extend","BridgeIntentFieldsZod","shape","PayloadZodLooseOfSchema","TransferSchema","response","BridgeSourceObservationSchema","BridgeSourceObservationFieldsZod","validateRequest","requestHandlerValidator","bridgeToRemote","method","path","handlers","req","res","bridgeIntent","srcConfirmation","Promise","resolve","asHash","bridgeCommonFieldsZod","bridgeCommonFields","parse","bridgeObservationFields","bridgeObservation","PayloadBuilder","schema","fields","build","json","requestHandlerValidator","hexToBigInt","toAddress","toHex","createTransferPayload","PayloadBuilder","PayloadZodLooseOfSchema","PayloadZodStrictOfSchema","BridgeIntentFieldsZod","BridgeIntentSchema","TransferSchema","v4","z","TOKEN_ADDRESS","bridgeableTokenContract","toHex","xl1ChainId","toAddress","fixedFee","percentFee","bridgeEscrowAddress","bridgeFeesAddress","remoteChainId","params","z","object","chainId","ChainIdPathParam","body","BridgeIntentFieldsZod","pick","destAddress","srcAddress","srcAmount","response","tuple","PayloadZodStrictOfSchema","BridgeIntentSchema","extend","shape","PayloadZodLooseOfSchema","TransferSchema","validateRequest","requestHandlerValidator","bridgeToRemoteEstimate","method","path","handlers","req","res","srcAmountBigInt","hexToBigInt","feeAmount","destAmountBigInt","destAmount","nonce","v4","sender","bridgeIntentFields","src","srcToken","dest","destToken","bridgeIntent","PayloadBuilder","schema","fields","build","transfer","createTransferPayload","json","requestHandlerValidator","toAddress","toHex","PayloadZodStrictOfSchema","BridgeDestinationObservationFieldsZod","BridgeDestinationObservationSchema","z","params","z","object","chainId","ChainIdPathParam","nonce","string","response","PayloadZodStrictOfSchema","BridgeDestinationObservationSchema","extend","BridgeDestinationObservationFieldsZod","shape","validateRequest","requestHandlerValidator","bridgeToRemoteStatus","method","path","handlers","req","res","rand","Promise","resolve","Math","random","found","sendStatus","confirmed","observation","schema","dest","destAddress","toAddress","destAmount","toHex","destToken","src","srcAddress","srcAmount","srcToken","destConfirmation","json","getRouteDefinitions","bridgeFromRemoteStatus","bridgeToRemote","bridgeToRemoteEstimate","bridgeToRemoteStatus","addBridgeRoutes","app","routeDefinitions","getRouteDefinitions","definition","method","path","handlers","addRoutes","app","addBridgeRoutes","getApp","addInstrumentation","app","express","set","use","cors","compression","responseProfiler","getJsonBodyParser","getJsonBodyParserOptions","limit","standardResponses","disableExpressDefaultPoweredByHeader","customPoweredByHeader","disableCaseSensitiveRouting","addRoutes","standardErrors","hostname","getServer","context","logger","port","config","bridge","Promise","resolve","app","getApp","server","listen","log","setTimeout"]}
@@ -1,4 +1,4 @@
1
- import type { Address, Hex } from '@xylabs/hex';
1
+ import type { Address, Hex } from '@xylabs/sdk-js';
2
2
  export interface IntentIndexerInterface<T> {
3
3
  addIntent(intent: T): Promise<boolean>;
4
4
  getIntentByNonce(nonce: Hex): Promise<T | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"IntentIndexerInterface.d.ts","sourceRoot":"","sources":["../../../../src/interface/interface/IntentIndexerInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACpD,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACrD,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CAChD"}
1
+ {"version":3,"file":"IntentIndexerInterface.d.ts","sourceRoot":"","sources":["../../../../src/interface/interface/IntentIndexerInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,gBAAgB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;IACpD,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IACrD,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;CAChD"}
@@ -1,4 +1,4 @@
1
- import type { Address } from '@xylabs/hex';
1
+ import type { Address } from '@xylabs/sdk-js';
2
2
  export interface LockingProcessorInterface<T> {
3
3
  isLocked(intent: T): Promise<Address | null>;
4
4
  lock(processor: Address, intent: T): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"LockingProcessorInterface.d.ts","sourceRoot":"","sources":["../../../../src/interface/interface/LockingProcessorInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAAE,SAAQ,yBAAyB,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACxD"}
1
+ {"version":3,"file":"LockingProcessorInterface.d.ts","sourceRoot":"","sources":["../../../../src/interface/interface/LockingProcessorInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAAE,SAAQ,yBAAyB,CAAC,CAAC,CAAC;IAClF,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACxD"}
@@ -1,4 +1,4 @@
1
- import type { Address } from '@xylabs/hex';
1
+ import type { Address } from '@xylabs/sdk-js';
2
2
  import type { BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation } from '@xyo-network/xl1-protocol';
3
3
  export interface IntentRepository {
4
4
  getBridgeIntents(src: Address, nonce?: string): Promise<BridgeIntent[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"RepositoryInterface.d.ts","sourceRoot":"","sources":["../../../../src/interface/repository/RepositoryInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EACV,4BAA4B,EAAE,YAAY,EAAE,uBAAuB,EACpE,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;CACxE;AAED,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAA;CACrF;AAED,MAAM,WAAW,gCAAgC;IAC/C,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAA;CAC/F;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzD,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzD"}
1
+ {"version":3,"file":"RepositoryInterface.d.ts","sourceRoot":"","sources":["../../../../src/interface/repository/RepositoryInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EACV,4BAA4B,EAAE,YAAY,EAAE,uBAAuB,EACpE,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;CACxE;AAED,MAAM,WAAW,2BAA2B;IAC1C,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAA;CACrF;AAED,MAAM,WAAW,gCAAgC;IAC/C,+BAA+B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,4BAA4B,EAAE,CAAC,CAAA;CAC/F;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1D,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5D;AAED,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACzD,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACzD"}
@@ -1,4 +1,4 @@
1
- import type { Address } from '@xylabs/hex';
1
+ import type { Address } from '@xylabs/sdk-js';
2
2
  import type { WebSocketProvider } from 'ethers';
3
3
  import type { BridgeServiceParams } from '../../../interface/index.ts';
4
4
  import { BridgeObserverService } from '../Observer.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"ERC20TransferObserver.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Observer/ERC20TransferObserver/ERC20TransferObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAW1C,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAIzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,UAAU,GAAG,UAAU,CAAA;CACxC,CAAA;AAOD,qBAAa,qBAAsB,SAAQ,qBAAqB,CAAC,2BAA2B,CAAC;IAC3F,SAAS,KAAK,YAAY,IAAI,OAAO,CAEpC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YA0D/B,cAAc;CA2E7B"}
1
+ {"version":3,"file":"ERC20TransferObserver.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Observer/ERC20TransferObserver/ERC20TransferObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAS7C,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAIzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC9D;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,cAAc,EAAE,UAAU,GAAG,UAAU,CAAA;CACxC,CAAA;AAOD,qBAAa,qBAAsB,SAAQ,qBAAqB,CAAC,2BAA2B,CAAC;IAC3F,SAAS,KAAK,YAAY,IAAI,OAAO,CAEpC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YA0D/B,cAAc;CA2E7B"}
@@ -1,4 +1,4 @@
1
- import type { Address, Hex } from '@xylabs/hex';
1
+ import type { Address, Hex } from '@xylabs/sdk-js';
2
2
  import type { LiquidityPoolBridge } from '@xyo-network/typechain';
3
3
  import type { WebSocketProvider } from 'ethers';
4
4
  import type { BridgeServiceParams } from '../../../interface/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"LiquidityPoolBridgeObserver.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAM/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAQjE,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,MAAM,iCAAiC,GAAG,mBAAmB,GAAG;IACpE;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,2BAA4B,SAAQ,qBAAqB,CAAC,iCAAiC,CAAC;IACvG,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAClD,SAAS,CAAC,cAAc,EAAE,GAAG,GAAG,SAAS,CAAA;IACzC,SAAS,CAAC,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAA;IAC/C,SAAS,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAA;IAElD,SAAS,KAAK,MAAM,IAAI,mBAAmB,CAE1C;IAED,SAAS,KAAK,aAAa,IAAI,GAAG,CAEjC;IAED,SAAS,KAAK,mBAAmB,IAAI,GAAG,CAEvC;IAED,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAE1C;IAED,SAAS,KAAK,QAAQ,IAAI,iBAAiB,CAE1C;IAED,SAAS,KAAK,UAAU,IAAI,MAAM,CAEjC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YAsC/B,sBAAsB;YAoDtB,oBAAoB;YAsCpB,gBAAgB;CAiB/B"}
1
+ {"version":3,"file":"LiquidityPoolBridgeObserver.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Observer/LiquidityPoolBridgeObserver/LiquidityPoolBridgeObserver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAMlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAQjE,OAAO,KAAK,EAAwB,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAGrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,MAAM,MAAM,iCAAiC,GAAG,mBAAmB,GAAG;IACpE;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,qBAAa,2BAA4B,SAAQ,qBAAqB,CAAC,iCAAiC,CAAC;IACvG,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAClD,SAAS,CAAC,cAAc,EAAE,GAAG,GAAG,SAAS,CAAA;IACzC,SAAS,CAAC,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAA;IAC/C,SAAS,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAA;IAElD,SAAS,KAAK,MAAM,IAAI,mBAAmB,CAE1C;IAED,SAAS,KAAK,aAAa,IAAI,GAAG,CAEjC;IAED,SAAS,KAAK,mBAAmB,IAAI,GAAG,CAEvC;IAED,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAE1C;IAED,SAAS,KAAK,QAAQ,IAAI,iBAAiB,CAE1C;IAED,SAAS,KAAK,UAAU,IAAI,MAAM,CAEjC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;YAsC/B,sBAAsB;YAoDtB,oBAAoB;YAsCpB,gBAAgB;CAiB/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChainBridgeRelayService.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Relay/ChainBridgeRelay/ChainBridgeRelayService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE3F,OAAO,KAAK,EACV,4CAA4C,EAAE,4BAA4B,EAC1E,mBAAmB,EACnB,uCAAuC,EAAE,yBAAyB,EAAE,qCAAqC,EACzG,uCAAuC,EACxC,MAAM,6BAA6B,CAAA;AAEpC,qBAAa,uBAAuB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAC5F,SAAQ,sBAAsB,CAAC,OAAO,CAAE,YAAW,yBAAyB;IAC5E,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,uBAAuB,IAAI,4CAA4C,CAEpF;IAED,SAAS,KAAK,gBAAgB,IAAI,yBAAyB,CAE1D;IAED,SAAS,KAAK,eAAe,IAAI,qCAAqC,CAErE;IAED,SAAS,KAAK,gBAAgB,IAAI,uCAAuC,CAExE;IAED,SAAS,KAAK,oBAAoB,IAAI,4BAA4B,CAEjE;IAED,SAAS,KAAK,kBAAkB,IAAI,uCAAuC,CAE1E;IAED;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9D;;;;OAIG;IACG,wBAAwB,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB5G;;;;OAIG;IACG,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;CAqB1F"}
1
+ {"version":3,"file":"ChainBridgeRelayService.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Relay/ChainBridgeRelay/ChainBridgeRelayService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE3F,OAAO,KAAK,EACV,4CAA4C,EAAE,4BAA4B,EAC1E,mBAAmB,EACnB,uCAAuC,EAAE,yBAAyB,EAAE,qCAAqC,EACzG,uCAAuC,EACxC,MAAM,6BAA6B,CAAA;AAEpC,qBAAa,uBAAuB,CAAC,OAAO,SAAS,mBAAmB,GAAG,mBAAmB,CAC5F,SAAQ,sBAAsB,CAAC,OAAO,CAAE,YAAW,yBAAyB;IAC5E,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,uBAAuB,IAAI,4CAA4C,CAEpF;IAED,SAAS,KAAK,gBAAgB,IAAI,yBAAyB,CAE1D;IAED,SAAS,KAAK,eAAe,IAAI,qCAAqC,CAErE;IAED,SAAS,KAAK,gBAAgB,IAAI,uCAAuC,CAExE;IAED,SAAS,KAAK,oBAAoB,IAAI,4BAA4B,CAEjE;IAED,SAAS,KAAK,kBAAkB,IAAI,uCAAuC,CAE1E;IAED;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9D;;;;OAIG;IACG,wBAAwB,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB5G;;;;OAIG;IACG,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;CAqB1F"}
@@ -1,4 +1,4 @@
1
- import type { Address, Hex } from '@xylabs/hex';
1
+ import type { Address, Hex } from '@xylabs/sdk-js';
2
2
  import { BaseAccountableService } from '@xyo-network/chain-services';
3
3
  import type { LiquidityPoolBridge } from '@xyo-network/typechain';
4
4
  import { type BridgeDestinationObservation, type BridgeIntent } from '@xyo-network/xl1-protocol';
@@ -1 +1 @@
1
- {"version":3,"file":"LiquidityPoolBridgeRelay.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAK/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,EACL,KAAK,4BAA4B,EAAsC,KAAK,YAAY,EACzF,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE3C,OAAO,KAAK,EACV,4CAA4C,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,uCAAuC,EACxI,yBAAyB,EAAE,qCAAqC,EAAE,uCAAuC,EAC1G,MAAM,6BAA6B,CAAA;AAEpC,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;IACjE;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAA;AAED,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,sBAAsB,CAAC,OAAO,CAAE,YAAW,yBAAyB;IAC5E,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAClD,SAAS,CAAC,cAAc,EAAE,GAAG,GAAG,SAAS,CAAA;IACzC,SAAS,CAAC,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAA;IAC/C,SAAS,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAA;IAClD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAErC,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,MAAM,IAAI,mBAAmB,CAE1C;IAED,SAAS,KAAK,aAAa,IAAI,GAAG,CAEjC;IAED,SAAS,KAAK,mBAAmB,IAAI,GAAG,CAEvC;IAED,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAE1C;IAED,SAAS,KAAK,uBAAuB,IAAI,4CAA4C,CAEpF;IAED,SAAS,KAAK,gBAAgB,IAAI,yBAAyB,CAE1D;IAED,SAAS,KAAK,eAAe,IAAI,qCAAqC,CAErE;IAED,SAAS,KAAK,gBAAgB,IAAI,uCAAuC,CAExE;IAED,SAAS,KAAK,oBAAoB,IAAI,4BAA4B,CAEjE;IAED,SAAS,KAAK,QAAQ,IAAI,iBAAiB,CAE1C;IAED,SAAS,KAAK,kBAAkB,IAAI,uCAAuC,CAE1E;IAED,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB/C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC7C;;;;OAIG;IACG,wBAAwB,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB5G;;;;OAIG;IACG,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;CAkC1F"}
1
+ {"version":3,"file":"LiquidityPoolBridgeRelay.d.ts","sourceRoot":"","sources":["../../../../../../src/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAKlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,EACL,KAAK,4BAA4B,EAAsC,KAAK,YAAY,EACzF,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE3C,OAAO,KAAK,EACV,4CAA4C,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,uCAAuC,EACxI,yBAAyB,EAAE,qCAAqC,EAAE,uCAAuC,EAC1G,MAAM,6BAA6B,CAAA;AAEpC,MAAM,MAAM,8BAA8B,GAAG,mBAAmB,GAAG;IACjE;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAA;CAC5B,CAAA;AAED,qBAAa,wBAAwB,CAAC,OAAO,SAAS,8BAA8B,GAAG,8BAA8B,CACnH,SAAQ,sBAAsB,CAAC,OAAO,CAAE,YAAW,yBAAyB;IAC5E,SAAS,CAAC,OAAO,EAAE,mBAAmB,GAAG,SAAS,CAAA;IAClD,SAAS,CAAC,cAAc,EAAE,GAAG,GAAG,SAAS,CAAA;IACzC,SAAS,CAAC,oBAAoB,EAAE,GAAG,GAAG,SAAS,CAAA;IAC/C,SAAS,CAAC,mBAAmB,EAAE,OAAO,GAAG,SAAS,CAAA;IAClD,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAErC,SAAS,KAAK,OAAO,yDAEpB;IAED,SAAS,KAAK,MAAM,IAAI,mBAAmB,CAE1C;IAED,SAAS,KAAK,aAAa,IAAI,GAAG,CAEjC;IAED,SAAS,KAAK,mBAAmB,IAAI,GAAG,CAEvC;IAED,SAAS,KAAK,kBAAkB,IAAI,OAAO,CAE1C;IAED,SAAS,KAAK,uBAAuB,IAAI,4CAA4C,CAEpF;IAED,SAAS,KAAK,gBAAgB,IAAI,yBAAyB,CAE1D;IAED,SAAS,KAAK,eAAe,IAAI,qCAAqC,CAErE;IAED,SAAS,KAAK,gBAAgB,IAAI,uCAAuC,CAExE;IAED,SAAS,KAAK,oBAAoB,IAAI,4BAA4B,CAEjE;IAED,SAAS,KAAK,QAAQ,IAAI,iBAAiB,CAE1C;IAED,SAAS,KAAK,kBAAkB,IAAI,uCAAuC,CAE1E;IAED,SAAS,KAAK,MAAM,IAAI,MAAM,CAE7B;IAED;;;;OAIG;IACG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB/C,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC7C;;;;OAIG;IACG,wBAAwB,CAAC,4BAA4B,EAAE,4BAA4B,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB5G;;;;OAIG;IACG,SAAS,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,4BAA4B,GAAG,IAAI,CAAC;CAkC1F"}
@@ -1,4 +1,4 @@
1
- import type { Hash } from '@xylabs/hex';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
2
  import { type BridgeDestinationObservation, type BridgeIntent, type BridgeSourceObservation } from '@xyo-network/xl1-protocol';
3
3
  export declare const getBridgeIntentFromObservation: (observation: BridgeSourceObservation | BridgeDestinationObservation, nonce: string) => BridgeIntent;
4
4
  export declare const getBridgeIntentIdentifier: (bridgeIntent: BridgeIntent) => Promise<Hash>;
@@ -1 +1 @@
1
- {"version":3,"file":"getBridgeIntentIdentifier.d.ts","sourceRoot":"","sources":["../../../../src/interface/util/getBridgeIntentIdentifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,EACL,KAAK,4BAA4B,EAAE,KAAK,YAAY,EAAsB,KAAK,uBAAuB,EACvG,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,8BAA8B,GAAI,aAAa,uBAAuB,GAAG,4BAA4B,EAAE,OAAO,MAAM,KAAG,YAOnI,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAU,cAAc,YAAY,KAAG,OAAO,CAAC,IAAI,CAExF,CAAA"}
1
+ {"version":3,"file":"getBridgeIntentIdentifier.d.ts","sourceRoot":"","sources":["../../../../src/interface/util/getBridgeIntentIdentifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACL,KAAK,4BAA4B,EAAE,KAAK,YAAY,EAAsB,KAAK,uBAAuB,EACvG,MAAM,2BAA2B,CAAA;AAElC,eAAO,MAAM,8BAA8B,GAAI,aAAa,uBAAuB,GAAG,4BAA4B,EAAE,OAAO,MAAM,KAAG,YAOnI,CAAA;AAED,eAAO,MAAM,yBAAyB,GAAU,cAAc,YAAY,KAAG,OAAO,CAAC,IAAI,CAExF,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@xylabs/logger';
1
+ import type { Logger } from '@xylabs/sdk-js';
2
2
  import { ModuleFactoryLocator } from '@xyo-network/module-factory-locator';
3
3
  import type { Config } from '@xyo-network/xl1-protocol-sdk';
4
4
  export interface GetLocatorContext {
@@ -1 +1 @@
1
- {"version":3,"file":"getLocator.d.ts","sourceRoot":"","sources":["../../../src/manifest/getLocator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAY5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAI1E,OAAO,KAAK,EACW,MAAM,EAC5B,MAAM,+BAA+B,CAAA;AAGtC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,kCAqE1D,CAAA"}
1
+ {"version":3,"file":"getLocator.d.ts","sourceRoot":"","sources":["../../../src/manifest/getLocator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAclD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAI1E,OAAO,KAAK,EACW,MAAM,EAC5B,MAAM,+BAA+B,CAAA;AAGtC,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,kCAqE1D,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@xylabs/logger';
1
+ import type { Logger } from '@xylabs/sdk-js';
2
2
  import type { WalletInstance } from '@xyo-network/wallet-model';
3
3
  import type { Config } from '@xyo-network/xl1-protocol-sdk';
4
4
  export interface GetNodeContext {
@@ -0,0 +1,47 @@
1
+ import type { AnyConfigSchema } from '@xyo-network/module-model';
2
+ import type { Payload } from '@xyo-network/payload-model';
3
+ import { AbstractSentinel } from '@xyo-network/sentinel-abstract';
4
+ import type { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
5
+ import type { XyoConnection, XyoGatewayRunner, XyoViewer } from '@xyo-network/xl1-protocol-sdk';
6
+ export declare const XL1toEvmBridgeSentinelConfigSchema = "network.xyo.sentinel.chain.evm.bridge.config";
7
+ export type XL1toEvmBridgeSentinelConfigSchema = typeof XL1toEvmBridgeSentinelConfigSchema;
8
+ /**
9
+ * The configuration for the XL1 to EVM bridge sentinel
10
+ */
11
+ export type XL1toEvmBridgeSentinelConfig = SentinelConfig<{
12
+ /**
13
+ * The interval in milliseconds between checking for bridging intents to fulfill
14
+ */
15
+ bridgeIntentFulfillmentInterval: number;
16
+ /**
17
+ * The schema for the XL1 to EVM bridge sentinel config
18
+ */
19
+ schema: XL1toEvmBridgeSentinelConfigSchema;
20
+ }>;
21
+ interface XL1toEvmBridgeSentinelParamFields {
22
+ gateway: XyoGatewayRunner;
23
+ }
24
+ export type XL1toEvmBridgeSentinelParams<TConfig extends AnyConfigSchema<XL1toEvmBridgeSentinelConfig> = AnyConfigSchema<XL1toEvmBridgeSentinelConfig>> = SentinelParams<TConfig> & XL1toEvmBridgeSentinelParamFields;
25
+ export declare class XL1toEvmBridgeSentinel<TParams extends XL1toEvmBridgeSentinelParams = XL1toEvmBridgeSentinelParams, TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>> extends AbstractSentinel<TParams, TEventData> {
26
+ static readonly configSchemas: string[];
27
+ static readonly defaultConfigSchema = "network.xyo.sentinel.chain.evm.bridge.config";
28
+ private _bridgeAttemptsCounter;
29
+ private _bridgeCheckCounter;
30
+ private _bridgeErrorCounter;
31
+ private _bridgeSuccessCounter;
32
+ private _connection;
33
+ private _gateway;
34
+ private _reportMutex;
35
+ private _viewer;
36
+ protected get bridgeIntentFulfillmentInterval(): number;
37
+ protected get connection(): XyoConnection;
38
+ protected get gateway(): XyoGatewayRunner;
39
+ protected get viewer(): XyoViewer;
40
+ createHandler(): Promise<void>;
41
+ reportHandler(payloads?: Payload[]): Promise<Payload[]>;
42
+ private processAllBridgeIntents;
43
+ private processBridgeIntent;
44
+ private submitBridgeInitiationTransaction;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=XL1toEvmBridgeSentinel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XL1toEvmBridgeSentinel.d.ts","sourceRoot":"","sources":["../../../../src/modules/XL1toEvmBridgeSentinel/XL1toEvmBridgeSentinel.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EACV,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAC1E,MAAM,6BAA6B,CAAA;AAGpC,OAAO,KAAK,EACV,aAAa,EAAc,gBAAgB,EAAE,SAAS,EACvD,MAAM,+BAA+B,CAAA;AAItC,eAAO,MAAM,kCAAkC,iDAAiD,CAAA;AAChG,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,cAAc,CAAC;IACxD;;OAEG;IACH,+BAA+B,EAAE,MAAM,CAAA;IACvC;;OAEG;IACH,MAAM,EAAE,kCAAkC,CAAA;CAE3C,CAAC,CAAA;AAEF,UAAU,iCAAiC;IACzC,OAAO,EAAE,gBAAgB,CAAA;CAC1B;AAED,MAAM,MAAM,4BAA4B,CACtC,OAAO,SAAS,eAAe,CAAC,4BAA4B,CAAC,GAAG,eAAe,CAAC,4BAA4B,CAAC,IAC3G,cAAc,CAAC,OAAO,CAAC,GAAG,iCAAiC,CAAA;AAI/D,qBAAa,sBAAsB,CACjC,OAAO,SAAS,4BAA4B,GAAG,4BAA4B,EAC3E,UAAU,SAAS,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1H,SAAQ,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7C,gBAAyB,aAAa,WAAuC;IAC7E,gBAAyB,mBAAmB,kDAAqC;IACjF,OAAO,CAAC,sBAAsB,CAAiC;IAC/D,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,OAAO,CAAuB;IAEtC,SAAS,KAAK,+BAA+B,IAAI,MAAM,CAEtD;IAED,SAAS,KAAK,UAAU,IAAI,aAAa,CAExC;IAED,SAAS,KAAK,OAAO,IAAI,gBAAgB,CAExC;IAED,SAAS,KAAK,MAAM,IAAI,SAAS,CAEhC;IAEc,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YAqBxD,uBAAuB;YAgBvB,mBAAmB;YAiBnB,iCAAiC;CAQhD"}
@@ -0,0 +1,2 @@
1
+ export * from './XL1toEvmBridgeSentinel.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/XL1toEvmBridgeSentinel/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './XL1toEvmBridgeSentinel/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/get/get.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAsBhE,eAAO,MAAM,UAAU,4OAAwB,CAAA"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../../../src/server/routes/address/get/get.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAsBhE,eAAO,MAAM,UAAU,4OAAwB,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const ChainIdPathParam: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<import("@xylabs/hex").Hex, string>>;
1
+ export declare const ChainIdPathParam: import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<import("@xylabs/sdk-js").Hex, string>>;
2
2
  //# 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,+GAS5B,CAAA"}
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 +1 @@
1
- {"version":3,"file":"archivistMiddleware.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/dataLake/archivistMiddleware.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAiBrC,KAAK,0BAA0B,GAAG;IAChC,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,0BAA0B,KAAG,MAkDzE,CAAA"}
1
+ {"version":3,"file":"archivistMiddleware.d.ts","sourceRoot":"","sources":["../../../../../src/server/routes/dataLake/archivistMiddleware.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAI3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAiBrC,KAAK,0BAA0B,GAAG;IAChC,yBAAyB,EAAE,gBAAgB,CAAA;IAC3C,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,0BAA0B,KAAG,MAkDzE,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@xylabs/logger';
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 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/chain-bridge",
3
- "version": "1.16.9",
3
+ "version": "1.16.11",
4
4
  "description": "XYO Layer One Bridge",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -49,23 +49,23 @@
49
49
  "@opentelemetry/instrumentation": "~0.208.0",
50
50
  "@opentelemetry/instrumentation-express": "~0.57.0",
51
51
  "@opentelemetry/instrumentation-http": "~0.208.0",
52
- "@xylabs/express": "~5.0.24",
53
- "@xylabs/hex": "~5.0.24",
54
- "@xylabs/logger": "~5.0.24",
55
- "@xylabs/typeof": "~5.0.24",
56
- "@xyo-network/archivist-model": "~5.1.21",
57
- "@xyo-network/boundwitness-model": "~5.1.21",
58
- "@xyo-network/chain-protocol": "~1.16.9",
59
- "@xyo-network/manifest-model": "~5.1.21",
60
- "@xyo-network/module-factory-locator": "~5.1.21",
61
- "@xyo-network/module-model": "~5.1.21",
62
- "@xyo-network/node-model": "~5.1.21",
63
- "@xyo-network/payload-builder": "~5.1.21",
64
- "@xyo-network/payload-model": "~5.1.21",
52
+ "@xylabs/express": "~5.0.33",
53
+ "@xylabs/sdk-js": "~5.0.33",
54
+ "@xyo-network/archivist-model": "~5.1.22",
55
+ "@xyo-network/boundwitness-model": "~5.1.22",
56
+ "@xyo-network/chain-protocol": "~1.16.11",
57
+ "@xyo-network/manifest-model": "~5.1.22",
58
+ "@xyo-network/module-factory-locator": "~5.1.22",
59
+ "@xyo-network/module-model": "~5.1.22",
60
+ "@xyo-network/node-model": "~5.1.22",
61
+ "@xyo-network/payload-builder": "~5.1.22",
62
+ "@xyo-network/payload-model": "~5.1.22",
63
+ "@xyo-network/sentinel-abstract": "~5.1.22",
64
+ "@xyo-network/sentinel-model": "~5.1.22",
65
65
  "@xyo-network/typechain": "~4.0.10",
66
- "@xyo-network/wallet-model": "~5.1.21",
67
- "@xyo-network/xl1-protocol": "~1.13.6",
68
- "@xyo-network/xl1-protocol-sdk": "~1.16.9",
66
+ "@xyo-network/wallet-model": "~5.1.22",
67
+ "@xyo-network/xl1-protocol": "~1.13.11",
68
+ "@xyo-network/xl1-protocol-sdk": "~1.16.11",
69
69
  "compression": "~1.8.1",
70
70
  "cors": "~2.8.5",
71
71
  "express": "~5.1.0",
@@ -74,41 +74,39 @@
74
74
  "zod": "~4.1.12"
75
75
  },
76
76
  "devDependencies": {
77
+ "@opentelemetry/api": "~1.9.0",
77
78
  "@types/compression": "~1.8.1",
78
79
  "@types/cors": "~2.8.19",
79
80
  "@types/express": "5.0.5",
80
81
  "@types/express-serve-static-core": "~5.1.0",
81
82
  "@types/node": "~24.10.1",
82
- "@xylabs/assert": "~5.0.24",
83
- "@xylabs/base": "~5.0.24",
84
- "@xylabs/delay": "~5.0.24",
85
- "@xylabs/mongo": "~5.0.24",
86
- "@xylabs/object": "~5.0.24",
87
- "@xylabs/promise": "~5.0.24",
83
+ "@xylabs/mongo": "~5.0.33",
84
+ "@xylabs/sdk-js": "~5.0.33",
88
85
  "@xylabs/ts-scripts-yarn3": "~7.2.8",
89
86
  "@xylabs/tsconfig": "~7.2.8",
90
- "@xyo-network/account": "~5.1.21",
91
- "@xyo-network/account-model": "~5.1.21",
92
- "@xyo-network/archivist-abstract": "~5.1.21",
93
- "@xyo-network/archivist-memory": "~5.1.21",
94
- "@xyo-network/archivist-mongodb": "~5.1.21",
95
- "@xyo-network/archivist-view": "~5.1.21",
87
+ "@xyo-network/account": "~5.1.22",
88
+ "@xyo-network/account-model": "~5.1.22",
89
+ "@xyo-network/archivist-abstract": "~5.1.22",
90
+ "@xyo-network/archivist-memory": "~5.1.22",
91
+ "@xyo-network/archivist-mongodb": "~5.1.22",
92
+ "@xyo-network/archivist-view": "~5.1.22",
96
93
  "@xyo-network/bios": "~7.1.1",
97
94
  "@xyo-network/bios-model": "~7.1.1",
98
- "@xyo-network/boundwitness-builder": "~5.1.21",
99
- "@xyo-network/chain-modules": "~1.16.9",
100
- "@xyo-network/chain-protocol": "~1.16.9",
101
- "@xyo-network/chain-services": "~1.16.9",
102
- "@xyo-network/chain-telemetry": "~1.16.9",
103
- "@xyo-network/manifest-wrapper": "~5.1.21",
104
- "@xyo-network/module-abstract": "~5.1.21",
105
- "@xyo-network/module-abstract-mongodb": "~5.1.21",
106
- "@xyo-network/module-model-mongodb": "~5.1.21",
107
- "@xyo-network/node-memory": "~5.1.21",
108
- "@xyo-network/payload-builder": "~5.1.21",
109
- "@xyo-network/sentinel-memory": "~5.1.21",
110
- "@xyo-network/wallet": "~5.1.21",
111
- "@xyo-network/xl1-protocol": "~1.13.6",
95
+ "@xyo-network/boundwitness-builder": "~5.1.22",
96
+ "@xyo-network/chain-modules": "~1.16.11",
97
+ "@xyo-network/chain-protocol": "~1.16.11",
98
+ "@xyo-network/chain-services": "~1.16.11",
99
+ "@xyo-network/chain-telemetry": "~1.16.11",
100
+ "@xyo-network/manifest-wrapper": "~5.1.22",
101
+ "@xyo-network/module-abstract": "~5.1.22",
102
+ "@xyo-network/module-abstract-mongodb": "~5.1.22",
103
+ "@xyo-network/module-model-mongodb": "~5.1.22",
104
+ "@xyo-network/node-memory": "~5.1.22",
105
+ "@xyo-network/payload-builder": "~5.1.22",
106
+ "@xyo-network/sentinel-memory": "~5.1.22",
107
+ "@xyo-network/wallet": "~5.1.22",
108
+ "@xyo-network/xl1-protocol": "~1.13.11",
109
+ "async-mutex": "~0.5.0",
112
110
  "dotenv": "~17.2.3",
113
111
  "eslint": "^9.39.1",
114
112
  "ethers": "~6.15.0",
@@ -116,7 +114,7 @@
116
114
  "nodemon": "~3.1.11",
117
115
  "tslib": "~2.8.1",
118
116
  "typescript": "~5.9.3",
119
- "vitest": "~4.0.8",
117
+ "vitest": "~4.0.9",
120
118
  "vitest-mock-extended": "~3.1.0"
121
119
  },
122
120
  "engines": {
@@ -1,9 +1,10 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { Hash, Hex } from '@xylabs/hex'
3
- import type { Promisable } from '@xylabs/promise'
1
+ import type {
2
+ Hash, Hex, Promisable,
3
+ } from '@xylabs/sdk-js'
4
4
  import {
5
+ assertEx,
5
6
  isDefined, isNull, isUndefined,
6
- } from '@xylabs/typeof'
7
+ } from '@xylabs/sdk-js'
7
8
  import type { ArchivistInstance } from '@xyo-network/archivist-model'
8
9
  import type { BaseServiceParams } from '@xyo-network/chain-services'
9
10
  import { BaseService } from '@xyo-network/chain-services'
@@ -1,4 +1,4 @@
1
- import { isDefined, isUndefined } from '@xylabs/typeof'
1
+ import { isDefined, isUndefined } from '@xylabs/sdk-js'
2
2
  import type { WithStorageMeta } from '@xyo-network/payload-model'
3
3
  import type { BlockBoundWitness } from '@xyo-network/xl1-protocol'
4
4
  import type { EventingChainBlockNumberIteratorService, HeadEventArgs } from '@xyo-network/xl1-protocol-sdk'
@@ -1,4 +1,4 @@
1
- import type { Address, Hex } from '@xylabs/hex'
1
+ import type { Address, Hex } from '@xylabs/sdk-js'
2
2
 
3
3
  export interface IntentIndexerInterface<T> {
4
4
  addIntent(intent: T): Promise<boolean>
@@ -1,4 +1,4 @@
1
- import type { Address } from '@xylabs/hex'
1
+ import type { Address } from '@xylabs/sdk-js'
2
2
 
3
3
  export interface LockingProcessorInterface<T> {
4
4
  isLocked(intent: T): Promise<Address | null>
@@ -1,4 +1,4 @@
1
- import type { Address } from '@xylabs/hex'
1
+ import type { Address } from '@xylabs/sdk-js'
2
2
  import type {
3
3
  BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation,
4
4
  } from '@xyo-network/xl1-protocol'
@@ -1,10 +1,8 @@
1
- import type { Address } from '@xylabs/hex'
1
+ import type { Address } from '@xylabs/sdk-js'
2
2
  import {
3
- asAddress, asHex, hexToBigInt, toAddress,
4
- } from '@xylabs/hex'
5
- import {
6
- isBigInt, isNull, isUndefined,
7
- } from '@xylabs/typeof'
3
+ asAddress, asHex, hexToBigInt, isBigInt, isNull, isUndefined,
4
+ toAddress,
5
+ } from '@xylabs/sdk-js'
8
6
  import type { BridgeDestinationObservation, BridgeSourceObservation } from '@xyo-network/xl1-protocol'
9
7
  import {
10
8
  BridgeDestinationObservationSchema, BridgeSourceObservationSchema, XYO_ZERO_ADDRESS,
@@ -1,7 +1,8 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import { delay } from '@xylabs/delay'
3
- import type { Address } from '@xylabs/hex'
4
- import { toAddress, toHex } from '@xylabs/hex'
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import {
3
+ assertEx, delay,
4
+ toAddress, toHex,
5
+ } from '@xylabs/sdk-js'
5
6
  import { Account } from '@xyo-network/account'
6
7
  import type { BridgeableToken } from '@xyo-network/typechain'
7
8
  import { BridgeableToken__factory } from '@xyo-network/typechain'
@@ -1,9 +1,8 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { Address, Hex } from '@xylabs/hex'
1
+ import type { Address, Hex } from '@xylabs/sdk-js'
3
2
  import {
4
- asAddress, asHex, hexFromBigInt, hexToBigInt, toAddress,
5
- } from '@xylabs/hex'
6
- import { isNull, isUndefined } from '@xylabs/typeof'
3
+ asAddress, asHex, assertEx, hexFromBigInt, hexToBigInt, isNull, isUndefined,
4
+ toAddress,
5
+ } from '@xylabs/sdk-js'
7
6
  import { PayloadBuilder } from '@xyo-network/payload-builder'
8
7
  import type { LiquidityPoolBridge } from '@xyo-network/typechain'
9
8
  import { LiquidityPoolBridge__factory } from '@xyo-network/typechain'
@@ -1,7 +1,8 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import { delay } from '@xylabs/delay'
3
- import type { Address } from '@xylabs/hex'
4
- import { toAddress, toHex } from '@xylabs/hex'
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import {
3
+ assertEx, delay,
4
+ toAddress, toHex,
5
+ } from '@xylabs/sdk-js'
5
6
  import { Account } from '@xyo-network/account'
6
7
  import type { BridgeableToken, LiquidityPoolBridge } from '@xyo-network/typechain'
7
8
  import { BridgeableToken__factory, LiquidityPoolBridge__factory } from '@xyo-network/typechain'
@@ -1,4 +1,4 @@
1
- import { assertEx } from '@xylabs/assert'
1
+ import { assertEx } from '@xylabs/sdk-js'
2
2
  import { BaseAccountableService } from '@xyo-network/chain-services'
3
3
 
4
4
  import type {
@@ -1,5 +1,4 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import { isNull } from '@xylabs/typeof'
1
+ import { assertEx, isNull } from '@xylabs/sdk-js'
3
2
  import { BaseAccountableService } from '@xyo-network/chain-services'
4
3
  import type { BridgeDestinationObservation, BridgeIntent } from '@xyo-network/xl1-protocol'
5
4
 
@@ -1,4 +1,4 @@
1
- import { toAddress, toHex } from '@xylabs/hex'
1
+ import { toAddress, toHex } from '@xylabs/sdk-js'
2
2
  import { HDWallet } from '@xyo-network/wallet'
3
3
  import type { WalletInstance } from '@xyo-network/wallet-model'
4
4
  import type {
@@ -1,9 +1,8 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { Address, Hex } from '@xylabs/hex'
1
+ import type { Address, Hex } from '@xylabs/sdk-js'
3
2
  import {
4
- asHex, hexFromBigInt, hexToBigInt, toAddress,
5
- } from '@xylabs/hex'
6
- import { isNull } from '@xylabs/typeof'
3
+ asHex, assertEx, hexFromBigInt, hexToBigInt, isNull,
4
+ toAddress,
5
+ } from '@xylabs/sdk-js'
7
6
  import { BaseAccountableService } from '@xyo-network/chain-services'
8
7
  import { PayloadBuilder } from '@xyo-network/payload-builder'
9
8
  import type { LiquidityPoolBridge } from '@xyo-network/typechain'
@@ -1,6 +1,7 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { Address } from '@xylabs/hex'
3
- import { toAddress, toHex } from '@xylabs/hex'
1
+ import type { Address } from '@xylabs/sdk-js'
2
+ import {
3
+ assertEx, toAddress, toHex,
4
+ } from '@xylabs/sdk-js'
4
5
  import { Account } from '@xyo-network/account'
5
6
  import type { AccountInstance } from '@xyo-network/account-model'
6
7
  import {
@@ -1,4 +1,4 @@
1
- import type { Hash } from '@xylabs/hex'
1
+ import type { Hash } from '@xylabs/sdk-js'
2
2
  import { PayloadBuilder } from '@xyo-network/payload-builder'
3
3
  import {
4
4
  type BridgeDestinationObservation, type BridgeIntent, BridgeIntentSchema, type BridgeSourceObservation,
@@ -1,9 +1,9 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import type { Hash } from '@xylabs/hex'
3
- import { asAddress, ZERO_ADDRESS } from '@xylabs/hex'
4
- import type { Logger } from '@xylabs/logger'
5
1
  import { BaseMongoSdk, type BaseMongoSdkPrivateConfig } from '@xylabs/mongo'
6
- import { isDefined } from '@xylabs/typeof'
2
+ import type { Hash, Logger } from '@xylabs/sdk-js'
3
+ import {
4
+ asAddress, assertEx, isDefined,
5
+ ZERO_ADDRESS,
6
+ } from '@xylabs/sdk-js'
7
7
  import { MemoryArchivist } from '@xyo-network/archivist-memory'
8
8
  import { MongoDBArchivistV2 } from '@xyo-network/archivist-mongodb'
9
9
  import { ViewArchivist } from '@xyo-network/archivist-view'
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@xylabs/logger'
1
+ import type { Logger } from '@xylabs/sdk-js'
2
2
  import { ManifestWrapper } from '@xyo-network/manifest-wrapper'
3
3
  import type { WalletInstance } from '@xyo-network/wallet-model'
4
4
  import type { Config } from '@xyo-network/xl1-protocol-sdk'
@@ -7,7 +7,7 @@ import {
7
7
  } from 'vitest'
8
8
 
9
9
  import { getNode, GetNodeContext } from '../../getNode.ts'
10
- import { SilentLogger } from '@xylabs/logger'
10
+ import { SilentLogger } from '@xylabs/sdk-js'
11
11
 
12
12
  /**
13
13
  * @group manifest
@@ -0,0 +1,156 @@
1
+ import type { Attributes, Counter } from '@opentelemetry/api'
2
+ import {
3
+ assertEx, delay, isDefined, isUndefined,
4
+ } from '@xylabs/sdk-js'
5
+ import type { AnyConfigSchema } from '@xyo-network/module-model'
6
+ import type { Payload } from '@xyo-network/payload-model'
7
+ import { AbstractSentinel } from '@xyo-network/sentinel-abstract'
8
+ import type {
9
+ SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams,
10
+ } from '@xyo-network/sentinel-model'
11
+ import type { BridgeIntent, SignedHydratedTransaction } from '@xyo-network/xl1-protocol'
12
+ import { isBridgeIntent } from '@xyo-network/xl1-protocol'
13
+ import type {
14
+ XyoConnection, XyoGateway, XyoGatewayRunner, XyoViewer,
15
+ } from '@xyo-network/xl1-protocol-sdk'
16
+ import { flattenHydratedTransaction, flattenHydratedTransactions } from '@xyo-network/xl1-protocol-sdk'
17
+ import { Mutex } from 'async-mutex'
18
+
19
+ export const XL1toEvmBridgeSentinelConfigSchema = 'network.xyo.sentinel.chain.evm.bridge.config'
20
+ export type XL1toEvmBridgeSentinelConfigSchema = typeof XL1toEvmBridgeSentinelConfigSchema
21
+
22
+ /**
23
+ * The configuration for the XL1 to EVM bridge sentinel
24
+ */
25
+ export type XL1toEvmBridgeSentinelConfig = SentinelConfig<{
26
+ /**
27
+ * The interval in milliseconds between checking for bridging intents to fulfill
28
+ */
29
+ bridgeIntentFulfillmentInterval: number
30
+ /**
31
+ * The schema for the XL1 to EVM bridge sentinel config
32
+ */
33
+ schema: XL1toEvmBridgeSentinelConfigSchema
34
+
35
+ }>
36
+
37
+ interface XL1toEvmBridgeSentinelParamFields {
38
+ gateway: XyoGatewayRunner
39
+ }
40
+
41
+ export type XL1toEvmBridgeSentinelParams<
42
+ TConfig extends AnyConfigSchema<XL1toEvmBridgeSentinelConfig> = AnyConfigSchema<XL1toEvmBridgeSentinelConfig>,
43
+ > = SentinelParams<TConfig> & XL1toEvmBridgeSentinelParamFields
44
+
45
+ const defaultStepClaimIntervalMs = 15_000
46
+
47
+ export class XL1toEvmBridgeSentinel<
48
+ TParams extends XL1toEvmBridgeSentinelParams = XL1toEvmBridgeSentinelParams,
49
+ TEventData extends SentinelModuleEventData<SentinelInstance<TParams>> = SentinelModuleEventData<SentinelInstance<TParams>>,
50
+ > extends AbstractSentinel<TParams, TEventData> {
51
+ static override readonly configSchemas = [XL1toEvmBridgeSentinelConfigSchema]
52
+ static override readonly defaultConfigSchema = XL1toEvmBridgeSentinelConfigSchema
53
+ private _bridgeAttemptsCounter: Counter<Attributes> | undefined
54
+ private _bridgeCheckCounter: Counter<Attributes> | undefined
55
+ private _bridgeErrorCounter: Counter<Attributes> | undefined
56
+ private _bridgeSuccessCounter: Counter<Attributes> | undefined
57
+ private _connection: XyoConnection | undefined
58
+ private _gateway: XyoGatewayRunner | undefined
59
+ private _reportMutex = new Mutex()
60
+ private _viewer: XyoViewer | undefined
61
+
62
+ protected get bridgeIntentFulfillmentInterval(): number {
63
+ return isDefined(this.config.bridgeIntentFulfillmentInterval) ? this.config.bridgeIntentFulfillmentInterval : defaultStepClaimIntervalMs
64
+ }
65
+
66
+ protected get connection(): XyoConnection {
67
+ return assertEx(this._connection, () => 'Connection is not defined')
68
+ }
69
+
70
+ protected get gateway(): XyoGatewayRunner {
71
+ return assertEx(this._gateway, () => 'Gateway is not defined')
72
+ }
73
+
74
+ protected get viewer(): XyoViewer {
75
+ return assertEx(this._viewer, () => 'Viewer is not defined')
76
+ }
77
+
78
+ override async createHandler(): Promise<void> {
79
+ await super.createHandler()
80
+ // Create meters for tracking bridge attempts, successes, and errors.
81
+ this._bridgeAttemptsCounter = this.meter?.createCounter('xl1_to_evm_bridge_sentinel_attempts_total', { description: 'Number of bridge attempts' })
82
+ this._bridgeCheckCounter = this.meter?.createCounter('xl1_to_evm_bridge_sentinel_check_total', { description: 'Number of bridge checks' })
83
+ this._bridgeSuccessCounter = this.meter?.createCounter('xl1_to_evm_bridge_sentinel_success_total', { description: 'Number of bridge successes' })
84
+ this._bridgeErrorCounter = this.meter?.createCounter('xl1_to_evm_bridge_sentinel_errors_total', { description: 'Number of bridge errors' })
85
+
86
+ const gateway = assertEx(this.params.gateway, () => 'Gateway parameter is required')
87
+ const connection = assertEx(gateway.connectionInstance, () => 'Gateway connection is required')
88
+ const viewer = assertEx(connection.viewer, () => 'Viewer is not defined in gateway connection')
89
+ this._gateway = gateway
90
+ this._connection = connection
91
+ this._viewer = viewer
92
+ }
93
+
94
+ override async reportHandler(payloads?: Payload[]): Promise<Payload[]> {
95
+ if (this._reportMutex.isLocked()) {
96
+ this.logger?.debug(`XL1toEvmBridgeSentinel [${this.id}] is already running, skipping report [${Date.now()}]`)
97
+ return []
98
+ }
99
+ return await this._reportMutex.runExclusive(async () => {
100
+ const response: Payload[] = []
101
+ if (isUndefined(payloads) || payloads.length === 0) {
102
+ await this.processAllBridgeIntents()
103
+ } else {
104
+ // Process provided payloads
105
+ const bridgeIntentsToProcess = payloads.filter(isBridgeIntent)
106
+ for (const bridgeIntent of bridgeIntentsToProcess) {
107
+ const result = await this.processBridgeIntent(bridgeIntent)
108
+ if (isDefined(result)) response.push(...flattenHydratedTransaction(result))
109
+ }
110
+ }
111
+ return response
112
+ })
113
+ }
114
+
115
+ private async processAllBridgeIntents(): Promise<Payload[]> {
116
+ // No payloads to process, just do unprocessed bridge intents since last run
117
+ const results: SignedHydratedTransaction[] = []
118
+ // TODO: Grab from iterable map of pending bridge intents
119
+ const bridgeIntents: BridgeIntent[] = []
120
+
121
+ for (const bridgeIntent of bridgeIntents) {
122
+ const result = await this.processBridgeIntent(bridgeIntent)
123
+ if (isDefined(result)) {
124
+ results.push(result)
125
+ }
126
+ await delay(this.bridgeIntentFulfillmentInterval)
127
+ }
128
+ return flattenHydratedTransactions(results)
129
+ }
130
+
131
+ private async processBridgeIntent(bridgeIntent: BridgeIntent): Promise<SignedHydratedTransaction | undefined> {
132
+ this.logger?.info(`Processing bridge request for ${bridgeIntent.srcAddress} with nonce ${bridgeIntent.nonce}`)
133
+ try {
134
+ this._bridgeCheckCounter?.add(1)
135
+ this._bridgeAttemptsCounter?.add(1)
136
+ // Create single transaction for all claims
137
+ const tx = await this.submitBridgeInitiationTransaction(bridgeIntent, this.gateway)
138
+ this.logger?.info(`Claimed rewards for ${bridgeIntent.srcAddress} with nonce ${bridgeIntent.nonce}`)
139
+ this._bridgeSuccessCounter?.add(1)
140
+ // Return submitted transaction
141
+ return tx
142
+ } catch (error) {
143
+ this._bridgeErrorCounter?.add(1)
144
+ this.logger?.error(`Error claiming rewards for ${bridgeIntent.srcAddress} with nonce ${bridgeIntent.nonce}:`, error)
145
+ }
146
+ }
147
+
148
+ private async submitBridgeInitiationTransaction(
149
+ bridgeIntent: BridgeIntent,
150
+ gateway: XyoGatewayRunner,
151
+ ): Promise<SignedHydratedTransaction | undefined> {
152
+ const currentBlockNumber = await this.viewer.currentBlockNumber()
153
+ const result = await gateway.addPayloadsToChain?.([], [], { nbf: currentBlockNumber, exp: currentBlockNumber + 10 })
154
+ if (isDefined(result)) return result[1]
155
+ }
156
+ }
@@ -0,0 +1 @@
1
+ export * from './XL1toEvmBridgeSentinel.ts'
@@ -0,0 +1 @@
1
+ export * from './XL1toEvmBridgeSentinel/index.ts'
@@ -1,6 +1,5 @@
1
1
  import { asyncHandler } from '@xylabs/express'
2
- import { asAddress } from '@xylabs/hex'
3
- import { isDefined } from '@xylabs/typeof'
2
+ import { asAddress, isDefined } from '@xylabs/sdk-js'
4
3
  import { isModuleName } from '@xyo-network/module-model'
5
4
  import type { Payload } from '@xyo-network/payload-model'
6
5
  import type { RequestHandler } from 'express'
@@ -1,10 +1,10 @@
1
- import { assertEx } from '@xylabs/assert'
2
1
  import { asyncHandler } from '@xylabs/express'
2
+ import type { JsonObject } from '@xylabs/sdk-js'
3
3
  import {
4
- asAddress, isAddress,
4
+ asAddress, assertEx,
5
+ isAddress,
5
6
  toAddress,
6
- } from '@xylabs/hex'
7
- import type { JsonObject } from '@xylabs/object'
7
+ } from '@xylabs/sdk-js'
8
8
  import { isQueryBoundWitness, type QueryBoundWitness } from '@xyo-network/boundwitness-model'
9
9
  import { ModuleErrorBuilder } from '@xyo-network/module-abstract'
10
10
  import type { ModuleInstance, ModuleQueryResult } from '@xyo-network/module-model'
@@ -1,7 +1,7 @@
1
1
  import {
2
- hexFromHexString, HexZod, isAddress, toAddress,
3
- } from '@xylabs/hex'
4
- import { isUndefined } from '@xylabs/typeof'
2
+ hexFromHexString, HexZod, isAddress, isUndefined,
3
+ toAddress,
4
+ } from '@xylabs/sdk-js'
5
5
  import type { ChainId } from '@xyo-network/xl1-protocol'
6
6
 
7
7
  const remoteChainId: ChainId = toAddress('0x01')
@@ -1,6 +1,6 @@
1
1
  import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
- import { toAddress, toHex } from '@xylabs/hex'
3
+ import { toAddress, toHex } from '@xylabs/sdk-js'
4
4
  import { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
5
5
  import type { BridgeDestinationObservation } from '@xyo-network/xl1-protocol'
6
6
  import {
@@ -1,6 +1,6 @@
1
1
  import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
- import { asHash } from '@xylabs/hex'
3
+ import { asHash } from '@xylabs/sdk-js'
4
4
  import { PayloadBuilder } from '@xyo-network/payload-builder'
5
5
  import { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
6
6
  import type { BridgeSourceObservation, BridgeSourceObservationFields } from '@xyo-network/xl1-protocol'
@@ -2,7 +2,7 @@ import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
3
  import {
4
4
  hexToBigInt, toAddress, toHex,
5
- } from '@xylabs/hex'
5
+ } from '@xylabs/sdk-js'
6
6
  import { createTransferPayload } from '@xyo-network/chain-protocol'
7
7
  import { PayloadBuilder } from '@xyo-network/payload-builder'
8
8
  import { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
@@ -1,6 +1,6 @@
1
1
  import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
- import { toAddress, toHex } from '@xylabs/hex'
3
+ import { toAddress, toHex } from '@xylabs/sdk-js'
4
4
  import { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
5
5
  import type { BridgeDestinationObservation } from '@xyo-network/xl1-protocol'
6
6
  import {
@@ -1,6 +1,5 @@
1
1
  import { setRawResponseFormat } from '@xylabs/express'
2
- import { asHash } from '@xylabs/hex'
3
- import { isDefined } from '@xylabs/typeof'
2
+ import { asHash, isDefined } from '@xylabs/sdk-js'
4
3
  import type {
5
4
  ArchivistInstance,
6
5
  ArchivistNextOptions, NextOptions,
@@ -1,4 +1,4 @@
1
- import type { Logger } from '@xylabs/logger'
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