decentraland-dapps 13.8.0 → 13.8.1
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnyAction } from 'redux';
|
|
2
2
|
import { ChainId } from '@dcl/schemas/dist/dapps/chain-id';
|
|
3
3
|
import { Transaction, TransactionPayload, TransactionStatus } from './types';
|
|
4
|
-
import { FetchTransactionFailureAction, FetchTransactionSuccessAction } from './actions';
|
|
4
|
+
import { FetchTransactionFailureAction, FetchTransactionSuccessAction, ReplaceTransactionSuccessAction, FetchTransactionRequestAction, UpdateTransactionStatusAction } from './actions';
|
|
5
5
|
export declare const TRANSACTION_ACTION_FLAG = "_watch_tx";
|
|
6
6
|
export declare function buildActionRef(transaction: Transaction): {
|
|
7
7
|
type: string;
|
|
@@ -30,4 +30,8 @@ export declare function hasSucceeded(status: TransactionStatus | null): boolean;
|
|
|
30
30
|
export declare function waitForTx(txHash: string): Generator<import("redux-saga/effects").RaceEffect<import("redux-saga/effects").TakeEffect>, void, {
|
|
31
31
|
success: FetchTransactionSuccessAction | undefined;
|
|
32
32
|
failure: FetchTransactionFailureAction | undefined;
|
|
33
|
+
} & {
|
|
34
|
+
replace: ReplaceTransactionSuccessAction | undefined;
|
|
35
|
+
fetchAgain: FetchTransactionRequestAction | undefined;
|
|
36
|
+
update: UpdateTransactionStatusAction | undefined;
|
|
33
37
|
}>;
|
|
@@ -90,16 +90,54 @@ exports.hasSucceeded = hasSucceeded;
|
|
|
90
90
|
* @param txHash - The hash of the transaction to wait for.
|
|
91
91
|
*/
|
|
92
92
|
function* waitForTx(txHash) {
|
|
93
|
+
let txHashToWaitFor = txHash;
|
|
93
94
|
while (true) {
|
|
94
95
|
const { success, failure } = yield effects_1.race({
|
|
95
96
|
success: effects_1.take(actions_1.FETCH_TRANSACTION_SUCCESS),
|
|
96
97
|
failure: effects_1.take(actions_1.FETCH_TRANSACTION_FAILURE)
|
|
97
98
|
});
|
|
98
|
-
if ((success === null || success === void 0 ? void 0 : success.payload.transaction.hash) ===
|
|
99
|
+
if ((success === null || success === void 0 ? void 0 : success.payload.transaction.hash) === txHashToWaitFor) {
|
|
99
100
|
break;
|
|
100
101
|
}
|
|
101
|
-
else if (
|
|
102
|
-
|
|
102
|
+
else if (failure &&
|
|
103
|
+
failure.payload.transaction.hash === txHashToWaitFor) {
|
|
104
|
+
if (failure.payload.status === types_1.TransactionStatus.DROPPED) {
|
|
105
|
+
let continueWaiting = true;
|
|
106
|
+
// If the transaction was dropped, follow the procedure to check what to do
|
|
107
|
+
while (true) {
|
|
108
|
+
const { replace, fetchAgain, update } = yield effects_1.race({
|
|
109
|
+
replace: effects_1.take(actions_1.REPLACE_TRANSACTION_SUCCESS),
|
|
110
|
+
fetchAgain: effects_1.take(actions_1.FETCH_TRANSACTION_REQUEST),
|
|
111
|
+
update: effects_1.take(actions_1.UPDATE_TRANSACTION_STATUS)
|
|
112
|
+
});
|
|
113
|
+
if (fetchAgain && fetchAgain.payload.hash === txHashToWaitFor) {
|
|
114
|
+
// Re start the transaction fetching process.
|
|
115
|
+
txHashToWaitFor = fetchAgain.payload.hash;
|
|
116
|
+
continueWaiting = true;
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
else if (replace && replace.payload.hash === txHashToWaitFor) {
|
|
120
|
+
// The transaction hash was replaced for another one, track the other transaction hash.
|
|
121
|
+
txHashToWaitFor = replace.payload.replaceBy;
|
|
122
|
+
continueWaiting = true;
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
else if (update &&
|
|
126
|
+
update.payload.hash === txHashToWaitFor &&
|
|
127
|
+
update.payload.status === types_1.TransactionStatus.REPLACED) {
|
|
128
|
+
// A new hash wasn't found, but the transaction was replaced. We should consider the wait finished because we don't know if it failed.
|
|
129
|
+
continueWaiting = false;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (continueWaiting) {
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
throw new Error(`The transaction ${txHash} failed to be mined. The status is ${failure.payload.status}.`);
|
|
140
|
+
}
|
|
103
141
|
}
|
|
104
142
|
}
|
|
105
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/modules/transaction/utils.ts"],"names":[],"mappings":";;;AACA,+DAA0D;AAC1D,gDAA+C;AAC/C,mCAOgB;AAChB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/modules/transaction/utils.ts"],"names":[],"mappings":"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"}
|