@rango-dev/queue-manager-rango-preset 0.1.10-next.98 → 0.1.11-next.2
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 +41 -13
- 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/numbers.d.ts +3 -0
- package/dist/numbers.d.ts.map +1 -0
- package/dist/queue-manager-rango-preset.cjs.development.js +511 -300
- 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 +488 -286
- 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-sentry.d.ts +1 -1
- package/dist/shared-sentry.d.ts.map +1 -1
- package/dist/shared.d.ts +35 -21
- 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 -3
- 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 +202 -172
- package/src/hooks.ts +2 -1
- package/src/index.ts +19 -44
- package/src/numbers.ts +68 -0
- package/src/shared-errors.ts +53 -76
- package/src/shared-sentry.ts +1 -1
- package/src/shared.ts +187 -58
- package/src/types.ts +1 -0
|
@@ -2,31 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
6
|
+
|
|
7
|
+
var rangoTypes = require('rango-types');
|
|
5
8
|
var walletsShared = require('@rango-dev/wallets-shared');
|
|
9
|
+
var BigNumber = _interopDefault(require('bignumber.js'));
|
|
6
10
|
var walletsCore = require('@rango-dev/wallets-core');
|
|
7
11
|
var rangoSdk = require('rango-sdk');
|
|
8
12
|
var queueManagerCore = require('@rango-dev/queue-manager-core');
|
|
9
|
-
var rangoTypes = require('rango-types');
|
|
10
13
|
var Sentry = require('@sentry/browser');
|
|
11
14
|
var queueManagerReact = require('@rango-dev/queue-manager-react');
|
|
12
15
|
var react = require('react');
|
|
13
16
|
var uuid = require('uuid');
|
|
14
17
|
|
|
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
18
|
function _regeneratorRuntime() {
|
|
31
19
|
_regeneratorRuntime = function () {
|
|
32
20
|
return exports;
|
|
@@ -452,46 +440,6 @@ function _assertThisInitialized(self) {
|
|
|
452
440
|
return self;
|
|
453
441
|
}
|
|
454
442
|
|
|
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
443
|
var ERROR_ASSERTION_FAILED = 'Assertion failed (Unexpected behaviour)';
|
|
496
444
|
var ERROR_CREATE_TRANSACTION = 'Create transaction failed in Rango Server';
|
|
497
445
|
var ERROR_INPUT_WALLET_NOT_FOUND = 'Input wallet not found';
|
|
@@ -500,12 +448,17 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
500
448
|
function PrettyError(code, m, root, detail) {
|
|
501
449
|
var _this;
|
|
502
450
|
_this = _Error.call(this, m) || this;
|
|
451
|
+
_this._isPrettyError = true;
|
|
503
452
|
Object.setPrototypeOf(_assertThisInitialized(_this), PrettyError.prototype);
|
|
453
|
+
PrettyError.prototype._isPrettyError = true;
|
|
504
454
|
_this.code = code;
|
|
505
455
|
_this.detail = detail;
|
|
506
456
|
_this.root = root;
|
|
507
457
|
return _this;
|
|
508
458
|
}
|
|
459
|
+
PrettyError.isPrettyError = function isPrettyError(obj) {
|
|
460
|
+
return obj instanceof PrettyError || Object.prototype.hasOwnProperty('_isPrettyError');
|
|
461
|
+
};
|
|
509
462
|
var _proto = PrettyError.prototype;
|
|
510
463
|
_proto.getErrorDetail = function getErrorDetail() {
|
|
511
464
|
var rawMessage = typeof this.root === 'object' && this.root && this.root.error ? this.root.error : JSON.stringify(this.root);
|
|
@@ -517,33 +470,30 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
517
470
|
};
|
|
518
471
|
};
|
|
519
472
|
PrettyError.AssertionFailed = function AssertionFailed(m) {
|
|
520
|
-
return new PrettyError(
|
|
473
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_ASSERTION_FAILED, m);
|
|
521
474
|
};
|
|
522
475
|
PrettyError.BadStatusCode = function BadStatusCode(message, statusCode) {
|
|
523
|
-
return new PrettyError(
|
|
476
|
+
return new PrettyError('TX_FAIL', message, null, "status code = " + statusCode);
|
|
524
477
|
};
|
|
525
478
|
PrettyError.CreateTransaction = function CreateTransaction(detail) {
|
|
526
|
-
return new PrettyError(
|
|
479
|
+
return new PrettyError('FETCH_TX_FAILED', ERROR_CREATE_TRANSACTION, null, detail);
|
|
527
480
|
};
|
|
528
481
|
PrettyError.WalletMissing = function WalletMissing() {
|
|
529
|
-
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');
|
|
530
483
|
};
|
|
531
484
|
PrettyError.BlockchainMissing = function BlockchainMissing() {
|
|
532
|
-
return new PrettyError(
|
|
485
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_INPUT_WALLET_NOT_FOUND, null, 'Server requested for a blockchain or address not selected by user');
|
|
533
486
|
};
|
|
534
487
|
return PrettyError;
|
|
535
488
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
536
|
-
function isAPIErrorCode(value) {
|
|
537
|
-
return Object.values(APIErrorCode).includes(value);
|
|
538
|
-
}
|
|
539
489
|
function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
540
|
-
var defaultErrorCode =
|
|
490
|
+
var defaultErrorCode = 'CLIENT_UNEXPECTED_BEHAVIOUR';
|
|
541
491
|
try {
|
|
542
492
|
if (!errorCode) return defaultErrorCode;
|
|
543
|
-
if (isAPIErrorCode(errorCode)) return errorCode;
|
|
493
|
+
if (rangoTypes.isAPIErrorCode(errorCode)) return errorCode;
|
|
544
494
|
if (rangoTypes.isSignerErrorCode(errorCode)) {
|
|
545
495
|
var _t;
|
|
546
|
-
var t = (_t = {}, _t[rangoTypes.SignerErrorCode.REJECTED_BY_USER] =
|
|
496
|
+
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
497
|
return t[errorCode];
|
|
548
498
|
}
|
|
549
499
|
return defaultErrorCode;
|
|
@@ -551,21 +501,74 @@ function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
|
551
501
|
return defaultErrorCode;
|
|
552
502
|
}
|
|
553
503
|
}
|
|
504
|
+
var prettifyErrorMessage = function prettifyErrorMessage(obj) {
|
|
505
|
+
if (!obj) return {
|
|
506
|
+
extraMessage: '',
|
|
507
|
+
extraMessageErrorCode: null
|
|
508
|
+
};
|
|
509
|
+
if (PrettyError.isPrettyError(obj)) return obj.getErrorDetail();
|
|
510
|
+
if (rangoTypes.SignerError.isSignerError(obj)) {
|
|
511
|
+
var t = obj.getErrorDetail();
|
|
512
|
+
return {
|
|
513
|
+
extraMessage: t.message,
|
|
514
|
+
extraMessageDetail: t.detail,
|
|
515
|
+
extraMessageErrorCode: t.code
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
if (obj instanceof Error) return {
|
|
519
|
+
extraMessage: obj.toString(),
|
|
520
|
+
extraMessageErrorCode: null
|
|
521
|
+
};
|
|
522
|
+
if (typeof obj !== 'string') return {
|
|
523
|
+
extraMessage: JSON.stringify(obj),
|
|
524
|
+
extraMessageErrorCode: null
|
|
525
|
+
};
|
|
526
|
+
return {
|
|
527
|
+
extraMessage: obj,
|
|
528
|
+
extraMessageErrorCode: null
|
|
529
|
+
};
|
|
530
|
+
};
|
|
531
|
+
|
|
532
|
+
var numberToString = function numberToString(number, minDecimals, maxDecimals) {
|
|
533
|
+
if (minDecimals === void 0) {
|
|
534
|
+
minDecimals = null;
|
|
535
|
+
}
|
|
536
|
+
if (maxDecimals === void 0) {
|
|
537
|
+
maxDecimals = null;
|
|
538
|
+
}
|
|
539
|
+
if (number === null) return '';
|
|
540
|
+
if (number === '') return '';
|
|
541
|
+
var n = new BigNumber(number);
|
|
542
|
+
var roundingMode = 1;
|
|
543
|
+
var maxI = 1000;
|
|
544
|
+
for (var i = 0; i < 60; i++) {
|
|
545
|
+
if (new BigNumber(n.toFixed(i, roundingMode)).eq(n)) {
|
|
546
|
+
maxI = i;
|
|
547
|
+
break;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
if (n.gte(10000)) return n.toFormat(0, roundingMode);
|
|
551
|
+
if (n.gte(1000)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))), roundingMode);
|
|
552
|
+
if (n.gte(100)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))), roundingMode);
|
|
553
|
+
if (n.gte(1)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 2))), roundingMode);
|
|
554
|
+
if (n.gte(0.01)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 4))), roundingMode);
|
|
555
|
+
for (var _i = minDecimals || 4; _i < 17; _i++) if (n.gte(Math.pow(10, -_i))) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, _i))), roundingMode);
|
|
556
|
+
if (n.isEqualTo(0)) return '0';
|
|
557
|
+
return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 8))), roundingMode);
|
|
558
|
+
};
|
|
554
559
|
|
|
555
|
-
var PendingSwapNetworkStatus;
|
|
556
560
|
(function (PendingSwapNetworkStatus) {
|
|
557
561
|
PendingSwapNetworkStatus["WaitingForConnectingWallet"] = "waitingForConnectingWallet";
|
|
558
562
|
PendingSwapNetworkStatus["WaitingForQueue"] = "waitingForQueue";
|
|
559
563
|
PendingSwapNetworkStatus["WaitingForNetworkChange"] = "waitingForNetworkChange";
|
|
560
564
|
PendingSwapNetworkStatus["NetworkChanged"] = "networkChanged";
|
|
561
|
-
})(PendingSwapNetworkStatus || (PendingSwapNetworkStatus = {}));
|
|
562
|
-
var MessageSeverity;
|
|
565
|
+
})(exports.PendingSwapNetworkStatus || (exports.PendingSwapNetworkStatus = {}));
|
|
563
566
|
(function (MessageSeverity) {
|
|
564
567
|
MessageSeverity["error"] = "error";
|
|
565
568
|
MessageSeverity["warning"] = "warning";
|
|
566
569
|
MessageSeverity["info"] = "info";
|
|
567
570
|
MessageSeverity["success"] = "success";
|
|
568
|
-
})(MessageSeverity || (MessageSeverity = {}));
|
|
571
|
+
})(exports.MessageSeverity || (exports.MessageSeverity = {}));
|
|
569
572
|
var getCurrentBlockchainOfOrNull = function getCurrentBlockchainOfOrNull(swap, step) {
|
|
570
573
|
try {
|
|
571
574
|
return getCurrentBlockchainOf(swap, step);
|
|
@@ -603,48 +606,22 @@ var getStarknetApproveUrl = function getStarknetApproveUrl(tx) {
|
|
|
603
606
|
var getTronApproveUrl = function getTronApproveUrl(tx) {
|
|
604
607
|
return 'https://tronscan.org/#/transaction/{txHash}'.replace('{txHash}', tx.toLowerCase());
|
|
605
608
|
};
|
|
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
609
|
function getNextStep(swap, currentStep) {
|
|
634
610
|
return swap.steps.find(function (step) {
|
|
635
611
|
return step.status !== 'failed' && step.status !== 'success' && step.id !== currentStep.id;
|
|
636
612
|
}) || null;
|
|
637
613
|
}
|
|
638
|
-
|
|
614
|
+
/**
|
|
615
|
+
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
616
|
+
*/
|
|
639
617
|
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 ? {
|
|
618
|
+
var _step$evmTransaction2, _step$evmApprovalTran2, _step$tronTransaction2, _step$tronApprovalTra2, _step$starknetTransac2, _step$starknetApprova2, _step$cosmosTransacti2, _step$solanaTransacti2, _step$transferTransac2, _step$transferTransac3;
|
|
619
|
+
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
620
|
address: (_step$transferTransac3 = step.transferTransaction) == null ? void 0 : _step$transferTransac3.fromWalletAddress
|
|
643
621
|
} : null) || null;
|
|
644
622
|
if (result == null) throw PrettyError.WalletMissing();
|
|
645
623
|
return result.address;
|
|
646
624
|
};
|
|
647
|
-
// TODO: we have samething in `helpers`, for fixing circular dependency, we copied and should be removed eventually.
|
|
648
625
|
function getRelatedWallet(swap, currentStep) {
|
|
649
626
|
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
650
627
|
var walletKV = Object.keys(swap.wallets).map(function (k) {
|
|
@@ -669,6 +646,130 @@ function getRelatedWalletOrNull(swap, currentStep) {
|
|
|
669
646
|
return null;
|
|
670
647
|
}
|
|
671
648
|
}
|
|
649
|
+
var getUsdPrice = function getUsdPrice(blockchain, symbol, address, allTokens) {
|
|
650
|
+
var token = allTokens == null ? void 0 : allTokens.find(function (t) {
|
|
651
|
+
var _t$symbol;
|
|
652
|
+
return t.blockchain === blockchain && ((_t$symbol = t.symbol) == null ? void 0 : _t$symbol.toUpperCase()) === (symbol == null ? void 0 : symbol.toUpperCase()) && t.address === address;
|
|
653
|
+
});
|
|
654
|
+
return (token == null ? void 0 : token.usdPrice) || null;
|
|
655
|
+
};
|
|
656
|
+
function getUsdFeeOfStep(step, allTokens) {
|
|
657
|
+
var totalFeeInUsd = new BigNumber(0);
|
|
658
|
+
for (var i = 0; i < step.fee.length; i++) {
|
|
659
|
+
var fee = step.fee[i];
|
|
660
|
+
if (fee.expenseType === 'DECREASE_FROM_OUTPUT') continue;
|
|
661
|
+
var unitPrice = getUsdPrice(fee.asset.blockchain, fee.asset.symbol, fee.asset.address, allTokens);
|
|
662
|
+
totalFeeInUsd = totalFeeInUsd.plus(new BigNumber(fee.amount).multipliedBy(unitPrice || 0));
|
|
663
|
+
}
|
|
664
|
+
return totalFeeInUsd;
|
|
665
|
+
}
|
|
666
|
+
function calculatePendingSwap(inputAmount, bestRoute, wallets, settings, validateBalanceOrFee, meta) {
|
|
667
|
+
var _bestRoute$result, _bestRoute$result$swa;
|
|
668
|
+
var simulationResult = bestRoute.result;
|
|
669
|
+
if (!simulationResult) throw Error('Simulation result should not be null');
|
|
670
|
+
return {
|
|
671
|
+
creationTime: new Date().getTime().toString(),
|
|
672
|
+
finishTime: null,
|
|
673
|
+
requestId: bestRoute.requestId || '',
|
|
674
|
+
inputAmount: inputAmount,
|
|
675
|
+
wallets: wallets,
|
|
676
|
+
status: 'running',
|
|
677
|
+
isPaused: false,
|
|
678
|
+
extraMessage: null,
|
|
679
|
+
extraMessageSeverity: null,
|
|
680
|
+
extraMessageDetail: null,
|
|
681
|
+
extraMessageErrorCode: null,
|
|
682
|
+
networkStatusExtraMessage: null,
|
|
683
|
+
networkStatusExtraMessageDetail: null,
|
|
684
|
+
lastNotificationTime: null,
|
|
685
|
+
settings: settings,
|
|
686
|
+
simulationResult: simulationResult,
|
|
687
|
+
validateBalanceOrFee: validateBalanceOrFee,
|
|
688
|
+
steps: ((_bestRoute$result = bestRoute.result) == null ? void 0 : (_bestRoute$result$swa = _bestRoute$result.swaps) == null ? void 0 : _bestRoute$result$swa.map(function (swap, index) {
|
|
689
|
+
return {
|
|
690
|
+
id: index + 1,
|
|
691
|
+
// from
|
|
692
|
+
fromBlockchain: swap.from.blockchain,
|
|
693
|
+
fromBlockchainLogo: swap.from.blockchainLogo,
|
|
694
|
+
fromLogo: swap.from.logo,
|
|
695
|
+
fromSymbol: swap.from.symbol,
|
|
696
|
+
fromSymbolAddress: swap.from.address,
|
|
697
|
+
fromDecimals: swap.from.decimals,
|
|
698
|
+
fromAmountPrecision: swap.fromAmountPrecision,
|
|
699
|
+
fromAmountMinValue: swap.fromAmountMinValue,
|
|
700
|
+
fromAmountMaxValue: swap.fromAmountMaxValue,
|
|
701
|
+
fromAmountRestrictionType: swap.fromAmountRestrictionType,
|
|
702
|
+
// to
|
|
703
|
+
toBlockchain: swap.to.blockchain,
|
|
704
|
+
toBlockchainLogo: swap.to.blockchainLogo,
|
|
705
|
+
toSymbol: swap.to.symbol,
|
|
706
|
+
toSymbolAddress: swap.to.address,
|
|
707
|
+
toDecimals: swap.to.decimals,
|
|
708
|
+
toLogo: swap.to.logo,
|
|
709
|
+
// swapper
|
|
710
|
+
swapperId: swap.swapperId,
|
|
711
|
+
swapperLogo: swap.swapperLogo,
|
|
712
|
+
swapperType: swap.swapperType,
|
|
713
|
+
// output, fee, timing
|
|
714
|
+
expectedOutputAmountHumanReadable: swap.toAmount,
|
|
715
|
+
outputAmount: '',
|
|
716
|
+
feeInUsd: meta ? numberToString(getUsdFeeOfStep(swap, meta == null ? void 0 : meta.tokens), null, 8) : null,
|
|
717
|
+
estimatedTimeInSeconds: swap.estimatedTimeInSeconds || null,
|
|
718
|
+
// status, tracking
|
|
719
|
+
status: 'created',
|
|
720
|
+
networkStatus: null,
|
|
721
|
+
startTransactionTime: new Date().getTime(),
|
|
722
|
+
externalTransactionId: null,
|
|
723
|
+
executedTransactionId: null,
|
|
724
|
+
executedTransactionTime: null,
|
|
725
|
+
explorerUrl: null,
|
|
726
|
+
diagnosisUrl: null,
|
|
727
|
+
trackingCode: null,
|
|
728
|
+
internalSteps: null,
|
|
729
|
+
// transactions
|
|
730
|
+
evmTransaction: null,
|
|
731
|
+
evmApprovalTransaction: null,
|
|
732
|
+
starknetTransaction: null,
|
|
733
|
+
starknetApprovalTransaction: null,
|
|
734
|
+
tronTransaction: null,
|
|
735
|
+
tronApprovalTransaction: null,
|
|
736
|
+
cosmosTransaction: null,
|
|
737
|
+
solanaTransaction: null,
|
|
738
|
+
transferTransaction: null,
|
|
739
|
+
// front fields
|
|
740
|
+
hasAlreadyProceededToSign: false
|
|
741
|
+
};
|
|
742
|
+
})) || []
|
|
743
|
+
};
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
var SwapActionTypes;
|
|
747
|
+
(function (SwapActionTypes) {
|
|
748
|
+
SwapActionTypes["START"] = "START";
|
|
749
|
+
SwapActionTypes["SCHEDULE_NEXT_STEP"] = "SCHEDULE_NEXT_STEP";
|
|
750
|
+
SwapActionTypes["CREATE_TRANSACTION"] = "CREATE_TRANSACTION";
|
|
751
|
+
SwapActionTypes["EXECUTE_TRANSACTION"] = "EXECUTE_TRANSACTION";
|
|
752
|
+
SwapActionTypes["CHECK_TRANSACTION_STATUS"] = "CHECK_TRANSACTION_STATUS";
|
|
753
|
+
})(SwapActionTypes || (SwapActionTypes = {}));
|
|
754
|
+
var BlockReason;
|
|
755
|
+
(function (BlockReason) {
|
|
756
|
+
BlockReason["WAIT_FOR_CONNECT_WALLET"] = "waiting_for_connecting_wallet";
|
|
757
|
+
BlockReason["WAIT_FOR_NETWORK_CHANGE"] = "waiting_for_network_change";
|
|
758
|
+
BlockReason["DEPENDS_ON_OTHER_QUEUES"] = "depends_on_other_queues";
|
|
759
|
+
})(BlockReason || (BlockReason = {}));
|
|
760
|
+
|
|
761
|
+
var RANGO_DAPP_API_KEY = process.env.REACT_APP_API_KEY;
|
|
762
|
+
var RANGO_DAPP_API_BASE_URL = process.env.REACT_APP_API_BASE_URL;
|
|
763
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET = 'Waiting for connecting wallet';
|
|
764
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET(type, address) {
|
|
765
|
+
return "Please change your " + (type || 'wallet') + " account to " + (address || 'proper address');
|
|
766
|
+
};
|
|
767
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION(type) {
|
|
768
|
+
return "Please connect to " + (type || 'your wallet') + " by using bellow button or top right button on page.";
|
|
769
|
+
};
|
|
770
|
+
var ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK = function ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK(network) {
|
|
771
|
+
return "Please change your network to " + network + ".";
|
|
772
|
+
};
|
|
672
773
|
|
|
673
774
|
function logRPCError(error, swap, currentStep, walletType) {
|
|
674
775
|
try {
|
|
@@ -713,12 +814,23 @@ function claimQueue() {
|
|
|
713
814
|
};
|
|
714
815
|
}
|
|
715
816
|
/**
|
|
716
|
-
*
|
|
817
|
+
* Sample inputs are:
|
|
818
|
+
* - "metamask-ETH"
|
|
819
|
+
* - "metamask-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
820
|
+
* - "token-pocket-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
717
821
|
* Returns "wallet and network" separately, even if the wallet is dashed inside.
|
|
718
822
|
*
|
|
719
823
|
*/
|
|
720
824
|
function splitWalletNetwork(input) {
|
|
721
|
-
|
|
825
|
+
var removedAddressInput = (input == null ? void 0 : input.split(':')[0]) || '';
|
|
826
|
+
var splittedInput = removedAddressInput.split('-');
|
|
827
|
+
var network = splittedInput[splittedInput.length - 1];
|
|
828
|
+
var walletNetwork = splittedInput.slice(0, -1);
|
|
829
|
+
if (walletNetwork[walletNetwork.length - 1] === network) {
|
|
830
|
+
walletNetwork.pop();
|
|
831
|
+
}
|
|
832
|
+
var wallet = walletNetwork.join('-');
|
|
833
|
+
return [wallet, network];
|
|
722
834
|
}
|
|
723
835
|
/**
|
|
724
836
|
*
|
|
@@ -751,24 +863,26 @@ function updateSwapStatus(_ref) {
|
|
|
751
863
|
if (!!nextStatus) swap.status = nextStatus;
|
|
752
864
|
swap.hasAlreadyProceededToSign = hasAlreadyProceededToSign;
|
|
753
865
|
if (!!nextStatus && ['failed', 'success'].includes(nextStatus)) swap.finishTime = new Date().getTime().toString();
|
|
754
|
-
if (!!message
|
|
755
|
-
|
|
866
|
+
if (!!message || !!details) {
|
|
867
|
+
swap.extraMessage = message || '';
|
|
868
|
+
swap.extraMessageDetail = details || '';
|
|
869
|
+
}
|
|
756
870
|
if (!!nextStepStatus && ['failed'].includes(nextStepStatus)) {
|
|
757
871
|
var _getRelatedWalletOrNu;
|
|
758
872
|
//if user cancel the swap, we should pass relevant reason to the server.
|
|
759
873
|
var errorReason = details && details.includes('Warning') ? 'Swap canceled by user.' : details;
|
|
760
874
|
var walletType = (_getRelatedWalletOrNu = getRelatedWalletOrNull(swap, currentStep)) == null ? void 0 : _getRelatedWalletOrNu.walletType;
|
|
761
|
-
swap.extraMessageSeverity = MessageSeverity.error;
|
|
875
|
+
swap.extraMessageSeverity = exports.MessageSeverity.error;
|
|
762
876
|
httpService.reportFailure({
|
|
763
877
|
requestId: swap.requestId,
|
|
764
878
|
step: (currentStep == null ? void 0 : currentStep.id) || 1,
|
|
765
|
-
eventType: mapAppErrorCodesToAPIErrorCode(
|
|
879
|
+
eventType: mapAppErrorCodesToAPIErrorCode(errorCode),
|
|
766
880
|
reason: errorReason || '',
|
|
767
881
|
data: walletType ? {
|
|
768
882
|
wallet: walletType
|
|
769
883
|
} : undefined
|
|
770
884
|
}).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;
|
|
885
|
+
} 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
886
|
if (nextStepStatus === 'running' && currentStep) currentStep.startTransactionTime = new Date().getTime();
|
|
773
887
|
setStorage(_extends({}, getStorage(), {
|
|
774
888
|
swapDetails: swap
|
|
@@ -778,18 +892,32 @@ function updateSwapStatus(_ref) {
|
|
|
778
892
|
step: currentStep
|
|
779
893
|
};
|
|
780
894
|
}
|
|
781
|
-
function setStepTransactionIds(_ref2, txId, eventType,
|
|
895
|
+
function setStepTransactionIds(_ref2, txId, notifier, eventType, approveUrl) {
|
|
782
896
|
var getStorage = _ref2.getStorage,
|
|
783
897
|
setStorage = _ref2.setStorage;
|
|
784
898
|
var swap = getStorage().swapDetails;
|
|
785
899
|
swap.hasAlreadyProceededToSign = null;
|
|
786
900
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
787
901
|
var currentStep = getCurrentStep(swap);
|
|
788
|
-
currentStep.executedTransactionId = txId
|
|
902
|
+
currentStep.executedTransactionId = txId;
|
|
903
|
+
currentStep.executedTransactionTime = new Date().getTime().toString();
|
|
904
|
+
if (!!approveUrl) currentStep.explorerUrl = [].concat(currentStep.explorerUrl || [], [{
|
|
905
|
+
url: approveUrl,
|
|
906
|
+
description: "approve"
|
|
907
|
+
}]);
|
|
908
|
+
if (eventType === 'check_tx_status') {
|
|
909
|
+
swap.extraMessage = 'Checking transaction status ...';
|
|
910
|
+
swap.extraMessageDetail = '';
|
|
911
|
+
swap.extraMessageSeverity = exports.MessageSeverity.info;
|
|
912
|
+
} else if (eventType === 'check_approve_tx_status') {
|
|
913
|
+
swap.extraMessage = 'Checking approve transaction status ...';
|
|
914
|
+
swap.extraMessageDetail = '';
|
|
915
|
+
swap.extraMessageSeverity = exports.MessageSeverity.info;
|
|
916
|
+
}
|
|
789
917
|
setStorage(_extends({}, getStorage(), {
|
|
790
918
|
swapDetails: swap
|
|
791
919
|
}));
|
|
792
|
-
notifier({
|
|
920
|
+
if (!!eventType) notifier({
|
|
793
921
|
eventType: eventType,
|
|
794
922
|
swap: swap,
|
|
795
923
|
step: currentStep
|
|
@@ -816,11 +944,11 @@ function markRunningSwapAsWaitingForConnectingWallet(_ref3, reason, reasonDetail
|
|
|
816
944
|
if (!currentStep) return;
|
|
817
945
|
var currentTime = new Date();
|
|
818
946
|
swap.lastNotificationTime = currentTime.getTime().toString();
|
|
819
|
-
var isAlreadyMarked = currentStep.networkStatus === PendingSwapNetworkStatus.WaitingForConnectingWallet && swap.networkStatusExtraMessage === reason && swap.networkStatusExtraMessageDetail === reasonDetail;
|
|
947
|
+
var isAlreadyMarked = currentStep.networkStatus === exports.PendingSwapNetworkStatus.WaitingForConnectingWallet && swap.networkStatusExtraMessage === reason && swap.networkStatusExtraMessageDetail === reasonDetail;
|
|
820
948
|
if (isAlreadyMarked) {
|
|
821
949
|
return;
|
|
822
950
|
}
|
|
823
|
-
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForConnectingWallet;
|
|
951
|
+
currentStep.networkStatus = exports.PendingSwapNetworkStatus.WaitingForConnectingWallet;
|
|
824
952
|
swap.networkStatusExtraMessage = reason;
|
|
825
953
|
swap.networkStatusExtraMessageDetail = reasonDetail;
|
|
826
954
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -847,7 +975,7 @@ function markRunningSwapAsSwitchingNetwork(_ref4) {
|
|
|
847
975
|
var reasonDetail = "Please change your " + type + " wallet network to " + fromBlockchain + ". " + metamaskMessage;
|
|
848
976
|
var currentTime = new Date();
|
|
849
977
|
swap.lastNotificationTime = currentTime.getTime().toString();
|
|
850
|
-
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForNetworkChange;
|
|
978
|
+
currentStep.networkStatus = exports.PendingSwapNetworkStatus.WaitingForNetworkChange;
|
|
851
979
|
swap.networkStatusExtraMessage = reason;
|
|
852
980
|
swap.networkStatusExtraMessageDetail = reasonDetail;
|
|
853
981
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -864,13 +992,19 @@ function markRunningSwapAsSwitchingNetwork(_ref4) {
|
|
|
864
992
|
*/
|
|
865
993
|
function markRunningSwapAsDependsOnOtherQueues(_ref5) {
|
|
866
994
|
var getStorage = _ref5.getStorage,
|
|
867
|
-
setStorage = _ref5.setStorage
|
|
995
|
+
setStorage = _ref5.setStorage,
|
|
996
|
+
notifier = _ref5.notifier;
|
|
868
997
|
var swap = getStorage().swapDetails;
|
|
869
998
|
var currentStep = getCurrentStep(swap);
|
|
870
999
|
if (!currentStep) return;
|
|
871
1000
|
swap.networkStatusExtraMessage = '';
|
|
872
1001
|
swap.networkStatusExtraMessageDetail = '';
|
|
873
|
-
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForQueue;
|
|
1002
|
+
currentStep.networkStatus = exports.PendingSwapNetworkStatus.WaitingForQueue;
|
|
1003
|
+
notifier({
|
|
1004
|
+
eventType: 'waiting_for_queue',
|
|
1005
|
+
swap: swap,
|
|
1006
|
+
step: currentStep
|
|
1007
|
+
});
|
|
874
1008
|
setStorage(_extends({}, getStorage(), {
|
|
875
1009
|
swapDetails: swap
|
|
876
1010
|
}));
|
|
@@ -1002,9 +1136,6 @@ function _getChainId() {
|
|
|
1002
1136
|
function isNetworkMatchedForTransaction(_x2, _x3, _x4, _x5, _x6) {
|
|
1003
1137
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1004
1138
|
}
|
|
1005
|
-
/**
|
|
1006
|
-
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
1007
|
-
*/
|
|
1008
1139
|
function _isNetworkMatchedForTransaction() {
|
|
1009
1140
|
_isNetworkMatchedForTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(swap, step, wallet, meta, providers) {
|
|
1010
1141
|
var fromBlockChain, sourceWallet, provider, chainId, blockChain;
|
|
@@ -1012,112 +1143,85 @@ function _isNetworkMatchedForTransaction() {
|
|
|
1012
1143
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1013
1144
|
case 0:
|
|
1014
1145
|
if (!isWalletNull(wallet)) {
|
|
1015
|
-
_context2.next =
|
|
1146
|
+
_context2.next = 2;
|
|
1016
1147
|
break;
|
|
1017
1148
|
}
|
|
1018
|
-
console.warn('wallet object is null');
|
|
1019
1149
|
return _context2.abrupt("return", false);
|
|
1020
|
-
case
|
|
1150
|
+
case 2:
|
|
1021
1151
|
fromBlockChain = getCurrentBlockchainOfOrNull(swap, step);
|
|
1022
1152
|
if (fromBlockChain) {
|
|
1023
|
-
_context2.next =
|
|
1153
|
+
_context2.next = 5;
|
|
1024
1154
|
break;
|
|
1025
1155
|
}
|
|
1026
1156
|
return _context2.abrupt("return", false);
|
|
1027
|
-
case
|
|
1157
|
+
case 5:
|
|
1028
1158
|
if (!meta.evmBasedChains.find(function (evmBlochain) {
|
|
1029
1159
|
return evmBlochain.name === fromBlockChain;
|
|
1030
1160
|
})) {
|
|
1031
|
-
_context2.next =
|
|
1161
|
+
_context2.next = 29;
|
|
1032
1162
|
break;
|
|
1033
1163
|
}
|
|
1034
|
-
_context2.prev =
|
|
1164
|
+
_context2.prev = 6;
|
|
1035
1165
|
sourceWallet = swap.wallets[fromBlockChain];
|
|
1036
1166
|
if (!sourceWallet) {
|
|
1037
|
-
_context2.next =
|
|
1167
|
+
_context2.next = 23;
|
|
1038
1168
|
break;
|
|
1039
1169
|
}
|
|
1040
1170
|
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 =
|
|
1171
|
+
_context2.next = 22;
|
|
1042
1172
|
break;
|
|
1043
1173
|
}
|
|
1044
1174
|
provider = getEvmProvider(providers, sourceWallet.walletType);
|
|
1045
|
-
_context2.next =
|
|
1175
|
+
_context2.next = 13;
|
|
1046
1176
|
return getChainId(provider);
|
|
1047
|
-
case
|
|
1177
|
+
case 13:
|
|
1048
1178
|
chainId = _context2.sent;
|
|
1049
1179
|
if (!chainId) {
|
|
1050
|
-
_context2.next =
|
|
1180
|
+
_context2.next = 20;
|
|
1051
1181
|
break;
|
|
1052
1182
|
}
|
|
1053
|
-
blockChain = walletsShared.getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (
|
|
1054
|
-
var blockchainMeta =
|
|
1183
|
+
blockChain = walletsShared.getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (_ref6) {
|
|
1184
|
+
var blockchainMeta = _ref6[1];
|
|
1055
1185
|
return blockchainMeta;
|
|
1056
1186
|
}));
|
|
1057
1187
|
if (!(blockChain && blockChain.toLowerCase() === fromBlockChain.toLowerCase())) {
|
|
1058
|
-
_context2.next =
|
|
1188
|
+
_context2.next = 18;
|
|
1059
1189
|
break;
|
|
1060
1190
|
}
|
|
1061
1191
|
return _context2.abrupt("return", true);
|
|
1062
|
-
case
|
|
1192
|
+
case 18:
|
|
1063
1193
|
if (!(blockChain && blockChain.toLowerCase() !== fromBlockChain.toLowerCase())) {
|
|
1064
|
-
_context2.next =
|
|
1194
|
+
_context2.next = 20;
|
|
1065
1195
|
break;
|
|
1066
1196
|
}
|
|
1067
1197
|
return _context2.abrupt("return", false);
|
|
1068
|
-
case
|
|
1069
|
-
_context2.next =
|
|
1198
|
+
case 20:
|
|
1199
|
+
_context2.next = 23;
|
|
1070
1200
|
break;
|
|
1071
|
-
case
|
|
1201
|
+
case 22:
|
|
1072
1202
|
return _context2.abrupt("return", true);
|
|
1073
|
-
case
|
|
1074
|
-
_context2.next =
|
|
1203
|
+
case 23:
|
|
1204
|
+
_context2.next = 28;
|
|
1075
1205
|
break;
|
|
1076
|
-
case
|
|
1077
|
-
_context2.prev =
|
|
1078
|
-
_context2.t0 = _context2["catch"](
|
|
1206
|
+
case 25:
|
|
1207
|
+
_context2.prev = 25;
|
|
1208
|
+
_context2.t0 = _context2["catch"](6);
|
|
1079
1209
|
console.log(_context2.t0);
|
|
1080
|
-
case
|
|
1210
|
+
case 28:
|
|
1081
1211
|
return _context2.abrupt("return", false);
|
|
1082
|
-
case
|
|
1212
|
+
case 29:
|
|
1083
1213
|
return _context2.abrupt("return", true);
|
|
1084
|
-
case
|
|
1214
|
+
case 30:
|
|
1085
1215
|
case "end":
|
|
1086
1216
|
return _context2.stop();
|
|
1087
1217
|
}
|
|
1088
|
-
}, _callee2, null, [[
|
|
1218
|
+
}, _callee2, null, [[6, 25]]);
|
|
1089
1219
|
}));
|
|
1090
1220
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1091
1221
|
}
|
|
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
1222
|
var isTxAlreadyCreated = function isTxAlreadyCreated(swap, step) {
|
|
1119
|
-
var _step$
|
|
1120
|
-
var result = swap.wallets[((_step$
|
|
1223
|
+
var _step$evmTransaction, _step$evmApprovalTran, _step$tronTransaction, _step$tronApprovalTra, _step$starknetTransac, _step$starknetApprova, _step$cosmosTransacti, _step$solanaTransacti, _step$transferTransac;
|
|
1224
|
+
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
1225
|
return result !== null;
|
|
1122
1226
|
};
|
|
1123
1227
|
function resetNetworkStatus(actions) {
|
|
@@ -1159,7 +1263,7 @@ function updateNetworkStatus(actions, data) {
|
|
|
1159
1263
|
}
|
|
1160
1264
|
/**
|
|
1161
1265
|
* Event handler for blocked tasks.
|
|
1162
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for
|
|
1266
|
+
* If a transcation execution is manually blocked (like for parallel or waiting for wallet),
|
|
1163
1267
|
* This function will be called by queue manager using `queue definition`.
|
|
1164
1268
|
*
|
|
1165
1269
|
* It checks if the required wallet is connected, unblock the queue to be run.
|
|
@@ -1168,11 +1272,14 @@ function onBlockForConnectWallet(event, meta) {
|
|
|
1168
1272
|
var context = meta.context,
|
|
1169
1273
|
queue = meta.queue;
|
|
1170
1274
|
var swap = queue.getStorage().swapDetails;
|
|
1171
|
-
|
|
1275
|
+
var _isRequiredWalletConn = isRequiredWalletConnected(swap, context.state),
|
|
1276
|
+
ok = _isRequiredWalletConn.ok,
|
|
1277
|
+
reason = _isRequiredWalletConn.reason;
|
|
1278
|
+
if (!ok) {
|
|
1172
1279
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1173
1280
|
var currentStep = getCurrentStep(swap);
|
|
1174
1281
|
context.notifier({
|
|
1175
|
-
eventType: 'waiting_for_connecting_wallet',
|
|
1282
|
+
eventType: reason === 'account_miss_match' ? 'waiting_for_change_wallet_account' : 'waiting_for_connecting_wallet',
|
|
1176
1283
|
swap: swap,
|
|
1177
1284
|
step: currentStep
|
|
1178
1285
|
});
|
|
@@ -1224,7 +1331,7 @@ function onBlockForChangeNetwork(_event, meta) {
|
|
|
1224
1331
|
}
|
|
1225
1332
|
/**
|
|
1226
1333
|
* Event handler for blocked tasks. (Parallel mode)
|
|
1227
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for walle),
|
|
1334
|
+
* If a transcation execution flow is manually blocked (like for parallel or waiting for walle),
|
|
1228
1335
|
* This function will be called by queue manager using `queue definition`.
|
|
1229
1336
|
*
|
|
1230
1337
|
* It checks the blocked tasks, if there is no active `claimed` queue, try to give it to the best candidate.
|
|
@@ -1233,7 +1340,8 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1233
1340
|
var getBlockedTasks = meta.getBlockedTasks,
|
|
1234
1341
|
forceExecute = meta.forceExecute,
|
|
1235
1342
|
queue = meta.queue,
|
|
1236
|
-
manager = meta.manager
|
|
1343
|
+
manager = meta.manager,
|
|
1344
|
+
context = meta.context;
|
|
1237
1345
|
var _claimQueue = claimQueue(),
|
|
1238
1346
|
setClaimer = _claimQueue.setClaimer,
|
|
1239
1347
|
claimedBy = _claimQueue.claimedBy,
|
|
@@ -1247,12 +1355,14 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1247
1355
|
}
|
|
1248
1356
|
var claimerId = claimedBy();
|
|
1249
1357
|
var isClaimedByAnyQueue = !!claimerId;
|
|
1358
|
+
if (claimerId === queue.id) return;
|
|
1250
1359
|
// Check if any queue `claimed` before, if yes, we don't should do anything.
|
|
1251
1360
|
if (isClaimedByAnyQueue) {
|
|
1252
1361
|
// We need to keep the latest swap messages
|
|
1253
1362
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1254
1363
|
getStorage: queue.getStorage.bind(queue),
|
|
1255
|
-
setStorage: queue.setStorage.bind(queue)
|
|
1364
|
+
setStorage: queue.setStorage.bind(queue),
|
|
1365
|
+
notifier: context.notifier
|
|
1256
1366
|
});
|
|
1257
1367
|
return;
|
|
1258
1368
|
}
|
|
@@ -1277,7 +1387,7 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1277
1387
|
resetClaimedBy: function resetClaimedBy() {
|
|
1278
1388
|
reset();
|
|
1279
1389
|
// TODO: Use key generator
|
|
1280
|
-
retryOn(type + "-" + network + "
|
|
1390
|
+
retryOn(type + "-" + network + ":" + address, context.notifier, manager);
|
|
1281
1391
|
}
|
|
1282
1392
|
});
|
|
1283
1393
|
}
|
|
@@ -1286,16 +1396,28 @@ function isRequiredWalletConnected(swap, getState) {
|
|
|
1286
1396
|
type = _getRequiredWallet4.type,
|
|
1287
1397
|
address = _getRequiredWallet4.address;
|
|
1288
1398
|
if (!type || !address) {
|
|
1289
|
-
return
|
|
1399
|
+
return {
|
|
1400
|
+
ok: false,
|
|
1401
|
+
reason: 'not_connected'
|
|
1402
|
+
};
|
|
1290
1403
|
}
|
|
1291
1404
|
var walletState = getState(type);
|
|
1292
|
-
var accounts = walletState.accounts
|
|
1405
|
+
var accounts = walletState.accounts,
|
|
1406
|
+
connected = walletState.connected;
|
|
1293
1407
|
var connectedAccounts = accounts || [];
|
|
1294
|
-
|
|
1408
|
+
if (!connected) return {
|
|
1409
|
+
ok: false,
|
|
1410
|
+
reason: 'not_connected'
|
|
1411
|
+
};
|
|
1412
|
+
var matched = connectedAccounts.some(function (account) {
|
|
1295
1413
|
var _readAccountAddress = walletsCore.readAccountAddress(account),
|
|
1296
1414
|
accountAddress = _readAccountAddress.address;
|
|
1297
1415
|
return address === accountAddress;
|
|
1298
1416
|
});
|
|
1417
|
+
return {
|
|
1418
|
+
ok: matched,
|
|
1419
|
+
reason: 'account_miss_match'
|
|
1420
|
+
};
|
|
1299
1421
|
}
|
|
1300
1422
|
function singTransaction(actions) {
|
|
1301
1423
|
var getStorage = actions.getStorage,
|
|
@@ -1319,10 +1441,11 @@ function singTransaction(actions) {
|
|
|
1319
1441
|
tronApprovalTransaction = currentStep.tronApprovalTransaction,
|
|
1320
1442
|
starknetTransaction = currentStep.starknetTransaction,
|
|
1321
1443
|
starknetApprovalTransaction = currentStep.starknetApprovalTransaction;
|
|
1322
|
-
var sourceWallet = getRelatedWallet
|
|
1323
|
-
var walletAddress = getCurrentAddressOf
|
|
1444
|
+
var sourceWallet = getRelatedWallet(swap, currentStep);
|
|
1445
|
+
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
1324
1446
|
var walletSigners = getSigners(sourceWallet.walletType);
|
|
1325
1447
|
var onFinish = function onFinish() {
|
|
1448
|
+
// TODO resetClaimedBy is undefined here
|
|
1326
1449
|
if (actions.context.resetClaimedBy) {
|
|
1327
1450
|
actions.context.resetClaimedBy();
|
|
1328
1451
|
}
|
|
@@ -1340,27 +1463,18 @@ function singTransaction(actions) {
|
|
|
1340
1463
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1341
1464
|
});
|
|
1342
1465
|
notifier(_extends({
|
|
1343
|
-
eventType: '
|
|
1466
|
+
eventType: 'confirm_approve_contract'
|
|
1344
1467
|
}, updateResult));
|
|
1345
1468
|
// Execute transaction
|
|
1346
1469
|
walletSigners.getSigner(rangoSdk.TransactionType.EVM).signAndSendTx(evmApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1347
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1348
1470
|
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
|
-
}));
|
|
1471
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1357
1472
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1358
1473
|
next();
|
|
1359
1474
|
onFinish();
|
|
1360
1475
|
}, function (error) {
|
|
1361
1476
|
var _error$root, _error$root2, _error$root3;
|
|
1362
1477
|
if (swap.status === 'failed') return;
|
|
1363
|
-
console.debug('error in approving', error);
|
|
1364
1478
|
var _prettifyErrorMessage = prettifyErrorMessage(error),
|
|
1365
1479
|
extraMessage = _prettifyErrorMessage.extraMessage,
|
|
1366
1480
|
extraMessageDetail = _prettifyErrorMessage.extraMessageDetail,
|
|
@@ -1395,27 +1509,18 @@ function singTransaction(actions) {
|
|
|
1395
1509
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1396
1510
|
});
|
|
1397
1511
|
notifier(_extends({
|
|
1398
|
-
eventType: '
|
|
1512
|
+
eventType: 'confirm_approve_contract'
|
|
1399
1513
|
}, _updateResult));
|
|
1400
1514
|
// Execute transaction
|
|
1401
1515
|
walletSigners.getSigner(rangoSdk.TransactionType.TRON).signAndSendTx(tronApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1402
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1403
1516
|
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
|
-
}));
|
|
1517
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1412
1518
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1413
1519
|
next();
|
|
1414
1520
|
onFinish();
|
|
1415
1521
|
}, function (error) {
|
|
1416
1522
|
var _error$root4, _error$root5, _error$root6;
|
|
1417
1523
|
if (swap.status === 'failed') return;
|
|
1418
|
-
console.debug('error in approving', error);
|
|
1419
1524
|
var _prettifyErrorMessage2 = prettifyErrorMessage(error),
|
|
1420
1525
|
extraMessage = _prettifyErrorMessage2.extraMessage,
|
|
1421
1526
|
extraMessageDetail = _prettifyErrorMessage2.extraMessageDetail,
|
|
@@ -1450,27 +1555,18 @@ function singTransaction(actions) {
|
|
|
1450
1555
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1451
1556
|
});
|
|
1452
1557
|
notifier(_extends({
|
|
1453
|
-
eventType: '
|
|
1558
|
+
eventType: 'confirm_approve_contract'
|
|
1454
1559
|
}, _updateResult2));
|
|
1455
1560
|
// Execute transaction
|
|
1456
1561
|
walletSigners.getSigner(rangoSdk.TransactionType.STARKNET).signAndSendTx(starknetApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1457
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1458
1562
|
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
|
-
}));
|
|
1563
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1467
1564
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1468
1565
|
next();
|
|
1469
1566
|
onFinish();
|
|
1470
1567
|
}, function (error) {
|
|
1471
1568
|
var _error$root7, _error$root8, _error$root9;
|
|
1472
1569
|
if (swap.status === 'failed') return;
|
|
1473
|
-
console.debug('error in approving', error);
|
|
1474
1570
|
var _prettifyErrorMessage3 = prettifyErrorMessage(error),
|
|
1475
1571
|
extraMessage = _prettifyErrorMessage3.extraMessage,
|
|
1476
1572
|
extraMessageDetail = _prettifyErrorMessage3.extraMessageDetail,
|
|
@@ -1496,17 +1592,20 @@ function singTransaction(actions) {
|
|
|
1496
1592
|
return;
|
|
1497
1593
|
}
|
|
1498
1594
|
var hasAlreadyProceededToSign = typeof swap.hasAlreadyProceededToSign === 'boolean';
|
|
1595
|
+
var nextStepStatusBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'failed' : 'running';
|
|
1596
|
+
var errorCodeBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'TX_EXPIRED' : null;
|
|
1499
1597
|
var executeMessage = hasAlreadyProceededToSign ? 'Transaction is expired. Please try again' : 'executing transaction';
|
|
1500
1598
|
var executeDetails = "" + (sourceWallet.walletType === walletsShared.WalletType.WALLET_CONNECT ? 'Check your mobile phone' : '');
|
|
1501
1599
|
if (!!transferTransaction) {
|
|
1502
1600
|
var _updateResult3 = updateSwapStatus({
|
|
1503
1601
|
getStorage: getStorage,
|
|
1504
1602
|
setStorage: setStorage,
|
|
1505
|
-
nextStepStatus:
|
|
1506
|
-
nextStatus:
|
|
1603
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1604
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1507
1605
|
message: executeMessage,
|
|
1508
1606
|
details: executeDetails,
|
|
1509
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1607
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1608
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1510
1609
|
});
|
|
1511
1610
|
var notification = getSwapNotitfication('confirm_transfer', _updateResult3);
|
|
1512
1611
|
notifier(notification);
|
|
@@ -1515,7 +1614,7 @@ function singTransaction(actions) {
|
|
|
1515
1614
|
onFinish();
|
|
1516
1615
|
} else {
|
|
1517
1616
|
walletSigners.getSigner(rangoSdk.TransactionType.TRANSFER).signAndSendTx(transferTransaction, walletAddress, null).then(function (txId) {
|
|
1518
|
-
setStepTransactionIds(actions, txId, '
|
|
1617
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1519
1618
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1520
1619
|
next();
|
|
1521
1620
|
onFinish();
|
|
@@ -1545,11 +1644,12 @@ function singTransaction(actions) {
|
|
|
1545
1644
|
var _updateResult4 = updateSwapStatus({
|
|
1546
1645
|
getStorage: getStorage,
|
|
1547
1646
|
setStorage: setStorage,
|
|
1548
|
-
nextStepStatus:
|
|
1549
|
-
nextStatus:
|
|
1647
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1648
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1550
1649
|
message: executeMessage,
|
|
1551
1650
|
details: executeDetails,
|
|
1552
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1651
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1652
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1553
1653
|
});
|
|
1554
1654
|
var _notification = getSwapNotitfication('calling_smart_contract', _updateResult4);
|
|
1555
1655
|
notifier(_notification);
|
|
@@ -1558,7 +1658,7 @@ function singTransaction(actions) {
|
|
|
1558
1658
|
onFinish();
|
|
1559
1659
|
} else {
|
|
1560
1660
|
walletSigners.getSigner(rangoSdk.TransactionType.EVM).signAndSendTx(evmTransaction, walletAddress, null).then(function (id) {
|
|
1561
|
-
setStepTransactionIds(actions, id, '
|
|
1661
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1562
1662
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1563
1663
|
next();
|
|
1564
1664
|
onFinish();
|
|
@@ -1592,11 +1692,12 @@ function singTransaction(actions) {
|
|
|
1592
1692
|
var _updateResult5 = updateSwapStatus({
|
|
1593
1693
|
getStorage: getStorage,
|
|
1594
1694
|
setStorage: setStorage,
|
|
1595
|
-
nextStepStatus:
|
|
1596
|
-
nextStatus:
|
|
1695
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1696
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1597
1697
|
message: executeMessage,
|
|
1598
1698
|
details: executeDetails,
|
|
1599
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1699
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1700
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1600
1701
|
});
|
|
1601
1702
|
var _notification2 = getSwapNotitfication('calling_smart_contract', _updateResult5);
|
|
1602
1703
|
notifier(_notification2);
|
|
@@ -1631,7 +1732,7 @@ function singTransaction(actions) {
|
|
|
1631
1732
|
walletSigners.getSigner(rangoSdk.TransactionType.COSMOS).signAndSendTx(cosmosTransaction, walletAddress, null).then(
|
|
1632
1733
|
// todo
|
|
1633
1734
|
function (id) {
|
|
1634
|
-
setStepTransactionIds(actions, id, '
|
|
1735
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1635
1736
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1636
1737
|
next();
|
|
1637
1738
|
onFinish();
|
|
@@ -1661,11 +1762,12 @@ function singTransaction(actions) {
|
|
|
1661
1762
|
var _updateResult7 = updateSwapStatus({
|
|
1662
1763
|
getStorage: getStorage,
|
|
1663
1764
|
setStorage: setStorage,
|
|
1664
|
-
nextStepStatus:
|
|
1665
|
-
nextStatus:
|
|
1765
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1766
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1666
1767
|
message: executeMessage,
|
|
1667
1768
|
details: executeDetails,
|
|
1668
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1769
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1770
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1669
1771
|
});
|
|
1670
1772
|
var _notification3 = getSwapNotitfication('calling_smart_contract', _updateResult7);
|
|
1671
1773
|
notifier(_notification3);
|
|
@@ -1675,7 +1777,7 @@ function singTransaction(actions) {
|
|
|
1675
1777
|
} else {
|
|
1676
1778
|
var tx = solanaTransaction;
|
|
1677
1779
|
walletSigners.getSigner(rangoSdk.TransactionType.SOLANA).signAndSendTx(tx, walletAddress, null).then(function (txId) {
|
|
1678
|
-
setStepTransactionIds(actions, txId, '
|
|
1780
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1679
1781
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1680
1782
|
next();
|
|
1681
1783
|
onFinish();
|
|
@@ -1705,11 +1807,12 @@ function singTransaction(actions) {
|
|
|
1705
1807
|
var _updateResult8 = updateSwapStatus({
|
|
1706
1808
|
getStorage: getStorage,
|
|
1707
1809
|
setStorage: setStorage,
|
|
1708
|
-
nextStepStatus:
|
|
1709
|
-
nextStatus:
|
|
1810
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1811
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1710
1812
|
message: executeMessage,
|
|
1711
1813
|
details: executeDetails,
|
|
1712
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1814
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1815
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1713
1816
|
});
|
|
1714
1817
|
var _notification4 = getSwapNotitfication('calling_smart_contract', _updateResult8);
|
|
1715
1818
|
notifier(_notification4);
|
|
@@ -1718,7 +1821,7 @@ function singTransaction(actions) {
|
|
|
1718
1821
|
onFinish();
|
|
1719
1822
|
} else {
|
|
1720
1823
|
walletSigners.getSigner(rangoSdk.TransactionType.TRON).signAndSendTx(tronTransaction, walletAddress, null).then(function (id) {
|
|
1721
|
-
setStepTransactionIds(actions, id, '
|
|
1824
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1722
1825
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1723
1826
|
next();
|
|
1724
1827
|
onFinish();
|
|
@@ -1752,11 +1855,12 @@ function singTransaction(actions) {
|
|
|
1752
1855
|
var _updateResult9 = updateSwapStatus({
|
|
1753
1856
|
getStorage: getStorage,
|
|
1754
1857
|
setStorage: setStorage,
|
|
1755
|
-
nextStepStatus:
|
|
1756
|
-
nextStatus:
|
|
1858
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1859
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1757
1860
|
message: executeMessage,
|
|
1758
1861
|
details: executeDetails,
|
|
1759
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1862
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1863
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1760
1864
|
});
|
|
1761
1865
|
var _notification5 = getSwapNotitfication('calling_smart_contract', _updateResult9);
|
|
1762
1866
|
notifier(_notification5);
|
|
@@ -1765,7 +1869,7 @@ function singTransaction(actions) {
|
|
|
1765
1869
|
onFinish();
|
|
1766
1870
|
} else {
|
|
1767
1871
|
walletSigners.getSigner(rangoSdk.TransactionType.STARKNET).signAndSendTx(starknetTransaction, walletAddress, null).then(function (id) {
|
|
1768
|
-
setStepTransactionIds(actions, id, '
|
|
1872
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1769
1873
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1770
1874
|
next();
|
|
1771
1875
|
onFinish();
|
|
@@ -1819,7 +1923,9 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1819
1923
|
var hasWaitingForConnect = Object.keys(q.list.state.tasks).some(function (taskId) {
|
|
1820
1924
|
var _task$blockedFor;
|
|
1821
1925
|
var task = q.list.state.tasks[taskId];
|
|
1822
|
-
return task.status === queueManagerCore.Status.BLOCKED &&
|
|
1926
|
+
return task.status === queueManagerCore.Status.BLOCKED &&
|
|
1927
|
+
// TODO double check later
|
|
1928
|
+
[BlockReason.WAIT_FOR_CONNECT_WALLET].includes((_task$blockedFor = task.blockedFor) == null ? void 0 : _task$blockedFor.reason);
|
|
1823
1929
|
});
|
|
1824
1930
|
if (currentStepRequiredWallet === wallet && hasWaitingForConnect && getCurrentBlockchainOfOrNull(swap, currentStep) != network) {
|
|
1825
1931
|
var queueInstance = q.list;
|
|
@@ -1833,10 +1939,17 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1833
1939
|
},
|
|
1834
1940
|
silent: true
|
|
1835
1941
|
});
|
|
1836
|
-
markRunningSwapAsSwitchingNetwork({
|
|
1942
|
+
var result = markRunningSwapAsSwitchingNetwork({
|
|
1837
1943
|
getStorage: queueInstance.getStorage.bind(queueInstance),
|
|
1838
1944
|
setStorage: queueInstance.setStorage.bind(queueInstance)
|
|
1839
1945
|
});
|
|
1946
|
+
if (result) {
|
|
1947
|
+
params == null ? void 0 : params.notifier({
|
|
1948
|
+
eventType: 'waiting_for_network_change',
|
|
1949
|
+
swap: result.swap,
|
|
1950
|
+
step: result.step
|
|
1951
|
+
});
|
|
1952
|
+
}
|
|
1840
1953
|
}
|
|
1841
1954
|
}
|
|
1842
1955
|
}
|
|
@@ -1867,6 +1980,49 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1867
1980
|
}
|
|
1868
1981
|
});
|
|
1869
1982
|
}
|
|
1983
|
+
/**
|
|
1984
|
+
* Get list of all running swaps
|
|
1985
|
+
*
|
|
1986
|
+
* @param manager
|
|
1987
|
+
* @returns list of pending swaps
|
|
1988
|
+
*/
|
|
1989
|
+
function getRunningSwaps(manager) {
|
|
1990
|
+
var queues = (manager == null ? void 0 : manager.getAll()) || new Map();
|
|
1991
|
+
var result = [];
|
|
1992
|
+
queues.forEach(function (q) {
|
|
1993
|
+
// retry only on affected queues
|
|
1994
|
+
var queueStorage = q.list.getStorage();
|
|
1995
|
+
var swap = queueStorage == null ? void 0 : queueStorage.swapDetails;
|
|
1996
|
+
if (!swap || swap.status !== 'running') return;
|
|
1997
|
+
result.push(swap);
|
|
1998
|
+
});
|
|
1999
|
+
return result;
|
|
2000
|
+
}
|
|
2001
|
+
/**
|
|
2002
|
+
*
|
|
2003
|
+
* Trying to reset notifications for pending swaps to correct message on page load.
|
|
2004
|
+
* We could remove this after supporting auto connect for wallets.
|
|
2005
|
+
*
|
|
2006
|
+
* @param swaps
|
|
2007
|
+
* @param notifier
|
|
2008
|
+
* @returns
|
|
2009
|
+
*/
|
|
2010
|
+
function resetRunningSwapNotifsOnPageLoad(runningSwaps, notifier) {
|
|
2011
|
+
runningSwaps.forEach(function (swap) {
|
|
2012
|
+
var currentStep = getCurrentStep(swap);
|
|
2013
|
+
var eventType;
|
|
2014
|
+
if ((currentStep == null ? void 0 : currentStep.networkStatus) === exports.PendingSwapNetworkStatus.WaitingForQueue) eventType = 'waiting_for_queue';else if ((swap == null ? void 0 : swap.status) === 'running') {
|
|
2015
|
+
eventType = 'waiting_for_connecting_wallet';
|
|
2016
|
+
}
|
|
2017
|
+
if (!!eventType && !!notifier) {
|
|
2018
|
+
notifier({
|
|
2019
|
+
eventType: eventType,
|
|
2020
|
+
swap: swap,
|
|
2021
|
+
step: currentStep
|
|
2022
|
+
});
|
|
2023
|
+
}
|
|
2024
|
+
});
|
|
2025
|
+
}
|
|
1870
2026
|
/**
|
|
1871
2027
|
*
|
|
1872
2028
|
* Try to run blocked tasks by wallet and network name.
|
|
@@ -1878,7 +2034,7 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1878
2034
|
* @param manager
|
|
1879
2035
|
* @returns
|
|
1880
2036
|
*/
|
|
1881
|
-
function retryOn(wallet_network, manager, options) {
|
|
2037
|
+
function retryOn(wallet_network, notifier, manager, options) {
|
|
1882
2038
|
var _finalQueueToBeRun;
|
|
1883
2039
|
if (options === void 0) {
|
|
1884
2040
|
options = {
|
|
@@ -1911,7 +2067,6 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1911
2067
|
}
|
|
1912
2068
|
}
|
|
1913
2069
|
});
|
|
1914
|
-
// const isWaitingForConnectWallet = (status: Status) =>
|
|
1915
2070
|
var finalQueueToBeRun = undefined;
|
|
1916
2071
|
if (walletAndNetworkMatched.length > 0) {
|
|
1917
2072
|
finalQueueToBeRun = walletAndNetworkMatched[0];
|
|
@@ -1920,7 +2075,8 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1920
2075
|
var currentQueue = walletAndNetworkMatched[i];
|
|
1921
2076
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1922
2077
|
getStorage: currentQueue.getStorage.bind(currentQueue),
|
|
1923
|
-
setStorage: currentQueue.setStorage.bind(currentQueue)
|
|
2078
|
+
setStorage: currentQueue.setStorage.bind(currentQueue),
|
|
2079
|
+
notifier: notifier
|
|
1924
2080
|
});
|
|
1925
2081
|
}
|
|
1926
2082
|
}
|
|
@@ -1986,7 +2142,7 @@ function cancelSwap(swap) {
|
|
|
1986
2142
|
});
|
|
1987
2143
|
}
|
|
1988
2144
|
|
|
1989
|
-
var INTERVAL_FOR_CHECK =
|
|
2145
|
+
var INTERVAL_FOR_CHECK = 3000;
|
|
1990
2146
|
/**
|
|
1991
2147
|
* Subscribe to status of swap transaction by checking from server periodically.
|
|
1992
2148
|
* After getting the status, notify the user and schedule `SCHEDULE_NEXT_STEP`.
|
|
@@ -2033,7 +2189,7 @@ function _checkTransactionStatus() {
|
|
|
2033
2189
|
outputAmount = ((_status = status) == null ? void 0 : _status.outputAmount) || (!!currentStep.outputAmount ? currentStep.outputAmount : null);
|
|
2034
2190
|
prevOutputAmount = currentStep.outputAmount;
|
|
2035
2191
|
swap.extraMessage = ((_status2 = status) == null ? void 0 : _status2.extraMessage) || swap.extraMessage;
|
|
2036
|
-
swap.extraMessageSeverity = MessageSeverity.info;
|
|
2192
|
+
swap.extraMessageSeverity = exports.MessageSeverity.info;
|
|
2037
2193
|
swap.extraMessageDetail = '';
|
|
2038
2194
|
currentStep.status = ((_status3 = status) == null ? void 0 : _status3.status) || currentStep.status;
|
|
2039
2195
|
currentStep.diagnosisUrl = ((_status4 = status) == null ? void 0 : _status4.diagnosisUrl) || currentStep.diagnosisUrl || null;
|
|
@@ -2044,6 +2200,7 @@ function _checkTransactionStatus() {
|
|
|
2044
2200
|
if (!!newTransaction) {
|
|
2045
2201
|
currentStep.status = 'created';
|
|
2046
2202
|
currentStep.executedTransactionId = null;
|
|
2203
|
+
currentStep.executedTransactionTime = null;
|
|
2047
2204
|
currentStep.transferTransaction = null;
|
|
2048
2205
|
currentStep.cosmosTransaction = null;
|
|
2049
2206
|
currentStep.evmTransaction = null;
|
|
@@ -2071,11 +2228,22 @@ function _checkTransactionStatus() {
|
|
|
2071
2228
|
eventType: 'step_completed_with_output',
|
|
2072
2229
|
swap: swap,
|
|
2073
2230
|
step: currentStep
|
|
2074
|
-
});
|
|
2231
|
+
});else if (prevOutputAmount === null && outputAmount === null) {
|
|
2232
|
+
// it is needed to set notification after reloading the page
|
|
2233
|
+
context.notifier({
|
|
2234
|
+
eventType: 'check_tx_status',
|
|
2235
|
+
swap: swap,
|
|
2236
|
+
step: currentStep
|
|
2237
|
+
});
|
|
2238
|
+
}
|
|
2075
2239
|
if (currentStep.status === 'success') {
|
|
2076
2240
|
nextStep = getNextStep(swap, currentStep);
|
|
2077
2241
|
swap.extraMessageDetail = '';
|
|
2078
2242
|
swap.extraMessage = !!nextStep ? "starting next step: " + nextStep.swapperId + ": " + nextStep.fromBlockchain + " -> " + nextStep.toBlockchain : '';
|
|
2243
|
+
} else if (currentStep.status === 'failed') {
|
|
2244
|
+
swap.extraMessage = 'Transaction failed in blockchain';
|
|
2245
|
+
swap.extraMessageSeverity = exports.MessageSeverity.error;
|
|
2246
|
+
swap.extraMessageDetail = '';
|
|
2079
2247
|
}
|
|
2080
2248
|
// Sync data with storage
|
|
2081
2249
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2115,38 +2283,70 @@ function checkApprovalStatus(_x2) {
|
|
|
2115
2283
|
*/
|
|
2116
2284
|
function _checkApprovalStatus() {
|
|
2117
2285
|
_checkApprovalStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
|
|
2118
|
-
var getStorage, setStorage, next, schedule, retry, context, swap, currentStep, isApproved, response;
|
|
2286
|
+
var getStorage, setStorage, next, schedule, retry, failed, context, swap, currentStep, isApproved, response, updateResult;
|
|
2119
2287
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
2120
2288
|
while (1) switch (_context2.prev = _context2.next) {
|
|
2121
2289
|
case 0:
|
|
2122
|
-
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, context = _ref2.context;
|
|
2123
|
-
swap = getStorage().swapDetails; //
|
|
2290
|
+
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, failed = _ref2.failed, context = _ref2.context;
|
|
2291
|
+
swap = getStorage().swapDetails; // double check it after fixing parallel
|
|
2292
|
+
// const onFinish = () => {
|
|
2293
|
+
// // TODO resetClaimedBy is undefined here
|
|
2294
|
+
// if (context.resetClaimedBy) {
|
|
2295
|
+
// context.resetClaimedBy();
|
|
2296
|
+
// }
|
|
2297
|
+
// };
|
|
2298
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
2124
2299
|
currentStep = getCurrentStep(swap);
|
|
2125
2300
|
isApproved = false;
|
|
2126
2301
|
_context2.prev = 4;
|
|
2127
2302
|
_context2.next = 7;
|
|
2128
|
-
return httpService.checkApproval(swap.requestId);
|
|
2303
|
+
return httpService.checkApproval(swap.requestId, currentStep.executedTransactionId || '');
|
|
2129
2304
|
case 7:
|
|
2130
2305
|
response = _context2.sent;
|
|
2131
2306
|
isApproved = response.isApproved;
|
|
2307
|
+
if (!isApproved && response.txStatus === 'failed') {
|
|
2308
|
+
// approve transaction failed on
|
|
2309
|
+
// we should fail the whole swap
|
|
2310
|
+
updateResult = updateSwapStatus({
|
|
2311
|
+
getStorage: getStorage,
|
|
2312
|
+
setStorage: setStorage,
|
|
2313
|
+
nextStatus: 'failed',
|
|
2314
|
+
nextStepStatus: 'failed',
|
|
2315
|
+
errorCode: 'SEND_TX_FAILED',
|
|
2316
|
+
message: 'Approve transaction failed',
|
|
2317
|
+
details: 'Smart contract approval failed in blockchain.'
|
|
2318
|
+
});
|
|
2319
|
+
context.notifier(_extends({
|
|
2320
|
+
eventType: 'smart_contract_call_failed'
|
|
2321
|
+
}, updateResult));
|
|
2322
|
+
failed();
|
|
2323
|
+
// onFinish();
|
|
2324
|
+
} else if (!isApproved) {
|
|
2325
|
+
// it is needed to set notification after reloading the page
|
|
2326
|
+
context.notifier({
|
|
2327
|
+
eventType: 'check_approve_tx_status',
|
|
2328
|
+
swap: swap,
|
|
2329
|
+
step: currentStep
|
|
2330
|
+
});
|
|
2331
|
+
}
|
|
2132
2332
|
_context2.next = 15;
|
|
2133
2333
|
break;
|
|
2134
|
-
case
|
|
2135
|
-
_context2.prev =
|
|
2334
|
+
case 12:
|
|
2335
|
+
_context2.prev = 12;
|
|
2136
2336
|
_context2.t0 = _context2["catch"](4);
|
|
2137
|
-
console.error('Failed to check getApprovedAmount', _context2.t0);
|
|
2138
2337
|
isApproved = false;
|
|
2139
2338
|
case 15:
|
|
2140
2339
|
if (!isApproved) {
|
|
2141
|
-
_context2.next =
|
|
2340
|
+
_context2.next = 31;
|
|
2142
2341
|
break;
|
|
2143
2342
|
}
|
|
2144
2343
|
currentStep.status = 'approved';
|
|
2145
2344
|
swap.extraMessage = "Spending " + currentStep.fromSymbol + " approved successfully.";
|
|
2146
2345
|
swap.extraMessageDetail = null;
|
|
2147
|
-
swap.extraMessageSeverity = MessageSeverity.success;
|
|
2346
|
+
swap.extraMessageSeverity = exports.MessageSeverity.success;
|
|
2148
2347
|
currentStep.evmApprovalTransaction = null;
|
|
2149
2348
|
currentStep.executedTransactionId = null;
|
|
2349
|
+
currentStep.executedTransactionTime = null;
|
|
2150
2350
|
currentStep.starknetApprovalTransaction = null;
|
|
2151
2351
|
currentStep.tronApprovalTransaction = null;
|
|
2152
2352
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2159,18 +2359,18 @@ function _checkApprovalStatus() {
|
|
|
2159
2359
|
});
|
|
2160
2360
|
schedule(SwapActionTypes.SCHEDULE_NEXT_STEP);
|
|
2161
2361
|
next();
|
|
2162
|
-
_context2.next =
|
|
2362
|
+
_context2.next = 34;
|
|
2163
2363
|
break;
|
|
2164
|
-
case
|
|
2165
|
-
_context2.next =
|
|
2364
|
+
case 31:
|
|
2365
|
+
_context2.next = 33;
|
|
2166
2366
|
return delay(2000);
|
|
2167
|
-
case 32:
|
|
2168
|
-
retry();
|
|
2169
2367
|
case 33:
|
|
2368
|
+
retry();
|
|
2369
|
+
case 34:
|
|
2170
2370
|
case "end":
|
|
2171
2371
|
return _context2.stop();
|
|
2172
2372
|
}
|
|
2173
|
-
}, _callee2, null, [[4,
|
|
2373
|
+
}, _callee2, null, [[4, 12]]);
|
|
2174
2374
|
}));
|
|
2175
2375
|
return _checkApprovalStatus.apply(this, arguments);
|
|
2176
2376
|
}
|
|
@@ -2289,7 +2489,7 @@ function _createTransaction() {
|
|
|
2289
2489
|
nextStepStatus: 'failed',
|
|
2290
2490
|
message: extraMessage,
|
|
2291
2491
|
details: extraMessageDetail,
|
|
2292
|
-
errorCode:
|
|
2492
|
+
errorCode: 'FETCH_TX_FAILED'
|
|
2293
2493
|
});
|
|
2294
2494
|
context.notifier(_extends({
|
|
2295
2495
|
eventType: 'task_failed'
|
|
@@ -2336,7 +2536,7 @@ function _executeTransaction() {
|
|
|
2336
2536
|
currentStep = getCurrentStep(swap); // Resetting network status, so we will set it again during the running of this task.
|
|
2337
2537
|
resetNetworkStatus(actions);
|
|
2338
2538
|
/* Make sure wallet is connected and also the connected wallet is matched with tx by checking address. */
|
|
2339
|
-
isWrongAddress = !isRequiredWalletConnected(swap, context.state);
|
|
2539
|
+
isWrongAddress = !isRequiredWalletConnected(swap, context.state).ok;
|
|
2340
2540
|
if (!isWrongAddress) {
|
|
2341
2541
|
_context.next = 15;
|
|
2342
2542
|
break;
|
|
@@ -2361,13 +2561,13 @@ function _executeTransaction() {
|
|
|
2361
2561
|
We only run one request at a time (In parallel mode).
|
|
2362
2562
|
*/
|
|
2363
2563
|
needsToBlockQueue = isNeedBlockQueueForParallel(currentStep);
|
|
2364
|
-
if (!(needsToBlockQueue && !isClaimed
|
|
2564
|
+
if (!(needsToBlockQueue && !isClaimed)) {
|
|
2365
2565
|
_context.next = 20;
|
|
2366
2566
|
break;
|
|
2367
2567
|
}
|
|
2368
2568
|
_blockedFor = {
|
|
2369
2569
|
reason: BlockReason.DEPENDS_ON_OTHER_QUEUES,
|
|
2370
|
-
description: 'Waiting for other
|
|
2570
|
+
description: 'Waiting for other swaps to complete',
|
|
2371
2571
|
details: {}
|
|
2372
2572
|
};
|
|
2373
2573
|
requestBlock(_blockedFor);
|
|
@@ -2394,7 +2594,7 @@ function _executeTransaction() {
|
|
|
2394
2594
|
updateNetworkStatus(actions, {
|
|
2395
2595
|
message: '',
|
|
2396
2596
|
details: 'Wallet network changed successfully',
|
|
2397
|
-
status: PendingSwapNetworkStatus.NetworkChanged
|
|
2597
|
+
status: exports.PendingSwapNetworkStatus.NetworkChanged
|
|
2398
2598
|
});
|
|
2399
2599
|
case 32:
|
|
2400
2600
|
// All the conditions are met. We can safely send the tx to wallet for sign.
|
|
@@ -2431,6 +2631,7 @@ function scheduleNextStep(_ref) {
|
|
|
2431
2631
|
schedule(SwapActionTypes.EXECUTE_TRANSACTION);
|
|
2432
2632
|
return next();
|
|
2433
2633
|
}
|
|
2634
|
+
// TODO double check it after approval changes
|
|
2434
2635
|
if (currentStep != null && currentStep.executedTransactionId) {
|
|
2435
2636
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
2436
2637
|
return next();
|
|
@@ -2466,6 +2667,29 @@ function start(_ref) {
|
|
|
2466
2667
|
next();
|
|
2467
2668
|
}
|
|
2468
2669
|
|
|
2670
|
+
var _actions;
|
|
2671
|
+
/**
|
|
2672
|
+
*
|
|
2673
|
+
* The idea behind this queue is to be able dynamically add some steps.
|
|
2674
|
+
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2675
|
+
* or waits for something happend (like checking status of a transaction from server)
|
|
2676
|
+
*
|
|
2677
|
+
*/
|
|
2678
|
+
var swapQueueDef = {
|
|
2679
|
+
name: 'swap',
|
|
2680
|
+
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),
|
|
2681
|
+
run: [SwapActionTypes.START],
|
|
2682
|
+
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2683
|
+
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2684
|
+
onBlockForConnectWallet(event, meta);
|
|
2685
|
+
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2686
|
+
onBlockForChangeNetwork(event, meta);
|
|
2687
|
+
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2688
|
+
onDependsOnOtherQueues(event, meta);
|
|
2689
|
+
}
|
|
2690
|
+
}
|
|
2691
|
+
};
|
|
2692
|
+
|
|
2469
2693
|
var MIGRATED_KEY = 'migratedToQueueManager';
|
|
2470
2694
|
/**
|
|
2471
2695
|
*
|
|
@@ -2657,9 +2881,10 @@ function useQueueManager(params) {
|
|
|
2657
2881
|
checkWaitingForConnectWalletChange({
|
|
2658
2882
|
evmChains: params.evmChains,
|
|
2659
2883
|
wallet_network: params.lastConnectedWallet,
|
|
2660
|
-
manager: manager
|
|
2884
|
+
manager: manager,
|
|
2885
|
+
notifier: params.notifier
|
|
2661
2886
|
});
|
|
2662
|
-
retryOn(params.lastConnectedWallet, manager);
|
|
2887
|
+
retryOn(params.lastConnectedWallet, params.notifier, manager);
|
|
2663
2888
|
}
|
|
2664
2889
|
}, [params.lastConnectedWallet]);
|
|
2665
2890
|
react.useEffect(function () {
|
|
@@ -2674,34 +2899,20 @@ function useQueueManager(params) {
|
|
|
2674
2899
|
}, [params.disconnectedWallet]);
|
|
2675
2900
|
}
|
|
2676
2901
|
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
*
|
|
2680
|
-
* The idea behind this queue is to be able dynamically add some steps.
|
|
2681
|
-
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2682
|
-
* or waits for something happend (like checking status of a transaction from server)
|
|
2683
|
-
*
|
|
2684
|
-
*/
|
|
2685
|
-
var swapQueueDef = {
|
|
2686
|
-
name: 'swap',
|
|
2687
|
-
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),
|
|
2688
|
-
run: [SwapActionTypes.START],
|
|
2689
|
-
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2690
|
-
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2691
|
-
onBlockForConnectWallet(event, meta);
|
|
2692
|
-
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2693
|
-
onBlockForChangeNetwork(event, meta);
|
|
2694
|
-
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2695
|
-
onDependsOnOtherQueues(event, meta);
|
|
2696
|
-
}
|
|
2697
|
-
}
|
|
2698
|
-
};
|
|
2699
|
-
|
|
2902
|
+
exports.PrettyError = PrettyError;
|
|
2903
|
+
exports.calculatePendingSwap = calculatePendingSwap;
|
|
2700
2904
|
exports.cancelSwap = cancelSwap;
|
|
2701
2905
|
exports.checkWaitingForNetworkChange = checkWaitingForNetworkChange;
|
|
2906
|
+
exports.getCurrentBlockchainOfOrNull = getCurrentBlockchainOfOrNull;
|
|
2702
2907
|
exports.getCurrentStep = getCurrentStep;
|
|
2703
2908
|
exports.getEvmProvider = getEvmProvider;
|
|
2704
|
-
exports.getRelatedWallet = getRelatedWallet
|
|
2909
|
+
exports.getRelatedWallet = getRelatedWallet;
|
|
2910
|
+
exports.getRelatedWalletOrNull = getRelatedWalletOrNull;
|
|
2911
|
+
exports.getRequiredWallet = getRequiredWallet;
|
|
2912
|
+
exports.getRunningSwaps = getRunningSwaps;
|
|
2913
|
+
exports.prettifyErrorMessage = prettifyErrorMessage;
|
|
2914
|
+
exports.resetRunningSwapNotifsOnPageLoad = resetRunningSwapNotifsOnPageLoad;
|
|
2915
|
+
exports.splitWalletNetwork = splitWalletNetwork;
|
|
2705
2916
|
exports.swapQueueDef = swapQueueDef;
|
|
2706
2917
|
exports.updateSwapStatus = updateSwapStatus;
|
|
2707
2918
|
exports.useMigration = useMigration;
|