@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.cjs.js CHANGED
@@ -19,9 +19,10 @@ var require$$1 = require('path');
19
19
  var require$$0$4 = require('http');
20
20
  var require$$0$5 = require('https');
21
21
  var superstruct = require('superstruct');
22
- var rpcWebsockets = require('rpc-websockets');
23
22
  var RpcClient = require('jayson/lib/client/browser');
24
23
  var nodeFetch = require('node-fetch');
24
+ var RpcWebSocketCommonClient = require('rpc-websockets/dist/lib/client');
25
+ var WebsocketFactory = require('rpc-websockets/dist/lib/client/websocket');
25
26
  var sha3 = require('@noble/hashes/sha3');
26
27
  var hmac = require('@noble/hashes/hmac');
27
28
  var secp256k1 = require('@noble/secp256k1');
@@ -59,6 +60,8 @@ var require$$0__default$4 = /*#__PURE__*/_interopDefaultLegacy(require$$0$4);
59
60
  var require$$0__default$5 = /*#__PURE__*/_interopDefaultLegacy(require$$0$5);
60
61
  var RpcClient__default = /*#__PURE__*/_interopDefaultLegacy(RpcClient);
61
62
  var nodeFetch__namespace = /*#__PURE__*/_interopNamespace(nodeFetch);
63
+ var RpcWebSocketCommonClient__default = /*#__PURE__*/_interopDefaultLegacy(RpcWebSocketCommonClient);
64
+ var WebsocketFactory__default = /*#__PURE__*/_interopDefaultLegacy(WebsocketFactory);
62
65
  var secp256k1__namespace = /*#__PURE__*/_interopNamespace(secp256k1);
63
66
 
64
67
  /**
@@ -3349,7 +3352,11 @@ function getDefaultExportFromCjs (x) {
3349
3352
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
3350
3353
  }
3351
3354
 
3352
- var agentkeepalive = {exports: {}};
3355
+ var agentkeepaliveExports = {};
3356
+ var agentkeepalive = {
3357
+ get exports(){ return agentkeepaliveExports; },
3358
+ set exports(v){ agentkeepaliveExports = v; },
3359
+ };
3353
3360
 
3354
3361
  /**
3355
3362
  * Helpers.
@@ -3537,9 +3544,17 @@ var humanizeMs = function (t) {
3537
3544
  return r;
3538
3545
  };
3539
3546
 
3540
- var src = {exports: {}};
3547
+ var srcExports = {};
3548
+ var src = {
3549
+ get exports(){ return srcExports; },
3550
+ set exports(v){ srcExports = v; },
3551
+ };
3541
3552
 
3542
- var browser = {exports: {}};
3553
+ var browserExports = {};
3554
+ var browser = {
3555
+ get exports(){ return browserExports; },
3556
+ set exports(v){ browserExports = v; },
3557
+ };
3543
3558
 
3544
3559
  var common;
3545
3560
  var hasRequiredCommon;
@@ -3828,7 +3843,7 @@ function requireCommon () {
3828
3843
  var hasRequiredBrowser;
3829
3844
 
3830
3845
  function requireBrowser () {
3831
- if (hasRequiredBrowser) return browser.exports;
3846
+ if (hasRequiredBrowser) return browserExports;
3832
3847
  hasRequiredBrowser = 1;
3833
3848
  (function (module, exports) {
3834
3849
  /**
@@ -4098,11 +4113,15 @@ function requireBrowser () {
4098
4113
  return '[UnexpectedJSONParseError]: ' + error.message;
4099
4114
  }
4100
4115
  };
4101
- } (browser, browser.exports));
4102
- return browser.exports;
4116
+ } (browser, browserExports));
4117
+ return browserExports;
4103
4118
  }
4104
4119
 
4105
- var node = {exports: {}};
4120
+ var nodeExports = {};
4121
+ var node = {
4122
+ get exports(){ return nodeExports; },
4123
+ set exports(v){ nodeExports = v; },
4124
+ };
4106
4125
 
4107
4126
  var hasFlag;
4108
4127
  var hasRequiredHasFlag;
@@ -4266,7 +4285,7 @@ function requireSupportsColor () {
4266
4285
  var hasRequiredNode;
4267
4286
 
4268
4287
  function requireNode () {
4269
- if (hasRequiredNode) return node.exports;
4288
+ if (hasRequiredNode) return nodeExports;
4270
4289
  hasRequiredNode = 1;
4271
4290
  (function (module, exports) {
4272
4291
  const tty = require$$0__default$2["default"];
@@ -4528,8 +4547,8 @@ function requireNode () {
4528
4547
  this.inspectOpts.colors = this.useColors;
4529
4548
  return util.inspect(v, this.inspectOpts);
4530
4549
  };
4531
- } (node, node.exports));
4532
- return node.exports;
4550
+ } (node, nodeExports));
4551
+ return nodeExports;
4533
4552
  }
4534
4553
 
4535
4554
  /**
@@ -4545,7 +4564,11 @@ function requireNode () {
4545
4564
  }
4546
4565
  } (src));
4547
4566
 
4548
- var compat = {exports: {}};
4567
+ var compatExports = {};
4568
+ var compat = {
4569
+ get exports(){ return compatExports; },
4570
+ set exports(v){ compatExports = v; },
4571
+ };
4549
4572
 
4550
4573
  /*!
4551
4574
  * depd
@@ -4779,8 +4802,8 @@ function requireEventListenerCount () {
4779
4802
  * Module dependencies.
4780
4803
  */
4781
4804
 
4782
- var callSiteToString = compat.exports.callSiteToString;
4783
- var eventListenerCount = compat.exports.eventListenerCount;
4805
+ var callSiteToString = compatExports.callSiteToString;
4806
+ var eventListenerCount = compatExports.eventListenerCount;
4784
4807
  var relative = require$$1__default["default"].relative;
4785
4808
 
4786
4809
  /**
@@ -5306,7 +5329,7 @@ var constants = {
5306
5329
 
5307
5330
  const OriginalAgent = require$$0__default$4["default"].Agent;
5308
5331
  const ms = humanizeMs;
5309
- const debug = src.exports('agentkeepalive');
5332
+ const debug = srcExports('agentkeepalive');
5310
5333
  const deprecate = depd_1('agentkeepalive');
5311
5334
  const {
5312
5335
  INIT_SOCKET: INIT_SOCKET$1,
@@ -5758,7 +5781,7 @@ var https_agent = HttpsAgent;
5758
5781
  module.exports.constants = constants;
5759
5782
  } (agentkeepalive));
5760
5783
 
5761
- var HttpKeepAliveAgent = /*@__PURE__*/getDefaultExportFromCjs(agentkeepalive.exports);
5784
+ var HttpKeepAliveAgent = /*@__PURE__*/getDefaultExportFromCjs(agentkeepaliveExports);
5762
5785
 
5763
5786
  var objToString = Object.prototype.toString;
5764
5787
  var objKeys = Object.keys || function(obj) {
@@ -5981,6 +6004,56 @@ async function fetchImpl (input, init) {
5981
6004
  return await nodeFetch__namespace.default(processedInput, init);
5982
6005
  }
5983
6006
 
6007
+ class RpcWebSocketClient extends RpcWebSocketCommonClient__default["default"] {
6008
+ constructor(address, options, generate_request_id) {
6009
+ const webSocketFactory = url => {
6010
+ const rpc = WebsocketFactory__default["default"](url, {
6011
+ autoconnect: true,
6012
+ max_reconnects: 5,
6013
+ reconnect: true,
6014
+ reconnect_interval: 1000,
6015
+ ...options
6016
+ });
6017
+
6018
+ if ('socket' in rpc) {
6019
+ this.underlyingSocket = rpc.socket;
6020
+ } else {
6021
+ this.underlyingSocket = rpc;
6022
+ }
6023
+
6024
+ return rpc;
6025
+ };
6026
+
6027
+ super(webSocketFactory, address, options, generate_request_id);
6028
+ this.underlyingSocket = void 0;
6029
+ }
6030
+
6031
+ call(...args) {
6032
+ const readyState = this.underlyingSocket?.readyState;
6033
+
6034
+ if (readyState === 1
6035
+ /* WebSocket.OPEN */
6036
+ ) {
6037
+ return super.call(...args);
6038
+ }
6039
+
6040
+ 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 + ')'));
6041
+ }
6042
+
6043
+ notify(...args) {
6044
+ const readyState = this.underlyingSocket?.readyState;
6045
+
6046
+ if (readyState === 1
6047
+ /* WebSocket.OPEN */
6048
+ ) {
6049
+ return super.notify(...args);
6050
+ }
6051
+
6052
+ 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 + ')'));
6053
+ }
6054
+
6055
+ }
6056
+
5984
6057
  // TODO: These constants should be removed in favor of reading them out of a
5985
6058
  // Syscall account
5986
6059
 
@@ -6360,7 +6433,7 @@ function createRpcClient(url, httpHeaders, customFetch, fetchMiddleware, disable
6360
6433
  };
6361
6434
 
6362
6435
  if (url.startsWith('https:')) {
6363
- agent = new agentkeepalive.exports.HttpsAgent(agentOptions);
6436
+ agent = new agentkeepaliveExports.HttpsAgent(agentOptions);
6364
6437
  } else {
6365
6438
  agent = new HttpKeepAliveAgent(agentOptions);
6366
6439
  }
@@ -7310,7 +7383,7 @@ class Connection {
7310
7383
  this._rpcClient = createRpcClient(endpoint, httpHeaders, fetch, fetchMiddleware, disableRetryOnRateLimit, httpAgent);
7311
7384
  this._rpcRequest = createRpcRequest(this._rpcClient);
7312
7385
  this._rpcBatchRequest = createRpcBatchRequest(this._rpcClient);
7313
- this._rpcWebSocket = new rpcWebsockets.Client(this._rpcWsEndpoint, {
7386
+ this._rpcWebSocket = new RpcWebSocketClient(this._rpcWsEndpoint, {
7314
7387
  autoconnect: false,
7315
7388
  max_reconnects: Infinity
7316
7389
  });
@@ -9758,7 +9831,11 @@ class Connection {
9758
9831
  this._rpcWebSocketConnected = true;
9759
9832
  this._rpcWebSocketHeartbeat = setInterval(() => {
9760
9833
  // Ping server every 5s to prevent idle timeouts
9761
- this._rpcWebSocket.notify('ping').catch(() => {});
9834
+ (async () => {
9835
+ try {
9836
+ await this._rpcWebSocket.notify('ping'); // eslint-disable-next-line no-empty
9837
+ } catch {}
9838
+ })();
9762
9839
  }, 5000);
9763
9840
 
9764
9841
  this._updateSubscriptions();
@@ -10106,9 +10183,7 @@ class Connection {
10106
10183
  */
10107
10184
  args) {
10108
10185
  const clientSubscriptionId = this._nextClientSubscriptionId++;
10109
- const hash = fastStableStringify$1([subscriptionConfig.method, args], true
10110
- /* isArrayProp */
10111
- );
10186
+ const hash = fastStableStringify$1([subscriptionConfig.method, args]);
10112
10187
  const existingSubscription = this._subscriptionsByHash[hash];
10113
10188
 
10114
10189
  if (existingSubscription === undefined) {