@rango-dev/queue-manager-rango-preset 0.1.10-next.96 → 0.1.10
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/actions/checkStatus.d.ts.map +1 -1
- package/dist/actions/createTransaction.d.ts.map +1 -1
- package/dist/actions/scheduleNextStep.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/helpers.d.ts +46 -14
- package/dist/helpers.d.ts.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/index.d.ts +4 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/queue-manager-rango-preset.cjs.development.js +397 -302
- package/dist/queue-manager-rango-preset.cjs.development.js.map +1 -1
- package/dist/queue-manager-rango-preset.cjs.production.min.js +1 -1
- package/dist/queue-manager-rango-preset.cjs.production.min.js.map +1 -1
- package/dist/queue-manager-rango-preset.esm.js +376 -288
- package/dist/queue-manager-rango-preset.esm.js.map +1 -1
- package/dist/shared-errors.d.ts +5 -37
- package/dist/shared-errors.d.ts.map +1 -1
- package/dist/shared.d.ts +20 -17
- package/dist/shared.d.ts.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/readme.md +1 -9
- package/src/actions/checkStatus.ts +54 -5
- package/src/actions/createTransaction.ts +2 -3
- package/src/actions/executeTransaction.ts +3 -3
- package/src/actions/scheduleNextStep.ts +1 -0
- package/src/constants.ts +1 -1
- package/src/helpers.ts +225 -174
- package/src/hooks.ts +2 -1
- package/src/index.ts +19 -44
- package/src/shared-errors.ts +53 -76
- package/src/shared.ts +34 -54
- package/src/types.ts +1 -0
|
@@ -2,31 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var rangoTypes = require('rango-types');
|
|
5
6
|
var walletsShared = require('@rango-dev/wallets-shared');
|
|
6
7
|
var walletsCore = require('@rango-dev/wallets-core');
|
|
7
8
|
var rangoSdk = require('rango-sdk');
|
|
8
9
|
var queueManagerCore = require('@rango-dev/queue-manager-core');
|
|
9
|
-
var rangoTypes = require('rango-types');
|
|
10
10
|
var Sentry = require('@sentry/browser');
|
|
11
11
|
var queueManagerReact = require('@rango-dev/queue-manager-react');
|
|
12
12
|
var react = require('react');
|
|
13
13
|
var uuid = require('uuid');
|
|
14
14
|
|
|
15
|
-
var SwapActionTypes;
|
|
16
|
-
(function (SwapActionTypes) {
|
|
17
|
-
SwapActionTypes["START"] = "START";
|
|
18
|
-
SwapActionTypes["SCHEDULE_NEXT_STEP"] = "SCHEDULE_NEXT_STEP";
|
|
19
|
-
SwapActionTypes["CREATE_TRANSACTION"] = "CREATE_TRANSACTION";
|
|
20
|
-
SwapActionTypes["EXECUTE_TRANSACTION"] = "EXECUTE_TRANSACTION";
|
|
21
|
-
SwapActionTypes["CHECK_TRANSACTION_STATUS"] = "CHECK_TRANSACTION_STATUS";
|
|
22
|
-
})(SwapActionTypes || (SwapActionTypes = {}));
|
|
23
|
-
var BlockReason;
|
|
24
|
-
(function (BlockReason) {
|
|
25
|
-
BlockReason["WAIT_FOR_CONNECT_WALLET"] = "waiting_for_connecting_wallet";
|
|
26
|
-
BlockReason["WAIT_FOR_NETWORK_CHANGE"] = "waiting_for_network_change";
|
|
27
|
-
BlockReason["DEPENDS_ON_OTHER_QUEUES"] = "depends_on_other_queues";
|
|
28
|
-
})(BlockReason || (BlockReason = {}));
|
|
29
|
-
|
|
30
15
|
function _regeneratorRuntime() {
|
|
31
16
|
_regeneratorRuntime = function () {
|
|
32
17
|
return exports;
|
|
@@ -452,46 +437,6 @@ function _assertThisInitialized(self) {
|
|
|
452
437
|
return self;
|
|
453
438
|
}
|
|
454
439
|
|
|
455
|
-
var RANGO_DAPP_API_KEY = process.env.REACT_APP_API_KEY;
|
|
456
|
-
var RANGO_DAPP_API_BASE_URL = process.env.REACT_APP_API_BASE_URL;
|
|
457
|
-
var ERROR_MESSAGE_WAIT_FOR_WALLET = 'Waiting for connecting wallet';
|
|
458
|
-
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET(type, address) {
|
|
459
|
-
return "Please change your " + (type || 'wallet') + " account to " + (address || 'proper address');
|
|
460
|
-
};
|
|
461
|
-
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION(type) {
|
|
462
|
-
return "Please connect to " + (type || 'your wallet') + " by using bellow button or top right button on page.";
|
|
463
|
-
};
|
|
464
|
-
var ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK = function ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK(network) {
|
|
465
|
-
return "Please change your network to " + network + ".";
|
|
466
|
-
};
|
|
467
|
-
|
|
468
|
-
var APIErrorCode;
|
|
469
|
-
(function (APIErrorCode) {
|
|
470
|
-
APIErrorCode["TX_FAIL"] = "TX_FAIL";
|
|
471
|
-
APIErrorCode["FETCH_TX_FAILED"] = "FETCH_TX_FAILED";
|
|
472
|
-
APIErrorCode["USER_REJECT"] = "USER_REJECT";
|
|
473
|
-
APIErrorCode["CALL_WALLET_FAILED"] = "CALL_WALLET_FAILED";
|
|
474
|
-
APIErrorCode["SEND_TX_FAILED"] = "SEND_TX_FAILED";
|
|
475
|
-
APIErrorCode["CALL_OR_SEND_FAILED"] = "CALL_OR_SEND_FAILED";
|
|
476
|
-
APIErrorCode["USER_CANCEL"] = "USER_CANCEL";
|
|
477
|
-
APIErrorCode["CLIENT_UNEXPECTED_BEHAVIOUR"] = "CLIENT_UNEXPECTED_BEHAVIOUR";
|
|
478
|
-
})(APIErrorCode || (APIErrorCode = {}));
|
|
479
|
-
var ApiMethodName;
|
|
480
|
-
(function (ApiMethodName) {
|
|
481
|
-
ApiMethodName["RequestingSwapTransaction"] = "Requesting Swap Transaction";
|
|
482
|
-
ApiMethodName["CreatingSwap"] = "Creating Swap";
|
|
483
|
-
ApiMethodName["CheckingTransactionStatus"] = "Checking transaction status";
|
|
484
|
-
ApiMethodName["CreateTransaction"] = "Create Transaction";
|
|
485
|
-
ApiMethodName["CheckApproval"] = "Check TX Approval";
|
|
486
|
-
ApiMethodName["GettingSwapDetail"] = "Getting Swap Detail";
|
|
487
|
-
ApiMethodName["GettingUserLimits"] = "Getting user limits";
|
|
488
|
-
})(ApiMethodName || (ApiMethodName = {}));
|
|
489
|
-
var TransactionName;
|
|
490
|
-
(function (TransactionName) {
|
|
491
|
-
TransactionName["GenericTransaction"] = "transaction";
|
|
492
|
-
TransactionName["SendingOneInchTransaction"] = "1inch transaction";
|
|
493
|
-
TransactionName["Approval"] = "approve transaction";
|
|
494
|
-
})(TransactionName || (TransactionName = {}));
|
|
495
440
|
var ERROR_ASSERTION_FAILED = 'Assertion failed (Unexpected behaviour)';
|
|
496
441
|
var ERROR_CREATE_TRANSACTION = 'Create transaction failed in Rango Server';
|
|
497
442
|
var ERROR_INPUT_WALLET_NOT_FOUND = 'Input wallet not found';
|
|
@@ -500,12 +445,17 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
500
445
|
function PrettyError(code, m, root, detail) {
|
|
501
446
|
var _this;
|
|
502
447
|
_this = _Error.call(this, m) || this;
|
|
448
|
+
_this._isPrettyError = true;
|
|
503
449
|
Object.setPrototypeOf(_assertThisInitialized(_this), PrettyError.prototype);
|
|
450
|
+
PrettyError.prototype._isPrettyError = true;
|
|
504
451
|
_this.code = code;
|
|
505
452
|
_this.detail = detail;
|
|
506
453
|
_this.root = root;
|
|
507
454
|
return _this;
|
|
508
455
|
}
|
|
456
|
+
PrettyError.isPrettyError = function isPrettyError(obj) {
|
|
457
|
+
return obj instanceof PrettyError || Object.prototype.hasOwnProperty('_isPrettyError');
|
|
458
|
+
};
|
|
509
459
|
var _proto = PrettyError.prototype;
|
|
510
460
|
_proto.getErrorDetail = function getErrorDetail() {
|
|
511
461
|
var rawMessage = typeof this.root === 'object' && this.root && this.root.error ? this.root.error : JSON.stringify(this.root);
|
|
@@ -517,33 +467,30 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
517
467
|
};
|
|
518
468
|
};
|
|
519
469
|
PrettyError.AssertionFailed = function AssertionFailed(m) {
|
|
520
|
-
return new PrettyError(
|
|
470
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_ASSERTION_FAILED, m);
|
|
521
471
|
};
|
|
522
472
|
PrettyError.BadStatusCode = function BadStatusCode(message, statusCode) {
|
|
523
|
-
return new PrettyError(
|
|
473
|
+
return new PrettyError('TX_FAIL', message, null, "status code = " + statusCode);
|
|
524
474
|
};
|
|
525
475
|
PrettyError.CreateTransaction = function CreateTransaction(detail) {
|
|
526
|
-
return new PrettyError(
|
|
476
|
+
return new PrettyError('FETCH_TX_FAILED', ERROR_CREATE_TRANSACTION, null, detail);
|
|
527
477
|
};
|
|
528
478
|
PrettyError.WalletMissing = function WalletMissing() {
|
|
529
|
-
return new PrettyError(
|
|
479
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_INPUT_WALLET_NOT_FOUND, null, 'Server requested for a blockchain or address not selected by user');
|
|
530
480
|
};
|
|
531
481
|
PrettyError.BlockchainMissing = function BlockchainMissing() {
|
|
532
|
-
return new PrettyError(
|
|
482
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_INPUT_WALLET_NOT_FOUND, null, 'Server requested for a blockchain or address not selected by user');
|
|
533
483
|
};
|
|
534
484
|
return PrettyError;
|
|
535
485
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
536
|
-
function isAPIErrorCode(value) {
|
|
537
|
-
return Object.values(APIErrorCode).includes(value);
|
|
538
|
-
}
|
|
539
486
|
function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
540
|
-
var defaultErrorCode =
|
|
487
|
+
var defaultErrorCode = 'CLIENT_UNEXPECTED_BEHAVIOUR';
|
|
541
488
|
try {
|
|
542
489
|
if (!errorCode) return defaultErrorCode;
|
|
543
|
-
if (isAPIErrorCode(errorCode)) return errorCode;
|
|
490
|
+
if (rangoTypes.isAPIErrorCode(errorCode)) return errorCode;
|
|
544
491
|
if (rangoTypes.isSignerErrorCode(errorCode)) {
|
|
545
492
|
var _t;
|
|
546
|
-
var t = (_t = {}, _t[rangoTypes.SignerErrorCode.REJECTED_BY_USER] =
|
|
493
|
+
var t = (_t = {}, _t[rangoTypes.SignerErrorCode.REJECTED_BY_USER] = 'USER_REJECT', _t[rangoTypes.SignerErrorCode.SIGN_TX_ERROR] = 'CALL_WALLET_FAILED', _t[rangoTypes.SignerErrorCode.SEND_TX_ERROR] = 'SEND_TX_FAILED', _t[rangoTypes.SignerErrorCode.NOT_IMPLEMENTED] = defaultErrorCode, _t[rangoTypes.SignerErrorCode.OPERATION_UNSUPPORTED] = defaultErrorCode, _t[rangoTypes.SignerErrorCode.UNEXPECTED_BEHAVIOUR] = defaultErrorCode, _t);
|
|
547
494
|
return t[errorCode];
|
|
548
495
|
}
|
|
549
496
|
return defaultErrorCode;
|
|
@@ -551,21 +498,46 @@ function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
|
551
498
|
return defaultErrorCode;
|
|
552
499
|
}
|
|
553
500
|
}
|
|
501
|
+
var prettifyErrorMessage = function prettifyErrorMessage(obj) {
|
|
502
|
+
if (!obj) return {
|
|
503
|
+
extraMessage: '',
|
|
504
|
+
extraMessageErrorCode: null
|
|
505
|
+
};
|
|
506
|
+
if (PrettyError.isPrettyError(obj)) return obj.getErrorDetail();
|
|
507
|
+
if (rangoTypes.SignerError.isSignerError(obj)) {
|
|
508
|
+
var t = obj.getErrorDetail();
|
|
509
|
+
return {
|
|
510
|
+
extraMessage: t.message,
|
|
511
|
+
extraMessageDetail: t.detail,
|
|
512
|
+
extraMessageErrorCode: t.code
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
if (obj instanceof Error) return {
|
|
516
|
+
extraMessage: obj.toString(),
|
|
517
|
+
extraMessageErrorCode: null
|
|
518
|
+
};
|
|
519
|
+
if (typeof obj !== 'string') return {
|
|
520
|
+
extraMessage: JSON.stringify(obj),
|
|
521
|
+
extraMessageErrorCode: null
|
|
522
|
+
};
|
|
523
|
+
return {
|
|
524
|
+
extraMessage: obj,
|
|
525
|
+
extraMessageErrorCode: null
|
|
526
|
+
};
|
|
527
|
+
};
|
|
554
528
|
|
|
555
|
-
var PendingSwapNetworkStatus;
|
|
556
529
|
(function (PendingSwapNetworkStatus) {
|
|
557
530
|
PendingSwapNetworkStatus["WaitingForConnectingWallet"] = "waitingForConnectingWallet";
|
|
558
531
|
PendingSwapNetworkStatus["WaitingForQueue"] = "waitingForQueue";
|
|
559
532
|
PendingSwapNetworkStatus["WaitingForNetworkChange"] = "waitingForNetworkChange";
|
|
560
533
|
PendingSwapNetworkStatus["NetworkChanged"] = "networkChanged";
|
|
561
|
-
})(PendingSwapNetworkStatus || (PendingSwapNetworkStatus = {}));
|
|
562
|
-
var MessageSeverity;
|
|
534
|
+
})(exports.PendingSwapNetworkStatus || (exports.PendingSwapNetworkStatus = {}));
|
|
563
535
|
(function (MessageSeverity) {
|
|
564
536
|
MessageSeverity["error"] = "error";
|
|
565
537
|
MessageSeverity["warning"] = "warning";
|
|
566
538
|
MessageSeverity["info"] = "info";
|
|
567
539
|
MessageSeverity["success"] = "success";
|
|
568
|
-
})(MessageSeverity || (MessageSeverity = {}));
|
|
540
|
+
})(exports.MessageSeverity || (exports.MessageSeverity = {}));
|
|
569
541
|
var getCurrentBlockchainOfOrNull = function getCurrentBlockchainOfOrNull(swap, step) {
|
|
570
542
|
try {
|
|
571
543
|
return getCurrentBlockchainOf(swap, step);
|
|
@@ -603,48 +575,22 @@ var getStarknetApproveUrl = function getStarknetApproveUrl(tx) {
|
|
|
603
575
|
var getTronApproveUrl = function getTronApproveUrl(tx) {
|
|
604
576
|
return 'https://tronscan.org/#/transaction/{txHash}'.replace('{txHash}', tx.toLowerCase());
|
|
605
577
|
};
|
|
606
|
-
var prettifyErrorMessage = function prettifyErrorMessage(obj) {
|
|
607
|
-
if (!obj) return {
|
|
608
|
-
extraMessage: '',
|
|
609
|
-
extraMessageErrorCode: null
|
|
610
|
-
};
|
|
611
|
-
if (obj instanceof PrettyError) return obj.getErrorDetail();
|
|
612
|
-
if (obj instanceof rangoTypes.SignerError) {
|
|
613
|
-
var t = obj.getErrorDetail();
|
|
614
|
-
return {
|
|
615
|
-
extraMessage: t.message,
|
|
616
|
-
extraMessageDetail: t.detail,
|
|
617
|
-
extraMessageErrorCode: t.code
|
|
618
|
-
};
|
|
619
|
-
}
|
|
620
|
-
if (obj instanceof Error) return {
|
|
621
|
-
extraMessage: obj.toString(),
|
|
622
|
-
extraMessageErrorCode: null
|
|
623
|
-
};
|
|
624
|
-
if (typeof obj !== 'string') return {
|
|
625
|
-
extraMessage: JSON.stringify(obj),
|
|
626
|
-
extraMessageErrorCode: null
|
|
627
|
-
};
|
|
628
|
-
return {
|
|
629
|
-
extraMessage: obj,
|
|
630
|
-
extraMessageErrorCode: null
|
|
631
|
-
};
|
|
632
|
-
};
|
|
633
578
|
function getNextStep(swap, currentStep) {
|
|
634
579
|
return swap.steps.find(function (step) {
|
|
635
580
|
return step.status !== 'failed' && step.status !== 'success' && step.id !== currentStep.id;
|
|
636
581
|
}) || null;
|
|
637
582
|
}
|
|
638
|
-
|
|
583
|
+
/**
|
|
584
|
+
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
585
|
+
*/
|
|
639
586
|
var getCurrentAddressOf = function getCurrentAddressOf(swap, step) {
|
|
640
|
-
var _step$evmTransaction2, _step$evmApprovalTran2, _step$cosmosTransacti2, _step$solanaTransacti2, _step$transferTransac2, _step$transferTransac3;
|
|
641
|
-
var result = swap.wallets[((_step$evmTransaction2 = step.evmTransaction) == null ? void 0 : _step$evmTransaction2.blockChain) || ''] || swap.wallets[((_step$evmApprovalTran2 = step.evmApprovalTransaction) == null ? void 0 : _step$evmApprovalTran2.blockChain) || ''] || swap.wallets[((_step$cosmosTransacti2 = step.cosmosTransaction) == null ? void 0 : _step$cosmosTransacti2.blockChain) || ''] || swap.wallets[((_step$solanaTransacti2 = step.solanaTransaction) == null ? void 0 : _step$solanaTransacti2.blockChain) || ''] || ((_step$transferTransac2 = step.transferTransaction) != null && _step$transferTransac2.fromWalletAddress ? {
|
|
587
|
+
var _step$evmTransaction2, _step$evmApprovalTran2, _step$tronTransaction2, _step$tronApprovalTra2, _step$starknetTransac2, _step$starknetApprova2, _step$cosmosTransacti2, _step$solanaTransacti2, _step$transferTransac2, _step$transferTransac3;
|
|
588
|
+
var result = swap.wallets[((_step$evmTransaction2 = step.evmTransaction) == null ? void 0 : _step$evmTransaction2.blockChain) || ''] || swap.wallets[((_step$evmApprovalTran2 = step.evmApprovalTransaction) == null ? void 0 : _step$evmApprovalTran2.blockChain) || ''] || swap.wallets[((_step$tronTransaction2 = step.tronTransaction) == null ? void 0 : _step$tronTransaction2.blockChain) || ''] || swap.wallets[((_step$tronApprovalTra2 = step.tronApprovalTransaction) == null ? void 0 : _step$tronApprovalTra2.blockChain) || ''] || swap.wallets[((_step$starknetTransac2 = step.starknetTransaction) == null ? void 0 : _step$starknetTransac2.blockChain) || ''] || swap.wallets[((_step$starknetApprova2 = step.starknetApprovalTransaction) == null ? void 0 : _step$starknetApprova2.blockChain) || ''] || swap.wallets[((_step$cosmosTransacti2 = step.cosmosTransaction) == null ? void 0 : _step$cosmosTransacti2.blockChain) || ''] || swap.wallets[((_step$solanaTransacti2 = step.solanaTransaction) == null ? void 0 : _step$solanaTransacti2.blockChain) || ''] || ((_step$transferTransac2 = step.transferTransaction) != null && _step$transferTransac2.fromWalletAddress ? {
|
|
642
589
|
address: (_step$transferTransac3 = step.transferTransaction) == null ? void 0 : _step$transferTransac3.fromWalletAddress
|
|
643
590
|
} : null) || null;
|
|
644
591
|
if (result == null) throw PrettyError.WalletMissing();
|
|
645
592
|
return result.address;
|
|
646
593
|
};
|
|
647
|
-
// TODO: we have samething in `helpers`, for fixing circular dependency, we copied and should be removed eventually.
|
|
648
594
|
function getRelatedWallet(swap, currentStep) {
|
|
649
595
|
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
650
596
|
var walletKV = Object.keys(swap.wallets).map(function (k) {
|
|
@@ -670,6 +616,34 @@ function getRelatedWalletOrNull(swap, currentStep) {
|
|
|
670
616
|
}
|
|
671
617
|
}
|
|
672
618
|
|
|
619
|
+
var SwapActionTypes;
|
|
620
|
+
(function (SwapActionTypes) {
|
|
621
|
+
SwapActionTypes["START"] = "START";
|
|
622
|
+
SwapActionTypes["SCHEDULE_NEXT_STEP"] = "SCHEDULE_NEXT_STEP";
|
|
623
|
+
SwapActionTypes["CREATE_TRANSACTION"] = "CREATE_TRANSACTION";
|
|
624
|
+
SwapActionTypes["EXECUTE_TRANSACTION"] = "EXECUTE_TRANSACTION";
|
|
625
|
+
SwapActionTypes["CHECK_TRANSACTION_STATUS"] = "CHECK_TRANSACTION_STATUS";
|
|
626
|
+
})(SwapActionTypes || (SwapActionTypes = {}));
|
|
627
|
+
var BlockReason;
|
|
628
|
+
(function (BlockReason) {
|
|
629
|
+
BlockReason["WAIT_FOR_CONNECT_WALLET"] = "waiting_for_connecting_wallet";
|
|
630
|
+
BlockReason["WAIT_FOR_NETWORK_CHANGE"] = "waiting_for_network_change";
|
|
631
|
+
BlockReason["DEPENDS_ON_OTHER_QUEUES"] = "depends_on_other_queues";
|
|
632
|
+
})(BlockReason || (BlockReason = {}));
|
|
633
|
+
|
|
634
|
+
var RANGO_DAPP_API_KEY = process.env.REACT_APP_API_KEY;
|
|
635
|
+
var RANGO_DAPP_API_BASE_URL = process.env.REACT_APP_API_BASE_URL;
|
|
636
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET = 'Waiting for connecting wallet';
|
|
637
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET(type, address) {
|
|
638
|
+
return "Please change your " + (type || 'wallet') + " account to " + (address || 'proper address');
|
|
639
|
+
};
|
|
640
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION(type) {
|
|
641
|
+
return "Please connect to " + (type || 'your wallet') + " by using bellow button or top right button on page.";
|
|
642
|
+
};
|
|
643
|
+
var ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK = function ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK(network) {
|
|
644
|
+
return "Please change your network to " + network + ".";
|
|
645
|
+
};
|
|
646
|
+
|
|
673
647
|
function logRPCError(error, swap, currentStep, walletType) {
|
|
674
648
|
try {
|
|
675
649
|
Sentry.captureException(error, {
|
|
@@ -713,12 +687,23 @@ function claimQueue() {
|
|
|
713
687
|
};
|
|
714
688
|
}
|
|
715
689
|
/**
|
|
716
|
-
*
|
|
690
|
+
* Sample inputs are:
|
|
691
|
+
* - "metamask-ETH"
|
|
692
|
+
* - "metamask-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
693
|
+
* - "token-pocket-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
717
694
|
* Returns "wallet and network" separately, even if the wallet is dashed inside.
|
|
718
695
|
*
|
|
719
696
|
*/
|
|
720
697
|
function splitWalletNetwork(input) {
|
|
721
|
-
|
|
698
|
+
var removedAddressInput = (input == null ? void 0 : input.split(':')[0]) || '';
|
|
699
|
+
var splittedInput = removedAddressInput.split('-');
|
|
700
|
+
var network = splittedInput[splittedInput.length - 1];
|
|
701
|
+
var walletNetwork = splittedInput.slice(0, -1);
|
|
702
|
+
if (walletNetwork[walletNetwork.length - 1] === network) {
|
|
703
|
+
walletNetwork.pop();
|
|
704
|
+
}
|
|
705
|
+
var wallet = walletNetwork.join('-');
|
|
706
|
+
return [wallet, network];
|
|
722
707
|
}
|
|
723
708
|
/**
|
|
724
709
|
*
|
|
@@ -751,24 +736,26 @@ function updateSwapStatus(_ref) {
|
|
|
751
736
|
if (!!nextStatus) swap.status = nextStatus;
|
|
752
737
|
swap.hasAlreadyProceededToSign = hasAlreadyProceededToSign;
|
|
753
738
|
if (!!nextStatus && ['failed', 'success'].includes(nextStatus)) swap.finishTime = new Date().getTime().toString();
|
|
754
|
-
if (!!message
|
|
755
|
-
|
|
739
|
+
if (!!message || !!details) {
|
|
740
|
+
swap.extraMessage = message || '';
|
|
741
|
+
swap.extraMessageDetail = details || '';
|
|
742
|
+
}
|
|
756
743
|
if (!!nextStepStatus && ['failed'].includes(nextStepStatus)) {
|
|
757
744
|
var _getRelatedWalletOrNu;
|
|
758
745
|
//if user cancel the swap, we should pass relevant reason to the server.
|
|
759
746
|
var errorReason = details && details.includes('Warning') ? 'Swap canceled by user.' : details;
|
|
760
747
|
var walletType = (_getRelatedWalletOrNu = getRelatedWalletOrNull(swap, currentStep)) == null ? void 0 : _getRelatedWalletOrNu.walletType;
|
|
761
|
-
swap.extraMessageSeverity = MessageSeverity.error;
|
|
748
|
+
swap.extraMessageSeverity = exports.MessageSeverity.error;
|
|
762
749
|
httpService.reportFailure({
|
|
763
750
|
requestId: swap.requestId,
|
|
764
751
|
step: (currentStep == null ? void 0 : currentStep.id) || 1,
|
|
765
|
-
eventType: mapAppErrorCodesToAPIErrorCode(
|
|
752
|
+
eventType: mapAppErrorCodesToAPIErrorCode(errorCode),
|
|
766
753
|
reason: errorReason || '',
|
|
767
754
|
data: walletType ? {
|
|
768
755
|
wallet: walletType
|
|
769
756
|
} : undefined
|
|
770
757
|
}).then()["catch"]();
|
|
771
|
-
} else if (!!nextStepStatus && ['running'].includes(nextStepStatus)) swap.extraMessageSeverity = MessageSeverity.info;else if (!!nextStepStatus && ['success', 'approved'].includes(nextStepStatus)) swap.extraMessageSeverity = MessageSeverity.success;else if (nextStepStatus && ['waitingForApproval'].includes(nextStepStatus)) swap.extraMessageSeverity = MessageSeverity.warning;
|
|
758
|
+
} else if (!!nextStepStatus && ['running'].includes(nextStepStatus)) swap.extraMessageSeverity = exports.MessageSeverity.info;else if (!!nextStepStatus && ['success', 'approved'].includes(nextStepStatus)) swap.extraMessageSeverity = exports.MessageSeverity.success;else if (nextStepStatus && ['waitingForApproval'].includes(nextStepStatus)) swap.extraMessageSeverity = exports.MessageSeverity.warning;
|
|
772
759
|
if (nextStepStatus === 'running' && currentStep) currentStep.startTransactionTime = new Date().getTime();
|
|
773
760
|
setStorage(_extends({}, getStorage(), {
|
|
774
761
|
swapDetails: swap
|
|
@@ -778,18 +765,32 @@ function updateSwapStatus(_ref) {
|
|
|
778
765
|
step: currentStep
|
|
779
766
|
};
|
|
780
767
|
}
|
|
781
|
-
function setStepTransactionIds(_ref2, txId, eventType,
|
|
768
|
+
function setStepTransactionIds(_ref2, txId, notifier, eventType, approveUrl) {
|
|
782
769
|
var getStorage = _ref2.getStorage,
|
|
783
770
|
setStorage = _ref2.setStorage;
|
|
784
771
|
var swap = getStorage().swapDetails;
|
|
785
772
|
swap.hasAlreadyProceededToSign = null;
|
|
786
773
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
787
774
|
var currentStep = getCurrentStep(swap);
|
|
788
|
-
currentStep.executedTransactionId = txId
|
|
775
|
+
currentStep.executedTransactionId = txId;
|
|
776
|
+
currentStep.executedTransactionTime = new Date().getTime().toString();
|
|
777
|
+
if (!!approveUrl) currentStep.explorerUrl = [].concat(currentStep.explorerUrl || [], [{
|
|
778
|
+
url: approveUrl,
|
|
779
|
+
description: "approve"
|
|
780
|
+
}]);
|
|
781
|
+
if (eventType === 'check_tx_status') {
|
|
782
|
+
swap.extraMessage = 'Checking transaction status ...';
|
|
783
|
+
swap.extraMessageDetail = '';
|
|
784
|
+
swap.extraMessageSeverity = exports.MessageSeverity.info;
|
|
785
|
+
} else if (eventType === 'check_approve_tx_status') {
|
|
786
|
+
swap.extraMessage = 'Checking approve transaction status ...';
|
|
787
|
+
swap.extraMessageDetail = '';
|
|
788
|
+
swap.extraMessageSeverity = exports.MessageSeverity.info;
|
|
789
|
+
}
|
|
789
790
|
setStorage(_extends({}, getStorage(), {
|
|
790
791
|
swapDetails: swap
|
|
791
792
|
}));
|
|
792
|
-
notifier({
|
|
793
|
+
if (!!eventType) notifier({
|
|
793
794
|
eventType: eventType,
|
|
794
795
|
swap: swap,
|
|
795
796
|
step: currentStep
|
|
@@ -816,11 +817,11 @@ function markRunningSwapAsWaitingForConnectingWallet(_ref3, reason, reasonDetail
|
|
|
816
817
|
if (!currentStep) return;
|
|
817
818
|
var currentTime = new Date();
|
|
818
819
|
swap.lastNotificationTime = currentTime.getTime().toString();
|
|
819
|
-
var isAlreadyMarked = currentStep.networkStatus === PendingSwapNetworkStatus.WaitingForConnectingWallet && swap.networkStatusExtraMessage === reason && swap.networkStatusExtraMessageDetail === reasonDetail;
|
|
820
|
+
var isAlreadyMarked = currentStep.networkStatus === exports.PendingSwapNetworkStatus.WaitingForConnectingWallet && swap.networkStatusExtraMessage === reason && swap.networkStatusExtraMessageDetail === reasonDetail;
|
|
820
821
|
if (isAlreadyMarked) {
|
|
821
822
|
return;
|
|
822
823
|
}
|
|
823
|
-
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForConnectingWallet;
|
|
824
|
+
currentStep.networkStatus = exports.PendingSwapNetworkStatus.WaitingForConnectingWallet;
|
|
824
825
|
swap.networkStatusExtraMessage = reason;
|
|
825
826
|
swap.networkStatusExtraMessageDetail = reasonDetail;
|
|
826
827
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -847,7 +848,7 @@ function markRunningSwapAsSwitchingNetwork(_ref4) {
|
|
|
847
848
|
var reasonDetail = "Please change your " + type + " wallet network to " + fromBlockchain + ". " + metamaskMessage;
|
|
848
849
|
var currentTime = new Date();
|
|
849
850
|
swap.lastNotificationTime = currentTime.getTime().toString();
|
|
850
|
-
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForNetworkChange;
|
|
851
|
+
currentStep.networkStatus = exports.PendingSwapNetworkStatus.WaitingForNetworkChange;
|
|
851
852
|
swap.networkStatusExtraMessage = reason;
|
|
852
853
|
swap.networkStatusExtraMessageDetail = reasonDetail;
|
|
853
854
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -864,13 +865,19 @@ function markRunningSwapAsSwitchingNetwork(_ref4) {
|
|
|
864
865
|
*/
|
|
865
866
|
function markRunningSwapAsDependsOnOtherQueues(_ref5) {
|
|
866
867
|
var getStorage = _ref5.getStorage,
|
|
867
|
-
setStorage = _ref5.setStorage
|
|
868
|
+
setStorage = _ref5.setStorage,
|
|
869
|
+
notifier = _ref5.notifier;
|
|
868
870
|
var swap = getStorage().swapDetails;
|
|
869
871
|
var currentStep = getCurrentStep(swap);
|
|
870
872
|
if (!currentStep) return;
|
|
871
873
|
swap.networkStatusExtraMessage = '';
|
|
872
874
|
swap.networkStatusExtraMessageDetail = '';
|
|
873
|
-
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForQueue;
|
|
875
|
+
currentStep.networkStatus = exports.PendingSwapNetworkStatus.WaitingForQueue;
|
|
876
|
+
notifier({
|
|
877
|
+
eventType: 'waiting_for_queue',
|
|
878
|
+
swap: swap,
|
|
879
|
+
step: currentStep
|
|
880
|
+
});
|
|
874
881
|
setStorage(_extends({}, getStorage(), {
|
|
875
882
|
swapDetails: swap
|
|
876
883
|
}));
|
|
@@ -1002,9 +1009,6 @@ function _getChainId() {
|
|
|
1002
1009
|
function isNetworkMatchedForTransaction(_x2, _x3, _x4, _x5, _x6) {
|
|
1003
1010
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1004
1011
|
}
|
|
1005
|
-
/**
|
|
1006
|
-
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
1007
|
-
*/
|
|
1008
1012
|
function _isNetworkMatchedForTransaction() {
|
|
1009
1013
|
_isNetworkMatchedForTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(swap, step, wallet, meta, providers) {
|
|
1010
1014
|
var fromBlockChain, sourceWallet, provider, chainId, blockChain;
|
|
@@ -1012,112 +1016,85 @@ function _isNetworkMatchedForTransaction() {
|
|
|
1012
1016
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1013
1017
|
case 0:
|
|
1014
1018
|
if (!isWalletNull(wallet)) {
|
|
1015
|
-
_context2.next =
|
|
1019
|
+
_context2.next = 2;
|
|
1016
1020
|
break;
|
|
1017
1021
|
}
|
|
1018
|
-
console.warn('wallet object is null');
|
|
1019
1022
|
return _context2.abrupt("return", false);
|
|
1020
|
-
case
|
|
1023
|
+
case 2:
|
|
1021
1024
|
fromBlockChain = getCurrentBlockchainOfOrNull(swap, step);
|
|
1022
1025
|
if (fromBlockChain) {
|
|
1023
|
-
_context2.next =
|
|
1026
|
+
_context2.next = 5;
|
|
1024
1027
|
break;
|
|
1025
1028
|
}
|
|
1026
1029
|
return _context2.abrupt("return", false);
|
|
1027
|
-
case
|
|
1030
|
+
case 5:
|
|
1028
1031
|
if (!meta.evmBasedChains.find(function (evmBlochain) {
|
|
1029
1032
|
return evmBlochain.name === fromBlockChain;
|
|
1030
1033
|
})) {
|
|
1031
|
-
_context2.next =
|
|
1034
|
+
_context2.next = 29;
|
|
1032
1035
|
break;
|
|
1033
1036
|
}
|
|
1034
|
-
_context2.prev =
|
|
1037
|
+
_context2.prev = 6;
|
|
1035
1038
|
sourceWallet = swap.wallets[fromBlockChain];
|
|
1036
1039
|
if (!sourceWallet) {
|
|
1037
|
-
_context2.next =
|
|
1040
|
+
_context2.next = 23;
|
|
1038
1041
|
break;
|
|
1039
1042
|
}
|
|
1040
1043
|
if (![walletsShared.WalletType.META_MASK, walletsShared.WalletType.BINANCE_CHAIN, walletsShared.WalletType.XDEFI, walletsShared.WalletType.WALLET_CONNECT, walletsShared.WalletType.TRUST_WALLET, walletsShared.WalletType.COIN98, walletsShared.WalletType.EXODUS, walletsShared.WalletType.OKX, walletsShared.WalletType.COINBASE, walletsShared.WalletType.TOKEN_POCKET, walletsShared.WalletType.MATH, walletsShared.WalletType.SAFEPAL, walletsShared.WalletType.COSMOSTATION, walletsShared.WalletType.CLOVER, walletsShared.WalletType.BRAVE, walletsShared.WalletType.FRONTIER, walletsShared.WalletType.KUCOIN].includes(sourceWallet.walletType)) {
|
|
1041
|
-
_context2.next =
|
|
1044
|
+
_context2.next = 22;
|
|
1042
1045
|
break;
|
|
1043
1046
|
}
|
|
1044
1047
|
provider = getEvmProvider(providers, sourceWallet.walletType);
|
|
1045
|
-
_context2.next =
|
|
1048
|
+
_context2.next = 13;
|
|
1046
1049
|
return getChainId(provider);
|
|
1047
|
-
case
|
|
1050
|
+
case 13:
|
|
1048
1051
|
chainId = _context2.sent;
|
|
1049
1052
|
if (!chainId) {
|
|
1050
|
-
_context2.next =
|
|
1053
|
+
_context2.next = 20;
|
|
1051
1054
|
break;
|
|
1052
1055
|
}
|
|
1053
|
-
blockChain = walletsShared.getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (
|
|
1054
|
-
var blockchainMeta =
|
|
1056
|
+
blockChain = walletsShared.getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (_ref6) {
|
|
1057
|
+
var blockchainMeta = _ref6[1];
|
|
1055
1058
|
return blockchainMeta;
|
|
1056
1059
|
}));
|
|
1057
1060
|
if (!(blockChain && blockChain.toLowerCase() === fromBlockChain.toLowerCase())) {
|
|
1058
|
-
_context2.next =
|
|
1061
|
+
_context2.next = 18;
|
|
1059
1062
|
break;
|
|
1060
1063
|
}
|
|
1061
1064
|
return _context2.abrupt("return", true);
|
|
1062
|
-
case
|
|
1065
|
+
case 18:
|
|
1063
1066
|
if (!(blockChain && blockChain.toLowerCase() !== fromBlockChain.toLowerCase())) {
|
|
1064
|
-
_context2.next =
|
|
1067
|
+
_context2.next = 20;
|
|
1065
1068
|
break;
|
|
1066
1069
|
}
|
|
1067
1070
|
return _context2.abrupt("return", false);
|
|
1068
|
-
case
|
|
1069
|
-
_context2.next =
|
|
1071
|
+
case 20:
|
|
1072
|
+
_context2.next = 23;
|
|
1070
1073
|
break;
|
|
1071
|
-
case
|
|
1074
|
+
case 22:
|
|
1072
1075
|
return _context2.abrupt("return", true);
|
|
1073
|
-
case
|
|
1074
|
-
_context2.next =
|
|
1076
|
+
case 23:
|
|
1077
|
+
_context2.next = 28;
|
|
1075
1078
|
break;
|
|
1076
|
-
case
|
|
1077
|
-
_context2.prev =
|
|
1078
|
-
_context2.t0 = _context2["catch"](
|
|
1079
|
+
case 25:
|
|
1080
|
+
_context2.prev = 25;
|
|
1081
|
+
_context2.t0 = _context2["catch"](6);
|
|
1079
1082
|
console.log(_context2.t0);
|
|
1080
|
-
case
|
|
1083
|
+
case 28:
|
|
1081
1084
|
return _context2.abrupt("return", false);
|
|
1082
|
-
case
|
|
1085
|
+
case 29:
|
|
1083
1086
|
return _context2.abrupt("return", true);
|
|
1084
|
-
case
|
|
1087
|
+
case 30:
|
|
1085
1088
|
case "end":
|
|
1086
1089
|
return _context2.stop();
|
|
1087
1090
|
}
|
|
1088
|
-
}, _callee2, null, [[
|
|
1091
|
+
}, _callee2, null, [[6, 25]]);
|
|
1089
1092
|
}));
|
|
1090
1093
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1091
1094
|
}
|
|
1092
|
-
var getCurrentAddressOf$1 = function getCurrentAddressOf(swap, step) {
|
|
1093
|
-
var _step$evmTransaction, _step$evmApprovalTran, _step$tronTransaction, _step$tronApprovalTra, _step$starknetTransac, _step$starknetApprova, _step$cosmosTransacti, _step$solanaTransacti, _step$transferTransac, _step$transferTransac2;
|
|
1094
|
-
var result = swap.wallets[((_step$evmTransaction = step.evmTransaction) == null ? void 0 : _step$evmTransaction.blockChain) || ''] || swap.wallets[((_step$evmApprovalTran = step.evmApprovalTransaction) == null ? void 0 : _step$evmApprovalTran.blockChain) || ''] || swap.wallets[((_step$tronTransaction = step.tronTransaction) == null ? void 0 : _step$tronTransaction.blockChain) || ''] || swap.wallets[((_step$tronApprovalTra = step.tronApprovalTransaction) == null ? void 0 : _step$tronApprovalTra.blockChain) || ''] || swap.wallets[((_step$starknetTransac = step.starknetTransaction) == null ? void 0 : _step$starknetTransac.blockChain) || ''] || swap.wallets[((_step$starknetApprova = step.starknetApprovalTransaction) == null ? void 0 : _step$starknetApprova.blockChain) || ''] || swap.wallets[((_step$cosmosTransacti = step.cosmosTransaction) == null ? void 0 : _step$cosmosTransacti.blockChain) || ''] || swap.wallets[((_step$solanaTransacti = step.solanaTransaction) == null ? void 0 : _step$solanaTransacti.blockChain) || ''] || ((_step$transferTransac = step.transferTransaction) != null && _step$transferTransac.fromWalletAddress ? {
|
|
1095
|
-
address: (_step$transferTransac2 = step.transferTransaction) == null ? void 0 : _step$transferTransac2.fromWalletAddress
|
|
1096
|
-
} : null) || null;
|
|
1097
|
-
if (result == null) throw PrettyError.WalletMissing();
|
|
1098
|
-
return result.address;
|
|
1099
|
-
};
|
|
1100
|
-
// Todo: Is it same with `getRequiredWallet`?
|
|
1101
|
-
function getRelatedWallet$1(swap, currentStep) {
|
|
1102
|
-
var walletAddress = getCurrentAddressOf$1(swap, currentStep);
|
|
1103
|
-
var walletKV = Object.keys(swap.wallets).map(function (k) {
|
|
1104
|
-
return {
|
|
1105
|
-
k: k,
|
|
1106
|
-
v: swap.wallets[k]
|
|
1107
|
-
};
|
|
1108
|
-
}).find(function (_ref6) {
|
|
1109
|
-
var v = _ref6.v;
|
|
1110
|
-
return v.address === walletAddress;
|
|
1111
|
-
}) || null;
|
|
1112
|
-
var blockchain = (walletKV == null ? void 0 : walletKV.k) || null;
|
|
1113
|
-
var wallet = (walletKV == null ? void 0 : walletKV.v) || null;
|
|
1114
|
-
var walletType = wallet == null ? void 0 : wallet.walletType;
|
|
1115
|
-
if (walletType === walletsShared.WalletType.UNKNOWN || wallet === null) throw PrettyError.AssertionFailed("Wallet for source " + blockchain + " not passed: walletType: " + walletType);
|
|
1116
|
-
return wallet;
|
|
1117
|
-
}
|
|
1118
1095
|
var isTxAlreadyCreated = function isTxAlreadyCreated(swap, step) {
|
|
1119
|
-
var _step$
|
|
1120
|
-
var result = swap.wallets[((_step$
|
|
1096
|
+
var _step$evmTransaction, _step$evmApprovalTran, _step$tronTransaction, _step$tronApprovalTra, _step$starknetTransac, _step$starknetApprova, _step$cosmosTransacti, _step$solanaTransacti, _step$transferTransac;
|
|
1097
|
+
var result = swap.wallets[((_step$evmTransaction = step.evmTransaction) == null ? void 0 : _step$evmTransaction.blockChain) || ''] || swap.wallets[((_step$evmApprovalTran = step.evmApprovalTransaction) == null ? void 0 : _step$evmApprovalTran.blockChain) || ''] || swap.wallets[((_step$tronTransaction = step.tronTransaction) == null ? void 0 : _step$tronTransaction.blockChain) || ''] || swap.wallets[((_step$tronApprovalTra = step.tronApprovalTransaction) == null ? void 0 : _step$tronApprovalTra.blockChain) || ''] || swap.wallets[((_step$starknetTransac = step.starknetTransaction) == null ? void 0 : _step$starknetTransac.blockChain) || ''] || swap.wallets[((_step$starknetApprova = step.starknetApprovalTransaction) == null ? void 0 : _step$starknetApprova.blockChain) || ''] || swap.wallets[((_step$cosmosTransacti = step.cosmosTransaction) == null ? void 0 : _step$cosmosTransacti.blockChain) || ''] || swap.wallets[((_step$solanaTransacti = step.solanaTransaction) == null ? void 0 : _step$solanaTransacti.blockChain) || ''] || ((_step$transferTransac = step.transferTransaction) == null ? void 0 : _step$transferTransac.fromWalletAddress) || null;
|
|
1121
1098
|
return result !== null;
|
|
1122
1099
|
};
|
|
1123
1100
|
function resetNetworkStatus(actions) {
|
|
@@ -1159,7 +1136,7 @@ function updateNetworkStatus(actions, data) {
|
|
|
1159
1136
|
}
|
|
1160
1137
|
/**
|
|
1161
1138
|
* Event handler for blocked tasks.
|
|
1162
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for
|
|
1139
|
+
* If a transcation execution is manually blocked (like for parallel or waiting for wallet),
|
|
1163
1140
|
* This function will be called by queue manager using `queue definition`.
|
|
1164
1141
|
*
|
|
1165
1142
|
* It checks if the required wallet is connected, unblock the queue to be run.
|
|
@@ -1168,11 +1145,14 @@ function onBlockForConnectWallet(event, meta) {
|
|
|
1168
1145
|
var context = meta.context,
|
|
1169
1146
|
queue = meta.queue;
|
|
1170
1147
|
var swap = queue.getStorage().swapDetails;
|
|
1171
|
-
|
|
1148
|
+
var _isRequiredWalletConn = isRequiredWalletConnected(swap, context.state),
|
|
1149
|
+
ok = _isRequiredWalletConn.ok,
|
|
1150
|
+
reason = _isRequiredWalletConn.reason;
|
|
1151
|
+
if (!ok) {
|
|
1172
1152
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1173
1153
|
var currentStep = getCurrentStep(swap);
|
|
1174
1154
|
context.notifier({
|
|
1175
|
-
eventType: 'waiting_for_connecting_wallet',
|
|
1155
|
+
eventType: reason === 'account_miss_match' ? 'waiting_for_change_wallet_account' : 'waiting_for_connecting_wallet',
|
|
1176
1156
|
swap: swap,
|
|
1177
1157
|
step: currentStep
|
|
1178
1158
|
});
|
|
@@ -1224,7 +1204,7 @@ function onBlockForChangeNetwork(_event, meta) {
|
|
|
1224
1204
|
}
|
|
1225
1205
|
/**
|
|
1226
1206
|
* Event handler for blocked tasks. (Parallel mode)
|
|
1227
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for walle),
|
|
1207
|
+
* If a transcation execution flow is manually blocked (like for parallel or waiting for walle),
|
|
1228
1208
|
* This function will be called by queue manager using `queue definition`.
|
|
1229
1209
|
*
|
|
1230
1210
|
* It checks the blocked tasks, if there is no active `claimed` queue, try to give it to the best candidate.
|
|
@@ -1233,7 +1213,8 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1233
1213
|
var getBlockedTasks = meta.getBlockedTasks,
|
|
1234
1214
|
forceExecute = meta.forceExecute,
|
|
1235
1215
|
queue = meta.queue,
|
|
1236
|
-
manager = meta.manager
|
|
1216
|
+
manager = meta.manager,
|
|
1217
|
+
context = meta.context;
|
|
1237
1218
|
var _claimQueue = claimQueue(),
|
|
1238
1219
|
setClaimer = _claimQueue.setClaimer,
|
|
1239
1220
|
claimedBy = _claimQueue.claimedBy,
|
|
@@ -1247,12 +1228,14 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1247
1228
|
}
|
|
1248
1229
|
var claimerId = claimedBy();
|
|
1249
1230
|
var isClaimedByAnyQueue = !!claimerId;
|
|
1231
|
+
if (claimerId === queue.id) return;
|
|
1250
1232
|
// Check if any queue `claimed` before, if yes, we don't should do anything.
|
|
1251
1233
|
if (isClaimedByAnyQueue) {
|
|
1252
1234
|
// We need to keep the latest swap messages
|
|
1253
1235
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1254
1236
|
getStorage: queue.getStorage.bind(queue),
|
|
1255
|
-
setStorage: queue.setStorage.bind(queue)
|
|
1237
|
+
setStorage: queue.setStorage.bind(queue),
|
|
1238
|
+
notifier: context.notifier
|
|
1256
1239
|
});
|
|
1257
1240
|
return;
|
|
1258
1241
|
}
|
|
@@ -1277,7 +1260,7 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1277
1260
|
resetClaimedBy: function resetClaimedBy() {
|
|
1278
1261
|
reset();
|
|
1279
1262
|
// TODO: Use key generator
|
|
1280
|
-
retryOn(type + "-" + network + "
|
|
1263
|
+
retryOn(type + "-" + network + ":" + address, context.notifier, manager);
|
|
1281
1264
|
}
|
|
1282
1265
|
});
|
|
1283
1266
|
}
|
|
@@ -1286,16 +1269,28 @@ function isRequiredWalletConnected(swap, getState) {
|
|
|
1286
1269
|
type = _getRequiredWallet4.type,
|
|
1287
1270
|
address = _getRequiredWallet4.address;
|
|
1288
1271
|
if (!type || !address) {
|
|
1289
|
-
return
|
|
1272
|
+
return {
|
|
1273
|
+
ok: false,
|
|
1274
|
+
reason: 'not_connected'
|
|
1275
|
+
};
|
|
1290
1276
|
}
|
|
1291
1277
|
var walletState = getState(type);
|
|
1292
|
-
var accounts = walletState.accounts
|
|
1278
|
+
var accounts = walletState.accounts,
|
|
1279
|
+
connected = walletState.connected;
|
|
1293
1280
|
var connectedAccounts = accounts || [];
|
|
1294
|
-
|
|
1281
|
+
if (!connected) return {
|
|
1282
|
+
ok: false,
|
|
1283
|
+
reason: 'not_connected'
|
|
1284
|
+
};
|
|
1285
|
+
var matched = connectedAccounts.some(function (account) {
|
|
1295
1286
|
var _readAccountAddress = walletsCore.readAccountAddress(account),
|
|
1296
1287
|
accountAddress = _readAccountAddress.address;
|
|
1297
1288
|
return address === accountAddress;
|
|
1298
1289
|
});
|
|
1290
|
+
return {
|
|
1291
|
+
ok: matched,
|
|
1292
|
+
reason: 'account_miss_match'
|
|
1293
|
+
};
|
|
1299
1294
|
}
|
|
1300
1295
|
function singTransaction(actions) {
|
|
1301
1296
|
var getStorage = actions.getStorage,
|
|
@@ -1319,10 +1314,11 @@ function singTransaction(actions) {
|
|
|
1319
1314
|
tronApprovalTransaction = currentStep.tronApprovalTransaction,
|
|
1320
1315
|
starknetTransaction = currentStep.starknetTransaction,
|
|
1321
1316
|
starknetApprovalTransaction = currentStep.starknetApprovalTransaction;
|
|
1322
|
-
var sourceWallet = getRelatedWallet
|
|
1323
|
-
var walletAddress = getCurrentAddressOf
|
|
1317
|
+
var sourceWallet = getRelatedWallet(swap, currentStep);
|
|
1318
|
+
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
1324
1319
|
var walletSigners = getSigners(sourceWallet.walletType);
|
|
1325
1320
|
var onFinish = function onFinish() {
|
|
1321
|
+
// TODO resetClaimedBy is undefined here
|
|
1326
1322
|
if (actions.context.resetClaimedBy) {
|
|
1327
1323
|
actions.context.resetClaimedBy();
|
|
1328
1324
|
}
|
|
@@ -1340,27 +1336,18 @@ function singTransaction(actions) {
|
|
|
1340
1336
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1341
1337
|
});
|
|
1342
1338
|
notifier(_extends({
|
|
1343
|
-
eventType: '
|
|
1339
|
+
eventType: 'confirm_approve_contract'
|
|
1344
1340
|
}, updateResult));
|
|
1345
1341
|
// Execute transaction
|
|
1346
1342
|
walletSigners.getSigner(rangoSdk.TransactionType.EVM).signAndSendTx(evmApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1347
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1348
1343
|
var approveUrl = getEvmApproveUrl(hash, getCurrentBlockchainOf(swap, currentStep), meta.evmBasedChains);
|
|
1349
|
-
|
|
1350
|
-
url: approveUrl,
|
|
1351
|
-
description: "approve"
|
|
1352
|
-
}]);
|
|
1353
|
-
// `currentStep` has been mutated, let's update storage.
|
|
1354
|
-
setStorage(_extends({}, getStorage(), {
|
|
1355
|
-
swapDetails: swap
|
|
1356
|
-
}));
|
|
1344
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1357
1345
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1358
1346
|
next();
|
|
1359
1347
|
onFinish();
|
|
1360
1348
|
}, function (error) {
|
|
1361
1349
|
var _error$root, _error$root2, _error$root3;
|
|
1362
1350
|
if (swap.status === 'failed') return;
|
|
1363
|
-
console.debug('error in approving', error);
|
|
1364
1351
|
var _prettifyErrorMessage = prettifyErrorMessage(error),
|
|
1365
1352
|
extraMessage = _prettifyErrorMessage.extraMessage,
|
|
1366
1353
|
extraMessageDetail = _prettifyErrorMessage.extraMessageDetail,
|
|
@@ -1395,27 +1382,18 @@ function singTransaction(actions) {
|
|
|
1395
1382
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1396
1383
|
});
|
|
1397
1384
|
notifier(_extends({
|
|
1398
|
-
eventType: '
|
|
1385
|
+
eventType: 'confirm_approve_contract'
|
|
1399
1386
|
}, _updateResult));
|
|
1400
1387
|
// Execute transaction
|
|
1401
1388
|
walletSigners.getSigner(rangoSdk.TransactionType.TRON).signAndSendTx(tronApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1402
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1403
1389
|
var approveUrl = getTronApproveUrl(hash);
|
|
1404
|
-
|
|
1405
|
-
url: approveUrl,
|
|
1406
|
-
description: "approve"
|
|
1407
|
-
}]);
|
|
1408
|
-
// `currentStep` has been mutated, let's update storage.
|
|
1409
|
-
setStorage(_extends({}, getStorage(), {
|
|
1410
|
-
swapDetails: swap
|
|
1411
|
-
}));
|
|
1390
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1412
1391
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1413
1392
|
next();
|
|
1414
1393
|
onFinish();
|
|
1415
1394
|
}, function (error) {
|
|
1416
1395
|
var _error$root4, _error$root5, _error$root6;
|
|
1417
1396
|
if (swap.status === 'failed') return;
|
|
1418
|
-
console.debug('error in approving', error);
|
|
1419
1397
|
var _prettifyErrorMessage2 = prettifyErrorMessage(error),
|
|
1420
1398
|
extraMessage = _prettifyErrorMessage2.extraMessage,
|
|
1421
1399
|
extraMessageDetail = _prettifyErrorMessage2.extraMessageDetail,
|
|
@@ -1450,27 +1428,18 @@ function singTransaction(actions) {
|
|
|
1450
1428
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1451
1429
|
});
|
|
1452
1430
|
notifier(_extends({
|
|
1453
|
-
eventType: '
|
|
1431
|
+
eventType: 'confirm_approve_contract'
|
|
1454
1432
|
}, _updateResult2));
|
|
1455
1433
|
// Execute transaction
|
|
1456
1434
|
walletSigners.getSigner(rangoSdk.TransactionType.STARKNET).signAndSendTx(starknetApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1457
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1458
1435
|
var approveUrl = getStarknetApproveUrl(hash);
|
|
1459
|
-
|
|
1460
|
-
url: approveUrl,
|
|
1461
|
-
description: "approve"
|
|
1462
|
-
}]);
|
|
1463
|
-
// `currentStep` has been mutated, let's update storage.
|
|
1464
|
-
setStorage(_extends({}, getStorage(), {
|
|
1465
|
-
swapDetails: swap
|
|
1466
|
-
}));
|
|
1436
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1467
1437
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1468
1438
|
next();
|
|
1469
1439
|
onFinish();
|
|
1470
1440
|
}, function (error) {
|
|
1471
1441
|
var _error$root7, _error$root8, _error$root9;
|
|
1472
1442
|
if (swap.status === 'failed') return;
|
|
1473
|
-
console.debug('error in approving', error);
|
|
1474
1443
|
var _prettifyErrorMessage3 = prettifyErrorMessage(error),
|
|
1475
1444
|
extraMessage = _prettifyErrorMessage3.extraMessage,
|
|
1476
1445
|
extraMessageDetail = _prettifyErrorMessage3.extraMessageDetail,
|
|
@@ -1496,17 +1465,20 @@ function singTransaction(actions) {
|
|
|
1496
1465
|
return;
|
|
1497
1466
|
}
|
|
1498
1467
|
var hasAlreadyProceededToSign = typeof swap.hasAlreadyProceededToSign === 'boolean';
|
|
1468
|
+
var nextStepStatusBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'failed' : 'running';
|
|
1469
|
+
var errorCodeBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'TX_EXPIRED' : null;
|
|
1499
1470
|
var executeMessage = hasAlreadyProceededToSign ? 'Transaction is expired. Please try again' : 'executing transaction';
|
|
1500
1471
|
var executeDetails = "" + (sourceWallet.walletType === walletsShared.WalletType.WALLET_CONNECT ? 'Check your mobile phone' : '');
|
|
1501
1472
|
if (!!transferTransaction) {
|
|
1502
1473
|
var _updateResult3 = updateSwapStatus({
|
|
1503
1474
|
getStorage: getStorage,
|
|
1504
1475
|
setStorage: setStorage,
|
|
1505
|
-
nextStepStatus:
|
|
1506
|
-
nextStatus:
|
|
1476
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1477
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1507
1478
|
message: executeMessage,
|
|
1508
1479
|
details: executeDetails,
|
|
1509
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1480
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1481
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1510
1482
|
});
|
|
1511
1483
|
var notification = getSwapNotitfication('confirm_transfer', _updateResult3);
|
|
1512
1484
|
notifier(notification);
|
|
@@ -1515,7 +1487,7 @@ function singTransaction(actions) {
|
|
|
1515
1487
|
onFinish();
|
|
1516
1488
|
} else {
|
|
1517
1489
|
walletSigners.getSigner(rangoSdk.TransactionType.TRANSFER).signAndSendTx(transferTransaction, walletAddress, null).then(function (txId) {
|
|
1518
|
-
setStepTransactionIds(actions, txId, '
|
|
1490
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1519
1491
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1520
1492
|
next();
|
|
1521
1493
|
onFinish();
|
|
@@ -1545,11 +1517,12 @@ function singTransaction(actions) {
|
|
|
1545
1517
|
var _updateResult4 = updateSwapStatus({
|
|
1546
1518
|
getStorage: getStorage,
|
|
1547
1519
|
setStorage: setStorage,
|
|
1548
|
-
nextStepStatus:
|
|
1549
|
-
nextStatus:
|
|
1520
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1521
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1550
1522
|
message: executeMessage,
|
|
1551
1523
|
details: executeDetails,
|
|
1552
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1524
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1525
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1553
1526
|
});
|
|
1554
1527
|
var _notification = getSwapNotitfication('calling_smart_contract', _updateResult4);
|
|
1555
1528
|
notifier(_notification);
|
|
@@ -1558,7 +1531,7 @@ function singTransaction(actions) {
|
|
|
1558
1531
|
onFinish();
|
|
1559
1532
|
} else {
|
|
1560
1533
|
walletSigners.getSigner(rangoSdk.TransactionType.EVM).signAndSendTx(evmTransaction, walletAddress, null).then(function (id) {
|
|
1561
|
-
setStepTransactionIds(actions, id, '
|
|
1534
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1562
1535
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1563
1536
|
next();
|
|
1564
1537
|
onFinish();
|
|
@@ -1592,11 +1565,12 @@ function singTransaction(actions) {
|
|
|
1592
1565
|
var _updateResult5 = updateSwapStatus({
|
|
1593
1566
|
getStorage: getStorage,
|
|
1594
1567
|
setStorage: setStorage,
|
|
1595
|
-
nextStepStatus:
|
|
1596
|
-
nextStatus:
|
|
1568
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1569
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1597
1570
|
message: executeMessage,
|
|
1598
1571
|
details: executeDetails,
|
|
1599
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1572
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1573
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1600
1574
|
});
|
|
1601
1575
|
var _notification2 = getSwapNotitfication('calling_smart_contract', _updateResult5);
|
|
1602
1576
|
notifier(_notification2);
|
|
@@ -1631,7 +1605,7 @@ function singTransaction(actions) {
|
|
|
1631
1605
|
walletSigners.getSigner(rangoSdk.TransactionType.COSMOS).signAndSendTx(cosmosTransaction, walletAddress, null).then(
|
|
1632
1606
|
// todo
|
|
1633
1607
|
function (id) {
|
|
1634
|
-
setStepTransactionIds(actions, id, '
|
|
1608
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1635
1609
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1636
1610
|
next();
|
|
1637
1611
|
onFinish();
|
|
@@ -1661,11 +1635,12 @@ function singTransaction(actions) {
|
|
|
1661
1635
|
var _updateResult7 = updateSwapStatus({
|
|
1662
1636
|
getStorage: getStorage,
|
|
1663
1637
|
setStorage: setStorage,
|
|
1664
|
-
nextStepStatus:
|
|
1665
|
-
nextStatus:
|
|
1638
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1639
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1666
1640
|
message: executeMessage,
|
|
1667
1641
|
details: executeDetails,
|
|
1668
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1642
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1643
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1669
1644
|
});
|
|
1670
1645
|
var _notification3 = getSwapNotitfication('calling_smart_contract', _updateResult7);
|
|
1671
1646
|
notifier(_notification3);
|
|
@@ -1675,7 +1650,7 @@ function singTransaction(actions) {
|
|
|
1675
1650
|
} else {
|
|
1676
1651
|
var tx = solanaTransaction;
|
|
1677
1652
|
walletSigners.getSigner(rangoSdk.TransactionType.SOLANA).signAndSendTx(tx, walletAddress, null).then(function (txId) {
|
|
1678
|
-
setStepTransactionIds(actions, txId, '
|
|
1653
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1679
1654
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1680
1655
|
next();
|
|
1681
1656
|
onFinish();
|
|
@@ -1705,11 +1680,12 @@ function singTransaction(actions) {
|
|
|
1705
1680
|
var _updateResult8 = updateSwapStatus({
|
|
1706
1681
|
getStorage: getStorage,
|
|
1707
1682
|
setStorage: setStorage,
|
|
1708
|
-
nextStepStatus:
|
|
1709
|
-
nextStatus:
|
|
1683
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1684
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1710
1685
|
message: executeMessage,
|
|
1711
1686
|
details: executeDetails,
|
|
1712
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1687
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1688
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1713
1689
|
});
|
|
1714
1690
|
var _notification4 = getSwapNotitfication('calling_smart_contract', _updateResult8);
|
|
1715
1691
|
notifier(_notification4);
|
|
@@ -1718,7 +1694,7 @@ function singTransaction(actions) {
|
|
|
1718
1694
|
onFinish();
|
|
1719
1695
|
} else {
|
|
1720
1696
|
walletSigners.getSigner(rangoSdk.TransactionType.TRON).signAndSendTx(tronTransaction, walletAddress, null).then(function (id) {
|
|
1721
|
-
setStepTransactionIds(actions, id, '
|
|
1697
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1722
1698
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1723
1699
|
next();
|
|
1724
1700
|
onFinish();
|
|
@@ -1752,11 +1728,12 @@ function singTransaction(actions) {
|
|
|
1752
1728
|
var _updateResult9 = updateSwapStatus({
|
|
1753
1729
|
getStorage: getStorage,
|
|
1754
1730
|
setStorage: setStorage,
|
|
1755
|
-
nextStepStatus:
|
|
1756
|
-
nextStatus:
|
|
1731
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1732
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1757
1733
|
message: executeMessage,
|
|
1758
1734
|
details: executeDetails,
|
|
1759
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1735
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1736
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1760
1737
|
});
|
|
1761
1738
|
var _notification5 = getSwapNotitfication('calling_smart_contract', _updateResult9);
|
|
1762
1739
|
notifier(_notification5);
|
|
@@ -1765,7 +1742,7 @@ function singTransaction(actions) {
|
|
|
1765
1742
|
onFinish();
|
|
1766
1743
|
} else {
|
|
1767
1744
|
walletSigners.getSigner(rangoSdk.TransactionType.STARKNET).signAndSendTx(starknetTransaction, walletAddress, null).then(function (id) {
|
|
1768
|
-
setStepTransactionIds(actions, id, '
|
|
1745
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1769
1746
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1770
1747
|
next();
|
|
1771
1748
|
onFinish();
|
|
@@ -1819,7 +1796,9 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1819
1796
|
var hasWaitingForConnect = Object.keys(q.list.state.tasks).some(function (taskId) {
|
|
1820
1797
|
var _task$blockedFor;
|
|
1821
1798
|
var task = q.list.state.tasks[taskId];
|
|
1822
|
-
return task.status === queueManagerCore.Status.BLOCKED &&
|
|
1799
|
+
return task.status === queueManagerCore.Status.BLOCKED &&
|
|
1800
|
+
// TODO double check later
|
|
1801
|
+
[BlockReason.WAIT_FOR_CONNECT_WALLET].includes((_task$blockedFor = task.blockedFor) == null ? void 0 : _task$blockedFor.reason);
|
|
1823
1802
|
});
|
|
1824
1803
|
if (currentStepRequiredWallet === wallet && hasWaitingForConnect && getCurrentBlockchainOfOrNull(swap, currentStep) != network) {
|
|
1825
1804
|
var queueInstance = q.list;
|
|
@@ -1833,10 +1812,17 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1833
1812
|
},
|
|
1834
1813
|
silent: true
|
|
1835
1814
|
});
|
|
1836
|
-
markRunningSwapAsSwitchingNetwork({
|
|
1815
|
+
var result = markRunningSwapAsSwitchingNetwork({
|
|
1837
1816
|
getStorage: queueInstance.getStorage.bind(queueInstance),
|
|
1838
1817
|
setStorage: queueInstance.setStorage.bind(queueInstance)
|
|
1839
1818
|
});
|
|
1819
|
+
if (result) {
|
|
1820
|
+
params == null ? void 0 : params.notifier({
|
|
1821
|
+
eventType: 'waiting_for_network_change',
|
|
1822
|
+
swap: result.swap,
|
|
1823
|
+
step: result.step
|
|
1824
|
+
});
|
|
1825
|
+
}
|
|
1840
1826
|
}
|
|
1841
1827
|
}
|
|
1842
1828
|
}
|
|
@@ -1867,6 +1853,49 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1867
1853
|
}
|
|
1868
1854
|
});
|
|
1869
1855
|
}
|
|
1856
|
+
/**
|
|
1857
|
+
* Get list of all running swaps
|
|
1858
|
+
*
|
|
1859
|
+
* @param manager
|
|
1860
|
+
* @returns list of pending swaps
|
|
1861
|
+
*/
|
|
1862
|
+
function getRunningSwaps(manager) {
|
|
1863
|
+
var queues = (manager == null ? void 0 : manager.getAll()) || new Map();
|
|
1864
|
+
var result = [];
|
|
1865
|
+
queues.forEach(function (q) {
|
|
1866
|
+
// retry only on affected queues
|
|
1867
|
+
var queueStorage = q.list.getStorage();
|
|
1868
|
+
var swap = queueStorage == null ? void 0 : queueStorage.swapDetails;
|
|
1869
|
+
if (!swap || swap.status !== 'running') return;
|
|
1870
|
+
result.push(swap);
|
|
1871
|
+
});
|
|
1872
|
+
return result;
|
|
1873
|
+
}
|
|
1874
|
+
/**
|
|
1875
|
+
*
|
|
1876
|
+
* Trying to reset notifications for pending swaps to correct message on page load.
|
|
1877
|
+
* We could remove this after supporting auto connect for wallets.
|
|
1878
|
+
*
|
|
1879
|
+
* @param swaps
|
|
1880
|
+
* @param notifier
|
|
1881
|
+
* @returns
|
|
1882
|
+
*/
|
|
1883
|
+
function resetRunningSwapNotifsOnPageLoad(runningSwaps, notifier) {
|
|
1884
|
+
runningSwaps.forEach(function (swap) {
|
|
1885
|
+
var currentStep = getCurrentStep(swap);
|
|
1886
|
+
var eventType;
|
|
1887
|
+
if ((currentStep == null ? void 0 : currentStep.networkStatus) === exports.PendingSwapNetworkStatus.WaitingForQueue) eventType = 'waiting_for_queue';else if ((swap == null ? void 0 : swap.status) === 'running') {
|
|
1888
|
+
eventType = 'waiting_for_connecting_wallet';
|
|
1889
|
+
}
|
|
1890
|
+
if (!!eventType && !!notifier) {
|
|
1891
|
+
notifier({
|
|
1892
|
+
eventType: eventType,
|
|
1893
|
+
swap: swap,
|
|
1894
|
+
step: currentStep
|
|
1895
|
+
});
|
|
1896
|
+
}
|
|
1897
|
+
});
|
|
1898
|
+
}
|
|
1870
1899
|
/**
|
|
1871
1900
|
*
|
|
1872
1901
|
* Try to run blocked tasks by wallet and network name.
|
|
@@ -1878,7 +1907,7 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1878
1907
|
* @param manager
|
|
1879
1908
|
* @returns
|
|
1880
1909
|
*/
|
|
1881
|
-
function retryOn(wallet_network, manager, options) {
|
|
1910
|
+
function retryOn(wallet_network, notifier, manager, options) {
|
|
1882
1911
|
var _finalQueueToBeRun;
|
|
1883
1912
|
if (options === void 0) {
|
|
1884
1913
|
options = {
|
|
@@ -1902,7 +1931,7 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1902
1931
|
var currentStep = getCurrentStep(swap);
|
|
1903
1932
|
if (currentStep) {
|
|
1904
1933
|
var _queueStorage$swapDet2, _queueStorage$swapDet3;
|
|
1905
|
-
if (currentStep
|
|
1934
|
+
if (getCurrentBlockchainOfOrNull(swap, currentStep) == network && (queueStorage == null ? void 0 : (_queueStorage$swapDet2 = queueStorage.swapDetails.wallets[network]) == null ? void 0 : _queueStorage$swapDet2.walletType) === wallet) {
|
|
1906
1935
|
walletAndNetworkMatched.push(q.list);
|
|
1907
1936
|
} else if ((queueStorage == null ? void 0 : (_queueStorage$swapDet3 = queueStorage.swapDetails.wallets[currentStep.fromBlockchain]) == null ? void 0 : _queueStorage$swapDet3.walletType) === wallet) {
|
|
1908
1937
|
onlyWalletMatched.push(q.list);
|
|
@@ -1911,7 +1940,6 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1911
1940
|
}
|
|
1912
1941
|
}
|
|
1913
1942
|
});
|
|
1914
|
-
// const isWaitingForConnectWallet = (status: Status) =>
|
|
1915
1943
|
var finalQueueToBeRun = undefined;
|
|
1916
1944
|
if (walletAndNetworkMatched.length > 0) {
|
|
1917
1945
|
finalQueueToBeRun = walletAndNetworkMatched[0];
|
|
@@ -1920,7 +1948,8 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1920
1948
|
var currentQueue = walletAndNetworkMatched[i];
|
|
1921
1949
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1922
1950
|
getStorage: currentQueue.getStorage.bind(currentQueue),
|
|
1923
|
-
setStorage: currentQueue.setStorage.bind(currentQueue)
|
|
1951
|
+
setStorage: currentQueue.setStorage.bind(currentQueue),
|
|
1952
|
+
notifier: notifier
|
|
1924
1953
|
});
|
|
1925
1954
|
}
|
|
1926
1955
|
}
|
|
@@ -1973,8 +2002,20 @@ function _throwOnOK() {
|
|
|
1973
2002
|
}));
|
|
1974
2003
|
return _throwOnOK.apply(this, arguments);
|
|
1975
2004
|
}
|
|
2005
|
+
function cancelSwap(swap) {
|
|
2006
|
+
swap.actions.cancel();
|
|
2007
|
+
return updateSwapStatus({
|
|
2008
|
+
getStorage: swap.actions.getStorage,
|
|
2009
|
+
setStorage: swap.actions.setStorage,
|
|
2010
|
+
message: 'Swap canceled by user.',
|
|
2011
|
+
details: "Warning: If you've already signed and sent a transaction, it won't be affected, but next swap steps will not be executed.",
|
|
2012
|
+
nextStatus: 'failed',
|
|
2013
|
+
nextStepStatus: 'failed',
|
|
2014
|
+
errorCode: 'USER_CANCEL'
|
|
2015
|
+
});
|
|
2016
|
+
}
|
|
1976
2017
|
|
|
1977
|
-
var INTERVAL_FOR_CHECK =
|
|
2018
|
+
var INTERVAL_FOR_CHECK = 3000;
|
|
1978
2019
|
/**
|
|
1979
2020
|
* Subscribe to status of swap transaction by checking from server periodically.
|
|
1980
2021
|
* After getting the status, notify the user and schedule `SCHEDULE_NEXT_STEP`.
|
|
@@ -2021,7 +2062,7 @@ function _checkTransactionStatus() {
|
|
|
2021
2062
|
outputAmount = ((_status = status) == null ? void 0 : _status.outputAmount) || (!!currentStep.outputAmount ? currentStep.outputAmount : null);
|
|
2022
2063
|
prevOutputAmount = currentStep.outputAmount;
|
|
2023
2064
|
swap.extraMessage = ((_status2 = status) == null ? void 0 : _status2.extraMessage) || swap.extraMessage;
|
|
2024
|
-
swap.extraMessageSeverity = MessageSeverity.info;
|
|
2065
|
+
swap.extraMessageSeverity = exports.MessageSeverity.info;
|
|
2025
2066
|
swap.extraMessageDetail = '';
|
|
2026
2067
|
currentStep.status = ((_status3 = status) == null ? void 0 : _status3.status) || currentStep.status;
|
|
2027
2068
|
currentStep.diagnosisUrl = ((_status4 = status) == null ? void 0 : _status4.diagnosisUrl) || currentStep.diagnosisUrl || null;
|
|
@@ -2032,6 +2073,7 @@ function _checkTransactionStatus() {
|
|
|
2032
2073
|
if (!!newTransaction) {
|
|
2033
2074
|
currentStep.status = 'created';
|
|
2034
2075
|
currentStep.executedTransactionId = null;
|
|
2076
|
+
currentStep.executedTransactionTime = null;
|
|
2035
2077
|
currentStep.transferTransaction = null;
|
|
2036
2078
|
currentStep.cosmosTransaction = null;
|
|
2037
2079
|
currentStep.evmTransaction = null;
|
|
@@ -2041,7 +2083,6 @@ function _checkTransactionStatus() {
|
|
|
2041
2083
|
currentStep.starknetTransaction = null;
|
|
2042
2084
|
currentStep.tronApprovalTransaction = null;
|
|
2043
2085
|
currentStep.tronTransaction = null;
|
|
2044
|
-
currentStep.fromBlockchain = newTransaction.blockChain;
|
|
2045
2086
|
if (isEvmTransaction(newTransaction)) {
|
|
2046
2087
|
if (newTransaction.isApprovalTx) currentStep.evmApprovalTransaction = newTransaction;else currentStep.evmTransaction = newTransaction;
|
|
2047
2088
|
} else if (isCosmosTransaction(newTransaction)) {
|
|
@@ -2060,11 +2101,22 @@ function _checkTransactionStatus() {
|
|
|
2060
2101
|
eventType: 'step_completed_with_output',
|
|
2061
2102
|
swap: swap,
|
|
2062
2103
|
step: currentStep
|
|
2063
|
-
});
|
|
2104
|
+
});else if (prevOutputAmount === null && outputAmount === null) {
|
|
2105
|
+
// it is needed to set notification after reloading the page
|
|
2106
|
+
context.notifier({
|
|
2107
|
+
eventType: 'check_tx_status',
|
|
2108
|
+
swap: swap,
|
|
2109
|
+
step: currentStep
|
|
2110
|
+
});
|
|
2111
|
+
}
|
|
2064
2112
|
if (currentStep.status === 'success') {
|
|
2065
2113
|
nextStep = getNextStep(swap, currentStep);
|
|
2066
2114
|
swap.extraMessageDetail = '';
|
|
2067
2115
|
swap.extraMessage = !!nextStep ? "starting next step: " + nextStep.swapperId + ": " + nextStep.fromBlockchain + " -> " + nextStep.toBlockchain : '';
|
|
2116
|
+
} else if (currentStep.status === 'failed') {
|
|
2117
|
+
swap.extraMessage = 'Transaction failed in blockchain';
|
|
2118
|
+
swap.extraMessageSeverity = exports.MessageSeverity.error;
|
|
2119
|
+
swap.extraMessageDetail = '';
|
|
2068
2120
|
}
|
|
2069
2121
|
// Sync data with storage
|
|
2070
2122
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2104,38 +2156,70 @@ function checkApprovalStatus(_x2) {
|
|
|
2104
2156
|
*/
|
|
2105
2157
|
function _checkApprovalStatus() {
|
|
2106
2158
|
_checkApprovalStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
|
|
2107
|
-
var getStorage, setStorage, next, schedule, retry, context, swap, currentStep, isApproved, response;
|
|
2159
|
+
var getStorage, setStorage, next, schedule, retry, failed, context, swap, currentStep, isApproved, response, updateResult;
|
|
2108
2160
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
2109
2161
|
while (1) switch (_context2.prev = _context2.next) {
|
|
2110
2162
|
case 0:
|
|
2111
|
-
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, context = _ref2.context;
|
|
2112
|
-
swap = getStorage().swapDetails; //
|
|
2163
|
+
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, failed = _ref2.failed, context = _ref2.context;
|
|
2164
|
+
swap = getStorage().swapDetails; // double check it after fixing parallel
|
|
2165
|
+
// const onFinish = () => {
|
|
2166
|
+
// // TODO resetClaimedBy is undefined here
|
|
2167
|
+
// if (context.resetClaimedBy) {
|
|
2168
|
+
// context.resetClaimedBy();
|
|
2169
|
+
// }
|
|
2170
|
+
// };
|
|
2171
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
2113
2172
|
currentStep = getCurrentStep(swap);
|
|
2114
2173
|
isApproved = false;
|
|
2115
2174
|
_context2.prev = 4;
|
|
2116
2175
|
_context2.next = 7;
|
|
2117
|
-
return httpService.checkApproval(swap.requestId);
|
|
2176
|
+
return httpService.checkApproval(swap.requestId, currentStep.executedTransactionId || '');
|
|
2118
2177
|
case 7:
|
|
2119
2178
|
response = _context2.sent;
|
|
2120
2179
|
isApproved = response.isApproved;
|
|
2180
|
+
if (!isApproved && response.txStatus === 'failed') {
|
|
2181
|
+
// approve transaction failed on
|
|
2182
|
+
// we should fail the whole swap
|
|
2183
|
+
updateResult = updateSwapStatus({
|
|
2184
|
+
getStorage: getStorage,
|
|
2185
|
+
setStorage: setStorage,
|
|
2186
|
+
nextStatus: 'failed',
|
|
2187
|
+
nextStepStatus: 'failed',
|
|
2188
|
+
errorCode: 'SEND_TX_FAILED',
|
|
2189
|
+
message: 'Approve transaction failed',
|
|
2190
|
+
details: 'Smart contract approval failed in blockchain.'
|
|
2191
|
+
});
|
|
2192
|
+
context.notifier(_extends({
|
|
2193
|
+
eventType: 'smart_contract_call_failed'
|
|
2194
|
+
}, updateResult));
|
|
2195
|
+
failed();
|
|
2196
|
+
// onFinish();
|
|
2197
|
+
} else if (!isApproved) {
|
|
2198
|
+
// it is needed to set notification after reloading the page
|
|
2199
|
+
context.notifier({
|
|
2200
|
+
eventType: 'check_approve_tx_status',
|
|
2201
|
+
swap: swap,
|
|
2202
|
+
step: currentStep
|
|
2203
|
+
});
|
|
2204
|
+
}
|
|
2121
2205
|
_context2.next = 15;
|
|
2122
2206
|
break;
|
|
2123
|
-
case
|
|
2124
|
-
_context2.prev =
|
|
2207
|
+
case 12:
|
|
2208
|
+
_context2.prev = 12;
|
|
2125
2209
|
_context2.t0 = _context2["catch"](4);
|
|
2126
|
-
console.error('Failed to check getApprovedAmount', _context2.t0);
|
|
2127
2210
|
isApproved = false;
|
|
2128
2211
|
case 15:
|
|
2129
2212
|
if (!isApproved) {
|
|
2130
|
-
_context2.next =
|
|
2213
|
+
_context2.next = 31;
|
|
2131
2214
|
break;
|
|
2132
2215
|
}
|
|
2133
2216
|
currentStep.status = 'approved';
|
|
2134
2217
|
swap.extraMessage = "Spending " + currentStep.fromSymbol + " approved successfully.";
|
|
2135
2218
|
swap.extraMessageDetail = null;
|
|
2136
|
-
swap.extraMessageSeverity = MessageSeverity.success;
|
|
2219
|
+
swap.extraMessageSeverity = exports.MessageSeverity.success;
|
|
2137
2220
|
currentStep.evmApprovalTransaction = null;
|
|
2138
2221
|
currentStep.executedTransactionId = null;
|
|
2222
|
+
currentStep.executedTransactionTime = null;
|
|
2139
2223
|
currentStep.starknetApprovalTransaction = null;
|
|
2140
2224
|
currentStep.tronApprovalTransaction = null;
|
|
2141
2225
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2148,18 +2232,18 @@ function _checkApprovalStatus() {
|
|
|
2148
2232
|
});
|
|
2149
2233
|
schedule(SwapActionTypes.SCHEDULE_NEXT_STEP);
|
|
2150
2234
|
next();
|
|
2151
|
-
_context2.next =
|
|
2235
|
+
_context2.next = 34;
|
|
2152
2236
|
break;
|
|
2153
|
-
case
|
|
2154
|
-
_context2.next =
|
|
2237
|
+
case 31:
|
|
2238
|
+
_context2.next = 33;
|
|
2155
2239
|
return delay(2000);
|
|
2156
|
-
case 32:
|
|
2157
|
-
retry();
|
|
2158
2240
|
case 33:
|
|
2241
|
+
retry();
|
|
2242
|
+
case 34:
|
|
2159
2243
|
case "end":
|
|
2160
2244
|
return _context2.stop();
|
|
2161
2245
|
}
|
|
2162
|
-
}, _callee2, null, [[4,
|
|
2246
|
+
}, _callee2, null, [[4, 12]]);
|
|
2163
2247
|
}));
|
|
2164
2248
|
return _checkApprovalStatus.apply(this, arguments);
|
|
2165
2249
|
}
|
|
@@ -2278,7 +2362,7 @@ function _createTransaction() {
|
|
|
2278
2362
|
nextStepStatus: 'failed',
|
|
2279
2363
|
message: extraMessage,
|
|
2280
2364
|
details: extraMessageDetail,
|
|
2281
|
-
errorCode:
|
|
2365
|
+
errorCode: 'FETCH_TX_FAILED'
|
|
2282
2366
|
});
|
|
2283
2367
|
context.notifier(_extends({
|
|
2284
2368
|
eventType: 'task_failed'
|
|
@@ -2325,7 +2409,7 @@ function _executeTransaction() {
|
|
|
2325
2409
|
currentStep = getCurrentStep(swap); // Resetting network status, so we will set it again during the running of this task.
|
|
2326
2410
|
resetNetworkStatus(actions);
|
|
2327
2411
|
/* Make sure wallet is connected and also the connected wallet is matched with tx by checking address. */
|
|
2328
|
-
isWrongAddress = !isRequiredWalletConnected(swap, context.state);
|
|
2412
|
+
isWrongAddress = !isRequiredWalletConnected(swap, context.state).ok;
|
|
2329
2413
|
if (!isWrongAddress) {
|
|
2330
2414
|
_context.next = 15;
|
|
2331
2415
|
break;
|
|
@@ -2350,13 +2434,13 @@ function _executeTransaction() {
|
|
|
2350
2434
|
We only run one request at a time (In parallel mode).
|
|
2351
2435
|
*/
|
|
2352
2436
|
needsToBlockQueue = isNeedBlockQueueForParallel(currentStep);
|
|
2353
|
-
if (!(needsToBlockQueue && !isClaimed
|
|
2437
|
+
if (!(needsToBlockQueue && !isClaimed)) {
|
|
2354
2438
|
_context.next = 20;
|
|
2355
2439
|
break;
|
|
2356
2440
|
}
|
|
2357
2441
|
_blockedFor = {
|
|
2358
2442
|
reason: BlockReason.DEPENDS_ON_OTHER_QUEUES,
|
|
2359
|
-
description: 'Waiting for other
|
|
2443
|
+
description: 'Waiting for other swaps to complete',
|
|
2360
2444
|
details: {}
|
|
2361
2445
|
};
|
|
2362
2446
|
requestBlock(_blockedFor);
|
|
@@ -2383,7 +2467,7 @@ function _executeTransaction() {
|
|
|
2383
2467
|
updateNetworkStatus(actions, {
|
|
2384
2468
|
message: '',
|
|
2385
2469
|
details: 'Wallet network changed successfully',
|
|
2386
|
-
status: PendingSwapNetworkStatus.NetworkChanged
|
|
2470
|
+
status: exports.PendingSwapNetworkStatus.NetworkChanged
|
|
2387
2471
|
});
|
|
2388
2472
|
case 32:
|
|
2389
2473
|
// All the conditions are met. We can safely send the tx to wallet for sign.
|
|
@@ -2420,6 +2504,7 @@ function scheduleNextStep(_ref) {
|
|
|
2420
2504
|
schedule(SwapActionTypes.EXECUTE_TRANSACTION);
|
|
2421
2505
|
return next();
|
|
2422
2506
|
}
|
|
2507
|
+
// TODO double check it after approval changes
|
|
2423
2508
|
if (currentStep != null && currentStep.executedTransactionId) {
|
|
2424
2509
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
2425
2510
|
return next();
|
|
@@ -2455,6 +2540,29 @@ function start(_ref) {
|
|
|
2455
2540
|
next();
|
|
2456
2541
|
}
|
|
2457
2542
|
|
|
2543
|
+
var _actions;
|
|
2544
|
+
/**
|
|
2545
|
+
*
|
|
2546
|
+
* The idea behind this queue is to be able dynamically add some steps.
|
|
2547
|
+
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2548
|
+
* or waits for something happend (like checking status of a transaction from server)
|
|
2549
|
+
*
|
|
2550
|
+
*/
|
|
2551
|
+
var swapQueueDef = {
|
|
2552
|
+
name: 'swap',
|
|
2553
|
+
actions: (_actions = {}, _actions[SwapActionTypes.START] = start, _actions[SwapActionTypes.SCHEDULE_NEXT_STEP] = scheduleNextStep, _actions[SwapActionTypes.CREATE_TRANSACTION] = createTransaction, _actions[SwapActionTypes.EXECUTE_TRANSACTION] = executeTransaction, _actions[SwapActionTypes.CHECK_TRANSACTION_STATUS] = checkStatus, _actions),
|
|
2554
|
+
run: [SwapActionTypes.START],
|
|
2555
|
+
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2556
|
+
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2557
|
+
onBlockForConnectWallet(event, meta);
|
|
2558
|
+
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2559
|
+
onBlockForChangeNetwork(event, meta);
|
|
2560
|
+
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2561
|
+
onDependsOnOtherQueues(event, meta);
|
|
2562
|
+
}
|
|
2563
|
+
}
|
|
2564
|
+
};
|
|
2565
|
+
|
|
2458
2566
|
var MIGRATED_KEY = 'migratedToQueueManager';
|
|
2459
2567
|
/**
|
|
2460
2568
|
*
|
|
@@ -2646,9 +2754,10 @@ function useQueueManager(params) {
|
|
|
2646
2754
|
checkWaitingForConnectWalletChange({
|
|
2647
2755
|
evmChains: params.evmChains,
|
|
2648
2756
|
wallet_network: params.lastConnectedWallet,
|
|
2649
|
-
manager: manager
|
|
2757
|
+
manager: manager,
|
|
2758
|
+
notifier: params.notifier
|
|
2650
2759
|
});
|
|
2651
|
-
retryOn(params.lastConnectedWallet, manager);
|
|
2760
|
+
retryOn(params.lastConnectedWallet, params.notifier, manager);
|
|
2652
2761
|
}
|
|
2653
2762
|
}, [params.lastConnectedWallet]);
|
|
2654
2763
|
react.useEffect(function () {
|
|
@@ -2663,33 +2772,19 @@ function useQueueManager(params) {
|
|
|
2663
2772
|
}, [params.disconnectedWallet]);
|
|
2664
2773
|
}
|
|
2665
2774
|
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
*
|
|
2669
|
-
* The idea behind this queue is to be able dynamically add some steps.
|
|
2670
|
-
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2671
|
-
* or waits for something happend (like checking status of a transaction from server)
|
|
2672
|
-
*
|
|
2673
|
-
*/
|
|
2674
|
-
var swapQueueDef = {
|
|
2675
|
-
name: 'swap',
|
|
2676
|
-
actions: (_actions = {}, _actions[SwapActionTypes.START] = start, _actions[SwapActionTypes.SCHEDULE_NEXT_STEP] = scheduleNextStep, _actions[SwapActionTypes.CREATE_TRANSACTION] = createTransaction, _actions[SwapActionTypes.EXECUTE_TRANSACTION] = executeTransaction, _actions[SwapActionTypes.CHECK_TRANSACTION_STATUS] = checkStatus, _actions),
|
|
2677
|
-
run: [SwapActionTypes.START],
|
|
2678
|
-
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2679
|
-
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2680
|
-
onBlockForConnectWallet(event, meta);
|
|
2681
|
-
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2682
|
-
onBlockForChangeNetwork(event, meta);
|
|
2683
|
-
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2684
|
-
onDependsOnOtherQueues(event, meta);
|
|
2685
|
-
}
|
|
2686
|
-
}
|
|
2687
|
-
};
|
|
2688
|
-
|
|
2775
|
+
exports.PrettyError = PrettyError;
|
|
2776
|
+
exports.cancelSwap = cancelSwap;
|
|
2689
2777
|
exports.checkWaitingForNetworkChange = checkWaitingForNetworkChange;
|
|
2778
|
+
exports.getCurrentBlockchainOfOrNull = getCurrentBlockchainOfOrNull;
|
|
2690
2779
|
exports.getCurrentStep = getCurrentStep;
|
|
2691
2780
|
exports.getEvmProvider = getEvmProvider;
|
|
2692
|
-
exports.getRelatedWallet = getRelatedWallet
|
|
2781
|
+
exports.getRelatedWallet = getRelatedWallet;
|
|
2782
|
+
exports.getRelatedWalletOrNull = getRelatedWalletOrNull;
|
|
2783
|
+
exports.getRequiredWallet = getRequiredWallet;
|
|
2784
|
+
exports.getRunningSwaps = getRunningSwaps;
|
|
2785
|
+
exports.prettifyErrorMessage = prettifyErrorMessage;
|
|
2786
|
+
exports.resetRunningSwapNotifsOnPageLoad = resetRunningSwapNotifsOnPageLoad;
|
|
2787
|
+
exports.splitWalletNetwork = splitWalletNetwork;
|
|
2693
2788
|
exports.swapQueueDef = swapQueueDef;
|
|
2694
2789
|
exports.updateSwapStatus = updateSwapStatus;
|
|
2695
2790
|
exports.useMigration = useMigration;
|