@solana/web3.js 1.73.1 → 1.73.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.esm.js CHANGED
@@ -15,10 +15,11 @@ import require$$0$3 from 'events';
15
15
  import require$$1 from 'path';
16
16
  import require$$0$4 from 'http';
17
17
  import require$$0$5, { Agent as Agent$1 } from 'https';
18
- import { coerce, instance, string, tuple, literal, unknown, union, type, optional, any, number, array, nullable, create, boolean, record, assert as assert$1 } from 'superstruct';
19
- import { Client } from 'rpc-websockets';
18
+ import { coerce, instance, string, tuple, literal, unknown, type, number, array, nullable, optional, boolean, record, union, create, any, assert as assert$1 } from 'superstruct';
20
19
  import RpcClient from 'jayson/lib/client/browser';
21
20
  import * as nodeFetch from 'node-fetch';
21
+ import RpcWebSocketCommonClient from 'rpc-websockets/dist/lib/client';
22
+ import WebsocketFactory from 'rpc-websockets/dist/lib/client/websocket';
22
23
  import { keccak_256 } from '@noble/hashes/sha3';
23
24
  import { hmac } from '@noble/hashes/hmac';
24
25
  import * as secp256k1 from '@noble/secp256k1';
@@ -3311,7 +3312,11 @@ function getDefaultExportFromCjs (x) {
3311
3312
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
3312
3313
  }
3313
3314
 
3314
- var agentkeepalive = {exports: {}};
3315
+ var agentkeepaliveExports = {};
3316
+ var agentkeepalive = {
3317
+ get exports(){ return agentkeepaliveExports; },
3318
+ set exports(v){ agentkeepaliveExports = v; },
3319
+ };
3315
3320
 
3316
3321
  /**
3317
3322
  * Helpers.
@@ -3499,9 +3504,17 @@ var humanizeMs = function (t) {
3499
3504
  return r;
3500
3505
  };
3501
3506
 
3502
- var src = {exports: {}};
3507
+ var srcExports = {};
3508
+ var src = {
3509
+ get exports(){ return srcExports; },
3510
+ set exports(v){ srcExports = v; },
3511
+ };
3503
3512
 
3504
- var browser = {exports: {}};
3513
+ var browserExports = {};
3514
+ var browser = {
3515
+ get exports(){ return browserExports; },
3516
+ set exports(v){ browserExports = v; },
3517
+ };
3505
3518
 
3506
3519
  var common;
3507
3520
  var hasRequiredCommon;
@@ -3790,7 +3803,7 @@ function requireCommon () {
3790
3803
  var hasRequiredBrowser;
3791
3804
 
3792
3805
  function requireBrowser () {
3793
- if (hasRequiredBrowser) return browser.exports;
3806
+ if (hasRequiredBrowser) return browserExports;
3794
3807
  hasRequiredBrowser = 1;
3795
3808
  (function (module, exports) {
3796
3809
  /**
@@ -4060,11 +4073,15 @@ function requireBrowser () {
4060
4073
  return '[UnexpectedJSONParseError]: ' + error.message;
4061
4074
  }
4062
4075
  };
4063
- } (browser, browser.exports));
4064
- return browser.exports;
4076
+ } (browser, browserExports));
4077
+ return browserExports;
4065
4078
  }
4066
4079
 
4067
- var node = {exports: {}};
4080
+ var nodeExports = {};
4081
+ var node = {
4082
+ get exports(){ return nodeExports; },
4083
+ set exports(v){ nodeExports = v; },
4084
+ };
4068
4085
 
4069
4086
  var hasFlag;
4070
4087
  var hasRequiredHasFlag;
@@ -4228,7 +4245,7 @@ function requireSupportsColor () {
4228
4245
  var hasRequiredNode;
4229
4246
 
4230
4247
  function requireNode () {
4231
- if (hasRequiredNode) return node.exports;
4248
+ if (hasRequiredNode) return nodeExports;
4232
4249
  hasRequiredNode = 1;
4233
4250
  (function (module, exports) {
4234
4251
  const tty = require$$0$2;
@@ -4490,8 +4507,8 @@ function requireNode () {
4490
4507
  this.inspectOpts.colors = this.useColors;
4491
4508
  return util.inspect(v, this.inspectOpts);
4492
4509
  };
4493
- } (node, node.exports));
4494
- return node.exports;
4510
+ } (node, nodeExports));
4511
+ return nodeExports;
4495
4512
  }
4496
4513
 
4497
4514
  /**
@@ -4507,7 +4524,11 @@ function requireNode () {
4507
4524
  }
4508
4525
  } (src));
4509
4526
 
4510
- var compat = {exports: {}};
4527
+ var compatExports = {};
4528
+ var compat = {
4529
+ get exports(){ return compatExports; },
4530
+ set exports(v){ compatExports = v; },
4531
+ };
4511
4532
 
4512
4533
  /*!
4513
4534
  * depd
@@ -4741,8 +4762,8 @@ function requireEventListenerCount () {
4741
4762
  * Module dependencies.
4742
4763
  */
4743
4764
 
4744
- var callSiteToString = compat.exports.callSiteToString;
4745
- var eventListenerCount = compat.exports.eventListenerCount;
4765
+ var callSiteToString = compatExports.callSiteToString;
4766
+ var eventListenerCount = compatExports.eventListenerCount;
4746
4767
  var relative = require$$1.relative;
4747
4768
 
4748
4769
  /**
@@ -5268,7 +5289,7 @@ var constants = {
5268
5289
 
5269
5290
  const OriginalAgent = require$$0$4.Agent;
5270
5291
  const ms = humanizeMs;
5271
- const debug = src.exports('agentkeepalive');
5292
+ const debug = srcExports('agentkeepalive');
5272
5293
  const deprecate = depd_1('agentkeepalive');
5273
5294
  const {
5274
5295
  INIT_SOCKET: INIT_SOCKET$1,
@@ -5720,7 +5741,7 @@ var https_agent = HttpsAgent;
5720
5741
  module.exports.constants = constants;
5721
5742
  } (agentkeepalive));
5722
5743
 
5723
- var HttpKeepAliveAgent = /*@__PURE__*/getDefaultExportFromCjs(agentkeepalive.exports);
5744
+ var HttpKeepAliveAgent = /*@__PURE__*/getDefaultExportFromCjs(agentkeepaliveExports);
5724
5745
 
5725
5746
  var objToString = Object.prototype.toString;
5726
5747
  var objKeys = Object.keys || function(obj) {
@@ -5943,6 +5964,56 @@ async function fetchImpl (input, init) {
5943
5964
  return await nodeFetch.default(processedInput, init);
5944
5965
  }
5945
5966
 
5967
+ class RpcWebSocketClient extends RpcWebSocketCommonClient {
5968
+ constructor(address, options, generate_request_id) {
5969
+ const webSocketFactory = url => {
5970
+ const rpc = WebsocketFactory(url, {
5971
+ autoconnect: true,
5972
+ max_reconnects: 5,
5973
+ reconnect: true,
5974
+ reconnect_interval: 1000,
5975
+ ...options
5976
+ });
5977
+
5978
+ if ('socket' in rpc) {
5979
+ this.underlyingSocket = rpc.socket;
5980
+ } else {
5981
+ this.underlyingSocket = rpc;
5982
+ }
5983
+
5984
+ return rpc;
5985
+ };
5986
+
5987
+ super(webSocketFactory, address, options, generate_request_id);
5988
+ this.underlyingSocket = void 0;
5989
+ }
5990
+
5991
+ call(...args) {
5992
+ const readyState = this.underlyingSocket?.readyState;
5993
+
5994
+ if (readyState === 1
5995
+ /* WebSocket.OPEN */
5996
+ ) {
5997
+ return super.call(...args);
5998
+ }
5999
+
6000
+ return Promise.reject(new Error('Tried to call a JSON-RPC method `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));
6001
+ }
6002
+
6003
+ notify(...args) {
6004
+ const readyState = this.underlyingSocket?.readyState;
6005
+
6006
+ if (readyState === 1
6007
+ /* WebSocket.OPEN */
6008
+ ) {
6009
+ return super.notify(...args);
6010
+ }
6011
+
6012
+ return Promise.reject(new Error('Tried to send a JSON-RPC notification `' + args[0] + '` but the socket was not `CONNECTING` or `OPEN` (`readyState` was ' + readyState + ')'));
6013
+ }
6014
+
6015
+ }
6016
+
5946
6017
  // TODO: These constants should be removed in favor of reading them out of a
5947
6018
  // Syscall account
5948
6019
 
@@ -6322,7 +6393,7 @@ function createRpcClient(url, httpHeaders, customFetch, fetchMiddleware, disable
6322
6393
  };
6323
6394
 
6324
6395
  if (url.startsWith('https:')) {
6325
- agent = new agentkeepalive.exports.HttpsAgent(agentOptions);
6396
+ agent = new agentkeepaliveExports.HttpsAgent(agentOptions);
6326
6397
  } else {
6327
6398
  agent = new HttpKeepAliveAgent(agentOptions);
6328
6399
  }
@@ -7272,7 +7343,7 @@ class Connection {
7272
7343
  this._rpcClient = createRpcClient(endpoint, httpHeaders, fetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent);
7273
7344
  this._rpcRequest = createRpcRequest(this._rpcClient);
7274
7345
  this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);
7275
- this._rpcWebSocket = new Client(this._rpcWsEndpoint, {
7346
+ this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {
7276
7347
  autoconnect: false,
7277
7348
  max_reconnects: Infinity
7278
7349
  });
@@ -9720,7 +9791,11 @@ class Connection {
9720
9791
  this._rpcWebSocketConnected = true;
9721
9792
  this._rpcWebSocketHeartbeat = setInterval(() => {
9722
9793
  // Ping server every 5s to prevent idle timeouts
9723
- this._rpcWebSocket.notify('ping').catch(() => {});
9794
+ (async () => {
9795
+ try {
9796
+ await this._rpcWebSocket.notify('ping'); // eslint-disable-next-line no-empty
9797
+ } catch {}
9798
+ })();
9724
9799
  }, 5000);
9725
9800
 
9726
9801
  this._updateSubscriptions();
@@ -10068,9 +10143,7 @@ class Connection {
10068
10143
  */
10069
10144
  args) {
10070
10145
  const clientSubscriptionId = this._nextClientSubscriptionId++;
10071
- const hash = fastStableStringify$1([subscriptionConfig.method, args], true
10072
- /* isArrayProp */
10073
- );
10146
+ const hash = fastStableStringify$1([subscriptionConfig.method, args]);
10074
10147
  const existingSubscription = this._subscriptionsByHash[hash];
10075
10148
 
10076
10149
  if (existingSubscription === undefined) {