New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@solana/rpc-transport

Package Overview
Dependencies
Maintainers
13
Versions
602
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@solana/rpc-transport - npm Package Compare versions

Comparing version 2.0.0-experimental.982fafd to 2.0.0-experimental.9bf9fdb

README.md

44

dist/index.browser.js

@@ -36,4 +36,4 @@ // ../build-scripts/env-shim.ts

// src/json-rpc.ts
function createArmedJsonRpc(rpcConfig, pendingRequest) {
const overrides = {
function createPendingRpcRequest(rpcConfig, pendingRequest) {
return {
async send(options) {

@@ -53,26 +53,4 @@ const { methodName, params, responseProcessor } = pendingRequest;

};
return makeProxy(rpcConfig, overrides, pendingRequest);
}
function createArmedBatchJsonRpc(rpcConfig, pendingRequests) {
const overrides = {
async sendBatch(options) {
const payload = pendingRequests.map(({ methodName, params }) => createJsonRpcMessage(methodName, params));
const responses = await rpcConfig.transport({
payload,
signal: options?.abortSignal
});
const requestOrder = payload.map((p) => p.id);
return responses.sort((a, b) => requestOrder.indexOf(a.id) - requestOrder.indexOf(b.id)).map((response, ii) => {
if ("error" in response) {
throw new SolanaJsonRpcError(response.error);
} else {
const { responseProcessor } = pendingRequests[ii];
return responseProcessor ? responseProcessor(response.result) : response.result;
}
});
}
};
return makeProxy(rpcConfig, overrides, pendingRequests);
}
function makeProxy(rpcConfig, overrides, pendingRequestOrRequests) {
function makeProxy(rpcConfig) {
return new Proxy(rpcConfig.api, {

@@ -86,5 +64,2 @@ defineProperty() {

get(target, p, receiver) {
if (overrides && Reflect.has(overrides, p)) {
return Reflect.get(overrides, p, receiver);
}
return function(...rawParams) {

@@ -94,8 +69,3 @@ const methodName = p.toString();

const newRequest = createRpcRequest ? createRpcRequest(...rawParams) : { methodName, params: rawParams };
if (pendingRequestOrRequests == null) {
return createArmedJsonRpc(rpcConfig, newRequest);
} else {
const nextPendingRequests = Array.isArray(pendingRequestOrRequests) ? [...pendingRequestOrRequests, newRequest] : [pendingRequestOrRequests, newRequest];
return createArmedBatchJsonRpc(rpcConfig, nextPendingRequests);
}
return createPendingRpcRequest(rpcConfig, newRequest);
};

@@ -109,2 +79,5 @@ }

// ../fetch-impl/dist/index.browser.js
var e = globalThis.fetch;
// src/transports/http/http-transport-errors.ts

@@ -172,5 +145,2 @@ var SolanaHttpError = class extends Error {

// ../fetch-impl/dist/index.browser.js
var e = globalThis.fetch;
// src/transports/http/http-transport.ts

@@ -177,0 +147,0 @@ function createHttpTransport({ httpAgentNodeOnly, headers, url }) {

@@ -36,4 +36,4 @@ // ../build-scripts/env-shim.ts

// src/json-rpc.ts
function createArmedJsonRpc(rpcConfig, pendingRequest) {
const overrides = {
function createPendingRpcRequest(rpcConfig, pendingRequest) {
return {
async send(options) {

@@ -53,26 +53,4 @@ const { methodName, params, responseProcessor } = pendingRequest;

};
return makeProxy(rpcConfig, overrides, pendingRequest);
}
function createArmedBatchJsonRpc(rpcConfig, pendingRequests) {
const overrides = {
async sendBatch(options) {
const payload = pendingRequests.map(({ methodName, params }) => createJsonRpcMessage(methodName, params));
const responses = await rpcConfig.transport({
payload,
signal: options?.abortSignal
});
const requestOrder = payload.map((p) => p.id);
return responses.sort((a, b) => requestOrder.indexOf(a.id) - requestOrder.indexOf(b.id)).map((response, ii) => {
if ("error" in response) {
throw new SolanaJsonRpcError(response.error);
} else {
const { responseProcessor } = pendingRequests[ii];
return responseProcessor ? responseProcessor(response.result) : response.result;
}
});
}
};
return makeProxy(rpcConfig, overrides, pendingRequests);
}
function makeProxy(rpcConfig, overrides, pendingRequestOrRequests) {
function makeProxy(rpcConfig) {
return new Proxy(rpcConfig.api, {

@@ -86,5 +64,2 @@ defineProperty() {

get(target, p, receiver) {
if (overrides && Reflect.has(overrides, p)) {
return Reflect.get(overrides, p, receiver);
}
return function(...rawParams) {

@@ -94,8 +69,3 @@ const methodName = p.toString();

const newRequest = createRpcRequest ? createRpcRequest(...rawParams) : { methodName, params: rawParams };
if (pendingRequestOrRequests == null) {
return createArmedJsonRpc(rpcConfig, newRequest);
} else {
const nextPendingRequests = Array.isArray(pendingRequestOrRequests) ? [...pendingRequestOrRequests, newRequest] : [pendingRequestOrRequests, newRequest];
return createArmedBatchJsonRpc(rpcConfig, nextPendingRequests);
}
return createPendingRpcRequest(rpcConfig, newRequest);
};

@@ -109,2 +79,5 @@ }

// ../fetch-impl/dist/index.browser.js
var e = globalThis.fetch;
// src/transports/http/http-transport-errors.ts

@@ -172,5 +145,2 @@ var SolanaHttpError = class extends Error {

// ../fetch-impl/dist/index.browser.js
var e = globalThis.fetch;
// src/transports/http/http-transport.ts

@@ -177,0 +147,0 @@ function createHttpTransport({ httpAgentNodeOnly, headers, url }) {

@@ -38,4 +38,4 @@ import t from 'node-fetch';

// src/json-rpc.ts
function createArmedJsonRpc(rpcConfig, pendingRequest) {
const overrides = {
function createPendingRpcRequest(rpcConfig, pendingRequest) {
return {
async send(options) {

@@ -55,26 +55,4 @@ const { methodName, params, responseProcessor } = pendingRequest;

};
return makeProxy(rpcConfig, overrides, pendingRequest);
}
function createArmedBatchJsonRpc(rpcConfig, pendingRequests) {
const overrides = {
async sendBatch(options) {
const payload = pendingRequests.map(({ methodName, params }) => createJsonRpcMessage(methodName, params));
const responses = await rpcConfig.transport({
payload,
signal: options?.abortSignal
});
const requestOrder = payload.map((p) => p.id);
return responses.sort((a, b) => requestOrder.indexOf(a.id) - requestOrder.indexOf(b.id)).map((response, ii) => {
if ("error" in response) {
throw new SolanaJsonRpcError(response.error);
} else {
const { responseProcessor } = pendingRequests[ii];
return responseProcessor ? responseProcessor(response.result) : response.result;
}
});
}
};
return makeProxy(rpcConfig, overrides, pendingRequests);
}
function makeProxy(rpcConfig, overrides, pendingRequestOrRequests) {
function makeProxy(rpcConfig) {
return new Proxy(rpcConfig.api, {

@@ -88,5 +66,2 @@ defineProperty() {

get(target, p, receiver) {
if (overrides && Reflect.has(overrides, p)) {
return Reflect.get(overrides, p, receiver);
}
return function(...rawParams) {

@@ -96,8 +71,3 @@ const methodName = p.toString();

const newRequest = createRpcRequest ? createRpcRequest(...rawParams) : { methodName, params: rawParams };
if (pendingRequestOrRequests == null) {
return createArmedJsonRpc(rpcConfig, newRequest);
} else {
const nextPendingRequests = Array.isArray(pendingRequestOrRequests) ? [...pendingRequestOrRequests, newRequest] : [pendingRequestOrRequests, newRequest];
return createArmedBatchJsonRpc(rpcConfig, nextPendingRequests);
}
return createPendingRpcRequest(rpcConfig, newRequest);
};

@@ -110,2 +80,3 @@ }

}
var f = t;

@@ -173,3 +144,2 @@ // src/transports/http/http-transport-errors.ts

}
var f = t;

@@ -176,0 +146,0 @@ // src/transports/http/http-transport.ts

export declare const SolanaJsonRpcErrorCode: {
readonly JSON_RPC_INVALID_PARAMS: -32602;
readonly JSON_RPC_SCAN_ERROR: -32012;

@@ -3,0 +4,0 @@ readonly JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP: -32001;

import { IRpcTransport } from './transports/transport-types';
/**
* Public API.
* Public RPC API.
*/

@@ -8,5 +8,2 @@ export type IRpcApi<TRpcMethods> = {

};
export type SendOptions = Readonly<{
abortSignal?: AbortSignal;
}>;
export type Rpc<TRpcMethods> = RpcMethods<TRpcMethods>;

@@ -17,2 +14,5 @@ export type RpcConfig<TRpcMethods> = Readonly<{

}>;
/**
* Public pending RPC request API.
*/
export type RpcRequest<TResponse> = {

@@ -23,10 +23,8 @@ methodName: string;

};
export interface ArmedRpcOwnMethods<TResponse> {
export type PendingRpcRequest<TResponse> = {
send(options?: SendOptions): Promise<TResponse>;
}
export type ArmedRpc<TRpcMethods, TResponse> = ArmedRpcMethods<TRpcMethods, TResponse> & ArmedRpcOwnMethods<TResponse>;
export interface ArmedBatchRpcOwnMethods<TResponses> {
sendBatch(options?: SendOptions): Promise<TResponses>;
}
export type ArmedBatchRpc<TRpcMethods, TResponses extends unknown[]> = ArmedBatchRpcMethods<TRpcMethods, TResponses> & ArmedBatchRpcOwnMethods<TResponses>;
};
export type SendOptions = Readonly<{
abortSignal?: AbortSignal;
}>;
/**

@@ -36,15 +34,8 @@ * Private RPC-building types.

type RpcMethods<TRpcMethods> = {
[TMethodName in keyof TRpcMethods]: ArmedRpcReturner<TRpcMethods, ApiMethodImplementations<TRpcMethods, TMethodName>>;
[TMethodName in keyof TRpcMethods]: PendingRpcRequestBuilder<ApiMethodImplementations<TRpcMethods, TMethodName>>;
};
type ArmedRpcMethods<TRpcMethods, TResponse> = ArmedBatchRpcMethods<TRpcMethods, [TResponse]>;
type ArmedBatchRpcMethods<TRpcMethods, TResponses extends unknown[]> = {
[TMethodName in keyof TRpcMethods]: ArmedBatchRpcReturner<TRpcMethods, ApiMethodImplementations<TRpcMethods, TMethodName>, TResponses>;
};
type ApiMethodImplementations<TRpcMethods, TMethod extends keyof TRpcMethods> = Overloads<TRpcMethods[TMethod]>;
type ArmedRpcReturner<TRpcMethods, TMethodImplementations> = UnionToIntersection<Flatten<{
[P in keyof TMethodImplementations]: TMethodImplementations[P] extends Callable ? (...args: Parameters<TMethodImplementations[P]>) => ArmedRpc<TRpcMethods, ReturnType<TMethodImplementations[P]>> : never;
type PendingRpcRequestBuilder<TMethodImplementations> = UnionToIntersection<Flatten<{
[P in keyof TMethodImplementations]: TMethodImplementations[P] extends Callable ? (...args: Parameters<TMethodImplementations[P]>) => PendingRpcRequest<ReturnType<TMethodImplementations[P]>> : never;
}>>;
type ArmedBatchRpcReturner<TRpcMethods, TMethodImplementations, TResponses extends unknown[]> = UnionToIntersection<Flatten<{
[P in keyof TMethodImplementations]: TMethodImplementations[P] extends Callable ? (...args: Parameters<TMethodImplementations[P]>) => ArmedBatchRpc<TRpcMethods, [...TResponses, ReturnType<TMethodImplementations[P]>]> : never;
}>>;
/**

@@ -51,0 +42,0 @@ * Utility types that do terrible, awful things.

/// <reference types="node" />
/// <reference types="node" />
import { AllowedHttpRequestHeaders } from './http-transport-headers';
import { IRpcTransport } from '../transport-types';
import type { Agent as NodeHttpAgent } from 'node:http';
import type { Agent as NodeHttpsAgent } from 'node:https';
import { IRpcTransport } from '../transport-types';
import { AllowedHttpRequestHeaders } from './http-transport-headers';
type Config = Readonly<{

@@ -8,0 +8,0 @@ headers?: AllowedHttpRequestHeaders;

{
"name": "@solana/rpc-transport",
"version": "2.0.0-experimental.982fafd",
"version": "2.0.0-experimental.9bf9fdb",
"description": "Network transports for accessing the Solana JSON RPC API",

@@ -49,6 +49,7 @@ "exports": {

"devDependencies": {
"@solana/eslint-config-solana": "^1.0.0",
"@solana/eslint-config-solana": "^1.0.1",
"@swc/core": "^1.3.18",
"@swc/jest": "^0.2.23",
"@types/jest": "^29.5.0",
"@swc/jest": "^0.2.26",
"@types/jest": "^29.5.2",
"@types/node": "^16",
"@typescript-eslint/eslint-plugin": "^5.57.1",

@@ -61,12 +62,12 @@ "@typescript-eslint/parser": "^5.57.1",

"eslint-plugin-sort-keys-fix": "^1.1.2",
"jest": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
"jest": "^29.6.1",
"jest-environment-jsdom": "^29.6.0",
"jest-fetch-mock-fork": "^3.0.4",
"jest-runner-eslint": "^2.0.0",
"jest-runner-eslint": "^2.1.0",
"jest-runner-prettier": "^1.0.0",
"postcss": "^8.4.12",
"prettier": "^2.7.1",
"prettier": "^2.8.8",
"ts-node": "^10.9.1",
"tsup": "6.7.0",
"typescript": "^5.0.3",
"typescript": "^5.0.4",
"version-from-git": "^1.1.1",

@@ -86,5 +87,2 @@ "build-scripts": "0.0.0",

},
"dependencies": {
"node-fetch": "^3.3.1"
},
"scripts": {

@@ -91,0 +89,0 @@ "compile:js": "tsup --config build-scripts/tsup.config.package.ts",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc