@helium/spl-utils 0.6.1 → 0.6.2-next.34
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/lib/cjs/constants.js +3 -1
- package/lib/cjs/constants.js.map +1 -1
- package/lib/cjs/draft.js +26 -0
- package/lib/cjs/draft.js.map +1 -0
- package/lib/cjs/index.js +6 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/mplAssetAPI.js +44 -8
- package/lib/cjs/mplAssetAPI.js.map +1 -1
- package/lib/cjs/priorityFees.js +133 -0
- package/lib/cjs/priorityFees.js.map +1 -0
- package/lib/cjs/transaction.js +246 -101
- package/lib/cjs/transaction.js.map +1 -1
- package/lib/esm/src/constants.js +2 -0
- package/lib/esm/src/constants.js.map +1 -1
- package/lib/esm/src/draft.js +11 -0
- package/lib/esm/src/draft.js.map +1 -0
- package/lib/esm/src/index.js +11 -9
- package/lib/esm/src/index.js.map +1 -1
- package/lib/esm/src/mplAssetAPI.js +45 -8
- package/lib/esm/src/mplAssetAPI.js.map +1 -1
- package/lib/esm/src/priorityFees.js +104 -0
- package/lib/esm/src/priorityFees.js.map +1 -0
- package/lib/esm/src/transaction.js +232 -101
- package/lib/esm/src/transaction.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/constants.d.ts +2 -0
- package/lib/types/src/constants.d.ts.map +1 -1
- package/lib/types/src/draft.d.ts +11 -0
- package/lib/types/src/draft.d.ts.map +1 -0
- package/lib/types/src/index.d.ts +13 -11
- package/lib/types/src/index.d.ts.map +1 -1
- package/lib/types/src/mplAssetAPI.d.ts +11 -2
- package/lib/types/src/mplAssetAPI.d.ts.map +1 -1
- package/lib/types/src/priorityFees.d.ts +19 -0
- package/lib/types/src/priorityFees.d.ts.map +1 -0
- package/lib/types/src/transaction.d.ts +51 -5
- package/lib/types/src/transaction.d.ts.map +1 -1
- package/package.json +5 -5
package/lib/cjs/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HNT_PYTH_PRICE_FEED = exports.IOT_MINT = exports.MOBILE_MINT = exports.HNT_MINT = exports.DC_MINT = void 0;
|
|
3
|
+
exports.HELIUM_COMMON_LUT = exports.HELIUM_COMMON_LUT_DEVNET = exports.HNT_PYTH_PRICE_FEED = exports.IOT_MINT = exports.MOBILE_MINT = exports.HNT_MINT = exports.DC_MINT = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
5
|
exports.DC_MINT = new web3_js_1.PublicKey("dcuc8Amr83Wz27ZkQ2K9NS6r8zRpf1J6cvArEBDZDmm");
|
|
6
6
|
exports.HNT_MINT = new web3_js_1.PublicKey("hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux");
|
|
@@ -8,4 +8,6 @@ exports.MOBILE_MINT = new web3_js_1.PublicKey("mb1eu7TzEc71KxDpsmsKoucSSuuoGLv1d
|
|
|
8
8
|
exports.IOT_MINT = new web3_js_1.PublicKey("iotEVVZLEywoTn1QdwNPddxPWszn3zFhEot3MfL9fns");
|
|
9
9
|
// TODO: Replace with actual HNT feed
|
|
10
10
|
exports.HNT_PYTH_PRICE_FEED = new web3_js_1.PublicKey("6Eg8YdfFJQF2HHonzPUBSCCmyUEhrStg9VBLK957sBe6");
|
|
11
|
+
exports.HELIUM_COMMON_LUT_DEVNET = new web3_js_1.PublicKey("FnqYkQ6ZKnVKdkvYCGsEeiP5qgGqVbcFUkGduy2ta4gA");
|
|
12
|
+
exports.HELIUM_COMMON_LUT = new web3_js_1.PublicKey("43eY9L2spbM2b1MPDFFBStUiFGt29ziZ1nc1xbpzsfVt");
|
|
11
13
|
//# sourceMappingURL=constants.js.map
|
package/lib/cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,OAAO,GAAG,IAAI,mBAAS,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,OAAO,GAAG,IAAI,mBAAS,CAClC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,QAAQ,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAExE,QAAA,WAAW,GAAG,IAAI,mBAAS,CACtC,6CAA6C,CAC9C,CAAC;AAEW,QAAA,QAAQ,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAErF,qCAAqC;AACxB,QAAA,mBAAmB,GAAG,IAAI,mBAAS,CAC9C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,wBAAwB,GAAG,IAAI,mBAAS,CACnD,8CAA8C,CAC/C,CAAC;AAEW,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC"}
|
package/lib/cjs/draft.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.populateMissingDraftInfo = void 0;
|
|
13
|
+
const transaction_1 = require("./transaction");
|
|
14
|
+
function populateMissingDraftInfo(connection, tx) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
if (!tx.addressLookupTables) {
|
|
17
|
+
tx.addressLookupTables = yield (0, transaction_1.getAddressLookupTableAccounts)(connection, tx.addressLookupTableAddresses || []);
|
|
18
|
+
}
|
|
19
|
+
if (!tx.recentBlockhash) {
|
|
20
|
+
tx.recentBlockhash = (yield connection.getLatestBlockhash()).blockhash;
|
|
21
|
+
}
|
|
22
|
+
return tx;
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
exports.populateMissingDraftInfo = populateMissingDraftInfo;
|
|
26
|
+
//# sourceMappingURL=draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../src/draft.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,+CAA8D;AAY9D,SAAsB,wBAAwB,CAC5C,UAAsB,EACtB,EAAoB;;QAEpB,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE;YAC3B,EAAE,CAAC,mBAAmB,GAAG,MAAM,IAAA,2CAA6B,EAC1D,UAAU,EACV,EAAE,CAAC,2BAA2B,IAAI,EAAE,CACrC,CAAC;SACH;QAED,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE;YACvB,EAAE,CAAC,eAAe,GAAG,CAAC,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC;SACxE;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CAAA;AAhBD,4DAgBC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.proofArgsAndAccounts = exports.getAssetProofBatch = exports.getAssetBatch = exports.searchAssets = exports.getAssetsByOwner = exports.getAssetProof = exports.getAssets = exports.getAsset = void 0;
|
|
17
|
+
exports.proofArgsAndAccounts = exports.withPriorityFees = exports.estimatePrioritizationFee = exports.searchAssetsWithPageInfo = exports.getAssetProofBatch = exports.getAssetBatch = exports.searchAssets = exports.getAssetsByOwner = exports.getAssetProof = exports.getAssets = exports.getAsset = void 0;
|
|
18
18
|
__exportStar(require("./extendBorsh"), exports);
|
|
19
19
|
__exportStar(require("./transaction"), exports);
|
|
20
20
|
__exportStar(require("./anchorError"), exports);
|
|
@@ -22,6 +22,7 @@ __exportStar(require("./executeRemoteTxn"), exports);
|
|
|
22
22
|
__exportStar(require("./utils"), exports);
|
|
23
23
|
__exportStar(require("./token"), exports);
|
|
24
24
|
__exportStar(require("./constants"), exports);
|
|
25
|
+
__exportStar(require("./draft"), exports);
|
|
25
26
|
var mplAssetAPI_1 = require("./mplAssetAPI");
|
|
26
27
|
Object.defineProperty(exports, "getAsset", { enumerable: true, get: function () { return mplAssetAPI_1.getAsset; } });
|
|
27
28
|
Object.defineProperty(exports, "getAssets", { enumerable: true, get: function () { return mplAssetAPI_1.getAssets; } });
|
|
@@ -30,6 +31,10 @@ Object.defineProperty(exports, "getAssetsByOwner", { enumerable: true, get: func
|
|
|
30
31
|
Object.defineProperty(exports, "searchAssets", { enumerable: true, get: function () { return mplAssetAPI_1.searchAssets; } });
|
|
31
32
|
Object.defineProperty(exports, "getAssetBatch", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetBatch; } });
|
|
32
33
|
Object.defineProperty(exports, "getAssetProofBatch", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetProofBatch; } });
|
|
34
|
+
Object.defineProperty(exports, "searchAssetsWithPageInfo", { enumerable: true, get: function () { return mplAssetAPI_1.searchAssetsWithPageInfo; } });
|
|
35
|
+
var priorityFees_1 = require("./priorityFees");
|
|
36
|
+
Object.defineProperty(exports, "estimatePrioritizationFee", { enumerable: true, get: function () { return priorityFees_1.estimatePrioritizationFee; } });
|
|
37
|
+
Object.defineProperty(exports, "withPriorityFees", { enumerable: true, get: function () { return priorityFees_1.withPriorityFees; } });
|
|
33
38
|
var proofArgsAndAccounts_1 = require("./proofArgsAndAccounts");
|
|
34
39
|
Object.defineProperty(exports, "proofArgsAndAccounts", { enumerable: true, get: function () { return proofArgsAndAccounts_1.proofArgsAndAccounts; } });
|
|
35
40
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,qDAAmC;AACnC,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B;AAC9B,qDAAmC;AACnC,0CAAwB;AACxB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AAQxB,6CASuB;AARrB,uGAAA,QAAQ,OAAA;AACR,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,+GAAA,gBAAgB,OAAA;AAChB,2GAAA,YAAY,OAAA;AACZ,4GAAA,aAAa,OAAA;AACb,iHAAA,kBAAkB,OAAA;AAClB,uHAAA,wBAAwB,OAAA;AAE1B,+CAA6E;AAApE,yHAAA,yBAAyB,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAEpD,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
|
package/lib/cjs/mplAssetAPI.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.searchAssets = exports.getAssetsByOwner = exports.getAssetProofBatch = exports.getAssetProof = exports.getAssets = exports.getAssetBatch = exports.getAsset = void 0;
|
|
26
|
+
exports.searchAssetsWithPageInfo = exports.searchAssets = exports.getAssetsByOwner = exports.getAssetProofBatch = exports.getAssetProof = exports.getAssets = exports.getAssetBatch = exports.getAsset = void 0;
|
|
27
27
|
const web3_js_1 = require("@solana/web3.js");
|
|
28
28
|
const axios_1 = __importDefault(require("axios"));
|
|
29
29
|
// @ts-ignore
|
|
@@ -42,6 +42,9 @@ function getAsset(url, assetId) {
|
|
|
42
42
|
Expires: "0",
|
|
43
43
|
},
|
|
44
44
|
});
|
|
45
|
+
if (response.data && response.data.error) {
|
|
46
|
+
throw new Error(response.data.error.message);
|
|
47
|
+
}
|
|
45
48
|
const result = response.data.result;
|
|
46
49
|
if (result) {
|
|
47
50
|
return toAsset(result);
|
|
@@ -68,6 +71,9 @@ function getAssetBatch(url, assetIds) {
|
|
|
68
71
|
Expires: "0",
|
|
69
72
|
},
|
|
70
73
|
});
|
|
74
|
+
if (response.data && response.data.error) {
|
|
75
|
+
throw new Error(response.data.error.message);
|
|
76
|
+
}
|
|
71
77
|
const result = response.data.result;
|
|
72
78
|
if (result) {
|
|
73
79
|
return result.map(toAsset);
|
|
@@ -105,6 +111,9 @@ function getAssets(url, assetIds) {
|
|
|
105
111
|
},
|
|
106
112
|
data: JSON.stringify(batch),
|
|
107
113
|
});
|
|
114
|
+
if (response.data && response.data.error) {
|
|
115
|
+
throw new Error(response.data.error.message);
|
|
116
|
+
}
|
|
108
117
|
const result = response.data
|
|
109
118
|
? response.data.map((res) => (res === null || res === void 0 ? void 0 : res.result) || undefined)
|
|
110
119
|
: [];
|
|
@@ -146,6 +155,9 @@ function getAssetProof(url, assetId) {
|
|
|
146
155
|
Expires: "0",
|
|
147
156
|
},
|
|
148
157
|
});
|
|
158
|
+
if (response.data && response.data.error) {
|
|
159
|
+
throw new Error(response.data.error.message);
|
|
160
|
+
}
|
|
149
161
|
const result = response.data.result;
|
|
150
162
|
if (result) {
|
|
151
163
|
return {
|
|
@@ -178,6 +190,9 @@ function getAssetProofBatch(url, assetIds) {
|
|
|
178
190
|
Expires: "0",
|
|
179
191
|
},
|
|
180
192
|
});
|
|
193
|
+
if (response.data && response.data.error) {
|
|
194
|
+
throw new Error(response.data.error.message);
|
|
195
|
+
}
|
|
181
196
|
const result = response.data.result;
|
|
182
197
|
if (result) {
|
|
183
198
|
return Object.entries(result).reduce((acc, [k, r]) => {
|
|
@@ -214,6 +229,9 @@ function getAssetsByOwner(url, wallet, { sortBy = { sortBy: "created", sortDirec
|
|
|
214
229
|
Expires: "0",
|
|
215
230
|
},
|
|
216
231
|
});
|
|
232
|
+
if (response.data && response.data.error) {
|
|
233
|
+
throw new Error(response.data.error.message);
|
|
234
|
+
}
|
|
217
235
|
return (_a = response.data.result) === null || _a === void 0 ? void 0 : _a.items.map(toAsset);
|
|
218
236
|
}
|
|
219
237
|
catch (error) {
|
|
@@ -223,25 +241,43 @@ function getAssetsByOwner(url, wallet, { sortBy = { sortBy: "created", sortDirec
|
|
|
223
241
|
});
|
|
224
242
|
}
|
|
225
243
|
exports.getAssetsByOwner = getAssetsByOwner;
|
|
226
|
-
function searchAssets(url,
|
|
244
|
+
function searchAssets(url, opts) {
|
|
245
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
246
|
+
return (yield searchAssetsWithPageInfo(url, opts)).items;
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
exports.searchAssets = searchAssets;
|
|
250
|
+
function searchAssetsWithPageInfo(url, _a) {
|
|
227
251
|
var _b;
|
|
228
|
-
var { creatorVerified = true, sortBy = { sortBy: "created", sortDirection: "asc" }, page = 1 } = _a, rest = __rest(_a, ["creatorVerified", "sortBy", "page"]);
|
|
252
|
+
var { creatorVerified = true, sortBy = { sortBy: "created", sortDirection: "asc" }, page = 1, limit = 1000, collection, tokenType } = _a, rest = __rest(_a, ["creatorVerified", "sortBy", "page", "limit", "collection", "tokenType"]);
|
|
229
253
|
return __awaiter(this, void 0, void 0, function* () {
|
|
254
|
+
const params = Object.assign(Object.assign({ page,
|
|
255
|
+
limit, sortBy: tokenType && ["all", "fungible"].includes(tokenType) ? null : sortBy, creatorVerified: tokenType && ["all", "fungible"].includes(tokenType)
|
|
256
|
+
? null
|
|
257
|
+
: creatorVerified, tokenType }, (collection ? { grouping: ["collection", collection] } : {})), rest);
|
|
230
258
|
try {
|
|
231
259
|
const response = yield axios_1.default.post(url, {
|
|
232
260
|
jsonrpc: "2.0",
|
|
233
261
|
method: "searchAssets",
|
|
234
262
|
id: "get-assets-op-1",
|
|
235
|
-
params
|
|
236
|
-
creatorVerified,
|
|
237
|
-
sortBy }, rest),
|
|
263
|
+
params,
|
|
238
264
|
headers: {
|
|
239
265
|
"Cache-Control": "no-cache",
|
|
240
266
|
Pragma: "no-cache",
|
|
241
267
|
Expires: "0",
|
|
242
268
|
},
|
|
243
269
|
});
|
|
244
|
-
|
|
270
|
+
if (response.data && response.data.error) {
|
|
271
|
+
throw new Error(response.data.error.message);
|
|
272
|
+
}
|
|
273
|
+
const ret = response.data.result;
|
|
274
|
+
return {
|
|
275
|
+
items: (_b = ret.items) === null || _b === void 0 ? void 0 : _b.map(toAsset),
|
|
276
|
+
limit: ret.limit,
|
|
277
|
+
total: ret.total,
|
|
278
|
+
page: ret.page,
|
|
279
|
+
grandTotal: ret.grand_total,
|
|
280
|
+
};
|
|
245
281
|
}
|
|
246
282
|
catch (error) {
|
|
247
283
|
console.error(error);
|
|
@@ -249,5 +285,5 @@ function searchAssets(url, _a) {
|
|
|
249
285
|
}
|
|
250
286
|
});
|
|
251
287
|
}
|
|
252
|
-
exports.
|
|
288
|
+
exports.searchAssetsWithPageInfo = searchAssetsWithPageInfo;
|
|
253
289
|
//# sourceMappingURL=mplAssetAPI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mplAssetAPI.js","sourceRoot":"","sources":["../../src/mplAssetAPI.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mplAssetAPI.js","sourceRoot":"","sources":["../../src/mplAssetAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
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 __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.withPriorityFees = exports.estimateComputeUnits = exports.estimatePrioritizationFee = void 0;
|
|
24
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
25
|
+
const draft_1 = require("./draft");
|
|
26
|
+
const transaction_1 = require("./transaction");
|
|
27
|
+
const MAX_RECENT_PRIORITY_FEE_ACCOUNTS = 128;
|
|
28
|
+
// Borrowed with love from https://github.com/blockworks-foundation/mango-v4/blob/57a9835aa8f636b6d231ba2c4008bfe89cbf08ba/ts/client/src/client.ts#L4552
|
|
29
|
+
/**
|
|
30
|
+
* Returns an estimate of a prioritization fee for a set of instructions.
|
|
31
|
+
*
|
|
32
|
+
* The estimate is based on the median fees of writable accounts that will be involved in the transaction.
|
|
33
|
+
*
|
|
34
|
+
* @param ixs - the instructions that make up the transaction
|
|
35
|
+
* @returns prioritizationFeeEstimate -- in microLamports
|
|
36
|
+
*/
|
|
37
|
+
function estimatePrioritizationFee(connection, ixs, basePriorityFee) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const accounts = ixs.map((x) => x.keys.map((k) => k.pubkey)).flat();
|
|
40
|
+
const uniqueAccounts = [...new Set(accounts.map((x) => x.toBase58()))]
|
|
41
|
+
.map((a) => new web3_js_1.PublicKey(a))
|
|
42
|
+
.slice(0, MAX_RECENT_PRIORITY_FEE_ACCOUNTS);
|
|
43
|
+
try {
|
|
44
|
+
// @ts-ignore
|
|
45
|
+
const { result: { priorityFeeEstimate } } = yield connection._rpcRequest("getPriorityFeeEstimate", connection._buildArgs([
|
|
46
|
+
{
|
|
47
|
+
accountKeys: uniqueAccounts.map((a) => a.toBase58()),
|
|
48
|
+
},
|
|
49
|
+
]));
|
|
50
|
+
return Math.max(basePriorityFee || 1, Math.ceil(priorityFeeEstimate));
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
console.error("Failed to use getPriorityFeeEstimate, falling back to getRecentPrioritizationFees", e);
|
|
54
|
+
const priorityFees = yield connection.getRecentPrioritizationFees({
|
|
55
|
+
lockedWritableAccounts: uniqueAccounts,
|
|
56
|
+
});
|
|
57
|
+
if (priorityFees.length < 1) {
|
|
58
|
+
return Math.max(basePriorityFee || 0, 1);
|
|
59
|
+
}
|
|
60
|
+
// get max priority fee per slot (and sort by slot from old to new)
|
|
61
|
+
const groupedBySlot = priorityFees.reduce((acc, fee) => {
|
|
62
|
+
const key = fee.slot;
|
|
63
|
+
if (!acc[key]) {
|
|
64
|
+
acc[key] = [];
|
|
65
|
+
}
|
|
66
|
+
acc[key].push(fee);
|
|
67
|
+
return acc;
|
|
68
|
+
}, {});
|
|
69
|
+
const maxFeeBySlot = Object.keys(groupedBySlot).reduce((acc, slot) => {
|
|
70
|
+
acc[slot] = groupedBySlot[slot].reduce((max, fee) => {
|
|
71
|
+
return fee.prioritizationFee > max.prioritizationFee ? fee : max;
|
|
72
|
+
});
|
|
73
|
+
return acc;
|
|
74
|
+
}, {});
|
|
75
|
+
const maximumFees = Object.values(maxFeeBySlot).sort((a, b) => a.slot - b.slot);
|
|
76
|
+
// get median of last 20 fees
|
|
77
|
+
const recentFees = maximumFees.slice(Math.max(maximumFees.length - 20, 0));
|
|
78
|
+
const mid = Math.floor(recentFees.length / 2);
|
|
79
|
+
const medianFee = recentFees.length % 2 !== 0
|
|
80
|
+
? recentFees[mid].prioritizationFee
|
|
81
|
+
: (recentFees[mid - 1].prioritizationFee +
|
|
82
|
+
recentFees[mid].prioritizationFee) /
|
|
83
|
+
2;
|
|
84
|
+
return Math.max(basePriorityFee || 1, Math.ceil(medianFee));
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
exports.estimatePrioritizationFee = estimatePrioritizationFee;
|
|
89
|
+
const estimateComputeUnits = (connection, tx, retries = 5) => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
const sim = (yield connection.simulateTransaction(tx)).value;
|
|
91
|
+
if (sim.err && sim.err.toString().includes("BlockhashNotFound") && retries > 0) {
|
|
92
|
+
yield sleep(500);
|
|
93
|
+
return (0, exports.estimateComputeUnits)(connection, tx, retries - 1);
|
|
94
|
+
}
|
|
95
|
+
return sim.unitsConsumed;
|
|
96
|
+
});
|
|
97
|
+
exports.estimateComputeUnits = estimateComputeUnits;
|
|
98
|
+
function sleep(ms) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function withPriorityFees(_a) {
|
|
104
|
+
var { connection, computeUnits, instructions = [], basePriorityFee, computeScaleUp } = _a, rest = __rest(_a, ["connection", "computeUnits", "instructions", "basePriorityFee", "computeScaleUp"]);
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
if (!computeUnits && !rest.feePayer) {
|
|
107
|
+
throw new Error("Must provide feePayer if estimating compute units");
|
|
108
|
+
}
|
|
109
|
+
const estimate = yield estimatePrioritizationFee(connection, instructions, basePriorityFee);
|
|
110
|
+
if (!computeUnits) {
|
|
111
|
+
const temp = Object.assign({ instructions, feePayer: rest.feePayer }, rest);
|
|
112
|
+
const tx = yield (0, draft_1.populateMissingDraftInfo)(connection, temp);
|
|
113
|
+
const estimatedFee = yield (0, exports.estimateComputeUnits)(connection, (0, transaction_1.toVersionedTx)(tx));
|
|
114
|
+
if (estimatedFee) {
|
|
115
|
+
computeUnits = Math.ceil(estimatedFee * (computeScaleUp || 1.1));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
computeUnits = 200000;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return [
|
|
122
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({
|
|
123
|
+
units: computeUnits,
|
|
124
|
+
}),
|
|
125
|
+
web3_js_1.ComputeBudgetProgram.setComputeUnitPrice({
|
|
126
|
+
microLamports: estimate,
|
|
127
|
+
}),
|
|
128
|
+
...instructions,
|
|
129
|
+
];
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
exports.withPriorityFees = withPriorityFees;
|
|
133
|
+
//# sourceMappingURL=priorityFees.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priorityFees.js","sourceRoot":"","sources":["../../src/priorityFees.ts"],"names":[],"mappings":"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"}
|