@helium/spl-utils 0.2.22-next.33 → 0.2.22-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 (62) hide show
  1. package/lib/cjs/anchorError.js +265 -0
  2. package/lib/cjs/anchorError.js.map +1 -0
  3. package/lib/cjs/constants.js +11 -0
  4. package/lib/cjs/constants.js.map +1 -0
  5. package/lib/cjs/executeRemoteTxn.js +109 -0
  6. package/lib/cjs/executeRemoteTxn.js.map +1 -0
  7. package/lib/cjs/extendBorsh.js +33 -0
  8. package/lib/cjs/extendBorsh.js.map +1 -0
  9. package/lib/cjs/index.js +33 -0
  10. package/lib/cjs/index.js.map +1 -0
  11. package/lib/cjs/mplAssetAPI.js +188 -0
  12. package/lib/cjs/mplAssetAPI.js.map +1 -0
  13. package/lib/cjs/proofArgsAndAccounts.js +52 -0
  14. package/lib/cjs/proofArgsAndAccounts.js.map +1 -0
  15. package/lib/cjs/token.js +235 -0
  16. package/lib/cjs/token.js.map +1 -0
  17. package/lib/cjs/transaction.js +479 -0
  18. package/lib/cjs/transaction.js.map +1 -0
  19. package/lib/cjs/utils.js +116 -0
  20. package/lib/cjs/utils.js.map +1 -0
  21. package/lib/esm/src/anchorError.js +262 -0
  22. package/lib/esm/src/anchorError.js.map +1 -0
  23. package/lib/esm/src/constants.js +8 -0
  24. package/lib/esm/src/constants.js.map +1 -0
  25. package/lib/esm/src/executeRemoteTxn.js +79 -0
  26. package/lib/esm/src/executeRemoteTxn.js.map +1 -0
  27. package/lib/esm/src/extendBorsh.js +26 -0
  28. package/lib/esm/src/extendBorsh.js.map +1 -0
  29. package/lib/esm/src/index.js +10 -0
  30. package/lib/esm/src/index.js.map +1 -0
  31. package/lib/esm/src/mplAssetAPI.js +167 -0
  32. package/lib/esm/src/mplAssetAPI.js.map +1 -0
  33. package/lib/esm/src/proofArgsAndAccounts.js +37 -0
  34. package/lib/esm/src/proofArgsAndAccounts.js.map +1 -0
  35. package/lib/esm/src/token.js +208 -0
  36. package/lib/esm/src/token.js.map +1 -0
  37. package/lib/esm/src/transaction.js +415 -0
  38. package/lib/esm/src/transaction.js.map +1 -0
  39. package/lib/esm/src/utils.js +73 -0
  40. package/lib/esm/src/utils.js.map +1 -0
  41. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -0
  42. package/lib/types/src/anchorError.d.ts +9 -0
  43. package/lib/types/src/anchorError.d.ts.map +1 -0
  44. package/lib/types/src/constants.d.ts +7 -0
  45. package/lib/types/src/constants.d.ts.map +1 -0
  46. package/lib/types/src/executeRemoteTxn.d.ts +23 -0
  47. package/lib/types/src/executeRemoteTxn.d.ts.map +1 -0
  48. package/lib/types/src/extendBorsh.d.ts +3 -0
  49. package/lib/types/src/extendBorsh.d.ts.map +1 -0
  50. package/lib/types/src/index.d.ts +12 -0
  51. package/lib/types/src/index.d.ts.map +1 -0
  52. package/lib/types/src/mplAssetAPI.d.ts +70 -0
  53. package/lib/types/src/mplAssetAPI.d.ts.map +1 -0
  54. package/lib/types/src/proofArgsAndAccounts.d.ts +21 -0
  55. package/lib/types/src/proofArgsAndAccounts.d.ts.map +1 -0
  56. package/lib/types/src/token.d.ts +21 -0
  57. package/lib/types/src/token.d.ts.map +1 -0
  58. package/lib/types/src/transaction.d.ts +37 -0
  59. package/lib/types/src/transaction.d.ts.map +1 -0
  60. package/lib/types/src/utils.d.ts +19 -0
  61. package/lib/types/src/utils.d.ts.map +1 -0
  62. package/package.json +4 -4
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ // TODO: Go back to anchor once they handle:
3
+ // Error: Raw transaction 4nZwiENzNwKLfCBtDirAr5xE71GUqsNKsUNafSUHiEUkWhqbVgEmximswnDFp4ZFFy5C4NXJ75qCKP6nnWBSmFey failed ({"err":{"InstructionError":[4,{"Custom":1}]}})
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.ProgramError = exports.SystemErrorMessage = void 0;
6
+ const LangErrorCode = {
7
+ // Instructions.
8
+ InstructionMissing: 100,
9
+ InstructionFallbackNotFound: 101,
10
+ InstructionDidNotDeserialize: 102,
11
+ InstructionDidNotSerialize: 103,
12
+ // IDL instructions.
13
+ IdlInstructionStub: 1000,
14
+ IdlInstructionInvalidProgram: 1001,
15
+ // Constraints.
16
+ ConstraintMut: 2000,
17
+ ConstraintHasOne: 2001,
18
+ ConstraintSigner: 2002,
19
+ ConstraintRaw: 2003,
20
+ ConstraintOwner: 2004,
21
+ ConstraintRentExempt: 2005,
22
+ ConstraintSeeds: 2006,
23
+ ConstraintExecutable: 2007,
24
+ ConstraintState: 2008,
25
+ ConstraintAssociated: 2009,
26
+ ConstraintAssociatedInit: 2010,
27
+ ConstraintClose: 2011,
28
+ ConstraintAddress: 2012,
29
+ ConstraintZero: 2013,
30
+ ConstraintTokenMint: 2014,
31
+ ConstraintTokenOwner: 2015,
32
+ ConstraintMintMintAuthority: 2016,
33
+ ConstraintMintFreezeAuthority: 2017,
34
+ ConstraintMintDecimals: 2018,
35
+ ConstraintSpace: 2019,
36
+ // Accounts.
37
+ AccountDiscriminatorAlreadySet: 3000,
38
+ AccountDiscriminatorNotFound: 3001,
39
+ AccountDiscriminatorMismatch: 3002,
40
+ AccountDidNotDeserialize: 3003,
41
+ AccountDidNotSerialize: 3004,
42
+ AccountNotEnoughKeys: 3005,
43
+ AccountNotMutable: 3006,
44
+ AccountOwnedByWrongProgram: 3007,
45
+ InvalidProgramId: 3008,
46
+ InvalidProgramExecutable: 3009,
47
+ AccountNotSigner: 3010,
48
+ AccountNotSystemOwned: 3011,
49
+ AccountNotInitialized: 3012,
50
+ AccountNotProgramData: 3013,
51
+ AccountNotAssociatedTokenAccount: 3014,
52
+ // State.
53
+ StateInvalidAddress: 4000,
54
+ // Used for APIs that shouldn't be used anymore.
55
+ Deprecated: 5000,
56
+ };
57
+ exports.SystemErrorMessage = new Map([
58
+ [
59
+ 1,
60
+ "Insufficient balance."
61
+ ], [
62
+ 2,
63
+ "Invalid instruction data."
64
+ ], [
65
+ 3,
66
+ "Invalid account data"
67
+ ], [
68
+ 4,
69
+ "Account data too small"
70
+ ], [
71
+ 5,
72
+ "Insufficient funds"
73
+ ], [
74
+ 6,
75
+ "Incorrect prgoram id"
76
+ ], [
77
+ 7,
78
+ "Missing required signature"
79
+ ], [
80
+ 8,
81
+ "Account already initialized"
82
+ ], [
83
+ 9,
84
+ "Attempt to operate on an account that was not yet initialized"
85
+ ], [
86
+ 10,
87
+ "Not enough account keys provided"
88
+ ], [
89
+ 11,
90
+ "Account borrow failed, already borrowed"
91
+ ], [
92
+ 12,
93
+ "Max seed length exceeded"
94
+ ], [
95
+ 13,
96
+ "Invalid seeds"
97
+ ], [
98
+ 14,
99
+ "Borsh IO Error"
100
+ ], [
101
+ 15,
102
+ "Account not rent exempt"
103
+ ]
104
+ ]);
105
+ const LangErrorMessage = new Map([
106
+ // Instructions.
107
+ [
108
+ LangErrorCode.InstructionMissing,
109
+ "8 byte instruction identifier not provided",
110
+ ],
111
+ [
112
+ LangErrorCode.InstructionFallbackNotFound,
113
+ "Fallback functions are not supported",
114
+ ],
115
+ [
116
+ LangErrorCode.InstructionDidNotDeserialize,
117
+ "The program could not deserialize the given instruction",
118
+ ],
119
+ [
120
+ LangErrorCode.InstructionDidNotSerialize,
121
+ "The program could not serialize the given instruction",
122
+ ],
123
+ // Idl instructions.
124
+ [
125
+ LangErrorCode.IdlInstructionStub,
126
+ "The program was compiled without idl instructions",
127
+ ],
128
+ [
129
+ LangErrorCode.IdlInstructionInvalidProgram,
130
+ "The transaction was given an invalid program for the IDL instruction",
131
+ ],
132
+ // Constraints.
133
+ [LangErrorCode.ConstraintMut, "A mut constraint was violated"],
134
+ [LangErrorCode.ConstraintHasOne, "A has_one constraint was violated"],
135
+ [LangErrorCode.ConstraintSigner, "A signer constraint was violated"],
136
+ [LangErrorCode.ConstraintRaw, "A raw constraint was violated"],
137
+ [LangErrorCode.ConstraintOwner, "An owner constraint was violated"],
138
+ [LangErrorCode.ConstraintRentExempt, "A rent exempt constraint was violated"],
139
+ [LangErrorCode.ConstraintSeeds, "A seeds constraint was violated"],
140
+ [LangErrorCode.ConstraintExecutable, "An executable constraint was violated"],
141
+ [LangErrorCode.ConstraintState, "A state constraint was violated"],
142
+ [LangErrorCode.ConstraintAssociated, "An associated constraint was violated"],
143
+ [
144
+ LangErrorCode.ConstraintAssociatedInit,
145
+ "An associated init constraint was violated",
146
+ ],
147
+ [LangErrorCode.ConstraintClose, "A close constraint was violated"],
148
+ [LangErrorCode.ConstraintAddress, "An address constraint was violated"],
149
+ [LangErrorCode.ConstraintZero, "Expected zero account discriminant"],
150
+ [LangErrorCode.ConstraintTokenMint, "A token mint constraint was violated"],
151
+ [LangErrorCode.ConstraintTokenOwner, "A token owner constraint was violated"],
152
+ [
153
+ LangErrorCode.ConstraintMintMintAuthority,
154
+ "A mint mint authority constraint was violated",
155
+ ],
156
+ [
157
+ LangErrorCode.ConstraintMintFreezeAuthority,
158
+ "A mint freeze authority constraint was violated",
159
+ ],
160
+ [
161
+ LangErrorCode.ConstraintMintDecimals,
162
+ "A mint decimals constraint was violated",
163
+ ],
164
+ [LangErrorCode.ConstraintSpace, "A space constraint was violated"],
165
+ // Accounts.
166
+ [
167
+ LangErrorCode.AccountDiscriminatorAlreadySet,
168
+ "The account discriminator was already set on this account",
169
+ ],
170
+ [
171
+ LangErrorCode.AccountDiscriminatorNotFound,
172
+ "No 8 byte discriminator was found on the account",
173
+ ],
174
+ [
175
+ LangErrorCode.AccountDiscriminatorMismatch,
176
+ "8 byte discriminator did not match what was expected",
177
+ ],
178
+ [LangErrorCode.AccountDidNotDeserialize, "Failed to deserialize the account"],
179
+ [LangErrorCode.AccountDidNotSerialize, "Failed to serialize the account"],
180
+ [
181
+ LangErrorCode.AccountNotEnoughKeys,
182
+ "Not enough account keys given to the instruction",
183
+ ],
184
+ [LangErrorCode.AccountNotMutable, "The given account is not mutable"],
185
+ [
186
+ LangErrorCode.AccountOwnedByWrongProgram,
187
+ "The given account is owned by a different program than expected",
188
+ ],
189
+ [LangErrorCode.InvalidProgramId, "Program ID was not as expected"],
190
+ [LangErrorCode.InvalidProgramExecutable, "Program account is not executable"],
191
+ [LangErrorCode.AccountNotSigner, "The given account did not sign"],
192
+ [
193
+ LangErrorCode.AccountNotSystemOwned,
194
+ "The given account is not owned by the system program",
195
+ ],
196
+ [
197
+ LangErrorCode.AccountNotInitialized,
198
+ "The program expected this account to be already initialized",
199
+ ],
200
+ [
201
+ LangErrorCode.AccountNotProgramData,
202
+ "The given account is not a program data account",
203
+ ],
204
+ [
205
+ LangErrorCode.AccountNotAssociatedTokenAccount,
206
+ "The given account is not the associated token account",
207
+ ],
208
+ // State.
209
+ [
210
+ LangErrorCode.StateInvalidAddress,
211
+ "The given state account does not have the correct address",
212
+ ],
213
+ // Misc.
214
+ [
215
+ LangErrorCode.Deprecated,
216
+ "The API being used is deprecated and should no longer be used",
217
+ ],
218
+ ]);
219
+ // An error from a user defined program.
220
+ class ProgramError {
221
+ constructor(code, msg, ...params) {
222
+ this.code = code;
223
+ this.msg = msg;
224
+ }
225
+ static parse(err, idlErrors) {
226
+ var _a;
227
+ let errorCode = null;
228
+ if (err.InstructionError) {
229
+ if (typeof err.InstructionError[0] == "number") {
230
+ errorCode = err.InstructionError[0];
231
+ }
232
+ if ((_a = err.InstructionError[1]) === null || _a === void 0 ? void 0 : _a.Custom) {
233
+ errorCode = err.InstructionError[1].Custom;
234
+ }
235
+ }
236
+ if (errorCode == null) {
237
+ // TODO: don't rely on the error string. web3.js should preserve the error
238
+ // code information instead of giving us an untyped string.
239
+ let components = err.toString().split("custom program error: ");
240
+ if (errorCode == null && components.length !== 2) {
241
+ return null;
242
+ }
243
+ try {
244
+ errorCode = parseInt(components[1]);
245
+ }
246
+ catch (parseErr) {
247
+ return null;
248
+ }
249
+ }
250
+ let errorMsg = (err.InstructionErr && err.InstructionErr[1]) ||
251
+ idlErrors.get(errorCode) ||
252
+ LangErrorMessage.get(errorCode) ||
253
+ exports.SystemErrorMessage.get(errorCode);
254
+ if (errorMsg !== undefined) {
255
+ return new ProgramError(errorCode, errorMsg, errorCode + ": " + errorMsg);
256
+ }
257
+ // Unable to parse the error. Just return the untranslated error.
258
+ return null;
259
+ }
260
+ toString() {
261
+ return this.msg;
262
+ }
263
+ }
264
+ exports.ProgramError = ProgramError;
265
+ //# sourceMappingURL=anchorError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchorError.js","sourceRoot":"","sources":["../../src/anchorError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
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;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ exports.DC_MINT = new web3_js_1.PublicKey("dcuc8Amr83Wz27ZkQ2K9NS6r8zRpf1J6cvArEBDZDmm");
6
+ exports.HNT_MINT = new web3_js_1.PublicKey("hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux");
7
+ exports.MOBILE_MINT = new web3_js_1.PublicKey("mb1eu7TzEc71KxDpsmsKoucSSuuoGLv1drys1oP2jh6");
8
+ exports.IOT_MINT = new web3_js_1.PublicKey("iotEVVZLEywoTn1QdwNPddxPWszn3zFhEot3MfL9fns");
9
+ // TODO: Replace with actual HNT feed
10
+ exports.HNT_PYTH_PRICE_FEED = new web3_js_1.PublicKey("6Eg8YdfFJQF2HHonzPUBSCCmyUEhrStg9VBLK957sBe6");
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,OAAO,GAAG,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAEvE,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"}
@@ -0,0 +1,109 @@
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.getAndSignRemoteTxns = exports.executeTxnsInOrder = exports.signOnlyNeeded = exports.executeRemoteTxn = void 0;
16
+ const web3_js_1 = require("@solana/web3.js");
17
+ const anchorError_1 = require("./anchorError");
18
+ const axios_1 = __importDefault(require("axios"));
19
+ const transaction_1 = require("./transaction");
20
+ function promiseAllInOrder(it) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ let ret = [];
23
+ for (const i of it) {
24
+ ret.push(yield i());
25
+ }
26
+ return ret;
27
+ });
28
+ }
29
+ /**
30
+ * Execute transactions from a remote server (either single or multiple transactions)
31
+ * @param provider
32
+ * @param url
33
+ * @param body
34
+ * @param errors
35
+ * @returns
36
+ */
37
+ function executeRemoteTxn(provider, url, body, errors = new Map()) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const txnsToExec = yield getAndSignRemoteTxns(provider, url, body);
40
+ return executeTxnsInOrder(provider, txnsToExec, errors);
41
+ });
42
+ }
43
+ exports.executeRemoteTxn = executeRemoteTxn;
44
+ function signOnlyNeeded(provider, rawTxns) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ const txns = rawTxns.map((t) => web3_js_1.Transaction.from(t));
47
+ const needToSign = txns.filter((tx) => tx.signatures.some((sig) => sig.publicKey.equals(provider.wallet.publicKey)));
48
+ const signedTxns = yield provider.wallet.signAllTransactions(needToSign);
49
+ const txnsToExec = txns.map((txn, idx) => {
50
+ const index = needToSign.indexOf(txn);
51
+ if (index >= 0) {
52
+ return signedTxns[index].serialize({
53
+ requireAllSignatures: false,
54
+ verifySignatures: false,
55
+ });
56
+ }
57
+ return Buffer.from(rawTxns[idx]);
58
+ });
59
+ return txnsToExec;
60
+ });
61
+ }
62
+ exports.signOnlyNeeded = signOnlyNeeded;
63
+ function executeTxnsInOrder(provider, txns, errors = new Map()) {
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ try {
66
+ return [
67
+ ...(yield promiseAllInOrder(txns.map((txn) => () => __awaiter(this, void 0, void 0, function* () {
68
+ const { txid } = yield (0, transaction_1.sendAndConfirmWithRetry)(provider.connection, txn, {
69
+ skipPreflight: true,
70
+ }, "confirmed");
71
+ return txid;
72
+ })))),
73
+ ];
74
+ }
75
+ catch (e) {
76
+ const wrappedE = anchorError_1.ProgramError.parse(e, errors);
77
+ throw wrappedE == null ? e : wrappedE;
78
+ }
79
+ });
80
+ }
81
+ exports.executeTxnsInOrder = executeTxnsInOrder;
82
+ /**
83
+ * Get and sign transactions from a remote server (either single or multiple transactions)
84
+ * @param provider
85
+ * @param url
86
+ * @param body
87
+ * @param errors
88
+ * @returns
89
+ */
90
+ function getAndSignRemoteTxns(provider, url, body) {
91
+ var _a, _b;
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ const resp = yield axios_1.default.post(url, body, {
95
+ responseType: "json",
96
+ });
97
+ const rawTxns = Array.isArray(resp.data) ? resp.data : [resp.data];
98
+ return yield signOnlyNeeded(provider, rawTxns.map((t) => t.data));
99
+ }
100
+ catch (e) {
101
+ if ((_b = (_a = e.response) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.message) {
102
+ throw new Error(e.response.data.message);
103
+ }
104
+ throw e;
105
+ }
106
+ });
107
+ }
108
+ exports.getAndSignRemoteTxns = getAndSignRemoteTxns;
109
+ //# sourceMappingURL=executeRemoteTxn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeRemoteTxn.js","sourceRoot":"","sources":["../../src/executeRemoteTxn.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.extendBorsh = void 0;
7
+ const web3_js_1 = require("@solana/web3.js");
8
+ const borsh_1 = require("borsh");
9
+ // @ts-ignore
10
+ const bs58_1 = __importDefault(require("bs58"));
11
+ const extendBorsh = () => {
12
+ borsh_1.BinaryReader.prototype.readPubkey = function () {
13
+ const reader = this;
14
+ const array = reader.readFixedArray(32);
15
+ return new web3_js_1.PublicKey(array);
16
+ };
17
+ borsh_1.BinaryWriter.prototype.writePubkey = function (value) {
18
+ const writer = this;
19
+ writer.writeFixedArray(value.toBuffer());
20
+ };
21
+ borsh_1.BinaryReader.prototype.readPubkeyAsString = function () {
22
+ const reader = this;
23
+ const array = reader.readFixedArray(32);
24
+ return bs58_1.default.encode(array);
25
+ };
26
+ borsh_1.BinaryWriter.prototype.writePubkeyAsString = function (value) {
27
+ const writer = this;
28
+ writer.writeFixedArray(bs58_1.default.decode(value));
29
+ };
30
+ };
31
+ exports.extendBorsh = extendBorsh;
32
+ (0, exports.extendBorsh)();
33
+ //# sourceMappingURL=extendBorsh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendBorsh.js","sourceRoot":"","sources":["../../src/extendBorsh.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,iCAAmD;AACnD,aAAa;AACb,gDAA0B;AAInB,MAAM,WAAW,GAAG,GAAG,EAAE;IAC7B,oBAAY,CAAC,SAAiB,CAAC,UAAU,GAAG;QAC3C,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IAED,oBAAY,CAAC,SAAiB,CAAC,WAAW,GAAG,UAAU,KAAgB;QACtE,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAED,oBAAY,CAAC,SAAiB,CAAC,kBAAkB,GAAG;QACnD,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACxC,OAAO,cAAM,CAAC,MAAM,CAAC,KAAK,CAAoB,CAAC;IACjD,CAAC,CAAC;IAED,oBAAY,CAAC,SAAiB,CAAC,mBAAmB,GAAG,UACpD,KAAsB;QAEtB,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,CAAC,eAAe,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,WAAW,eAwBtB;AAEF,IAAA,mBAAW,GAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.proofArgsAndAccounts = exports.searchAssets = exports.getAssetsByOwner = exports.getAssetProof = exports.getAssets = exports.getAsset = void 0;
18
+ __exportStar(require("./extendBorsh"), exports);
19
+ __exportStar(require("./transaction"), exports);
20
+ __exportStar(require("./anchorError"), exports);
21
+ __exportStar(require("./executeRemoteTxn"), exports);
22
+ __exportStar(require("./utils"), exports);
23
+ __exportStar(require("./token"), exports);
24
+ __exportStar(require("./constants"), exports);
25
+ var mplAssetAPI_1 = require("./mplAssetAPI");
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; } });
28
+ Object.defineProperty(exports, "getAssetProof", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetProof; } });
29
+ Object.defineProperty(exports, "getAssetsByOwner", { enumerable: true, get: function () { return mplAssetAPI_1.getAssetsByOwner; } });
30
+ Object.defineProperty(exports, "searchAssets", { enumerable: true, get: function () { return mplAssetAPI_1.searchAssets; } });
31
+ var proofArgsAndAccounts_1 = require("./proofArgsAndAccounts");
32
+ Object.defineProperty(exports, "proofArgsAndAccounts", { enumerable: true, get: function () { return proofArgsAndAccounts_1.proofArgsAndAccounts; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,6CAMuB;AALrB,uGAAA,QAAQ,OAAA;AACR,wGAAA,SAAS,OAAA;AACT,4GAAA,aAAa,OAAA;AACb,+GAAA,gBAAgB,OAAA;AAChB,2GAAA,YAAY,OAAA;AAGd,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,188 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.searchAssets = exports.getAssetsByOwner = exports.getAssetProof = exports.getAssets = exports.getAsset = void 0;
27
+ const web3_js_1 = require("@solana/web3.js");
28
+ const axios_1 = __importDefault(require("axios"));
29
+ // @ts-ignore
30
+ const bs58_1 = __importDefault(require("bs58"));
31
+ function getAsset(url, assetId) {
32
+ return __awaiter(this, void 0, void 0, function* () {
33
+ try {
34
+ const response = yield axios_1.default.post(url, {
35
+ jsonrpc: '2.0',
36
+ method: 'getAsset',
37
+ id: 'rpd-op-123',
38
+ params: { id: assetId.toBase58() },
39
+ headers: {
40
+ 'Cache-Control': 'no-cache',
41
+ Pragma: 'no-cache',
42
+ Expires: '0',
43
+ },
44
+ });
45
+ const result = response.data.result;
46
+ if (result) {
47
+ return toAsset(result);
48
+ }
49
+ }
50
+ catch (error) {
51
+ console.error(error);
52
+ throw error;
53
+ }
54
+ });
55
+ }
56
+ exports.getAsset = getAsset;
57
+ function getAssets(url, assetIds) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ try {
60
+ if (assetIds.length > 1000) {
61
+ throw new Error(`Can only batch 1000 at a time, was given ${assetIds.length}`);
62
+ }
63
+ const batch = assetIds.map((assetId, i) => ({
64
+ jsonrpc: '2.0',
65
+ id: `get-asset-${i}`,
66
+ method: 'getAsset',
67
+ params: {
68
+ id: assetId.toBase58(),
69
+ },
70
+ }));
71
+ const response = yield (0, axios_1.default)({
72
+ url,
73
+ method: 'POST',
74
+ headers: {
75
+ 'Content-Type': 'application/json',
76
+ 'Cache-Control': 'no-cache',
77
+ Pragma: 'no-cache',
78
+ Expires: '0',
79
+ },
80
+ data: JSON.stringify(batch),
81
+ });
82
+ const result = response.data
83
+ ? response.data.map((res) => (res === null || res === void 0 ? void 0 : res.result) || undefined)
84
+ : [];
85
+ return [
86
+ ...(result
87
+ ? result.map((x) => (x ? toAsset(x) : x))
88
+ : []),
89
+ ];
90
+ }
91
+ catch (error) {
92
+ console.error(error);
93
+ throw error;
94
+ }
95
+ });
96
+ }
97
+ exports.getAssets = getAssets;
98
+ function toAsset(result) {
99
+ return Object.assign(Object.assign({}, result), { id: new web3_js_1.PublicKey(result.id), grouping: result.grouping &&
100
+ 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 &&
101
+ Buffer.from(bs58_1.default.decode(result.compression.data_hash)), creatorHash: result.compression.creator_hash &&
102
+ Buffer.from(bs58_1.default.decode(result.compression.creator_hash)), assetHash: result.compression.asset_hash &&
103
+ 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) }) });
104
+ }
105
+ function getAssetProof(url, assetId) {
106
+ return __awaiter(this, void 0, void 0, function* () {
107
+ try {
108
+ const response = yield axios_1.default.post(url, {
109
+ jsonrpc: '2.0',
110
+ method: 'getAssetProof',
111
+ id: 'rpd-op-123',
112
+ params: { id: assetId.toBase58() },
113
+ headers: {
114
+ 'Cache-Control': 'no-cache',
115
+ Pragma: 'no-cache',
116
+ Expires: '0',
117
+ },
118
+ });
119
+ const result = response.data.result;
120
+ if (result) {
121
+ return {
122
+ root: new web3_js_1.PublicKey(result.root),
123
+ proof: result.proof.map((p) => new web3_js_1.PublicKey(p)),
124
+ nodeIndex: result.node_index,
125
+ leaf: new web3_js_1.PublicKey(result.leaf),
126
+ treeId: new web3_js_1.PublicKey(result.tree_id),
127
+ };
128
+ }
129
+ }
130
+ catch (error) {
131
+ console.error(error);
132
+ throw error;
133
+ }
134
+ });
135
+ }
136
+ exports.getAssetProof = getAssetProof;
137
+ function getAssetsByOwner(url, wallet, { sortBy = { sortBy: 'created', sortDirection: 'asc' }, limit = 50, page = 1, before = '', after = '', } = {}) {
138
+ var _a;
139
+ return __awaiter(this, void 0, void 0, function* () {
140
+ try {
141
+ const response = yield axios_1.default.post(url, {
142
+ jsonrpc: '2.0',
143
+ method: 'getAssetsByOwner',
144
+ id: 'rpd-op-123',
145
+ params: [wallet, sortBy, limit, page, before, after],
146
+ headers: {
147
+ 'Cache-Control': 'no-cache',
148
+ Pragma: 'no-cache',
149
+ Expires: '0',
150
+ },
151
+ });
152
+ return (_a = response.data.result) === null || _a === void 0 ? void 0 : _a.items.map(toAsset);
153
+ }
154
+ catch (error) {
155
+ console.error(error);
156
+ throw error;
157
+ }
158
+ });
159
+ }
160
+ exports.getAssetsByOwner = getAssetsByOwner;
161
+ function searchAssets(url, _a) {
162
+ var _b;
163
+ var { creatorVerified = true, sortBy = { sortBy: 'created', sortDirection: 'asc' }, page = 1 } = _a, rest = __rest(_a, ["creatorVerified", "sortBy", "page"]);
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: 'searchAssets',
169
+ id: 'get-assets-op-1',
170
+ params: Object.assign({ page,
171
+ creatorVerified,
172
+ sortBy }, rest),
173
+ headers: {
174
+ 'Cache-Control': 'no-cache',
175
+ Pragma: 'no-cache',
176
+ Expires: '0',
177
+ },
178
+ });
179
+ return (_b = response.data.result) === null || _b === void 0 ? void 0 : _b.items.map(toAsset);
180
+ }
181
+ catch (error) {
182
+ console.error(error);
183
+ throw error;
184
+ }
185
+ });
186
+ }
187
+ exports.searchAssets = searchAssets;
188
+ //# sourceMappingURL=mplAssetAPI.js.map