@helium/spl-utils 0.2.6 → 0.2.14-next.112

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/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.searchAssets = exports.getAssetsByOwner = exports.getAssetProof = exports.getAsset = void 0;
17
+ exports.proofArgsAndAccounts = 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);
@@ -24,9 +24,12 @@ __exportStar(require("./token"), exports);
24
24
  __exportStar(require("./constants"), exports);
25
25
  var mplAssetAPI_1 = require("./mplAssetAPI");
26
26
  Object.defineProperty(exports, "getAsset", { enumerable: true, get: function () { return mplAssetAPI_1.getAsset; } });
27
+ Object.defineProperty(exports, "getAssets", { enumerable: true, get: function () { return mplAssetAPI_1.getAssets; } });
27
28
  Object.defineProperty(exports, "getAssetProof", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetProof; } });
28
29
  Object.defineProperty(exports, "getAssetsByOwner", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetsByOwner; } });
29
30
  Object.defineProperty(exports, "searchAssets", { enumerable: true, get: function () { return mplAssetAPI_1.searchAssets; } });
31
+ Object.defineProperty(exports, "getAssetBatch", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetBatch; } });
32
+ Object.defineProperty(exports, "getAssetProofBatch", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetProofBatch; } });
30
33
  var proofArgsAndAccounts_1 = require("./proofArgsAndAccounts");
31
34
  Object.defineProperty(exports, "proofArgsAndAccounts", { enumerable: true, get: function () { return proofArgsAndAccounts_1.proofArgsAndAccounts; } });
32
35
  //# sourceMappingURL=index.js.map
@@ -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;AAQ5B,6CAKuB;AAJrB,uGAAA,QAAQ,OAAA;AACR,4GAAA,aAAa,OAAA;AACb,+GAAA,gBAAgB,OAAA;AAChB,2GAAA,YAAY,OAAA;AAGd,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
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;AAQ5B,6CAQuB;AAPrB,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;AAGpB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
@@ -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.getAssetProof = exports.getAsset = void 0;
26
+ 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
@@ -54,8 +54,76 @@ function getAsset(url, assetId) {
54
54
  });
55
55
  }
56
56
  exports.getAsset = getAsset;
57
+ function getAssetBatch(url, assetIds) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ try {
60
+ const response = yield axios_1.default.post(url, {
61
+ jsonrpc: "2.0",
62
+ method: "getAssetBatch",
63
+ id: "rpd-op-123",
64
+ params: { ids: assetIds.map((assetId) => assetId.toBase58()) },
65
+ headers: {
66
+ "Cache-Control": "no-cache",
67
+ Pragma: "no-cache",
68
+ Expires: "0",
69
+ },
70
+ });
71
+ const result = response.data.result;
72
+ if (result) {
73
+ return result.map(toAsset);
74
+ }
75
+ }
76
+ catch (error) {
77
+ console.error(error);
78
+ throw error;
79
+ }
80
+ });
81
+ }
82
+ exports.getAssetBatch = getAssetBatch;
83
+ function getAssets(url, assetIds) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ try {
86
+ if (assetIds.length > 1000) {
87
+ throw new Error(`Can only batch 1000 at a time, was given ${assetIds.length}`);
88
+ }
89
+ const batch = assetIds.map((assetId, i) => ({
90
+ jsonrpc: "2.0",
91
+ id: `get-asset-${i}`,
92
+ method: "getAsset",
93
+ params: {
94
+ id: assetId.toBase58(),
95
+ },
96
+ }));
97
+ const response = yield (0, axios_1.default)({
98
+ url,
99
+ method: "POST",
100
+ headers: {
101
+ "Content-Type": "application/json",
102
+ "Cache-Control": "no-cache",
103
+ Pragma: "no-cache",
104
+ Expires: "0",
105
+ },
106
+ data: JSON.stringify(batch),
107
+ });
108
+ const result = response.data
109
+ ? response.data.map((res) => (res === null || res === void 0 ? void 0 : res.result) || undefined)
110
+ : [];
111
+ return [
112
+ ...(result
113
+ ? result.map((x) => (x ? toAsset(x) : x))
114
+ : []),
115
+ ];
116
+ }
117
+ catch (error) {
118
+ console.error(error);
119
+ throw error;
120
+ }
121
+ });
122
+ }
123
+ exports.getAssets = getAssets;
57
124
  function toAsset(result) {
58
- return Object.assign(Object.assign({}, result), { id: new web3_js_1.PublicKey(result.id), grouping: result.grouping && result.grouping.map((g) => (Object.assign(Object.assign({}, g), { group_value: new web3_js_1.PublicKey(g.group_value) }))), compression: Object.assign(Object.assign({}, result.compression), { leafId: result.compression.leaf_id, dataHash: result.compression.data_hash &&
125
+ return Object.assign(Object.assign({}, result), { id: new web3_js_1.PublicKey(result.id), grouping: result.grouping &&
126
+ result.grouping.map((g) => (Object.assign(Object.assign({}, g), { group_value: new web3_js_1.PublicKey(g.group_value) }))), compression: Object.assign(Object.assign({}, result.compression), { leafId: result.compression.leaf_id, dataHash: result.compression.data_hash &&
59
127
  Buffer.from(bs58_1.default.decode(result.compression.data_hash)), creatorHash: result.compression.creator_hash &&
60
128
  Buffer.from(bs58_1.default.decode(result.compression.creator_hash)), assetHash: result.compression.asset_hash &&
61
129
  Buffer.from(bs58_1.default.decode(result.compression.asset_hash)), tree: result.compression.tree && new web3_js_1.PublicKey(result.compression.tree) }), ownership: Object.assign(Object.assign({}, result.ownership), { delegate: result.ownership.delegate && new web3_js_1.PublicKey(result.ownership.delegate), owner: result.ownership.owner && new web3_js_1.PublicKey(result.ownership.owner) }) });
@@ -92,6 +160,41 @@ function getAssetProof(url, assetId) {
92
160
  });
93
161
  }
94
162
  exports.getAssetProof = getAssetProof;
163
+ function getAssetProofBatch(url, assetIds) {
164
+ return __awaiter(this, void 0, void 0, function* () {
165
+ try {
166
+ const response = yield axios_1.default.post(url, {
167
+ jsonrpc: "2.0",
168
+ method: "getAssetProofBatch",
169
+ id: "rpd-op-123",
170
+ params: { ids: assetIds.map((assetId) => assetId.toBase58()) },
171
+ headers: {
172
+ "Cache-Control": "no-cache",
173
+ Pragma: "no-cache",
174
+ Expires: "0",
175
+ },
176
+ });
177
+ const result = response.data.result;
178
+ if (result) {
179
+ return Object.entries(result).reduce((acc, [k, r]) => {
180
+ acc[k] = {
181
+ root: new web3_js_1.PublicKey(r.root),
182
+ proof: r.proof.map((p) => new web3_js_1.PublicKey(p)),
183
+ nodeIndex: r.node_index,
184
+ leaf: new web3_js_1.PublicKey(r.leaf),
185
+ treeId: new web3_js_1.PublicKey(r.tree_id),
186
+ };
187
+ return acc;
188
+ }, {});
189
+ }
190
+ }
191
+ catch (error) {
192
+ console.error(error);
193
+ throw error;
194
+ }
195
+ });
196
+ }
197
+ exports.getAssetProofBatch = getAssetProofBatch;
95
198
  function getAssetsByOwner(url, wallet, { sortBy = { sortBy: "created", sortDirection: "asc" }, limit = 50, page = 1, before = "", after = "", } = {}) {
96
199
  var _a;
97
200
  return __awaiter(this, void 0, void 0, function* () {
@@ -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":"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"}
@@ -8,10 +8,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
11
14
  Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.proofArgsAndAccounts = void 0;
13
16
  const mplAssetAPI_1 = require("./mplAssetAPI");
14
17
  const spl_account_compression_1 = require("@solana/spl-account-compression");
18
+ const web3_js_1 = require("@solana/web3.js");
19
+ const axios_1 = __importDefault(require("axios"));
20
+ const WELL_KNOWN_CANOPY_URL = "https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP/merkles.json";
21
+ let wellKnownCanopyCache;
22
+ const canopyCache = {};
15
23
  function proofArgsAndAccounts({ connection, assetId, assetEndpoint, getAssetFn = mplAssetAPI_1.getAsset, getAssetProofFn = mplAssetAPI_1.getAssetProof, }) {
16
24
  return __awaiter(this, void 0, void 0, function* () {
17
25
  // @ts-ignore
@@ -25,8 +33,40 @@ function proofArgsAndAccounts({ connection, assetId, assetEndpoint, getAssetFn =
25
33
  throw new Error("No asset proof with ID " + assetId.toBase58());
26
34
  }
27
35
  const { compression: { leafId }, } = asset;
28
- const { root, proof, leaf, treeId } = assetProof;
29
- const canopy = yield (yield spl_account_compression_1.ConcurrentMerkleTreeAccount.fromAccountAddress(connection, treeId)).getCanopyDepth();
36
+ const { root, proof, treeId } = assetProof;
37
+ const tree = treeId.toBase58();
38
+ if (!canopyCache[tree] && !(wellKnownCanopyCache === null || wellKnownCanopyCache === void 0 ? void 0 : wellKnownCanopyCache[tree])) {
39
+ canopyCache[tree] = (() => __awaiter(this, void 0, void 0, function* () {
40
+ if (!wellKnownCanopyCache) {
41
+ wellKnownCanopyCache = yield (yield axios_1.default.get(WELL_KNOWN_CANOPY_URL)).data;
42
+ }
43
+ if (wellKnownCanopyCache[tree]) {
44
+ return wellKnownCanopyCache[tree];
45
+ }
46
+ // IMPORTANT! Do not use `ConcurrentMerkleTreeAccount` class. It stupidly deserializes the whole merkle tree,
47
+ // including reading the entire canopy. For large trees this will freeze the wallet app.
48
+ let offset = 0;
49
+ // Construct a new connection to ensure there's no caching. Don't want to cache
50
+ // a giant account in AccountFetchCache accidentally. It also adds uneeded latency
51
+ let newConn = connection;
52
+ //@ts-ignore
53
+ if (connection._accountFetchWrapped) {
54
+ newConn = new web3_js_1.Connection(connection.rpcEndpoint);
55
+ }
56
+ const buffer = (yield newConn.getAccountInfo(treeId)).data;
57
+ const [versionedHeader, offsetIncr] = spl_account_compression_1.concurrentMerkleTreeHeaderBeet.deserialize(buffer);
58
+ offset = offsetIncr;
59
+ // Only 1 version available
60
+ if (versionedHeader.header.__kind !== "V1") {
61
+ throw Error(`Header has unsupported version: ${versionedHeader.header.__kind}`);
62
+ }
63
+ const header = versionedHeader.header.fields[0];
64
+ const [_, offsetIncr2] = (0, spl_account_compression_1.concurrentMerkleTreeBeetFactory)(header.maxDepth, header.maxBufferSize).deserialize(buffer, offset);
65
+ offset = offsetIncr2;
66
+ return (0, spl_account_compression_1.getCanopyDepth)(buffer.byteLength - offset);
67
+ }))();
68
+ }
69
+ const canopy = yield ((wellKnownCanopyCache === null || wellKnownCanopyCache === void 0 ? void 0 : wellKnownCanopyCache[tree]) || canopyCache[tree]);
30
70
  return {
31
71
  asset,
32
72
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"proofArgsAndAccounts.js","sourceRoot":"","sources":["../../src/proofArgsAndAccounts.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA2E;AAC3E,6EAA8E;AAa9E,SAAsB,oBAAoB,CAAC,EACzC,UAAU,EACV,OAAO,EACP,aAAa,EACb,UAAU,GAAG,sBAAQ,EACrB,eAAe,GAAG,2BAAa,GACN;;QAWzB,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,UAAU,CAAC,YAAY,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3D;QACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjE;QACD,MAAM,EACJ,WAAW,EAAE,EAAE,MAAM,EAAE,GACxB,GAAG,KAAK,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,qDAA2B,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CACzE,CAAC,cAAc,EAAE,CAAC;QAEnB,OAAO;YACL,KAAK;YACL,IAAI,EAAE;gBACJ,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAS,CAAC,MAAM,EAAE,CAAC,IAAI;gBACnD,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC,IAAI;gBACzD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;gBACnC,KAAK,EAAE,MAAO;aACf;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,MAAM;aACnB;YACD,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjE,OAAO;oBACL,MAAM,EAAE,CAAC;oBACT,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,KAAK;iBAChB,CAAC;YACJ,CAAC,CAAC;SACH,CAAC;IACJ,CAAC;CAAA;AAtDD,oDAsDC"}
1
+ {"version":3,"file":"proofArgsAndAccounts.js","sourceRoot":"","sources":["../../src/proofArgsAndAccounts.ts"],"names":[],"mappings":"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"}
@@ -365,20 +365,36 @@ function bulkSendTransactions(provider, txs, onProgress, triesRemaining = 10 //
365
365
  // Continually send in bulk while resetting blockhash until we send them all
366
366
  while (true) {
367
367
  const recentBlockhash = yield withRetries(5, () => provider.connection.getLatestBlockhash("confirmed"));
368
- const signedTxs = yield Promise.all(chunk.map((tx) => __awaiter(this, void 0, void 0, function* () {
369
- tx.recentBlockhash = recentBlockhash.blockhash;
370
- // @ts-ignore
371
- const signed = yield provider.wallet.signTransaction(tx);
372
- tx.signatures[0].signature;
373
- return signed;
368
+ const blockhashedTxs = yield Promise.all(chunk.map((tx) => __awaiter(this, void 0, void 0, function* () {
369
+ let isVersionedTransaction = false;
370
+ const legacyTxn = tx;
371
+ const versionedTxn = tx;
372
+ if (!(legacyTxn === null || legacyTxn === void 0 ? void 0 : legacyTxn.partialSign)) {
373
+ isVersionedTransaction = true;
374
+ }
375
+ if (!isVersionedTransaction) {
376
+ legacyTxn.recentBlockhash = recentBlockhash.blockhash;
377
+ return legacyTxn;
378
+ }
379
+ versionedTxn.message.recentBlockhash = recentBlockhash.blockhash;
380
+ return versionedTxn;
374
381
  })));
382
+ const signedTxs = yield provider.wallet.signAllTransactions(blockhashedTxs);
375
383
  const txsWithSigs = signedTxs.map((tx, index) => {
384
+ let isVersionedTransaction = false;
385
+ const legacyTxn = tx;
386
+ const versionedTxn = tx;
387
+ if (!(legacyTxn === null || legacyTxn === void 0 ? void 0 : legacyTxn.partialSign)) {
388
+ isVersionedTransaction = true;
389
+ }
376
390
  return {
377
391
  transaction: chunk[index],
378
- sig: bs58_1.default.encode(tx.signatures[0].signature),
392
+ sig: bs58_1.default.encode(!isVersionedTransaction
393
+ ? legacyTxn.signatures[0].signature
394
+ : versionedTxn.signatures[0]),
379
395
  };
380
396
  });
381
- const confirmedTxs = yield bulkSendRawTransactions(provider.connection, signedTxs.map((s) => s.serialize()), (_a) => {
397
+ const confirmedTxs = yield bulkSendRawTransactions(provider.connection, signedTxs.map((s) => Buffer.from(s.serialize())), (_a) => {
382
398
  var { totalProgress } = _a, rest = __rest(_a, ["totalProgress"]);
383
399
  return onProgress &&
384
400
  onProgress(Object.assign(Object.assign({}, rest), { totalProgress: totalProgress + ret.length + thisRet.length }));
@@ -457,7 +473,7 @@ function bulkSendRawTransactions(connection, txs, onProgress, lastValidBlockHeig
457
473
  throw new Error("Failed to run txs");
458
474
  }
459
475
  ret.push(...txids
460
- .map((txid, idx) => statuses[idx] == null ? null : txid)
476
+ .map((txid, idx) => (statuses[idx] == null ? null : txid))
461
477
  .filter(truthy));
462
478
  chunk = chunk.filter((_, index) => statuses[index] === null);
463
479
  txids = txids.filter((_, index) => statuses[index] === null);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- export * from "./extendBorsh";
2
- export * from "./transaction";
3
- export * from "./anchorError";
4
- export * from "./executeRemoteTxn";
5
- export * from "./utils";
6
- export * from "./token";
7
- export * from "./constants";
8
- export { getAsset, getAssetProof, getAssetsByOwner, searchAssets, } from "./mplAssetAPI";
9
- export { proofArgsAndAccounts } from "./proofArgsAndAccounts";
1
+ export * from './extendBorsh';
2
+ export * from './transaction';
3
+ export * from './anchorError';
4
+ export * from './executeRemoteTxn';
5
+ export * from './utils';
6
+ export * from './token';
7
+ export * from './constants';
8
+ export { getAsset, getAssets, getAssetProof, getAssetsByOwner, searchAssets, getAssetBatch, getAssetProofBatch, } from './mplAssetAPI';
9
+ export { proofArgsAndAccounts } from './proofArgsAndAccounts';
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAQ5B,OAAO,EACL,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAQ5B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -25,11 +25,76 @@ export async function getAsset(url, assetId) {
25
25
  throw error;
26
26
  }
27
27
  }
28
+ export async function getAssetBatch(url, assetIds) {
29
+ try {
30
+ const response = await axios.post(url, {
31
+ jsonrpc: "2.0",
32
+ method: "getAssetBatch",
33
+ id: "rpd-op-123",
34
+ params: { ids: assetIds.map((assetId) => assetId.toBase58()) },
35
+ headers: {
36
+ "Cache-Control": "no-cache",
37
+ Pragma: "no-cache",
38
+ Expires: "0",
39
+ },
40
+ });
41
+ const result = response.data.result;
42
+ if (result) {
43
+ return result.map(toAsset);
44
+ }
45
+ }
46
+ catch (error) {
47
+ console.error(error);
48
+ throw error;
49
+ }
50
+ }
51
+ export async function getAssets(url, assetIds) {
52
+ try {
53
+ if (assetIds.length > 1000) {
54
+ throw new Error(`Can only batch 1000 at a time, was given ${assetIds.length}`);
55
+ }
56
+ const batch = assetIds.map((assetId, i) => ({
57
+ jsonrpc: "2.0",
58
+ id: `get-asset-${i}`,
59
+ method: "getAsset",
60
+ params: {
61
+ id: assetId.toBase58(),
62
+ },
63
+ }));
64
+ const response = await axios({
65
+ url,
66
+ method: "POST",
67
+ headers: {
68
+ "Content-Type": "application/json",
69
+ "Cache-Control": "no-cache",
70
+ Pragma: "no-cache",
71
+ Expires: "0",
72
+ },
73
+ data: JSON.stringify(batch),
74
+ });
75
+ const result = response.data
76
+ ? response.data.map((res) => res?.result || undefined)
77
+ : [];
78
+ return [
79
+ ...(result
80
+ ? result.map((x) => (x ? toAsset(x) : x))
81
+ : []),
82
+ ];
83
+ }
84
+ catch (error) {
85
+ console.error(error);
86
+ throw error;
87
+ }
88
+ }
28
89
  function toAsset(result) {
29
90
  return {
30
91
  ...result,
31
92
  id: new PublicKey(result.id),
32
- grouping: result.grouping && result.grouping.map((g) => ({ ...g, group_value: new PublicKey(g.group_value) })),
93
+ grouping: result.grouping &&
94
+ result.grouping.map((g) => ({
95
+ ...g,
96
+ group_value: new PublicKey(g.group_value),
97
+ })),
33
98
  compression: {
34
99
  ...result.compression,
35
100
  leafId: result.compression.leaf_id,
@@ -77,6 +142,38 @@ export async function getAssetProof(url, assetId) {
77
142
  throw error;
78
143
  }
79
144
  }
145
+ export async function getAssetProofBatch(url, assetIds) {
146
+ try {
147
+ const response = await axios.post(url, {
148
+ jsonrpc: "2.0",
149
+ method: "getAssetProofBatch",
150
+ id: "rpd-op-123",
151
+ params: { ids: assetIds.map((assetId) => assetId.toBase58()) },
152
+ headers: {
153
+ "Cache-Control": "no-cache",
154
+ Pragma: "no-cache",
155
+ Expires: "0",
156
+ },
157
+ });
158
+ const result = response.data.result;
159
+ if (result) {
160
+ return Object.entries(result).reduce((acc, [k, r]) => {
161
+ acc[k] = {
162
+ root: new PublicKey(r.root),
163
+ proof: r.proof.map((p) => new PublicKey(p)),
164
+ nodeIndex: r.node_index,
165
+ leaf: new PublicKey(r.leaf),
166
+ treeId: new PublicKey(r.tree_id),
167
+ };
168
+ return acc;
169
+ }, {});
170
+ }
171
+ }
172
+ catch (error) {
173
+ console.error(error);
174
+ throw error;
175
+ }
176
+ }
80
177
  export async function getAssetsByOwner(url, wallet, { sortBy = { sortBy: "created", sortDirection: "asc" }, limit = 50, page = 1, before = "", after = "", } = {}) {
81
178
  try {
82
179
  const response = await axios.post(url, {
@@ -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":"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"}
@@ -1,5 +1,10 @@
1
1
  import { getAsset, getAssetProof } from "./mplAssetAPI";
2
- import { ConcurrentMerkleTreeAccount } from "@solana/spl-account-compression";
2
+ import { concurrentMerkleTreeBeetFactory, concurrentMerkleTreeHeaderBeet, getCanopyDepth, } from "@solana/spl-account-compression";
3
+ import { Connection } from "@solana/web3.js";
4
+ import axios from "axios";
5
+ const WELL_KNOWN_CANOPY_URL = "https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP/merkles.json";
6
+ let wellKnownCanopyCache;
7
+ const canopyCache = {};
3
8
  export async function proofArgsAndAccounts({ connection, assetId, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
9
  // @ts-ignore
5
10
  const endpoint = assetEndpoint || connection._rpcEndpoint;
@@ -12,8 +17,40 @@ export async function proofArgsAndAccounts({ connection, assetId, assetEndpoint,
12
17
  throw new Error("No asset proof with ID " + assetId.toBase58());
13
18
  }
14
19
  const { compression: { leafId }, } = asset;
15
- const { root, proof, leaf, treeId } = assetProof;
16
- const canopy = await (await ConcurrentMerkleTreeAccount.fromAccountAddress(connection, treeId)).getCanopyDepth();
20
+ const { root, proof, treeId } = assetProof;
21
+ const tree = treeId.toBase58();
22
+ if (!canopyCache[tree] && !wellKnownCanopyCache?.[tree]) {
23
+ canopyCache[tree] = (async () => {
24
+ if (!wellKnownCanopyCache) {
25
+ wellKnownCanopyCache = await (await axios.get(WELL_KNOWN_CANOPY_URL)).data;
26
+ }
27
+ if (wellKnownCanopyCache[tree]) {
28
+ return wellKnownCanopyCache[tree];
29
+ }
30
+ // IMPORTANT! Do not use `ConcurrentMerkleTreeAccount` class. It stupidly deserializes the whole merkle tree,
31
+ // including reading the entire canopy. For large trees this will freeze the wallet app.
32
+ let offset = 0;
33
+ // Construct a new connection to ensure there's no caching. Don't want to cache
34
+ // a giant account in AccountFetchCache accidentally. It also adds uneeded latency
35
+ let newConn = connection;
36
+ //@ts-ignore
37
+ if (connection._accountFetchWrapped) {
38
+ newConn = new Connection(connection.rpcEndpoint);
39
+ }
40
+ const buffer = (await newConn.getAccountInfo(treeId)).data;
41
+ const [versionedHeader, offsetIncr] = concurrentMerkleTreeHeaderBeet.deserialize(buffer);
42
+ offset = offsetIncr;
43
+ // Only 1 version available
44
+ if (versionedHeader.header.__kind !== "V1") {
45
+ throw Error(`Header has unsupported version: ${versionedHeader.header.__kind}`);
46
+ }
47
+ const header = versionedHeader.header.fields[0];
48
+ const [_, offsetIncr2] = concurrentMerkleTreeBeetFactory(header.maxDepth, header.maxBufferSize).deserialize(buffer, offset);
49
+ offset = offsetIncr2;
50
+ return getCanopyDepth(buffer.byteLength - offset);
51
+ })();
52
+ }
53
+ const canopy = await (wellKnownCanopyCache?.[tree] || canopyCache[tree]);
17
54
  return {
18
55
  asset,
19
56
  args: {
@@ -1 +1 @@
1
- {"version":3,"file":"proofArgsAndAccounts.js","sourceRoot":"","sources":["../../../src/proofArgsAndAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAa9E,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,UAAU,EACV,OAAO,EACP,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GACN;IAWzB,aAAa;IACb,MAAM,QAAQ,GAAG,aAAa,IAAI,UAAU,CAAC,YAAY,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D;IACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KACjE;IACD,MAAM,EACJ,WAAW,EAAE,EAAE,MAAM,EAAE,GACxB,GAAG,KAAK,CAAC;IACV,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,2BAA2B,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CACzE,CAAC,cAAc,EAAE,CAAC;IAEnB,OAAO;QACL,KAAK;QACL,IAAI,EAAE;YACJ,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAS,CAAC,MAAM,EAAE,CAAC,IAAI;YACnD,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC,IAAI;YACzD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,KAAK,EAAE,MAAO;SACf;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,MAAM;SACnB;QACD,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACjE,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"proofArgsAndAccounts.js","sourceRoot":"","sources":["../../../src/proofArgsAndAccounts.ts"],"names":[],"mappings":"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"}