@openocean.finance/openocean-sdk 1.7.9 → 1.7.11
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.
|
@@ -35,132 +35,86 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
-
};
|
|
41
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
39
|
exports.transactionSenderAndConfirmationWaiter = transactionSenderAndConfirmationWaiter;
|
|
43
|
-
var web3_js_1 = require("@solana/web3.js");
|
|
44
|
-
var promise_retry_1 = __importDefault(require("promise-retry"));
|
|
45
40
|
var sleep = function (time) {
|
|
46
41
|
return new Promise(function (resolve) { return setTimeout(resolve, time); });
|
|
47
42
|
};
|
|
43
|
+
function sendRawTransaction(connection, serializedTransaction, n) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
+
var txid, tx;
|
|
46
|
+
var _a;
|
|
47
|
+
return __generator(this, function (_b) {
|
|
48
|
+
switch (_b.label) {
|
|
49
|
+
case 0:
|
|
50
|
+
if (n > 10)
|
|
51
|
+
return [2 /*return*/];
|
|
52
|
+
return [4 /*yield*/, connection.sendRawTransaction(serializedTransaction, {
|
|
53
|
+
skipPreflight: true,
|
|
54
|
+
})];
|
|
55
|
+
case 1:
|
|
56
|
+
txid = _b.sent();
|
|
57
|
+
console.log('txid', txid);
|
|
58
|
+
return [4 /*yield*/, sleep(3000)];
|
|
59
|
+
case 2:
|
|
60
|
+
_b.sent();
|
|
61
|
+
return [4 /*yield*/, connection.getSignatureStatus(txid, {
|
|
62
|
+
searchTransactionHistory: false,
|
|
63
|
+
})];
|
|
64
|
+
case 3:
|
|
65
|
+
tx = _b.sent();
|
|
66
|
+
if (!(((_a = tx === null || tx === void 0 ? void 0 : tx.value) === null || _a === void 0 ? void 0 : _a.confirmationStatus) === "confirmed")) return [3 /*break*/, 4];
|
|
67
|
+
return [2 /*return*/, txid];
|
|
68
|
+
case 4: return [4 /*yield*/, sendRawTransaction(connection, serializedTransaction, n++)];
|
|
69
|
+
case 5: return [2 /*return*/, _b.sent()];
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function getTransaction(connection, txid, n) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
76
|
+
var response;
|
|
77
|
+
return __generator(this, function (_a) {
|
|
78
|
+
switch (_a.label) {
|
|
79
|
+
case 0:
|
|
80
|
+
if (n > 2)
|
|
81
|
+
return [2 /*return*/];
|
|
82
|
+
return [4 /*yield*/, connection.getTransaction(txid, {
|
|
83
|
+
commitment: "confirmed",
|
|
84
|
+
maxSupportedTransactionVersion: 0,
|
|
85
|
+
})];
|
|
86
|
+
case 1:
|
|
87
|
+
response = _a.sent();
|
|
88
|
+
console.log('getTransaction', response);
|
|
89
|
+
if (!!response) return [3 /*break*/, 4];
|
|
90
|
+
return [4 /*yield*/, sleep(3000)];
|
|
91
|
+
case 2:
|
|
92
|
+
_a.sent();
|
|
93
|
+
return [4 /*yield*/, getTransaction(connection, txid, n++)];
|
|
94
|
+
case 3: return [2 /*return*/, _a.sent()];
|
|
95
|
+
case 4: return [2 /*return*/, response];
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
}
|
|
48
100
|
function transactionSenderAndConfirmationWaiter(_a) {
|
|
49
101
|
return __awaiter(this, arguments, void 0, function (_b) {
|
|
50
|
-
var txid,
|
|
51
|
-
var _this = this;
|
|
102
|
+
var txid, response;
|
|
52
103
|
var connection = _b.connection, serializedTransaction = _b.serializedTransaction;
|
|
53
104
|
return __generator(this, function (_c) {
|
|
54
105
|
switch (_c.label) {
|
|
55
|
-
case 0: return [4 /*yield*/,
|
|
56
|
-
skipPreflight: true,
|
|
57
|
-
})];
|
|
106
|
+
case 0: return [4 /*yield*/, sendRawTransaction(connection, serializedTransaction, 0)];
|
|
58
107
|
case 1:
|
|
59
108
|
txid = _c.sent();
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
abortSignal = controller.signal;
|
|
63
|
-
abortableResender = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
64
|
-
var id, e_2;
|
|
65
|
-
return __generator(this, function (_a) {
|
|
66
|
-
switch (_a.label) {
|
|
67
|
-
case 0:
|
|
68
|
-
if (!true) return [3 /*break*/, 6];
|
|
69
|
-
return [4 /*yield*/, sleep(6000)];
|
|
70
|
-
case 1:
|
|
71
|
-
_a.sent();
|
|
72
|
-
if (abortSignal.aborted)
|
|
73
|
-
return [2 /*return*/];
|
|
74
|
-
_a.label = 2;
|
|
75
|
-
case 2:
|
|
76
|
-
_a.trys.push([2, 4, , 5]);
|
|
77
|
-
return [4 /*yield*/, connection.sendRawTransaction(serializedTransaction, {
|
|
78
|
-
skipPreflight: true,
|
|
79
|
-
})];
|
|
80
|
-
case 3:
|
|
81
|
-
id = _a.sent();
|
|
82
|
-
console.log('Resender-------------');
|
|
83
|
-
console.log(id);
|
|
84
|
-
return [3 /*break*/, 5];
|
|
85
|
-
case 4:
|
|
86
|
-
e_2 = _a.sent();
|
|
87
|
-
console.warn("Failed to resend transaction: ".concat(e_2));
|
|
88
|
-
return [3 /*break*/, 5];
|
|
89
|
-
case 5: return [3 /*break*/, 0];
|
|
90
|
-
case 6: return [2 /*return*/];
|
|
91
|
-
}
|
|
92
|
-
});
|
|
93
|
-
}); };
|
|
94
|
-
_c.label = 2;
|
|
95
|
-
case 2:
|
|
96
|
-
_c.trys.push([2, 4, 5, 6]);
|
|
97
|
-
abortableResender();
|
|
98
|
-
times_1 = 0;
|
|
99
|
-
races = [
|
|
100
|
-
new Promise(function (resolve) { return __awaiter(_this, void 0, void 0, function () {
|
|
101
|
-
var tx;
|
|
102
|
-
var _a;
|
|
103
|
-
return __generator(this, function (_b) {
|
|
104
|
-
switch (_b.label) {
|
|
105
|
-
case 0:
|
|
106
|
-
if (!!abortSignal.aborted) return [3 /*break*/, 3];
|
|
107
|
-
times_1++;
|
|
108
|
-
if (times_1 > 8)
|
|
109
|
-
resolve('');
|
|
110
|
-
return [4 /*yield*/, sleep(3000)];
|
|
111
|
-
case 1:
|
|
112
|
-
_b.sent();
|
|
113
|
-
return [4 /*yield*/, connection.getSignatureStatus(txid, {
|
|
114
|
-
searchTransactionHistory: false,
|
|
115
|
-
})];
|
|
116
|
-
case 2:
|
|
117
|
-
tx = _b.sent();
|
|
118
|
-
if (((_a = tx === null || tx === void 0 ? void 0 : tx.value) === null || _a === void 0 ? void 0 : _a.confirmationStatus) === "confirmed") {
|
|
119
|
-
resolve(tx);
|
|
120
|
-
}
|
|
121
|
-
return [3 /*break*/, 0];
|
|
122
|
-
case 3: return [2 /*return*/];
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}); }),
|
|
126
|
-
];
|
|
127
|
-
return [4 /*yield*/, Promise.race(races)];
|
|
128
|
-
case 3:
|
|
129
|
-
_c.sent();
|
|
130
|
-
return [3 /*break*/, 6];
|
|
131
|
-
case 4:
|
|
132
|
-
e_1 = _c.sent();
|
|
133
|
-
if (e_1 instanceof web3_js_1.TransactionExpiredBlockheightExceededError) {
|
|
134
|
-
return [2 /*return*/, null];
|
|
109
|
+
if (!txid) {
|
|
110
|
+
throw new Error('Transaction not confirmed.');
|
|
135
111
|
}
|
|
136
|
-
|
|
137
|
-
|
|
112
|
+
return [4 /*yield*/, getTransaction(connection, txid, 0)];
|
|
113
|
+
case 2:
|
|
114
|
+
response = _c.sent();
|
|
115
|
+
if (!response) {
|
|
116
|
+
throw new Error('Transaction not confirmed.');
|
|
138
117
|
}
|
|
139
|
-
return [3 /*break*/, 6];
|
|
140
|
-
case 5:
|
|
141
|
-
controller.abort();
|
|
142
|
-
return [7 /*endfinally*/];
|
|
143
|
-
case 6:
|
|
144
|
-
response = (0, promise_retry_1.default)(function (retry) { return __awaiter(_this, void 0, void 0, function () {
|
|
145
|
-
var response;
|
|
146
|
-
return __generator(this, function (_a) {
|
|
147
|
-
switch (_a.label) {
|
|
148
|
-
case 0: return [4 /*yield*/, connection.getTransaction(txid, {
|
|
149
|
-
commitment: "confirmed",
|
|
150
|
-
maxSupportedTransactionVersion: 0,
|
|
151
|
-
})];
|
|
152
|
-
case 1:
|
|
153
|
-
response = _a.sent();
|
|
154
|
-
if (!response) {
|
|
155
|
-
retry(response);
|
|
156
|
-
}
|
|
157
|
-
return [2 /*return*/, response];
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
}); }, {
|
|
161
|
-
retries: 2,
|
|
162
|
-
minTimeout: 3000,
|
|
163
|
-
});
|
|
164
118
|
return [2 /*return*/, { response: response, txid: txid }];
|
|
165
119
|
}
|
|
166
120
|
});
|