@xyo-network/chain-bridge 1.19.16 → 1.19.17
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.
- package/dist/node/index.mjs +119 -61
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/queue/flows/createXl1ToEthBridgeJob.d.ts.map +1 -1
- package/dist/node/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.d.ts.map +1 -1
- package/dist/node/util/BridgeFees.d.ts +7 -1
- package/dist/node/util/BridgeFees.d.ts.map +1 -1
- package/package.json +33 -34
- package/src/queue/flows/createXl1ToEthBridgeJob.ts +12 -2
- package/src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts +130 -65
- package/src/util/BridgeFees.ts +10 -1
package/dist/node/index.mjs
CHANGED
|
@@ -40,6 +40,9 @@ var getFlowProducer = /* @__PURE__ */ __name((connection2) => {
|
|
|
40
40
|
return flowProducer;
|
|
41
41
|
}, "getFlowProducer");
|
|
42
42
|
|
|
43
|
+
// src/queue/flows/createXl1ToEthBridgeJob.ts
|
|
44
|
+
import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/sdk-js";
|
|
45
|
+
|
|
43
46
|
// src/queue/workers/createWorkers.ts
|
|
44
47
|
var createWorkers = /* @__PURE__ */ __name((connection2, services) => {
|
|
45
48
|
Xl1ToEthBridgeParent.createWorker(connection2);
|
|
@@ -406,12 +409,16 @@ var Xl1TransactionSubmission = {
|
|
|
406
409
|
|
|
407
410
|
// src/queue/flows/createXl1ToEthBridgeJob.ts
|
|
408
411
|
var createXl1ToEthBridgeJob = /* @__PURE__ */ __name(async (flowProducer2, tx) => {
|
|
412
|
+
const jobId = await PayloadBuilder8.hash(tx[0]);
|
|
409
413
|
const flow = await flowProducer2.add({
|
|
410
414
|
name: Xl1ToEthBridgeParent.name,
|
|
411
415
|
queueName: Xl1ToEthBridgeParent.queueName,
|
|
412
416
|
data: {
|
|
413
417
|
tx
|
|
414
418
|
},
|
|
419
|
+
opts: {
|
|
420
|
+
jobId
|
|
421
|
+
},
|
|
415
422
|
children: [
|
|
416
423
|
{
|
|
417
424
|
// Step 6 (runs after child completes)
|
|
@@ -421,6 +428,7 @@ var createXl1ToEthBridgeJob = /* @__PURE__ */ __name(async (flowProducer2, tx) =
|
|
|
421
428
|
tx
|
|
422
429
|
},
|
|
423
430
|
opts: {
|
|
431
|
+
jobId,
|
|
424
432
|
attempts: 60,
|
|
425
433
|
backoff: {
|
|
426
434
|
type: "fixed",
|
|
@@ -443,6 +451,9 @@ var createXl1ToEthBridgeJob = /* @__PURE__ */ __name(async (flowProducer2, tx) =
|
|
|
443
451
|
data: {
|
|
444
452
|
tx
|
|
445
453
|
},
|
|
454
|
+
opts: {
|
|
455
|
+
jobId
|
|
456
|
+
},
|
|
446
457
|
children: [
|
|
447
458
|
{
|
|
448
459
|
// Step 3
|
|
@@ -452,6 +463,7 @@ var createXl1ToEthBridgeJob = /* @__PURE__ */ __name(async (flowProducer2, tx) =
|
|
|
452
463
|
tx
|
|
453
464
|
},
|
|
454
465
|
opts: {
|
|
466
|
+
jobId,
|
|
455
467
|
attempts: 60,
|
|
456
468
|
backoff: {
|
|
457
469
|
type: "fixed",
|
|
@@ -466,6 +478,9 @@ var createXl1ToEthBridgeJob = /* @__PURE__ */ __name(async (flowProducer2, tx) =
|
|
|
466
478
|
data: {
|
|
467
479
|
tx
|
|
468
480
|
},
|
|
481
|
+
opts: {
|
|
482
|
+
jobId
|
|
483
|
+
},
|
|
469
484
|
children: [
|
|
470
485
|
{
|
|
471
486
|
// Step 1 (runs first as deepest child)
|
|
@@ -473,6 +488,9 @@ var createXl1ToEthBridgeJob = /* @__PURE__ */ __name(async (flowProducer2, tx) =
|
|
|
473
488
|
queueName: Xl1TransactionPreparation.queueName,
|
|
474
489
|
data: {
|
|
475
490
|
tx
|
|
491
|
+
},
|
|
492
|
+
opts: {
|
|
493
|
+
jobId
|
|
476
494
|
}
|
|
477
495
|
}
|
|
478
496
|
]
|
|
@@ -746,7 +764,7 @@ var makeBridgeFromRemoteStatusRoute = /* @__PURE__ */ __name((config) => {
|
|
|
746
764
|
|
|
747
765
|
// src/server/routes/bridge/routeDefinitions/routes/bridgeToRemote.ts
|
|
748
766
|
import { requestHandlerValidator as requestHandlerValidator3 } from "@xylabs/express";
|
|
749
|
-
import { PayloadBuilder as
|
|
767
|
+
import { PayloadBuilder as PayloadBuilder12, PayloadZodLooseOfSchema, PayloadZodStrictOfSchema as PayloadZodStrictOfSchema2 } from "@xyo-network/sdk-js";
|
|
750
768
|
import { BridgeIntentFieldsZod, BridgeIntentSchema as BridgeIntentSchema2, BridgeSourceObservationFieldsZod, BridgeSourceObservationSchema, SignedTransactionBoundWitnessZod, TransferZod } from "@xyo-network/xl1-sdk";
|
|
751
769
|
import { z as z2 } from "zod";
|
|
752
770
|
|
|
@@ -787,7 +805,7 @@ var createBridgeTransfer = /* @__PURE__ */ __name((sender, srcAmount, escrowAddr
|
|
|
787
805
|
|
|
788
806
|
// src/util/generateBridgeEstimate.ts
|
|
789
807
|
import { toAddress as toAddress2 } from "@xylabs/sdk-js";
|
|
790
|
-
import { PayloadBuilder as
|
|
808
|
+
import { PayloadBuilder as PayloadBuilder9 } from "@xyo-network/sdk-js";
|
|
791
809
|
import { BridgeIntentSchema } from "@xyo-network/xl1-sdk";
|
|
792
810
|
import { v4 } from "uuid";
|
|
793
811
|
var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount, destAddress, config, nonceOverride) => {
|
|
@@ -811,7 +829,7 @@ var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount
|
|
|
811
829
|
destToken: remoteTokenAddress,
|
|
812
830
|
nonce
|
|
813
831
|
};
|
|
814
|
-
const bridgeIntent = new
|
|
832
|
+
const bridgeIntent = new PayloadBuilder9({
|
|
815
833
|
schema: BridgeIntentSchema
|
|
816
834
|
}).fields(bridgeIntentFields).build();
|
|
817
835
|
const transfer = createBridgeTransfer(sender, srcAmount, escrowAddress, feesAddress, fees);
|
|
@@ -823,24 +841,24 @@ var generateBridgeEstimate = /* @__PURE__ */ __name(async (srcAddress, srcAmount
|
|
|
823
841
|
|
|
824
842
|
// src/util/validateBridgeEstimateExact.ts
|
|
825
843
|
import { isUndefined as isUndefined3 } from "@xylabs/sdk-js";
|
|
826
|
-
import { PayloadBuilder as
|
|
844
|
+
import { PayloadBuilder as PayloadBuilder10 } from "@xyo-network/sdk-js";
|
|
827
845
|
var validateBridgeEstimateExact = /* @__PURE__ */ __name(async (intent, transfer, config) => {
|
|
828
846
|
const { srcAddress, srcAmount, destAddress } = intent;
|
|
829
847
|
const [calculatedIntent, calculatedTransfer] = await generateBridgeEstimate(srcAddress, srcAmount, destAddress, config);
|
|
830
848
|
if (isUndefined3(calculatedIntent) || isUndefined3(calculatedTransfer)) return false;
|
|
831
849
|
const { nonce: expectedIntentNonce, ...expectedIntentStatic } = calculatedIntent;
|
|
832
850
|
const { nonce: actualIntentNonce, ...actualIntentStatic } = intent;
|
|
833
|
-
if (await
|
|
851
|
+
if (await PayloadBuilder10.dataHash(expectedIntentStatic) !== await PayloadBuilder10.dataHash(actualIntentStatic)) return false;
|
|
834
852
|
const { epoch: expectedTransferEpoch, ...expectedTransferStatic } = calculatedTransfer;
|
|
835
853
|
const { epoch: actualTransferEpoch, ...actualTransferStatic } = transfer;
|
|
836
|
-
if (await
|
|
854
|
+
if (await PayloadBuilder10.dataHash(expectedTransferStatic) !== await PayloadBuilder10.dataHash(actualTransferStatic)) return false;
|
|
837
855
|
return true;
|
|
838
856
|
}, "validateBridgeEstimateExact");
|
|
839
857
|
|
|
840
858
|
// src/util/validateBridgeTransaction.ts
|
|
841
859
|
import { asAddress as asAddress4, isDefined as isDefined9 } from "@xylabs/sdk-js";
|
|
842
860
|
import { addressesContains, BoundWitnessValidator, payloadHashesContainsAll } from "@xyo-network/boundwitness-validator";
|
|
843
|
-
import { PayloadBuilder as
|
|
861
|
+
import { PayloadBuilder as PayloadBuilder11 } from "@xyo-network/sdk-js";
|
|
844
862
|
var validateBridgeTransaction = /* @__PURE__ */ __name(async (signedTxBw, intent, transfer, config) => {
|
|
845
863
|
const { srcAddress } = intent;
|
|
846
864
|
const chainId = getXl1ChainId(config);
|
|
@@ -849,7 +867,7 @@ var validateBridgeTransaction = /* @__PURE__ */ __name(async (signedTxBw, intent
|
|
|
849
867
|
if (isDefined9(errors) && errors.length > 0) return false;
|
|
850
868
|
const sender = asAddress4(srcAddress, true);
|
|
851
869
|
if (!addressesContains(signedTxBw, sender)) return false;
|
|
852
|
-
const hashes = await
|
|
870
|
+
const hashes = await PayloadBuilder11.hashes([
|
|
853
871
|
intent,
|
|
854
872
|
transfer
|
|
855
873
|
]);
|
|
@@ -897,14 +915,14 @@ var makeBridgeToRemoteRoute = /* @__PURE__ */ __name((config) => {
|
|
|
897
915
|
]
|
|
898
916
|
];
|
|
899
917
|
await createXl1ToEthBridgeJob(flowProducer2, singedHydratedTransaction);
|
|
900
|
-
const srcConfirmation = await
|
|
918
|
+
const srcConfirmation = await PayloadBuilder12.hash(signedTxBw);
|
|
901
919
|
const bridgeCommonFieldsZod = z2.object({}).extend(BridgeSourceObservationFieldsZod.shape);
|
|
902
920
|
const bridgeCommonFields = bridgeCommonFieldsZod.parse(bridgeIntent);
|
|
903
921
|
const bridgeObservationFields = {
|
|
904
922
|
...bridgeCommonFields,
|
|
905
923
|
srcConfirmation
|
|
906
924
|
};
|
|
907
|
-
const bridgeObservation = new
|
|
925
|
+
const bridgeObservation = new PayloadBuilder12({
|
|
908
926
|
schema: BridgeSourceObservationSchema
|
|
909
927
|
}).fields(bridgeObservationFields).build();
|
|
910
928
|
res.json(bridgeObservation);
|
|
@@ -965,86 +983,126 @@ var makeBridgeToRemoteEstimateRoute = /* @__PURE__ */ __name((config, gateway) =
|
|
|
965
983
|
|
|
966
984
|
// src/server/routes/bridge/routeDefinitions/routes/bridgeToRemoteStatus.ts
|
|
967
985
|
import { requestHandlerValidator as requestHandlerValidator5 } from "@xylabs/express";
|
|
968
|
-
import {
|
|
969
|
-
import { PayloadZodStrictOfSchema as PayloadZodStrictOfSchema4 } from "@xyo-network/sdk-js";
|
|
970
|
-
import { BridgeDestinationObservationFieldsZod as BridgeDestinationObservationFieldsZod2, BridgeDestinationObservationSchema as BridgeDestinationObservationSchema2, BridgeIntentFieldsZod as BridgeIntentFieldsZod3, BridgeIntentSchema as BridgeIntentSchema4, BridgeSourceObservationFieldsZod as BridgeSourceObservationFieldsZod2, BridgeSourceObservationSchema as BridgeSourceObservationSchema2 } from "@xyo-network/xl1-sdk";
|
|
986
|
+
import { asHex as asHex3, isDefined as isDefined10 } from "@xylabs/sdk-js";
|
|
987
|
+
import { PayloadBuilder as PayloadBuilder13, PayloadZodStrictOfSchema as PayloadZodStrictOfSchema4 } from "@xyo-network/sdk-js";
|
|
988
|
+
import { asBridgeIntent, BridgeDestinationObservationFieldsZod as BridgeDestinationObservationFieldsZod2, BridgeDestinationObservationSchema as BridgeDestinationObservationSchema2, BridgeIntentFieldsZod as BridgeIntentFieldsZod3, BridgeIntentSchema as BridgeIntentSchema4, BridgeSourceObservationFieldsZod as BridgeSourceObservationFieldsZod2, BridgeSourceObservationSchema as BridgeSourceObservationSchema2, isBridgeIntent as isBridgeIntent5 } from "@xyo-network/xl1-sdk";
|
|
989
|
+
import { Queue } from "bullmq";
|
|
971
990
|
import { z as z4 } from "zod";
|
|
991
|
+
var BridgeIntentResponseZod = PayloadZodStrictOfSchema4(BridgeIntentSchema4).extend(BridgeIntentFieldsZod3.shape);
|
|
992
|
+
var BridgeSourceResponseZod = PayloadZodStrictOfSchema4(BridgeSourceObservationSchema2).extend(BridgeSourceObservationFieldsZod2.shape);
|
|
993
|
+
var BridgeDestinationResponseZod = PayloadZodStrictOfSchema4(BridgeDestinationObservationSchema2).extend(BridgeDestinationObservationFieldsZod2.shape);
|
|
972
994
|
var BridgeToRemoteStatusResponseZod = z4.union([
|
|
973
995
|
z4.tuple([]),
|
|
974
996
|
z4.tuple([
|
|
975
|
-
|
|
997
|
+
BridgeIntentResponseZod
|
|
976
998
|
]),
|
|
977
999
|
z4.tuple([
|
|
978
|
-
|
|
979
|
-
|
|
1000
|
+
BridgeIntentResponseZod,
|
|
1001
|
+
BridgeSourceResponseZod
|
|
980
1002
|
]),
|
|
981
1003
|
z4.tuple([
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
1004
|
+
BridgeIntentResponseZod,
|
|
1005
|
+
BridgeSourceResponseZod,
|
|
1006
|
+
BridgeDestinationResponseZod
|
|
985
1007
|
])
|
|
986
1008
|
]);
|
|
1009
|
+
var statusQueues;
|
|
1010
|
+
var getStatusQueues = /* @__PURE__ */ __name((config) => {
|
|
1011
|
+
if (statusQueues) return statusQueues;
|
|
1012
|
+
const connection2 = getConnection(config);
|
|
1013
|
+
statusQueues = {
|
|
1014
|
+
ethTransactionMonitor: new Queue(EthTransactionMonitor.queueName, {
|
|
1015
|
+
connection: connection2
|
|
1016
|
+
}),
|
|
1017
|
+
ethTransactionPreparation: new Queue(EthTransactionPreparation.queueName, {
|
|
1018
|
+
connection: connection2
|
|
1019
|
+
}),
|
|
1020
|
+
ethTransactionSubmission: new Queue(EthTransactionSubmission.queueName, {
|
|
1021
|
+
connection: connection2
|
|
1022
|
+
}),
|
|
1023
|
+
xl1ToEthBridgeParent: new Queue(Xl1ToEthBridgeParent.queueName, {
|
|
1024
|
+
connection: connection2
|
|
1025
|
+
}),
|
|
1026
|
+
xl1TransactionMonitor: new Queue(Xl1TransactionMonitor.queueName, {
|
|
1027
|
+
connection: connection2
|
|
1028
|
+
}),
|
|
1029
|
+
xl1TransactionPreparation: new Queue(Xl1TransactionPreparation.queueName, {
|
|
1030
|
+
connection: connection2
|
|
1031
|
+
}),
|
|
1032
|
+
xl1TransactionSubmission: new Queue(Xl1TransactionSubmission.queueName, {
|
|
1033
|
+
connection: connection2
|
|
1034
|
+
})
|
|
1035
|
+
};
|
|
1036
|
+
return statusQueues;
|
|
1037
|
+
}, "getStatusQueues");
|
|
1038
|
+
var getStatusQueueJobs = /* @__PURE__ */ __name(async (queues, jobId) => {
|
|
1039
|
+
const [ethTransactionMonitorJob, ethTransactionPreparationJob, ethTransactionSubmissionJob, xl1ToEthBridgeParentJob, xl1TransactionMonitorJob, xl1TransactionPreparationJob, xl1TransactionSubmissionJob] = await Promise.all([
|
|
1040
|
+
queues.ethTransactionMonitor.getJob(jobId),
|
|
1041
|
+
queues.ethTransactionPreparation.getJob(jobId),
|
|
1042
|
+
queues.ethTransactionSubmission.getJob(jobId),
|
|
1043
|
+
queues.xl1ToEthBridgeParent.getJob(jobId),
|
|
1044
|
+
queues.xl1TransactionMonitor.getJob(jobId),
|
|
1045
|
+
queues.xl1TransactionPreparation.getJob(jobId),
|
|
1046
|
+
queues.xl1TransactionSubmission.getJob(jobId)
|
|
1047
|
+
]);
|
|
1048
|
+
return {
|
|
1049
|
+
ethTransactionMonitorJob,
|
|
1050
|
+
ethTransactionPreparationJob,
|
|
1051
|
+
ethTransactionSubmissionJob,
|
|
1052
|
+
xl1ToEthBridgeParentJob,
|
|
1053
|
+
xl1TransactionMonitorJob,
|
|
1054
|
+
xl1TransactionPreparationJob,
|
|
1055
|
+
xl1TransactionSubmissionJob
|
|
1056
|
+
};
|
|
1057
|
+
}, "getStatusQueueJobs");
|
|
987
1058
|
var makeBridgeToRemoteStatusRoute = /* @__PURE__ */ __name((config) => {
|
|
988
1059
|
const params = z4.object({
|
|
989
1060
|
chainId: getRemoteChainIdZod(config),
|
|
990
1061
|
nonce: z4.string().nonempty()
|
|
991
1062
|
});
|
|
992
|
-
const query = z4.object({
|
|
993
|
-
mockStatus: z4.coerce.number().default(0)
|
|
994
|
-
});
|
|
995
1063
|
const validateRequest2 = requestHandlerValidator5({
|
|
996
1064
|
params,
|
|
997
|
-
query,
|
|
998
1065
|
response: BridgeToRemoteStatusResponseZod
|
|
999
1066
|
});
|
|
1000
1067
|
return {
|
|
1001
1068
|
method: "get",
|
|
1002
1069
|
path: "/bridge/chains/:chainId/bridgeToRemote/status/:nonce",
|
|
1003
1070
|
handlers: validateRequest2(async (req, res) => {
|
|
1004
|
-
const
|
|
1005
|
-
const { mockStatus = 0 } = req.query;
|
|
1071
|
+
const jobId = req.params.nonce;
|
|
1006
1072
|
const result = [];
|
|
1007
|
-
const
|
|
1008
|
-
const
|
|
1009
|
-
const
|
|
1010
|
-
|
|
1011
|
-
const
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
const
|
|
1015
|
-
const
|
|
1016
|
-
|
|
1017
|
-
if (
|
|
1018
|
-
const
|
|
1019
|
-
|
|
1020
|
-
}
|
|
1021
|
-
if (mockStatus > 1) {
|
|
1073
|
+
const queues = getStatusQueues(config);
|
|
1074
|
+
const statusQueueJobs = await getStatusQueueJobs(queues, jobId);
|
|
1075
|
+
const tx = Object.values(statusQueueJobs).map((job) => job?.data?.tx).find((tx2) => isDefined10(tx2));
|
|
1076
|
+
if (!tx) return res.sendStatus(404);
|
|
1077
|
+
const bridgeIntent = tx[1].find(isBridgeIntent5);
|
|
1078
|
+
if (!bridgeIntent) return res.sendStatus(404);
|
|
1079
|
+
result[0] = asBridgeIntent(PayloadBuilder13.omitMeta(bridgeIntent));
|
|
1080
|
+
const { xl1TransactionMonitorJob } = statusQueueJobs;
|
|
1081
|
+
const xl1MonitorState = xl1TransactionMonitorJob ? await xl1TransactionMonitorJob.getState() : void 0;
|
|
1082
|
+
const srcConfirmation = asHex3(jobId);
|
|
1083
|
+
if (xl1MonitorState === "completed" && isDefined10(srcConfirmation)) {
|
|
1084
|
+
const bridgeCommonFieldsZod = z4.object({}).extend(BridgeSourceObservationFieldsZod2.shape);
|
|
1085
|
+
const bridgeCommonFields = bridgeCommonFieldsZod.parse(bridgeIntent);
|
|
1022
1086
|
const observation = {
|
|
1023
1087
|
schema: BridgeSourceObservationSchema2,
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
destAmount,
|
|
1027
|
-
destToken,
|
|
1028
|
-
src,
|
|
1029
|
-
srcAddress,
|
|
1030
|
-
srcAmount,
|
|
1031
|
-
srcToken,
|
|
1032
|
-
srcConfirmation: toHex3("0x8888")
|
|
1088
|
+
...bridgeCommonFields,
|
|
1089
|
+
srcConfirmation
|
|
1033
1090
|
};
|
|
1034
1091
|
result[1] = observation;
|
|
1035
1092
|
}
|
|
1036
|
-
|
|
1093
|
+
const { ethTransactionMonitorJob } = statusQueueJobs;
|
|
1094
|
+
const ethMonitorState = ethTransactionMonitorJob ? await ethTransactionMonitorJob.getState() : void 0;
|
|
1095
|
+
const blockHash = ethTransactionMonitorJob?.returnvalue?.blockHash;
|
|
1096
|
+
const destConfirmation = asHex3(blockHash);
|
|
1097
|
+
if (ethMonitorState === "completed" && isDefined10(blockHash)) {
|
|
1098
|
+
const bridgeDestinationFieldsZod = z4.object({}).extend(BridgeDestinationObservationFieldsZod2.shape);
|
|
1099
|
+
const bridgeDestinationFields = bridgeDestinationFieldsZod.parse({
|
|
1100
|
+
...bridgeIntent,
|
|
1101
|
+
destConfirmation
|
|
1102
|
+
});
|
|
1037
1103
|
const observation = {
|
|
1038
1104
|
schema: BridgeDestinationObservationSchema2,
|
|
1039
|
-
|
|
1040
|
-
destAddress,
|
|
1041
|
-
destAmount,
|
|
1042
|
-
destToken,
|
|
1043
|
-
src,
|
|
1044
|
-
srcAddress,
|
|
1045
|
-
srcAmount,
|
|
1046
|
-
srcToken,
|
|
1047
|
-
destConfirmation: toHex3("0x9999")
|
|
1105
|
+
...bridgeDestinationFields
|
|
1048
1106
|
};
|
|
1049
1107
|
result[2] = observation;
|
|
1050
1108
|
}
|
|
@@ -1099,7 +1157,7 @@ var getApp = /* @__PURE__ */ __name((config, gateway) => {
|
|
|
1099
1157
|
}, "getApp");
|
|
1100
1158
|
|
|
1101
1159
|
// src/services/getServices.ts
|
|
1102
|
-
import { assertEx as assertEx16, isDefined as
|
|
1160
|
+
import { assertEx as assertEx16, isDefined as isDefined11 } from "@xylabs/sdk-js";
|
|
1103
1161
|
import { initEvmProvider } from "@xyo-network/chain-orchestration";
|
|
1104
1162
|
import { BridgeableToken__factory, LiquidityPoolBridge__factory } from "@xyo-network/typechain";
|
|
1105
1163
|
import { HDWallet as HDWallet2 } from "@xyo-network/wallet";
|
|
@@ -1144,7 +1202,7 @@ var getServices = /* @__PURE__ */ __name(async (context, gateway) => {
|
|
|
1144
1202
|
const xl1TxStateMap = await getIterableMap(config, "liquidity_bridge_xl1_to_eth_xl1_tx_state");
|
|
1145
1203
|
const provider = await initEvmProvider(context);
|
|
1146
1204
|
const { remoteBridgeContractAddress, remoteChainWalletPrivateKey, remoteTokenAddress, mnemonic } = config;
|
|
1147
|
-
const account =
|
|
1205
|
+
const account = isDefined11(mnemonic) ? await HDWallet2.fromPhrase(mnemonic) : await HDWallet2.random();
|
|
1148
1206
|
const wallet = new Wallet(remoteChainWalletPrivateKey, provider);
|
|
1149
1207
|
const bridgeableToken = BridgeableToken__factory.connect(getAddress2(remoteTokenAddress), wallet);
|
|
1150
1208
|
const bridge = LiquidityPoolBridge__factory.connect(getAddress2(remoteBridgeContractAddress), wallet);
|