@xyo-network/chain-bridge 1.19.15 → 1.19.16

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 (30) hide show
  1. package/dist/node/index.mjs +115 -80
  2. package/dist/node/index.mjs.map +1 -1
  3. package/dist/node/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.d.ts +1 -1
  4. package/dist/node/interface/service/Relay/LiquidityPoolBridgeRelay/LiquidityPoolBridgeRelay.d.ts.map +1 -1
  5. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts +1 -2
  6. package/dist/node/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts.map +1 -1
  7. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.d.ts +1 -2
  8. package/dist/node/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.d.ts.map +1 -1
  9. package/dist/node/queue/workers/EthTransactionPreparation.d.ts.map +1 -1
  10. package/dist/node/queue/workers/util/index.d.ts +2 -0
  11. package/dist/node/queue/workers/util/index.d.ts.map +1 -1
  12. package/dist/node/queue/workers/util/validateSufficientAllowance.d.ts +19 -0
  13. package/dist/node/queue/workers/util/validateSufficientAllowance.d.ts.map +1 -0
  14. package/dist/node/queue/workers/util/validateSufficientBalance.d.ts +19 -0
  15. package/dist/node/queue/workers/util/validateSufficientBalance.d.ts.map +1 -0
  16. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts +1 -1
  17. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.d.ts.map +1 -1
  18. package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.d.ts +1 -1
  19. package/package.json +40 -43
  20. package/src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.ts +2 -3
  21. package/src/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.ts +2 -3
  22. package/src/queue/workers/EthTransactionPreparation.ts +12 -0
  23. package/src/queue/workers/util/index.ts +2 -0
  24. package/src/queue/workers/util/validateSufficientAllowance.ts +38 -0
  25. package/src/queue/workers/util/validateSufficientBalance.ts +37 -0
  26. package/src/server/index.ts +1 -1
  27. package/src/server/routes/bridge/routeDefinitions/routes/bridgeFromRemoteStatus.ts +1 -1
  28. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts +3 -2
  29. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteEstimate.ts +1 -1
  30. package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts +1 -1
@@ -22,7 +22,7 @@ export declare class LiquidityPoolBridgeRelay<TParams extends LiquidityPoolBridg
22
22
  protected _bridgeRemoteChainId: Hex | undefined;
23
23
  protected _bridgeTokenAddress: Address | undefined;
24
24
  protected _wallet: Wallet | undefined;
25
- protected get account(): import("@xyo-network/account-model").AccountInstance;
25
+ protected get account(): import("@xyo-network/sdk-js").AccountInstance;
26
26
  protected get bridge(): LiquidityPoolBridge;
27
27
  protected get bridgeChainId(): Hex;
28
28
  protected get bridgeRemoteChainId(): Hex;
@@ -1 +1 @@
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;AAMlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EACL,KAAK,4BAA4B,EAAsC,KAAK,YAAY,EACzF,MAAM,sBAAsB,CAAA;AAC7B,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,yBAAyB,CAAC,OAAO,CAAE,YAAW,yBAAyB;IAC/E,OAAO,SAA6B;IACpC,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;IAwC5B;;;;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;AAMlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EACL,KAAK,4BAA4B,EAAsC,KAAK,YAAY,EACzF,MAAM,sBAAsB,CAAA;AAC7B,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,yBAAyB,CAAC,OAAO,CAAE,YAAW,yBAAyB;IAC/E,OAAO,SAA6B;IACpC,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,kDAEpB;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;IAwC5B;;;;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,7 +1,6 @@
1
1
  import type { Attributes, Counter } from '@opentelemetry/api';
2
2
  import type { Address, Hash, Hex } from '@xylabs/sdk-js';
3
- import type { AnyConfigSchema } from '@xyo-network/module-model';
4
- import { type Payload } from '@xyo-network/payload-model';
3
+ import type { AnyConfigSchema, Payload } from '@xyo-network/sdk-js';
5
4
  import { AbstractSentinel } from '@xyo-network/sentinel-abstract';
6
5
  import type { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
7
6
  import { type LiquidityPoolBridge } from '@xyo-network/typechain';
@@ -1 +1 @@
1
- {"version":3,"file":"EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts","sourceRoot":"","sources":["../../../../src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EVMLiquidityBridgeTransactionCompletionMonitorSentinel.d.ts","sourceRoot":"","sources":["../../../../src/modules/EVMLiquidityBridgeTransactionCompletionMonitorSentinel/EVMLiquidityBridgeTransactionCompletionMonitorSentinel.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import type { Hash } from '@xylabs/sdk-js';
2
- import type { AnyConfigSchema } from '@xyo-network/module-model';
3
- import { type Payload } from '@xyo-network/payload-model';
2
+ import type { AnyConfigSchema, Payload } from '@xyo-network/sdk-js';
4
3
  import { AbstractSentinel } from '@xyo-network/sentinel-abstract';
5
4
  import type { SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams } from '@xyo-network/sentinel-model';
6
5
  import type { IterableMap, MapType, SignedHydratedTransaction, XyoViewer } from '@xyo-network/xl1-sdk';
@@ -1 +1 @@
1
- {"version":3,"file":"XL1TransactionCompletionMonitorSentinel.d.ts","sourceRoot":"","sources":["../../../../src/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EACV,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAC1E,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EACV,WAAW,EAAE,OAAO,EAAE,yBAAyB,EAC/C,SAAS,EACV,MAAM,sBAAsB,CAAA;AAM7B,eAAO,MAAM,mDAAmD;;CAAqF,CAAA;AACrJ,MAAM,MAAM,mDAAmD,GAAG,OAAO,mDAAmD,CAAA;AAE5H;;GAEG;AACH,MAAM,MAAM,6CAA6C,GAAG,cAAc,CAAC;IACzE;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,MAAM,EAAE,mDAAmD,CAAA;CAC5D,CAAC,CAAA;AAEF,UAAU,kDAAkD;IAC1D;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;IAE/D;;OAEG;IACH,mBAAmB,EAAE,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;IAEjE;;OAEG;IACH,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,MAAM,6CAA6C,CACvD,OAAO,SAAS,eAAe,CAAC,6CAA6C,CAAC,GAAG,eAAe,CAAC,6CAA6C,CAAC,IAC7I,cAAc,CAAC,OAAO,CAAC,GAAG,kDAAkD,CAAA;AAIhF,qBAAa,uCAAuC,CAClD,OAAO,SAAS,6CAA6C,GAAG,6CAA6C,EAC7G,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;;SAAwD;IAC9F,gBAAyB,mBAAmB;;MAAsD;IAClG,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,eAAe,CAAiC;IAExD,SAAS,KAAK,qBAAqB,IAAI,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAE9E;IAED,SAAS,KAAK,gBAAgB,IAAI,MAAM,CAEvC;IAED,SAAS,KAAK,mBAAmB,IAAI,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAEhF;IAED,SAAS,KAAK,MAAM,IAAI,SAAS,CAEhC;IAEc,aAAa;IASb,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YA0BxD,sBAAsB;YAUtB,kBAAkB;CA8BjC"}
1
+ {"version":3,"file":"XL1TransactionCompletionMonitorSentinel.d.ts","sourceRoot":"","sources":["../../../../src/modules/XL1TransactionCompletionMonitorSentinel/XL1TransactionCompletionMonitorSentinel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EACV,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,cAAc,EAC1E,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,EACV,WAAW,EAAE,OAAO,EAAE,yBAAyB,EAC/C,SAAS,EACV,MAAM,sBAAsB,CAAA;AAM7B,eAAO,MAAM,mDAAmD;;CAAqF,CAAA;AACrJ,MAAM,MAAM,mDAAmD,GAAG,OAAO,mDAAmD,CAAA;AAE5H;;GAEG;AACH,MAAM,MAAM,6CAA6C,GAAG,cAAc,CAAC;IACzE;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,MAAM,EAAE,mDAAmD,CAAA;CAC5D,CAAC,CAAA;AAEF,UAAU,kDAAkD;IAC1D;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;IAE/D;;OAEG;IACH,mBAAmB,EAAE,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAA;IAEjE;;OAEG;IACH,MAAM,EAAE,SAAS,CAAA;CAClB;AAED,MAAM,MAAM,6CAA6C,CACvD,OAAO,SAAS,eAAe,CAAC,6CAA6C,CAAC,GAAG,eAAe,CAAC,6CAA6C,CAAC,IAC7I,cAAc,CAAC,OAAO,CAAC,GAAG,kDAAkD,CAAA;AAIhF,qBAAa,uCAAuC,CAClD,OAAO,SAAS,6CAA6C,GAAG,6CAA6C,EAC7G,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;;SAAwD;IAC9F,gBAAyB,mBAAmB;;MAAsD;IAClG,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,eAAe,CAAiC;IAExD,SAAS,KAAK,qBAAqB,IAAI,OAAO,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAE9E;IAED,SAAS,KAAK,gBAAgB,IAAI,MAAM,CAEvC;IAED,SAAS,KAAK,mBAAmB,IAAI,WAAW,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAEhF;IAED,SAAS,KAAK,MAAM,IAAI,SAAS,CAEhC;IAEc,aAAa;IASb,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;YA0BxD,sBAAsB;YAUtB,kBAAkB;CA8BjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EthTransactionPreparation.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/EthTransactionPreparation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAS/D,eAAO,MAAM,YAAY,GAAI,YAAY,KAAK,EAAE,WAAW,wBAAwB,SAkClF,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,iBAEvC,CAAA"}
1
+ {"version":3,"file":"EthTransactionPreparation.d.ts","sourceRoot":"","sources":["../../../../src/queue/workers/EthTransactionPreparation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAS/D,eAAO,MAAM,YAAY,GAAI,YAAY,KAAK,EAAE,WAAW,wBAAwB,SA6ClF,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,iBAEvC,CAAA"}
@@ -1,3 +1,5 @@
1
1
  export * from './submitEthTransaction.ts';
2
2
  export * from './submitXl1Transaction.ts';
3
+ export * from './validateSufficientAllowance.ts';
4
+ export * from './validateSufficientBalance.ts';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/queue/workers/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/queue/workers/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,kCAAkC,CAAA;AAChD,cAAc,gCAAgC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { Promisable } from '@xylabs/sdk-js';
2
+ import type { BridgeableToken, LiquidityPoolBridge } from '@xyo-network/typechain';
3
+ import { type SignedHydratedTransaction } from '@xyo-network/xl1-sdk';
4
+ interface IAsyncLogger {
5
+ log: (message: string) => Promisable<unknown>;
6
+ }
7
+ /**
8
+ * Checks if the liquidity source has sufficient allowance for the bridge to execute the transaction. This doesn't
9
+ * ensure that (due to race conditions) the transaction will succeed, but is a quick check to avoid
10
+ * submitting transactions that are likely to fail.
11
+ * @param tx The transaction containing a bridge intent
12
+ * @param bridgeableToken The contract for the token being bridged
13
+ * @param bridge The contract for the liquidity bridge
14
+ * @param logger Optional logger for asynchronous logging
15
+ * @returns True if the liquidity source allowance is sufficient to execute the bridge
16
+ */
17
+ export declare const validateSufficientAllowance: (tx: SignedHydratedTransaction, bridgeableToken: BridgeableToken, bridge: LiquidityPoolBridge, logger?: IAsyncLogger) => Promise<boolean>;
18
+ export {};
19
+ //# sourceMappingURL=validateSufficientAllowance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSufficientAllowance.d.ts","sourceRoot":"","sources":["../../../../../src/queue/workers/util/validateSufficientAllowance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAkB,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErF,UAAU,YAAY;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;CAC9C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,IAAI,yBAAyB,EAC7B,iBAAiB,eAAe,EAChC,QAAQ,mBAAmB,EAC3B,SAAS,YAAY,qBActB,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { Promisable } from '@xylabs/sdk-js';
2
+ import type { BridgeableToken, LiquidityPoolBridge } from '@xyo-network/typechain';
3
+ import { type SignedHydratedTransaction } from '@xyo-network/xl1-sdk';
4
+ interface IAsyncLogger {
5
+ log: (message: string) => Promisable<unknown>;
6
+ }
7
+ /**
8
+ * Checks if the liquidity source has sufficient balance for the bridge to execute the transaction. This doesn't
9
+ * ensure that (due to race conditions) the transaction will succeed, but is a quick check to avoid
10
+ * submitting transactions that are likely to fail.
11
+ * @param tx The transaction containing a bridge intent
12
+ * @param bridgeableToken The contract for the token being bridged
13
+ * @param bridge The contract for the liquidity bridge
14
+ * @param logger Optional logger for asynchronous logging
15
+ * @returns True if the liquidity source balance is sufficient to execute the bridge
16
+ */
17
+ export declare const validateSufficientBalance: (tx: SignedHydratedTransaction, bridgeableToken: BridgeableToken, bridge: LiquidityPoolBridge, logger?: IAsyncLogger) => Promise<boolean>;
18
+ export {};
19
+ //# sourceMappingURL=validateSufficientBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateSufficientBalance.d.ts","sourceRoot":"","sources":["../../../../../src/queue/workers/util/validateSufficientBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAClF,OAAO,EAAkB,KAAK,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAErF,UAAU,YAAY;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC,CAAA;CAC9C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GACpC,IAAI,yBAAyB,EAC7B,iBAAiB,eAAe,EAChC,QAAQ,mBAAmB,EAC3B,SAAS,YAAY,qBAatB,CAAA"}
@@ -11,7 +11,7 @@ export declare const BridgeToRemoteBodyZod: z.ZodTuple<[z.ZodObject<{
11
11
  readonly __address: true;
12
12
  }, string>>>;
13
13
  payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").BrandedHash, string>>>;
14
- payload_schemas: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").BrandedSchema<string>, string>>>;
14
+ payload_schemas: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/sdk-js").BrandedSchema<string>, string>>>;
15
15
  previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/hex").BrandedHash, string>>>>;
16
16
  $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<Lowercase<string> & {
17
17
  readonly __hex: true;
@@ -1 +1 @@
1
- {"version":3,"file":"bridgeToRemote.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AASpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAIhC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;kBAAyG,CAAA;AAC/I,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE9E,eAAO,MAAM,uBAAuB,GAAI,QAAQ,YAAY,KAAG,eA4C9D,CAAA"}
1
+ {"version":3,"file":"bridgeToRemote.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAUpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAIhC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEtE,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;kBAAyG,CAAA;AAC/I,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE9E,eAAO,MAAM,uBAAuB,GAAI,QAAQ,YAAY,KAAG,eA4C9D,CAAA"}
@@ -18,7 +18,7 @@ export declare const BridgeToRemoteEstimateResponseZod: z.ZodTuple<[z.ZodObject<
18
18
  readonly __address: true;
19
19
  }, string>>>;
20
20
  payload_hashes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>>;
21
- payload_schemas: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/payload-model").BrandedSchema<string>, string>>>;
21
+ payload_schemas: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xyo-network/sdk-js").BrandedSchema<string>, string>>>;
22
22
  previous_hashes: z.ZodArray<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("@xylabs/sdk-js").BrandedHash, string>>>>;
23
23
  $destination: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<Lowercase<string> & {
24
24
  readonly __hex: true;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/chain-bridge",
3
- "version": "1.19.15",
3
+ "version": "1.19.16",
4
4
  "description": "XYO Layer One Bridge",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -50,23 +50,22 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@opentelemetry/instrumentation": "~0.212.0",
53
- "@opentelemetry/instrumentation-express": "~0.59.0",
53
+ "@opentelemetry/instrumentation-express": "~0.60.0",
54
54
  "@opentelemetry/instrumentation-http": "~0.212.0",
55
- "@xylabs/express": "~5.0.79",
56
- "@xylabs/mongo": "~5.0.79",
57
- "@xylabs/sdk-js": "~5.0.79",
58
- "@xyo-network/boundwitness-validator": "~5.3.5",
59
- "@xyo-network/chain-orchestration": "~1.19.15",
60
- "@xyo-network/chain-protocol": "~1.19.15",
61
- "@xyo-network/chain-services": "~1.19.15",
62
- "@xyo-network/module-model": "~5.3.5",
63
- "@xyo-network/payload-model": "~5.3.5",
64
- "@xyo-network/sentinel-abstract": "~5.3.5",
65
- "@xyo-network/sentinel-model": "~5.3.5",
55
+ "@xylabs/express": "~5.0.80",
56
+ "@xylabs/mongo": "~5.0.80",
57
+ "@xylabs/sdk-js": "~5.0.80",
58
+ "@xyo-network/boundwitness-validator": "~5.3.7",
59
+ "@xyo-network/chain-orchestration": "~1.19.16",
60
+ "@xyo-network/chain-protocol": "~1.19.16",
61
+ "@xyo-network/chain-services": "~1.19.16",
62
+ "@xyo-network/sdk-js": "~5.3.7",
63
+ "@xyo-network/sentinel-abstract": "~5.3.7",
64
+ "@xyo-network/sentinel-model": "~5.3.7",
66
65
  "@xyo-network/typechain": "~4.1.1",
67
- "@xyo-network/wallet": "~5.3.5",
68
- "@xyo-network/wallet-model": "~5.3.5",
69
- "@xyo-network/xl1-sdk": "~1.24.15",
66
+ "@xyo-network/wallet": "~5.3.7",
67
+ "@xyo-network/wallet-model": "~5.3.7",
68
+ "@xyo-network/xl1-sdk": "~1.24.24",
70
69
  "async-mutex": "~0.5.0",
71
70
  "bullmq": "~5.69.3",
72
71
  "compression": "~1.8.1",
@@ -83,36 +82,34 @@
83
82
  "@types/cors": "~2.8.19",
84
83
  "@types/express": "5.0.6",
85
84
  "@types/express-serve-static-core": "~5.1.1",
86
- "@types/node": "~25.2.3",
87
- "@xylabs/axios": "~5.0.79",
88
- "@xylabs/mongo": "~5.0.79",
89
- "@xylabs/sdk-js": "~5.0.79",
85
+ "@types/node": "~25.3.0",
86
+ "@xylabs/axios": "~5.0.80",
87
+ "@xylabs/mongo": "~5.0.80",
88
+ "@xylabs/sdk-js": "~5.0.80",
90
89
  "@xylabs/ts-scripts-yarn3": "~7.3.2",
91
90
  "@xylabs/tsconfig": "~7.3.2",
92
- "@xylabs/vitest-extended": "~5.0.79",
93
- "@xyo-network/account": "~5.3.5",
94
- "@xyo-network/account-model": "~5.3.5",
95
- "@xyo-network/archivist-abstract": "~5.3.5",
96
- "@xyo-network/archivist-memory": "~5.3.5",
97
- "@xyo-network/archivist-model": "~5.3.5",
98
- "@xyo-network/archivist-mongodb": "~5.3.5",
99
- "@xyo-network/archivist-view": "~5.3.5",
91
+ "@xylabs/vitest-extended": "~5.0.80",
92
+ "@xyo-network/account": "~5.3.7",
93
+ "@xyo-network/account-model": "~5.3.7",
94
+ "@xyo-network/archivist-abstract": "~5.3.7",
95
+ "@xyo-network/archivist-memory": "~5.3.7",
96
+ "@xyo-network/archivist-mongodb": "~5.3.7",
97
+ "@xyo-network/archivist-view": "~5.3.7",
100
98
  "@xyo-network/bios": "~7.2.1",
101
99
  "@xyo-network/bios-model": "~7.2.1",
102
- "@xyo-network/boundwitness-builder": "~5.3.5",
103
- "@xyo-network/chain-protocol": "~1.19.15",
104
- "@xyo-network/chain-services": "~1.19.15",
105
- "@xyo-network/chain-telemetry": "~1.19.15",
106
- "@xyo-network/manifest-wrapper": "~5.3.5",
107
- "@xyo-network/module-abstract": "~5.3.5",
108
- "@xyo-network/module-abstract-mongodb": "~5.3.5",
109
- "@xyo-network/module-model-mongodb": "~5.3.5",
110
- "@xyo-network/node-memory": "~5.3.5",
111
- "@xyo-network/payload-builder": "~5.3.5",
112
- "@xyo-network/sdk-js": "~5.3.5",
113
- "@xyo-network/sentinel-memory": "~5.3.5",
114
- "@xyo-network/wallet": "~5.3.5",
115
- "@xyo-network/xl1-sdk": "~1.24.15",
100
+ "@xyo-network/boundwitness-builder": "~5.3.7",
101
+ "@xyo-network/chain-protocol": "~1.19.16",
102
+ "@xyo-network/chain-services": "~1.19.16",
103
+ "@xyo-network/chain-telemetry": "~1.19.16",
104
+ "@xyo-network/manifest-wrapper": "~5.3.7",
105
+ "@xyo-network/module-abstract": "~5.3.7",
106
+ "@xyo-network/module-abstract-mongodb": "~5.3.7",
107
+ "@xyo-network/node-memory": "~5.3.7",
108
+ "@xyo-network/payload-builder": "~5.3.7",
109
+ "@xyo-network/sdk-js": "~5.3.7",
110
+ "@xyo-network/sentinel-memory": "~5.3.7",
111
+ "@xyo-network/wallet": "~5.3.7",
112
+ "@xyo-network/xl1-sdk": "~1.24.24",
116
113
  "async-mutex": "~0.5.0",
117
114
  "axios": "~1.13.5",
118
115
  "dotenv": "~17.3.1",
@@ -120,7 +117,7 @@
120
117
  "ethers": "^6.16.0",
121
118
  "http-status-codes": "~2.3.0",
122
119
  "mongodb": "~7.1.0",
123
- "nodemon": "~3.1.11",
120
+ "nodemon": "~3.1.13",
124
121
  "tslib": "~2.8.1",
125
122
  "typescript": "~5.9.3",
126
123
  "vitest": "~4.0.18",
@@ -5,9 +5,8 @@ import type {
5
5
  import {
6
6
  asAddress, asHex, assertEx, delay, hexFromBigInt, hexToBigInt, isDefined, isUndefined,
7
7
  } from '@xylabs/sdk-js'
8
- import type { AnyConfigSchema } from '@xyo-network/module-model'
9
- import { asSchema, type Payload } from '@xyo-network/payload-model'
10
- import { PayloadBuilder } from '@xyo-network/sdk-js'
8
+ import type { AnyConfigSchema, Payload } from '@xyo-network/sdk-js'
9
+ import { asSchema, PayloadBuilder } from '@xyo-network/sdk-js'
11
10
  import { AbstractSentinel } from '@xyo-network/sentinel-abstract'
12
11
  import type {
13
12
  SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams,
@@ -3,9 +3,8 @@ import type { Hash } from '@xylabs/sdk-js'
3
3
  import {
4
4
  assertEx, delay, isDefined, isNull, isUndefined,
5
5
  } from '@xylabs/sdk-js'
6
- import type { AnyConfigSchema } from '@xyo-network/module-model'
7
- import { asSchema, type Payload } from '@xyo-network/payload-model'
8
- import { PayloadBuilder } from '@xyo-network/sdk-js'
6
+ import type { AnyConfigSchema, Payload } from '@xyo-network/sdk-js'
7
+ import { asSchema, PayloadBuilder } from '@xyo-network/sdk-js'
9
8
  import { AbstractSentinel } from '@xyo-network/sentinel-abstract'
10
9
  import type {
11
10
  SentinelConfig, SentinelInstance, SentinelModuleEventData, SentinelParams,
@@ -7,6 +7,7 @@ import { getAddress } from 'ethers'
7
7
  import type { Redis } from 'ioredis'
8
8
 
9
9
  import type { IBridgeServiceCollection } from '../../services/index.ts'
10
+ import { validateSufficientAllowance, validateSufficientBalance } from './util/index.ts'
10
11
  import type { WorkerDescription } from './WorkerDescription.ts'
11
12
 
12
13
  type JobData = { tx: SignedHydratedTransaction }
@@ -18,6 +19,7 @@ const queueName = 'eth-tx-prepare'
18
19
 
19
20
  export const createWorker = (connection: Redis, services?: IBridgeServiceCollection) => {
20
21
  const bridge = assertEx(services?.bridge, () => 'bridge service not provided')
22
+ const bridgeableToken = assertEx(services?.bridgeableToken, () => 'bridgeableToken service not provided')
21
23
  const stateMap = assertEx(services?.ethTxStateMap, () => 'ethTxStateMap service not provided')
22
24
 
23
25
  const worker = new Worker(
@@ -26,6 +28,16 @@ export const createWorker = (connection: Redis, services?: IBridgeServiceCollect
26
28
  const { tx } = job.data
27
29
  const hash = await PayloadBuilder.hash(tx[0])
28
30
  await job.log(`[${hash}] preparing ETH transaction`)
31
+ await job.log(`[${hash}] validating liquiditySource has sufficient allowance`)
32
+ if (!await validateSufficientAllowance(tx, bridgeableToken, bridge, job)) {
33
+ throw new Error('Liquidity source does not have sufficient allowance for the bridge to execute the transaction')
34
+ }
35
+ await job.log(`[${hash}] validated liquiditySource has sufficient allowance`)
36
+ await job.log(`[${hash}] validating liquiditySource has sufficient balance`)
37
+ if (!await validateSufficientBalance(tx, bridgeableToken, bridge, job)) {
38
+ throw new Error('Liquidity source does not have sufficient balance for the bridge to execute the transaction')
39
+ }
40
+ await job.log(`[${hash}] validated liquiditySource has sufficient balance`)
29
41
  await job.log(`[${hash}] building ETH transaction`)
30
42
  const bridgeIntent = assertEx(tx[1].find(isBridgeIntent), () => 'No bridge intent found')
31
43
  const amount = hexToBigInt(bridgeIntent.destAmount)
@@ -1,2 +1,4 @@
1
1
  export * from './submitEthTransaction.ts'
2
2
  export * from './submitXl1Transaction.ts'
3
+ export * from './validateSufficientAllowance.ts'
4
+ export * from './validateSufficientBalance.ts'
@@ -0,0 +1,38 @@
1
+ import type { Promisable } from '@xylabs/sdk-js'
2
+ import { assertEx, hexToBigInt } from '@xylabs/sdk-js'
3
+ import type { BridgeableToken, LiquidityPoolBridge } from '@xyo-network/typechain'
4
+ import { isBridgeIntent, type SignedHydratedTransaction } from '@xyo-network/xl1-sdk'
5
+
6
+ interface IAsyncLogger {
7
+ log: (message: string) => Promisable<unknown>
8
+ }
9
+
10
+ /**
11
+ * Checks if the liquidity source has sufficient allowance for the bridge to execute the transaction. This doesn't
12
+ * ensure that (due to race conditions) the transaction will succeed, but is a quick check to avoid
13
+ * submitting transactions that are likely to fail.
14
+ * @param tx The transaction containing a bridge intent
15
+ * @param bridgeableToken The contract for the token being bridged
16
+ * @param bridge The contract for the liquidity bridge
17
+ * @param logger Optional logger for asynchronous logging
18
+ * @returns True if the liquidity source allowance is sufficient to execute the bridge
19
+ */
20
+ export const validateSufficientAllowance = async (
21
+ tx: SignedHydratedTransaction,
22
+ bridgeableToken: BridgeableToken,
23
+ bridge: LiquidityPoolBridge,
24
+ logger?: IAsyncLogger,
25
+ ) => {
26
+ // Get the amount being bridged from the bridge intent
27
+ const bridgeIntent = assertEx(tx[1].find(isBridgeIntent), () => 'No bridge intent found')
28
+ const amount = hexToBigInt(bridgeIntent.destAmount)
29
+
30
+ // Get the addresses
31
+ const liquiditySourceAddress = await bridge.liquiditySource()
32
+ const bridgeAddress = await bridge.getAddress()
33
+
34
+ // Check the allowance of the liquidity source for the bridge
35
+ const remainingAllowance = await bridgeableToken.allowance(liquiditySourceAddress, bridgeAddress)
36
+ await logger?.log(`Remaining allowance: ${remainingAllowance.toString()}`)
37
+ return remainingAllowance >= amount
38
+ }
@@ -0,0 +1,37 @@
1
+ import type { Promisable } from '@xylabs/sdk-js'
2
+ import { assertEx, hexToBigInt } from '@xylabs/sdk-js'
3
+ import type { BridgeableToken, LiquidityPoolBridge } from '@xyo-network/typechain'
4
+ import { isBridgeIntent, type SignedHydratedTransaction } from '@xyo-network/xl1-sdk'
5
+
6
+ interface IAsyncLogger {
7
+ log: (message: string) => Promisable<unknown>
8
+ }
9
+
10
+ /**
11
+ * Checks if the liquidity source has sufficient balance for the bridge to execute the transaction. This doesn't
12
+ * ensure that (due to race conditions) the transaction will succeed, but is a quick check to avoid
13
+ * submitting transactions that are likely to fail.
14
+ * @param tx The transaction containing a bridge intent
15
+ * @param bridgeableToken The contract for the token being bridged
16
+ * @param bridge The contract for the liquidity bridge
17
+ * @param logger Optional logger for asynchronous logging
18
+ * @returns True if the liquidity source balance is sufficient to execute the bridge
19
+ */
20
+ export const validateSufficientBalance = async (
21
+ tx: SignedHydratedTransaction,
22
+ bridgeableToken: BridgeableToken,
23
+ bridge: LiquidityPoolBridge,
24
+ logger?: IAsyncLogger,
25
+ ) => {
26
+ // Get the amount being bridged from the bridge intent
27
+ const bridgeIntent = assertEx(tx[1].find(isBridgeIntent), () => 'No bridge intent found')
28
+ const amount = hexToBigInt(bridgeIntent.destAmount)
29
+
30
+ // Get the addresses
31
+ const liquiditySourceAddress = await bridge.liquiditySource()
32
+
33
+ // Check the balance of the liquidity source for the bridge
34
+ const balance = await bridgeableToken.balanceOf(liquiditySourceAddress)
35
+ await logger?.log(`Remaining balance: ${balance.toString()}`)
36
+ return balance >= amount
37
+ }
@@ -1,7 +1,7 @@
1
1
  export * from './app.ts'
2
2
  export * from './server.ts'
3
3
 
4
- // import type { NodeInstance } from '@xyo-network/node-model'
4
+ // import type { NodeInstance } from '@xyo-network/sdk-js'
5
5
  import type { FlowProducer } from 'bullmq'
6
6
 
7
7
  // import type { IBridgeServiceCollection } from '../services/index.ts'
@@ -2,7 +2,7 @@ import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
3
  import { toAddress, toHex } from '@xylabs/sdk-js'
4
4
  import type { BridgeConfig } from '@xyo-network/chain-orchestration'
5
- import { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
5
+ import { PayloadZodStrictOfSchema } from '@xyo-network/sdk-js'
6
6
  import type { BridgeDestinationObservation } from '@xyo-network/xl1-sdk'
7
7
  import {
8
8
  BridgeDestinationObservationFieldsZod,
@@ -1,8 +1,9 @@
1
1
  import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
3
  import type { BridgeConfig } from '@xyo-network/chain-orchestration'
4
- import { PayloadZodLooseOfSchema, PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
5
- import { PayloadBuilder } from '@xyo-network/sdk-js'
4
+ import {
5
+ PayloadBuilder, PayloadZodLooseOfSchema, PayloadZodStrictOfSchema,
6
+ } from '@xyo-network/sdk-js'
6
7
  import type {
7
8
  BridgeSourceObservation, BridgeSourceObservationFields, SignedHydratedTransaction,
8
9
  } from '@xyo-network/xl1-sdk'
@@ -2,7 +2,7 @@ import type { RouteDefinition } from '@xylabs/express'
2
2
  import { requestHandlerValidator } from '@xylabs/express'
3
3
  import { assertEx, toAddress } from '@xylabs/sdk-js'
4
4
  import type { BridgeConfig } from '@xyo-network/chain-orchestration'
5
- import { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
5
+ import { PayloadZodStrictOfSchema } from '@xyo-network/sdk-js'
6
6
  import type { XyoGatewayRunner } from '@xyo-network/xl1-sdk'
7
7
  import {
8
8
  BridgeIntentFieldsZod, BridgeIntentSchema, buildUnsignedTransaction, toXL1BlockNumber, TransactionBoundWitnessZod, TransferZod,
@@ -4,7 +4,7 @@ import {
4
4
  asAddress, asHex, toHex,
5
5
  } from '@xylabs/sdk-js'
6
6
  import type { BridgeConfig } from '@xyo-network/chain-orchestration'
7
- import { PayloadZodStrictOfSchema } from '@xyo-network/payload-model'
7
+ import { PayloadZodStrictOfSchema } from '@xyo-network/sdk-js'
8
8
  import type { BridgeDestinationObservation, BridgeSourceObservation } from '@xyo-network/xl1-sdk'
9
9
  import {
10
10
  BridgeDestinationObservationFieldsZod, BridgeDestinationObservationSchema, BridgeIntentFieldsZod, BridgeIntentSchema, BridgeSourceObservationFieldsZod,