@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
|
@@ -1,28 +1,14 @@
|
|
|
1
|
+
import { SignerError, isAPIErrorCode, isSignerErrorCode, SignerErrorCode } from 'rango-types';
|
|
1
2
|
import { WalletType, Network, getBlockChainNameFromId } from '@rango-dev/wallets-shared';
|
|
3
|
+
import BigNumber from 'bignumber.js';
|
|
2
4
|
import { readAccountAddress } from '@rango-dev/wallets-core';
|
|
3
5
|
import { RangoClient, TransactionType } from 'rango-sdk';
|
|
4
6
|
import { Status, Persistor, DB_NAME } from '@rango-dev/queue-manager-core';
|
|
5
|
-
import { isSignerErrorCode, SignerErrorCode, SignerError } from 'rango-types';
|
|
6
7
|
import { captureException } from '@sentry/browser';
|
|
7
8
|
import { useManager } from '@rango-dev/queue-manager-react';
|
|
8
9
|
import { useState, useEffect } from 'react';
|
|
9
10
|
import { v4 } from 'uuid';
|
|
10
11
|
|
|
11
|
-
var SwapActionTypes;
|
|
12
|
-
(function (SwapActionTypes) {
|
|
13
|
-
SwapActionTypes["START"] = "START";
|
|
14
|
-
SwapActionTypes["SCHEDULE_NEXT_STEP"] = "SCHEDULE_NEXT_STEP";
|
|
15
|
-
SwapActionTypes["CREATE_TRANSACTION"] = "CREATE_TRANSACTION";
|
|
16
|
-
SwapActionTypes["EXECUTE_TRANSACTION"] = "EXECUTE_TRANSACTION";
|
|
17
|
-
SwapActionTypes["CHECK_TRANSACTION_STATUS"] = "CHECK_TRANSACTION_STATUS";
|
|
18
|
-
})(SwapActionTypes || (SwapActionTypes = {}));
|
|
19
|
-
var BlockReason;
|
|
20
|
-
(function (BlockReason) {
|
|
21
|
-
BlockReason["WAIT_FOR_CONNECT_WALLET"] = "waiting_for_connecting_wallet";
|
|
22
|
-
BlockReason["WAIT_FOR_NETWORK_CHANGE"] = "waiting_for_network_change";
|
|
23
|
-
BlockReason["DEPENDS_ON_OTHER_QUEUES"] = "depends_on_other_queues";
|
|
24
|
-
})(BlockReason || (BlockReason = {}));
|
|
25
|
-
|
|
26
12
|
function _regeneratorRuntime() {
|
|
27
13
|
_regeneratorRuntime = function () {
|
|
28
14
|
return exports;
|
|
@@ -448,46 +434,6 @@ function _assertThisInitialized(self) {
|
|
|
448
434
|
return self;
|
|
449
435
|
}
|
|
450
436
|
|
|
451
|
-
var RANGO_DAPP_API_KEY = process.env.REACT_APP_API_KEY;
|
|
452
|
-
var RANGO_DAPP_API_BASE_URL = process.env.REACT_APP_API_BASE_URL;
|
|
453
|
-
var ERROR_MESSAGE_WAIT_FOR_WALLET = 'Waiting for connecting wallet';
|
|
454
|
-
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET(type, address) {
|
|
455
|
-
return "Please change your " + (type || 'wallet') + " account to " + (address || 'proper address');
|
|
456
|
-
};
|
|
457
|
-
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION(type) {
|
|
458
|
-
return "Please connect to " + (type || 'your wallet') + " by using bellow button or top right button on page.";
|
|
459
|
-
};
|
|
460
|
-
var ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK = function ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK(network) {
|
|
461
|
-
return "Please change your network to " + network + ".";
|
|
462
|
-
};
|
|
463
|
-
|
|
464
|
-
var APIErrorCode;
|
|
465
|
-
(function (APIErrorCode) {
|
|
466
|
-
APIErrorCode["TX_FAIL"] = "TX_FAIL";
|
|
467
|
-
APIErrorCode["FETCH_TX_FAILED"] = "FETCH_TX_FAILED";
|
|
468
|
-
APIErrorCode["USER_REJECT"] = "USER_REJECT";
|
|
469
|
-
APIErrorCode["CALL_WALLET_FAILED"] = "CALL_WALLET_FAILED";
|
|
470
|
-
APIErrorCode["SEND_TX_FAILED"] = "SEND_TX_FAILED";
|
|
471
|
-
APIErrorCode["CALL_OR_SEND_FAILED"] = "CALL_OR_SEND_FAILED";
|
|
472
|
-
APIErrorCode["USER_CANCEL"] = "USER_CANCEL";
|
|
473
|
-
APIErrorCode["CLIENT_UNEXPECTED_BEHAVIOUR"] = "CLIENT_UNEXPECTED_BEHAVIOUR";
|
|
474
|
-
})(APIErrorCode || (APIErrorCode = {}));
|
|
475
|
-
var ApiMethodName;
|
|
476
|
-
(function (ApiMethodName) {
|
|
477
|
-
ApiMethodName["RequestingSwapTransaction"] = "Requesting Swap Transaction";
|
|
478
|
-
ApiMethodName["CreatingSwap"] = "Creating Swap";
|
|
479
|
-
ApiMethodName["CheckingTransactionStatus"] = "Checking transaction status";
|
|
480
|
-
ApiMethodName["CreateTransaction"] = "Create Transaction";
|
|
481
|
-
ApiMethodName["CheckApproval"] = "Check TX Approval";
|
|
482
|
-
ApiMethodName["GettingSwapDetail"] = "Getting Swap Detail";
|
|
483
|
-
ApiMethodName["GettingUserLimits"] = "Getting user limits";
|
|
484
|
-
})(ApiMethodName || (ApiMethodName = {}));
|
|
485
|
-
var TransactionName;
|
|
486
|
-
(function (TransactionName) {
|
|
487
|
-
TransactionName["GenericTransaction"] = "transaction";
|
|
488
|
-
TransactionName["SendingOneInchTransaction"] = "1inch transaction";
|
|
489
|
-
TransactionName["Approval"] = "approve transaction";
|
|
490
|
-
})(TransactionName || (TransactionName = {}));
|
|
491
437
|
var ERROR_ASSERTION_FAILED = 'Assertion failed (Unexpected behaviour)';
|
|
492
438
|
var ERROR_CREATE_TRANSACTION = 'Create transaction failed in Rango Server';
|
|
493
439
|
var ERROR_INPUT_WALLET_NOT_FOUND = 'Input wallet not found';
|
|
@@ -496,12 +442,17 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
496
442
|
function PrettyError(code, m, root, detail) {
|
|
497
443
|
var _this;
|
|
498
444
|
_this = _Error.call(this, m) || this;
|
|
445
|
+
_this._isPrettyError = true;
|
|
499
446
|
Object.setPrototypeOf(_assertThisInitialized(_this), PrettyError.prototype);
|
|
447
|
+
PrettyError.prototype._isPrettyError = true;
|
|
500
448
|
_this.code = code;
|
|
501
449
|
_this.detail = detail;
|
|
502
450
|
_this.root = root;
|
|
503
451
|
return _this;
|
|
504
452
|
}
|
|
453
|
+
PrettyError.isPrettyError = function isPrettyError(obj) {
|
|
454
|
+
return obj instanceof PrettyError || Object.prototype.hasOwnProperty('_isPrettyError');
|
|
455
|
+
};
|
|
505
456
|
var _proto = PrettyError.prototype;
|
|
506
457
|
_proto.getErrorDetail = function getErrorDetail() {
|
|
507
458
|
var rawMessage = typeof this.root === 'object' && this.root && this.root.error ? this.root.error : JSON.stringify(this.root);
|
|
@@ -513,33 +464,30 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
513
464
|
};
|
|
514
465
|
};
|
|
515
466
|
PrettyError.AssertionFailed = function AssertionFailed(m) {
|
|
516
|
-
return new PrettyError(
|
|
467
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_ASSERTION_FAILED, m);
|
|
517
468
|
};
|
|
518
469
|
PrettyError.BadStatusCode = function BadStatusCode(message, statusCode) {
|
|
519
|
-
return new PrettyError(
|
|
470
|
+
return new PrettyError('TX_FAIL', message, null, "status code = " + statusCode);
|
|
520
471
|
};
|
|
521
472
|
PrettyError.CreateTransaction = function CreateTransaction(detail) {
|
|
522
|
-
return new PrettyError(
|
|
473
|
+
return new PrettyError('FETCH_TX_FAILED', ERROR_CREATE_TRANSACTION, null, detail);
|
|
523
474
|
};
|
|
524
475
|
PrettyError.WalletMissing = function WalletMissing() {
|
|
525
|
-
return new PrettyError(
|
|
476
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_INPUT_WALLET_NOT_FOUND, null, 'Server requested for a blockchain or address not selected by user');
|
|
526
477
|
};
|
|
527
478
|
PrettyError.BlockchainMissing = function BlockchainMissing() {
|
|
528
|
-
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');
|
|
529
480
|
};
|
|
530
481
|
return PrettyError;
|
|
531
482
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
532
|
-
function isAPIErrorCode(value) {
|
|
533
|
-
return Object.values(APIErrorCode).includes(value);
|
|
534
|
-
}
|
|
535
483
|
function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
536
|
-
var defaultErrorCode =
|
|
484
|
+
var defaultErrorCode = 'CLIENT_UNEXPECTED_BEHAVIOUR';
|
|
537
485
|
try {
|
|
538
486
|
if (!errorCode) return defaultErrorCode;
|
|
539
487
|
if (isAPIErrorCode(errorCode)) return errorCode;
|
|
540
488
|
if (isSignerErrorCode(errorCode)) {
|
|
541
489
|
var _t;
|
|
542
|
-
var t = (_t = {}, _t[SignerErrorCode.REJECTED_BY_USER] =
|
|
490
|
+
var t = (_t = {}, _t[SignerErrorCode.REJECTED_BY_USER] = 'USER_REJECT', _t[SignerErrorCode.SIGN_TX_ERROR] = 'CALL_WALLET_FAILED', _t[SignerErrorCode.SEND_TX_ERROR] = 'SEND_TX_FAILED', _t[SignerErrorCode.NOT_IMPLEMENTED] = defaultErrorCode, _t[SignerErrorCode.OPERATION_UNSUPPORTED] = defaultErrorCode, _t[SignerErrorCode.UNEXPECTED_BEHAVIOUR] = defaultErrorCode, _t);
|
|
543
491
|
return t[errorCode];
|
|
544
492
|
}
|
|
545
493
|
return defaultErrorCode;
|
|
@@ -547,6 +495,61 @@ function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
|
547
495
|
return defaultErrorCode;
|
|
548
496
|
}
|
|
549
497
|
}
|
|
498
|
+
var prettifyErrorMessage = function prettifyErrorMessage(obj) {
|
|
499
|
+
if (!obj) return {
|
|
500
|
+
extraMessage: '',
|
|
501
|
+
extraMessageErrorCode: null
|
|
502
|
+
};
|
|
503
|
+
if (PrettyError.isPrettyError(obj)) return obj.getErrorDetail();
|
|
504
|
+
if (SignerError.isSignerError(obj)) {
|
|
505
|
+
var t = obj.getErrorDetail();
|
|
506
|
+
return {
|
|
507
|
+
extraMessage: t.message,
|
|
508
|
+
extraMessageDetail: t.detail,
|
|
509
|
+
extraMessageErrorCode: t.code
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
if (obj instanceof Error) return {
|
|
513
|
+
extraMessage: obj.toString(),
|
|
514
|
+
extraMessageErrorCode: null
|
|
515
|
+
};
|
|
516
|
+
if (typeof obj !== 'string') return {
|
|
517
|
+
extraMessage: JSON.stringify(obj),
|
|
518
|
+
extraMessageErrorCode: null
|
|
519
|
+
};
|
|
520
|
+
return {
|
|
521
|
+
extraMessage: obj,
|
|
522
|
+
extraMessageErrorCode: null
|
|
523
|
+
};
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
var numberToString = function numberToString(number, minDecimals, maxDecimals) {
|
|
527
|
+
if (minDecimals === void 0) {
|
|
528
|
+
minDecimals = null;
|
|
529
|
+
}
|
|
530
|
+
if (maxDecimals === void 0) {
|
|
531
|
+
maxDecimals = null;
|
|
532
|
+
}
|
|
533
|
+
if (number === null) return '';
|
|
534
|
+
if (number === '') return '';
|
|
535
|
+
var n = new BigNumber(number);
|
|
536
|
+
var roundingMode = 1;
|
|
537
|
+
var maxI = 1000;
|
|
538
|
+
for (var i = 0; i < 60; i++) {
|
|
539
|
+
if (new BigNumber(n.toFixed(i, roundingMode)).eq(n)) {
|
|
540
|
+
maxI = i;
|
|
541
|
+
break;
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
if (n.gte(10000)) return n.toFormat(0, roundingMode);
|
|
545
|
+
if (n.gte(1000)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))), roundingMode);
|
|
546
|
+
if (n.gte(100)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 1))), roundingMode);
|
|
547
|
+
if (n.gte(1)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 2))), roundingMode);
|
|
548
|
+
if (n.gte(0.01)) return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 4))), roundingMode);
|
|
549
|
+
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);
|
|
550
|
+
if (n.isEqualTo(0)) return '0';
|
|
551
|
+
return n.toFormat(Math.min(maxI, Math.min(maxDecimals || 100, Math.max(minDecimals || 0, 8))), roundingMode);
|
|
552
|
+
};
|
|
550
553
|
|
|
551
554
|
var PendingSwapNetworkStatus;
|
|
552
555
|
(function (PendingSwapNetworkStatus) {
|
|
@@ -599,48 +602,22 @@ var getStarknetApproveUrl = function getStarknetApproveUrl(tx) {
|
|
|
599
602
|
var getTronApproveUrl = function getTronApproveUrl(tx) {
|
|
600
603
|
return 'https://tronscan.org/#/transaction/{txHash}'.replace('{txHash}', tx.toLowerCase());
|
|
601
604
|
};
|
|
602
|
-
var prettifyErrorMessage = function prettifyErrorMessage(obj) {
|
|
603
|
-
if (!obj) return {
|
|
604
|
-
extraMessage: '',
|
|
605
|
-
extraMessageErrorCode: null
|
|
606
|
-
};
|
|
607
|
-
if (obj instanceof PrettyError) return obj.getErrorDetail();
|
|
608
|
-
if (obj instanceof SignerError) {
|
|
609
|
-
var t = obj.getErrorDetail();
|
|
610
|
-
return {
|
|
611
|
-
extraMessage: t.message,
|
|
612
|
-
extraMessageDetail: t.detail,
|
|
613
|
-
extraMessageErrorCode: t.code
|
|
614
|
-
};
|
|
615
|
-
}
|
|
616
|
-
if (obj instanceof Error) return {
|
|
617
|
-
extraMessage: obj.toString(),
|
|
618
|
-
extraMessageErrorCode: null
|
|
619
|
-
};
|
|
620
|
-
if (typeof obj !== 'string') return {
|
|
621
|
-
extraMessage: JSON.stringify(obj),
|
|
622
|
-
extraMessageErrorCode: null
|
|
623
|
-
};
|
|
624
|
-
return {
|
|
625
|
-
extraMessage: obj,
|
|
626
|
-
extraMessageErrorCode: null
|
|
627
|
-
};
|
|
628
|
-
};
|
|
629
605
|
function getNextStep(swap, currentStep) {
|
|
630
606
|
return swap.steps.find(function (step) {
|
|
631
607
|
return step.status !== 'failed' && step.status !== 'success' && step.id !== currentStep.id;
|
|
632
608
|
}) || null;
|
|
633
609
|
}
|
|
634
|
-
|
|
610
|
+
/**
|
|
611
|
+
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
612
|
+
*/
|
|
635
613
|
var getCurrentAddressOf = function getCurrentAddressOf(swap, step) {
|
|
636
|
-
var _step$evmTransaction2, _step$evmApprovalTran2, _step$cosmosTransacti2, _step$solanaTransacti2, _step$transferTransac2, _step$transferTransac3;
|
|
637
|
-
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 ? {
|
|
614
|
+
var _step$evmTransaction2, _step$evmApprovalTran2, _step$tronTransaction2, _step$tronApprovalTra2, _step$starknetTransac2, _step$starknetApprova2, _step$cosmosTransacti2, _step$solanaTransacti2, _step$transferTransac2, _step$transferTransac3;
|
|
615
|
+
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 ? {
|
|
638
616
|
address: (_step$transferTransac3 = step.transferTransaction) == null ? void 0 : _step$transferTransac3.fromWalletAddress
|
|
639
617
|
} : null) || null;
|
|
640
618
|
if (result == null) throw PrettyError.WalletMissing();
|
|
641
619
|
return result.address;
|
|
642
620
|
};
|
|
643
|
-
// TODO: we have samething in `helpers`, for fixing circular dependency, we copied and should be removed eventually.
|
|
644
621
|
function getRelatedWallet(swap, currentStep) {
|
|
645
622
|
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
646
623
|
var walletKV = Object.keys(swap.wallets).map(function (k) {
|
|
@@ -665,6 +642,130 @@ function getRelatedWalletOrNull(swap, currentStep) {
|
|
|
665
642
|
return null;
|
|
666
643
|
}
|
|
667
644
|
}
|
|
645
|
+
var getUsdPrice = function getUsdPrice(blockchain, symbol, address, allTokens) {
|
|
646
|
+
var token = allTokens == null ? void 0 : allTokens.find(function (t) {
|
|
647
|
+
var _t$symbol;
|
|
648
|
+
return t.blockchain === blockchain && ((_t$symbol = t.symbol) == null ? void 0 : _t$symbol.toUpperCase()) === (symbol == null ? void 0 : symbol.toUpperCase()) && t.address === address;
|
|
649
|
+
});
|
|
650
|
+
return (token == null ? void 0 : token.usdPrice) || null;
|
|
651
|
+
};
|
|
652
|
+
function getUsdFeeOfStep(step, allTokens) {
|
|
653
|
+
var totalFeeInUsd = new BigNumber(0);
|
|
654
|
+
for (var i = 0; i < step.fee.length; i++) {
|
|
655
|
+
var fee = step.fee[i];
|
|
656
|
+
if (fee.expenseType === 'DECREASE_FROM_OUTPUT') continue;
|
|
657
|
+
var unitPrice = getUsdPrice(fee.asset.blockchain, fee.asset.symbol, fee.asset.address, allTokens);
|
|
658
|
+
totalFeeInUsd = totalFeeInUsd.plus(new BigNumber(fee.amount).multipliedBy(unitPrice || 0));
|
|
659
|
+
}
|
|
660
|
+
return totalFeeInUsd;
|
|
661
|
+
}
|
|
662
|
+
function calculatePendingSwap(inputAmount, bestRoute, wallets, settings, validateBalanceOrFee, meta) {
|
|
663
|
+
var _bestRoute$result, _bestRoute$result$swa;
|
|
664
|
+
var simulationResult = bestRoute.result;
|
|
665
|
+
if (!simulationResult) throw Error('Simulation result should not be null');
|
|
666
|
+
return {
|
|
667
|
+
creationTime: new Date().getTime().toString(),
|
|
668
|
+
finishTime: null,
|
|
669
|
+
requestId: bestRoute.requestId || '',
|
|
670
|
+
inputAmount: inputAmount,
|
|
671
|
+
wallets: wallets,
|
|
672
|
+
status: 'running',
|
|
673
|
+
isPaused: false,
|
|
674
|
+
extraMessage: null,
|
|
675
|
+
extraMessageSeverity: null,
|
|
676
|
+
extraMessageDetail: null,
|
|
677
|
+
extraMessageErrorCode: null,
|
|
678
|
+
networkStatusExtraMessage: null,
|
|
679
|
+
networkStatusExtraMessageDetail: null,
|
|
680
|
+
lastNotificationTime: null,
|
|
681
|
+
settings: settings,
|
|
682
|
+
simulationResult: simulationResult,
|
|
683
|
+
validateBalanceOrFee: validateBalanceOrFee,
|
|
684
|
+
steps: ((_bestRoute$result = bestRoute.result) == null ? void 0 : (_bestRoute$result$swa = _bestRoute$result.swaps) == null ? void 0 : _bestRoute$result$swa.map(function (swap, index) {
|
|
685
|
+
return {
|
|
686
|
+
id: index + 1,
|
|
687
|
+
// from
|
|
688
|
+
fromBlockchain: swap.from.blockchain,
|
|
689
|
+
fromBlockchainLogo: swap.from.blockchainLogo,
|
|
690
|
+
fromLogo: swap.from.logo,
|
|
691
|
+
fromSymbol: swap.from.symbol,
|
|
692
|
+
fromSymbolAddress: swap.from.address,
|
|
693
|
+
fromDecimals: swap.from.decimals,
|
|
694
|
+
fromAmountPrecision: swap.fromAmountPrecision,
|
|
695
|
+
fromAmountMinValue: swap.fromAmountMinValue,
|
|
696
|
+
fromAmountMaxValue: swap.fromAmountMaxValue,
|
|
697
|
+
fromAmountRestrictionType: swap.fromAmountRestrictionType,
|
|
698
|
+
// to
|
|
699
|
+
toBlockchain: swap.to.blockchain,
|
|
700
|
+
toBlockchainLogo: swap.to.blockchainLogo,
|
|
701
|
+
toSymbol: swap.to.symbol,
|
|
702
|
+
toSymbolAddress: swap.to.address,
|
|
703
|
+
toDecimals: swap.to.decimals,
|
|
704
|
+
toLogo: swap.to.logo,
|
|
705
|
+
// swapper
|
|
706
|
+
swapperId: swap.swapperId,
|
|
707
|
+
swapperLogo: swap.swapperLogo,
|
|
708
|
+
swapperType: swap.swapperType,
|
|
709
|
+
// output, fee, timing
|
|
710
|
+
expectedOutputAmountHumanReadable: swap.toAmount,
|
|
711
|
+
outputAmount: '',
|
|
712
|
+
feeInUsd: meta ? numberToString(getUsdFeeOfStep(swap, meta == null ? void 0 : meta.tokens), null, 8) : null,
|
|
713
|
+
estimatedTimeInSeconds: swap.estimatedTimeInSeconds || null,
|
|
714
|
+
// status, tracking
|
|
715
|
+
status: 'created',
|
|
716
|
+
networkStatus: null,
|
|
717
|
+
startTransactionTime: new Date().getTime(),
|
|
718
|
+
externalTransactionId: null,
|
|
719
|
+
executedTransactionId: null,
|
|
720
|
+
executedTransactionTime: null,
|
|
721
|
+
explorerUrl: null,
|
|
722
|
+
diagnosisUrl: null,
|
|
723
|
+
trackingCode: null,
|
|
724
|
+
internalSteps: null,
|
|
725
|
+
// transactions
|
|
726
|
+
evmTransaction: null,
|
|
727
|
+
evmApprovalTransaction: null,
|
|
728
|
+
starknetTransaction: null,
|
|
729
|
+
starknetApprovalTransaction: null,
|
|
730
|
+
tronTransaction: null,
|
|
731
|
+
tronApprovalTransaction: null,
|
|
732
|
+
cosmosTransaction: null,
|
|
733
|
+
solanaTransaction: null,
|
|
734
|
+
transferTransaction: null,
|
|
735
|
+
// front fields
|
|
736
|
+
hasAlreadyProceededToSign: false
|
|
737
|
+
};
|
|
738
|
+
})) || []
|
|
739
|
+
};
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
var SwapActionTypes;
|
|
743
|
+
(function (SwapActionTypes) {
|
|
744
|
+
SwapActionTypes["START"] = "START";
|
|
745
|
+
SwapActionTypes["SCHEDULE_NEXT_STEP"] = "SCHEDULE_NEXT_STEP";
|
|
746
|
+
SwapActionTypes["CREATE_TRANSACTION"] = "CREATE_TRANSACTION";
|
|
747
|
+
SwapActionTypes["EXECUTE_TRANSACTION"] = "EXECUTE_TRANSACTION";
|
|
748
|
+
SwapActionTypes["CHECK_TRANSACTION_STATUS"] = "CHECK_TRANSACTION_STATUS";
|
|
749
|
+
})(SwapActionTypes || (SwapActionTypes = {}));
|
|
750
|
+
var BlockReason;
|
|
751
|
+
(function (BlockReason) {
|
|
752
|
+
BlockReason["WAIT_FOR_CONNECT_WALLET"] = "waiting_for_connecting_wallet";
|
|
753
|
+
BlockReason["WAIT_FOR_NETWORK_CHANGE"] = "waiting_for_network_change";
|
|
754
|
+
BlockReason["DEPENDS_ON_OTHER_QUEUES"] = "depends_on_other_queues";
|
|
755
|
+
})(BlockReason || (BlockReason = {}));
|
|
756
|
+
|
|
757
|
+
var RANGO_DAPP_API_KEY = process.env.REACT_APP_API_KEY;
|
|
758
|
+
var RANGO_DAPP_API_BASE_URL = process.env.REACT_APP_API_BASE_URL;
|
|
759
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET = 'Waiting for connecting wallet';
|
|
760
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET(type, address) {
|
|
761
|
+
return "Please change your " + (type || 'wallet') + " account to " + (address || 'proper address');
|
|
762
|
+
};
|
|
763
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION(type) {
|
|
764
|
+
return "Please connect to " + (type || 'your wallet') + " by using bellow button or top right button on page.";
|
|
765
|
+
};
|
|
766
|
+
var ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK = function ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK(network) {
|
|
767
|
+
return "Please change your network to " + network + ".";
|
|
768
|
+
};
|
|
668
769
|
|
|
669
770
|
function logRPCError(error, swap, currentStep, walletType) {
|
|
670
771
|
try {
|
|
@@ -709,12 +810,23 @@ function claimQueue() {
|
|
|
709
810
|
};
|
|
710
811
|
}
|
|
711
812
|
/**
|
|
712
|
-
*
|
|
813
|
+
* Sample inputs are:
|
|
814
|
+
* - "metamask-ETH"
|
|
815
|
+
* - "metamask-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
816
|
+
* - "token-pocket-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
713
817
|
* Returns "wallet and network" separately, even if the wallet is dashed inside.
|
|
714
818
|
*
|
|
715
819
|
*/
|
|
716
820
|
function splitWalletNetwork(input) {
|
|
717
|
-
|
|
821
|
+
var removedAddressInput = (input == null ? void 0 : input.split(':')[0]) || '';
|
|
822
|
+
var splittedInput = removedAddressInput.split('-');
|
|
823
|
+
var network = splittedInput[splittedInput.length - 1];
|
|
824
|
+
var walletNetwork = splittedInput.slice(0, -1);
|
|
825
|
+
if (walletNetwork[walletNetwork.length - 1] === network) {
|
|
826
|
+
walletNetwork.pop();
|
|
827
|
+
}
|
|
828
|
+
var wallet = walletNetwork.join('-');
|
|
829
|
+
return [wallet, network];
|
|
718
830
|
}
|
|
719
831
|
/**
|
|
720
832
|
*
|
|
@@ -747,8 +859,10 @@ function updateSwapStatus(_ref) {
|
|
|
747
859
|
if (!!nextStatus) swap.status = nextStatus;
|
|
748
860
|
swap.hasAlreadyProceededToSign = hasAlreadyProceededToSign;
|
|
749
861
|
if (!!nextStatus && ['failed', 'success'].includes(nextStatus)) swap.finishTime = new Date().getTime().toString();
|
|
750
|
-
if (!!message
|
|
751
|
-
|
|
862
|
+
if (!!message || !!details) {
|
|
863
|
+
swap.extraMessage = message || '';
|
|
864
|
+
swap.extraMessageDetail = details || '';
|
|
865
|
+
}
|
|
752
866
|
if (!!nextStepStatus && ['failed'].includes(nextStepStatus)) {
|
|
753
867
|
var _getRelatedWalletOrNu;
|
|
754
868
|
//if user cancel the swap, we should pass relevant reason to the server.
|
|
@@ -758,7 +872,7 @@ function updateSwapStatus(_ref) {
|
|
|
758
872
|
httpService.reportFailure({
|
|
759
873
|
requestId: swap.requestId,
|
|
760
874
|
step: (currentStep == null ? void 0 : currentStep.id) || 1,
|
|
761
|
-
eventType: mapAppErrorCodesToAPIErrorCode(
|
|
875
|
+
eventType: mapAppErrorCodesToAPIErrorCode(errorCode),
|
|
762
876
|
reason: errorReason || '',
|
|
763
877
|
data: walletType ? {
|
|
764
878
|
wallet: walletType
|
|
@@ -774,18 +888,32 @@ function updateSwapStatus(_ref) {
|
|
|
774
888
|
step: currentStep
|
|
775
889
|
};
|
|
776
890
|
}
|
|
777
|
-
function setStepTransactionIds(_ref2, txId, eventType,
|
|
891
|
+
function setStepTransactionIds(_ref2, txId, notifier, eventType, approveUrl) {
|
|
778
892
|
var getStorage = _ref2.getStorage,
|
|
779
893
|
setStorage = _ref2.setStorage;
|
|
780
894
|
var swap = getStorage().swapDetails;
|
|
781
895
|
swap.hasAlreadyProceededToSign = null;
|
|
782
896
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
783
897
|
var currentStep = getCurrentStep(swap);
|
|
784
|
-
currentStep.executedTransactionId = txId
|
|
898
|
+
currentStep.executedTransactionId = txId;
|
|
899
|
+
currentStep.executedTransactionTime = new Date().getTime().toString();
|
|
900
|
+
if (!!approveUrl) currentStep.explorerUrl = [].concat(currentStep.explorerUrl || [], [{
|
|
901
|
+
url: approveUrl,
|
|
902
|
+
description: "approve"
|
|
903
|
+
}]);
|
|
904
|
+
if (eventType === 'check_tx_status') {
|
|
905
|
+
swap.extraMessage = 'Checking transaction status ...';
|
|
906
|
+
swap.extraMessageDetail = '';
|
|
907
|
+
swap.extraMessageSeverity = MessageSeverity.info;
|
|
908
|
+
} else if (eventType === 'check_approve_tx_status') {
|
|
909
|
+
swap.extraMessage = 'Checking approve transaction status ...';
|
|
910
|
+
swap.extraMessageDetail = '';
|
|
911
|
+
swap.extraMessageSeverity = MessageSeverity.info;
|
|
912
|
+
}
|
|
785
913
|
setStorage(_extends({}, getStorage(), {
|
|
786
914
|
swapDetails: swap
|
|
787
915
|
}));
|
|
788
|
-
notifier({
|
|
916
|
+
if (!!eventType) notifier({
|
|
789
917
|
eventType: eventType,
|
|
790
918
|
swap: swap,
|
|
791
919
|
step: currentStep
|
|
@@ -860,13 +988,19 @@ function markRunningSwapAsSwitchingNetwork(_ref4) {
|
|
|
860
988
|
*/
|
|
861
989
|
function markRunningSwapAsDependsOnOtherQueues(_ref5) {
|
|
862
990
|
var getStorage = _ref5.getStorage,
|
|
863
|
-
setStorage = _ref5.setStorage
|
|
991
|
+
setStorage = _ref5.setStorage,
|
|
992
|
+
notifier = _ref5.notifier;
|
|
864
993
|
var swap = getStorage().swapDetails;
|
|
865
994
|
var currentStep = getCurrentStep(swap);
|
|
866
995
|
if (!currentStep) return;
|
|
867
996
|
swap.networkStatusExtraMessage = '';
|
|
868
997
|
swap.networkStatusExtraMessageDetail = '';
|
|
869
998
|
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForQueue;
|
|
999
|
+
notifier({
|
|
1000
|
+
eventType: 'waiting_for_queue',
|
|
1001
|
+
swap: swap,
|
|
1002
|
+
step: currentStep
|
|
1003
|
+
});
|
|
870
1004
|
setStorage(_extends({}, getStorage(), {
|
|
871
1005
|
swapDetails: swap
|
|
872
1006
|
}));
|
|
@@ -998,9 +1132,6 @@ function _getChainId() {
|
|
|
998
1132
|
function isNetworkMatchedForTransaction(_x2, _x3, _x4, _x5, _x6) {
|
|
999
1133
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1000
1134
|
}
|
|
1001
|
-
/**
|
|
1002
|
-
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
1003
|
-
*/
|
|
1004
1135
|
function _isNetworkMatchedForTransaction() {
|
|
1005
1136
|
_isNetworkMatchedForTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(swap, step, wallet, meta, providers) {
|
|
1006
1137
|
var fromBlockChain, sourceWallet, provider, chainId, blockChain;
|
|
@@ -1008,112 +1139,85 @@ function _isNetworkMatchedForTransaction() {
|
|
|
1008
1139
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1009
1140
|
case 0:
|
|
1010
1141
|
if (!isWalletNull(wallet)) {
|
|
1011
|
-
_context2.next =
|
|
1142
|
+
_context2.next = 2;
|
|
1012
1143
|
break;
|
|
1013
1144
|
}
|
|
1014
|
-
console.warn('wallet object is null');
|
|
1015
1145
|
return _context2.abrupt("return", false);
|
|
1016
|
-
case
|
|
1146
|
+
case 2:
|
|
1017
1147
|
fromBlockChain = getCurrentBlockchainOfOrNull(swap, step);
|
|
1018
1148
|
if (fromBlockChain) {
|
|
1019
|
-
_context2.next =
|
|
1149
|
+
_context2.next = 5;
|
|
1020
1150
|
break;
|
|
1021
1151
|
}
|
|
1022
1152
|
return _context2.abrupt("return", false);
|
|
1023
|
-
case
|
|
1153
|
+
case 5:
|
|
1024
1154
|
if (!meta.evmBasedChains.find(function (evmBlochain) {
|
|
1025
1155
|
return evmBlochain.name === fromBlockChain;
|
|
1026
1156
|
})) {
|
|
1027
|
-
_context2.next =
|
|
1157
|
+
_context2.next = 29;
|
|
1028
1158
|
break;
|
|
1029
1159
|
}
|
|
1030
|
-
_context2.prev =
|
|
1160
|
+
_context2.prev = 6;
|
|
1031
1161
|
sourceWallet = swap.wallets[fromBlockChain];
|
|
1032
1162
|
if (!sourceWallet) {
|
|
1033
|
-
_context2.next =
|
|
1163
|
+
_context2.next = 23;
|
|
1034
1164
|
break;
|
|
1035
1165
|
}
|
|
1036
1166
|
if (![WalletType.META_MASK, WalletType.BINANCE_CHAIN, WalletType.XDEFI, WalletType.WALLET_CONNECT, WalletType.TRUST_WALLET, WalletType.COIN98, WalletType.EXODUS, WalletType.OKX, WalletType.COINBASE, WalletType.TOKEN_POCKET, WalletType.MATH, WalletType.SAFEPAL, WalletType.COSMOSTATION, WalletType.CLOVER, WalletType.BRAVE, WalletType.FRONTIER, WalletType.KUCOIN].includes(sourceWallet.walletType)) {
|
|
1037
|
-
_context2.next =
|
|
1167
|
+
_context2.next = 22;
|
|
1038
1168
|
break;
|
|
1039
1169
|
}
|
|
1040
1170
|
provider = getEvmProvider(providers, sourceWallet.walletType);
|
|
1041
|
-
_context2.next =
|
|
1171
|
+
_context2.next = 13;
|
|
1042
1172
|
return getChainId(provider);
|
|
1043
|
-
case
|
|
1173
|
+
case 13:
|
|
1044
1174
|
chainId = _context2.sent;
|
|
1045
1175
|
if (!chainId) {
|
|
1046
|
-
_context2.next =
|
|
1176
|
+
_context2.next = 20;
|
|
1047
1177
|
break;
|
|
1048
1178
|
}
|
|
1049
|
-
blockChain = getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (
|
|
1050
|
-
var blockchainMeta =
|
|
1179
|
+
blockChain = getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (_ref6) {
|
|
1180
|
+
var blockchainMeta = _ref6[1];
|
|
1051
1181
|
return blockchainMeta;
|
|
1052
1182
|
}));
|
|
1053
1183
|
if (!(blockChain && blockChain.toLowerCase() === fromBlockChain.toLowerCase())) {
|
|
1054
|
-
_context2.next =
|
|
1184
|
+
_context2.next = 18;
|
|
1055
1185
|
break;
|
|
1056
1186
|
}
|
|
1057
1187
|
return _context2.abrupt("return", true);
|
|
1058
|
-
case
|
|
1188
|
+
case 18:
|
|
1059
1189
|
if (!(blockChain && blockChain.toLowerCase() !== fromBlockChain.toLowerCase())) {
|
|
1060
|
-
_context2.next =
|
|
1190
|
+
_context2.next = 20;
|
|
1061
1191
|
break;
|
|
1062
1192
|
}
|
|
1063
1193
|
return _context2.abrupt("return", false);
|
|
1064
|
-
case
|
|
1065
|
-
_context2.next =
|
|
1194
|
+
case 20:
|
|
1195
|
+
_context2.next = 23;
|
|
1066
1196
|
break;
|
|
1067
|
-
case
|
|
1197
|
+
case 22:
|
|
1068
1198
|
return _context2.abrupt("return", true);
|
|
1069
|
-
case
|
|
1070
|
-
_context2.next =
|
|
1199
|
+
case 23:
|
|
1200
|
+
_context2.next = 28;
|
|
1071
1201
|
break;
|
|
1072
|
-
case
|
|
1073
|
-
_context2.prev =
|
|
1074
|
-
_context2.t0 = _context2["catch"](
|
|
1202
|
+
case 25:
|
|
1203
|
+
_context2.prev = 25;
|
|
1204
|
+
_context2.t0 = _context2["catch"](6);
|
|
1075
1205
|
console.log(_context2.t0);
|
|
1076
|
-
case
|
|
1206
|
+
case 28:
|
|
1077
1207
|
return _context2.abrupt("return", false);
|
|
1078
|
-
case
|
|
1208
|
+
case 29:
|
|
1079
1209
|
return _context2.abrupt("return", true);
|
|
1080
|
-
case
|
|
1210
|
+
case 30:
|
|
1081
1211
|
case "end":
|
|
1082
1212
|
return _context2.stop();
|
|
1083
1213
|
}
|
|
1084
|
-
}, _callee2, null, [[
|
|
1214
|
+
}, _callee2, null, [[6, 25]]);
|
|
1085
1215
|
}));
|
|
1086
1216
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1087
1217
|
}
|
|
1088
|
-
var getCurrentAddressOf$1 = function getCurrentAddressOf(swap, step) {
|
|
1089
|
-
var _step$evmTransaction, _step$evmApprovalTran, _step$tronTransaction, _step$tronApprovalTra, _step$starknetTransac, _step$starknetApprova, _step$cosmosTransacti, _step$solanaTransacti, _step$transferTransac, _step$transferTransac2;
|
|
1090
|
-
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 ? {
|
|
1091
|
-
address: (_step$transferTransac2 = step.transferTransaction) == null ? void 0 : _step$transferTransac2.fromWalletAddress
|
|
1092
|
-
} : null) || null;
|
|
1093
|
-
if (result == null) throw PrettyError.WalletMissing();
|
|
1094
|
-
return result.address;
|
|
1095
|
-
};
|
|
1096
|
-
// Todo: Is it same with `getRequiredWallet`?
|
|
1097
|
-
function getRelatedWallet$1(swap, currentStep) {
|
|
1098
|
-
var walletAddress = getCurrentAddressOf$1(swap, currentStep);
|
|
1099
|
-
var walletKV = Object.keys(swap.wallets).map(function (k) {
|
|
1100
|
-
return {
|
|
1101
|
-
k: k,
|
|
1102
|
-
v: swap.wallets[k]
|
|
1103
|
-
};
|
|
1104
|
-
}).find(function (_ref6) {
|
|
1105
|
-
var v = _ref6.v;
|
|
1106
|
-
return v.address === walletAddress;
|
|
1107
|
-
}) || null;
|
|
1108
|
-
var blockchain = (walletKV == null ? void 0 : walletKV.k) || null;
|
|
1109
|
-
var wallet = (walletKV == null ? void 0 : walletKV.v) || null;
|
|
1110
|
-
var walletType = wallet == null ? void 0 : wallet.walletType;
|
|
1111
|
-
if (walletType === WalletType.UNKNOWN || wallet === null) throw PrettyError.AssertionFailed("Wallet for source " + blockchain + " not passed: walletType: " + walletType);
|
|
1112
|
-
return wallet;
|
|
1113
|
-
}
|
|
1114
1218
|
var isTxAlreadyCreated = function isTxAlreadyCreated(swap, step) {
|
|
1115
|
-
var _step$
|
|
1116
|
-
var result = swap.wallets[((_step$
|
|
1219
|
+
var _step$evmTransaction, _step$evmApprovalTran, _step$tronTransaction, _step$tronApprovalTra, _step$starknetTransac, _step$starknetApprova, _step$cosmosTransacti, _step$solanaTransacti, _step$transferTransac;
|
|
1220
|
+
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;
|
|
1117
1221
|
return result !== null;
|
|
1118
1222
|
};
|
|
1119
1223
|
function resetNetworkStatus(actions) {
|
|
@@ -1155,7 +1259,7 @@ function updateNetworkStatus(actions, data) {
|
|
|
1155
1259
|
}
|
|
1156
1260
|
/**
|
|
1157
1261
|
* Event handler for blocked tasks.
|
|
1158
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for
|
|
1262
|
+
* If a transcation execution is manually blocked (like for parallel or waiting for wallet),
|
|
1159
1263
|
* This function will be called by queue manager using `queue definition`.
|
|
1160
1264
|
*
|
|
1161
1265
|
* It checks if the required wallet is connected, unblock the queue to be run.
|
|
@@ -1164,11 +1268,14 @@ function onBlockForConnectWallet(event, meta) {
|
|
|
1164
1268
|
var context = meta.context,
|
|
1165
1269
|
queue = meta.queue;
|
|
1166
1270
|
var swap = queue.getStorage().swapDetails;
|
|
1167
|
-
|
|
1271
|
+
var _isRequiredWalletConn = isRequiredWalletConnected(swap, context.state),
|
|
1272
|
+
ok = _isRequiredWalletConn.ok,
|
|
1273
|
+
reason = _isRequiredWalletConn.reason;
|
|
1274
|
+
if (!ok) {
|
|
1168
1275
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1169
1276
|
var currentStep = getCurrentStep(swap);
|
|
1170
1277
|
context.notifier({
|
|
1171
|
-
eventType: 'waiting_for_connecting_wallet',
|
|
1278
|
+
eventType: reason === 'account_miss_match' ? 'waiting_for_change_wallet_account' : 'waiting_for_connecting_wallet',
|
|
1172
1279
|
swap: swap,
|
|
1173
1280
|
step: currentStep
|
|
1174
1281
|
});
|
|
@@ -1220,7 +1327,7 @@ function onBlockForChangeNetwork(_event, meta) {
|
|
|
1220
1327
|
}
|
|
1221
1328
|
/**
|
|
1222
1329
|
* Event handler for blocked tasks. (Parallel mode)
|
|
1223
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for walle),
|
|
1330
|
+
* If a transcation execution flow is manually blocked (like for parallel or waiting for walle),
|
|
1224
1331
|
* This function will be called by queue manager using `queue definition`.
|
|
1225
1332
|
*
|
|
1226
1333
|
* It checks the blocked tasks, if there is no active `claimed` queue, try to give it to the best candidate.
|
|
@@ -1229,7 +1336,8 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1229
1336
|
var getBlockedTasks = meta.getBlockedTasks,
|
|
1230
1337
|
forceExecute = meta.forceExecute,
|
|
1231
1338
|
queue = meta.queue,
|
|
1232
|
-
manager = meta.manager
|
|
1339
|
+
manager = meta.manager,
|
|
1340
|
+
context = meta.context;
|
|
1233
1341
|
var _claimQueue = claimQueue(),
|
|
1234
1342
|
setClaimer = _claimQueue.setClaimer,
|
|
1235
1343
|
claimedBy = _claimQueue.claimedBy,
|
|
@@ -1243,12 +1351,14 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1243
1351
|
}
|
|
1244
1352
|
var claimerId = claimedBy();
|
|
1245
1353
|
var isClaimedByAnyQueue = !!claimerId;
|
|
1354
|
+
if (claimerId === queue.id) return;
|
|
1246
1355
|
// Check if any queue `claimed` before, if yes, we don't should do anything.
|
|
1247
1356
|
if (isClaimedByAnyQueue) {
|
|
1248
1357
|
// We need to keep the latest swap messages
|
|
1249
1358
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1250
1359
|
getStorage: queue.getStorage.bind(queue),
|
|
1251
|
-
setStorage: queue.setStorage.bind(queue)
|
|
1360
|
+
setStorage: queue.setStorage.bind(queue),
|
|
1361
|
+
notifier: context.notifier
|
|
1252
1362
|
});
|
|
1253
1363
|
return;
|
|
1254
1364
|
}
|
|
@@ -1273,7 +1383,7 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1273
1383
|
resetClaimedBy: function resetClaimedBy() {
|
|
1274
1384
|
reset();
|
|
1275
1385
|
// TODO: Use key generator
|
|
1276
|
-
retryOn(type + "-" + network + "
|
|
1386
|
+
retryOn(type + "-" + network + ":" + address, context.notifier, manager);
|
|
1277
1387
|
}
|
|
1278
1388
|
});
|
|
1279
1389
|
}
|
|
@@ -1282,16 +1392,28 @@ function isRequiredWalletConnected(swap, getState) {
|
|
|
1282
1392
|
type = _getRequiredWallet4.type,
|
|
1283
1393
|
address = _getRequiredWallet4.address;
|
|
1284
1394
|
if (!type || !address) {
|
|
1285
|
-
return
|
|
1395
|
+
return {
|
|
1396
|
+
ok: false,
|
|
1397
|
+
reason: 'not_connected'
|
|
1398
|
+
};
|
|
1286
1399
|
}
|
|
1287
1400
|
var walletState = getState(type);
|
|
1288
|
-
var accounts = walletState.accounts
|
|
1401
|
+
var accounts = walletState.accounts,
|
|
1402
|
+
connected = walletState.connected;
|
|
1289
1403
|
var connectedAccounts = accounts || [];
|
|
1290
|
-
|
|
1404
|
+
if (!connected) return {
|
|
1405
|
+
ok: false,
|
|
1406
|
+
reason: 'not_connected'
|
|
1407
|
+
};
|
|
1408
|
+
var matched = connectedAccounts.some(function (account) {
|
|
1291
1409
|
var _readAccountAddress = readAccountAddress(account),
|
|
1292
1410
|
accountAddress = _readAccountAddress.address;
|
|
1293
1411
|
return address === accountAddress;
|
|
1294
1412
|
});
|
|
1413
|
+
return {
|
|
1414
|
+
ok: matched,
|
|
1415
|
+
reason: 'account_miss_match'
|
|
1416
|
+
};
|
|
1295
1417
|
}
|
|
1296
1418
|
function singTransaction(actions) {
|
|
1297
1419
|
var getStorage = actions.getStorage,
|
|
@@ -1315,10 +1437,11 @@ function singTransaction(actions) {
|
|
|
1315
1437
|
tronApprovalTransaction = currentStep.tronApprovalTransaction,
|
|
1316
1438
|
starknetTransaction = currentStep.starknetTransaction,
|
|
1317
1439
|
starknetApprovalTransaction = currentStep.starknetApprovalTransaction;
|
|
1318
|
-
var sourceWallet = getRelatedWallet
|
|
1319
|
-
var walletAddress = getCurrentAddressOf
|
|
1440
|
+
var sourceWallet = getRelatedWallet(swap, currentStep);
|
|
1441
|
+
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
1320
1442
|
var walletSigners = getSigners(sourceWallet.walletType);
|
|
1321
1443
|
var onFinish = function onFinish() {
|
|
1444
|
+
// TODO resetClaimedBy is undefined here
|
|
1322
1445
|
if (actions.context.resetClaimedBy) {
|
|
1323
1446
|
actions.context.resetClaimedBy();
|
|
1324
1447
|
}
|
|
@@ -1336,27 +1459,18 @@ function singTransaction(actions) {
|
|
|
1336
1459
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1337
1460
|
});
|
|
1338
1461
|
notifier(_extends({
|
|
1339
|
-
eventType: '
|
|
1462
|
+
eventType: 'confirm_approve_contract'
|
|
1340
1463
|
}, updateResult));
|
|
1341
1464
|
// Execute transaction
|
|
1342
1465
|
walletSigners.getSigner(TransactionType.EVM).signAndSendTx(evmApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1343
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1344
1466
|
var approveUrl = getEvmApproveUrl(hash, getCurrentBlockchainOf(swap, currentStep), meta.evmBasedChains);
|
|
1345
|
-
|
|
1346
|
-
url: approveUrl,
|
|
1347
|
-
description: "approve"
|
|
1348
|
-
}]);
|
|
1349
|
-
// `currentStep` has been mutated, let's update storage.
|
|
1350
|
-
setStorage(_extends({}, getStorage(), {
|
|
1351
|
-
swapDetails: swap
|
|
1352
|
-
}));
|
|
1467
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1353
1468
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1354
1469
|
next();
|
|
1355
1470
|
onFinish();
|
|
1356
1471
|
}, function (error) {
|
|
1357
1472
|
var _error$root, _error$root2, _error$root3;
|
|
1358
1473
|
if (swap.status === 'failed') return;
|
|
1359
|
-
console.debug('error in approving', error);
|
|
1360
1474
|
var _prettifyErrorMessage = prettifyErrorMessage(error),
|
|
1361
1475
|
extraMessage = _prettifyErrorMessage.extraMessage,
|
|
1362
1476
|
extraMessageDetail = _prettifyErrorMessage.extraMessageDetail,
|
|
@@ -1391,27 +1505,18 @@ function singTransaction(actions) {
|
|
|
1391
1505
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1392
1506
|
});
|
|
1393
1507
|
notifier(_extends({
|
|
1394
|
-
eventType: '
|
|
1508
|
+
eventType: 'confirm_approve_contract'
|
|
1395
1509
|
}, _updateResult));
|
|
1396
1510
|
// Execute transaction
|
|
1397
1511
|
walletSigners.getSigner(TransactionType.TRON).signAndSendTx(tronApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1398
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1399
1512
|
var approveUrl = getTronApproveUrl(hash);
|
|
1400
|
-
|
|
1401
|
-
url: approveUrl,
|
|
1402
|
-
description: "approve"
|
|
1403
|
-
}]);
|
|
1404
|
-
// `currentStep` has been mutated, let's update storage.
|
|
1405
|
-
setStorage(_extends({}, getStorage(), {
|
|
1406
|
-
swapDetails: swap
|
|
1407
|
-
}));
|
|
1513
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1408
1514
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1409
1515
|
next();
|
|
1410
1516
|
onFinish();
|
|
1411
1517
|
}, function (error) {
|
|
1412
1518
|
var _error$root4, _error$root5, _error$root6;
|
|
1413
1519
|
if (swap.status === 'failed') return;
|
|
1414
|
-
console.debug('error in approving', error);
|
|
1415
1520
|
var _prettifyErrorMessage2 = prettifyErrorMessage(error),
|
|
1416
1521
|
extraMessage = _prettifyErrorMessage2.extraMessage,
|
|
1417
1522
|
extraMessageDetail = _prettifyErrorMessage2.extraMessageDetail,
|
|
@@ -1446,27 +1551,18 @@ function singTransaction(actions) {
|
|
|
1446
1551
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1447
1552
|
});
|
|
1448
1553
|
notifier(_extends({
|
|
1449
|
-
eventType: '
|
|
1554
|
+
eventType: 'confirm_approve_contract'
|
|
1450
1555
|
}, _updateResult2));
|
|
1451
1556
|
// Execute transaction
|
|
1452
1557
|
walletSigners.getSigner(TransactionType.STARKNET).signAndSendTx(starknetApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1453
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1454
1558
|
var approveUrl = getStarknetApproveUrl(hash);
|
|
1455
|
-
|
|
1456
|
-
url: approveUrl,
|
|
1457
|
-
description: "approve"
|
|
1458
|
-
}]);
|
|
1459
|
-
// `currentStep` has been mutated, let's update storage.
|
|
1460
|
-
setStorage(_extends({}, getStorage(), {
|
|
1461
|
-
swapDetails: swap
|
|
1462
|
-
}));
|
|
1559
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1463
1560
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1464
1561
|
next();
|
|
1465
1562
|
onFinish();
|
|
1466
1563
|
}, function (error) {
|
|
1467
1564
|
var _error$root7, _error$root8, _error$root9;
|
|
1468
1565
|
if (swap.status === 'failed') return;
|
|
1469
|
-
console.debug('error in approving', error);
|
|
1470
1566
|
var _prettifyErrorMessage3 = prettifyErrorMessage(error),
|
|
1471
1567
|
extraMessage = _prettifyErrorMessage3.extraMessage,
|
|
1472
1568
|
extraMessageDetail = _prettifyErrorMessage3.extraMessageDetail,
|
|
@@ -1492,17 +1588,20 @@ function singTransaction(actions) {
|
|
|
1492
1588
|
return;
|
|
1493
1589
|
}
|
|
1494
1590
|
var hasAlreadyProceededToSign = typeof swap.hasAlreadyProceededToSign === 'boolean';
|
|
1591
|
+
var nextStepStatusBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'failed' : 'running';
|
|
1592
|
+
var errorCodeBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'TX_EXPIRED' : null;
|
|
1495
1593
|
var executeMessage = hasAlreadyProceededToSign ? 'Transaction is expired. Please try again' : 'executing transaction';
|
|
1496
1594
|
var executeDetails = "" + (sourceWallet.walletType === WalletType.WALLET_CONNECT ? 'Check your mobile phone' : '');
|
|
1497
1595
|
if (!!transferTransaction) {
|
|
1498
1596
|
var _updateResult3 = updateSwapStatus({
|
|
1499
1597
|
getStorage: getStorage,
|
|
1500
1598
|
setStorage: setStorage,
|
|
1501
|
-
nextStepStatus:
|
|
1502
|
-
nextStatus:
|
|
1599
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1600
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1503
1601
|
message: executeMessage,
|
|
1504
1602
|
details: executeDetails,
|
|
1505
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1603
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1604
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1506
1605
|
});
|
|
1507
1606
|
var notification = getSwapNotitfication('confirm_transfer', _updateResult3);
|
|
1508
1607
|
notifier(notification);
|
|
@@ -1511,7 +1610,7 @@ function singTransaction(actions) {
|
|
|
1511
1610
|
onFinish();
|
|
1512
1611
|
} else {
|
|
1513
1612
|
walletSigners.getSigner(TransactionType.TRANSFER).signAndSendTx(transferTransaction, walletAddress, null).then(function (txId) {
|
|
1514
|
-
setStepTransactionIds(actions, txId, '
|
|
1613
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1515
1614
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1516
1615
|
next();
|
|
1517
1616
|
onFinish();
|
|
@@ -1541,11 +1640,12 @@ function singTransaction(actions) {
|
|
|
1541
1640
|
var _updateResult4 = updateSwapStatus({
|
|
1542
1641
|
getStorage: getStorage,
|
|
1543
1642
|
setStorage: setStorage,
|
|
1544
|
-
nextStepStatus:
|
|
1545
|
-
nextStatus:
|
|
1643
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1644
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1546
1645
|
message: executeMessage,
|
|
1547
1646
|
details: executeDetails,
|
|
1548
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1647
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1648
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1549
1649
|
});
|
|
1550
1650
|
var _notification = getSwapNotitfication('calling_smart_contract', _updateResult4);
|
|
1551
1651
|
notifier(_notification);
|
|
@@ -1554,7 +1654,7 @@ function singTransaction(actions) {
|
|
|
1554
1654
|
onFinish();
|
|
1555
1655
|
} else {
|
|
1556
1656
|
walletSigners.getSigner(TransactionType.EVM).signAndSendTx(evmTransaction, walletAddress, null).then(function (id) {
|
|
1557
|
-
setStepTransactionIds(actions, id, '
|
|
1657
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1558
1658
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1559
1659
|
next();
|
|
1560
1660
|
onFinish();
|
|
@@ -1588,11 +1688,12 @@ function singTransaction(actions) {
|
|
|
1588
1688
|
var _updateResult5 = updateSwapStatus({
|
|
1589
1689
|
getStorage: getStorage,
|
|
1590
1690
|
setStorage: setStorage,
|
|
1591
|
-
nextStepStatus:
|
|
1592
|
-
nextStatus:
|
|
1691
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1692
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1593
1693
|
message: executeMessage,
|
|
1594
1694
|
details: executeDetails,
|
|
1595
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1695
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1696
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1596
1697
|
});
|
|
1597
1698
|
var _notification2 = getSwapNotitfication('calling_smart_contract', _updateResult5);
|
|
1598
1699
|
notifier(_notification2);
|
|
@@ -1627,7 +1728,7 @@ function singTransaction(actions) {
|
|
|
1627
1728
|
walletSigners.getSigner(TransactionType.COSMOS).signAndSendTx(cosmosTransaction, walletAddress, null).then(
|
|
1628
1729
|
// todo
|
|
1629
1730
|
function (id) {
|
|
1630
|
-
setStepTransactionIds(actions, id, '
|
|
1731
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1631
1732
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1632
1733
|
next();
|
|
1633
1734
|
onFinish();
|
|
@@ -1657,11 +1758,12 @@ function singTransaction(actions) {
|
|
|
1657
1758
|
var _updateResult7 = updateSwapStatus({
|
|
1658
1759
|
getStorage: getStorage,
|
|
1659
1760
|
setStorage: setStorage,
|
|
1660
|
-
nextStepStatus:
|
|
1661
|
-
nextStatus:
|
|
1761
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1762
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1662
1763
|
message: executeMessage,
|
|
1663
1764
|
details: executeDetails,
|
|
1664
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1765
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1766
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1665
1767
|
});
|
|
1666
1768
|
var _notification3 = getSwapNotitfication('calling_smart_contract', _updateResult7);
|
|
1667
1769
|
notifier(_notification3);
|
|
@@ -1671,7 +1773,7 @@ function singTransaction(actions) {
|
|
|
1671
1773
|
} else {
|
|
1672
1774
|
var tx = solanaTransaction;
|
|
1673
1775
|
walletSigners.getSigner(TransactionType.SOLANA).signAndSendTx(tx, walletAddress, null).then(function (txId) {
|
|
1674
|
-
setStepTransactionIds(actions, txId, '
|
|
1776
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1675
1777
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1676
1778
|
next();
|
|
1677
1779
|
onFinish();
|
|
@@ -1701,11 +1803,12 @@ function singTransaction(actions) {
|
|
|
1701
1803
|
var _updateResult8 = updateSwapStatus({
|
|
1702
1804
|
getStorage: getStorage,
|
|
1703
1805
|
setStorage: setStorage,
|
|
1704
|
-
nextStepStatus:
|
|
1705
|
-
nextStatus:
|
|
1806
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1807
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1706
1808
|
message: executeMessage,
|
|
1707
1809
|
details: executeDetails,
|
|
1708
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1810
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1811
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1709
1812
|
});
|
|
1710
1813
|
var _notification4 = getSwapNotitfication('calling_smart_contract', _updateResult8);
|
|
1711
1814
|
notifier(_notification4);
|
|
@@ -1714,7 +1817,7 @@ function singTransaction(actions) {
|
|
|
1714
1817
|
onFinish();
|
|
1715
1818
|
} else {
|
|
1716
1819
|
walletSigners.getSigner(TransactionType.TRON).signAndSendTx(tronTransaction, walletAddress, null).then(function (id) {
|
|
1717
|
-
setStepTransactionIds(actions, id, '
|
|
1820
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1718
1821
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1719
1822
|
next();
|
|
1720
1823
|
onFinish();
|
|
@@ -1748,11 +1851,12 @@ function singTransaction(actions) {
|
|
|
1748
1851
|
var _updateResult9 = updateSwapStatus({
|
|
1749
1852
|
getStorage: getStorage,
|
|
1750
1853
|
setStorage: setStorage,
|
|
1751
|
-
nextStepStatus:
|
|
1752
|
-
nextStatus:
|
|
1854
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1855
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1753
1856
|
message: executeMessage,
|
|
1754
1857
|
details: executeDetails,
|
|
1755
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1858
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1859
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1756
1860
|
});
|
|
1757
1861
|
var _notification5 = getSwapNotitfication('calling_smart_contract', _updateResult9);
|
|
1758
1862
|
notifier(_notification5);
|
|
@@ -1761,7 +1865,7 @@ function singTransaction(actions) {
|
|
|
1761
1865
|
onFinish();
|
|
1762
1866
|
} else {
|
|
1763
1867
|
walletSigners.getSigner(TransactionType.STARKNET).signAndSendTx(starknetTransaction, walletAddress, null).then(function (id) {
|
|
1764
|
-
setStepTransactionIds(actions, id, '
|
|
1868
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1765
1869
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1766
1870
|
next();
|
|
1767
1871
|
onFinish();
|
|
@@ -1815,7 +1919,9 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1815
1919
|
var hasWaitingForConnect = Object.keys(q.list.state.tasks).some(function (taskId) {
|
|
1816
1920
|
var _task$blockedFor;
|
|
1817
1921
|
var task = q.list.state.tasks[taskId];
|
|
1818
|
-
return task.status === Status.BLOCKED &&
|
|
1922
|
+
return task.status === Status.BLOCKED &&
|
|
1923
|
+
// TODO double check later
|
|
1924
|
+
[BlockReason.WAIT_FOR_CONNECT_WALLET].includes((_task$blockedFor = task.blockedFor) == null ? void 0 : _task$blockedFor.reason);
|
|
1819
1925
|
});
|
|
1820
1926
|
if (currentStepRequiredWallet === wallet && hasWaitingForConnect && getCurrentBlockchainOfOrNull(swap, currentStep) != network) {
|
|
1821
1927
|
var queueInstance = q.list;
|
|
@@ -1829,10 +1935,17 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1829
1935
|
},
|
|
1830
1936
|
silent: true
|
|
1831
1937
|
});
|
|
1832
|
-
markRunningSwapAsSwitchingNetwork({
|
|
1938
|
+
var result = markRunningSwapAsSwitchingNetwork({
|
|
1833
1939
|
getStorage: queueInstance.getStorage.bind(queueInstance),
|
|
1834
1940
|
setStorage: queueInstance.setStorage.bind(queueInstance)
|
|
1835
1941
|
});
|
|
1942
|
+
if (result) {
|
|
1943
|
+
params == null ? void 0 : params.notifier({
|
|
1944
|
+
eventType: 'waiting_for_network_change',
|
|
1945
|
+
swap: result.swap,
|
|
1946
|
+
step: result.step
|
|
1947
|
+
});
|
|
1948
|
+
}
|
|
1836
1949
|
}
|
|
1837
1950
|
}
|
|
1838
1951
|
}
|
|
@@ -1863,6 +1976,49 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1863
1976
|
}
|
|
1864
1977
|
});
|
|
1865
1978
|
}
|
|
1979
|
+
/**
|
|
1980
|
+
* Get list of all running swaps
|
|
1981
|
+
*
|
|
1982
|
+
* @param manager
|
|
1983
|
+
* @returns list of pending swaps
|
|
1984
|
+
*/
|
|
1985
|
+
function getRunningSwaps(manager) {
|
|
1986
|
+
var queues = (manager == null ? void 0 : manager.getAll()) || new Map();
|
|
1987
|
+
var result = [];
|
|
1988
|
+
queues.forEach(function (q) {
|
|
1989
|
+
// retry only on affected queues
|
|
1990
|
+
var queueStorage = q.list.getStorage();
|
|
1991
|
+
var swap = queueStorage == null ? void 0 : queueStorage.swapDetails;
|
|
1992
|
+
if (!swap || swap.status !== 'running') return;
|
|
1993
|
+
result.push(swap);
|
|
1994
|
+
});
|
|
1995
|
+
return result;
|
|
1996
|
+
}
|
|
1997
|
+
/**
|
|
1998
|
+
*
|
|
1999
|
+
* Trying to reset notifications for pending swaps to correct message on page load.
|
|
2000
|
+
* We could remove this after supporting auto connect for wallets.
|
|
2001
|
+
*
|
|
2002
|
+
* @param swaps
|
|
2003
|
+
* @param notifier
|
|
2004
|
+
* @returns
|
|
2005
|
+
*/
|
|
2006
|
+
function resetRunningSwapNotifsOnPageLoad(runningSwaps, notifier) {
|
|
2007
|
+
runningSwaps.forEach(function (swap) {
|
|
2008
|
+
var currentStep = getCurrentStep(swap);
|
|
2009
|
+
var eventType;
|
|
2010
|
+
if ((currentStep == null ? void 0 : currentStep.networkStatus) === PendingSwapNetworkStatus.WaitingForQueue) eventType = 'waiting_for_queue';else if ((swap == null ? void 0 : swap.status) === 'running') {
|
|
2011
|
+
eventType = 'waiting_for_connecting_wallet';
|
|
2012
|
+
}
|
|
2013
|
+
if (!!eventType && !!notifier) {
|
|
2014
|
+
notifier({
|
|
2015
|
+
eventType: eventType,
|
|
2016
|
+
swap: swap,
|
|
2017
|
+
step: currentStep
|
|
2018
|
+
});
|
|
2019
|
+
}
|
|
2020
|
+
});
|
|
2021
|
+
}
|
|
1866
2022
|
/**
|
|
1867
2023
|
*
|
|
1868
2024
|
* Try to run blocked tasks by wallet and network name.
|
|
@@ -1874,7 +2030,7 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1874
2030
|
* @param manager
|
|
1875
2031
|
* @returns
|
|
1876
2032
|
*/
|
|
1877
|
-
function retryOn(wallet_network, manager, options) {
|
|
2033
|
+
function retryOn(wallet_network, notifier, manager, options) {
|
|
1878
2034
|
var _finalQueueToBeRun;
|
|
1879
2035
|
if (options === void 0) {
|
|
1880
2036
|
options = {
|
|
@@ -1907,7 +2063,6 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1907
2063
|
}
|
|
1908
2064
|
}
|
|
1909
2065
|
});
|
|
1910
|
-
// const isWaitingForConnectWallet = (status: Status) =>
|
|
1911
2066
|
var finalQueueToBeRun = undefined;
|
|
1912
2067
|
if (walletAndNetworkMatched.length > 0) {
|
|
1913
2068
|
finalQueueToBeRun = walletAndNetworkMatched[0];
|
|
@@ -1916,7 +2071,8 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1916
2071
|
var currentQueue = walletAndNetworkMatched[i];
|
|
1917
2072
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1918
2073
|
getStorage: currentQueue.getStorage.bind(currentQueue),
|
|
1919
|
-
setStorage: currentQueue.setStorage.bind(currentQueue)
|
|
2074
|
+
setStorage: currentQueue.setStorage.bind(currentQueue),
|
|
2075
|
+
notifier: notifier
|
|
1920
2076
|
});
|
|
1921
2077
|
}
|
|
1922
2078
|
}
|
|
@@ -1982,7 +2138,7 @@ function cancelSwap(swap) {
|
|
|
1982
2138
|
});
|
|
1983
2139
|
}
|
|
1984
2140
|
|
|
1985
|
-
var INTERVAL_FOR_CHECK =
|
|
2141
|
+
var INTERVAL_FOR_CHECK = 3000;
|
|
1986
2142
|
/**
|
|
1987
2143
|
* Subscribe to status of swap transaction by checking from server periodically.
|
|
1988
2144
|
* After getting the status, notify the user and schedule `SCHEDULE_NEXT_STEP`.
|
|
@@ -2040,6 +2196,7 @@ function _checkTransactionStatus() {
|
|
|
2040
2196
|
if (!!newTransaction) {
|
|
2041
2197
|
currentStep.status = 'created';
|
|
2042
2198
|
currentStep.executedTransactionId = null;
|
|
2199
|
+
currentStep.executedTransactionTime = null;
|
|
2043
2200
|
currentStep.transferTransaction = null;
|
|
2044
2201
|
currentStep.cosmosTransaction = null;
|
|
2045
2202
|
currentStep.evmTransaction = null;
|
|
@@ -2067,11 +2224,22 @@ function _checkTransactionStatus() {
|
|
|
2067
2224
|
eventType: 'step_completed_with_output',
|
|
2068
2225
|
swap: swap,
|
|
2069
2226
|
step: currentStep
|
|
2070
|
-
});
|
|
2227
|
+
});else if (prevOutputAmount === null && outputAmount === null) {
|
|
2228
|
+
// it is needed to set notification after reloading the page
|
|
2229
|
+
context.notifier({
|
|
2230
|
+
eventType: 'check_tx_status',
|
|
2231
|
+
swap: swap,
|
|
2232
|
+
step: currentStep
|
|
2233
|
+
});
|
|
2234
|
+
}
|
|
2071
2235
|
if (currentStep.status === 'success') {
|
|
2072
2236
|
nextStep = getNextStep(swap, currentStep);
|
|
2073
2237
|
swap.extraMessageDetail = '';
|
|
2074
2238
|
swap.extraMessage = !!nextStep ? "starting next step: " + nextStep.swapperId + ": " + nextStep.fromBlockchain + " -> " + nextStep.toBlockchain : '';
|
|
2239
|
+
} else if (currentStep.status === 'failed') {
|
|
2240
|
+
swap.extraMessage = 'Transaction failed in blockchain';
|
|
2241
|
+
swap.extraMessageSeverity = MessageSeverity.error;
|
|
2242
|
+
swap.extraMessageDetail = '';
|
|
2075
2243
|
}
|
|
2076
2244
|
// Sync data with storage
|
|
2077
2245
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2111,30 +2279,61 @@ function checkApprovalStatus(_x2) {
|
|
|
2111
2279
|
*/
|
|
2112
2280
|
function _checkApprovalStatus() {
|
|
2113
2281
|
_checkApprovalStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
|
|
2114
|
-
var getStorage, setStorage, next, schedule, retry, context, swap, currentStep, isApproved, response;
|
|
2282
|
+
var getStorage, setStorage, next, schedule, retry, failed, context, swap, currentStep, isApproved, response, updateResult;
|
|
2115
2283
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
2116
2284
|
while (1) switch (_context2.prev = _context2.next) {
|
|
2117
2285
|
case 0:
|
|
2118
|
-
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, context = _ref2.context;
|
|
2119
|
-
swap = getStorage().swapDetails; //
|
|
2286
|
+
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, failed = _ref2.failed, context = _ref2.context;
|
|
2287
|
+
swap = getStorage().swapDetails; // double check it after fixing parallel
|
|
2288
|
+
// const onFinish = () => {
|
|
2289
|
+
// // TODO resetClaimedBy is undefined here
|
|
2290
|
+
// if (context.resetClaimedBy) {
|
|
2291
|
+
// context.resetClaimedBy();
|
|
2292
|
+
// }
|
|
2293
|
+
// };
|
|
2294
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
2120
2295
|
currentStep = getCurrentStep(swap);
|
|
2121
2296
|
isApproved = false;
|
|
2122
2297
|
_context2.prev = 4;
|
|
2123
2298
|
_context2.next = 7;
|
|
2124
|
-
return httpService.checkApproval(swap.requestId);
|
|
2299
|
+
return httpService.checkApproval(swap.requestId, currentStep.executedTransactionId || '');
|
|
2125
2300
|
case 7:
|
|
2126
2301
|
response = _context2.sent;
|
|
2127
2302
|
isApproved = response.isApproved;
|
|
2303
|
+
if (!isApproved && response.txStatus === 'failed') {
|
|
2304
|
+
// approve transaction failed on
|
|
2305
|
+
// we should fail the whole swap
|
|
2306
|
+
updateResult = updateSwapStatus({
|
|
2307
|
+
getStorage: getStorage,
|
|
2308
|
+
setStorage: setStorage,
|
|
2309
|
+
nextStatus: 'failed',
|
|
2310
|
+
nextStepStatus: 'failed',
|
|
2311
|
+
errorCode: 'SEND_TX_FAILED',
|
|
2312
|
+
message: 'Approve transaction failed',
|
|
2313
|
+
details: 'Smart contract approval failed in blockchain.'
|
|
2314
|
+
});
|
|
2315
|
+
context.notifier(_extends({
|
|
2316
|
+
eventType: 'smart_contract_call_failed'
|
|
2317
|
+
}, updateResult));
|
|
2318
|
+
failed();
|
|
2319
|
+
// onFinish();
|
|
2320
|
+
} else if (!isApproved) {
|
|
2321
|
+
// it is needed to set notification after reloading the page
|
|
2322
|
+
context.notifier({
|
|
2323
|
+
eventType: 'check_approve_tx_status',
|
|
2324
|
+
swap: swap,
|
|
2325
|
+
step: currentStep
|
|
2326
|
+
});
|
|
2327
|
+
}
|
|
2128
2328
|
_context2.next = 15;
|
|
2129
2329
|
break;
|
|
2130
|
-
case
|
|
2131
|
-
_context2.prev =
|
|
2330
|
+
case 12:
|
|
2331
|
+
_context2.prev = 12;
|
|
2132
2332
|
_context2.t0 = _context2["catch"](4);
|
|
2133
|
-
console.error('Failed to check getApprovedAmount', _context2.t0);
|
|
2134
2333
|
isApproved = false;
|
|
2135
2334
|
case 15:
|
|
2136
2335
|
if (!isApproved) {
|
|
2137
|
-
_context2.next =
|
|
2336
|
+
_context2.next = 31;
|
|
2138
2337
|
break;
|
|
2139
2338
|
}
|
|
2140
2339
|
currentStep.status = 'approved';
|
|
@@ -2143,6 +2342,7 @@ function _checkApprovalStatus() {
|
|
|
2143
2342
|
swap.extraMessageSeverity = MessageSeverity.success;
|
|
2144
2343
|
currentStep.evmApprovalTransaction = null;
|
|
2145
2344
|
currentStep.executedTransactionId = null;
|
|
2345
|
+
currentStep.executedTransactionTime = null;
|
|
2146
2346
|
currentStep.starknetApprovalTransaction = null;
|
|
2147
2347
|
currentStep.tronApprovalTransaction = null;
|
|
2148
2348
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2155,18 +2355,18 @@ function _checkApprovalStatus() {
|
|
|
2155
2355
|
});
|
|
2156
2356
|
schedule(SwapActionTypes.SCHEDULE_NEXT_STEP);
|
|
2157
2357
|
next();
|
|
2158
|
-
_context2.next =
|
|
2358
|
+
_context2.next = 34;
|
|
2159
2359
|
break;
|
|
2160
|
-
case
|
|
2161
|
-
_context2.next =
|
|
2360
|
+
case 31:
|
|
2361
|
+
_context2.next = 33;
|
|
2162
2362
|
return delay(2000);
|
|
2163
|
-
case 32:
|
|
2164
|
-
retry();
|
|
2165
2363
|
case 33:
|
|
2364
|
+
retry();
|
|
2365
|
+
case 34:
|
|
2166
2366
|
case "end":
|
|
2167
2367
|
return _context2.stop();
|
|
2168
2368
|
}
|
|
2169
|
-
}, _callee2, null, [[4,
|
|
2369
|
+
}, _callee2, null, [[4, 12]]);
|
|
2170
2370
|
}));
|
|
2171
2371
|
return _checkApprovalStatus.apply(this, arguments);
|
|
2172
2372
|
}
|
|
@@ -2285,7 +2485,7 @@ function _createTransaction() {
|
|
|
2285
2485
|
nextStepStatus: 'failed',
|
|
2286
2486
|
message: extraMessage,
|
|
2287
2487
|
details: extraMessageDetail,
|
|
2288
|
-
errorCode:
|
|
2488
|
+
errorCode: 'FETCH_TX_FAILED'
|
|
2289
2489
|
});
|
|
2290
2490
|
context.notifier(_extends({
|
|
2291
2491
|
eventType: 'task_failed'
|
|
@@ -2332,7 +2532,7 @@ function _executeTransaction() {
|
|
|
2332
2532
|
currentStep = getCurrentStep(swap); // Resetting network status, so we will set it again during the running of this task.
|
|
2333
2533
|
resetNetworkStatus(actions);
|
|
2334
2534
|
/* Make sure wallet is connected and also the connected wallet is matched with tx by checking address. */
|
|
2335
|
-
isWrongAddress = !isRequiredWalletConnected(swap, context.state);
|
|
2535
|
+
isWrongAddress = !isRequiredWalletConnected(swap, context.state).ok;
|
|
2336
2536
|
if (!isWrongAddress) {
|
|
2337
2537
|
_context.next = 15;
|
|
2338
2538
|
break;
|
|
@@ -2357,13 +2557,13 @@ function _executeTransaction() {
|
|
|
2357
2557
|
We only run one request at a time (In parallel mode).
|
|
2358
2558
|
*/
|
|
2359
2559
|
needsToBlockQueue = isNeedBlockQueueForParallel(currentStep);
|
|
2360
|
-
if (!(needsToBlockQueue && !isClaimed
|
|
2560
|
+
if (!(needsToBlockQueue && !isClaimed)) {
|
|
2361
2561
|
_context.next = 20;
|
|
2362
2562
|
break;
|
|
2363
2563
|
}
|
|
2364
2564
|
_blockedFor = {
|
|
2365
2565
|
reason: BlockReason.DEPENDS_ON_OTHER_QUEUES,
|
|
2366
|
-
description: 'Waiting for other
|
|
2566
|
+
description: 'Waiting for other swaps to complete',
|
|
2367
2567
|
details: {}
|
|
2368
2568
|
};
|
|
2369
2569
|
requestBlock(_blockedFor);
|
|
@@ -2427,6 +2627,7 @@ function scheduleNextStep(_ref) {
|
|
|
2427
2627
|
schedule(SwapActionTypes.EXECUTE_TRANSACTION);
|
|
2428
2628
|
return next();
|
|
2429
2629
|
}
|
|
2630
|
+
// TODO double check it after approval changes
|
|
2430
2631
|
if (currentStep != null && currentStep.executedTransactionId) {
|
|
2431
2632
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
2432
2633
|
return next();
|
|
@@ -2462,6 +2663,29 @@ function start(_ref) {
|
|
|
2462
2663
|
next();
|
|
2463
2664
|
}
|
|
2464
2665
|
|
|
2666
|
+
var _actions;
|
|
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
|
+
|
|
2465
2689
|
var MIGRATED_KEY = 'migratedToQueueManager';
|
|
2466
2690
|
/**
|
|
2467
2691
|
*
|
|
@@ -2653,9 +2877,10 @@ function useQueueManager(params) {
|
|
|
2653
2877
|
checkWaitingForConnectWalletChange({
|
|
2654
2878
|
evmChains: params.evmChains,
|
|
2655
2879
|
wallet_network: params.lastConnectedWallet,
|
|
2656
|
-
manager: manager
|
|
2880
|
+
manager: manager,
|
|
2881
|
+
notifier: params.notifier
|
|
2657
2882
|
});
|
|
2658
|
-
retryOn(params.lastConnectedWallet, manager);
|
|
2883
|
+
retryOn(params.lastConnectedWallet, params.notifier, manager);
|
|
2659
2884
|
}
|
|
2660
2885
|
}, [params.lastConnectedWallet]);
|
|
2661
2886
|
useEffect(function () {
|
|
@@ -2670,28 +2895,5 @@ function useQueueManager(params) {
|
|
|
2670
2895
|
}, [params.disconnectedWallet]);
|
|
2671
2896
|
}
|
|
2672
2897
|
|
|
2673
|
-
|
|
2674
|
-
/**
|
|
2675
|
-
*
|
|
2676
|
-
* The idea behind this queue is to be able dynamically add some steps.
|
|
2677
|
-
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2678
|
-
* or waits for something happend (like checking status of a transaction from server)
|
|
2679
|
-
*
|
|
2680
|
-
*/
|
|
2681
|
-
var swapQueueDef = {
|
|
2682
|
-
name: 'swap',
|
|
2683
|
-
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),
|
|
2684
|
-
run: [SwapActionTypes.START],
|
|
2685
|
-
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2686
|
-
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2687
|
-
onBlockForConnectWallet(event, meta);
|
|
2688
|
-
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2689
|
-
onBlockForChangeNetwork(event, meta);
|
|
2690
|
-
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2691
|
-
onDependsOnOtherQueues(event, meta);
|
|
2692
|
-
}
|
|
2693
|
-
}
|
|
2694
|
-
};
|
|
2695
|
-
|
|
2696
|
-
export { cancelSwap, checkWaitingForNetworkChange, getCurrentStep, getEvmProvider, getRelatedWallet$1 as getRelatedWallet, swapQueueDef, updateSwapStatus, useMigration, useQueueManager };
|
|
2898
|
+
export { MessageSeverity, PendingSwapNetworkStatus, PrettyError, calculatePendingSwap, cancelSwap, checkWaitingForNetworkChange, getCurrentBlockchainOfOrNull, getCurrentStep, getEvmProvider, getRelatedWallet, getRelatedWalletOrNull, getRequiredWallet, getRunningSwaps, prettifyErrorMessage, resetRunningSwapNotifsOnPageLoad, splitWalletNetwork, swapQueueDef, updateSwapStatus, useMigration, useQueueManager };
|
|
2697
2899
|
//# sourceMappingURL=queue-manager-rango-preset.esm.js.map
|