@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.
Files changed (38) hide show
  1. package/lib/cjs/constants.js +3 -1
  2. package/lib/cjs/constants.js.map +1 -1
  3. package/lib/cjs/draft.js +26 -0
  4. package/lib/cjs/draft.js.map +1 -0
  5. package/lib/cjs/index.js +6 -1
  6. package/lib/cjs/index.js.map +1 -1
  7. package/lib/cjs/mplAssetAPI.js +44 -8
  8. package/lib/cjs/mplAssetAPI.js.map +1 -1
  9. package/lib/cjs/priorityFees.js +133 -0
  10. package/lib/cjs/priorityFees.js.map +1 -0
  11. package/lib/cjs/transaction.js +246 -101
  12. package/lib/cjs/transaction.js.map +1 -1
  13. package/lib/esm/src/constants.js +2 -0
  14. package/lib/esm/src/constants.js.map +1 -1
  15. package/lib/esm/src/draft.js +11 -0
  16. package/lib/esm/src/draft.js.map +1 -0
  17. package/lib/esm/src/index.js +11 -9
  18. package/lib/esm/src/index.js.map +1 -1
  19. package/lib/esm/src/mplAssetAPI.js +45 -8
  20. package/lib/esm/src/mplAssetAPI.js.map +1 -1
  21. package/lib/esm/src/priorityFees.js +104 -0
  22. package/lib/esm/src/priorityFees.js.map +1 -0
  23. package/lib/esm/src/transaction.js +232 -101
  24. package/lib/esm/src/transaction.js.map +1 -1
  25. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  26. package/lib/types/src/constants.d.ts +2 -0
  27. package/lib/types/src/constants.d.ts.map +1 -1
  28. package/lib/types/src/draft.d.ts +11 -0
  29. package/lib/types/src/draft.d.ts.map +1 -0
  30. package/lib/types/src/index.d.ts +13 -11
  31. package/lib/types/src/index.d.ts.map +1 -1
  32. package/lib/types/src/mplAssetAPI.d.ts +11 -2
  33. package/lib/types/src/mplAssetAPI.d.ts.map +1 -1
  34. package/lib/types/src/priorityFees.d.ts +19 -0
  35. package/lib/types/src/priorityFees.d.ts.map +1 -0
  36. package/lib/types/src/transaction.d.ts +51 -5
  37. package/lib/types/src/transaction.d.ts.map +1 -1
  38. package/package.json +5 -5
@@ -15,6 +15,9 @@ export async function getAsset(url, assetId) {
15
15
  Expires: "0",
16
16
  },
17
17
  });
18
+ if (response.data && response.data.error) {
19
+ throw new Error(response.data.error.message);
20
+ }
18
21
  const result = response.data.result;
19
22
  if (result) {
20
23
  return toAsset(result);
@@ -38,6 +41,9 @@ export async function getAssetBatch(url, assetIds) {
38
41
  Expires: "0",
39
42
  },
40
43
  });
44
+ if (response.data && response.data.error) {
45
+ throw new Error(response.data.error.message);
46
+ }
41
47
  const result = response.data.result;
42
48
  if (result) {
43
49
  return result.map(toAsset);
@@ -72,6 +78,9 @@ export async function getAssets(url, assetIds) {
72
78
  },
73
79
  data: JSON.stringify(batch),
74
80
  });
81
+ if (response.data && response.data.error) {
82
+ throw new Error(response.data.error.message);
83
+ }
75
84
  const result = response.data
76
85
  ? response.data.map((res) => res?.result || undefined)
77
86
  : [];
@@ -131,6 +140,9 @@ export async function getAssetProof(url, assetId) {
131
140
  Expires: "0",
132
141
  },
133
142
  });
143
+ if (response.data && response.data.error) {
144
+ throw new Error(response.data.error.message);
145
+ }
134
146
  const result = response.data.result;
135
147
  if (result) {
136
148
  return {
@@ -160,6 +172,9 @@ export async function getAssetProofBatch(url, assetIds) {
160
172
  Expires: "0",
161
173
  },
162
174
  });
175
+ if (response.data && response.data.error) {
176
+ throw new Error(response.data.error.message);
177
+ }
163
178
  const result = response.data.result;
164
179
  if (result) {
165
180
  return Object.entries(result).reduce((acc, [k, r]) => {
@@ -192,6 +207,9 @@ export async function getAssetsByOwner(url, wallet, { sortBy = { sortBy: "create
192
207
  Expires: "0",
193
208
  },
194
209
  });
210
+ if (response.data && response.data.error) {
211
+ throw new Error(response.data.error.message);
212
+ }
195
213
  return response.data.result?.items.map(toAsset);
196
214
  }
197
215
  catch (error) {
@@ -199,25 +217,44 @@ export async function getAssetsByOwner(url, wallet, { sortBy = { sortBy: "create
199
217
  throw error;
200
218
  }
201
219
  }
202
- export async function searchAssets(url, { creatorVerified = true, sortBy = { sortBy: "created", sortDirection: "asc" }, page = 1, ...rest }) {
220
+ export async function searchAssets(url, opts) {
221
+ return (await searchAssetsWithPageInfo(url, opts)).items;
222
+ }
223
+ export async function searchAssetsWithPageInfo(url, { creatorVerified = true, sortBy = { sortBy: "created", sortDirection: "asc" }, page = 1, limit = 1000, collection, tokenType, ...rest }) {
224
+ const params = {
225
+ page,
226
+ limit,
227
+ sortBy: tokenType && ["all", "fungible"].includes(tokenType) ? null : sortBy,
228
+ creatorVerified: tokenType && ["all", "fungible"].includes(tokenType)
229
+ ? null
230
+ : creatorVerified,
231
+ tokenType,
232
+ ...(collection ? { grouping: ["collection", collection] } : {}),
233
+ ...rest,
234
+ };
203
235
  try {
204
236
  const response = await axios.post(url, {
205
237
  jsonrpc: "2.0",
206
238
  method: "searchAssets",
207
239
  id: "get-assets-op-1",
208
- params: {
209
- page,
210
- creatorVerified,
211
- sortBy,
212
- ...rest,
213
- },
240
+ params,
214
241
  headers: {
215
242
  "Cache-Control": "no-cache",
216
243
  Pragma: "no-cache",
217
244
  Expires: "0",
218
245
  },
219
246
  });
220
- return response.data.result?.items.map(toAsset);
247
+ if (response.data && response.data.error) {
248
+ throw new Error(response.data.error.message);
249
+ }
250
+ const ret = response.data.result;
251
+ return {
252
+ items: ret.items?.map(toAsset),
253
+ limit: ret.limit,
254
+ total: ret.total,
255
+ page: ret.page,
256
+ grandTotal: ret.grand_total,
257
+ };
221
258
  }
222
259
  catch (error) {
223
260
  console.error(error);
@@ -1 +1 @@
1
- {"version":3,"file":"mplAssetAPI.js","sourceRoot":"","sources":["../../../src/mplAssetAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mplAssetAPI.js","sourceRoot":"","sources":["../../../src/mplAssetAPI.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,aAAa;AACb,OAAO,MAAM,MAAM,MAAM,CAAC;AAuC1B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,OAAkB;IAElB,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,UAAU;YAClB,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE;YAClC,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;SACxB;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,QAAqB;IAErB,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,eAAe;YACvB,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC9D,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC5B;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,QAAqB;IAErB,IAAI;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,4CAA4C,QAAQ,CAAC,MAAM,EAAE,CAC9D,CAAC;SACH;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,aAAa,CAAC,EAAE;YACpB,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE;gBACN,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE;aACvB;SACF,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC;YAC3B,GAAG;YACH,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI;YAC1B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,SAAS,CAAC;YAC3D,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;YACL,GAAG,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAED,SAAS,OAAO,CAAC,MAAW;IAC1B,OAAO;QACL,GAAG,MAAM;QACT,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAC3B,CAAC,EACC,OAAO,EACP,KAAK,EACL,QAAQ,GAKT,EAAE,EAAE,CAAC,CAAC;YACL,KAAK;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,IAAI,SAAS,CAAC,OAAO,CAAC;SAC3C,CAAC,CACH;QACD,EAAE,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,QAAQ,EACN,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC/B,GAAG,CAAC;gBACJ,WAAW,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;aAC1C,CAAC,CAAC;QACL,WAAW,EAAE;YACX,GAAG,MAAM,CAAC,WAAW;YACrB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;YAClC,QAAQ,EACN,MAAM,CAAC,WAAW,CAAC,SAAS;gBAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC1D,WAAW,EACT,MAAM,CAAC,WAAW,CAAC,YAAY;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC7D,SAAS,EACP,MAAM,CAAC,WAAW,CAAC,UAAU;gBAC7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;SACxE;QACD,SAAS,EAAE;YACT,GAAG,MAAM,CAAC,SAAS;YACnB,QAAQ,EACN,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;YACvE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;SACvE;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,OAAkB;IAElB,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,eAAe;YACvB,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE;YAClC,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,OAAO;gBACL,IAAI,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;gBACrD,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,IAAI,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,MAAM,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;aACtC,CAAC;SACH;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,QAAqB;IAErB,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,oBAAoB;YAC5B,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE;YAC9D,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,OAAO,CAAC,MAA6B,CAAC,CAAC,MAAM,CACzD,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,GAAG,CAAC,CAAC,CAAC,GAAG;oBACP,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;oBAChD,SAAS,EAAE,CAAC,CAAC,UAAU;oBACvB,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC3B,MAAM,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;iBACnB,CAAC;gBAChB,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAgC,CACjC,CAAC;SACH;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,MAAc,EACd,EACE,MAAM,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,EACpD,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,CAAC,EACR,MAAM,GAAG,EAAE,EACX,KAAK,GAAG,EAAE,MACW,EAAE;IAEzB,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,kBAAkB;YAC1B,EAAE,EAAE,YAAY;YAChB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;YACpD,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KACjD;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAkBD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,IAAsB;IAEtB,OAAO,CAAC,MAAM,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAW,EACX,EACE,eAAe,GAAG,IAAI,EACtB,MAAM,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,EACpD,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,IAAI,EACZ,UAAU,EACV,SAAS,EACT,GAAG,IAAI,EACU;IAQnB,MAAM,MAAM,GAAG;QACb,IAAI;QACJ,KAAK;QACL,MAAM,EACJ,SAAS,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACtE,eAAe,EACb,SAAS,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;YAClD,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,eAAe;QACrB,SAAS;QACT,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,IAAI;KACR,CAAC;IAEF,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,cAAc;YACtB,EAAE,EAAE,iBAAiB;YACrB,MAAM;YACN,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,GAAG;aACb;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC9C;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;QACjC,OAAO;YACL,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG,CAAC,WAAW;SAC5B,CAAC;KACH;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,KAAK,CAAC;KACb;AACH,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { ComputeBudgetProgram, PublicKey, } from "@solana/web3.js";
2
+ import { populateMissingDraftInfo } from "./draft";
3
+ import { toVersionedTx } from "./transaction";
4
+ const MAX_RECENT_PRIORITY_FEE_ACCOUNTS = 128;
5
+ // Borrowed with love from https://github.com/blockworks-foundation/mango-v4/blob/57a9835aa8f636b6d231ba2c4008bfe89cbf08ba/ts/client/src/client.ts#L4552
6
+ /**
7
+ * Returns an estimate of a prioritization fee for a set of instructions.
8
+ *
9
+ * The estimate is based on the median fees of writable accounts that will be involved in the transaction.
10
+ *
11
+ * @param ixs - the instructions that make up the transaction
12
+ * @returns prioritizationFeeEstimate -- in microLamports
13
+ */
14
+ export async function estimatePrioritizationFee(connection, ixs, basePriorityFee) {
15
+ const accounts = ixs.map((x) => x.keys.map((k) => k.pubkey)).flat();
16
+ const uniqueAccounts = [...new Set(accounts.map((x) => x.toBase58()))]
17
+ .map((a) => new PublicKey(a))
18
+ .slice(0, MAX_RECENT_PRIORITY_FEE_ACCOUNTS);
19
+ try {
20
+ // @ts-ignore
21
+ const { result: { priorityFeeEstimate } } = await connection._rpcRequest("getPriorityFeeEstimate", connection._buildArgs([
22
+ {
23
+ accountKeys: uniqueAccounts.map((a) => a.toBase58()),
24
+ },
25
+ ]));
26
+ return Math.max(basePriorityFee || 1, Math.ceil(priorityFeeEstimate));
27
+ }
28
+ catch (e) {
29
+ console.error("Failed to use getPriorityFeeEstimate, falling back to getRecentPrioritizationFees", e);
30
+ const priorityFees = await connection.getRecentPrioritizationFees({
31
+ lockedWritableAccounts: uniqueAccounts,
32
+ });
33
+ if (priorityFees.length < 1) {
34
+ return Math.max(basePriorityFee || 0, 1);
35
+ }
36
+ // get max priority fee per slot (and sort by slot from old to new)
37
+ const groupedBySlot = priorityFees.reduce((acc, fee) => {
38
+ const key = fee.slot;
39
+ if (!acc[key]) {
40
+ acc[key] = [];
41
+ }
42
+ acc[key].push(fee);
43
+ return acc;
44
+ }, {});
45
+ const maxFeeBySlot = Object.keys(groupedBySlot).reduce((acc, slot) => {
46
+ acc[slot] = groupedBySlot[slot].reduce((max, fee) => {
47
+ return fee.prioritizationFee > max.prioritizationFee ? fee : max;
48
+ });
49
+ return acc;
50
+ }, {});
51
+ const maximumFees = Object.values(maxFeeBySlot).sort((a, b) => a.slot - b.slot);
52
+ // get median of last 20 fees
53
+ const recentFees = maximumFees.slice(Math.max(maximumFees.length - 20, 0));
54
+ const mid = Math.floor(recentFees.length / 2);
55
+ const medianFee = recentFees.length % 2 !== 0
56
+ ? recentFees[mid].prioritizationFee
57
+ : (recentFees[mid - 1].prioritizationFee +
58
+ recentFees[mid].prioritizationFee) /
59
+ 2;
60
+ return Math.max(basePriorityFee || 1, Math.ceil(medianFee));
61
+ }
62
+ }
63
+ export const estimateComputeUnits = async (connection, tx, retries = 5) => {
64
+ const sim = (await connection.simulateTransaction(tx)).value;
65
+ if (sim.err && sim.err.toString().includes("BlockhashNotFound") && retries > 0) {
66
+ await sleep(500);
67
+ return estimateComputeUnits(connection, tx, retries - 1);
68
+ }
69
+ return sim.unitsConsumed;
70
+ };
71
+ async function sleep(ms) {
72
+ return new Promise((resolve) => setTimeout(resolve, ms));
73
+ }
74
+ export async function withPriorityFees({ connection, computeUnits, instructions = [], basePriorityFee, computeScaleUp, ...rest }) {
75
+ if (!computeUnits && !rest.feePayer) {
76
+ throw new Error("Must provide feePayer if estimating compute units");
77
+ }
78
+ const estimate = await estimatePrioritizationFee(connection, instructions, basePriorityFee);
79
+ if (!computeUnits) {
80
+ const temp = {
81
+ instructions,
82
+ feePayer: rest.feePayer,
83
+ ...rest,
84
+ };
85
+ const tx = await populateMissingDraftInfo(connection, temp);
86
+ const estimatedFee = await estimateComputeUnits(connection, toVersionedTx(tx));
87
+ if (estimatedFee) {
88
+ computeUnits = Math.ceil(estimatedFee * (computeScaleUp || 1.1));
89
+ }
90
+ else {
91
+ computeUnits = 200000;
92
+ }
93
+ }
94
+ return [
95
+ ComputeBudgetProgram.setComputeUnitLimit({
96
+ units: computeUnits,
97
+ }),
98
+ ComputeBudgetProgram.setComputeUnitPrice({
99
+ microLamports: estimate,
100
+ }),
101
+ ...instructions,
102
+ ];
103
+ }
104
+ //# sourceMappingURL=priorityFees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priorityFees.js","sourceRoot":"","sources":["../../../src/priorityFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAEpB,SAAS,GAIV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAoB,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,gCAAgC,GAAG,GAAG,CAAC;AAE7C,wJAAwJ;AACxJ;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAAsB,EACtB,GAA6B,EAC7B,eAAwB;IAExB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;SACnE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;SAC5B,KAAK,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;IAE9C,IAAI;QACF,aAAa;QACb,MAAM,EAAE,MAAM,EAAE,EAAE,mBAAmB,EAAE,EAAE,GAAG,MAAM,UAAU,CAAC,WAAW,CACtE,wBAAwB,EACxB,UAAU,CAAC,UAAU,CAAC;YACpB;gBACE,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;aACrD;SACF,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;KACvE;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,KAAK,CACX,mFAAmF,EACnF,CAAC,CACF,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,2BAA2B,CAAC;YAChE,sBAAsB,EAAE,cAAc;SACvC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1C;QAED,mEAAmE;QACnE,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACrD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACb,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;aACf;YACD,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAgD,CAAC,CAAC;QAErD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnE,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,OAAO,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA8C,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAClD,CAAC,CAA2B,EAAE,CAA2B,EAAE,EAAE,CAC3D,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CACY,CAAC;QAEhC,6BAA6B;QAC7B,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,SAAS,GACb,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;YACzB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,iBAAiB;YACnC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,iBAAiB;gBACpC,UAAU,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC;gBACpC,CAAC,CAAC;QAER,OAAO,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KAC7D;AACH,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,UAAsB,EACtB,EAAwB,EACxB,UAAkB,CAAC,EACU,EAAE;IAC/B,MAAM,GAAG,GAAG,CAAC,MAAM,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE;QAC9E,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QAChB,OAAO,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;KACzD;IAED,OAAO,GAAG,CAAC,aAAa,CAAA;AAC1B,CAAC,CAAC;AAEF,KAAK,UAAU,KAAK,CAAC,EAAU;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,UAAU,EACV,YAAY,EACZ,YAAY,GAAG,EAAE,EACjB,eAAe,EACf,cAAc,EACd,GAAG,IAAI,EAMoB;IAC3B,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;KACtE;IAED,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAC9C,UAAU,EACV,YAAY,EACZ,eAAe,CAChB,CAAC;IACF,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,IAAI,GAAG;YACX,YAAY;YACZ,QAAQ,EAAE,IAAI,CAAC,QAAS;YACxB,GAAG,IAAI;SACR,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,YAAY,EAAE;YAChB,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,CAAC,CAAC;SAClE;aAAM;YACL,YAAY,GAAG,MAAM,CAAC;SACvB;KACF;IAED,OAAO;QACL,oBAAoB,CAAC,mBAAmB,CAAC;YACvC,KAAK,EAAE,YAAY;SACpB,CAAC;QACF,oBAAoB,CAAC,mBAAmB,CAAC;YACvC,aAAa,EAAE,QAAQ;SACxB,CAAC;QACF,GAAG,YAAY;KAChB,CAAC;AACJ,CAAC"}