@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, controller, abortSignal, abortableResender, times_1, races, e_1, response;
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*/, connection.sendRawTransaction(serializedTransaction, {
56
- skipPreflight: true,
57
- })];
106
+ case 0: return [4 /*yield*/, sendRawTransaction(connection, serializedTransaction, 0)];
58
107
  case 1:
59
108
  txid = _c.sent();
60
- console.log('txid', txid);
61
- controller = new AbortController();
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
- else {
137
- throw e_1;
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
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openocean.finance/openocean-sdk",
3
- "version": "1.7.9",
3
+ "version": "1.7.11",
4
4
  "description": "Openocean sdk",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {