@solana/web3.js 2.0.0-experimental.874d89c → 2.0.0-experimental.87c9652

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.
@@ -154,3 +154,5 @@ Object.keys(keys).forEach(function (k) {
154
154
  get: function () { return keys[k]; }
155
155
  });
156
156
  });
157
+ //# sourceMappingURL=out.js.map
158
+ //# sourceMappingURL=index.browser.cjs.map
@@ -135,3 +135,5 @@ function createDefaultRpcTransport(config) {
135
135
  }
136
136
 
137
137
  export { createDefaultRpcTransport, createSolanaRpc };
138
+ //# sourceMappingURL=out.js.map
139
+ //# sourceMappingURL=index.browser.js.map
@@ -162,6 +162,70 @@ this.globalThis.solanaWeb3 = (function (exports) {
162
162
  // ../keys/dist/index.browser.js
163
163
  init_env_shim();
164
164
 
165
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers@0.8.5/node_modules/@metaplex-foundation/umi-serializers/dist/esm/index.mjs
166
+ init_env_shim();
167
+
168
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/dist/esm/index.mjs
169
+ init_env_shim();
170
+
171
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/dist/esm/bytes.mjs
172
+ init_env_shim();
173
+ var mergeBytes = (bytesArr) => {
174
+ const totalLength = bytesArr.reduce((total, arr) => total + arr.length, 0);
175
+ const result = new Uint8Array(totalLength);
176
+ let offset = 0;
177
+ bytesArr.forEach((arr) => {
178
+ result.set(arr, offset);
179
+ offset += arr.length;
180
+ });
181
+ return result;
182
+ };
183
+ var padBytes = (bytes, length) => {
184
+ if (bytes.length >= length)
185
+ return bytes;
186
+ const paddedBytes = new Uint8Array(length).fill(0);
187
+ paddedBytes.set(bytes);
188
+ return paddedBytes;
189
+ };
190
+ var fixBytes = (bytes, length) => padBytes(bytes.slice(0, length), length);
191
+
192
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/dist/esm/errors.mjs
193
+ init_env_shim();
194
+ var DeserializingEmptyBufferError = class extends Error {
195
+ constructor(serializer) {
196
+ super(`Serializer [${serializer}] cannot deserialize empty buffers.`);
197
+ __publicField(this, "name", "DeserializingEmptyBufferError");
198
+ }
199
+ };
200
+ var NotEnoughBytesError = class extends Error {
201
+ constructor(serializer, expected, actual) {
202
+ super(`Serializer [${serializer}] expected ${expected} bytes, got ${actual}.`);
203
+ __publicField(this, "name", "NotEnoughBytesError");
204
+ }
205
+ };
206
+
207
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/dist/esm/fixSerializer.mjs
208
+ init_env_shim();
209
+ function fixSerializer(serializer, fixedBytes, description) {
210
+ return {
211
+ description: description ?? `fixed(${fixedBytes}, ${serializer.description})`,
212
+ fixedSize: fixedBytes,
213
+ maxSize: fixedBytes,
214
+ serialize: (value) => fixBytes(serializer.serialize(value), fixedBytes),
215
+ deserialize: (buffer, offset = 0) => {
216
+ buffer = buffer.slice(offset, offset + fixedBytes);
217
+ if (buffer.length < fixedBytes) {
218
+ throw new NotEnoughBytesError("fixSerializer", fixedBytes, buffer.length);
219
+ }
220
+ if (serializer.fixedSize !== null) {
221
+ buffer = fixBytes(buffer, serializer.fixedSize);
222
+ }
223
+ const [value] = serializer.deserialize(buffer, 0);
224
+ return [value, offset + fixedBytes];
225
+ }
226
+ };
227
+ }
228
+
165
229
  // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/dist/esm/index.mjs
166
230
  init_env_shim();
167
231
 
@@ -237,7 +301,151 @@ this.globalThis.solanaWeb3 = (function (exports) {
237
301
  init_env_shim();
238
302
  var base58 = baseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");
239
303
 
240
- // ../keys/dist/index.browser.js
304
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/dist/esm/nullCharacters.mjs
305
+ init_env_shim();
306
+ var removeNullCharacters = (value) => (
307
+ // eslint-disable-next-line no-control-regex
308
+ value.replace(/\u0000/g, "")
309
+ );
310
+
311
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/dist/esm/utf8.mjs
312
+ init_env_shim();
313
+ var utf8 = {
314
+ description: "utf8",
315
+ fixedSize: null,
316
+ maxSize: null,
317
+ serialize(value) {
318
+ return new TextEncoder().encode(value);
319
+ },
320
+ deserialize(buffer, offset = 0) {
321
+ const value = new TextDecoder().decode(buffer.slice(offset));
322
+ return [removeNullCharacters(value), buffer.length];
323
+ }
324
+ };
325
+
326
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/dist/esm/index.mjs
327
+ init_env_shim();
328
+
329
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/dist/esm/common.mjs
330
+ init_env_shim();
331
+ var Endian;
332
+ (function(Endian2) {
333
+ Endian2["Little"] = "le";
334
+ Endian2["Big"] = "be";
335
+ })(Endian || (Endian = {}));
336
+
337
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/dist/esm/errors.mjs
338
+ init_env_shim();
339
+ var NumberOutOfRangeError = class extends RangeError {
340
+ constructor(serializer, min, max, actual) {
341
+ super(`Serializer [${serializer}] expected number to be between ${min} and ${max}, got ${actual}.`);
342
+ __publicField(this, "name", "NumberOutOfRangeError");
343
+ }
344
+ };
345
+
346
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/dist/esm/utils.mjs
347
+ init_env_shim();
348
+ function numberFactory(input) {
349
+ let littleEndian;
350
+ let defaultDescription = input.name;
351
+ if (input.size > 1) {
352
+ littleEndian = !("endian" in input.options) || input.options.endian === Endian.Little;
353
+ defaultDescription += littleEndian ? "(le)" : "(be)";
354
+ }
355
+ return {
356
+ description: input.options.description ?? defaultDescription,
357
+ fixedSize: input.size,
358
+ maxSize: input.size,
359
+ serialize(value) {
360
+ if (input.range) {
361
+ assertRange(input.name, input.range[0], input.range[1], value);
362
+ }
363
+ const buffer = new ArrayBuffer(input.size);
364
+ input.set(new DataView(buffer), value, littleEndian);
365
+ return new Uint8Array(buffer);
366
+ },
367
+ deserialize(bytes, offset = 0) {
368
+ const slice = bytes.slice(offset, offset + input.size);
369
+ assertEnoughBytes("i8", slice, input.size);
370
+ const view = toDataView(slice);
371
+ return [input.get(view, littleEndian), offset + input.size];
372
+ }
373
+ };
374
+ }
375
+ var toArrayBuffer = (array) => array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset);
376
+ var toDataView = (array) => new DataView(toArrayBuffer(array));
377
+ var assertRange = (serializer, min, max, value) => {
378
+ if (value < min || value > max) {
379
+ throw new NumberOutOfRangeError(serializer, min, max, value);
380
+ }
381
+ };
382
+ var assertEnoughBytes = (serializer, bytes, expected) => {
383
+ if (bytes.length === 0) {
384
+ throw new DeserializingEmptyBufferError(serializer);
385
+ }
386
+ if (bytes.length < expected) {
387
+ throw new NotEnoughBytesError(serializer, expected, bytes.length);
388
+ }
389
+ };
390
+
391
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/dist/esm/u32.mjs
392
+ init_env_shim();
393
+ var u32 = (options = {}) => numberFactory({
394
+ name: "u32",
395
+ size: 4,
396
+ range: [0, Number("0xffffffff")],
397
+ set: (view, value, le) => view.setUint32(0, Number(value), le),
398
+ get: (view, le) => view.getUint32(0, le),
399
+ options
400
+ });
401
+
402
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers@0.8.5/node_modules/@metaplex-foundation/umi-serializers/dist/esm/utils.mjs
403
+ init_env_shim();
404
+ function getSizeDescription(size) {
405
+ return typeof size === "object" ? size.description : `${size}`;
406
+ }
407
+
408
+ // ../../node_modules/.pnpm/@metaplex-foundation+umi-serializers@0.8.5/node_modules/@metaplex-foundation/umi-serializers/dist/esm/string.mjs
409
+ init_env_shim();
410
+ function string(options = {}) {
411
+ const size = options.size ?? u32();
412
+ const encoding = options.encoding ?? utf8;
413
+ const description = options.description ?? `string(${encoding.description}; ${getSizeDescription(size)})`;
414
+ if (size === "variable") {
415
+ return {
416
+ ...encoding,
417
+ description
418
+ };
419
+ }
420
+ if (typeof size === "number") {
421
+ return fixSerializer(encoding, size, description);
422
+ }
423
+ return {
424
+ description,
425
+ fixedSize: null,
426
+ maxSize: null,
427
+ serialize: (value) => {
428
+ const contentBytes = encoding.serialize(value);
429
+ const lengthBytes = size.serialize(contentBytes.length);
430
+ return mergeBytes([lengthBytes, contentBytes]);
431
+ },
432
+ deserialize: (buffer, offset = 0) => {
433
+ if (buffer.slice(offset).length === 0) {
434
+ throw new DeserializingEmptyBufferError("string");
435
+ }
436
+ const [lengthBigInt, lengthOffset] = size.deserialize(buffer, offset);
437
+ const length = Number(lengthBigInt);
438
+ offset = lengthOffset;
439
+ const contentBuffer = buffer.slice(offset, offset + length);
440
+ if (contentBuffer.length < length) {
441
+ throw new NotEnoughBytesError("string", length, contentBuffer.length);
442
+ }
443
+ const [value, contentOffset] = encoding.deserialize(contentBuffer);
444
+ offset += contentOffset;
445
+ return [value, offset];
446
+ }
447
+ };
448
+ }
241
449
  function assertIsBase58EncodedAddress(putativeBase58EncodedAddress) {
242
450
  try {
243
451
  if (
@@ -258,6 +466,13 @@ this.globalThis.solanaWeb3 = (function (exports) {
258
466
  });
259
467
  }
260
468
  }
469
+ function getBase58EncodedAddressCodec(config) {
470
+ return string({
471
+ description: config?.description ?? ("A 32-byte account address" ),
472
+ encoding: base58,
473
+ size: 32
474
+ });
475
+ }
261
476
  function getBase58EncodedAddressComparator() {
262
477
  return new Intl.Collator("en", {
263
478
  caseFirst: "lower",
@@ -268,6 +483,96 @@ this.globalThis.solanaWeb3 = (function (exports) {
268
483
  usage: "sort"
269
484
  }).compare;
270
485
  }
486
+ function assertIsSecureContext() {
487
+ if (!globalThis.isSecureContext) {
488
+ throw new Error(
489
+ "Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts"
490
+ );
491
+ }
492
+ }
493
+ var cachedEd25519Decision;
494
+ async function isEd25519CurveSupported(subtle) {
495
+ if (cachedEd25519Decision === void 0) {
496
+ cachedEd25519Decision = new Promise((resolve) => {
497
+ subtle.generateKey(
498
+ "Ed25519",
499
+ /* extractable */
500
+ false,
501
+ ["sign", "verify"]
502
+ ).catch(() => {
503
+ resolve(cachedEd25519Decision = false);
504
+ }).then(() => {
505
+ resolve(cachedEd25519Decision = true);
506
+ });
507
+ });
508
+ }
509
+ if (typeof cachedEd25519Decision === "boolean") {
510
+ return cachedEd25519Decision;
511
+ } else {
512
+ return await cachedEd25519Decision;
513
+ }
514
+ }
515
+ async function assertKeyGenerationIsAvailable() {
516
+ assertIsSecureContext();
517
+ if (typeof globalThis.crypto === "undefined" || typeof globalThis.crypto.subtle?.generateKey !== "function") {
518
+ throw new Error("No key generation implementation could be found");
519
+ }
520
+ if (!await isEd25519CurveSupported(globalThis.crypto.subtle)) {
521
+ throw new Error(
522
+ "This runtime does not support the generation of Ed25519 key pairs.\n\nInstall and import `@solana/webcrypto-ed25519-polyfill` before generating keys in environments that do not support Ed25519.\n\nFor a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20"
523
+ );
524
+ }
525
+ }
526
+ async function assertKeyExporterIsAvailable() {
527
+ assertIsSecureContext();
528
+ if (typeof globalThis.crypto === "undefined" || typeof globalThis.crypto.subtle?.exportKey !== "function") {
529
+ throw new Error("No key export implementation could be found");
530
+ }
531
+ }
532
+ async function assertSigningCapabilityIsAvailable() {
533
+ assertIsSecureContext();
534
+ if (typeof globalThis.crypto === "undefined" || typeof globalThis.crypto.subtle?.sign !== "function") {
535
+ throw new Error("No signing implementation could be found");
536
+ }
537
+ }
538
+ async function assertVerificationCapabilityIsAvailable() {
539
+ assertIsSecureContext();
540
+ if (typeof globalThis.crypto === "undefined" || typeof globalThis.crypto.subtle?.verify !== "function") {
541
+ throw new Error("No signature verification implementation could be found");
542
+ }
543
+ }
544
+ async function generateKeyPair() {
545
+ await assertKeyGenerationIsAvailable();
546
+ const keyPair = await crypto.subtle.generateKey(
547
+ /* algorithm */
548
+ "Ed25519",
549
+ // Native implementation status: https://github.com/WICG/webcrypto-secure-curves/issues/20
550
+ /* extractable */
551
+ false,
552
+ // Prevents the bytes of the private key from being visible to JS.
553
+ /* allowed uses */
554
+ ["sign", "verify"]
555
+ );
556
+ return keyPair;
557
+ }
558
+ async function getBase58EncodedAddressFromPublicKey(publicKey) {
559
+ await assertKeyExporterIsAvailable();
560
+ if (publicKey.type !== "public" || publicKey.algorithm.name !== "Ed25519") {
561
+ throw new Error("The `CryptoKey` must be an `Ed25519` public key");
562
+ }
563
+ const publicKeyBytes = await crypto.subtle.exportKey("raw", publicKey);
564
+ const [base58EncodedAddress] = getBase58EncodedAddressCodec().deserialize(new Uint8Array(publicKeyBytes));
565
+ return base58EncodedAddress;
566
+ }
567
+ async function signBytes(key, data) {
568
+ await assertSigningCapabilityIsAvailable();
569
+ const signedData = await crypto.subtle.sign("Ed25519", key, data);
570
+ return new Uint8Array(signedData);
571
+ }
572
+ async function verifySignature(key, signature, data) {
573
+ await assertVerificationCapabilityIsAvailable();
574
+ return await crypto.subtle.verify("Ed25519", key, signature, data);
575
+ }
271
576
 
272
577
  // src/rpc.ts
273
578
  init_env_shim();
@@ -301,6 +606,55 @@ this.globalThis.solanaWeb3 = (function (exports) {
301
606
  }
302
607
  var KEYPATH_WILDCARD = {};
303
608
  var ALLOWED_NUMERIC_KEYPATHS = {
609
+ getAccountInfo: [
610
+ // parsed AddressTableLookup account
611
+ ["value", "data", "parsed", "info", "lastExtendedSlotStartIndex"],
612
+ // parsed Config account
613
+ ["value", "data", "parsed", "info", "slashPenalty"],
614
+ ["value", "data", "parsed", "info", "warmupCooldownRate"],
615
+ // parsed Token/Token22 token account
616
+ ["value", "data", "parsed", "info", "tokenAmount", "decimals"],
617
+ ["value", "data", "parsed", "info", "tokenAmount", "uiAmount"],
618
+ ["value", "data", "parsed", "info", "rentExemptReserve", "decimals"],
619
+ ["value", "data", "parsed", "info", "delegatedAmount", "decimals"],
620
+ [
621
+ "value",
622
+ "data",
623
+ "parsed",
624
+ "info",
625
+ "extensions",
626
+ KEYPATH_WILDCARD,
627
+ "state",
628
+ "olderTransferFee",
629
+ "transferFeeBasisPoints"
630
+ ],
631
+ [
632
+ "value",
633
+ "data",
634
+ "parsed",
635
+ "info",
636
+ "extensions",
637
+ KEYPATH_WILDCARD,
638
+ "state",
639
+ "newerTransferFee",
640
+ "transferFeeBasisPoints"
641
+ ],
642
+ ["value", "data", "parsed", "info", "extensions", KEYPATH_WILDCARD, "state", "preUpdateAverageRate"],
643
+ ["value", "data", "parsed", "info", "extensions", KEYPATH_WILDCARD, "state", "currentRate"],
644
+ // parsed Token/Token22 mint account
645
+ ["value", "data", "parsed", "info", "decimals"],
646
+ // parsed Token/Token22 multisig account
647
+ ["value", "data", "parsed", "info", "numRequiredSigners"],
648
+ ["value", "data", "parsed", "info", "numValidSigners"],
649
+ // parsed Stake account
650
+ ["value", "data", "parsed", "info", "stake", "delegation", "warmupCooldownRate"],
651
+ // parsed Sysvar rent account
652
+ ["value", "data", "parsed", "info", "exemptionThreshold"],
653
+ ["value", "data", "parsed", "info", "burnPercent"],
654
+ // parsed Vote account
655
+ ["value", "data", "parsed", "info", "commission"],
656
+ ["value", "data", "parsed", "info", "votes", KEYPATH_WILDCARD, "confirmationCount"]
657
+ ],
304
658
  getBlockTime: [[]],
305
659
  getInflationReward: [[KEYPATH_WILDCARD, "commission"]],
306
660
  getRecentPerformanceSamples: [[KEYPATH_WILDCARD, "samplePeriodSecs"]],
@@ -348,7 +702,8 @@ this.globalThis.solanaWeb3 = (function (exports) {
348
702
  return out;
349
703
  } else if (typeof value === "number" && // The presence of an allowed keypath on the route to this value implies it's allowlisted;
350
704
  // Upcast the value to `bigint` unless an allowed keypath is present.
351
- allowedKeypaths.length === 0) {
705
+ allowedKeypaths.length === 0 && // Only try to upcast an Integer to `bigint`
706
+ Number.isInteger(value)) {
352
707
  return BigInt(value);
353
708
  } else {
354
709
  return value;
@@ -695,12 +1050,17 @@ this.globalThis.solanaWeb3 = (function (exports) {
695
1050
  exports.createSolanaRpc = createSolanaRpc;
696
1051
  exports.downgradeRoleToNonSigner = downgradeRoleToNonSigner;
697
1052
  exports.downgradeRoleToReadonly = downgradeRoleToReadonly;
1053
+ exports.generateKeyPair = generateKeyPair;
1054
+ exports.getBase58EncodedAddressCodec = getBase58EncodedAddressCodec;
698
1055
  exports.getBase58EncodedAddressComparator = getBase58EncodedAddressComparator;
1056
+ exports.getBase58EncodedAddressFromPublicKey = getBase58EncodedAddressFromPublicKey;
699
1057
  exports.isSignerRole = isSignerRole;
700
1058
  exports.isWritableRole = isWritableRole;
701
1059
  exports.mergeRoles = mergeRoles;
1060
+ exports.signBytes = signBytes;
702
1061
  exports.upgradeRoleToSigner = upgradeRoleToSigner;
703
1062
  exports.upgradeRoleToWritable = upgradeRoleToWritable;
1063
+ exports.verifySignature = verifySignature;
704
1064
 
705
1065
  return exports;
706
1066
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../build-scripts/env-shim.ts","../../../node_modules/.pnpm/fast-stable-stringify@1.0.0/node_modules/fast-stable-stringify/index.js","../src/index.ts","../../instructions/src/roles.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/dist/esm/index.mjs","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/errors.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/baseX.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/base58.ts","../../keys/src/base58.ts","../src/rpc.ts","../../rpc-core/src/params-patcher.ts","../../rpc-core/src/response-patcher-allowed-numeric-values.ts","../../rpc-core/src/response-patcher.ts","../../rpc-core/src/rpc-methods/index.ts","../../rpc-transport/src/json-rpc-errors.ts","../../rpc-transport/src/json-rpc-message-id.ts","../../rpc-transport/src/json-rpc-message.ts","../../rpc-transport/src/json-rpc.ts","../../fetch-impl/src/index.browser.ts","../../rpc-transport/src/transports/http/http-transport-errors.ts","../../rpc-transport/src/transports/http/http-transport-headers.ts","../../rpc-transport/src/transports/http/http-transport.ts","../src/rpc-default-config.ts","../src/rpc-integer-overflow-error.ts","../src/rpc-transport.ts","../src/rpc-request-coalescer.ts","../src/rpc-request-deduplication.ts"],"names":["AccountRole","InvalidBaseStringError","Error","constructor","value","base","cause","message","name","baseX","alphabet","length","baseBigInt","BigInt","description","fixedSize","maxSize","serialize","match","RegExp","Uint8Array","chars","trailIndex","findIndex","c","leadingZeroes","Array","fill","from","tailChars","slice","base10Number","baseXPower","i","indexOf","tailBytes","unshift","Number","concat","deserialize","buffer","offset","bytes","n","repeat","reduce","sum","byte","join","base58","e","__DEV__","index_browser_default","fastStableStringify","normalizeHeaders"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAAA;AAAA;AAAA,QAAI,cAAc,OAAO,UAAU;AACnC,QAAI,UAAU,OAAO,QAAQ,SAAS,KAAK;AACzC,UAAI,OAAO,CAAC;AACZ,eAAS,QAAQ,KAAK;AACrB,aAAK,KAAK,IAAI;AAAA,MACf;AACA,aAAO;AAAA,IACR;AAED,aAAS,UAAU,KAAK,aAAa;AACpC,UAAI,GAAG,KAAK,KAAK,MAAM,KAAK,SAAS;AACrC,UAAI,QAAQ,MAAM;AACjB,eAAO;AAAA,MACR;AACA,UAAI,QAAQ,OAAO;AAClB,eAAO;AAAA,MACR;AACA,cAAQ,OAAO,KAAK;AAAA,QACnB,KAAK;AACJ,cAAI,QAAQ,MAAM;AACjB,mBAAO;AAAA,UACR,WAAW,IAAI,UAAU,OAAO,IAAI,WAAW,YAAY;AAC1D,mBAAO,UAAU,IAAI,OAAO,GAAG,WAAW;AAAA,UAC3C,OAAO;AACN,oBAAQ,YAAY,KAAK,GAAG;AAC5B,gBAAI,UAAU,kBAAkB;AAC/B,oBAAM;AACN,oBAAM,IAAI,SAAS;AACnB,mBAAI,IAAI,GAAG,IAAI,KAAK,KAAK;AACxB,uBAAO,UAAU,IAAI,CAAC,GAAG,IAAI,IAAI;AAAA,cAClC;AACA,kBAAI,MAAM,IAAI;AACb,uBAAO,UAAU,IAAI,CAAC,GAAG,IAAI;AAAA,cAC9B;AACA,qBAAO,MAAM;AAAA,YACd,WAAW,UAAU,mBAAmB;AAEvC,qBAAO,QAAQ,GAAG,EAAE,KAAK;AACzB,oBAAM,KAAK;AACX,oBAAM;AACN,kBAAI;AACJ,qBAAO,IAAI,KAAK;AACf,sBAAM,KAAK,CAAC;AACZ,0BAAU,UAAU,IAAI,GAAG,GAAG,KAAK;AACnC,oBAAI,YAAY,QAAW;AAC1B,sBAAI,KAAK;AACR,2BAAO;AAAA,kBACR;AACA,yBAAO,KAAK,UAAU,GAAG,IAAI,MAAM;AAAA,gBACpC;AACA;AAAA,cACD;AACA,qBAAO,MAAM,MAAM;AAAA,YACpB,OAAO;AACN,qBAAO,KAAK,UAAU,GAAG;AAAA,YAC1B;AAAA,UACD;AAAA,QACD,KAAK;AAAA,QACL,KAAK;AACJ,iBAAO,cAAc,OAAO;AAAA,QAC7B,KAAK;AACJ,iBAAO,KAAK,UAAU,GAAG;AAAA,QAC1B;AACC,iBAAO,SAAS,GAAG,IAAI,MAAM;AAAA,MAC/B;AAAA,IACD;AAEA,WAAO,UAAU,SAAS,KAAK;AAC9B,UAAI,YAAY,UAAU,KAAK,KAAK;AACpC,UAAI,cAAc,QAAW;AAC5B,eAAO,KAAI;AAAA,MACZ;AAAA,IACD;AAAA;AAAA;;;ACxEA;;;;ACIO,IAAK,cAAL,kBAAKA,iBAAL;AAEHA,eAAAA,aAAA,iBAAA;EAA0B,CAAA,IAA1B;AACAA,eAAAA,aAAA,iBAAA;EAA0B,CAAA,IAA1B;AACAA,eAAAA,aAAA,UAAA;EAA0B,CAAA,IAA1B;AACAA,eAAAA,aAAA,UAAA;EAA0B,CAAA,IAA1B;AALQ,SAAAA;AAAA,GAAA,eAAA,CAAA,CAAA;AAQZ,IAAM,oBAAoB;AAC1B,IAAM,sBAAsB;AAKrB,SAAS,yBAAyB,MAAgC;AACrE,SAAO,OAAO,CAAC;AACnB;AAKO,SAAS,wBAAwB,MAAgC;AACpE,SAAO,OAAO,CAAC;AACnB;AAEO,SAAS,aAAa,MAAsF;AAC/G,SAAO,QAAQ;AACnB;AAEO,SAAS,eAAe,MAA+E;AAC1G,UAAQ,OAAO,yBAAyB;AAC5C;AAYO,SAAS,WAAW,OAAoB,OAAiC;AAC5E,SAAO,QAAQ;AACnB;AAKO,SAAS,oBAAoB,MAAgC;AAChE,SAAO,OAAO;AAClB;AAKO,SAAS,sBAAsB,MAAgC;AAClE,SAAO,OAAO;AAClB;;;;;;AC/DA;;;;;;ACAA;AACO,IAAMC,yBAAN,cAAqCC,MAAM;EAKhDC,YAAYC,OAAeC,MAAcC,OAAe;AACtD,UAAMC,UAAW,6BAA4BF,cAAcD;AAC3D,UAAMG,OAAO;AANNC,gCAAe;AAOtB,SAAKF,QAAQA;EACf;AACF;;;ACHaG,IAAAA,QAASC,cAAyC;AAC7D,QAAML,OAAOK,SAASC;AACtB,QAAMC,aAAaC,OAAOR,IAAI;AAC9B,SAAO;IACLS,aAAc,OAAMT;IACpBU,WAAW;IACXC,SAAS;IACTC,UAAUb,OAA2B;AAEnC,UAAI,CAACA,MAAMc,MAAM,IAAIC,OAAQ,KAAIT,aAAa,CAAC,GAAG;AAChD,cAAM,IAAIT,uBAAuBG,OAAOC,IAAI;MAC9C;AACA,UAAID,UAAU;AAAI,eAAO,IAAIgB,WAAU;AAGvC,YAAMC,QAAQ,CAAC,GAAGjB,KAAK;AACvB,UAAIkB,aAAaD,MAAME,UAAWC,OAAMA,MAAMd,SAAS,CAAC,CAAC;AACzDY,mBAAaA,eAAe,KAAKD,MAAMV,SAASW;AAChD,YAAMG,gBAAgBC,MAAMJ,UAAU,EAAEK,KAAK,CAAC;AAC9C,UAAIL,eAAeD,MAAMV;AAAQ,eAAOS,WAAWQ,KAAKH,aAAa;AAGrE,YAAMI,YAAYR,MAAMS,MAAMR,UAAU;AACxC,UAAIS,eAAe;AACnB,UAAIC,aAAa;AACjB,eAASC,IAAIJ,UAAUlB,SAAS,GAAGsB,KAAK,GAAGA,KAAK,GAAG;AACjDF,wBAAgBC,aAAanB,OAAOH,SAASwB,QAAQL,UAAUI,CAAC,CAAC,CAAC;AAClED,sBAAcpB;MAChB;AAGA,YAAMuB,YAAY,CAAA;AAClB,aAAOJ,eAAe,IAAI;AACxBI,kBAAUC,QAAQC,OAAON,eAAe,IAAI,CAAC;AAC7CA,wBAAgB;MAClB;AACA,aAAOX,WAAWQ,KAAKH,cAAca,OAAOH,SAAS,CAAC;;IAExDI,YAAYC,QAAQC,SAAS,GAAqB;AAChD,UAAID,OAAO7B,WAAW;AAAG,eAAO,CAAC,IAAI,CAAC;AAGtC,YAAM+B,QAAQF,OAAOV,MAAMW,MAAM;AACjC,UAAInB,aAAaoB,MAAMnB,UAAWoB,OAAMA,MAAM,CAAC;AAC/CrB,mBAAaA,eAAe,KAAKoB,MAAM/B,SAASW;AAChD,YAAMG,gBAAgBf,SAAS,CAAC,EAAEkC,OAAOtB,UAAU;AACnD,UAAIA,eAAeoB,MAAM/B;AAAQ,eAAO,CAACc,eAAee,OAAO7B,MAAM;AAGrE,UAAIoB,eAAeW,MAChBZ,MAAMR,UAAU,EAChBuB,OAAO,CAACC,KAAKC,SAASD,MAAM,OAAOjC,OAAOkC,IAAI,GAAG,EAAE;AAGtD,YAAMlB,YAAY,CAAA;AAClB,aAAOE,eAAe,IAAI;AACxBF,kBAAUO,QAAQ1B,SAAS2B,OAAON,eAAenB,UAAU,CAAC,CAAC;AAC7DmB,wBAAgBnB;MAClB;AAEA,aAAO,CAACa,gBAAgBI,UAAUmB,KAAK,EAAE,GAAGR,OAAO7B,MAAM;IAC3D;;AAEJ;;;;IChEasC,SAA6BxC,MACxC,4DAA4D;;;ACC1D,SAAI,6BAAA,8BAAA;AAEA,MAAA;AAAA;;MAII,6BAA6B,SAAS;MACxC,6BAAA,SAAA;MACE;AACJ,YAAA,IAAA,MAAA,+DAAA;IAEA;AACA,UAAM,QAAA,OAAW,UAAM,4BAAA;AACvB,UAAI,WAAa,MAAI;AACjB,QAAA,aAAU,IAAM;AACpB,YAAA,IAAA,MAAA,gFAAA,UAAA;IACJ;EACI,SAAMyC,IAAN;AAAwF,UACpF,IAAO,MAAA,KAAA,mEAAA;MACV,OAAAA;IACL,CAAA;EACJ;AAEO;AACH,SAAO,oCAAwB;AAAA,SAC3B,IAAA,KAAW,SAAA,MAAA;IACX,WAAA;IACA,mBAAe;IACf,eAAS;IACT,SAAA;IACA,aAAO;IACV,OAAE;EACP,CAAA,EAAA;;;;ACzCA;;;;ACOI,SAAI,UAAM,OAAa,SAAG,mBAAA;AACtB,MAAA,MAAO,QAAM,KAAA,GAAA;AAAA,WAAK,MAAS;MAE3B,CAAA,SAAA,OAAA,UAAA,SAAA,CAAA,GAAA,SAAA,EAAA,GAAA,iBAAA;IACJ;EACI,WAAM,OAAO,UAAA,YAAA,UAAA,MAAA;AACb,UAAA,MAAW,CAAA;AACP,eAAI,YAAiB,OAAA;AACjB,UAAA,OAAI,UAAY,eAAgB,KAAA,OAAY,QAAG,GAAS;AAC5D,YAAA,QAAA,IAAA,UAAA,MAAA,QAAA,GAAA,CAAA,GAAA,SAAA,QAAA,GAAA,iBAAA;MACJ;IACA;AACJ,WAAA;EAII,WAAI,OAAA,UAAsB,UAAQ;AAC9B,QAAA,sBAAkB,QAAc,OAAA,oBAAA,QAAA,CAAA,OAAA,mBAAA;AACpC,wBAAA,SAAA,KAAA;IACA;AACJ,WAAO,OAAA,KAAA;EACH,OAAA;AACJ,WAAA;EACJ;AAEO;AACH,SAAO,4BAAsB,QAAA,mBAAiB;AAClD,SAAA,UAAA,QAAA,CAAA,GAAA,iBAAA;;;ACxBI,IACA,2BAAiB;EACjB,cAAA,CAAA,CAAA,CAAA;EACA,oBAAA,CAAA,CAAA,kBAA+B,YAAkB,CAAA;EACjD,6BAAyB,CAAA,CAAA,kBAAA,kBAAA,CAAA;EAAA,yBACX;IACV,CAAC,SAAS,kBAAkB,UAAU;IAC1C,CAAA,SAAA,kBAAA,UAAA;EACA;EAAgB,gBACH;IACT,CAAC,QAAQ,oBAAoB,kBAAkB,cAAA;IAC/C,CAAC,QAAQ,oBAAA,kBAAqB,iBAAgC,UAAA;IAC9D,CAAC,QAAQ,qBAAqB,kBAAkB,cAAA;IAChD,CAAC,QAAQ,qBAAW,kBAAkB,iBAAY,UAAA;IAClD,CAAC,QAAQ,WAAA,kBAAqB,YAAkB;IAChD,CAAC,QAAQ,qBAAqB,kBAAkB,OAAA;IAChD,CAAC,QAAQ,qBAAqB,kBAAkB,gBAAgB,kBAAkB,gBAAY;IAC9F,CAAC,QAAA,qBAA0B,kBAAA,gBAAuB,kBAAkB,YAAmB,gBAAgB;IACvG,CAAC,eAAe,WAAW,uBAAuB,kBAAkB,mBAAmB,gBAAgB;IACvG,CAAC,eAAe,WAAW,uBAAgB,kBAAkB,mBAAgB,gBAAA;IAC7E,CAAC,eAAe,WAAW,gBAAgB,kBAAkB,gBAAY;IACzE,CAAC,eAAe,WAAW,gBAAU,kBAAA,YAA2B,gBAAA;IAChE,CAAC,eAAe,WAAW,UAAU,2BAAA;IACrC,CAAC,eAAe,WAAW,UAAU,6BAAuB;IAChE,CAAA,eAAA,WAAA,UAAA,uBAAA;EACA;EAAiB,iBACD;IACZ,CAAC,WAAA,kBAAc,YAAkB;IACrC,CAAA,cAAA,kBAAA,YAAA;EACJ;;AC7BI,SAAO,uBACK,UAAY,UAAS;AAErC,SAAA,SAAA,OAAA,CAAA,YAAA,QAAA,CAAA,MAAA,oBAAA,OAAA,aAAA,YAAA,QAAA,CAAA,MAAA,QAAA,EAAA,IAAA,CAAA,YAAA,QAAA,MAAA,CAAA,CAAA;AAEA;AACI,SAAI,WAAc,OAAK,iBAAG;AACtB,MAAA,MAAO,QAAM,KAAK,GAAA;AACd,WAAA,MAAM,IAAA,CAAA,SAAA,OAAsB;AAC5B,YAAA,sBAA0B,uBAAmB,iBAAA,EAAA;AAChD,aAAA,WAAA,SAAA,mBAAA;IACL,CAAA;EACI,WAAM,OAAO,UAAA,YAAA,UAAA,MAAA;AACb,UAAA,MAAY,CAAA;AACR,eAAM,CAAA,UAAA,UAAsB,KAAA,OAAA,QAAA,KAAuB,GAAA;AACnD,YAAI,sBAAsB,uBAAY,iBAAmB,QAAA;AAC7D,UAAA,QAAA,IAAA,WAAA,YAAA,mBAAA;IACA;AACJ,WAAA;EACqB,WAAA,OAAA,UAAA;;EAQjB,gBAAc,WAAK,GAAA;AACvB,WAAO,OAAA,KAAA;EACH,OAAA;AACJ,WAAA;EACJ;AAEO;AAIH,SAAM,8BAA+B,aAAA,YAAyB;AAC9D,QAAA,kBAAiB,aAAa,yBAAqB,UAAA,IAAA;AACvD,SAAA,WAAA,aAAA,mBAAA,CAAA,CAAA;;ACQI,SAAO,mBAA2C,QAAA;AAAA,SAC9C,IAAA,MAAA,CAAA,GAAiB;IACb,iBAAO;AACX,aAAA;IACA;IACI,iBAAO;AACX,aAAA;IACA;IAGI,OAAA,MAAW;AACX,YAAM,CAAA,GAAA,CAAA,IAAA;AACN,YAAA,aACO,EAAA,SAGkD;AACrD,aAAA,YAAM,WAAA;AACN,cAAM,wBAAS,QAAA;AAAA,cACX,SAAA;UACA;UAGJ,wBAAA,CAAA,SAAA,UAAA,sBAAA,YAAA,SAAA,KAAA,IAAA;QACA;AAAO,eACH;UACA;UACA;UACJ,mBAAA,CAAA,gBAAA,8BAAA,aAAA,UAAA;QACJ;MACJ;IACH;EACL,CAAA;;;;;AbxFO,IAAMC,WAA2B,uBAAO,MAAwD;Ac4BhG,IAAM,qBAAN,cAAiC,MAAM;EAG1C,YAAY,SAAoC;AAC5C,UAAM,uBAAuB,QAAQ,UAAU,QAAQ,SAAS;AAChE,UAAM,kBAAkB,MAAM,KAAK,WAAW;AAC9C,SAAK,OAAO,QAAQ;AACpB,SAAK,OAAO,QAAQ;EACxB;EACA,IAAI,OAAO;AACP,WAAO;EACX;AACJ;ACzCA,IAAI,iBAAiB;AACd,SAAS,mBAAmB;AAC/B,QAAM,KAAK;AACX,oBAAkB,iBAAiB,KAAK,OAAO;AAC/C,SAAO;AACX;ACHO,SAAS,qBAA8B,QAAgB,QAAiB;AAC3E,SAAO;IACH,IAAI,iBAAiB;IACrB,SAAS;IACT;IACA;EACJ;AACJ;ACCA,SAAS,wBACL,WACA,gBAC4B;AAC5B,SAAO;IACH,MAAM,KAAK,SAA2C;AAClD,YAAM,EAAE,YAAY,QAAQ,kBAAkB,IAAI;AAClD,YAAM,UAAU,qBAAqB,YAAY,MAAM;AACvD,YAAM,WAAW,MAAM,UAAU,UAAoC;QACjE;QACA,QAAQ,SAAS;MACrB,CAAC;AACD,UAAI,WAAW,UAAU;AACrB,cAAM,IAAI,mBAAmB,SAAS,KAAK;MAC/C,OAAO;AACH,eAAQ,oBAAoB,kBAAkB,SAAS,MAAM,IAAI,SAAS;MAC9E;IACJ;EACJ;AACJ;AAEA,SAAS,UAAuB,WAAqD;AACjF,SAAO,IAAI,MAAM,UAAU,KAAK;IAC5B,iBAAiB;AACb,aAAO;IACX;IACA,iBAAiB;AACb,aAAO;IACX;IACA,IAAI,QAAQ,GAAG,UAAU;AACrB,aAAO,YAAa,WAAsB;AACtC,cAAM,aAAa,EAAE,SAAS;AAC9B,cAAM,mBAAmB,QAAQ,IAAI,QAAQ,YAAY,QAAQ;AACjE,cAAM,aAAa,mBACb,iBAAiB,GAAG,SAAS,IAC7B,EAAE,YAAY,QAAQ,UAAU;AACtC,eAAO,wBAAwB,WAAW,UAAU;MACxD;IACJ;EACJ,CAAC;AACL;AAEO,SAAS,cAA2B,WAAqD;AAC5F,SAAO,UAAU,SAAS;AAC9B;ACtDA,IAAOC,IAAQ,WAAW;ACKnB,IAAM,kBAAN,cAA8B,MAAM;EAEvC,YAAY,SAAiC;AACzC,UAAM,eAAe,QAAQ,gBAAgB,QAAQ,SAAS;AAC9D,UAAM,kBAAkB,MAAM,KAAK,WAAW;AAC9C,SAAK,aAAa,QAAQ;EAC9B;EACA,IAAI,OAAO;AACP,WAAO;EACX;AACJ;AC2BA,IAAM,qBAA8C;EAChD,QAAQ;EACR,kBAAkB;EAClB,gBAAgB;AACpB;AAEA,IAAM,oBAA6C;EAC/C,kBAAkB;EAClB,mBAAmB;EACnB,kCAAkC;EAClC,iCAAiC;EACjC,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,MAAM;EACN,KAAK;EACL,QAAQ;EACR,MAAM;EACN,cAAc;EACd,QAAQ;EACR,sBAAsB;;;;EAItB,SAAS;EACT,IAAI;EACJ,SAAS;EACT,qBAAqB;EACrB,SAAS;EACT,KAAK;AACT;AAEO,SAAS,kCACZ,SAC4C;AAC5C,QAAM,aAAa,OAAO,KAAK,OAAO,EAAE,OAAO,CAAA,eAAc;AACzD,UAAM,sBAAsB,WAAW,YAAY;AACnD,WACI,mBAAmB,WAAW,YAAY,CAAC,MAAM,QACjD,kBAAkB,WAAW,YAAY,CAAC,MAAM,QAChD,oBAAoB,WAAW,QAAQ,KACvC,oBAAoB,WAAW,MAAM;EAE7C,CAAC;AACD,MAAI,WAAW,SAAS,GAAG;AACvB,UAAM,IAAI;MACN,GAAG,WAAW,SAAS,IAAI,sBAAsB,iCACxC,WAAW,KAAK,MAAM;IAEnC;EACJ;AACJ;AAMO,SAAS,iBACZ,SACiD;AACjD,QAAM,MAA8B,CAAC;AACrC,aAAW,cAAc,SAAS;AAC9B,QAAI,WAAW,YAAY,CAAC,IAAI,QAAQ,UAAU;EACtD;AACA,SAAO;AACX;ACxFO,SAAS,oBAAoB,EAAE,mBAAmB,SAAS,IAAI,GAA0B;AAC5F,MAAID,YAAW,SAAS;AACpB,sCAAkC,OAAO;EAC7C;AACA,QAAM,QAAQ;AACd,MAAIA,YAAW,qBAAqB,MAAM;AACtC,YAAQ;MACJ;IAEJ;EACJ;AACA,QAAM,gBAAgB,WAAW,iBAAiB,OAAO;AACzD,SAAO,eAAe,gBAA2B;IAC7C;IACA;EACJ,GAAqD;AACjD,UAAM,OAAO,KAAK,UAAU,OAAO;AACnC,UAAM,cAAc;MAChB;MACA;MACA,SAAS;QACL,GAAG;;QAEH,QAAQ;QACR,kBAAkB,KAAK,OAAO,SAAS;QACvC,gBAAgB;MACpB;MACA,QAAQ;MACR;IACJ;AACA,UAAM,WAAW,MAAM,EAAU,KAAK,WAAW;AACjD,QAAI,CAAC,SAAS,IAAI;AACd,YAAM,IAAI,gBAAgB;QACtB,SAAS,SAAS;QAClB,YAAY,SAAS;MACzB,CAAC;IACL;AACA,WAAQ,MAAM,SAAS,KAAK;EAChC;AACJ;;;AC1DA;;;ACAA;AAAO,IAAM,oCAAN,cAAgD,MAAM;AAAA,EAIzD,YAAY,YAAoB,SAA8B,OAAe;AACzE,UAAM,eAAe,OAAO,QAAQ,CAAC,MAAM,WAAW,QAAQ,CAAC,IAAI,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK;AAC/F,QAAI,UAAU;AACd,UAAM,YAAY,cAAc;AAChC,UAAM,gBAAgB,cAAc;AACpC,QAAI,aAAa,KAAK,iBAAiB,IAAI;AACvC,gBAAU,cAAc;AAAA,IAC5B,WAAW,aAAa,KAAK,iBAAiB,IAAI;AAC9C,gBAAU,cAAc;AAAA,IAC5B,WAAW,aAAa,KAAK,iBAAiB,IAAI;AAC9C,gBAAU,cAAc;AAAA,IAC5B,OAAO;AACH,gBAAU,cAAc;AAAA,IAC5B;AACA,UAAM,OACF,QAAQ,SAAS,IACX,QACK,MAAM,CAAC,EACP,IAAI,cAAa,OAAO,aAAa,WAAW,IAAI,cAAc,QAAS,EAC3E,KAAK,GAAG,IACb;AACV;AAAA,MACI,OAAO,6BAA6B,0BAC7B,OAAO,cAAc,WAAW,YAAY;AAAA,IAGvD;AACA,SAAK,UAAU;AACf,SAAK,aAAa;AAClB,SAAK,QAAQ;AAAA,EACjB;AAAA,EACA,IAAI,OAAO;AACP,WAAO;AAAA,EACX;AACJ;;;ADlCO,IAAM,qBAAwE;AAAA,EACjF,kBAAkB,YAAY,SAAS,OAAO;AAC1C,UAAM,IAAI,kCAAkC,YAAY,SAAS,KAAK;AAAA,EAC1E;AACJ;;;AbFO,SAAS,gBAAgB,QAAiF;AAC7G,SAAO,cAAgC;AAAA,IACnC,GAAG;AAAA,IACH,KAAK,mBAAmB,kBAAkB;AAAA,EAC9C,CAAC;AACL;;;AeXA;;;ACAA;AAUO,SAAS,qCACZ,WACA,qBACa;AACb,MAAI;AACJ,SAAO,eAAe,yBAClB,QACkB;AAClB,UAAM,EAAE,SAAS,OAAO,IAAI;AAC5B,UAAM,mBAAmB,oBAAoB,OAAO;AACpD,QAAI,qBAAqB,QAAW;AAChC,aAAO,MAAM,UAAU,MAAM;AAAA,IACjC;AACA,QAAI,CAAC,qCAAqC;AACtC,cAAQ,QAAQ,EAAE,KAAK,MAAM;AACzB,8CAAsC;AAAA,MAC1C,CAAC;AACD,4CAAsC,CAAC;AAAA,IAC3C;AACA,QAAI,oCAAoC,gBAAgB,KAAK,MAAM;AAC/D,YAAM,kBAAkB,IAAI,gBAAgB;AAC5C,0CAAoC,gBAAgB,IAAI;AAAA,QACpD;AAAA,QACA,cAAc;AAAA,QACd,iBAAiB,UAAqB;AAAA,UAClC,GAAG;AAAA,UACH,QAAQ,gBAAgB;AAAA,QAC5B,CAAC;AAAA,MACL;AAAA,IACJ;AACA,UAAM,mBAAmB,oCAAoC,gBAAgB;AAC7E,qBAAiB;AACjB,QAAI,QAAQ;AACR,YAAM,kBAAkB,iBAAiB;AACzC,aAAO,MAAM,IAAI,QAAmB,CAAC,SAAS,WAAW;AACrD,cAAM,cAAc,CAACD,OAAoC;AACrD,iBAAO,oBAAoB,SAAS,WAAW;AAC/C,2BAAiB,gBAAgB;AACjC,cAAI,iBAAiB,iBAAiB,GAAG;AACrC,kBAAM,kBAAkB,iBAAiB;AACzC,4BAAgB,MAAM;AAAA,UAC1B;AACA,gBAAM,aAAa,IAAI,aAAcA,GAAE,OAAuB,QAAQ,YAAY;AAClF,iBAAO,UAAU;AAAA,QACrB;AACA,eAAO,iBAAiB,SAAS,WAAW;AAC5C,wBAAgB,KAAK,OAAO,EAAE,QAAQ,MAAM;AACxC,iBAAO,oBAAoB,SAAS,WAAW;AAAA,QACnD,CAAC;AAAA,MACL,CAAC;AAAA,IACL,OAAO;AACH,aAAQ,MAAM,iBAAiB;AAAA,IACnC;AAAA,EACJ;AACJ;;;AChEA;AAEA,mCAAgC;AAEzB,SAAS,oCAAoC,SAAsC;AACtF,MAAI,WAAW,QAAQ,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AAC1E;AAAA,EACJ;AACA,MAAI,aAAa,WAAW,QAAQ,YAAY,SAAS,YAAY,WAAW,YAAY,SAAS;AACjG,eAAO,6BAAAG,SAAoB,CAAC,QAAQ,QAAQ,QAAQ,MAAM,CAAC;AAAA,EAC/D;AACJ;;;AFFA,SAASC,kBACL,SACiD;AACjD,QAAM,MAA8B,CAAC;AACrC,aAAW,cAAc,SAAS;AAC9B,QAAI,WAAW,YAAY,CAAC,IAAI,QAAQ,UAAU;AAAA,EACtD;AACA,SAAO;AACX;AAEO,SAAS,0BAA0B,QAAkE;AACxG,SAAO;AAAA,IACH,oBAAoB;AAAA,MAChB,GAAG;AAAA,MACH,SAAS;AAAA,QACL,GAAI,OAAO,UAAUA,kBAAiB,OAAO,OAAO,IAAI;AAAA,QACxD,GAAI;AAAA;AAAA,UAEA,iBAAiB,MAAM,yBAAiB;AAAA,QAC5C;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,IACD;AAAA,EACJ;AACJ","sourcesContent":["// Clever obfuscation to prevent the build system from inlining the value of `NODE_ENV`\nexport const __DEV__ = /* @__PURE__ */ (() => (process as any)['en' + 'v'].NODE_ENV === 'development')();\n","var objToString = Object.prototype.toString;\nvar objKeys = Object.keys || function(obj) {\n\t\tvar keys = [];\n\t\tfor (var name in obj) {\n\t\t\tkeys.push(name);\n\t\t}\n\t\treturn keys;\n\t};\n\nfunction stringify(val, isArrayProp) {\n\tvar i, max, str, keys, key, propVal, toStr;\n\tif (val === true) {\n\t\treturn \"true\";\n\t}\n\tif (val === false) {\n\t\treturn \"false\";\n\t}\n\tswitch (typeof val) {\n\t\tcase \"object\":\n\t\t\tif (val === null) {\n\t\t\t\treturn null;\n\t\t\t} else if (val.toJSON && typeof val.toJSON === \"function\") {\n\t\t\t\treturn stringify(val.toJSON(), isArrayProp);\n\t\t\t} else {\n\t\t\t\ttoStr = objToString.call(val);\n\t\t\t\tif (toStr === \"[object Array]\") {\n\t\t\t\t\tstr = '[';\n\t\t\t\t\tmax = val.length - 1;\n\t\t\t\t\tfor(i = 0; i < max; i++) {\n\t\t\t\t\t\tstr += stringify(val[i], true) + ',';\n\t\t\t\t\t}\n\t\t\t\t\tif (max > -1) {\n\t\t\t\t\t\tstr += stringify(val[i], true);\n\t\t\t\t\t}\n\t\t\t\t\treturn str + ']';\n\t\t\t\t} else if (toStr === \"[object Object]\") {\n\t\t\t\t\t// only object is left\n\t\t\t\t\tkeys = objKeys(val).sort();\n\t\t\t\t\tmax = keys.length;\n\t\t\t\t\tstr = \"\";\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile (i < max) {\n\t\t\t\t\t\tkey = keys[i];\n\t\t\t\t\t\tpropVal = stringify(val[key], false);\n\t\t\t\t\t\tif (propVal !== undefined) {\n\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\tstr += ',';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += JSON.stringify(key) + ':' + propVal;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\treturn '{' + str + '}';\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"function\":\n\t\tcase \"undefined\":\n\t\t\treturn isArrayProp ? null : undefined;\n\t\tcase \"string\":\n\t\t\treturn JSON.stringify(val);\n\t\tdefault:\n\t\t\treturn isFinite(val) ? val : null;\n\t}\n}\n\nmodule.exports = function(val) {\n\tvar returnVal = stringify(val, false);\n\tif (returnVal !== undefined) {\n\t\treturn ''+ returnVal;\n\t}\n};\n","export * from '@solana/instructions';\nexport * from '@solana/keys';\nexport * from './rpc';\nexport * from './rpc-transport';\n","/**\n * Quick primer on bitwise operations: https://stackoverflow.com/a/1436448/802047\n */\n\nexport enum AccountRole {\n // Bitflag guide: is signer ⌄⌄ is writable\n WRITABLE_SIGNER = /* 3 */ 0b11, // prettier-ignore\n READONLY_SIGNER = /* 2 */ 0b10, // prettier-ignore\n WRITABLE = /* 1 */ 0b01, // prettier-ignore\n READONLY = /* 0 */ 0b00, // prettier-ignore\n}\n\nconst IS_SIGNER_BITMASK = 0b10;\nconst IS_WRITABLE_BITMASK = 0b01;\n\nexport function downgradeRoleToNonSigner(role: AccountRole.READONLY_SIGNER): AccountRole.READONLY;\nexport function downgradeRoleToNonSigner(role: AccountRole.WRITABLE_SIGNER): AccountRole.WRITABLE;\nexport function downgradeRoleToNonSigner(role: AccountRole): AccountRole;\nexport function downgradeRoleToNonSigner(role: AccountRole): AccountRole {\n return role & ~IS_SIGNER_BITMASK;\n}\n\nexport function downgradeRoleToReadonly(role: AccountRole.WRITABLE): AccountRole.READONLY;\nexport function downgradeRoleToReadonly(role: AccountRole.WRITABLE_SIGNER): AccountRole.READONLY_SIGNER;\nexport function downgradeRoleToReadonly(role: AccountRole): AccountRole;\nexport function downgradeRoleToReadonly(role: AccountRole): AccountRole {\n return role & ~IS_WRITABLE_BITMASK;\n}\n\nexport function isSignerRole(role: AccountRole): role is AccountRole.READONLY_SIGNER | AccountRole.WRITABLE_SIGNER {\n return role >= AccountRole.READONLY_SIGNER;\n}\n\nexport function isWritableRole(role: AccountRole): role is AccountRole.WRITABLE | AccountRole.WRITABLE_SIGNER {\n return (role & IS_WRITABLE_BITMASK) !== 0;\n}\n\nexport function mergeRoles(roleA: AccountRole.WRITABLE, roleB: AccountRole.READONLY_SIGNER): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.READONLY_SIGNER, roleB: AccountRole.WRITABLE): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole.WRITABLE_SIGNER): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.WRITABLE_SIGNER, roleB: AccountRole): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole.READONLY_SIGNER): AccountRole.READONLY_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.READONLY_SIGNER, roleB: AccountRole): AccountRole.READONLY_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole.WRITABLE): AccountRole.WRITABLE; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.WRITABLE, roleB: AccountRole): AccountRole.WRITABLE; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.READONLY, roleB: AccountRole.READONLY): AccountRole.READONLY; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole): AccountRole; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole): AccountRole {\n return roleA | roleB;\n}\n\nexport function upgradeRoleToSigner(role: AccountRole.READONLY): AccountRole.READONLY_SIGNER;\nexport function upgradeRoleToSigner(role: AccountRole.WRITABLE): AccountRole.WRITABLE_SIGNER;\nexport function upgradeRoleToSigner(role: AccountRole): AccountRole;\nexport function upgradeRoleToSigner(role: AccountRole): AccountRole {\n return role | IS_SIGNER_BITMASK;\n}\n\nexport function upgradeRoleToWritable(role: AccountRole.READONLY): AccountRole.WRITABLE;\nexport function upgradeRoleToWritable(role: AccountRole.READONLY_SIGNER): AccountRole.WRITABLE_SIGNER;\nexport function upgradeRoleToWritable(role: AccountRole): AccountRole;\nexport function upgradeRoleToWritable(role: AccountRole): AccountRole {\n return role | IS_WRITABLE_BITMASK;\n}\n","export { base10 } from './base10.mjs';\nexport { base16 } from './base16.mjs';\nexport { base58 } from './base58.mjs';\nexport { base64 } from './base64.mjs';\nexport { baseX } from './baseX.mjs';\nexport { InvalidBaseStringError } from './errors.mjs';\nexport { padNullCharacters, removeNullCharacters } from './nullCharacters.mjs';\nexport { utf8 } from './utf8.mjs';\n//# sourceMappingURL=index.mjs.map\n","/** @category Errors */\nexport class InvalidBaseStringError extends Error {\n readonly name: string = 'InvalidBaseStringError';\n\n readonly cause?: Error;\n\n constructor(value: string, base: number, cause?: Error) {\n const message = `Expected a string of base ${base}, got [${value}].`;\n super(message);\n this.cause = cause;\n }\n}\n","import type { Serializer } from '@metaplex-foundation/umi-serializers-core';\nimport { InvalidBaseStringError } from './errors';\n\n/**\n * A string serializer that uses a custom alphabet.\n * This can be used to create serializers for base58, base64, etc.\n * @category Serializers\n */\nexport const baseX = (alphabet: string): Serializer<string> => {\n const base = alphabet.length;\n const baseBigInt = BigInt(base);\n return {\n description: `base${base}`,\n fixedSize: null,\n maxSize: null,\n serialize(value: string): Uint8Array {\n // Check if the value is valid.\n if (!value.match(new RegExp(`^[${alphabet}]*$`))) {\n throw new InvalidBaseStringError(value, base);\n }\n if (value === '') return new Uint8Array();\n\n // Handle leading zeroes.\n const chars = [...value];\n let trailIndex = chars.findIndex((c) => c !== alphabet[0]);\n trailIndex = trailIndex === -1 ? chars.length : trailIndex;\n const leadingZeroes = Array(trailIndex).fill(0);\n if (trailIndex === chars.length) return Uint8Array.from(leadingZeroes);\n\n // From baseX to base10.\n const tailChars = chars.slice(trailIndex);\n let base10Number = 0n;\n let baseXPower = 1n;\n for (let i = tailChars.length - 1; i >= 0; i -= 1) {\n base10Number += baseXPower * BigInt(alphabet.indexOf(tailChars[i]));\n baseXPower *= baseBigInt;\n }\n\n // From base10 to bytes.\n const tailBytes = [];\n while (base10Number > 0n) {\n tailBytes.unshift(Number(base10Number % 256n));\n base10Number /= 256n;\n }\n return Uint8Array.from(leadingZeroes.concat(tailBytes));\n },\n deserialize(buffer, offset = 0): [string, number] {\n if (buffer.length === 0) return ['', 0];\n\n // Handle leading zeroes.\n const bytes = buffer.slice(offset);\n let trailIndex = bytes.findIndex((n) => n !== 0);\n trailIndex = trailIndex === -1 ? bytes.length : trailIndex;\n const leadingZeroes = alphabet[0].repeat(trailIndex);\n if (trailIndex === bytes.length) return [leadingZeroes, buffer.length];\n\n // From bytes to base10.\n let base10Number = bytes\n .slice(trailIndex)\n .reduce((sum, byte) => sum * 256n + BigInt(byte), 0n);\n\n // From base10 to baseX.\n const tailChars = [];\n while (base10Number > 0n) {\n tailChars.unshift(alphabet[Number(base10Number % baseBigInt)]);\n base10Number /= baseBigInt;\n }\n\n return [leadingZeroes + tailChars.join(''), buffer.length];\n },\n };\n};\n","import type { Serializer } from '@metaplex-foundation/umi-serializers-core';\nimport { baseX } from './baseX';\n\n/**\n * A string serializer that uses base58 encoding.\n * @category Serializers\n */\nexport const base58: Serializer<string> = baseX(\n '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n);\n","import { base58 } from '@metaplex-foundation/umi-serializers-encodings';\n\nexport type Base58EncodedAddress<TAddress extends string = string> = TAddress & {\n readonly __base58EncodedAddress: unique symbol;\n};\n\nexport function assertIsBase58EncodedAddress(\n putativeBase58EncodedAddress: string\n): asserts putativeBase58EncodedAddress is Base58EncodedAddress<typeof putativeBase58EncodedAddress> {\n try {\n // Fast-path; see if the input string is of an acceptable length.\n if (\n // Lowest address (32 bytes of zeroes)\n putativeBase58EncodedAddress.length < 32 ||\n // Highest address (32 bytes of 255)\n putativeBase58EncodedAddress.length > 44\n ) {\n throw new Error('Expected input string to decode to a byte array of length 32.');\n }\n // Slow-path; actually attempt to decode the input string.\n const bytes = base58.serialize(putativeBase58EncodedAddress);\n const numBytes = bytes.byteLength;\n if (numBytes !== 32) {\n throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${numBytes}`);\n }\n } catch (e) {\n throw new Error(`\\`${putativeBase58EncodedAddress}\\` is not a base-58 encoded address`, {\n cause: e,\n });\n }\n}\n\nexport function getBase58EncodedAddressComparator(): (x: string, y: string) => number {\n return new Intl.Collator('en', {\n caseFirst: 'lower',\n ignorePunctuation: false,\n localeMatcher: 'best fit',\n numeric: false,\n sensitivity: 'variant',\n usage: 'sort',\n }).compare;\n}\n","import { createSolanaRpcApi, SolanaRpcMethods } from '@solana/rpc-core';\nimport { createJsonRpc } from '@solana/rpc-transport';\nimport type { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { DEFAULT_RPC_CONFIG } from './rpc-default-config';\n\nexport function createSolanaRpc(config: Omit<Parameters<typeof createJsonRpc>[0], 'api'>): Rpc<SolanaRpcMethods> {\n return createJsonRpc<SolanaRpcMethods>({\n ...config,\n api: createSolanaRpcApi(DEFAULT_RPC_CONFIG),\n });\n}\n","type IntegerOverflowHandler = (keyPath: (number | string)[], value: bigint) => void;\ntype Patched<T> = T extends object ? { [Property in keyof T]: Patched<T[Property]> } : T extends bigint ? number : T;\n// FIXME(https://github.com/microsoft/TypeScript/issues/33014)\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TypescriptBug33014 = any;\n\nfunction visitNode<T>(value: T, keyPath: (number | string)[], onIntegerOverflow?: IntegerOverflowHandler): Patched<T> {\n if (Array.isArray(value)) {\n return value.map((element, ii) =>\n visitNode(element, [...keyPath, ii], onIntegerOverflow)\n ) as TypescriptBug33014;\n } else if (typeof value === 'object' && value !== null) {\n const out = {} as TypescriptBug33014;\n for (const propName in value) {\n if (Object.prototype.hasOwnProperty.call(value, propName)) {\n out[propName] = visitNode(value[propName], [...keyPath, propName], onIntegerOverflow);\n }\n }\n return out as TypescriptBug33014;\n } else if (typeof value === 'bigint') {\n // FIXME(solana-labs/solana/issues/30341) Create a data type to represent u64 in the Solana\n // JSON RPC implementation so that we can throw away this entire patcher instead of unsafely\n // downcasting `bigints` to `numbers`.\n if (onIntegerOverflow && (value > Number.MAX_SAFE_INTEGER || value < -Number.MAX_SAFE_INTEGER)) {\n onIntegerOverflow(keyPath, value);\n }\n return Number(value) as TypescriptBug33014;\n } else {\n return value as TypescriptBug33014;\n }\n}\n\nexport function patchParamsForSolanaLabsRpc<T>(params: T, onIntegerOverflow?: IntegerOverflowHandler): Patched<T> {\n return visitNode(params, [], onIntegerOverflow);\n}\n","import { KeyPath } from './response-patcher';\nimport { KEYPATH_WILDCARD } from './response-patcher-types';\nimport { createSolanaRpcApi } from './rpc-methods';\n\n/**\n * These are keypaths at the end of which you will find a numeric value that should *not* be upcast\n * to a `bigint`. These are values that are legitimately defined as `u8` or `usize` on the backend.\n */\nexport const ALLOWED_NUMERIC_KEYPATHS: Partial<\n Record<keyof ReturnType<typeof createSolanaRpcApi>, readonly KeyPath[]>\n> = {\n getBlockTime: [[]],\n getInflationReward: [[KEYPATH_WILDCARD, 'commission']],\n getRecentPerformanceSamples: [[KEYPATH_WILDCARD, 'samplePeriodSecs']],\n getTokenLargestAccounts: [\n ['value', KEYPATH_WILDCARD, 'decimals'],\n ['value', KEYPATH_WILDCARD, 'uiAmount'],\n ],\n getTransaction: [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'index'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'instructions', KEYPATH_WILDCARD, 'accounts', KEYPATH_WILDCARD],\n ['transaction', 'message', 'addressTableLookups', KEYPATH_WILDCARD, 'writableIndexes', KEYPATH_WILDCARD],\n ['transaction', 'message', 'addressTableLookups', KEYPATH_WILDCARD, 'readonlyIndexes', KEYPATH_WILDCARD],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'accounts', KEYPATH_WILDCARD],\n ['transaction', 'message', 'header', 'numReadonlySignedAccounts'],\n ['transaction', 'message', 'header', 'numReadonlyUnsignedAccounts'],\n ['transaction', 'message', 'header', 'numRequiredSignatures'],\n ],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n};\n","import { ALLOWED_NUMERIC_KEYPATHS } from './response-patcher-allowed-numeric-values';\nimport { KEYPATH_WILDCARD, KeyPathWildcard } from './response-patcher-types';\nimport { createSolanaRpcApi } from './rpc-methods';\n\nexport type KeyPath = ReadonlyArray<KeyPathWildcard | number | string | KeyPath>;\n// FIXME(https://github.com/microsoft/TypeScript/issues/33014)\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TypescriptBug33014 = any;\n\nfunction getNextAllowedKeypaths(keyPaths: readonly KeyPath[], property: number | string) {\n return keyPaths\n .filter(keyPath => (keyPath[0] === KEYPATH_WILDCARD && typeof property === 'number') || keyPath[0] === property)\n .map(keyPath => keyPath.slice(1));\n}\n\nfunction visitNode<T>(value: unknown, allowedKeypaths: readonly KeyPath[]): T {\n if (Array.isArray(value)) {\n return value.map((element, ii) => {\n const nextAllowedKeypaths = getNextAllowedKeypaths(allowedKeypaths, ii);\n return visitNode(element, nextAllowedKeypaths);\n }) as TypescriptBug33014;\n } else if (typeof value === 'object' && value !== null) {\n const out = {} as TypescriptBug33014;\n for (const [propName, innerValue] of Object.entries(value)) {\n const nextAllowedKeypaths = getNextAllowedKeypaths(allowedKeypaths, propName);\n out[propName] = visitNode(innerValue, nextAllowedKeypaths);\n }\n return out as TypescriptBug33014;\n } else if (\n typeof value === 'number' &&\n // The presence of an allowed keypath on the route to this value implies it's allowlisted;\n // Upcast the value to `bigint` unless an allowed keypath is present.\n allowedKeypaths.length === 0\n ) {\n // FIXME(solana-labs/solana/issues/30341) Create a data type to represent u64 in the Solana\n // JSON RPC implementation so that we can throw away this entire patcher instead of unsafely\n // upcasting `numbers` to `bigints`.\n return BigInt(value) as TypescriptBug33014;\n } else {\n return value as TypescriptBug33014;\n }\n}\n\nexport function patchResponseForSolanaLabsRpc<T>(\n rawResponse: unknown,\n methodName?: keyof ReturnType<typeof createSolanaRpcApi>\n): T {\n const allowedKeypaths = methodName ? ALLOWED_NUMERIC_KEYPATHS[methodName] : undefined;\n return visitNode(rawResponse, allowedKeypaths ?? []);\n}\n","import { IRpcApi, RpcRequest } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { patchParamsForSolanaLabsRpc } from '../params-patcher';\nimport { patchResponseForSolanaLabsRpc } from '../response-patcher';\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetBalanceApi } from './getBalance';\nimport { GetBlockHeightApi } from './getBlockHeight';\nimport { GetBlockProductionApi } from './getBlockProduction';\nimport { GetBlocksApi } from './getBlocks';\nimport { GetBlockTimeApi } from './getBlockTime';\nimport { GetEpochInfoApi } from './getEpochInfo';\nimport { GetEpochScheduleApi } from './getEpochSchedule';\nimport { GetFirstAvailableBlockApi } from './getFirstAvailableBlock';\nimport { GetInflationRewardApi } from './getInflationReward';\nimport { GetLatestBlockhashApi } from './getLatestBlockhash';\nimport { GetMaxRetransmitSlotApi } from './getMaxRetransmitSlot';\nimport { GetMaxShredInsertSlotApi } from './getMaxShredInsertSlot';\nimport { GetRecentPerformanceSamplesApi } from './getRecentPerformanceSamples';\nimport { GetSignaturesForAddressApi } from './getSignaturesForAddress';\nimport { GetSlotApi } from './getSlot';\nimport { GetStakeMinimumDelegationApi } from './getStakeMinimumDelegation';\nimport { GetSupplyApi } from './getSupply';\nimport { GetTokenLargestAccountsApi } from './getTokenLargestAccounts';\nimport { GetTransactionApi } from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetVoteAccountsApi } from './getVoteAccounts';\nimport { MinimumLedgerSlotApi } from './minimumLedgerSlot';\n\ntype Config = Readonly<{\n onIntegerOverflow?: (methodName: string, keyPath: (number | string)[], value: bigint) => void;\n}>;\n\nexport type SolanaRpcMethods = GetAccountInfoApi &\n GetBalanceApi &\n GetBlockHeightApi &\n GetBlockProductionApi &\n GetBlocksApi &\n GetBlockTimeApi &\n GetEpochInfoApi &\n GetEpochScheduleApi &\n GetFirstAvailableBlockApi &\n GetInflationRewardApi &\n GetLatestBlockhashApi &\n GetMaxRetransmitSlotApi &\n GetMaxShredInsertSlotApi &\n GetRecentPerformanceSamplesApi &\n GetSignaturesForAddressApi &\n GetSlotApi &\n GetStakeMinimumDelegationApi &\n GetSupplyApi &\n GetTokenLargestAccountsApi &\n GetTransactionApi &\n GetTransactionCountApi &\n GetVoteAccountsApi &\n MinimumLedgerSlotApi;\n\nexport function createSolanaRpcApi(config?: Config): IRpcApi<SolanaRpcMethods> {\n return new Proxy({} as IRpcApi<SolanaRpcMethods>, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get<TMethodName extends keyof IRpcApi<SolanaRpcMethods>>(\n ...args: Parameters<NonNullable<ProxyHandler<IRpcApi<SolanaRpcMethods>>['get']>>\n ) {\n const [_, p] = args;\n const methodName = p.toString() as keyof SolanaRpcMethods;\n return function (\n ...rawParams: Parameters<\n SolanaRpcMethods[TMethodName] extends CallableFunction ? SolanaRpcMethods[TMethodName] : never\n >\n ): RpcRequest<ReturnType<SolanaRpcMethods[TMethodName]>> {\n const handleIntegerOverflow = config?.onIntegerOverflow;\n const params = patchParamsForSolanaLabsRpc(\n rawParams,\n handleIntegerOverflow\n ? (keyPath, value) => handleIntegerOverflow(methodName, keyPath, value)\n : undefined\n );\n return {\n methodName,\n params,\n responseProcessor: rawResponse => patchResponseForSolanaLabsRpc(rawResponse, methodName),\n };\n };\n },\n });\n}\n","// Keep in sync with https://github.com/solana-labs/solana/blob/master/rpc-client-api/src/custom_error.rs\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nexport const SolanaJsonRpcErrorCode = {\n JSON_RPC_INVALID_PARAMS: -32602,\n JSON_RPC_SCAN_ERROR: -32012,\n JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001,\n JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004,\n JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014,\n JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010,\n JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009,\n JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016,\n JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005,\n JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008,\n JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002,\n JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007,\n JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011,\n JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003,\n JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015,\n} as const;\ntype SolanaJsonRpcErrorCodeEnum = (typeof SolanaJsonRpcErrorCode)[keyof typeof SolanaJsonRpcErrorCode];\n\ntype SolanaJsonRpcErrorDetails = Readonly<{\n code: number;\n data?: unknown;\n message: string;\n}>;\n\nexport class SolanaJsonRpcError extends Error {\n readonly code: SolanaJsonRpcErrorCodeEnum;\n readonly data: unknown;\n constructor(details: SolanaJsonRpcErrorDetails) {\n super(`JSON-RPC 2.0 error (${details.code}): ${details.message}`);\n Error.captureStackTrace(this, this.constructor);\n this.code = details.code as SolanaJsonRpcErrorCodeEnum;\n this.data = details.data;\n }\n get name() {\n return 'SolanaJsonRpcError';\n }\n}\n","let _nextMessageId = 0;\nexport function getNextMessageId() {\n const id = _nextMessageId;\n _nextMessageId = (_nextMessageId + 1) % Number.MAX_SAFE_INTEGER;\n return id;\n}\n","import { getNextMessageId } from './json-rpc-message-id';\n\nexport function createJsonRpcMessage<TParams>(method: string, params: TParams) {\n return {\n id: getNextMessageId(),\n jsonrpc: '2.0',\n method,\n params,\n };\n}\n","import { SolanaJsonRpcError } from './json-rpc-errors';\nimport { createJsonRpcMessage } from './json-rpc-message';\nimport { PendingRpcRequest, Rpc, RpcConfig, RpcRequest, SendOptions } from './json-rpc-types';\n\ninterface IHasIdentifier {\n readonly id: number;\n}\ntype JsonRpcResponse<TResponse> = IHasIdentifier &\n Readonly<{ result: TResponse } | { error: { code: number; message: string; data?: unknown } }>;\n\nfunction createPendingRpcRequest<TRpcMethods, TResponse>(\n rpcConfig: RpcConfig<TRpcMethods>,\n pendingRequest: RpcRequest<TResponse>\n): PendingRpcRequest<TResponse> {\n return {\n async send(options?: SendOptions): Promise<TResponse> {\n const { methodName, params, responseProcessor } = pendingRequest;\n const payload = createJsonRpcMessage(methodName, params);\n const response = await rpcConfig.transport<JsonRpcResponse<unknown>>({\n payload,\n signal: options?.abortSignal,\n });\n if ('error' in response) {\n throw new SolanaJsonRpcError(response.error);\n } else {\n return (responseProcessor ? responseProcessor(response.result) : response.result) as TResponse;\n }\n },\n };\n}\n\nfunction makeProxy<TRpcMethods>(rpcConfig: RpcConfig<TRpcMethods>): Rpc<TRpcMethods> {\n return new Proxy(rpcConfig.api, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(target, p, receiver) {\n return function (...rawParams: unknown[]) {\n const methodName = p.toString();\n const createRpcRequest = Reflect.get(target, methodName, receiver);\n const newRequest = createRpcRequest\n ? createRpcRequest(...rawParams)\n : { methodName, params: rawParams };\n return createPendingRpcRequest(rpcConfig, newRequest);\n };\n },\n }) as Rpc<TRpcMethods>;\n}\n\nexport function createJsonRpc<TRpcMethods>(rpcConfig: RpcConfig<TRpcMethods>): Rpc<TRpcMethods> {\n return makeProxy(rpcConfig);\n}\n","export default globalThis.fetch;\n","type SolanaHttpErrorDetails = Readonly<{\n statusCode: number;\n message: string;\n}>;\n\nexport class SolanaHttpError extends Error {\n readonly statusCode: number;\n constructor(details: SolanaHttpErrorDetails) {\n super(`HTTP error (${details.statusCode}): ${details.message}`);\n Error.captureStackTrace(this, this.constructor);\n this.statusCode = details.statusCode;\n }\n get name() {\n return 'SolanaHttpError';\n }\n}\n","export type AllowedHttpRequestHeaders = Readonly<\n { [headerName: string]: string } & {\n // Someone can still sneak a forbidden header past Typescript if they do something like\n // fOo-BaR, but at that point they deserve the runtime failure.\n [K in DisallowedHeaders | ForbiddenHeaders as\n | K // `Foo-Bar`\n | Capitalize<Lowercase<K>> // `Foo-bar`\n | Lowercase<K> // `foo-bar`\n | Uncapitalize<K> // `foo-Bar`\n // `FOO-BAR`\n | Uppercase<K>]?: never;\n }\n>;\n// These are headers that we simply don't allow the developer to override because they're\n// fundamental to the operation of the JSON-RPC transport.\ntype DisallowedHeaders = 'Accept' | 'Content-Length' | 'Content-Type' | 'Solana-Client';\ntype ForbiddenHeaders =\n | 'Accept-Charset'\n | 'Accept-Encoding'\n | 'Access-Control-Request-Headers'\n | 'Access-Control-Request-Method'\n | 'Connection'\n | 'Content-Length'\n | 'Cookie'\n | 'Date'\n | 'DNT'\n | 'Expect'\n | 'Host'\n | 'Keep-Alive'\n | 'Origin'\n | 'Permissions-Policy'\n // No currently available Typescript technique allows you to match on a prefix.\n // | 'Proxy-'\n // | 'Sec-'\n | 'Referer'\n | 'TE'\n | 'Trailer'\n | 'Transfer-Encoding'\n | 'Upgrade'\n | 'Via';\n\n// These are headers which are fundamental to the JSON-RPC transport, and must not be modified.\nconst DISALLOWED_HEADERS: Record<string, boolean> = {\n accept: true,\n 'content-length': true,\n 'content-type': true,\n};\n// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name\nconst FORBIDDEN_HEADERS: Record<string, boolean> = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n 'permissions-policy': true,\n // No currently available Typescript technique allows you to match on a prefix.\n // 'proxy-':true,\n // 'sec-':true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true,\n};\n\nexport function assertIsAllowedHttpRequestHeaders(\n headers: Record<string, string>\n): asserts headers is AllowedHttpRequestHeaders {\n const badHeaders = Object.keys(headers).filter(headerName => {\n const lowercaseHeaderName = headerName.toLowerCase();\n return (\n DISALLOWED_HEADERS[headerName.toLowerCase()] === true ||\n FORBIDDEN_HEADERS[headerName.toLowerCase()] === true ||\n lowercaseHeaderName.startsWith('proxy-') ||\n lowercaseHeaderName.startsWith('sec-')\n );\n });\n if (badHeaders.length > 0) {\n throw new Error(\n `${badHeaders.length > 1 ? 'These headers are' : 'This header is'} forbidden: ` +\n `\\`${badHeaders.join('`, `')}\\`. Learn more at ` +\n 'https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.'\n );\n }\n}\n\n/**\n * Lowercasing header names makes it easier to override user-supplied headers, such as those defined\n * in the `DisallowedHeaders` type.\n */\nexport function normalizeHeaders<T extends Record<string, string>>(\n headers: T\n): { [K in keyof T & string as Lowercase<K>]: T[K] } {\n const out: Record<string, string> = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out as { [K in keyof T & string as Lowercase<K>]: T[K] };\n}\n","import type { Agent as NodeHttpAgent } from 'node:http';\nimport type { Agent as NodeHttpsAgent } from 'node:https';\n\nimport fetchImpl from 'fetch-impl';\n\nimport { IRpcTransport } from '../transport-types';\nimport { SolanaHttpError } from './http-transport-errors';\nimport {\n AllowedHttpRequestHeaders,\n assertIsAllowedHttpRequestHeaders,\n normalizeHeaders,\n} from './http-transport-headers';\n\ntype Config = Readonly<{\n headers?: AllowedHttpRequestHeaders;\n httpAgentNodeOnly?: NodeHttpAgent | NodeHttpsAgent | ((parsedUrl: URL) => NodeHttpAgent | NodeHttpsAgent);\n url: string;\n}>;\n\nexport function createHttpTransport({ httpAgentNodeOnly, headers, url }: Config): IRpcTransport {\n if (__DEV__ && headers) {\n assertIsAllowedHttpRequestHeaders(headers);\n }\n const agent = __NODEJS__ ? httpAgentNodeOnly : undefined;\n if (__DEV__ && httpAgentNodeOnly != null) {\n console.warn(\n 'createHttpTransport(): The `httpAgentNodeOnly` config you supplied has been ' +\n 'ignored; HTTP agents are only usable in Node environments.'\n );\n }\n const customHeaders = headers && normalizeHeaders(headers);\n return async function makeHttpRequest<TResponse>({\n payload,\n signal,\n }: Parameters<IRpcTransport>[0]): Promise<TResponse> {\n const body = JSON.stringify(payload);\n const requestInfo = {\n agent,\n body,\n headers: {\n ...customHeaders,\n // Keep these headers lowercase so they will override any user-supplied headers above.\n accept: 'application/json',\n 'content-length': body.length.toString(),\n 'content-type': 'application/json; charset=utf-8',\n },\n method: 'POST',\n signal,\n };\n const response = await fetchImpl(url, requestInfo);\n if (!response.ok) {\n throw new SolanaHttpError({\n message: response.statusText,\n statusCode: response.status,\n });\n }\n return (await response.json()) as TResponse;\n };\n}\n","import { createSolanaRpcApi } from '@solana/rpc-core';\n\nimport { SolanaJsonRpcIntegerOverflowError } from './rpc-integer-overflow-error';\n\nexport const DEFAULT_RPC_CONFIG: Partial<Parameters<typeof createSolanaRpcApi>[0]> = {\n onIntegerOverflow(methodName, keyPath, value) {\n throw new SolanaJsonRpcIntegerOverflowError(methodName, keyPath, value);\n },\n};\n","export class SolanaJsonRpcIntegerOverflowError extends Error {\n readonly methodName: string;\n readonly keyPath: (number | string)[];\n readonly value: bigint;\n constructor(methodName: string, keyPath: (number | string)[], value: bigint) {\n const argPosition = (typeof keyPath[0] === 'number' ? keyPath[0] : parseInt(keyPath[0], 10)) + 1;\n let ordinal = '';\n const lastDigit = argPosition % 10;\n const lastTwoDigits = argPosition % 100;\n if (lastDigit == 1 && lastTwoDigits != 11) {\n ordinal = argPosition + 'st';\n } else if (lastDigit == 2 && lastTwoDigits != 12) {\n ordinal = argPosition + 'nd';\n } else if (lastDigit == 3 && lastTwoDigits != 13) {\n ordinal = argPosition + 'rd';\n } else {\n ordinal = argPosition + 'th';\n }\n const path =\n keyPath.length > 1\n ? keyPath\n .slice(1)\n .map(pathPart => (typeof pathPart === 'number' ? `[${pathPart}]` : pathPart))\n .join('.')\n : null;\n super(\n `The ${ordinal} argument to the \\`${methodName}\\` RPC method` +\n `${path ? ` at path \\`${path}\\`` : ''} was \\`${value}\\`. This number is ` +\n 'unsafe for use with the Solana JSON-RPC because it exceeds ' +\n '`Number.MAX_SAFE_INTEGER`.'\n );\n this.keyPath = keyPath;\n this.methodName = methodName;\n this.value = value;\n }\n get name() {\n return 'SolanaJsonRpcIntegerOverflowError';\n }\n}\n","import { createHttpTransport } from '@solana/rpc-transport';\nimport { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\nimport { getRpcTransportWithRequestCoalescing } from './rpc-request-coalescer';\nimport { getSolanaRpcPayloadDeduplicationKey } from './rpc-request-deduplication';\n\n/**\n * Lowercasing header names makes it easier to override user-supplied headers.\n */\nfunction normalizeHeaders<T extends Record<string, string>>(\n headers: T\n): { [K in keyof T & string as Lowercase<K>]: T[K] } {\n const out: Record<string, string> = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out as { [K in keyof T & string as Lowercase<K>]: T[K] };\n}\n\nexport function createDefaultRpcTransport(config: Parameters<typeof createHttpTransport>[0]): IRpcTransport {\n return getRpcTransportWithRequestCoalescing(\n createHttpTransport({\n ...config,\n headers: {\n ...(config.headers ? normalizeHeaders(config.headers) : undefined),\n ...({\n // Keep these headers lowercase so they will override any user-supplied headers above.\n 'solana-client': `js/${__VERSION__}` ?? 'UNKNOWN',\n } as { [overrideHeader: string]: string }),\n },\n }),\n getSolanaRpcPayloadDeduplicationKey\n );\n}\n","import { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\ntype CoalescedRequest = {\n readonly abortController: AbortController;\n numConsumers: number;\n readonly responsePromise: Promise<unknown>;\n};\n\ntype GetDeduplicationKeyFn = (payload: unknown) => string | undefined;\n\nexport function getRpcTransportWithRequestCoalescing(\n transport: IRpcTransport,\n getDeduplicationKey: GetDeduplicationKeyFn\n): IRpcTransport {\n let coalescedRequestsByDeduplicationKey: Record<string, CoalescedRequest> | undefined;\n return async function makeCoalescedHttpRequest<TResponse>(\n config: Parameters<IRpcTransport>[0]\n ): Promise<TResponse> {\n const { payload, signal } = config;\n const deduplicationKey = getDeduplicationKey(payload);\n if (deduplicationKey === undefined) {\n return await transport(config);\n }\n if (!coalescedRequestsByDeduplicationKey) {\n Promise.resolve().then(() => {\n coalescedRequestsByDeduplicationKey = undefined;\n });\n coalescedRequestsByDeduplicationKey = {};\n }\n if (coalescedRequestsByDeduplicationKey[deduplicationKey] == null) {\n const abortController = new AbortController();\n coalescedRequestsByDeduplicationKey[deduplicationKey] = {\n abortController,\n numConsumers: 0,\n responsePromise: transport<TResponse>({\n ...config,\n signal: abortController.signal,\n }),\n };\n }\n const coalescedRequest = coalescedRequestsByDeduplicationKey[deduplicationKey];\n coalescedRequest.numConsumers++;\n if (signal) {\n const responsePromise = coalescedRequest.responsePromise as Promise<TResponse>;\n return await new Promise<TResponse>((resolve, reject) => {\n const handleAbort = (e: AbortSignalEventMap['abort']) => {\n signal.removeEventListener('abort', handleAbort);\n coalescedRequest.numConsumers -= 1;\n if (coalescedRequest.numConsumers === 0) {\n const abortController = coalescedRequest.abortController;\n abortController.abort();\n }\n const abortError = new DOMException((e.target as AbortSignal).reason, 'AbortError');\n reject(abortError);\n };\n signal.addEventListener('abort', handleAbort);\n responsePromise.then(resolve).finally(() => {\n signal.removeEventListener('abort', handleAbort);\n });\n });\n } else {\n return (await coalescedRequest.responsePromise) as TResponse;\n }\n };\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\n\nexport function getSolanaRpcPayloadDeduplicationKey(payload: unknown): string | undefined {\n if (payload == null || typeof payload !== 'object' || Array.isArray(payload)) {\n return;\n }\n if ('jsonrpc' in payload && payload.jsonrpc === '2.0' && 'method' in payload && 'params' in payload) {\n return fastStableStringify([payload.method, payload.params]);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../build-scripts/env-shim.ts","../../../node_modules/.pnpm/fast-stable-stringify@1.0.0/node_modules/fast-stable-stringify/index.js","../src/index.ts","../../instructions/src/roles.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers@0.8.5/node_modules/@metaplex-foundation/umi-serializers/dist/esm/index.mjs","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/dist/esm/index.mjs","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/src/bytes.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/src/errors.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-core@0.8.2/node_modules/@metaplex-foundation/umi-serializers-core/src/fixSerializer.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/dist/esm/index.mjs","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/errors.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/baseX.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/base58.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/nullCharacters.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-encodings@0.8.2/node_modules/@metaplex-foundation/umi-serializers-encodings/src/utf8.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/dist/esm/index.mjs","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/src/common.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/src/errors.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/src/utils.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers-numbers@0.8.2/node_modules/@metaplex-foundation/umi-serializers-numbers/src/u32.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers@0.8.5/node_modules/@metaplex-foundation/umi-serializers/src/utils.ts","../../../node_modules/.pnpm/@metaplex-foundation+umi-serializers@0.8.5/node_modules/@metaplex-foundation/umi-serializers/src/string.ts","../../keys/src/base58.ts","../../keys/src/guard.ts","../../keys/src/key-pair.ts","../../keys/src/pubkey.ts","../../keys/src/signatures.ts","../src/rpc.ts","../../rpc-core/src/params-patcher.ts","../../rpc-core/src/response-patcher-allowed-numeric-values.ts","../../rpc-core/src/response-patcher.ts","../../rpc-core/src/rpc-methods/index.ts","../../rpc-transport/src/json-rpc-errors.ts","../../rpc-transport/src/json-rpc-message-id.ts","../../rpc-transport/src/json-rpc-message.ts","../../rpc-transport/src/json-rpc.ts","../../fetch-impl/src/index.browser.ts","../../rpc-transport/src/transports/http/http-transport-errors.ts","../../rpc-transport/src/transports/http/http-transport-headers.ts","../../rpc-transport/src/transports/http/http-transport.ts","../src/rpc-default-config.ts","../src/rpc-integer-overflow-error.ts","../src/rpc-transport.ts","../src/rpc-request-coalescer.ts","../src/rpc-request-deduplication.ts"],"names":["AccountRole","mergeBytes","bytesArr","totalLength","reduce","total","arr","length","result","Uint8Array","offset","forEach","set","padBytes","bytes","paddedBytes","fill","fixBytes","slice","DeserializingEmptyBufferError","Error","constructor","serializer","name","NotEnoughBytesError","expected","actual","fixSerializer","fixedBytes","description","fixedSize","maxSize","serialize","value","deserialize","buffer","InvalidBaseStringError","base","cause","message","baseX","alphabet","baseBigInt","BigInt","match","RegExp","chars","trailIndex","findIndex","c","leadingZeroes","Array","from","tailChars","base10Number","baseXPower","i","indexOf","tailBytes","unshift","Number","concat","n","repeat","sum","byte","join","base58","removeNullCharacters","replace","utf8","TextEncoder","encode","TextDecoder","decode","Endian","NumberOutOfRangeError","RangeError","min","max","numberFactory","input","littleEndian","defaultDescription","size","options","endian","Little","range","assertRange","ArrayBuffer","DataView","assertEnoughBytes","view","toDataView","get","toArrayBuffer","array","byteOffset","byteLength","u32","le","setUint32","getUint32","getSizeDescription","string","encoding","contentBytes","lengthBytes","lengthBigInt","lengthOffset","contentBuffer","contentOffset","e","__DEV__","visitNode","index_browser_default","fastStableStringify","normalizeHeaders"],"mappings":"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","sourcesContent":["// Clever obfuscation to prevent the build system from inlining the value of `NODE_ENV`\nexport const __DEV__ = /* @__PURE__ */ (() => (process as any)['en' + 'v'].NODE_ENV === 'development')();\n","var objToString = Object.prototype.toString;\nvar objKeys = Object.keys || function(obj) {\n\t\tvar keys = [];\n\t\tfor (var name in obj) {\n\t\t\tkeys.push(name);\n\t\t}\n\t\treturn keys;\n\t};\n\nfunction stringify(val, isArrayProp) {\n\tvar i, max, str, keys, key, propVal, toStr;\n\tif (val === true) {\n\t\treturn \"true\";\n\t}\n\tif (val === false) {\n\t\treturn \"false\";\n\t}\n\tswitch (typeof val) {\n\t\tcase \"object\":\n\t\t\tif (val === null) {\n\t\t\t\treturn null;\n\t\t\t} else if (val.toJSON && typeof val.toJSON === \"function\") {\n\t\t\t\treturn stringify(val.toJSON(), isArrayProp);\n\t\t\t} else {\n\t\t\t\ttoStr = objToString.call(val);\n\t\t\t\tif (toStr === \"[object Array]\") {\n\t\t\t\t\tstr = '[';\n\t\t\t\t\tmax = val.length - 1;\n\t\t\t\t\tfor(i = 0; i < max; i++) {\n\t\t\t\t\t\tstr += stringify(val[i], true) + ',';\n\t\t\t\t\t}\n\t\t\t\t\tif (max > -1) {\n\t\t\t\t\t\tstr += stringify(val[i], true);\n\t\t\t\t\t}\n\t\t\t\t\treturn str + ']';\n\t\t\t\t} else if (toStr === \"[object Object]\") {\n\t\t\t\t\t// only object is left\n\t\t\t\t\tkeys = objKeys(val).sort();\n\t\t\t\t\tmax = keys.length;\n\t\t\t\t\tstr = \"\";\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile (i < max) {\n\t\t\t\t\t\tkey = keys[i];\n\t\t\t\t\t\tpropVal = stringify(val[key], false);\n\t\t\t\t\t\tif (propVal !== undefined) {\n\t\t\t\t\t\t\tif (str) {\n\t\t\t\t\t\t\t\tstr += ',';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstr += JSON.stringify(key) + ':' + propVal;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ti++;\n\t\t\t\t\t}\n\t\t\t\t\treturn '{' + str + '}';\n\t\t\t\t} else {\n\t\t\t\t\treturn JSON.stringify(val);\n\t\t\t\t}\n\t\t\t}\n\t\tcase \"function\":\n\t\tcase \"undefined\":\n\t\t\treturn isArrayProp ? null : undefined;\n\t\tcase \"string\":\n\t\t\treturn JSON.stringify(val);\n\t\tdefault:\n\t\t\treturn isFinite(val) ? val : null;\n\t}\n}\n\nmodule.exports = function(val) {\n\tvar returnVal = stringify(val, false);\n\tif (returnVal !== undefined) {\n\t\treturn ''+ returnVal;\n\t}\n};\n","export * from '@solana/instructions';\nexport * from '@solana/keys';\nexport * from './rpc';\nexport * from './rpc-transport';\n","/**\n * Quick primer on bitwise operations: https://stackoverflow.com/a/1436448/802047\n */\n\nexport enum AccountRole {\n // Bitflag guide: is signer ⌄⌄ is writable\n WRITABLE_SIGNER = /* 3 */ 0b11, // prettier-ignore\n READONLY_SIGNER = /* 2 */ 0b10, // prettier-ignore\n WRITABLE = /* 1 */ 0b01, // prettier-ignore\n READONLY = /* 0 */ 0b00, // prettier-ignore\n}\n\nconst IS_SIGNER_BITMASK = 0b10;\nconst IS_WRITABLE_BITMASK = 0b01;\n\nexport function downgradeRoleToNonSigner(role: AccountRole.READONLY_SIGNER): AccountRole.READONLY;\nexport function downgradeRoleToNonSigner(role: AccountRole.WRITABLE_SIGNER): AccountRole.WRITABLE;\nexport function downgradeRoleToNonSigner(role: AccountRole): AccountRole;\nexport function downgradeRoleToNonSigner(role: AccountRole): AccountRole {\n return role & ~IS_SIGNER_BITMASK;\n}\n\nexport function downgradeRoleToReadonly(role: AccountRole.WRITABLE): AccountRole.READONLY;\nexport function downgradeRoleToReadonly(role: AccountRole.WRITABLE_SIGNER): AccountRole.READONLY_SIGNER;\nexport function downgradeRoleToReadonly(role: AccountRole): AccountRole;\nexport function downgradeRoleToReadonly(role: AccountRole): AccountRole {\n return role & ~IS_WRITABLE_BITMASK;\n}\n\nexport function isSignerRole(role: AccountRole): role is AccountRole.READONLY_SIGNER | AccountRole.WRITABLE_SIGNER {\n return role >= AccountRole.READONLY_SIGNER;\n}\n\nexport function isWritableRole(role: AccountRole): role is AccountRole.WRITABLE | AccountRole.WRITABLE_SIGNER {\n return (role & IS_WRITABLE_BITMASK) !== 0;\n}\n\nexport function mergeRoles(roleA: AccountRole.WRITABLE, roleB: AccountRole.READONLY_SIGNER): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.READONLY_SIGNER, roleB: AccountRole.WRITABLE): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole.WRITABLE_SIGNER): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.WRITABLE_SIGNER, roleB: AccountRole): AccountRole.WRITABLE_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole.READONLY_SIGNER): AccountRole.READONLY_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.READONLY_SIGNER, roleB: AccountRole): AccountRole.READONLY_SIGNER; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole.WRITABLE): AccountRole.WRITABLE; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.WRITABLE, roleB: AccountRole): AccountRole.WRITABLE; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole.READONLY, roleB: AccountRole.READONLY): AccountRole.READONLY; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole): AccountRole; // prettier-ignore\nexport function mergeRoles(roleA: AccountRole, roleB: AccountRole): AccountRole {\n return roleA | roleB;\n}\n\nexport function upgradeRoleToSigner(role: AccountRole.READONLY): AccountRole.READONLY_SIGNER;\nexport function upgradeRoleToSigner(role: AccountRole.WRITABLE): AccountRole.WRITABLE_SIGNER;\nexport function upgradeRoleToSigner(role: AccountRole): AccountRole;\nexport function upgradeRoleToSigner(role: AccountRole): AccountRole {\n return role | IS_SIGNER_BITMASK;\n}\n\nexport function upgradeRoleToWritable(role: AccountRole.READONLY): AccountRole.WRITABLE;\nexport function upgradeRoleToWritable(role: AccountRole.READONLY_SIGNER): AccountRole.WRITABLE_SIGNER;\nexport function upgradeRoleToWritable(role: AccountRole): AccountRole;\nexport function upgradeRoleToWritable(role: AccountRole): AccountRole {\n return role | IS_WRITABLE_BITMASK;\n}\n","export * from '@metaplex-foundation/umi-serializers-core';\nexport * from '@metaplex-foundation/umi-serializers-encodings';\nexport * from '@metaplex-foundation/umi-serializers-numbers';\nexport { array } from './array.mjs';\nexport { bitArray } from './bitArray.mjs';\nexport { bool } from './bool.mjs';\nexport { bytes } from './bytes.mjs';\nexport { dataEnum } from './dataEnum.mjs';\nexport { EnumDiscriminatorOutOfRangeError, InvalidArrayLikeRemainderSizeError, InvalidDataEnumVariantError, InvalidNumberOfItemsError, InvalidScalarEnumVariantError, UnrecognizedArrayLikeSerializerSizeError } from './errors.mjs';\nexport { map } from './map.mjs';\nexport { nullable } from './nullable.mjs';\nexport { option } from './option.mjs';\nexport { publicKey } from './publicKey.mjs';\nexport { scalarEnum } from './scalarEnum.mjs';\nexport { set } from './set.mjs';\nexport { string } from './string.mjs';\nexport { struct } from './struct.mjs';\nexport { tuple } from './tuple.mjs';\nexport { unit } from './unit.mjs';\nexport { maxSerializerSizes } from './maxSerializerSizes.mjs';\nexport { sumSerializerSizes } from './sumSerializerSizes.mjs';\n//# sourceMappingURL=index.mjs.map\n","export { fixBytes, mergeBytes, padBytes } from './bytes.mjs';\nexport { DeserializingEmptyBufferError, ExpectedFixedSizeSerializerError, NotEnoughBytesError } from './errors.mjs';\nexport { fixSerializer } from './fixSerializer.mjs';\nexport { mapSerializer } from './mapSerializer.mjs';\nexport { reverseSerializer } from './reverseSerializer.mjs';\n//# sourceMappingURL=index.mjs.map\n","/**\n * Concatenates an array of `Uint8Array`s into a single `Uint8Array`.\n * @category Utils\n */\nexport const mergeBytes = (bytesArr: Uint8Array[]): Uint8Array => {\n const totalLength = bytesArr.reduce((total, arr) => total + arr.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n bytesArr.forEach((arr) => {\n result.set(arr, offset);\n offset += arr.length;\n });\n return result;\n};\n\n/**\n * Pads a `Uint8Array` with zeroes to the specified length.\n * If the array is longer than the specified length, it is returned as-is.\n * @category Utils\n */\nexport const padBytes = (bytes: Uint8Array, length: number): Uint8Array => {\n if (bytes.length >= length) return bytes;\n const paddedBytes = new Uint8Array(length).fill(0);\n paddedBytes.set(bytes);\n return paddedBytes;\n};\n\n/**\n * Fixes a `Uint8Array` to the specified length.\n * If the array is longer than the specified length, it is truncated.\n * If the array is shorter than the specified length, it is padded with zeroes.\n * @category Utils\n */\nexport const fixBytes = (bytes: Uint8Array, length: number): Uint8Array =>\n padBytes(bytes.slice(0, length), length);\n","/** @category Errors */\nexport class DeserializingEmptyBufferError extends Error {\n readonly name: string = 'DeserializingEmptyBufferError';\n\n constructor(serializer: string) {\n super(`Serializer [${serializer}] cannot deserialize empty buffers.`);\n }\n}\n\n/** @category Errors */\nexport class NotEnoughBytesError extends Error {\n readonly name: string = 'NotEnoughBytesError';\n\n constructor(\n serializer: string,\n expected: bigint | number,\n actual: bigint | number\n ) {\n super(\n `Serializer [${serializer}] expected ${expected} bytes, got ${actual}.`\n );\n }\n}\n\n/** @category Errors */\nexport class ExpectedFixedSizeSerializerError extends Error {\n readonly name: string = 'ExpectedFixedSizeSerializerError';\n\n constructor(message?: string) {\n message ??= 'Expected a fixed-size serializer, got a variable-size one.';\n super(message);\n }\n}\n","import { fixBytes } from './bytes';\nimport { Serializer } from './common';\nimport { NotEnoughBytesError } from './errors';\n\n/**\n * Creates a fixed-size serializer from a given serializer.\n *\n * @param serializer - The serializer to wrap into a fixed-size serializer.\n * @param fixedBytes - The fixed number of bytes to read.\n * @param description - A custom description for the serializer.\n *\n * @category Serializers\n */\nexport function fixSerializer<T, U extends T = T>(\n serializer: Serializer<T, U>,\n fixedBytes: number,\n description?: string\n): Serializer<T, U> {\n return {\n description:\n description ?? `fixed(${fixedBytes}, ${serializer.description})`,\n fixedSize: fixedBytes,\n maxSize: fixedBytes,\n serialize: (value: T) => fixBytes(serializer.serialize(value), fixedBytes),\n deserialize: (buffer: Uint8Array, offset = 0) => {\n // Slice the buffer to the fixed size.\n buffer = buffer.slice(offset, offset + fixedBytes);\n // Ensure we have enough bytes.\n if (buffer.length < fixedBytes) {\n throw new NotEnoughBytesError(\n 'fixSerializer',\n fixedBytes,\n buffer.length\n );\n }\n // If the nested serializer is fixed-size, pad and truncate the buffer accordingly.\n if (serializer.fixedSize !== null) {\n buffer = fixBytes(buffer, serializer.fixedSize);\n }\n // Deserialize the value using the nested serializer.\n const [value] = serializer.deserialize(buffer, 0);\n return [value, offset + fixedBytes];\n },\n };\n}\n","export { base10 } from './base10.mjs';\nexport { base16 } from './base16.mjs';\nexport { base58 } from './base58.mjs';\nexport { base64 } from './base64.mjs';\nexport { baseX } from './baseX.mjs';\nexport { InvalidBaseStringError } from './errors.mjs';\nexport { padNullCharacters, removeNullCharacters } from './nullCharacters.mjs';\nexport { utf8 } from './utf8.mjs';\n//# sourceMappingURL=index.mjs.map\n","/** @category Errors */\nexport class InvalidBaseStringError extends Error {\n readonly name: string = 'InvalidBaseStringError';\n\n readonly cause?: Error;\n\n constructor(value: string, base: number, cause?: Error) {\n const message = `Expected a string of base ${base}, got [${value}].`;\n super(message);\n this.cause = cause;\n }\n}\n","import type { Serializer } from '@metaplex-foundation/umi-serializers-core';\nimport { InvalidBaseStringError } from './errors';\n\n/**\n * A string serializer that uses a custom alphabet.\n * This can be used to create serializers for base58, base64, etc.\n * @category Serializers\n */\nexport const baseX = (alphabet: string): Serializer<string> => {\n const base = alphabet.length;\n const baseBigInt = BigInt(base);\n return {\n description: `base${base}`,\n fixedSize: null,\n maxSize: null,\n serialize(value: string): Uint8Array {\n // Check if the value is valid.\n if (!value.match(new RegExp(`^[${alphabet}]*$`))) {\n throw new InvalidBaseStringError(value, base);\n }\n if (value === '') return new Uint8Array();\n\n // Handle leading zeroes.\n const chars = [...value];\n let trailIndex = chars.findIndex((c) => c !== alphabet[0]);\n trailIndex = trailIndex === -1 ? chars.length : trailIndex;\n const leadingZeroes = Array(trailIndex).fill(0);\n if (trailIndex === chars.length) return Uint8Array.from(leadingZeroes);\n\n // From baseX to base10.\n const tailChars = chars.slice(trailIndex);\n let base10Number = 0n;\n let baseXPower = 1n;\n for (let i = tailChars.length - 1; i >= 0; i -= 1) {\n base10Number += baseXPower * BigInt(alphabet.indexOf(tailChars[i]));\n baseXPower *= baseBigInt;\n }\n\n // From base10 to bytes.\n const tailBytes = [];\n while (base10Number > 0n) {\n tailBytes.unshift(Number(base10Number % 256n));\n base10Number /= 256n;\n }\n return Uint8Array.from(leadingZeroes.concat(tailBytes));\n },\n deserialize(buffer, offset = 0): [string, number] {\n if (buffer.length === 0) return ['', 0];\n\n // Handle leading zeroes.\n const bytes = buffer.slice(offset);\n let trailIndex = bytes.findIndex((n) => n !== 0);\n trailIndex = trailIndex === -1 ? bytes.length : trailIndex;\n const leadingZeroes = alphabet[0].repeat(trailIndex);\n if (trailIndex === bytes.length) return [leadingZeroes, buffer.length];\n\n // From bytes to base10.\n let base10Number = bytes\n .slice(trailIndex)\n .reduce((sum, byte) => sum * 256n + BigInt(byte), 0n);\n\n // From base10 to baseX.\n const tailChars = [];\n while (base10Number > 0n) {\n tailChars.unshift(alphabet[Number(base10Number % baseBigInt)]);\n base10Number /= baseBigInt;\n }\n\n return [leadingZeroes + tailChars.join(''), buffer.length];\n },\n };\n};\n","import type { Serializer } from '@metaplex-foundation/umi-serializers-core';\nimport { baseX } from './baseX';\n\n/**\n * A string serializer that uses base58 encoding.\n * @category Serializers\n */\nexport const base58: Serializer<string> = baseX(\n '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n);\n","/**\n * Removes null characters from a string.\n * @category Utils\n */\nexport const removeNullCharacters = (value: string) =>\n // eslint-disable-next-line no-control-regex\n value.replace(/\\u0000/g, '');\n\n/**\n * Pads a string with null characters at the end.\n * @category Utils\n */\nexport const padNullCharacters = (value: string, chars: number) =>\n value.padEnd(chars, '\\u0000');\n","import type { Serializer } from '@metaplex-foundation/umi-serializers-core';\nimport { removeNullCharacters } from './nullCharacters';\n\n/**\n * A string serializer that uses UTF-8 encoding\n * using the native `TextEncoder` API.\n * @category Serializers\n */\nexport const utf8: Serializer<string> = {\n description: 'utf8',\n fixedSize: null,\n maxSize: null,\n serialize(value: string) {\n return new TextEncoder().encode(value);\n },\n deserialize(buffer, offset = 0) {\n const value = new TextDecoder().decode(buffer.slice(offset));\n return [removeNullCharacters(value), buffer.length];\n },\n};\n","export { Endian } from './common.mjs';\nexport { NumberOutOfRangeError } from './errors.mjs';\nexport { f32 } from './f32.mjs';\nexport { f64 } from './f64.mjs';\nexport { i8 } from './i8.mjs';\nexport { i16 } from './i16.mjs';\nexport { i32 } from './i32.mjs';\nexport { i64 } from './i64.mjs';\nexport { i128 } from './i128.mjs';\nexport { u8 } from './u8.mjs';\nexport { u16 } from './u16.mjs';\nexport { u32 } from './u32.mjs';\nexport { u64 } from './u64.mjs';\nexport { u128 } from './u128.mjs';\nexport { shortU16 } from './shortU16.mjs';\n//# sourceMappingURL=index.mjs.map\n","import {\n BaseSerializerOptions,\n Serializer,\n} from '@metaplex-foundation/umi-serializers-core';\n\n/**\n * Defines a serializer for numbers and bigints.\n * @category Serializers\n */\nexport type NumberSerializer =\n | Serializer<number>\n | Serializer<number | bigint, bigint>;\n\n/**\n * Defines the options for u8 and i8 serializers.\n * @category Serializers\n */\nexport type SingleByteNumberSerializerOptions = BaseSerializerOptions;\n\n/**\n * Defines the options for number serializers that use more than one byte.\n * @category Serializers\n */\nexport type NumberSerializerOptions = BaseSerializerOptions & {\n /**\n * Whether the serializer should use little-endian or big-endian encoding.\n * @defaultValue `Endian.Little`\n */\n endian?: Endian;\n};\n\n/**\n * Defines the endianness of a number serializer.\n * @category Serializers\n */\nexport enum Endian {\n Little = 'le',\n Big = 'be',\n}\n","/** @category Errors */\nexport class NumberOutOfRangeError extends RangeError {\n readonly name: string = 'NumberOutOfRangeError';\n\n constructor(\n serializer: string,\n min: number | bigint,\n max: number | bigint,\n actual: number | bigint\n ) {\n super(\n `Serializer [${serializer}] expected number to be between ${min} and ${max}, got ${actual}.`\n );\n }\n}\n","import {\n DeserializingEmptyBufferError,\n NotEnoughBytesError,\n Serializer,\n} from '@metaplex-foundation/umi-serializers-core';\nimport {\n Endian,\n NumberSerializer,\n NumberSerializerOptions,\n SingleByteNumberSerializerOptions,\n} from './common';\nimport { NumberOutOfRangeError } from './errors';\n\nexport function numberFactory(input: {\n name: string;\n size: number;\n range?: [number | bigint, number | bigint];\n set: (view: DataView, value: number | bigint, littleEndian?: boolean) => void;\n get: (view: DataView, littleEndian?: boolean) => number;\n options: SingleByteNumberSerializerOptions | NumberSerializerOptions;\n}): Serializer<number>;\nexport function numberFactory(input: {\n name: string;\n size: number;\n range?: [number | bigint, number | bigint];\n set: (view: DataView, value: number | bigint, littleEndian?: boolean) => void;\n get: (view: DataView, littleEndian?: boolean) => bigint;\n options: SingleByteNumberSerializerOptions | NumberSerializerOptions;\n}): Serializer<number | bigint, bigint>;\nexport function numberFactory(input: {\n name: string;\n size: number;\n range?: [number | bigint, number | bigint];\n set: (view: DataView, value: number | bigint, littleEndian?: boolean) => void;\n get: (view: DataView, littleEndian?: boolean) => number | bigint;\n options: SingleByteNumberSerializerOptions | NumberSerializerOptions;\n}): NumberSerializer {\n let littleEndian: boolean | undefined;\n let defaultDescription: string = input.name;\n\n if (input.size > 1) {\n littleEndian =\n !('endian' in input.options) || input.options.endian === Endian.Little;\n defaultDescription += littleEndian ? '(le)' : '(be)';\n }\n\n return {\n description: input.options.description ?? defaultDescription,\n fixedSize: input.size,\n maxSize: input.size,\n serialize(value: number | bigint): Uint8Array {\n if (input.range) {\n assertRange(input.name, input.range[0], input.range[1], value);\n }\n const buffer = new ArrayBuffer(input.size);\n input.set(new DataView(buffer), value, littleEndian);\n return new Uint8Array(buffer);\n },\n deserialize(bytes, offset = 0): [number | bigint, number] {\n const slice = bytes.slice(offset, offset + input.size);\n assertEnoughBytes('i8', slice, input.size);\n const view = toDataView(slice);\n return [input.get(view, littleEndian), offset + input.size];\n },\n } as NumberSerializer;\n}\n\n/**\n * Helper function to ensure that the array buffer is converted properly from a uint8array\n * Source: https://stackoverflow.com/questions/37228285/uint8array-to-arraybuffer\n * @param {Uint8Array} array Uint8array that's being converted into an array buffer\n * @returns {ArrayBuffer} An array buffer that's necessary to construct a data view\n */\nexport const toArrayBuffer = (array: Uint8Array): ArrayBuffer =>\n array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset);\n\nexport const toDataView = (array: Uint8Array): DataView =>\n new DataView(toArrayBuffer(array));\n\nexport const assertRange = (\n serializer: string,\n min: number | bigint,\n max: number | bigint,\n value: number | bigint\n) => {\n if (value < min || value > max) {\n throw new NumberOutOfRangeError(serializer, min, max, value);\n }\n};\n\nexport const assertEnoughBytes = (\n serializer: string,\n bytes: Uint8Array,\n expected: number\n) => {\n if (bytes.length === 0) {\n throw new DeserializingEmptyBufferError(serializer);\n }\n if (bytes.length < expected) {\n throw new NotEnoughBytesError(serializer, expected, bytes.length);\n }\n};\n","import { Serializer } from '@metaplex-foundation/umi-serializers-core';\nimport { NumberSerializerOptions } from './common';\nimport { numberFactory } from './utils';\n\nexport const u32 = (\n options: NumberSerializerOptions = {}\n): Serializer<number> =>\n numberFactory({\n name: 'u32',\n size: 4,\n range: [0, Number('0xffffffff')],\n set: (view, value, le) => view.setUint32(0, Number(value), le),\n get: (view, le) => view.getUint32(0, le),\n options,\n });\n","import { ExpectedFixedSizeSerializerError } from '@metaplex-foundation/umi-serializers-core';\nimport { ArrayLikeSerializerSize } from './arrayLikeSerializerSize';\nimport {\n InvalidArrayLikeRemainderSizeError,\n UnrecognizedArrayLikeSerializerSizeError,\n} from './errors';\nimport { sumSerializerSizes } from './sumSerializerSizes';\n\nexport function getResolvedSize(\n size: ArrayLikeSerializerSize,\n childrenSizes: (number | null)[],\n bytes: Uint8Array,\n offset: number\n): [number | bigint, number] {\n if (typeof size === 'number') {\n return [size, offset];\n }\n\n if (typeof size === 'object') {\n return size.deserialize(bytes, offset);\n }\n\n if (size === 'remainder') {\n const childrenSize = sumSerializerSizes(childrenSizes);\n if (childrenSize === null) {\n throw new ExpectedFixedSizeSerializerError(\n 'Serializers of \"remainder\" size must have fixed-size items.'\n );\n }\n const remainder = bytes.slice(offset).length;\n if (remainder % childrenSize !== 0) {\n throw new InvalidArrayLikeRemainderSizeError(remainder, childrenSize);\n }\n return [remainder / childrenSize, offset];\n }\n\n throw new UnrecognizedArrayLikeSerializerSizeError(size);\n}\n\nexport function getSizeDescription(\n size: ArrayLikeSerializerSize | string\n): string {\n return typeof size === 'object' ? size.description : `${size}`;\n}\n\nexport function getSizeFromChildren(\n size: ArrayLikeSerializerSize,\n childrenSizes: (number | null)[]\n): number | null {\n if (typeof size !== 'number') return null;\n if (size === 0) return 0;\n const childrenSize = sumSerializerSizes(childrenSizes);\n return childrenSize === null ? null : childrenSize * size;\n}\n\nexport function getSizePrefix(\n size: ArrayLikeSerializerSize,\n realSize: number\n): Uint8Array {\n return typeof size === 'object' ? size.serialize(realSize) : new Uint8Array();\n}\n","import {\n BaseSerializerOptions,\n DeserializingEmptyBufferError,\n NotEnoughBytesError,\n Serializer,\n fixSerializer,\n mergeBytes,\n} from '@metaplex-foundation/umi-serializers-core';\nimport { utf8 } from '@metaplex-foundation/umi-serializers-encodings';\nimport {\n NumberSerializer,\n u32,\n} from '@metaplex-foundation/umi-serializers-numbers';\nimport { getSizeDescription } from './utils';\n\n/**\n * Defines the options for string serializers.\n * @category Serializers\n */\nexport type StringSerializerOptions = BaseSerializerOptions & {\n /**\n * The size of the string. It can be one of the following:\n * - a {@link NumberSerializer} that prefixes the string with its size.\n * - a fixed number of bytes.\n * - or `'variable'` to use the rest of the buffer.\n * @defaultValue `u32()`\n */\n size?: NumberSerializer | number | 'variable';\n /**\n * The string serializer to use for encoding and decoding the content.\n * @defaultValue `utf8`\n */\n encoding?: Serializer<string>;\n};\n\n/**\n * Creates a string serializer.\n *\n * @param options - A set of options for the serializer.\n * @category Serializers\n */\nexport function string(\n options: StringSerializerOptions = {}\n): Serializer<string> {\n const size = options.size ?? u32();\n const encoding = options.encoding ?? utf8;\n const description =\n options.description ??\n `string(${encoding.description}; ${getSizeDescription(size)})`;\n\n if (size === 'variable') {\n return { ...encoding, description };\n }\n\n if (typeof size === 'number') {\n return fixSerializer(encoding, size, description);\n }\n\n return {\n description,\n fixedSize: null,\n maxSize: null,\n serialize: (value: string) => {\n const contentBytes = encoding.serialize(value);\n const lengthBytes = size.serialize(contentBytes.length);\n return mergeBytes([lengthBytes, contentBytes]);\n },\n deserialize: (buffer: Uint8Array, offset = 0) => {\n if (buffer.slice(offset).length === 0) {\n throw new DeserializingEmptyBufferError('string');\n }\n const [lengthBigInt, lengthOffset] = size.deserialize(buffer, offset);\n const length = Number(lengthBigInt);\n offset = lengthOffset;\n const contentBuffer = buffer.slice(offset, offset + length);\n if (contentBuffer.length < length) {\n throw new NotEnoughBytesError('string', length, contentBuffer.length);\n }\n const [value, contentOffset] = encoding.deserialize(contentBuffer);\n offset += contentOffset;\n return [value, offset];\n },\n };\n}\n","import { base58, Serializer, string } from '@metaplex-foundation/umi-serializers';\n\nexport type Base58EncodedAddress<TAddress extends string = string> = TAddress & {\n readonly __base58EncodedAddress: unique symbol;\n};\n\nexport function assertIsBase58EncodedAddress(\n putativeBase58EncodedAddress: string\n): asserts putativeBase58EncodedAddress is Base58EncodedAddress<typeof putativeBase58EncodedAddress> {\n try {\n // Fast-path; see if the input string is of an acceptable length.\n if (\n // Lowest address (32 bytes of zeroes)\n putativeBase58EncodedAddress.length < 32 ||\n // Highest address (32 bytes of 255)\n putativeBase58EncodedAddress.length > 44\n ) {\n throw new Error('Expected input string to decode to a byte array of length 32.');\n }\n // Slow-path; actually attempt to decode the input string.\n const bytes = base58.serialize(putativeBase58EncodedAddress);\n const numBytes = bytes.byteLength;\n if (numBytes !== 32) {\n throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${numBytes}`);\n }\n } catch (e) {\n throw new Error(`\\`${putativeBase58EncodedAddress}\\` is not a base-58 encoded address`, {\n cause: e,\n });\n }\n}\n\nexport function getBase58EncodedAddressCodec(\n config?: Readonly<{\n description: string;\n }>\n): Serializer<Base58EncodedAddress> {\n return string({\n description: config?.description ?? (__DEV__ ? 'A 32-byte account address' : ''),\n encoding: base58,\n size: 32,\n }) as unknown as Serializer<Base58EncodedAddress>;\n}\n\nexport function getBase58EncodedAddressComparator(): (x: string, y: string) => number {\n return new Intl.Collator('en', {\n caseFirst: 'lower',\n ignorePunctuation: false,\n localeMatcher: 'best fit',\n numeric: false,\n sensitivity: 'variant',\n usage: 'sort',\n }).compare;\n}\n","function assertIsSecureContext() {\n if (__BROWSER__ && !globalThis.isSecureContext) {\n // TODO: Coded error.\n throw new Error(\n 'Cryptographic operations are only allowed in secure browser contexts. Read more ' +\n 'here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts'\n );\n }\n}\n\nlet cachedEd25519Decision: PromiseLike<boolean> | boolean | undefined;\nasync function isEd25519CurveSupported(subtle: SubtleCrypto): Promise<boolean> {\n if (cachedEd25519Decision === undefined) {\n cachedEd25519Decision = new Promise(resolve => {\n subtle\n .generateKey('Ed25519', /* extractable */ false, ['sign', 'verify'])\n .catch(() => {\n resolve((cachedEd25519Decision = false));\n })\n .then(() => {\n resolve((cachedEd25519Decision = true));\n });\n });\n }\n if (typeof cachedEd25519Decision === 'boolean') {\n return cachedEd25519Decision;\n } else {\n return await cachedEd25519Decision;\n }\n}\n\nexport async function assertKeyGenerationIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.generateKey !== 'function') {\n // TODO: Coded error.\n throw new Error('No key generation implementation could be found');\n }\n if (!(await isEd25519CurveSupported(globalThis.crypto.subtle))) {\n // TODO: Coded error.\n throw new Error(\n 'This runtime does not support the generation of Ed25519 key pairs.\\n\\nInstall and ' +\n 'import `@solana/webcrypto-ed25519-polyfill` before generating keys in ' +\n 'environments that do not support Ed25519.\\n\\nFor a list of runtimes that ' +\n 'currently support Ed25519 operations, visit ' +\n 'https://github.com/WICG/webcrypto-secure-curves/issues/20'\n );\n }\n}\n\nexport async function assertKeyExporterIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.exportKey !== 'function') {\n // TODO: Coded error.\n throw new Error('No key export implementation could be found');\n }\n}\n\nexport async function assertSigningCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.sign !== 'function') {\n // TODO: Coded error.\n throw new Error('No signing implementation could be found');\n }\n}\n\nexport async function assertVerificationCapabilityIsAvailable() {\n assertIsSecureContext();\n if (typeof globalThis.crypto === 'undefined' || typeof globalThis.crypto.subtle?.verify !== 'function') {\n // TODO: Coded error.\n throw new Error('No signature verification implementation could be found');\n }\n}\n","import { assertKeyGenerationIsAvailable } from './guard';\n\nexport async function generateKeyPair(): Promise<CryptoKeyPair> {\n await assertKeyGenerationIsAvailable();\n const keyPair = await crypto.subtle.generateKey(\n /* algorithm */ 'Ed25519', // Native implementation status: https://github.com/WICG/webcrypto-secure-curves/issues/20\n /* extractable */ false, // Prevents the bytes of the private key from being visible to JS.\n /* allowed uses */ ['sign', 'verify']\n );\n return keyPair as CryptoKeyPair;\n}\n","import { Base58EncodedAddress, getBase58EncodedAddressCodec } from './base58';\nimport { assertKeyExporterIsAvailable } from './guard';\n\nexport async function getBase58EncodedAddressFromPublicKey(publicKey: CryptoKey): Promise<Base58EncodedAddress> {\n await assertKeyExporterIsAvailable();\n if (publicKey.type !== 'public' || publicKey.algorithm.name !== 'Ed25519') {\n // TODO: Coded error.\n throw new Error('The `CryptoKey` must be an `Ed25519` public key');\n }\n const publicKeyBytes = await crypto.subtle.exportKey('raw', publicKey);\n const [base58EncodedAddress] = getBase58EncodedAddressCodec().deserialize(new Uint8Array(publicKeyBytes));\n return base58EncodedAddress;\n}\n","import { assertSigningCapabilityIsAvailable, assertVerificationCapabilityIsAvailable } from './guard';\n\nexport type Ed25519Signature = Uint8Array & { readonly __ed25519Signature: unique symbol };\n\nexport async function signBytes(key: CryptoKey, data: Uint8Array): Promise<Ed25519Signature> {\n await assertSigningCapabilityIsAvailable();\n const signedData = await crypto.subtle.sign('Ed25519', key, data);\n return new Uint8Array(signedData) as Ed25519Signature;\n}\n\nexport async function verifySignature(key: CryptoKey, signature: Ed25519Signature, data: Uint8Array): Promise<boolean> {\n await assertVerificationCapabilityIsAvailable();\n return await crypto.subtle.verify('Ed25519', key, signature, data);\n}\n","import { createSolanaRpcApi, SolanaRpcMethods } from '@solana/rpc-core';\nimport { createJsonRpc } from '@solana/rpc-transport';\nimport type { Rpc } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { DEFAULT_RPC_CONFIG } from './rpc-default-config';\n\nexport function createSolanaRpc(config: Omit<Parameters<typeof createJsonRpc>[0], 'api'>): Rpc<SolanaRpcMethods> {\n return createJsonRpc<SolanaRpcMethods>({\n ...config,\n api: createSolanaRpcApi(DEFAULT_RPC_CONFIG),\n });\n}\n","type IntegerOverflowHandler = (keyPath: (number | string)[], value: bigint) => void;\ntype Patched<T> = T extends object ? { [Property in keyof T]: Patched<T[Property]> } : T extends bigint ? number : T;\n// FIXME(https://github.com/microsoft/TypeScript/issues/33014)\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TypescriptBug33014 = any;\n\nfunction visitNode<T>(value: T, keyPath: (number | string)[], onIntegerOverflow?: IntegerOverflowHandler): Patched<T> {\n if (Array.isArray(value)) {\n return value.map((element, ii) =>\n visitNode(element, [...keyPath, ii], onIntegerOverflow)\n ) as TypescriptBug33014;\n } else if (typeof value === 'object' && value !== null) {\n const out = {} as TypescriptBug33014;\n for (const propName in value) {\n if (Object.prototype.hasOwnProperty.call(value, propName)) {\n out[propName] = visitNode(value[propName], [...keyPath, propName], onIntegerOverflow);\n }\n }\n return out as TypescriptBug33014;\n } else if (typeof value === 'bigint') {\n // FIXME(solana-labs/solana/issues/30341) Create a data type to represent u64 in the Solana\n // JSON RPC implementation so that we can throw away this entire patcher instead of unsafely\n // downcasting `bigints` to `numbers`.\n if (onIntegerOverflow && (value > Number.MAX_SAFE_INTEGER || value < -Number.MAX_SAFE_INTEGER)) {\n onIntegerOverflow(keyPath, value);\n }\n return Number(value) as TypescriptBug33014;\n } else {\n return value as TypescriptBug33014;\n }\n}\n\nexport function patchParamsForSolanaLabsRpc<T>(params: T, onIntegerOverflow?: IntegerOverflowHandler): Patched<T> {\n return visitNode(params, [], onIntegerOverflow);\n}\n","import { KeyPath } from './response-patcher';\nimport { KEYPATH_WILDCARD } from './response-patcher-types';\nimport { createSolanaRpcApi } from './rpc-methods';\n\n/**\n * These are keypaths at the end of which you will find a numeric value that should *not* be upcast\n * to a `bigint`. These are values that are legitimately defined as `u8` or `usize` on the backend.\n */\nexport const ALLOWED_NUMERIC_KEYPATHS: Partial<\n Record<keyof ReturnType<typeof createSolanaRpcApi>, readonly KeyPath[]>\n> = {\n getAccountInfo: [\n // parsed AddressTableLookup account\n ['value', 'data', 'parsed', 'info', 'lastExtendedSlotStartIndex'],\n // parsed Config account\n ['value', 'data', 'parsed', 'info', 'slashPenalty'],\n ['value', 'data', 'parsed', 'info', 'warmupCooldownRate'],\n // parsed Token/Token22 token account\n ['value', 'data', 'parsed', 'info', 'tokenAmount', 'decimals'],\n ['value', 'data', 'parsed', 'info', 'tokenAmount', 'uiAmount'],\n ['value', 'data', 'parsed', 'info', 'rentExemptReserve', 'decimals'],\n ['value', 'data', 'parsed', 'info', 'delegatedAmount', 'decimals'],\n [\n 'value',\n 'data',\n 'parsed',\n 'info',\n 'extensions',\n KEYPATH_WILDCARD,\n 'state',\n 'olderTransferFee',\n 'transferFeeBasisPoints',\n ],\n [\n 'value',\n 'data',\n 'parsed',\n 'info',\n 'extensions',\n KEYPATH_WILDCARD,\n 'state',\n 'newerTransferFee',\n 'transferFeeBasisPoints',\n ],\n ['value', 'data', 'parsed', 'info', 'extensions', KEYPATH_WILDCARD, 'state', 'preUpdateAverageRate'],\n ['value', 'data', 'parsed', 'info', 'extensions', KEYPATH_WILDCARD, 'state', 'currentRate'],\n // parsed Token/Token22 mint account\n ['value', 'data', 'parsed', 'info', 'decimals'],\n // parsed Token/Token22 multisig account\n ['value', 'data', 'parsed', 'info', 'numRequiredSigners'],\n ['value', 'data', 'parsed', 'info', 'numValidSigners'],\n // parsed Stake account\n ['value', 'data', 'parsed', 'info', 'stake', 'delegation', 'warmupCooldownRate'],\n // parsed Sysvar rent account\n ['value', 'data', 'parsed', 'info', 'exemptionThreshold'],\n ['value', 'data', 'parsed', 'info', 'burnPercent'],\n // parsed Vote account\n ['value', 'data', 'parsed', 'info', 'commission'],\n ['value', 'data', 'parsed', 'info', 'votes', KEYPATH_WILDCARD, 'confirmationCount'],\n ],\n getBlockTime: [[]],\n getInflationReward: [[KEYPATH_WILDCARD, 'commission']],\n getRecentPerformanceSamples: [[KEYPATH_WILDCARD, 'samplePeriodSecs']],\n getTokenLargestAccounts: [\n ['value', KEYPATH_WILDCARD, 'decimals'],\n ['value', KEYPATH_WILDCARD, 'uiAmount'],\n ],\n getTransaction: [\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'preTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'accountIndex'],\n ['meta', 'postTokenBalances', KEYPATH_WILDCARD, 'uiTokenAmount', 'decimals'],\n ['meta', 'rewards', KEYPATH_WILDCARD, 'commission'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'index'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n ['meta', 'innerInstructions', KEYPATH_WILDCARD, 'instructions', KEYPATH_WILDCARD, 'accounts', KEYPATH_WILDCARD],\n ['transaction', 'message', 'addressTableLookups', KEYPATH_WILDCARD, 'writableIndexes', KEYPATH_WILDCARD],\n ['transaction', 'message', 'addressTableLookups', KEYPATH_WILDCARD, 'readonlyIndexes', KEYPATH_WILDCARD],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'programIdIndex'],\n ['transaction', 'message', 'instructions', KEYPATH_WILDCARD, 'accounts', KEYPATH_WILDCARD],\n ['transaction', 'message', 'header', 'numReadonlySignedAccounts'],\n ['transaction', 'message', 'header', 'numReadonlyUnsignedAccounts'],\n ['transaction', 'message', 'header', 'numRequiredSignatures'],\n ],\n getVoteAccounts: [\n ['current', KEYPATH_WILDCARD, 'commission'],\n ['delinquent', KEYPATH_WILDCARD, 'commission'],\n ],\n};\n","import { ALLOWED_NUMERIC_KEYPATHS } from './response-patcher-allowed-numeric-values';\nimport { KEYPATH_WILDCARD, KeyPathWildcard } from './response-patcher-types';\nimport { createSolanaRpcApi } from './rpc-methods';\n\nexport type KeyPath = ReadonlyArray<KeyPathWildcard | number | string | KeyPath>;\n// FIXME(https://github.com/microsoft/TypeScript/issues/33014)\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TypescriptBug33014 = any;\n\nfunction getNextAllowedKeypaths(keyPaths: readonly KeyPath[], property: number | string) {\n return keyPaths\n .filter(keyPath => (keyPath[0] === KEYPATH_WILDCARD && typeof property === 'number') || keyPath[0] === property)\n .map(keyPath => keyPath.slice(1));\n}\n\nfunction visitNode<T>(value: unknown, allowedKeypaths: readonly KeyPath[]): T {\n if (Array.isArray(value)) {\n return value.map((element, ii) => {\n const nextAllowedKeypaths = getNextAllowedKeypaths(allowedKeypaths, ii);\n return visitNode(element, nextAllowedKeypaths);\n }) as TypescriptBug33014;\n } else if (typeof value === 'object' && value !== null) {\n const out = {} as TypescriptBug33014;\n for (const [propName, innerValue] of Object.entries(value)) {\n const nextAllowedKeypaths = getNextAllowedKeypaths(allowedKeypaths, propName);\n out[propName] = visitNode(innerValue, nextAllowedKeypaths);\n }\n return out as TypescriptBug33014;\n } else if (\n typeof value === 'number' &&\n // The presence of an allowed keypath on the route to this value implies it's allowlisted;\n // Upcast the value to `bigint` unless an allowed keypath is present.\n allowedKeypaths.length === 0 &&\n // Only try to upcast an Integer to `bigint`\n Number.isInteger(value)\n ) {\n // FIXME(solana-labs/solana/issues/30341) Create a data type to represent u64 in the Solana\n // JSON RPC implementation so that we can throw away this entire patcher instead of unsafely\n // upcasting `numbers` to `bigints`.\n return BigInt(value) as TypescriptBug33014;\n } else {\n return value as TypescriptBug33014;\n }\n}\n\nexport function patchResponseForSolanaLabsRpc<T>(\n rawResponse: unknown,\n methodName?: keyof ReturnType<typeof createSolanaRpcApi>\n): T {\n const allowedKeypaths = methodName ? ALLOWED_NUMERIC_KEYPATHS[methodName] : undefined;\n return visitNode(rawResponse, allowedKeypaths ?? []);\n}\n","import { IRpcApi, RpcRequest } from '@solana/rpc-transport/dist/types/json-rpc-types';\n\nimport { patchParamsForSolanaLabsRpc } from '../params-patcher';\nimport { patchResponseForSolanaLabsRpc } from '../response-patcher';\nimport { GetAccountInfoApi } from './getAccountInfo';\nimport { GetBalanceApi } from './getBalance';\nimport { GetBlockHeightApi } from './getBlockHeight';\nimport { GetBlockProductionApi } from './getBlockProduction';\nimport { GetBlocksApi } from './getBlocks';\nimport { GetBlockTimeApi } from './getBlockTime';\nimport { GetEpochInfoApi } from './getEpochInfo';\nimport { GetEpochScheduleApi } from './getEpochSchedule';\nimport { GetFirstAvailableBlockApi } from './getFirstAvailableBlock';\nimport { GetInflationRewardApi } from './getInflationReward';\nimport { GetLatestBlockhashApi } from './getLatestBlockhash';\nimport { GetMaxRetransmitSlotApi } from './getMaxRetransmitSlot';\nimport { GetMaxShredInsertSlotApi } from './getMaxShredInsertSlot';\nimport { GetRecentPerformanceSamplesApi } from './getRecentPerformanceSamples';\nimport { GetSignaturesForAddressApi } from './getSignaturesForAddress';\nimport { GetSlotApi } from './getSlot';\nimport { GetSlotLeadersApi } from './getSlotLeaders';\nimport { GetStakeMinimumDelegationApi } from './getStakeMinimumDelegation';\nimport { GetSupplyApi } from './getSupply';\nimport { GetTokenLargestAccountsApi } from './getTokenLargestAccounts';\nimport { GetTransactionApi } from './getTransaction';\nimport { GetTransactionCountApi } from './getTransactionCount';\nimport { GetVoteAccountsApi } from './getVoteAccounts';\nimport { IsBlockhashValidApi } from './isBlockhashValid';\nimport { MinimumLedgerSlotApi } from './minimumLedgerSlot';\nimport { RequestAirdropApi } from './requestAirdrop';\nimport { SendTransactionApi } from './sendTransaction';\n\ntype Config = Readonly<{\n onIntegerOverflow?: (methodName: string, keyPath: (number | string)[], value: bigint) => void;\n}>;\n\nexport type SolanaRpcMethods = GetAccountInfoApi &\n GetBalanceApi &\n GetBlockHeightApi &\n GetBlockProductionApi &\n GetBlocksApi &\n GetBlockTimeApi &\n GetEpochInfoApi &\n GetEpochScheduleApi &\n GetFirstAvailableBlockApi &\n GetInflationRewardApi &\n GetLatestBlockhashApi &\n GetMaxRetransmitSlotApi &\n GetMaxShredInsertSlotApi &\n GetRecentPerformanceSamplesApi &\n GetSignaturesForAddressApi &\n GetSlotApi &\n GetSlotLeadersApi &\n GetStakeMinimumDelegationApi &\n GetSupplyApi &\n GetTokenLargestAccountsApi &\n GetTransactionApi &\n GetTransactionCountApi &\n GetVoteAccountsApi &\n IsBlockhashValidApi &\n MinimumLedgerSlotApi &\n RequestAirdropApi &\n SendTransactionApi;\n\nexport function createSolanaRpcApi(config?: Config): IRpcApi<SolanaRpcMethods> {\n return new Proxy({} as IRpcApi<SolanaRpcMethods>, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get<TMethodName extends keyof IRpcApi<SolanaRpcMethods>>(\n ...args: Parameters<NonNullable<ProxyHandler<IRpcApi<SolanaRpcMethods>>['get']>>\n ) {\n const [_, p] = args;\n const methodName = p.toString() as keyof SolanaRpcMethods;\n return function (\n ...rawParams: Parameters<\n SolanaRpcMethods[TMethodName] extends CallableFunction ? SolanaRpcMethods[TMethodName] : never\n >\n ): RpcRequest<ReturnType<SolanaRpcMethods[TMethodName]>> {\n const handleIntegerOverflow = config?.onIntegerOverflow;\n const params = patchParamsForSolanaLabsRpc(\n rawParams,\n handleIntegerOverflow\n ? (keyPath, value) => handleIntegerOverflow(methodName, keyPath, value)\n : undefined\n );\n return {\n methodName,\n params,\n responseProcessor: rawResponse => patchResponseForSolanaLabsRpc(rawResponse, methodName),\n };\n };\n },\n });\n}\n","// Keep in sync with https://github.com/solana-labs/solana/blob/master/rpc-client-api/src/custom_error.rs\n// Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/\nexport const SolanaJsonRpcErrorCode = {\n JSON_RPC_INVALID_PARAMS: -32602,\n JSON_RPC_SCAN_ERROR: -32012,\n JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001,\n JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE: -32004,\n JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET: -32014,\n JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX: -32010,\n JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED: -32009,\n JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED: -32016,\n JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY: -32005,\n JSON_RPC_SERVER_ERROR_NO_SNAPSHOT: -32008,\n JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE: -32002,\n JSON_RPC_SERVER_ERROR_SLOT_SKIPPED: -32007,\n JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE: -32011,\n JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE: -32006,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH: -32013,\n JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE: -32003,\n JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION: -32015,\n} as const;\ntype SolanaJsonRpcErrorCodeEnum = (typeof SolanaJsonRpcErrorCode)[keyof typeof SolanaJsonRpcErrorCode];\n\ntype SolanaJsonRpcErrorDetails = Readonly<{\n code: number;\n data?: unknown;\n message: string;\n}>;\n\nexport class SolanaJsonRpcError extends Error {\n readonly code: SolanaJsonRpcErrorCodeEnum;\n readonly data: unknown;\n constructor(details: SolanaJsonRpcErrorDetails) {\n super(`JSON-RPC 2.0 error (${details.code}): ${details.message}`);\n Error.captureStackTrace(this, this.constructor);\n this.code = details.code as SolanaJsonRpcErrorCodeEnum;\n this.data = details.data;\n }\n get name() {\n return 'SolanaJsonRpcError';\n }\n}\n","let _nextMessageId = 0;\nexport function getNextMessageId() {\n const id = _nextMessageId;\n _nextMessageId = (_nextMessageId + 1) % Number.MAX_SAFE_INTEGER;\n return id;\n}\n","import { getNextMessageId } from './json-rpc-message-id';\n\nexport function createJsonRpcMessage<TParams>(method: string, params: TParams) {\n return {\n id: getNextMessageId(),\n jsonrpc: '2.0',\n method,\n params,\n };\n}\n","import { SolanaJsonRpcError } from './json-rpc-errors';\nimport { createJsonRpcMessage } from './json-rpc-message';\nimport { PendingRpcRequest, Rpc, RpcConfig, RpcRequest, SendOptions } from './json-rpc-types';\n\ninterface IHasIdentifier {\n readonly id: number;\n}\ntype JsonRpcResponse<TResponse> = IHasIdentifier &\n Readonly<{ result: TResponse } | { error: { code: number; message: string; data?: unknown } }>;\n\nfunction createPendingRpcRequest<TRpcMethods, TResponse>(\n rpcConfig: RpcConfig<TRpcMethods>,\n pendingRequest: RpcRequest<TResponse>\n): PendingRpcRequest<TResponse> {\n return {\n async send(options?: SendOptions): Promise<TResponse> {\n const { methodName, params, responseProcessor } = pendingRequest;\n const payload = createJsonRpcMessage(methodName, params);\n const response = await rpcConfig.transport<JsonRpcResponse<unknown>>({\n payload,\n signal: options?.abortSignal,\n });\n if ('error' in response) {\n throw new SolanaJsonRpcError(response.error);\n } else {\n return (responseProcessor ? responseProcessor(response.result) : response.result) as TResponse;\n }\n },\n };\n}\n\nfunction makeProxy<TRpcMethods>(rpcConfig: RpcConfig<TRpcMethods>): Rpc<TRpcMethods> {\n return new Proxy(rpcConfig.api, {\n defineProperty() {\n return false;\n },\n deleteProperty() {\n return false;\n },\n get(target, p, receiver) {\n return function (...rawParams: unknown[]) {\n const methodName = p.toString();\n const createRpcRequest = Reflect.get(target, methodName, receiver);\n const newRequest = createRpcRequest\n ? createRpcRequest(...rawParams)\n : { methodName, params: rawParams };\n return createPendingRpcRequest(rpcConfig, newRequest);\n };\n },\n }) as Rpc<TRpcMethods>;\n}\n\nexport function createJsonRpc<TRpcMethods>(rpcConfig: RpcConfig<TRpcMethods>): Rpc<TRpcMethods> {\n return makeProxy(rpcConfig);\n}\n","export default globalThis.fetch;\n","type SolanaHttpErrorDetails = Readonly<{\n statusCode: number;\n message: string;\n}>;\n\nexport class SolanaHttpError extends Error {\n readonly statusCode: number;\n constructor(details: SolanaHttpErrorDetails) {\n super(`HTTP error (${details.statusCode}): ${details.message}`);\n Error.captureStackTrace(this, this.constructor);\n this.statusCode = details.statusCode;\n }\n get name() {\n return 'SolanaHttpError';\n }\n}\n","export type AllowedHttpRequestHeaders = Readonly<\n { [headerName: string]: string } & {\n // Someone can still sneak a forbidden header past Typescript if they do something like\n // fOo-BaR, but at that point they deserve the runtime failure.\n [K in DisallowedHeaders | ForbiddenHeaders as\n | K // `Foo-Bar`\n | Capitalize<Lowercase<K>> // `Foo-bar`\n | Lowercase<K> // `foo-bar`\n | Uncapitalize<K> // `foo-Bar`\n // `FOO-BAR`\n | Uppercase<K>]?: never;\n }\n>;\n// These are headers that we simply don't allow the developer to override because they're\n// fundamental to the operation of the JSON-RPC transport.\ntype DisallowedHeaders = 'Accept' | 'Content-Length' | 'Content-Type' | 'Solana-Client';\ntype ForbiddenHeaders =\n | 'Accept-Charset'\n | 'Accept-Encoding'\n | 'Access-Control-Request-Headers'\n | 'Access-Control-Request-Method'\n | 'Connection'\n | 'Content-Length'\n | 'Cookie'\n | 'Date'\n | 'DNT'\n | 'Expect'\n | 'Host'\n | 'Keep-Alive'\n | 'Origin'\n | 'Permissions-Policy'\n // No currently available Typescript technique allows you to match on a prefix.\n // | 'Proxy-'\n // | 'Sec-'\n | 'Referer'\n | 'TE'\n | 'Trailer'\n | 'Transfer-Encoding'\n | 'Upgrade'\n | 'Via';\n\n// These are headers which are fundamental to the JSON-RPC transport, and must not be modified.\nconst DISALLOWED_HEADERS: Record<string, boolean> = {\n accept: true,\n 'content-length': true,\n 'content-type': true,\n};\n// https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name\nconst FORBIDDEN_HEADERS: Record<string, boolean> = {\n 'accept-charset': true,\n 'accept-encoding': true,\n 'access-control-request-headers': true,\n 'access-control-request-method': true,\n connection: true,\n 'content-length': true,\n cookie: true,\n date: true,\n dnt: true,\n expect: true,\n host: true,\n 'keep-alive': true,\n origin: true,\n 'permissions-policy': true,\n // No currently available Typescript technique allows you to match on a prefix.\n // 'proxy-':true,\n // 'sec-':true,\n referer: true,\n te: true,\n trailer: true,\n 'transfer-encoding': true,\n upgrade: true,\n via: true,\n};\n\nexport function assertIsAllowedHttpRequestHeaders(\n headers: Record<string, string>\n): asserts headers is AllowedHttpRequestHeaders {\n const badHeaders = Object.keys(headers).filter(headerName => {\n const lowercaseHeaderName = headerName.toLowerCase();\n return (\n DISALLOWED_HEADERS[headerName.toLowerCase()] === true ||\n FORBIDDEN_HEADERS[headerName.toLowerCase()] === true ||\n lowercaseHeaderName.startsWith('proxy-') ||\n lowercaseHeaderName.startsWith('sec-')\n );\n });\n if (badHeaders.length > 0) {\n throw new Error(\n `${badHeaders.length > 1 ? 'These headers are' : 'This header is'} forbidden: ` +\n `\\`${badHeaders.join('`, `')}\\`. Learn more at ` +\n 'https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name.'\n );\n }\n}\n\n/**\n * Lowercasing header names makes it easier to override user-supplied headers, such as those defined\n * in the `DisallowedHeaders` type.\n */\nexport function normalizeHeaders<T extends Record<string, string>>(\n headers: T\n): { [K in keyof T & string as Lowercase<K>]: T[K] } {\n const out: Record<string, string> = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out as { [K in keyof T & string as Lowercase<K>]: T[K] };\n}\n","import type { Agent as NodeHttpAgent } from 'node:http';\nimport type { Agent as NodeHttpsAgent } from 'node:https';\n\nimport fetchImpl from 'fetch-impl';\n\nimport { IRpcTransport } from '../transport-types';\nimport { SolanaHttpError } from './http-transport-errors';\nimport {\n AllowedHttpRequestHeaders,\n assertIsAllowedHttpRequestHeaders,\n normalizeHeaders,\n} from './http-transport-headers';\n\ntype Config = Readonly<{\n headers?: AllowedHttpRequestHeaders;\n httpAgentNodeOnly?: NodeHttpAgent | NodeHttpsAgent | ((parsedUrl: URL) => NodeHttpAgent | NodeHttpsAgent);\n url: string;\n}>;\n\nexport function createHttpTransport({ httpAgentNodeOnly, headers, url }: Config): IRpcTransport {\n if (__DEV__ && headers) {\n assertIsAllowedHttpRequestHeaders(headers);\n }\n const agent = __NODEJS__ ? httpAgentNodeOnly : undefined;\n if (__DEV__ && httpAgentNodeOnly != null) {\n console.warn(\n 'createHttpTransport(): The `httpAgentNodeOnly` config you supplied has been ' +\n 'ignored; HTTP agents are only usable in Node environments.'\n );\n }\n const customHeaders = headers && normalizeHeaders(headers);\n return async function makeHttpRequest<TResponse>({\n payload,\n signal,\n }: Parameters<IRpcTransport>[0]): Promise<TResponse> {\n const body = JSON.stringify(payload);\n const requestInfo = {\n agent,\n body,\n headers: {\n ...customHeaders,\n // Keep these headers lowercase so they will override any user-supplied headers above.\n accept: 'application/json',\n 'content-length': body.length.toString(),\n 'content-type': 'application/json; charset=utf-8',\n },\n method: 'POST',\n signal,\n };\n const response = await fetchImpl(url, requestInfo);\n if (!response.ok) {\n throw new SolanaHttpError({\n message: response.statusText,\n statusCode: response.status,\n });\n }\n return (await response.json()) as TResponse;\n };\n}\n","import { createSolanaRpcApi } from '@solana/rpc-core';\n\nimport { SolanaJsonRpcIntegerOverflowError } from './rpc-integer-overflow-error';\n\nexport const DEFAULT_RPC_CONFIG: Partial<Parameters<typeof createSolanaRpcApi>[0]> = {\n onIntegerOverflow(methodName, keyPath, value) {\n throw new SolanaJsonRpcIntegerOverflowError(methodName, keyPath, value);\n },\n};\n","export class SolanaJsonRpcIntegerOverflowError extends Error {\n readonly methodName: string;\n readonly keyPath: (number | string)[];\n readonly value: bigint;\n constructor(methodName: string, keyPath: (number | string)[], value: bigint) {\n const argPosition = (typeof keyPath[0] === 'number' ? keyPath[0] : parseInt(keyPath[0], 10)) + 1;\n let ordinal = '';\n const lastDigit = argPosition % 10;\n const lastTwoDigits = argPosition % 100;\n if (lastDigit == 1 && lastTwoDigits != 11) {\n ordinal = argPosition + 'st';\n } else if (lastDigit == 2 && lastTwoDigits != 12) {\n ordinal = argPosition + 'nd';\n } else if (lastDigit == 3 && lastTwoDigits != 13) {\n ordinal = argPosition + 'rd';\n } else {\n ordinal = argPosition + 'th';\n }\n const path =\n keyPath.length > 1\n ? keyPath\n .slice(1)\n .map(pathPart => (typeof pathPart === 'number' ? `[${pathPart}]` : pathPart))\n .join('.')\n : null;\n super(\n `The ${ordinal} argument to the \\`${methodName}\\` RPC method` +\n `${path ? ` at path \\`${path}\\`` : ''} was \\`${value}\\`. This number is ` +\n 'unsafe for use with the Solana JSON-RPC because it exceeds ' +\n '`Number.MAX_SAFE_INTEGER`.'\n );\n this.keyPath = keyPath;\n this.methodName = methodName;\n this.value = value;\n }\n get name() {\n return 'SolanaJsonRpcIntegerOverflowError';\n }\n}\n","import { createHttpTransport } from '@solana/rpc-transport';\nimport { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\nimport { getRpcTransportWithRequestCoalescing } from './rpc-request-coalescer';\nimport { getSolanaRpcPayloadDeduplicationKey } from './rpc-request-deduplication';\n\n/**\n * Lowercasing header names makes it easier to override user-supplied headers.\n */\nfunction normalizeHeaders<T extends Record<string, string>>(\n headers: T\n): { [K in keyof T & string as Lowercase<K>]: T[K] } {\n const out: Record<string, string> = {};\n for (const headerName in headers) {\n out[headerName.toLowerCase()] = headers[headerName];\n }\n return out as { [K in keyof T & string as Lowercase<K>]: T[K] };\n}\n\nexport function createDefaultRpcTransport(config: Parameters<typeof createHttpTransport>[0]): IRpcTransport {\n return getRpcTransportWithRequestCoalescing(\n createHttpTransport({\n ...config,\n headers: {\n ...(config.headers ? normalizeHeaders(config.headers) : undefined),\n ...({\n // Keep these headers lowercase so they will override any user-supplied headers above.\n 'solana-client': `js/${__VERSION__}` ?? 'UNKNOWN',\n } as { [overrideHeader: string]: string }),\n },\n }),\n getSolanaRpcPayloadDeduplicationKey\n );\n}\n","import { IRpcTransport } from '@solana/rpc-transport/dist/types/transports/transport-types';\n\ntype CoalescedRequest = {\n readonly abortController: AbortController;\n numConsumers: number;\n readonly responsePromise: Promise<unknown>;\n};\n\ntype GetDeduplicationKeyFn = (payload: unknown) => string | undefined;\n\nexport function getRpcTransportWithRequestCoalescing(\n transport: IRpcTransport,\n getDeduplicationKey: GetDeduplicationKeyFn\n): IRpcTransport {\n let coalescedRequestsByDeduplicationKey: Record<string, CoalescedRequest> | undefined;\n return async function makeCoalescedHttpRequest<TResponse>(\n config: Parameters<IRpcTransport>[0]\n ): Promise<TResponse> {\n const { payload, signal } = config;\n const deduplicationKey = getDeduplicationKey(payload);\n if (deduplicationKey === undefined) {\n return await transport(config);\n }\n if (!coalescedRequestsByDeduplicationKey) {\n Promise.resolve().then(() => {\n coalescedRequestsByDeduplicationKey = undefined;\n });\n coalescedRequestsByDeduplicationKey = {};\n }\n if (coalescedRequestsByDeduplicationKey[deduplicationKey] == null) {\n const abortController = new AbortController();\n coalescedRequestsByDeduplicationKey[deduplicationKey] = {\n abortController,\n numConsumers: 0,\n responsePromise: transport<TResponse>({\n ...config,\n signal: abortController.signal,\n }),\n };\n }\n const coalescedRequest = coalescedRequestsByDeduplicationKey[deduplicationKey];\n coalescedRequest.numConsumers++;\n if (signal) {\n const responsePromise = coalescedRequest.responsePromise as Promise<TResponse>;\n return await new Promise<TResponse>((resolve, reject) => {\n const handleAbort = (e: AbortSignalEventMap['abort']) => {\n signal.removeEventListener('abort', handleAbort);\n coalescedRequest.numConsumers -= 1;\n if (coalescedRequest.numConsumers === 0) {\n const abortController = coalescedRequest.abortController;\n abortController.abort();\n }\n const abortError = new DOMException((e.target as AbortSignal).reason, 'AbortError');\n reject(abortError);\n };\n signal.addEventListener('abort', handleAbort);\n responsePromise.then(resolve).finally(() => {\n signal.removeEventListener('abort', handleAbort);\n });\n });\n } else {\n return (await coalescedRequest.responsePromise) as TResponse;\n }\n };\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport fastStableStringify from 'fast-stable-stringify';\n\nexport function getSolanaRpcPayloadDeduplicationKey(payload: unknown): string | undefined {\n if (payload == null || typeof payload !== 'object' || Array.isArray(payload)) {\n return;\n }\n if ('jsonrpc' in payload && payload.jsonrpc === '2.0' && 'method' in payload && 'params' in payload) {\n return fastStableStringify([payload.method, payload.params]);\n }\n}\n"]}
@@ -2,20 +2,29 @@ this.globalThis = this.globalThis || {};
2
2
  this.globalThis.solanaWeb3 = (function (exports) {
3
3
  'use strict';
4
4
 
5
- var F=Object.create;var R=Object.defineProperty;var J=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,G=Object.prototype.hasOwnProperty;var z=(e,t,r)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var U=(e,t)=>()=>(e&&(t=e(e=0)),t);var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var X=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of M(t))!G.call(e,n)&&n!==r&&R(e,n,{get:()=>t[n],enumerable:!(o=J(t,n))||o.enumerable});return e};var Y=(e,t,r)=>(r=e!=null?F(W(e)):{},X(t||!e||!e.__esModule?R(r,"default",{value:e,enumerable:!0}):r,e));var I=(e,t,r)=>(z(e,typeof t!="symbol"?t+"":t,r),r);var i=U(()=>{});var k=V((pt,H)=>{i();var fe=Object.prototype.toString,me=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};function g(e,t){var r,o,n,s,a,u,c;if(e===!0)return "true";if(e===!1)return "false";switch(typeof e){case"object":if(e===null)return null;if(e.toJSON&&typeof e.toJSON=="function")return g(e.toJSON(),t);if(c=fe.call(e),c==="[object Array]"){for(n="[",o=e.length-1,r=0;r<o;r++)n+=g(e[r],!0)+",";return o>-1&&(n+=g(e[r],!0)),n+"]"}else if(c==="[object Object]"){for(s=me(e).sort(),o=s.length,n="",r=0;r<o;)a=s[r],u=g(e[a],!1),u!==void 0&&(n&&(n+=","),n+=JSON.stringify(a)+":"+u),r++;return "{"+n+"}"}else return JSON.stringify(e);case"function":case"undefined":return t?null:void 0;case"string":return JSON.stringify(e);default:return isFinite(e)?e:null}}H.exports=function(e){var t=g(e,!1);if(t!==void 0)return ""+t};});i();i();var v=(e=>(e[e.WRITABLE_SIGNER=3]="WRITABLE_SIGNER",e[e.READONLY_SIGNER=2]="READONLY_SIGNER",e[e.WRITABLE=1]="WRITABLE",e[e.READONLY=0]="READONLY",e))(v||{}),N=2,E=1;function be(e){return e&~N}function Re(e){return e&~E}function Ee(e){return e>=2}function Se(e){return (e&E)!==0}function Te(e,t){return e|t}function we(e){return e|N}function xe(e){return e|E}i();i();i();i();var h=class extends Error{constructor(r,o,n){let s=`Expected a string of base ${o}, got [${r}].`;super(s);I(this,"name","InvalidBaseStringError");this.cause=n;}};var A=e=>{let t=e.length,r=BigInt(t);return {description:`base${t}`,fixedSize:null,maxSize:null,serialize(o){if(!o.match(new RegExp(`^[${e}]*$`)))throw new h(o,t);if(o==="")return new Uint8Array;let n=[...o],s=n.findIndex(d=>d!==e[0]);s=s===-1?n.length:s;let a=Array(s).fill(0);if(s===n.length)return Uint8Array.from(a);let u=n.slice(s),c=0n,l=1n;for(let d=u.length-1;d>=0;d-=1)c+=l*BigInt(e.indexOf(u[d])),l*=r;let f=[];for(;c>0n;)f.unshift(Number(c%256n)),c/=256n;return Uint8Array.from(a.concat(f))},deserialize(o,n=0){if(o.length===0)return ["",0];let s=o.slice(n),a=s.findIndex(f=>f!==0);a=a===-1?s.length:a;let u=e[0].repeat(a);if(a===s.length)return [u,o.length];let c=s.slice(a).reduce((f,d)=>f*256n+BigInt(d),0n),l=[];for(;c>0n;)l.unshift(e[Number(c%r)]),c/=r;return [u+l.join(""),o.length]}}};i();var S=A("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");function qe(e){try{if(e.length<32||e.length>44)throw new Error("Expected input string to decode to a byte array of length 32.");let r=S.serialize(e).byteLength;if(r!==32)throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${r}`)}catch(t){throw new Error(`\`${e}\` is not a base-58 encoded address`,{cause:t})}}function Fe(){return new Intl.Collator("en",{caseFirst:"lower",ignorePunctuation:!1,localeMatcher:"best fit",numeric:!1,sensitivity:"variant",usage:"sort"}).compare}i();i();function T(e,t,r){if(Array.isArray(e))return e.map((o,n)=>T(o,[...t,n],r));if(typeof e=="object"&&e!==null){let o={};for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(o[n]=T(e[n],[...t,n],r));return o}else return typeof e=="bigint"?(r&&(e>Number.MAX_SAFE_INTEGER||e<-Number.MAX_SAFE_INTEGER)&&r(t,e),Number(e)):e}function Z(e,t){return T(e,[],t)}var p={},Q={getBlockTime:[[]],getInflationReward:[[p,"commission"]],getRecentPerformanceSamples:[[p,"samplePeriodSecs"]],getTokenLargestAccounts:[["value",p,"decimals"],["value",p,"uiAmount"]],getTransaction:[["meta","preTokenBalances",p,"accountIndex"],["meta","preTokenBalances",p,"uiTokenAmount","decimals"],["meta","postTokenBalances",p,"accountIndex"],["meta","postTokenBalances",p,"uiTokenAmount","decimals"],["meta","rewards",p,"commission"],["meta","innerInstructions",p,"index"],["meta","innerInstructions",p,"instructions",p,"programIdIndex"],["meta","innerInstructions",p,"instructions",p,"accounts",p],["transaction","message","addressTableLookups",p,"writableIndexes",p],["transaction","message","addressTableLookups",p,"readonlyIndexes",p],["transaction","message","instructions",p,"programIdIndex"],["transaction","message","instructions",p,"accounts",p],["transaction","message","header","numReadonlySignedAccounts"],["transaction","message","header","numReadonlyUnsignedAccounts"],["transaction","message","header","numRequiredSignatures"]],getVoteAccounts:[["current",p,"commission"],["delinquent",p,"commission"]]};function _(e,t){return e.filter(r=>r[0]===p&&typeof t=="number"||r[0]===t).map(r=>r.slice(1))}function w(e,t){if(Array.isArray(e))return e.map((r,o)=>{let n=_(t,o);return w(r,n)});if(typeof e=="object"&&e!==null){let r={};for(let[o,n]of Object.entries(e)){let s=_(t,o);r[o]=w(n,s);}return r}else return typeof e=="number"&&t.length===0?BigInt(e):e}function ee(e,t){let r=t?Q[t]:void 0;return w(e,r??[])}function C(e){return new Proxy({},{defineProperty(){return !1},deleteProperty(){return !1},get(...t){let[r,o]=t,n=o.toString();return function(...s){let a=e?.onIntegerOverflow,u=Z(s,a?(c,l)=>a(n,c,l):void 0);return {methodName:n,params:u,responseProcessor:c=>ee(c,n)}}}})}i();var te=class extends Error{constructor(e){super(`JSON-RPC 2.0 error (${e.code}): ${e.message}`),Error.captureStackTrace(this,this.constructor),this.code=e.code,this.data=e.data;}get name(){return "SolanaJsonRpcError"}},x=0;function re(){let e=x;return x=(x+1)%Number.MAX_SAFE_INTEGER,e}function ne(e,t){return {id:re(),jsonrpc:"2.0",method:e,params:t}}function oe(e,t){return {async send(r){let{methodName:o,params:n,responseProcessor:s}=t,a=ne(o,n),u=await e.transport({payload:a,signal:r?.abortSignal});if("error"in u)throw new te(u.error);return s?s(u.result):u.result}}}function se(e){return new Proxy(e.api,{defineProperty(){return !1},deleteProperty(){return !1},get(t,r,o){return function(...n){let s=r.toString(),a=Reflect.get(t,s,o),u=a?a(...n):{methodName:s,params:n};return oe(e,u)}}})}function O(e){return se(e)}var ae=globalThis.fetch,ie=class extends Error{constructor(e){super(`HTTP error (${e.statusCode}): ${e.message}`),Error.captureStackTrace(this,this.constructor),this.statusCode=e.statusCode;}get name(){return "SolanaHttpError"}};function le(e){let t={};for(let r in e)t[r.toLowerCase()]=e[r];return t}function P({httpAgentNodeOnly:e,headers:t,url:r}){let o=void 0;let n=t&&le(t);return async function({payload:a,signal:u}){let c=JSON.stringify(a),l={agent:o,body:c,headers:{...n,accept:"application/json","content-length":c.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:u},f=await ae(r,l);if(!f.ok)throw new ie({message:f.statusText,statusCode:f.status});return await f.json()}}i();i();var y=class extends Error{constructor(r,o,n){let s=(typeof o[0]=="number"?o[0]:parseInt(o[0],10))+1,a="",u=s%10,c=s%100;u==1&&c!=11?a=s+"st":u==2&&c!=12?a=s+"nd":u==3&&c!=13?a=s+"rd":a=s+"th";let l=o.length>1?o.slice(1).map(f=>typeof f=="number"?`[${f}]`:f).join("."):null;super(`The ${a} argument to the \`${r}\` RPC method${l?` at path \`${l}\``:""} was \`${n}\`. This number is unsafe for use with the Solana JSON-RPC because it exceeds \`Number.MAX_SAFE_INTEGER\`.`);this.keyPath=o,this.methodName=r,this.value=n;}get name(){return "SolanaJsonRpcIntegerOverflowError"}};var D={onIntegerOverflow(e,t,r){throw new y(e,t,r)}};function st(e){return O({...e,api:C(D)})}i();i();function j(e,t){let r;return async function(n){let{payload:s,signal:a}=n,u=t(s);if(u===void 0)return await e(n);if(r||(Promise.resolve().then(()=>{r=void 0;}),r={}),r[u]==null){let l=new AbortController;r[u]={abortController:l,numConsumers:0,responsePromise:e({...n,signal:l.signal})};}let c=r[u];if(c.numConsumers++,a){let l=c.responsePromise;return await new Promise((f,d)=>{let b=K=>{a.removeEventListener("abort",b),c.numConsumers-=1,c.numConsumers===0&&c.abortController.abort();let q=new DOMException(K.target.reason,"AbortError");d(q);};a.addEventListener("abort",b),l.then(f).finally(()=>{a.removeEventListener("abort",b);});})}else return await c.responsePromise}}i();var B=Y(k(),1);function $(e){if(!(e==null||typeof e!="object"||Array.isArray(e))&&"jsonrpc"in e&&e.jsonrpc==="2.0"&&"method"in e&&"params"in e)return (0, B.default)([e.method,e.params])}function de(e){let t={};for(let r in e)t[r.toLowerCase()]=e[r];return t}function yt(e){return j(P({...e,headers:{...e.headers?de(e.headers):void 0,"solana-client":"js/2.0.0-development"}}),$)}
5
+ var ne=Object.create;var z=Object.defineProperty;var oe=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var ie=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty;var ce=(e,r,t)=>r in e?z(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var ue=(e,r)=>()=>(e&&(r=e(e=0)),r);var le=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var pe=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of se(r))!ae.call(e,o)&&o!==t&&z(e,o,{get:()=>r[o],enumerable:!(n=oe(r,o))||n.enumerable});return e};var fe=(e,r,t)=>(t=e!=null?ne(ie(e)):{},pe(r||!e||!e.__esModule?z(t,"default",{value:e,enumerable:!0}):t,e));var y=(e,r,t)=>(ce(e,typeof r!="symbol"?r+"":r,t),t);var s=ue(()=>{});var Z=le(($t,Y)=>{s();var Ke=Object.prototype.toString,je=Object.keys||function(e){var r=[];for(var t in e)r.push(t);return r};function b(e,r){var t,n,o,i,a,u,c;if(e===!0)return "true";if(e===!1)return "false";switch(typeof e){case"object":if(e===null)return null;if(e.toJSON&&typeof e.toJSON=="function")return b(e.toJSON(),r);if(c=Ke.call(e),c==="[object Array]"){for(o="[",n=e.length-1,t=0;t<n;t++)o+=b(e[t],!0)+",";return n>-1&&(o+=b(e[t],!0)),o+"]"}else if(c==="[object Object]"){for(i=je(e).sort(),n=i.length,o="",t=0;t<n;)a=i[t],u=b(e[a],!1),u!==void 0&&(o&&(o+=","),o+=JSON.stringify(a)+":"+u),t++;return "{"+o+"}"}else return JSON.stringify(e);case"function":case"undefined":return r?null:void 0;case"string":return JSON.stringify(e);default:return isFinite(e)?e:null}}Y.exports=function(e){var r=b(e,!1);if(r!==void 0)return ""+r};});s();s();var de=(e=>(e[e.WRITABLE_SIGNER=3]="WRITABLE_SIGNER",e[e.READONLY_SIGNER=2]="READONLY_SIGNER",e[e.WRITABLE=1]="WRITABLE",e[e.READONLY=0]="READONLY",e))(de||{}),$=2,C=1;function Ve(e){return e&~$}function We(e){return e&~C}function Ge(e){return e>=2}function Je(e){return (e&C)!==0}function Me(e,r){return e|r}function Xe(e){return e|$}function Ye(e){return e|C}s();s();s();s();var v=e=>{let r=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(r),n=0;return e.forEach(o=>{t.set(o,n),n+=o.length;}),t},K=(e,r)=>{if(e.length>=r)return e;let t=new Uint8Array(r).fill(0);return t.set(e),t},E=(e,r)=>K(e.slice(0,r),r);s();var h=class extends Error{constructor(t){super(`Serializer [${t}] cannot deserialize empty buffers.`);y(this,"name","DeserializingEmptyBufferError");}},g=class extends Error{constructor(t,n,o){super(`Serializer [${t}] expected ${n} bytes, got ${o}.`);y(this,"name","NotEnoughBytesError");}};s();function B(e,r,t){return {description:t??`fixed(${r}, ${e.description})`,fixedSize:r,maxSize:r,serialize:n=>E(e.serialize(n),r),deserialize:(n,o=0)=>{if(n=n.slice(o,o+r),n.length<r)throw new g("fixSerializer",r,n.length);e.fixedSize!==null&&(n=E(n,e.fixedSize));let[i]=e.deserialize(n,0);return [i,o+r]}}}s();s();s();var w=class extends Error{constructor(t,n,o){let i=`Expected a string of base ${n}, got [${t}].`;super(i);y(this,"name","InvalidBaseStringError");this.cause=o;}};var j=e=>{let r=e.length,t=BigInt(r);return {description:`base${r}`,fixedSize:null,maxSize:null,serialize(n){if(!n.match(new RegExp(`^[${e}]*$`)))throw new w(n,r);if(n==="")return new Uint8Array;let o=[...n],i=o.findIndex(m=>m!==e[0]);i=i===-1?o.length:i;let a=Array(i).fill(0);if(i===o.length)return Uint8Array.from(a);let u=o.slice(i),c=0n,f=1n;for(let m=u.length-1;m>=0;m-=1)c+=f*BigInt(e.indexOf(u[m])),f*=t;let d=[];for(;c>0n;)d.unshift(Number(c%256n)),c/=256n;return Uint8Array.from(a.concat(d))},deserialize(n,o=0){if(n.length===0)return ["",0];let i=n.slice(o),a=i.findIndex(d=>d!==0);a=a===-1?i.length:a;let u=e[0].repeat(a);if(a===i.length)return [u,n.length];let c=i.slice(a).reduce((d,m)=>d*256n+BigInt(m),0n),f=[];for(;c>0n;)f.unshift(e[Number(c%t)]),c/=t;return [u+f.join(""),n.length]}}};s();var S=j("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");s();var F=e=>e.replace(/\u0000/g,"");s();var _={description:"utf8",fixedSize:null,maxSize:null,serialize(e){return new TextEncoder().encode(e)},deserialize(e,r=0){let t=new TextDecoder().decode(e.slice(r));return [F(t),e.length]}};s();s();var R;(function(e){e.Little="le",e.Big="be";})(R||(R={}));s();var T=class extends RangeError{constructor(t,n,o,i){super(`Serializer [${t}] expected number to be between ${n} and ${o}, got ${i}.`);y(this,"name","NumberOutOfRangeError");}};s();function U(e){let r,t=e.name;return e.size>1&&(r=!("endian"in e.options)||e.options.endian===R.Little,t+=r?"(le)":"(be)"),{description:e.options.description??t,fixedSize:e.size,maxSize:e.size,serialize(n){e.range&&ye(e.name,e.range[0],e.range[1],n);let o=new ArrayBuffer(e.size);return e.set(new DataView(o),n,r),new Uint8Array(o)},deserialize(n,o=0){let i=n.slice(o,o+e.size);he("i8",i,e.size);let a=ge(i);return [e.get(a,r),o+e.size]}}}var me=e=>e.buffer.slice(e.byteOffset,e.byteLength+e.byteOffset),ge=e=>new DataView(me(e)),ye=(e,r,t,n)=>{if(n<r||n>t)throw new T(e,r,t,n)},he=(e,r,t)=>{if(r.length===0)throw new h(e);if(r.length<t)throw new g(e,t,r.length)};s();var O=(e={})=>U({name:"u32",size:4,range:[0,+"0xffffffff"],set:(r,t,n)=>r.setUint32(0,Number(t),n),get:(r,t)=>r.getUint32(0,t),options:e});s();function H(e){return typeof e=="object"?e.description:`${e}`}s();function D(e={}){let r=e.size??O(),t=e.encoding??_,n=e.description??`string(${t.description}; ${H(r)})`;return r==="variable"?{...t,description:n}:typeof r=="number"?B(t,r,n):{description:n,fixedSize:null,maxSize:null,serialize:o=>{let i=t.serialize(o),a=r.serialize(i.length);return v([a,i])},deserialize:(o,i=0)=>{if(o.slice(i).length===0)throw new h("string");let[a,u]=r.deserialize(o,i),c=Number(a);i=u;let f=o.slice(i,i+c);if(f.length<c)throw new g("string",c,f.length);let[d,m]=t.deserialize(f);return i+=m,[d,i]}}}function lt(e){try{if(e.length<32||e.length>44)throw new Error("Expected input string to decode to a byte array of length 32.");let t=S.serialize(e).byteLength;if(t!==32)throw new Error(`Expected input string to decode to a byte array of length 32. Actual length: ${t}`)}catch(r){throw new Error(`\`${e}\` is not a base-58 encoded address`,{cause:r})}}function be(e){return D({description:e?.description??(""),encoding:S,size:32})}function pt(){return new Intl.Collator("en",{caseFirst:"lower",ignorePunctuation:!1,localeMatcher:"best fit",numeric:!1,sensitivity:"variant",usage:"sort"}).compare}function I(){if(!globalThis.isSecureContext)throw new Error("Cryptographic operations are only allowed in secure browser contexts. Read more here: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts")}var x;async function Ee(e){return x===void 0&&(x=new Promise(r=>{e.generateKey("Ed25519",!1,["sign","verify"]).catch(()=>{r(x=!1);}).then(()=>{r(x=!0);});})),typeof x=="boolean"?x:await x}async function we(){if(I(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.generateKey!="function")throw new Error("No key generation implementation could be found");if(!await Ee(globalThis.crypto.subtle))throw new Error(`This runtime does not support the generation of Ed25519 key pairs.
6
6
 
7
- exports.AccountRole = v;
8
- exports.assertIsBase58EncodedAddress = qe;
9
- exports.createDefaultRpcTransport = yt;
10
- exports.createSolanaRpc = st;
11
- exports.downgradeRoleToNonSigner = be;
12
- exports.downgradeRoleToReadonly = Re;
13
- exports.getBase58EncodedAddressComparator = Fe;
14
- exports.isSignerRole = Ee;
15
- exports.isWritableRole = Se;
16
- exports.mergeRoles = Te;
17
- exports.upgradeRoleToSigner = we;
18
- exports.upgradeRoleToWritable = xe;
7
+ Install and import \`@solana/webcrypto-ed25519-polyfill\` before generating keys in environments that do not support Ed25519.
8
+
9
+ For a list of runtimes that currently support Ed25519 operations, visit https://github.com/WICG/webcrypto-secure-curves/issues/20`)}async function Se(){if(I(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.exportKey!="function")throw new Error("No key export implementation could be found")}async function Re(){if(I(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.sign!="function")throw new Error("No signing implementation could be found")}async function Te(){if(I(),typeof globalThis.crypto>"u"||typeof globalThis.crypto.subtle?.verify!="function")throw new Error("No signature verification implementation could be found")}async function ft(){return await we(),await crypto.subtle.generateKey("Ed25519",!1,["sign","verify"])}async function dt(e){if(await Se(),e.type!=="public"||e.algorithm.name!=="Ed25519")throw new Error("The `CryptoKey` must be an `Ed25519` public key");let r=await crypto.subtle.exportKey("raw",e),[t]=be().deserialize(new Uint8Array(r));return t}async function mt(e,r){await Re();let t=await crypto.subtle.sign("Ed25519",e,r);return new Uint8Array(t)}async function gt(e,r,t){return await Te(),await crypto.subtle.verify("Ed25519",e,r,t)}s();s();function P(e,r,t){if(Array.isArray(e))return e.map((n,o)=>P(n,[...r,o],t));if(typeof e=="object"&&e!==null){let n={};for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=P(e[o],[...r,o],t));return n}else return typeof e=="bigint"?(t&&(e>Number.MAX_SAFE_INTEGER||e<-Number.MAX_SAFE_INTEGER)&&t(r,e),Number(e)):e}function Ie(e,r){return P(e,[],r)}var l={},Ae={getAccountInfo:[["value","data","parsed","info","lastExtendedSlotStartIndex"],["value","data","parsed","info","slashPenalty"],["value","data","parsed","info","warmupCooldownRate"],["value","data","parsed","info","tokenAmount","decimals"],["value","data","parsed","info","tokenAmount","uiAmount"],["value","data","parsed","info","rentExemptReserve","decimals"],["value","data","parsed","info","delegatedAmount","decimals"],["value","data","parsed","info","extensions",l,"state","olderTransferFee","transferFeeBasisPoints"],["value","data","parsed","info","extensions",l,"state","newerTransferFee","transferFeeBasisPoints"],["value","data","parsed","info","extensions",l,"state","preUpdateAverageRate"],["value","data","parsed","info","extensions",l,"state","currentRate"],["value","data","parsed","info","decimals"],["value","data","parsed","info","numRequiredSigners"],["value","data","parsed","info","numValidSigners"],["value","data","parsed","info","stake","delegation","warmupCooldownRate"],["value","data","parsed","info","exemptionThreshold"],["value","data","parsed","info","burnPercent"],["value","data","parsed","info","commission"],["value","data","parsed","info","votes",l,"confirmationCount"]],getBlockTime:[[]],getInflationReward:[[l,"commission"]],getRecentPerformanceSamples:[[l,"samplePeriodSecs"]],getTokenLargestAccounts:[["value",l,"decimals"],["value",l,"uiAmount"]],getTransaction:[["meta","preTokenBalances",l,"accountIndex"],["meta","preTokenBalances",l,"uiTokenAmount","decimals"],["meta","postTokenBalances",l,"accountIndex"],["meta","postTokenBalances",l,"uiTokenAmount","decimals"],["meta","rewards",l,"commission"],["meta","innerInstructions",l,"index"],["meta","innerInstructions",l,"instructions",l,"programIdIndex"],["meta","innerInstructions",l,"instructions",l,"accounts",l],["transaction","message","addressTableLookups",l,"writableIndexes",l],["transaction","message","addressTableLookups",l,"readonlyIndexes",l],["transaction","message","instructions",l,"programIdIndex"],["transaction","message","instructions",l,"accounts",l],["transaction","message","header","numReadonlySignedAccounts"],["transaction","message","header","numReadonlyUnsignedAccounts"],["transaction","message","header","numRequiredSignatures"]],getVoteAccounts:[["current",l,"commission"],["delinquent",l,"commission"]]};function q(e,r){return e.filter(t=>t[0]===l&&typeof r=="number"||t[0]===r).map(t=>t.slice(1))}function L(e,r){if(Array.isArray(e))return e.map((t,n)=>{let o=q(r,n);return L(t,o)});if(typeof e=="object"&&e!==null){let t={};for(let[n,o]of Object.entries(e)){let i=q(r,n);t[n]=L(o,i);}return t}else return typeof e=="number"&&r.length===0&&Number.isInteger(e)?BigInt(e):e}function Ne(e,r){let t=r?Ae[r]:void 0;return L(e,t??[])}function V(e){return new Proxy({},{defineProperty(){return !1},deleteProperty(){return !1},get(...r){let[t,n]=r,o=n.toString();return function(...i){let a=e?.onIntegerOverflow,u=Ie(i,a?(c,f)=>a(o,c,f):void 0);return {methodName:o,params:u,responseProcessor:c=>Ne(c,o)}}}})}s();var ze=class extends Error{constructor(e){super(`JSON-RPC 2.0 error (${e.code}): ${e.message}`),Error.captureStackTrace(this,this.constructor),this.code=e.code,this.data=e.data;}get name(){return "SolanaJsonRpcError"}},k=0;function Ce(){let e=k;return k=(k+1)%Number.MAX_SAFE_INTEGER,e}function ve(e,r){return {id:Ce(),jsonrpc:"2.0",method:e,params:r}}function Be(e,r){return {async send(t){let{methodName:n,params:o,responseProcessor:i}=r,a=ve(n,o),u=await e.transport({payload:a,signal:t?.abortSignal});if("error"in u)throw new ze(u.error);return i?i(u.result):u.result}}}function _e(e){return new Proxy(e.api,{defineProperty(){return !1},deleteProperty(){return !1},get(r,t,n){return function(...o){let i=t.toString(),a=Reflect.get(r,i,n),u=a?a(...o):{methodName:i,params:o};return Be(e,u)}}})}function G(e){return _e(e)}var Oe=globalThis.fetch,De=class extends Error{constructor(e){super(`HTTP error (${e.statusCode}): ${e.message}`),Error.captureStackTrace(this,this.constructor),this.statusCode=e.statusCode;}get name(){return "SolanaHttpError"}};function $e(e){let r={};for(let t in e)r[t.toLowerCase()]=e[t];return r}function J({httpAgentNodeOnly:e,headers:r,url:t}){let n=void 0;let o=r&&$e(r);return async function({payload:a,signal:u}){let c=JSON.stringify(a),f={agent:n,body:c,headers:{...o,accept:"application/json","content-length":c.length.toString(),"content-type":"application/json; charset=utf-8"},method:"POST",signal:u},d=await Oe(t,f);if(!d.ok)throw new De({message:d.statusText,statusCode:d.status});return await d.json()}}s();s();var A=class extends Error{constructor(t,n,o){let i=(typeof n[0]=="number"?n[0]:parseInt(n[0],10))+1,a="",u=i%10,c=i%100;u==1&&c!=11?a=i+"st":u==2&&c!=12?a=i+"nd":u==3&&c!=13?a=i+"rd":a=i+"th";let f=n.length>1?n.slice(1).map(d=>typeof d=="number"?`[${d}]`:d).join("."):null;super(`The ${a} argument to the \`${t}\` RPC method${f?` at path \`${f}\``:""} was \`${o}\`. This number is unsafe for use with the Solana JSON-RPC because it exceeds \`Number.MAX_SAFE_INTEGER\`.`);this.keyPath=n,this.methodName=t,this.value=o;}get name(){return "SolanaJsonRpcIntegerOverflowError"}};var M={onIntegerOverflow(e,r,t){throw new A(e,r,t)}};function Ot(e){return G({...e,api:V(M)})}s();s();function X(e,r){let t;return async function(o){let{payload:i,signal:a}=o,u=r(i);if(u===void 0)return await e(o);if(t||(Promise.resolve().then(()=>{t=void 0;}),t={}),t[u]==null){let f=new AbortController;t[u]={abortController:f,numConsumers:0,responsePromise:e({...o,signal:f.signal})};}let c=t[u];if(c.numConsumers++,a){let f=c.responsePromise;return await new Promise((d,m)=>{let N=re=>{a.removeEventListener("abort",N),c.numConsumers-=1,c.numConsumers===0&&c.abortController.abort();let te=new DOMException(re.target.reason,"AbortError");m(te);};a.addEventListener("abort",N),f.then(d).finally(()=>{a.removeEventListener("abort",N);});})}else return await c.responsePromise}}s();var Q=fe(Z(),1);function ee(e){if(!(e==null||typeof e!="object"||Array.isArray(e))&&"jsonrpc"in e&&e.jsonrpc==="2.0"&&"method"in e&&"params"in e)return (0, Q.default)([e.method,e.params])}function Fe(e){let r={};for(let t in e)r[t.toLowerCase()]=e[t];return r}function Vt(e){return X(J({...e,headers:{...e.headers?Fe(e.headers):void 0,"solana-client":"js/2.0.0-development"}}),ee)}
10
+
11
+ exports.AccountRole = de;
12
+ exports.assertIsBase58EncodedAddress = lt;
13
+ exports.createDefaultRpcTransport = Vt;
14
+ exports.createSolanaRpc = Ot;
15
+ exports.downgradeRoleToNonSigner = Ve;
16
+ exports.downgradeRoleToReadonly = We;
17
+ exports.generateKeyPair = ft;
18
+ exports.getBase58EncodedAddressCodec = be;
19
+ exports.getBase58EncodedAddressComparator = pt;
20
+ exports.getBase58EncodedAddressFromPublicKey = dt;
21
+ exports.isSignerRole = Ge;
22
+ exports.isWritableRole = Je;
23
+ exports.mergeRoles = Me;
24
+ exports.signBytes = mt;
25
+ exports.upgradeRoleToSigner = Xe;
26
+ exports.upgradeRoleToWritable = Ye;
27
+ exports.verifySignature = gt;
19
28
 
20
29
  return exports;
21
30
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solana/web3.js",
3
- "version": "2.0.0-experimental.874d89c",
3
+ "version": "2.0.0-experimental.87c9652",
4
4
  "description": "Solana Javascript API",
5
5
  "exports": {
6
6
  "browser": {
@@ -50,32 +50,32 @@
50
50
  ],
51
51
  "dependencies": {
52
52
  "fast-stable-stringify": "^1.0.0",
53
- "@solana/instructions": "2.0.0-experimental.874d89c",
54
- "@solana/keys": "2.0.0-experimental.874d89c",
55
- "@solana/rpc-core": "2.0.0-experimental.874d89c",
56
- "@solana/rpc-transport": "2.0.0-experimental.874d89c"
53
+ "@solana/instructions": "2.0.0-experimental.87c9652",
54
+ "@solana/keys": "2.0.0-experimental.87c9652",
55
+ "@solana/rpc-core": "2.0.0-experimental.87c9652",
56
+ "@solana/rpc-transport": "2.0.0-experimental.87c9652"
57
57
  },
58
58
  "devDependencies": {
59
- "@solana/eslint-config-solana": "^1.0.1",
59
+ "@solana/eslint-config-solana": "^1.0.2",
60
60
  "@swc/core": "^1.3.18",
61
61
  "@swc/jest": "^0.2.26",
62
- "@types/jest": "^29.5.1",
63
- "@typescript-eslint/eslint-plugin": "^5.57.1",
64
- "@typescript-eslint/parser": "^5.57.1",
62
+ "@types/jest": "^29.5.2",
63
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
64
+ "@typescript-eslint/parser": "^6.0.0",
65
65
  "agadoo": "^3.0.0",
66
- "eslint": "^8.37.0",
67
- "eslint-plugin-jest": "^27.1.5",
66
+ "eslint": "^8.45.0",
67
+ "eslint-plugin-jest": "^27.2.3",
68
68
  "eslint-plugin-react-hooks": "^4.6.0",
69
69
  "eslint-plugin-sort-keys-fix": "^1.1.2",
70
- "jest": "^29.5.0",
71
- "jest-environment-jsdom": "^29.5.0",
70
+ "jest": "^29.6.1",
71
+ "jest-environment-jsdom": "^29.6.0",
72
72
  "jest-runner-eslint": "^2.1.0",
73
73
  "jest-runner-prettier": "^1.0.0",
74
74
  "postcss": "^8.4.12",
75
75
  "prettier": "^2.8.8",
76
76
  "ts-node": "^10.9.1",
77
77
  "tsup": "6.7.0",
78
- "typescript": "^5.0.4",
78
+ "typescript": "^5.1.6",
79
79
  "version-from-git": "^1.1.1",
80
80
  "build-scripts": "0.0.0",
81
81
  "test-config": "0.0.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-default-config.d.ts","sourceRoot":"","sources":["../../src/rpc-default-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAItD,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAIhF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-integer-overflow-error.d.ts","sourceRoot":"","sources":["../../src/rpc-integer-overflow-error.ts"],"names":[],"mappings":"AAAA,qBAAa,iCAAkC,SAAQ,KAAK;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACX,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM;IA+B3E,IAAI,IAAI,WAEP;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-request-coalescer.d.ts","sourceRoot":"","sources":["../../src/rpc-request-coalescer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAQ5F,KAAK,qBAAqB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,SAAS,CAAC;AAEtE,wBAAgB,oCAAoC,CAChD,SAAS,EAAE,aAAa,EACxB,mBAAmB,EAAE,qBAAqB,GAC3C,aAAa,CAmDf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-request-deduplication.d.ts","sourceRoot":"","sources":["../../src/rpc-request-deduplication.ts"],"names":[],"mappings":"AAIA,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAOxF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-transport.d.ts","sourceRoot":"","sources":["../../src/rpc-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAC;AAkB5F,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAc1G"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iDAAiD,CAAC;AAI3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAK/G"}