@helium/spl-utils 0.0.27 → 0.0.28

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 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/transaction.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helium/spl-utils",
3
- "version": "0.0.27",
3
+ "version": "0.0.28",
4
4
  "description": "Utils shared across spl suite",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -45,5 +45,5 @@
45
45
  "typescript": "^4.3.4",
46
46
  "yarn": "^1.22.18"
47
47
  },
48
- "gitHead": "821b0614352a829783816ad38bb7f308e19efb7f"
48
+ "gitHead": "b4ff3a8ac49a3aadfdd9fc9b8a7ea12b0453f47b"
49
49
  }
@@ -1,410 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.TpuConnection = exports.LeaderTpuService = exports.TpuClient = exports.RecentLeaderSlots = exports.MAX_FANOUT_SLOTS = exports.DEFAULT_FANOUT_SLOTS = exports.MAX_SLOT_SKIP_DISTANCE = exports.LeaderTpuCache = void 0;
16
- // Taken from https://raw.githubusercontent.com/lmvdz/tpu-client/main/src/index.ts bec of supply chain risk
17
- const web3_js_1 = require("@solana/web3.js");
18
- const denque_1 = __importDefault(require("denque"));
19
- const dgram_1 = __importDefault(require("dgram"));
20
- const bs58_1 = __importDefault(require("bs58"));
21
- class LeaderTpuCache {
22
- constructor(connection, startSlot) {
23
- this.connection = connection;
24
- this.first_slot = startSlot;
25
- }
26
- static load(connection, startSlot) {
27
- return new Promise((resolve) => {
28
- const leaderTpuCache = new LeaderTpuCache(connection, startSlot);
29
- leaderTpuCache.connection.getEpochInfo().then((epochInfo) => {
30
- leaderTpuCache.slots_in_epoch = epochInfo.slotsInEpoch;
31
- leaderTpuCache
32
- .fetchSlotLeaders(leaderTpuCache.first_slot, leaderTpuCache.slots_in_epoch)
33
- .then((leaders) => {
34
- leaderTpuCache.leaders = leaders;
35
- leaderTpuCache.fetchClusterTpuSockets().then((leaderTpuMap) => {
36
- leaderTpuCache.leaderTpuMap = leaderTpuMap;
37
- resolve(leaderTpuCache);
38
- });
39
- });
40
- });
41
- });
42
- }
43
- fetchClusterTpuSockets() {
44
- return new Promise((resolve, reject) => {
45
- const map = new Map();
46
- this.connection
47
- .getClusterNodes()
48
- .then((contactInfo) => {
49
- contactInfo.forEach((contactInfo) => {
50
- map.set(contactInfo.pubkey, contactInfo.tpu);
51
- });
52
- resolve(map);
53
- })
54
- .catch((error) => {
55
- reject(error);
56
- });
57
- });
58
- }
59
- fetchSlotLeaders(start_slot, slots_in_epoch) {
60
- const fanout = Math.min(2 * exports.MAX_FANOUT_SLOTS, slots_in_epoch);
61
- return this.connection.getSlotLeaders(start_slot, fanout);
62
- }
63
- lastSlot() {
64
- return this.first_slot + this.leaders.length - 1;
65
- }
66
- getSlotLeader(slot) {
67
- if (slot >= this.first_slot) {
68
- const index = slot - this.first_slot;
69
- return this.leaders[index];
70
- }
71
- else {
72
- return null;
73
- }
74
- }
75
- getLeaderSockets(fanout_slots) {
76
- return new Promise((resolve) => {
77
- const leaderSet = new Set();
78
- const leaderSockets = new Array();
79
- let checkedSlots = 0;
80
- this.leaders.forEach((leader) => {
81
- const tpu_socket = this.leaderTpuMap.get(leader.toBase58());
82
- if (tpu_socket !== undefined && tpu_socket !== null) {
83
- if (!leaderSet.has(leader.toBase58())) {
84
- leaderSet.add(leader.toBase58());
85
- leaderSockets.push(tpu_socket);
86
- }
87
- }
88
- else {
89
- console.log("TPU not available for leader: ", leader.toBase58());
90
- }
91
- checkedSlots++;
92
- if (checkedSlots === fanout_slots) {
93
- resolve(leaderSockets);
94
- }
95
- });
96
- });
97
- }
98
- }
99
- exports.LeaderTpuCache = LeaderTpuCache;
100
- exports.MAX_SLOT_SKIP_DISTANCE = 48;
101
- exports.DEFAULT_FANOUT_SLOTS = 12;
102
- exports.MAX_FANOUT_SLOTS = 100;
103
- class RecentLeaderSlots {
104
- //@ts-check
105
- /**
106
- *
107
- * @param current_slot {number}
108
- */
109
- constructor(current_slot) {
110
- this.recent_slots = new denque_1.default();
111
- this.recent_slots.push(current_slot);
112
- }
113
- //@ts-check
114
- /**
115
- *
116
- * @param current_slot {number}
117
- */
118
- recordSlot(current_slot) {
119
- this.recent_slots.push(current_slot);
120
- while (this.recent_slots.length > 12) {
121
- this.recent_slots.pop();
122
- }
123
- }
124
- //@ts-check
125
- /**
126
- *
127
- * @returns {number}
128
- */
129
- estimatedCurrentSlot() {
130
- if (this.recent_slots.isEmpty()) {
131
- throw new Error("recent slots is empty");
132
- }
133
- const sortedRecentSlots = this.recent_slots.toArray().sort((a, b) => a - b);
134
- const max_index = sortedRecentSlots.length - 1;
135
- const median_index = max_index / 2;
136
- const median_recent_slot = sortedRecentSlots[median_index];
137
- const expected_current_slot = median_recent_slot + (max_index - median_index);
138
- const max_reasonable_current_slot = expected_current_slot + exports.MAX_SLOT_SKIP_DISTANCE;
139
- return sortedRecentSlots
140
- .reverse()
141
- .find((slot) => slot <= max_reasonable_current_slot);
142
- }
143
- }
144
- exports.RecentLeaderSlots = RecentLeaderSlots;
145
- class TpuClient {
146
- //@ts-check
147
- /**
148
- *
149
- * @param connection {Connection}
150
- * @param config {TpuClientConfig}
151
- */
152
- constructor(connection, config = { fanoutSlots: exports.DEFAULT_FANOUT_SLOTS }) {
153
- this.connection = connection;
154
- this.exit = false;
155
- this.sendSocket = dgram_1.default.createSocket("udp4");
156
- this.fanoutSlots = Math.max(Math.min(config.fanoutSlots, exports.MAX_FANOUT_SLOTS), 1);
157
- }
158
- //@ts-check
159
- /**
160
- *
161
- * @param connection {Connection}
162
- * @param websocketUrl {string}
163
- * @param config {TpuClientConfig}
164
- * @returns {Promise<TpuClient>}
165
- */
166
- static load(connection, websocketUrl = "", config = { fanoutSlots: exports.DEFAULT_FANOUT_SLOTS }) {
167
- return new Promise((resolve) => {
168
- const tpuClient = new TpuClient(connection, config);
169
- LeaderTpuService.load(tpuClient.connection, websocketUrl).then((leaderTpuService) => {
170
- tpuClient.leaderTpuService = leaderTpuService;
171
- resolve(tpuClient);
172
- });
173
- });
174
- }
175
- //@ts-check
176
- /**
177
- *
178
- * @param transaction {Transaction}
179
- * @param signers {Array<Signer>}
180
- * @returns {Promise<string>}
181
- */
182
- sendTransaction(transaction, signers) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- if (transaction.nonceInfo) {
185
- transaction.sign(...signers);
186
- }
187
- else {
188
- transaction.recentBlockhash = (yield this.connection.getRecentBlockhash()).blockhash;
189
- transaction.sign(...signers);
190
- }
191
- const rawTransaction = transaction.serialize();
192
- return this.sendRawTransaction(rawTransaction);
193
- });
194
- }
195
- //@ts-check
196
- /**
197
- *
198
- * @param rawTransaction {Buffer | number[] | Uint8ARray}
199
- * @returns {Promise<string>}
200
- */
201
- sendRawTransaction(rawTransaction) {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- return new Promise((resolve, reject) => {
204
- this.leaderTpuService
205
- .leaderTpuSockets(this.fanoutSlots)
206
- .then((tpu_addresses) => {
207
- tpu_addresses.forEach((tpu_address) => {
208
- this.sendSocket.send(rawTransaction, parseInt(tpu_address.split(":")[1]), tpu_address.split(":")[0], (error) => {
209
- if (!error) {
210
- const message = web3_js_1.Transaction.from(rawTransaction);
211
- resolve(bs58_1.default.encode(message.signature));
212
- }
213
- else {
214
- console.error(error);
215
- reject(error);
216
- }
217
- });
218
- });
219
- });
220
- });
221
- });
222
- }
223
- }
224
- exports.TpuClient = TpuClient;
225
- class LeaderTpuService {
226
- //@ts-check
227
- /**
228
- *
229
- * @param connection {Connection}
230
- */
231
- constructor(connection) {
232
- this.connection = connection;
233
- }
234
- //@ts-check
235
- /**
236
- *
237
- * @param connection {Connection}
238
- * @param websocket_url {string}
239
- * @returns {Promise<LeaderTpuService}
240
- */
241
- static load(connection, websocket_url = "") {
242
- return new Promise((resolve) => {
243
- const leaderTpuService = new LeaderTpuService(connection);
244
- leaderTpuService.connection.getSlot("processed").then((start_slot) => {
245
- leaderTpuService.recentSlots = new RecentLeaderSlots(start_slot);
246
- LeaderTpuCache.load(connection, start_slot).then((leaderTpuCache) => {
247
- leaderTpuService.leaderTpuCache = leaderTpuCache;
248
- if (websocket_url !== "") {
249
- leaderTpuService.subscription = connection.onSlotUpdate((slotUpdate) => {
250
- if (slotUpdate.type === "completed") {
251
- slotUpdate.slot++;
252
- }
253
- leaderTpuService.recentSlots.recordSlot(slotUpdate.slot);
254
- });
255
- }
256
- else {
257
- leaderTpuService.subscription = null;
258
- }
259
- leaderTpuService.run();
260
- resolve(leaderTpuService);
261
- });
262
- });
263
- });
264
- }
265
- //@ts-check
266
- /**
267
- *
268
- * @param fanout_slots {number}
269
- * @returns {Promise<string[]>}
270
- */
271
- leaderTpuSockets(fanout_slots) {
272
- return this.leaderTpuCache.getLeaderSockets(fanout_slots);
273
- }
274
- //@ts-check
275
- /**
276
- * @returns {void}
277
- */
278
- run() {
279
- return __awaiter(this, void 0, void 0, function* () {
280
- const last_cluster_refresh = Date.now();
281
- let sleep_ms = 1000;
282
- setTimeout(() => __awaiter(this, void 0, void 0, function* () {
283
- sleep_ms = 1000;
284
- if (Date.now() - last_cluster_refresh > 1000 * 5 * 60) {
285
- try {
286
- this.leaderTpuCache.leaderTpuMap =
287
- yield this.leaderTpuCache.fetchClusterTpuSockets();
288
- }
289
- catch (error) {
290
- console.warn("Failed to fetch cluster tpu sockets", error);
291
- sleep_ms = 1000;
292
- }
293
- }
294
- const estimatedCurrentSlot = this.recentSlots.estimatedCurrentSlot();
295
- if (estimatedCurrentSlot >=
296
- this.leaderTpuCache.last_epoch_info_slot -
297
- this.leaderTpuCache.slots_in_epoch) {
298
- try {
299
- const epochInfo = yield this.connection.getEpochInfo("recent");
300
- this.leaderTpuCache.slots_in_epoch = epochInfo.slotsInEpoch;
301
- this.leaderTpuCache.last_epoch_info_slot = estimatedCurrentSlot;
302
- }
303
- catch (error) {
304
- console.warn("failed to get epoch info");
305
- }
306
- }
307
- if (estimatedCurrentSlot >=
308
- this.leaderTpuCache.lastSlot() - exports.MAX_FANOUT_SLOTS) {
309
- try {
310
- const slot_leaders = yield this.leaderTpuCache.fetchSlotLeaders(estimatedCurrentSlot, this.leaderTpuCache.slots_in_epoch);
311
- this.leaderTpuCache.first_slot = estimatedCurrentSlot;
312
- this.leaderTpuCache.leaders = slot_leaders;
313
- }
314
- catch (error) {
315
- console.warn(`Failed to fetch slot leaders (current estimated slot: ${estimatedCurrentSlot})`, error);
316
- sleep_ms = 1000;
317
- }
318
- }
319
- this.run();
320
- }), sleep_ms);
321
- });
322
- }
323
- }
324
- exports.LeaderTpuService = LeaderTpuService;
325
- class TpuConnection extends web3_js_1.Connection {
326
- //@ts-check
327
- /**
328
- *
329
- * @param endpoint {string}
330
- * @param commitmentOrConfig {Commitment | ConnectionConfig}
331
- */
332
- constructor(endpoint, commitmentOrConfig) {
333
- super(endpoint, commitmentOrConfig);
334
- }
335
- /**
336
- *
337
- * @param transaction {Transaction}
338
- * @param signers {Array<Signer>}
339
- * @returns {Promise<string>}
340
- */
341
- //@ts-ignore
342
- sendTransaction(transaction, signers) {
343
- return this.tpuClient.sendTransaction(transaction, signers);
344
- }
345
- /**
346
- *
347
- * @param rawTransaction {Buffer | Array<number> | Uint8Array}
348
- * @returns {Promise<string>}
349
- */
350
- //@ts-ignore
351
- sendRawTransaction(rawTransaction) {
352
- return this.tpuClient.sendRawTransaction(rawTransaction);
353
- }
354
- ///@ts-check
355
- /**
356
- *
357
- * @param connection {TpuConnection}
358
- * @param transaction {Transaction}
359
- * @param signers {Array<Signer>}
360
- * @param options {ConfirmOptions}
361
- * @returns {Promise<TransactionSignature>}
362
- */
363
- sendAndConfirmTransaction(connection, transaction, signers, options) {
364
- return __awaiter(this, void 0, void 0, function* () {
365
- const signature = yield this.sendTransaction(transaction, signers);
366
- const status = (yield connection.confirmTransaction(signature, options.commitment)).value;
367
- if (status.err) {
368
- throw new Error(`Transaction ${signature} failed (${JSON.stringify(status)})`);
369
- }
370
- return signature;
371
- });
372
- }
373
- //@ts-check
374
- /**
375
- *
376
- * @param connection {TpuConnection}
377
- * @param rawTransaction {Buffer | Array<number> | Uint8Array}
378
- * @param options {ConfirmOptions}
379
- * @returns {Promise<string>}
380
- */
381
- sendAndConfirmRawTransaction(connection, rawTransaction, options) {
382
- return __awaiter(this, void 0, void 0, function* () {
383
- const signature = yield this.sendRawTransaction(rawTransaction);
384
- const status = (yield connection.confirmTransaction(signature, options.commitment)).value;
385
- if (status.err) {
386
- throw new Error(`Transaction ${signature} failed (${JSON.stringify(status)})`);
387
- }
388
- return signature;
389
- });
390
- }
391
- //@ts-check
392
- /**
393
- *
394
- * @param endpoint {string}
395
- * @param commitmentOrConfig {Commitment | ConnectionConfig}
396
- * @returns {Promise<TpuConnection>}
397
- */
398
- static load(endpoint, commitmentOrConfig) {
399
- return new Promise((resolve) => {
400
- const tpuConnection = new TpuConnection(endpoint, commitmentOrConfig);
401
- //@ts-ignore
402
- TpuClient.load(tpuConnection).then((tpuClient) => {
403
- tpuConnection.tpuClient = tpuClient;
404
- resolve(tpuConnection);
405
- });
406
- });
407
- }
408
- }
409
- exports.TpuConnection = TpuConnection;
410
- //# sourceMappingURL=TpuClient.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TpuClient.js","sourceRoot":"","sources":["../../src/TpuClient.ts"],"names":[],"mappings":"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"}