@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.browser.cjs.js +61 -6
- package/lib/index.browser.cjs.js.map +1 -1
- package/lib/index.browser.esm.js +60 -7
- package/lib/index.browser.esm.js.map +1 -1
- package/lib/index.cjs.js +97 -22
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.esm.js +96 -23
- package/lib/index.esm.js.map +1 -1
- package/lib/index.iife.js +2594 -2291
- package/lib/index.iife.js.map +1 -1
- package/lib/index.iife.min.js +5 -5
- package/lib/index.iife.min.js.map +1 -1
- package/lib/index.native.js +61 -6
- package/lib/index.native.js.map +1 -1
- package/package.json +5 -5
- package/src/__forks__/browser/rpc-websocket-factory.ts +1 -0
- package/src/__forks__/react-native/rpc-websocket-factory.ts +1 -0
- package/src/connection.ts +7 -2
- package/src/rpc-websocket-factory.ts +4 -0
- package/src/rpc-websocket.ts +79 -0
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,
|
|
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
|
|
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
|
|
3507
|
+
var srcExports = {};
|
|
3508
|
+
var src = {
|
|
3509
|
+
get exports(){ return srcExports; },
|
|
3510
|
+
set exports(v){ srcExports = v; },
|
|
3511
|
+
};
|
|
3503
3512
|
|
|
3504
|
-
var
|
|
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
|
|
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,
|
|
4064
|
-
return
|
|
4076
|
+
} (browser, browserExports));
|
|
4077
|
+
return browserExports;
|
|
4065
4078
|
}
|
|
4066
4079
|
|
|
4067
|
-
var
|
|
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
|
|
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,
|
|
4494
|
-
return
|
|
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
|
|
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 =
|
|
4745
|
-
var 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 =
|
|
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(
|
|
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
|
|
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
|
|
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
|
-
|
|
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]
|
|
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) {
|