@rango-dev/queue-manager-rango-preset 0.1.10-next.96 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/checkStatus.d.ts.map +1 -1
- package/dist/actions/createTransaction.d.ts.map +1 -1
- package/dist/actions/scheduleNextStep.d.ts.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/helpers.d.ts +46 -14
- package/dist/helpers.d.ts.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/index.d.ts +4 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/queue-manager-rango-preset.cjs.development.js +397 -302
- package/dist/queue-manager-rango-preset.cjs.development.js.map +1 -1
- package/dist/queue-manager-rango-preset.cjs.production.min.js +1 -1
- package/dist/queue-manager-rango-preset.cjs.production.min.js.map +1 -1
- package/dist/queue-manager-rango-preset.esm.js +376 -288
- package/dist/queue-manager-rango-preset.esm.js.map +1 -1
- package/dist/shared-errors.d.ts +5 -37
- package/dist/shared-errors.d.ts.map +1 -1
- package/dist/shared.d.ts +20 -17
- package/dist/shared.d.ts.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/readme.md +1 -9
- package/src/actions/checkStatus.ts +54 -5
- package/src/actions/createTransaction.ts +2 -3
- package/src/actions/executeTransaction.ts +3 -3
- package/src/actions/scheduleNextStep.ts +1 -0
- package/src/constants.ts +1 -1
- package/src/helpers.ts +225 -174
- package/src/hooks.ts +2 -1
- package/src/index.ts +19 -44
- package/src/shared-errors.ts +53 -76
- package/src/shared.ts +34 -54
- package/src/types.ts +1 -0
|
@@ -1,28 +1,13 @@
|
|
|
1
|
+
import { SignerError, isAPIErrorCode, isSignerErrorCode, SignerErrorCode } from 'rango-types';
|
|
1
2
|
import { WalletType, Network, getBlockChainNameFromId } from '@rango-dev/wallets-shared';
|
|
2
3
|
import { readAccountAddress } from '@rango-dev/wallets-core';
|
|
3
4
|
import { RangoClient, TransactionType } from 'rango-sdk';
|
|
4
5
|
import { Status, Persistor, DB_NAME } from '@rango-dev/queue-manager-core';
|
|
5
|
-
import { isSignerErrorCode, SignerErrorCode, SignerError } from 'rango-types';
|
|
6
6
|
import { captureException } from '@sentry/browser';
|
|
7
7
|
import { useManager } from '@rango-dev/queue-manager-react';
|
|
8
8
|
import { useState, useEffect } from 'react';
|
|
9
9
|
import { v4 } from 'uuid';
|
|
10
10
|
|
|
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
11
|
function _regeneratorRuntime() {
|
|
27
12
|
_regeneratorRuntime = function () {
|
|
28
13
|
return exports;
|
|
@@ -448,46 +433,6 @@ function _assertThisInitialized(self) {
|
|
|
448
433
|
return self;
|
|
449
434
|
}
|
|
450
435
|
|
|
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
436
|
var ERROR_ASSERTION_FAILED = 'Assertion failed (Unexpected behaviour)';
|
|
492
437
|
var ERROR_CREATE_TRANSACTION = 'Create transaction failed in Rango Server';
|
|
493
438
|
var ERROR_INPUT_WALLET_NOT_FOUND = 'Input wallet not found';
|
|
@@ -496,12 +441,17 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
496
441
|
function PrettyError(code, m, root, detail) {
|
|
497
442
|
var _this;
|
|
498
443
|
_this = _Error.call(this, m) || this;
|
|
444
|
+
_this._isPrettyError = true;
|
|
499
445
|
Object.setPrototypeOf(_assertThisInitialized(_this), PrettyError.prototype);
|
|
446
|
+
PrettyError.prototype._isPrettyError = true;
|
|
500
447
|
_this.code = code;
|
|
501
448
|
_this.detail = detail;
|
|
502
449
|
_this.root = root;
|
|
503
450
|
return _this;
|
|
504
451
|
}
|
|
452
|
+
PrettyError.isPrettyError = function isPrettyError(obj) {
|
|
453
|
+
return obj instanceof PrettyError || Object.prototype.hasOwnProperty('_isPrettyError');
|
|
454
|
+
};
|
|
505
455
|
var _proto = PrettyError.prototype;
|
|
506
456
|
_proto.getErrorDetail = function getErrorDetail() {
|
|
507
457
|
var rawMessage = typeof this.root === 'object' && this.root && this.root.error ? this.root.error : JSON.stringify(this.root);
|
|
@@ -513,33 +463,30 @@ var PrettyError = /*#__PURE__*/function (_Error) {
|
|
|
513
463
|
};
|
|
514
464
|
};
|
|
515
465
|
PrettyError.AssertionFailed = function AssertionFailed(m) {
|
|
516
|
-
return new PrettyError(
|
|
466
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_ASSERTION_FAILED, m);
|
|
517
467
|
};
|
|
518
468
|
PrettyError.BadStatusCode = function BadStatusCode(message, statusCode) {
|
|
519
|
-
return new PrettyError(
|
|
469
|
+
return new PrettyError('TX_FAIL', message, null, "status code = " + statusCode);
|
|
520
470
|
};
|
|
521
471
|
PrettyError.CreateTransaction = function CreateTransaction(detail) {
|
|
522
|
-
return new PrettyError(
|
|
472
|
+
return new PrettyError('FETCH_TX_FAILED', ERROR_CREATE_TRANSACTION, null, detail);
|
|
523
473
|
};
|
|
524
474
|
PrettyError.WalletMissing = function WalletMissing() {
|
|
525
|
-
return new PrettyError(
|
|
475
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_INPUT_WALLET_NOT_FOUND, null, 'Server requested for a blockchain or address not selected by user');
|
|
526
476
|
};
|
|
527
477
|
PrettyError.BlockchainMissing = function BlockchainMissing() {
|
|
528
|
-
return new PrettyError(
|
|
478
|
+
return new PrettyError('CLIENT_UNEXPECTED_BEHAVIOUR', ERROR_INPUT_WALLET_NOT_FOUND, null, 'Server requested for a blockchain or address not selected by user');
|
|
529
479
|
};
|
|
530
480
|
return PrettyError;
|
|
531
481
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
532
|
-
function isAPIErrorCode(value) {
|
|
533
|
-
return Object.values(APIErrorCode).includes(value);
|
|
534
|
-
}
|
|
535
482
|
function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
536
|
-
var defaultErrorCode =
|
|
483
|
+
var defaultErrorCode = 'CLIENT_UNEXPECTED_BEHAVIOUR';
|
|
537
484
|
try {
|
|
538
485
|
if (!errorCode) return defaultErrorCode;
|
|
539
486
|
if (isAPIErrorCode(errorCode)) return errorCode;
|
|
540
487
|
if (isSignerErrorCode(errorCode)) {
|
|
541
488
|
var _t;
|
|
542
|
-
var t = (_t = {}, _t[SignerErrorCode.REJECTED_BY_USER] =
|
|
489
|
+
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
490
|
return t[errorCode];
|
|
544
491
|
}
|
|
545
492
|
return defaultErrorCode;
|
|
@@ -547,6 +494,33 @@ function mapAppErrorCodesToAPIErrorCode(errorCode) {
|
|
|
547
494
|
return defaultErrorCode;
|
|
548
495
|
}
|
|
549
496
|
}
|
|
497
|
+
var prettifyErrorMessage = function prettifyErrorMessage(obj) {
|
|
498
|
+
if (!obj) return {
|
|
499
|
+
extraMessage: '',
|
|
500
|
+
extraMessageErrorCode: null
|
|
501
|
+
};
|
|
502
|
+
if (PrettyError.isPrettyError(obj)) return obj.getErrorDetail();
|
|
503
|
+
if (SignerError.isSignerError(obj)) {
|
|
504
|
+
var t = obj.getErrorDetail();
|
|
505
|
+
return {
|
|
506
|
+
extraMessage: t.message,
|
|
507
|
+
extraMessageDetail: t.detail,
|
|
508
|
+
extraMessageErrorCode: t.code
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
if (obj instanceof Error) return {
|
|
512
|
+
extraMessage: obj.toString(),
|
|
513
|
+
extraMessageErrorCode: null
|
|
514
|
+
};
|
|
515
|
+
if (typeof obj !== 'string') return {
|
|
516
|
+
extraMessage: JSON.stringify(obj),
|
|
517
|
+
extraMessageErrorCode: null
|
|
518
|
+
};
|
|
519
|
+
return {
|
|
520
|
+
extraMessage: obj,
|
|
521
|
+
extraMessageErrorCode: null
|
|
522
|
+
};
|
|
523
|
+
};
|
|
550
524
|
|
|
551
525
|
var PendingSwapNetworkStatus;
|
|
552
526
|
(function (PendingSwapNetworkStatus) {
|
|
@@ -599,48 +573,22 @@ var getStarknetApproveUrl = function getStarknetApproveUrl(tx) {
|
|
|
599
573
|
var getTronApproveUrl = function getTronApproveUrl(tx) {
|
|
600
574
|
return 'https://tronscan.org/#/transaction/{txHash}'.replace('{txHash}', tx.toLowerCase());
|
|
601
575
|
};
|
|
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
576
|
function getNextStep(swap, currentStep) {
|
|
630
577
|
return swap.steps.find(function (step) {
|
|
631
578
|
return step.status !== 'failed' && step.status !== 'success' && step.id !== currentStep.id;
|
|
632
579
|
}) || null;
|
|
633
580
|
}
|
|
634
|
-
|
|
581
|
+
/**
|
|
582
|
+
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
583
|
+
*/
|
|
635
584
|
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 ? {
|
|
585
|
+
var _step$evmTransaction2, _step$evmApprovalTran2, _step$tronTransaction2, _step$tronApprovalTra2, _step$starknetTransac2, _step$starknetApprova2, _step$cosmosTransacti2, _step$solanaTransacti2, _step$transferTransac2, _step$transferTransac3;
|
|
586
|
+
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
587
|
address: (_step$transferTransac3 = step.transferTransaction) == null ? void 0 : _step$transferTransac3.fromWalletAddress
|
|
639
588
|
} : null) || null;
|
|
640
589
|
if (result == null) throw PrettyError.WalletMissing();
|
|
641
590
|
return result.address;
|
|
642
591
|
};
|
|
643
|
-
// TODO: we have samething in `helpers`, for fixing circular dependency, we copied and should be removed eventually.
|
|
644
592
|
function getRelatedWallet(swap, currentStep) {
|
|
645
593
|
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
646
594
|
var walletKV = Object.keys(swap.wallets).map(function (k) {
|
|
@@ -666,6 +614,34 @@ function getRelatedWalletOrNull(swap, currentStep) {
|
|
|
666
614
|
}
|
|
667
615
|
}
|
|
668
616
|
|
|
617
|
+
var SwapActionTypes;
|
|
618
|
+
(function (SwapActionTypes) {
|
|
619
|
+
SwapActionTypes["START"] = "START";
|
|
620
|
+
SwapActionTypes["SCHEDULE_NEXT_STEP"] = "SCHEDULE_NEXT_STEP";
|
|
621
|
+
SwapActionTypes["CREATE_TRANSACTION"] = "CREATE_TRANSACTION";
|
|
622
|
+
SwapActionTypes["EXECUTE_TRANSACTION"] = "EXECUTE_TRANSACTION";
|
|
623
|
+
SwapActionTypes["CHECK_TRANSACTION_STATUS"] = "CHECK_TRANSACTION_STATUS";
|
|
624
|
+
})(SwapActionTypes || (SwapActionTypes = {}));
|
|
625
|
+
var BlockReason;
|
|
626
|
+
(function (BlockReason) {
|
|
627
|
+
BlockReason["WAIT_FOR_CONNECT_WALLET"] = "waiting_for_connecting_wallet";
|
|
628
|
+
BlockReason["WAIT_FOR_NETWORK_CHANGE"] = "waiting_for_network_change";
|
|
629
|
+
BlockReason["DEPENDS_ON_OTHER_QUEUES"] = "depends_on_other_queues";
|
|
630
|
+
})(BlockReason || (BlockReason = {}));
|
|
631
|
+
|
|
632
|
+
var RANGO_DAPP_API_KEY = process.env.REACT_APP_API_KEY;
|
|
633
|
+
var RANGO_DAPP_API_BASE_URL = process.env.REACT_APP_API_BASE_URL;
|
|
634
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET = 'Waiting for connecting wallet';
|
|
635
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION_WRONG_WALLET(type, address) {
|
|
636
|
+
return "Please change your " + (type || 'wallet') + " account to " + (address || 'proper address');
|
|
637
|
+
};
|
|
638
|
+
var ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION = function ERROR_MESSAGE_WAIT_FOR_WALLET_DESCRIPTION(type) {
|
|
639
|
+
return "Please connect to " + (type || 'your wallet') + " by using bellow button or top right button on page.";
|
|
640
|
+
};
|
|
641
|
+
var ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK = function ERROR_MESSAGE_WAIT_FOR_CHANGE_NETWORK(network) {
|
|
642
|
+
return "Please change your network to " + network + ".";
|
|
643
|
+
};
|
|
644
|
+
|
|
669
645
|
function logRPCError(error, swap, currentStep, walletType) {
|
|
670
646
|
try {
|
|
671
647
|
captureException(error, {
|
|
@@ -709,12 +685,23 @@ function claimQueue() {
|
|
|
709
685
|
};
|
|
710
686
|
}
|
|
711
687
|
/**
|
|
712
|
-
*
|
|
688
|
+
* Sample inputs are:
|
|
689
|
+
* - "metamask-ETH"
|
|
690
|
+
* - "metamask-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
691
|
+
* - "token-pocket-BSC-BSC:0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
713
692
|
* Returns "wallet and network" separately, even if the wallet is dashed inside.
|
|
714
693
|
*
|
|
715
694
|
*/
|
|
716
695
|
function splitWalletNetwork(input) {
|
|
717
|
-
|
|
696
|
+
var removedAddressInput = (input == null ? void 0 : input.split(':')[0]) || '';
|
|
697
|
+
var splittedInput = removedAddressInput.split('-');
|
|
698
|
+
var network = splittedInput[splittedInput.length - 1];
|
|
699
|
+
var walletNetwork = splittedInput.slice(0, -1);
|
|
700
|
+
if (walletNetwork[walletNetwork.length - 1] === network) {
|
|
701
|
+
walletNetwork.pop();
|
|
702
|
+
}
|
|
703
|
+
var wallet = walletNetwork.join('-');
|
|
704
|
+
return [wallet, network];
|
|
718
705
|
}
|
|
719
706
|
/**
|
|
720
707
|
*
|
|
@@ -747,8 +734,10 @@ function updateSwapStatus(_ref) {
|
|
|
747
734
|
if (!!nextStatus) swap.status = nextStatus;
|
|
748
735
|
swap.hasAlreadyProceededToSign = hasAlreadyProceededToSign;
|
|
749
736
|
if (!!nextStatus && ['failed', 'success'].includes(nextStatus)) swap.finishTime = new Date().getTime().toString();
|
|
750
|
-
if (!!message
|
|
751
|
-
|
|
737
|
+
if (!!message || !!details) {
|
|
738
|
+
swap.extraMessage = message || '';
|
|
739
|
+
swap.extraMessageDetail = details || '';
|
|
740
|
+
}
|
|
752
741
|
if (!!nextStepStatus && ['failed'].includes(nextStepStatus)) {
|
|
753
742
|
var _getRelatedWalletOrNu;
|
|
754
743
|
//if user cancel the swap, we should pass relevant reason to the server.
|
|
@@ -758,7 +747,7 @@ function updateSwapStatus(_ref) {
|
|
|
758
747
|
httpService.reportFailure({
|
|
759
748
|
requestId: swap.requestId,
|
|
760
749
|
step: (currentStep == null ? void 0 : currentStep.id) || 1,
|
|
761
|
-
eventType: mapAppErrorCodesToAPIErrorCode(
|
|
750
|
+
eventType: mapAppErrorCodesToAPIErrorCode(errorCode),
|
|
762
751
|
reason: errorReason || '',
|
|
763
752
|
data: walletType ? {
|
|
764
753
|
wallet: walletType
|
|
@@ -774,18 +763,32 @@ function updateSwapStatus(_ref) {
|
|
|
774
763
|
step: currentStep
|
|
775
764
|
};
|
|
776
765
|
}
|
|
777
|
-
function setStepTransactionIds(_ref2, txId, eventType,
|
|
766
|
+
function setStepTransactionIds(_ref2, txId, notifier, eventType, approveUrl) {
|
|
778
767
|
var getStorage = _ref2.getStorage,
|
|
779
768
|
setStorage = _ref2.setStorage;
|
|
780
769
|
var swap = getStorage().swapDetails;
|
|
781
770
|
swap.hasAlreadyProceededToSign = null;
|
|
782
771
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
783
772
|
var currentStep = getCurrentStep(swap);
|
|
784
|
-
currentStep.executedTransactionId = txId
|
|
773
|
+
currentStep.executedTransactionId = txId;
|
|
774
|
+
currentStep.executedTransactionTime = new Date().getTime().toString();
|
|
775
|
+
if (!!approveUrl) currentStep.explorerUrl = [].concat(currentStep.explorerUrl || [], [{
|
|
776
|
+
url: approveUrl,
|
|
777
|
+
description: "approve"
|
|
778
|
+
}]);
|
|
779
|
+
if (eventType === 'check_tx_status') {
|
|
780
|
+
swap.extraMessage = 'Checking transaction status ...';
|
|
781
|
+
swap.extraMessageDetail = '';
|
|
782
|
+
swap.extraMessageSeverity = MessageSeverity.info;
|
|
783
|
+
} else if (eventType === 'check_approve_tx_status') {
|
|
784
|
+
swap.extraMessage = 'Checking approve transaction status ...';
|
|
785
|
+
swap.extraMessageDetail = '';
|
|
786
|
+
swap.extraMessageSeverity = MessageSeverity.info;
|
|
787
|
+
}
|
|
785
788
|
setStorage(_extends({}, getStorage(), {
|
|
786
789
|
swapDetails: swap
|
|
787
790
|
}));
|
|
788
|
-
notifier({
|
|
791
|
+
if (!!eventType) notifier({
|
|
789
792
|
eventType: eventType,
|
|
790
793
|
swap: swap,
|
|
791
794
|
step: currentStep
|
|
@@ -860,13 +863,19 @@ function markRunningSwapAsSwitchingNetwork(_ref4) {
|
|
|
860
863
|
*/
|
|
861
864
|
function markRunningSwapAsDependsOnOtherQueues(_ref5) {
|
|
862
865
|
var getStorage = _ref5.getStorage,
|
|
863
|
-
setStorage = _ref5.setStorage
|
|
866
|
+
setStorage = _ref5.setStorage,
|
|
867
|
+
notifier = _ref5.notifier;
|
|
864
868
|
var swap = getStorage().swapDetails;
|
|
865
869
|
var currentStep = getCurrentStep(swap);
|
|
866
870
|
if (!currentStep) return;
|
|
867
871
|
swap.networkStatusExtraMessage = '';
|
|
868
872
|
swap.networkStatusExtraMessageDetail = '';
|
|
869
873
|
currentStep.networkStatus = PendingSwapNetworkStatus.WaitingForQueue;
|
|
874
|
+
notifier({
|
|
875
|
+
eventType: 'waiting_for_queue',
|
|
876
|
+
swap: swap,
|
|
877
|
+
step: currentStep
|
|
878
|
+
});
|
|
870
879
|
setStorage(_extends({}, getStorage(), {
|
|
871
880
|
swapDetails: swap
|
|
872
881
|
}));
|
|
@@ -998,9 +1007,6 @@ function _getChainId() {
|
|
|
998
1007
|
function isNetworkMatchedForTransaction(_x2, _x3, _x4, _x5, _x6) {
|
|
999
1008
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1000
1009
|
}
|
|
1001
|
-
/**
|
|
1002
|
-
* Returns the wallet address, based on the current step of `PendingSwap`.
|
|
1003
|
-
*/
|
|
1004
1010
|
function _isNetworkMatchedForTransaction() {
|
|
1005
1011
|
_isNetworkMatchedForTransaction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(swap, step, wallet, meta, providers) {
|
|
1006
1012
|
var fromBlockChain, sourceWallet, provider, chainId, blockChain;
|
|
@@ -1008,112 +1014,85 @@ function _isNetworkMatchedForTransaction() {
|
|
|
1008
1014
|
while (1) switch (_context2.prev = _context2.next) {
|
|
1009
1015
|
case 0:
|
|
1010
1016
|
if (!isWalletNull(wallet)) {
|
|
1011
|
-
_context2.next =
|
|
1017
|
+
_context2.next = 2;
|
|
1012
1018
|
break;
|
|
1013
1019
|
}
|
|
1014
|
-
console.warn('wallet object is null');
|
|
1015
1020
|
return _context2.abrupt("return", false);
|
|
1016
|
-
case
|
|
1021
|
+
case 2:
|
|
1017
1022
|
fromBlockChain = getCurrentBlockchainOfOrNull(swap, step);
|
|
1018
1023
|
if (fromBlockChain) {
|
|
1019
|
-
_context2.next =
|
|
1024
|
+
_context2.next = 5;
|
|
1020
1025
|
break;
|
|
1021
1026
|
}
|
|
1022
1027
|
return _context2.abrupt("return", false);
|
|
1023
|
-
case
|
|
1028
|
+
case 5:
|
|
1024
1029
|
if (!meta.evmBasedChains.find(function (evmBlochain) {
|
|
1025
1030
|
return evmBlochain.name === fromBlockChain;
|
|
1026
1031
|
})) {
|
|
1027
|
-
_context2.next =
|
|
1032
|
+
_context2.next = 29;
|
|
1028
1033
|
break;
|
|
1029
1034
|
}
|
|
1030
|
-
_context2.prev =
|
|
1035
|
+
_context2.prev = 6;
|
|
1031
1036
|
sourceWallet = swap.wallets[fromBlockChain];
|
|
1032
1037
|
if (!sourceWallet) {
|
|
1033
|
-
_context2.next =
|
|
1038
|
+
_context2.next = 23;
|
|
1034
1039
|
break;
|
|
1035
1040
|
}
|
|
1036
1041
|
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 =
|
|
1042
|
+
_context2.next = 22;
|
|
1038
1043
|
break;
|
|
1039
1044
|
}
|
|
1040
1045
|
provider = getEvmProvider(providers, sourceWallet.walletType);
|
|
1041
|
-
_context2.next =
|
|
1046
|
+
_context2.next = 13;
|
|
1042
1047
|
return getChainId(provider);
|
|
1043
|
-
case
|
|
1048
|
+
case 13:
|
|
1044
1049
|
chainId = _context2.sent;
|
|
1045
1050
|
if (!chainId) {
|
|
1046
|
-
_context2.next =
|
|
1051
|
+
_context2.next = 20;
|
|
1047
1052
|
break;
|
|
1048
1053
|
}
|
|
1049
|
-
blockChain = getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (
|
|
1050
|
-
var blockchainMeta =
|
|
1054
|
+
blockChain = getBlockChainNameFromId(chainId, Object.entries(meta.blockchains).map(function (_ref6) {
|
|
1055
|
+
var blockchainMeta = _ref6[1];
|
|
1051
1056
|
return blockchainMeta;
|
|
1052
1057
|
}));
|
|
1053
1058
|
if (!(blockChain && blockChain.toLowerCase() === fromBlockChain.toLowerCase())) {
|
|
1054
|
-
_context2.next =
|
|
1059
|
+
_context2.next = 18;
|
|
1055
1060
|
break;
|
|
1056
1061
|
}
|
|
1057
1062
|
return _context2.abrupt("return", true);
|
|
1058
|
-
case
|
|
1063
|
+
case 18:
|
|
1059
1064
|
if (!(blockChain && blockChain.toLowerCase() !== fromBlockChain.toLowerCase())) {
|
|
1060
|
-
_context2.next =
|
|
1065
|
+
_context2.next = 20;
|
|
1061
1066
|
break;
|
|
1062
1067
|
}
|
|
1063
1068
|
return _context2.abrupt("return", false);
|
|
1064
|
-
case
|
|
1065
|
-
_context2.next =
|
|
1069
|
+
case 20:
|
|
1070
|
+
_context2.next = 23;
|
|
1066
1071
|
break;
|
|
1067
|
-
case
|
|
1072
|
+
case 22:
|
|
1068
1073
|
return _context2.abrupt("return", true);
|
|
1069
|
-
case
|
|
1070
|
-
_context2.next =
|
|
1074
|
+
case 23:
|
|
1075
|
+
_context2.next = 28;
|
|
1071
1076
|
break;
|
|
1072
|
-
case
|
|
1073
|
-
_context2.prev =
|
|
1074
|
-
_context2.t0 = _context2["catch"](
|
|
1077
|
+
case 25:
|
|
1078
|
+
_context2.prev = 25;
|
|
1079
|
+
_context2.t0 = _context2["catch"](6);
|
|
1075
1080
|
console.log(_context2.t0);
|
|
1076
|
-
case
|
|
1081
|
+
case 28:
|
|
1077
1082
|
return _context2.abrupt("return", false);
|
|
1078
|
-
case
|
|
1083
|
+
case 29:
|
|
1079
1084
|
return _context2.abrupt("return", true);
|
|
1080
|
-
case
|
|
1085
|
+
case 30:
|
|
1081
1086
|
case "end":
|
|
1082
1087
|
return _context2.stop();
|
|
1083
1088
|
}
|
|
1084
|
-
}, _callee2, null, [[
|
|
1089
|
+
}, _callee2, null, [[6, 25]]);
|
|
1085
1090
|
}));
|
|
1086
1091
|
return _isNetworkMatchedForTransaction.apply(this, arguments);
|
|
1087
1092
|
}
|
|
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
1093
|
var isTxAlreadyCreated = function isTxAlreadyCreated(swap, step) {
|
|
1115
|
-
var _step$
|
|
1116
|
-
var result = swap.wallets[((_step$
|
|
1094
|
+
var _step$evmTransaction, _step$evmApprovalTran, _step$tronTransaction, _step$tronApprovalTra, _step$starknetTransac, _step$starknetApprova, _step$cosmosTransacti, _step$solanaTransacti, _step$transferTransac;
|
|
1095
|
+
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
1096
|
return result !== null;
|
|
1118
1097
|
};
|
|
1119
1098
|
function resetNetworkStatus(actions) {
|
|
@@ -1155,7 +1134,7 @@ function updateNetworkStatus(actions, data) {
|
|
|
1155
1134
|
}
|
|
1156
1135
|
/**
|
|
1157
1136
|
* Event handler for blocked tasks.
|
|
1158
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for
|
|
1137
|
+
* If a transcation execution is manually blocked (like for parallel or waiting for wallet),
|
|
1159
1138
|
* This function will be called by queue manager using `queue definition`.
|
|
1160
1139
|
*
|
|
1161
1140
|
* It checks if the required wallet is connected, unblock the queue to be run.
|
|
@@ -1164,11 +1143,14 @@ function onBlockForConnectWallet(event, meta) {
|
|
|
1164
1143
|
var context = meta.context,
|
|
1165
1144
|
queue = meta.queue;
|
|
1166
1145
|
var swap = queue.getStorage().swapDetails;
|
|
1167
|
-
|
|
1146
|
+
var _isRequiredWalletConn = isRequiredWalletConnected(swap, context.state),
|
|
1147
|
+
ok = _isRequiredWalletConn.ok,
|
|
1148
|
+
reason = _isRequiredWalletConn.reason;
|
|
1149
|
+
if (!ok) {
|
|
1168
1150
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
1169
1151
|
var currentStep = getCurrentStep(swap);
|
|
1170
1152
|
context.notifier({
|
|
1171
|
-
eventType: 'waiting_for_connecting_wallet',
|
|
1153
|
+
eventType: reason === 'account_miss_match' ? 'waiting_for_change_wallet_account' : 'waiting_for_connecting_wallet',
|
|
1172
1154
|
swap: swap,
|
|
1173
1155
|
step: currentStep
|
|
1174
1156
|
});
|
|
@@ -1220,7 +1202,7 @@ function onBlockForChangeNetwork(_event, meta) {
|
|
|
1220
1202
|
}
|
|
1221
1203
|
/**
|
|
1222
1204
|
* Event handler for blocked tasks. (Parallel mode)
|
|
1223
|
-
* If a transcation execution is manually blocked (like for parallel or waiting for walle),
|
|
1205
|
+
* If a transcation execution flow is manually blocked (like for parallel or waiting for walle),
|
|
1224
1206
|
* This function will be called by queue manager using `queue definition`.
|
|
1225
1207
|
*
|
|
1226
1208
|
* It checks the blocked tasks, if there is no active `claimed` queue, try to give it to the best candidate.
|
|
@@ -1229,7 +1211,8 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1229
1211
|
var getBlockedTasks = meta.getBlockedTasks,
|
|
1230
1212
|
forceExecute = meta.forceExecute,
|
|
1231
1213
|
queue = meta.queue,
|
|
1232
|
-
manager = meta.manager
|
|
1214
|
+
manager = meta.manager,
|
|
1215
|
+
context = meta.context;
|
|
1233
1216
|
var _claimQueue = claimQueue(),
|
|
1234
1217
|
setClaimer = _claimQueue.setClaimer,
|
|
1235
1218
|
claimedBy = _claimQueue.claimedBy,
|
|
@@ -1243,12 +1226,14 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1243
1226
|
}
|
|
1244
1227
|
var claimerId = claimedBy();
|
|
1245
1228
|
var isClaimedByAnyQueue = !!claimerId;
|
|
1229
|
+
if (claimerId === queue.id) return;
|
|
1246
1230
|
// Check if any queue `claimed` before, if yes, we don't should do anything.
|
|
1247
1231
|
if (isClaimedByAnyQueue) {
|
|
1248
1232
|
// We need to keep the latest swap messages
|
|
1249
1233
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1250
1234
|
getStorage: queue.getStorage.bind(queue),
|
|
1251
|
-
setStorage: queue.setStorage.bind(queue)
|
|
1235
|
+
setStorage: queue.setStorage.bind(queue),
|
|
1236
|
+
notifier: context.notifier
|
|
1252
1237
|
});
|
|
1253
1238
|
return;
|
|
1254
1239
|
}
|
|
@@ -1273,7 +1258,7 @@ function onDependsOnOtherQueues(_event, meta) {
|
|
|
1273
1258
|
resetClaimedBy: function resetClaimedBy() {
|
|
1274
1259
|
reset();
|
|
1275
1260
|
// TODO: Use key generator
|
|
1276
|
-
retryOn(type + "-" + network + "
|
|
1261
|
+
retryOn(type + "-" + network + ":" + address, context.notifier, manager);
|
|
1277
1262
|
}
|
|
1278
1263
|
});
|
|
1279
1264
|
}
|
|
@@ -1282,16 +1267,28 @@ function isRequiredWalletConnected(swap, getState) {
|
|
|
1282
1267
|
type = _getRequiredWallet4.type,
|
|
1283
1268
|
address = _getRequiredWallet4.address;
|
|
1284
1269
|
if (!type || !address) {
|
|
1285
|
-
return
|
|
1270
|
+
return {
|
|
1271
|
+
ok: false,
|
|
1272
|
+
reason: 'not_connected'
|
|
1273
|
+
};
|
|
1286
1274
|
}
|
|
1287
1275
|
var walletState = getState(type);
|
|
1288
|
-
var accounts = walletState.accounts
|
|
1276
|
+
var accounts = walletState.accounts,
|
|
1277
|
+
connected = walletState.connected;
|
|
1289
1278
|
var connectedAccounts = accounts || [];
|
|
1290
|
-
|
|
1279
|
+
if (!connected) return {
|
|
1280
|
+
ok: false,
|
|
1281
|
+
reason: 'not_connected'
|
|
1282
|
+
};
|
|
1283
|
+
var matched = connectedAccounts.some(function (account) {
|
|
1291
1284
|
var _readAccountAddress = readAccountAddress(account),
|
|
1292
1285
|
accountAddress = _readAccountAddress.address;
|
|
1293
1286
|
return address === accountAddress;
|
|
1294
1287
|
});
|
|
1288
|
+
return {
|
|
1289
|
+
ok: matched,
|
|
1290
|
+
reason: 'account_miss_match'
|
|
1291
|
+
};
|
|
1295
1292
|
}
|
|
1296
1293
|
function singTransaction(actions) {
|
|
1297
1294
|
var getStorage = actions.getStorage,
|
|
@@ -1315,10 +1312,11 @@ function singTransaction(actions) {
|
|
|
1315
1312
|
tronApprovalTransaction = currentStep.tronApprovalTransaction,
|
|
1316
1313
|
starknetTransaction = currentStep.starknetTransaction,
|
|
1317
1314
|
starknetApprovalTransaction = currentStep.starknetApprovalTransaction;
|
|
1318
|
-
var sourceWallet = getRelatedWallet
|
|
1319
|
-
var walletAddress = getCurrentAddressOf
|
|
1315
|
+
var sourceWallet = getRelatedWallet(swap, currentStep);
|
|
1316
|
+
var walletAddress = getCurrentAddressOf(swap, currentStep);
|
|
1320
1317
|
var walletSigners = getSigners(sourceWallet.walletType);
|
|
1321
1318
|
var onFinish = function onFinish() {
|
|
1319
|
+
// TODO resetClaimedBy is undefined here
|
|
1322
1320
|
if (actions.context.resetClaimedBy) {
|
|
1323
1321
|
actions.context.resetClaimedBy();
|
|
1324
1322
|
}
|
|
@@ -1336,27 +1334,18 @@ function singTransaction(actions) {
|
|
|
1336
1334
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1337
1335
|
});
|
|
1338
1336
|
notifier(_extends({
|
|
1339
|
-
eventType: '
|
|
1337
|
+
eventType: 'confirm_approve_contract'
|
|
1340
1338
|
}, updateResult));
|
|
1341
1339
|
// Execute transaction
|
|
1342
1340
|
walletSigners.getSigner(TransactionType.EVM).signAndSendTx(evmApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1343
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1344
1341
|
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
|
-
}));
|
|
1342
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1353
1343
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1354
1344
|
next();
|
|
1355
1345
|
onFinish();
|
|
1356
1346
|
}, function (error) {
|
|
1357
1347
|
var _error$root, _error$root2, _error$root3;
|
|
1358
1348
|
if (swap.status === 'failed') return;
|
|
1359
|
-
console.debug('error in approving', error);
|
|
1360
1349
|
var _prettifyErrorMessage = prettifyErrorMessage(error),
|
|
1361
1350
|
extraMessage = _prettifyErrorMessage.extraMessage,
|
|
1362
1351
|
extraMessageDetail = _prettifyErrorMessage.extraMessageDetail,
|
|
@@ -1391,27 +1380,18 @@ function singTransaction(actions) {
|
|
|
1391
1380
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1392
1381
|
});
|
|
1393
1382
|
notifier(_extends({
|
|
1394
|
-
eventType: '
|
|
1383
|
+
eventType: 'confirm_approve_contract'
|
|
1395
1384
|
}, _updateResult));
|
|
1396
1385
|
// Execute transaction
|
|
1397
1386
|
walletSigners.getSigner(TransactionType.TRON).signAndSendTx(tronApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1398
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1399
1387
|
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
|
-
}));
|
|
1388
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1408
1389
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1409
1390
|
next();
|
|
1410
1391
|
onFinish();
|
|
1411
1392
|
}, function (error) {
|
|
1412
1393
|
var _error$root4, _error$root5, _error$root6;
|
|
1413
1394
|
if (swap.status === 'failed') return;
|
|
1414
|
-
console.debug('error in approving', error);
|
|
1415
1395
|
var _prettifyErrorMessage2 = prettifyErrorMessage(error),
|
|
1416
1396
|
extraMessage = _prettifyErrorMessage2.extraMessage,
|
|
1417
1397
|
extraMessageDetail = _prettifyErrorMessage2.extraMessageDetail,
|
|
@@ -1446,27 +1426,18 @@ function singTransaction(actions) {
|
|
|
1446
1426
|
details: 'Waiting for approve transaction to be mined and confirmed successfully'
|
|
1447
1427
|
});
|
|
1448
1428
|
notifier(_extends({
|
|
1449
|
-
eventType: '
|
|
1429
|
+
eventType: 'confirm_approve_contract'
|
|
1450
1430
|
}, _updateResult2));
|
|
1451
1431
|
// Execute transaction
|
|
1452
1432
|
walletSigners.getSigner(TransactionType.STARKNET).signAndSendTx(starknetApprovalTransaction, walletAddress, null).then(function (hash) {
|
|
1453
|
-
console.debug('transaction of approval minted successfully', hash);
|
|
1454
1433
|
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
|
-
}));
|
|
1434
|
+
setStepTransactionIds(actions, hash, notifier, 'check_approve_tx_status', approveUrl);
|
|
1463
1435
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1464
1436
|
next();
|
|
1465
1437
|
onFinish();
|
|
1466
1438
|
}, function (error) {
|
|
1467
1439
|
var _error$root7, _error$root8, _error$root9;
|
|
1468
1440
|
if (swap.status === 'failed') return;
|
|
1469
|
-
console.debug('error in approving', error);
|
|
1470
1441
|
var _prettifyErrorMessage3 = prettifyErrorMessage(error),
|
|
1471
1442
|
extraMessage = _prettifyErrorMessage3.extraMessage,
|
|
1472
1443
|
extraMessageDetail = _prettifyErrorMessage3.extraMessageDetail,
|
|
@@ -1492,17 +1463,20 @@ function singTransaction(actions) {
|
|
|
1492
1463
|
return;
|
|
1493
1464
|
}
|
|
1494
1465
|
var hasAlreadyProceededToSign = typeof swap.hasAlreadyProceededToSign === 'boolean';
|
|
1466
|
+
var nextStepStatusBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'failed' : 'running';
|
|
1467
|
+
var errorCodeBasedOnHasAlreadyProceededToSign = hasAlreadyProceededToSign ? 'TX_EXPIRED' : null;
|
|
1495
1468
|
var executeMessage = hasAlreadyProceededToSign ? 'Transaction is expired. Please try again' : 'executing transaction';
|
|
1496
1469
|
var executeDetails = "" + (sourceWallet.walletType === WalletType.WALLET_CONNECT ? 'Check your mobile phone' : '');
|
|
1497
1470
|
if (!!transferTransaction) {
|
|
1498
1471
|
var _updateResult3 = updateSwapStatus({
|
|
1499
1472
|
getStorage: getStorage,
|
|
1500
1473
|
setStorage: setStorage,
|
|
1501
|
-
nextStepStatus:
|
|
1502
|
-
nextStatus:
|
|
1474
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1475
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1503
1476
|
message: executeMessage,
|
|
1504
1477
|
details: executeDetails,
|
|
1505
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1478
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1479
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1506
1480
|
});
|
|
1507
1481
|
var notification = getSwapNotitfication('confirm_transfer', _updateResult3);
|
|
1508
1482
|
notifier(notification);
|
|
@@ -1511,7 +1485,7 @@ function singTransaction(actions) {
|
|
|
1511
1485
|
onFinish();
|
|
1512
1486
|
} else {
|
|
1513
1487
|
walletSigners.getSigner(TransactionType.TRANSFER).signAndSendTx(transferTransaction, walletAddress, null).then(function (txId) {
|
|
1514
|
-
setStepTransactionIds(actions, txId, '
|
|
1488
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1515
1489
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1516
1490
|
next();
|
|
1517
1491
|
onFinish();
|
|
@@ -1541,11 +1515,12 @@ function singTransaction(actions) {
|
|
|
1541
1515
|
var _updateResult4 = updateSwapStatus({
|
|
1542
1516
|
getStorage: getStorage,
|
|
1543
1517
|
setStorage: setStorage,
|
|
1544
|
-
nextStepStatus:
|
|
1545
|
-
nextStatus:
|
|
1518
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1519
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1546
1520
|
message: executeMessage,
|
|
1547
1521
|
details: executeDetails,
|
|
1548
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1522
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1523
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1549
1524
|
});
|
|
1550
1525
|
var _notification = getSwapNotitfication('calling_smart_contract', _updateResult4);
|
|
1551
1526
|
notifier(_notification);
|
|
@@ -1554,7 +1529,7 @@ function singTransaction(actions) {
|
|
|
1554
1529
|
onFinish();
|
|
1555
1530
|
} else {
|
|
1556
1531
|
walletSigners.getSigner(TransactionType.EVM).signAndSendTx(evmTransaction, walletAddress, null).then(function (id) {
|
|
1557
|
-
setStepTransactionIds(actions, id, '
|
|
1532
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1558
1533
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1559
1534
|
next();
|
|
1560
1535
|
onFinish();
|
|
@@ -1588,11 +1563,12 @@ function singTransaction(actions) {
|
|
|
1588
1563
|
var _updateResult5 = updateSwapStatus({
|
|
1589
1564
|
getStorage: getStorage,
|
|
1590
1565
|
setStorage: setStorage,
|
|
1591
|
-
nextStepStatus:
|
|
1592
|
-
nextStatus:
|
|
1566
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1567
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1593
1568
|
message: executeMessage,
|
|
1594
1569
|
details: executeDetails,
|
|
1595
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1570
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1571
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1596
1572
|
});
|
|
1597
1573
|
var _notification2 = getSwapNotitfication('calling_smart_contract', _updateResult5);
|
|
1598
1574
|
notifier(_notification2);
|
|
@@ -1627,7 +1603,7 @@ function singTransaction(actions) {
|
|
|
1627
1603
|
walletSigners.getSigner(TransactionType.COSMOS).signAndSendTx(cosmosTransaction, walletAddress, null).then(
|
|
1628
1604
|
// todo
|
|
1629
1605
|
function (id) {
|
|
1630
|
-
setStepTransactionIds(actions, id, '
|
|
1606
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1631
1607
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1632
1608
|
next();
|
|
1633
1609
|
onFinish();
|
|
@@ -1657,11 +1633,12 @@ function singTransaction(actions) {
|
|
|
1657
1633
|
var _updateResult7 = updateSwapStatus({
|
|
1658
1634
|
getStorage: getStorage,
|
|
1659
1635
|
setStorage: setStorage,
|
|
1660
|
-
nextStepStatus:
|
|
1661
|
-
nextStatus:
|
|
1636
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1637
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1662
1638
|
message: executeMessage,
|
|
1663
1639
|
details: executeDetails,
|
|
1664
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1640
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1641
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1665
1642
|
});
|
|
1666
1643
|
var _notification3 = getSwapNotitfication('calling_smart_contract', _updateResult7);
|
|
1667
1644
|
notifier(_notification3);
|
|
@@ -1671,7 +1648,7 @@ function singTransaction(actions) {
|
|
|
1671
1648
|
} else {
|
|
1672
1649
|
var tx = solanaTransaction;
|
|
1673
1650
|
walletSigners.getSigner(TransactionType.SOLANA).signAndSendTx(tx, walletAddress, null).then(function (txId) {
|
|
1674
|
-
setStepTransactionIds(actions, txId, '
|
|
1651
|
+
setStepTransactionIds(actions, txId, notifier, 'check_tx_status');
|
|
1675
1652
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1676
1653
|
next();
|
|
1677
1654
|
onFinish();
|
|
@@ -1701,11 +1678,12 @@ function singTransaction(actions) {
|
|
|
1701
1678
|
var _updateResult8 = updateSwapStatus({
|
|
1702
1679
|
getStorage: getStorage,
|
|
1703
1680
|
setStorage: setStorage,
|
|
1704
|
-
nextStepStatus:
|
|
1705
|
-
nextStatus:
|
|
1681
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1682
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1706
1683
|
message: executeMessage,
|
|
1707
1684
|
details: executeDetails,
|
|
1708
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1685
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1686
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1709
1687
|
});
|
|
1710
1688
|
var _notification4 = getSwapNotitfication('calling_smart_contract', _updateResult8);
|
|
1711
1689
|
notifier(_notification4);
|
|
@@ -1714,7 +1692,7 @@ function singTransaction(actions) {
|
|
|
1714
1692
|
onFinish();
|
|
1715
1693
|
} else {
|
|
1716
1694
|
walletSigners.getSigner(TransactionType.TRON).signAndSendTx(tronTransaction, walletAddress, null).then(function (id) {
|
|
1717
|
-
setStepTransactionIds(actions, id, '
|
|
1695
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1718
1696
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1719
1697
|
next();
|
|
1720
1698
|
onFinish();
|
|
@@ -1748,11 +1726,12 @@ function singTransaction(actions) {
|
|
|
1748
1726
|
var _updateResult9 = updateSwapStatus({
|
|
1749
1727
|
getStorage: getStorage,
|
|
1750
1728
|
setStorage: setStorage,
|
|
1751
|
-
nextStepStatus:
|
|
1752
|
-
nextStatus:
|
|
1729
|
+
nextStepStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1730
|
+
nextStatus: nextStepStatusBasedOnHasAlreadyProceededToSign,
|
|
1753
1731
|
message: executeMessage,
|
|
1754
1732
|
details: executeDetails,
|
|
1755
|
-
hasAlreadyProceededToSign: hasAlreadyProceededToSign
|
|
1733
|
+
hasAlreadyProceededToSign: hasAlreadyProceededToSign,
|
|
1734
|
+
errorCode: errorCodeBasedOnHasAlreadyProceededToSign
|
|
1756
1735
|
});
|
|
1757
1736
|
var _notification5 = getSwapNotitfication('calling_smart_contract', _updateResult9);
|
|
1758
1737
|
notifier(_notification5);
|
|
@@ -1761,7 +1740,7 @@ function singTransaction(actions) {
|
|
|
1761
1740
|
onFinish();
|
|
1762
1741
|
} else {
|
|
1763
1742
|
walletSigners.getSigner(TransactionType.STARKNET).signAndSendTx(starknetTransaction, walletAddress, null).then(function (id) {
|
|
1764
|
-
setStepTransactionIds(actions, id, '
|
|
1743
|
+
setStepTransactionIds(actions, id, notifier, 'check_tx_status');
|
|
1765
1744
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
1766
1745
|
next();
|
|
1767
1746
|
onFinish();
|
|
@@ -1815,7 +1794,9 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1815
1794
|
var hasWaitingForConnect = Object.keys(q.list.state.tasks).some(function (taskId) {
|
|
1816
1795
|
var _task$blockedFor;
|
|
1817
1796
|
var task = q.list.state.tasks[taskId];
|
|
1818
|
-
return task.status === Status.BLOCKED &&
|
|
1797
|
+
return task.status === Status.BLOCKED &&
|
|
1798
|
+
// TODO double check later
|
|
1799
|
+
[BlockReason.WAIT_FOR_CONNECT_WALLET].includes((_task$blockedFor = task.blockedFor) == null ? void 0 : _task$blockedFor.reason);
|
|
1819
1800
|
});
|
|
1820
1801
|
if (currentStepRequiredWallet === wallet && hasWaitingForConnect && getCurrentBlockchainOfOrNull(swap, currentStep) != network) {
|
|
1821
1802
|
var queueInstance = q.list;
|
|
@@ -1829,10 +1810,17 @@ function checkWaitingForConnectWalletChange(params) {
|
|
|
1829
1810
|
},
|
|
1830
1811
|
silent: true
|
|
1831
1812
|
});
|
|
1832
|
-
markRunningSwapAsSwitchingNetwork({
|
|
1813
|
+
var result = markRunningSwapAsSwitchingNetwork({
|
|
1833
1814
|
getStorage: queueInstance.getStorage.bind(queueInstance),
|
|
1834
1815
|
setStorage: queueInstance.setStorage.bind(queueInstance)
|
|
1835
1816
|
});
|
|
1817
|
+
if (result) {
|
|
1818
|
+
params == null ? void 0 : params.notifier({
|
|
1819
|
+
eventType: 'waiting_for_network_change',
|
|
1820
|
+
swap: result.swap,
|
|
1821
|
+
step: result.step
|
|
1822
|
+
});
|
|
1823
|
+
}
|
|
1836
1824
|
}
|
|
1837
1825
|
}
|
|
1838
1826
|
}
|
|
@@ -1863,6 +1851,49 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1863
1851
|
}
|
|
1864
1852
|
});
|
|
1865
1853
|
}
|
|
1854
|
+
/**
|
|
1855
|
+
* Get list of all running swaps
|
|
1856
|
+
*
|
|
1857
|
+
* @param manager
|
|
1858
|
+
* @returns list of pending swaps
|
|
1859
|
+
*/
|
|
1860
|
+
function getRunningSwaps(manager) {
|
|
1861
|
+
var queues = (manager == null ? void 0 : manager.getAll()) || new Map();
|
|
1862
|
+
var result = [];
|
|
1863
|
+
queues.forEach(function (q) {
|
|
1864
|
+
// retry only on affected queues
|
|
1865
|
+
var queueStorage = q.list.getStorage();
|
|
1866
|
+
var swap = queueStorage == null ? void 0 : queueStorage.swapDetails;
|
|
1867
|
+
if (!swap || swap.status !== 'running') return;
|
|
1868
|
+
result.push(swap);
|
|
1869
|
+
});
|
|
1870
|
+
return result;
|
|
1871
|
+
}
|
|
1872
|
+
/**
|
|
1873
|
+
*
|
|
1874
|
+
* Trying to reset notifications for pending swaps to correct message on page load.
|
|
1875
|
+
* We could remove this after supporting auto connect for wallets.
|
|
1876
|
+
*
|
|
1877
|
+
* @param swaps
|
|
1878
|
+
* @param notifier
|
|
1879
|
+
* @returns
|
|
1880
|
+
*/
|
|
1881
|
+
function resetRunningSwapNotifsOnPageLoad(runningSwaps, notifier) {
|
|
1882
|
+
runningSwaps.forEach(function (swap) {
|
|
1883
|
+
var currentStep = getCurrentStep(swap);
|
|
1884
|
+
var eventType;
|
|
1885
|
+
if ((currentStep == null ? void 0 : currentStep.networkStatus) === PendingSwapNetworkStatus.WaitingForQueue) eventType = 'waiting_for_queue';else if ((swap == null ? void 0 : swap.status) === 'running') {
|
|
1886
|
+
eventType = 'waiting_for_connecting_wallet';
|
|
1887
|
+
}
|
|
1888
|
+
if (!!eventType && !!notifier) {
|
|
1889
|
+
notifier({
|
|
1890
|
+
eventType: eventType,
|
|
1891
|
+
swap: swap,
|
|
1892
|
+
step: currentStep
|
|
1893
|
+
});
|
|
1894
|
+
}
|
|
1895
|
+
});
|
|
1896
|
+
}
|
|
1866
1897
|
/**
|
|
1867
1898
|
*
|
|
1868
1899
|
* Try to run blocked tasks by wallet and network name.
|
|
@@ -1874,7 +1905,7 @@ function checkWaitingForNetworkChange(manager) {
|
|
|
1874
1905
|
* @param manager
|
|
1875
1906
|
* @returns
|
|
1876
1907
|
*/
|
|
1877
|
-
function retryOn(wallet_network, manager, options) {
|
|
1908
|
+
function retryOn(wallet_network, notifier, manager, options) {
|
|
1878
1909
|
var _finalQueueToBeRun;
|
|
1879
1910
|
if (options === void 0) {
|
|
1880
1911
|
options = {
|
|
@@ -1898,7 +1929,7 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1898
1929
|
var currentStep = getCurrentStep(swap);
|
|
1899
1930
|
if (currentStep) {
|
|
1900
1931
|
var _queueStorage$swapDet2, _queueStorage$swapDet3;
|
|
1901
|
-
if (currentStep
|
|
1932
|
+
if (getCurrentBlockchainOfOrNull(swap, currentStep) == network && (queueStorage == null ? void 0 : (_queueStorage$swapDet2 = queueStorage.swapDetails.wallets[network]) == null ? void 0 : _queueStorage$swapDet2.walletType) === wallet) {
|
|
1902
1933
|
walletAndNetworkMatched.push(q.list);
|
|
1903
1934
|
} else if ((queueStorage == null ? void 0 : (_queueStorage$swapDet3 = queueStorage.swapDetails.wallets[currentStep.fromBlockchain]) == null ? void 0 : _queueStorage$swapDet3.walletType) === wallet) {
|
|
1904
1935
|
onlyWalletMatched.push(q.list);
|
|
@@ -1907,7 +1938,6 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1907
1938
|
}
|
|
1908
1939
|
}
|
|
1909
1940
|
});
|
|
1910
|
-
// const isWaitingForConnectWallet = (status: Status) =>
|
|
1911
1941
|
var finalQueueToBeRun = undefined;
|
|
1912
1942
|
if (walletAndNetworkMatched.length > 0) {
|
|
1913
1943
|
finalQueueToBeRun = walletAndNetworkMatched[0];
|
|
@@ -1916,7 +1946,8 @@ function retryOn(wallet_network, manager, options) {
|
|
|
1916
1946
|
var currentQueue = walletAndNetworkMatched[i];
|
|
1917
1947
|
markRunningSwapAsDependsOnOtherQueues({
|
|
1918
1948
|
getStorage: currentQueue.getStorage.bind(currentQueue),
|
|
1919
|
-
setStorage: currentQueue.setStorage.bind(currentQueue)
|
|
1949
|
+
setStorage: currentQueue.setStorage.bind(currentQueue),
|
|
1950
|
+
notifier: notifier
|
|
1920
1951
|
});
|
|
1921
1952
|
}
|
|
1922
1953
|
}
|
|
@@ -1969,8 +2000,20 @@ function _throwOnOK() {
|
|
|
1969
2000
|
}));
|
|
1970
2001
|
return _throwOnOK.apply(this, arguments);
|
|
1971
2002
|
}
|
|
2003
|
+
function cancelSwap(swap) {
|
|
2004
|
+
swap.actions.cancel();
|
|
2005
|
+
return updateSwapStatus({
|
|
2006
|
+
getStorage: swap.actions.getStorage,
|
|
2007
|
+
setStorage: swap.actions.setStorage,
|
|
2008
|
+
message: 'Swap canceled by user.',
|
|
2009
|
+
details: "Warning: If you've already signed and sent a transaction, it won't be affected, but next swap steps will not be executed.",
|
|
2010
|
+
nextStatus: 'failed',
|
|
2011
|
+
nextStepStatus: 'failed',
|
|
2012
|
+
errorCode: 'USER_CANCEL'
|
|
2013
|
+
});
|
|
2014
|
+
}
|
|
1972
2015
|
|
|
1973
|
-
var INTERVAL_FOR_CHECK =
|
|
2016
|
+
var INTERVAL_FOR_CHECK = 3000;
|
|
1974
2017
|
/**
|
|
1975
2018
|
* Subscribe to status of swap transaction by checking from server periodically.
|
|
1976
2019
|
* After getting the status, notify the user and schedule `SCHEDULE_NEXT_STEP`.
|
|
@@ -2028,6 +2071,7 @@ function _checkTransactionStatus() {
|
|
|
2028
2071
|
if (!!newTransaction) {
|
|
2029
2072
|
currentStep.status = 'created';
|
|
2030
2073
|
currentStep.executedTransactionId = null;
|
|
2074
|
+
currentStep.executedTransactionTime = null;
|
|
2031
2075
|
currentStep.transferTransaction = null;
|
|
2032
2076
|
currentStep.cosmosTransaction = null;
|
|
2033
2077
|
currentStep.evmTransaction = null;
|
|
@@ -2037,7 +2081,6 @@ function _checkTransactionStatus() {
|
|
|
2037
2081
|
currentStep.starknetTransaction = null;
|
|
2038
2082
|
currentStep.tronApprovalTransaction = null;
|
|
2039
2083
|
currentStep.tronTransaction = null;
|
|
2040
|
-
currentStep.fromBlockchain = newTransaction.blockChain;
|
|
2041
2084
|
if (isEvmTransaction(newTransaction)) {
|
|
2042
2085
|
if (newTransaction.isApprovalTx) currentStep.evmApprovalTransaction = newTransaction;else currentStep.evmTransaction = newTransaction;
|
|
2043
2086
|
} else if (isCosmosTransaction(newTransaction)) {
|
|
@@ -2056,11 +2099,22 @@ function _checkTransactionStatus() {
|
|
|
2056
2099
|
eventType: 'step_completed_with_output',
|
|
2057
2100
|
swap: swap,
|
|
2058
2101
|
step: currentStep
|
|
2059
|
-
});
|
|
2102
|
+
});else if (prevOutputAmount === null && outputAmount === null) {
|
|
2103
|
+
// it is needed to set notification after reloading the page
|
|
2104
|
+
context.notifier({
|
|
2105
|
+
eventType: 'check_tx_status',
|
|
2106
|
+
swap: swap,
|
|
2107
|
+
step: currentStep
|
|
2108
|
+
});
|
|
2109
|
+
}
|
|
2060
2110
|
if (currentStep.status === 'success') {
|
|
2061
2111
|
nextStep = getNextStep(swap, currentStep);
|
|
2062
2112
|
swap.extraMessageDetail = '';
|
|
2063
2113
|
swap.extraMessage = !!nextStep ? "starting next step: " + nextStep.swapperId + ": " + nextStep.fromBlockchain + " -> " + nextStep.toBlockchain : '';
|
|
2114
|
+
} else if (currentStep.status === 'failed') {
|
|
2115
|
+
swap.extraMessage = 'Transaction failed in blockchain';
|
|
2116
|
+
swap.extraMessageSeverity = MessageSeverity.error;
|
|
2117
|
+
swap.extraMessageDetail = '';
|
|
2064
2118
|
}
|
|
2065
2119
|
// Sync data with storage
|
|
2066
2120
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2100,30 +2154,61 @@ function checkApprovalStatus(_x2) {
|
|
|
2100
2154
|
*/
|
|
2101
2155
|
function _checkApprovalStatus() {
|
|
2102
2156
|
_checkApprovalStatus = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref2) {
|
|
2103
|
-
var getStorage, setStorage, next, schedule, retry, context, swap, currentStep, isApproved, response;
|
|
2157
|
+
var getStorage, setStorage, next, schedule, retry, failed, context, swap, currentStep, isApproved, response, updateResult;
|
|
2104
2158
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
2105
2159
|
while (1) switch (_context2.prev = _context2.next) {
|
|
2106
2160
|
case 0:
|
|
2107
|
-
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, context = _ref2.context;
|
|
2108
|
-
swap = getStorage().swapDetails; //
|
|
2161
|
+
getStorage = _ref2.getStorage, setStorage = _ref2.setStorage, next = _ref2.next, schedule = _ref2.schedule, retry = _ref2.retry, failed = _ref2.failed, context = _ref2.context;
|
|
2162
|
+
swap = getStorage().swapDetails; // double check it after fixing parallel
|
|
2163
|
+
// const onFinish = () => {
|
|
2164
|
+
// // TODO resetClaimedBy is undefined here
|
|
2165
|
+
// if (context.resetClaimedBy) {
|
|
2166
|
+
// context.resetClaimedBy();
|
|
2167
|
+
// }
|
|
2168
|
+
// };
|
|
2169
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
2109
2170
|
currentStep = getCurrentStep(swap);
|
|
2110
2171
|
isApproved = false;
|
|
2111
2172
|
_context2.prev = 4;
|
|
2112
2173
|
_context2.next = 7;
|
|
2113
|
-
return httpService.checkApproval(swap.requestId);
|
|
2174
|
+
return httpService.checkApproval(swap.requestId, currentStep.executedTransactionId || '');
|
|
2114
2175
|
case 7:
|
|
2115
2176
|
response = _context2.sent;
|
|
2116
2177
|
isApproved = response.isApproved;
|
|
2178
|
+
if (!isApproved && response.txStatus === 'failed') {
|
|
2179
|
+
// approve transaction failed on
|
|
2180
|
+
// we should fail the whole swap
|
|
2181
|
+
updateResult = updateSwapStatus({
|
|
2182
|
+
getStorage: getStorage,
|
|
2183
|
+
setStorage: setStorage,
|
|
2184
|
+
nextStatus: 'failed',
|
|
2185
|
+
nextStepStatus: 'failed',
|
|
2186
|
+
errorCode: 'SEND_TX_FAILED',
|
|
2187
|
+
message: 'Approve transaction failed',
|
|
2188
|
+
details: 'Smart contract approval failed in blockchain.'
|
|
2189
|
+
});
|
|
2190
|
+
context.notifier(_extends({
|
|
2191
|
+
eventType: 'smart_contract_call_failed'
|
|
2192
|
+
}, updateResult));
|
|
2193
|
+
failed();
|
|
2194
|
+
// onFinish();
|
|
2195
|
+
} else if (!isApproved) {
|
|
2196
|
+
// it is needed to set notification after reloading the page
|
|
2197
|
+
context.notifier({
|
|
2198
|
+
eventType: 'check_approve_tx_status',
|
|
2199
|
+
swap: swap,
|
|
2200
|
+
step: currentStep
|
|
2201
|
+
});
|
|
2202
|
+
}
|
|
2117
2203
|
_context2.next = 15;
|
|
2118
2204
|
break;
|
|
2119
|
-
case
|
|
2120
|
-
_context2.prev =
|
|
2205
|
+
case 12:
|
|
2206
|
+
_context2.prev = 12;
|
|
2121
2207
|
_context2.t0 = _context2["catch"](4);
|
|
2122
|
-
console.error('Failed to check getApprovedAmount', _context2.t0);
|
|
2123
2208
|
isApproved = false;
|
|
2124
2209
|
case 15:
|
|
2125
2210
|
if (!isApproved) {
|
|
2126
|
-
_context2.next =
|
|
2211
|
+
_context2.next = 31;
|
|
2127
2212
|
break;
|
|
2128
2213
|
}
|
|
2129
2214
|
currentStep.status = 'approved';
|
|
@@ -2132,6 +2217,7 @@ function _checkApprovalStatus() {
|
|
|
2132
2217
|
swap.extraMessageSeverity = MessageSeverity.success;
|
|
2133
2218
|
currentStep.evmApprovalTransaction = null;
|
|
2134
2219
|
currentStep.executedTransactionId = null;
|
|
2220
|
+
currentStep.executedTransactionTime = null;
|
|
2135
2221
|
currentStep.starknetApprovalTransaction = null;
|
|
2136
2222
|
currentStep.tronApprovalTransaction = null;
|
|
2137
2223
|
setStorage(_extends({}, getStorage(), {
|
|
@@ -2144,18 +2230,18 @@ function _checkApprovalStatus() {
|
|
|
2144
2230
|
});
|
|
2145
2231
|
schedule(SwapActionTypes.SCHEDULE_NEXT_STEP);
|
|
2146
2232
|
next();
|
|
2147
|
-
_context2.next =
|
|
2233
|
+
_context2.next = 34;
|
|
2148
2234
|
break;
|
|
2149
|
-
case
|
|
2150
|
-
_context2.next =
|
|
2235
|
+
case 31:
|
|
2236
|
+
_context2.next = 33;
|
|
2151
2237
|
return delay(2000);
|
|
2152
|
-
case 32:
|
|
2153
|
-
retry();
|
|
2154
2238
|
case 33:
|
|
2239
|
+
retry();
|
|
2240
|
+
case 34:
|
|
2155
2241
|
case "end":
|
|
2156
2242
|
return _context2.stop();
|
|
2157
2243
|
}
|
|
2158
|
-
}, _callee2, null, [[4,
|
|
2244
|
+
}, _callee2, null, [[4, 12]]);
|
|
2159
2245
|
}));
|
|
2160
2246
|
return _checkApprovalStatus.apply(this, arguments);
|
|
2161
2247
|
}
|
|
@@ -2274,7 +2360,7 @@ function _createTransaction() {
|
|
|
2274
2360
|
nextStepStatus: 'failed',
|
|
2275
2361
|
message: extraMessage,
|
|
2276
2362
|
details: extraMessageDetail,
|
|
2277
|
-
errorCode:
|
|
2363
|
+
errorCode: 'FETCH_TX_FAILED'
|
|
2278
2364
|
});
|
|
2279
2365
|
context.notifier(_extends({
|
|
2280
2366
|
eventType: 'task_failed'
|
|
@@ -2321,7 +2407,7 @@ function _executeTransaction() {
|
|
|
2321
2407
|
currentStep = getCurrentStep(swap); // Resetting network status, so we will set it again during the running of this task.
|
|
2322
2408
|
resetNetworkStatus(actions);
|
|
2323
2409
|
/* Make sure wallet is connected and also the connected wallet is matched with tx by checking address. */
|
|
2324
|
-
isWrongAddress = !isRequiredWalletConnected(swap, context.state);
|
|
2410
|
+
isWrongAddress = !isRequiredWalletConnected(swap, context.state).ok;
|
|
2325
2411
|
if (!isWrongAddress) {
|
|
2326
2412
|
_context.next = 15;
|
|
2327
2413
|
break;
|
|
@@ -2346,13 +2432,13 @@ function _executeTransaction() {
|
|
|
2346
2432
|
We only run one request at a time (In parallel mode).
|
|
2347
2433
|
*/
|
|
2348
2434
|
needsToBlockQueue = isNeedBlockQueueForParallel(currentStep);
|
|
2349
|
-
if (!(needsToBlockQueue && !isClaimed
|
|
2435
|
+
if (!(needsToBlockQueue && !isClaimed)) {
|
|
2350
2436
|
_context.next = 20;
|
|
2351
2437
|
break;
|
|
2352
2438
|
}
|
|
2353
2439
|
_blockedFor = {
|
|
2354
2440
|
reason: BlockReason.DEPENDS_ON_OTHER_QUEUES,
|
|
2355
|
-
description: 'Waiting for other
|
|
2441
|
+
description: 'Waiting for other swaps to complete',
|
|
2356
2442
|
details: {}
|
|
2357
2443
|
};
|
|
2358
2444
|
requestBlock(_blockedFor);
|
|
@@ -2416,6 +2502,7 @@ function scheduleNextStep(_ref) {
|
|
|
2416
2502
|
schedule(SwapActionTypes.EXECUTE_TRANSACTION);
|
|
2417
2503
|
return next();
|
|
2418
2504
|
}
|
|
2505
|
+
// TODO double check it after approval changes
|
|
2419
2506
|
if (currentStep != null && currentStep.executedTransactionId) {
|
|
2420
2507
|
schedule(SwapActionTypes.CHECK_TRANSACTION_STATUS);
|
|
2421
2508
|
return next();
|
|
@@ -2451,6 +2538,29 @@ function start(_ref) {
|
|
|
2451
2538
|
next();
|
|
2452
2539
|
}
|
|
2453
2540
|
|
|
2541
|
+
var _actions;
|
|
2542
|
+
/**
|
|
2543
|
+
*
|
|
2544
|
+
* The idea behind this queue is to be able dynamically add some steps.
|
|
2545
|
+
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2546
|
+
* or waits for something happend (like checking status of a transaction from server)
|
|
2547
|
+
*
|
|
2548
|
+
*/
|
|
2549
|
+
var swapQueueDef = {
|
|
2550
|
+
name: 'swap',
|
|
2551
|
+
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),
|
|
2552
|
+
run: [SwapActionTypes.START],
|
|
2553
|
+
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2554
|
+
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2555
|
+
onBlockForConnectWallet(event, meta);
|
|
2556
|
+
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2557
|
+
onBlockForChangeNetwork(event, meta);
|
|
2558
|
+
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2559
|
+
onDependsOnOtherQueues(event, meta);
|
|
2560
|
+
}
|
|
2561
|
+
}
|
|
2562
|
+
};
|
|
2563
|
+
|
|
2454
2564
|
var MIGRATED_KEY = 'migratedToQueueManager';
|
|
2455
2565
|
/**
|
|
2456
2566
|
*
|
|
@@ -2642,9 +2752,10 @@ function useQueueManager(params) {
|
|
|
2642
2752
|
checkWaitingForConnectWalletChange({
|
|
2643
2753
|
evmChains: params.evmChains,
|
|
2644
2754
|
wallet_network: params.lastConnectedWallet,
|
|
2645
|
-
manager: manager
|
|
2755
|
+
manager: manager,
|
|
2756
|
+
notifier: params.notifier
|
|
2646
2757
|
});
|
|
2647
|
-
retryOn(params.lastConnectedWallet, manager);
|
|
2758
|
+
retryOn(params.lastConnectedWallet, params.notifier, manager);
|
|
2648
2759
|
}
|
|
2649
2760
|
}, [params.lastConnectedWallet]);
|
|
2650
2761
|
useEffect(function () {
|
|
@@ -2659,28 +2770,5 @@ function useQueueManager(params) {
|
|
|
2659
2770
|
}, [params.disconnectedWallet]);
|
|
2660
2771
|
}
|
|
2661
2772
|
|
|
2662
|
-
|
|
2663
|
-
/**
|
|
2664
|
-
*
|
|
2665
|
-
* The idea behind this queue is to be able dynamically add some steps.
|
|
2666
|
-
* After running a swap, it can be blocked (like on waiting for switch netwrok)
|
|
2667
|
-
* or waits for something happend (like checking status of a transaction from server)
|
|
2668
|
-
*
|
|
2669
|
-
*/
|
|
2670
|
-
var swapQueueDef = {
|
|
2671
|
-
name: 'swap',
|
|
2672
|
-
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),
|
|
2673
|
-
run: [SwapActionTypes.START],
|
|
2674
|
-
whenTaskBlocked: function whenTaskBlocked(event, meta) {
|
|
2675
|
-
if (event.reason.reason === BlockReason.WAIT_FOR_CONNECT_WALLET) {
|
|
2676
|
-
onBlockForConnectWallet(event, meta);
|
|
2677
|
-
} else if (event.reason.reason === BlockReason.WAIT_FOR_NETWORK_CHANGE) {
|
|
2678
|
-
onBlockForChangeNetwork(event, meta);
|
|
2679
|
-
} else if (event.reason.reason === BlockReason.DEPENDS_ON_OTHER_QUEUES) {
|
|
2680
|
-
onDependsOnOtherQueues(event, meta);
|
|
2681
|
-
}
|
|
2682
|
-
}
|
|
2683
|
-
};
|
|
2684
|
-
|
|
2685
|
-
export { checkWaitingForNetworkChange, getCurrentStep, getEvmProvider, getRelatedWallet$1 as getRelatedWallet, swapQueueDef, updateSwapStatus, useMigration, useQueueManager };
|
|
2773
|
+
export { MessageSeverity, PendingSwapNetworkStatus, PrettyError, cancelSwap, checkWaitingForNetworkChange, getCurrentBlockchainOfOrNull, getCurrentStep, getEvmProvider, getRelatedWallet, getRelatedWalletOrNull, getRequiredWallet, getRunningSwaps, prettifyErrorMessage, resetRunningSwapNotifsOnPageLoad, splitWalletNetwork, swapQueueDef, updateSwapStatus, useMigration, useQueueManager };
|
|
2686
2774
|
//# sourceMappingURL=queue-manager-rango-preset.esm.js.map
|