1.8.1 • Published 2 years ago

@open-rpc/client-js v1.8.1

Weekly downloads
279
License
Apache-2.0
Repository
github
Last release
2 years ago

OpenRPC Client JS

A browser-compatible JSON-RPC client with multiple transports:

  • EventEmitter
  • HTTP/HTTPS
  • WebSocket
  • PostMessageWindow
  • PostMessageIframe
import { RequestManager, HTTPTransport, Client } from "@open-rpc/client-js";
const transport = new HTTPTransport("http://localhost:8545");
const client = new Client(new RequestManager([transport]));
const result = await client.request({method: "addition", params: [2, 2]});
// => { jsonrpc: '2.0', id: 1, result: 4 }

Examples

import { EventEmitter } from "events";
import { RequestManager, EventEmitterTransport, Client } from "@open-rpc/client-js";

const chan1 = "chan1";
const chan2 = "chan2";

const emitter = new EventEmitter();
const transport = new EventEmitterTransport(emitter, chan1, chan2);
const requestManager = new RequestManager([transport]);
const client = new Client(requestManager);

// event emitter server code
emitter.on(chan1, (jsonrpcRequest) => {
  const res = {
    jsonrpc: "2.0",
    result: "potato",
    id: jsonrpcRequest.id,
  };
  emitter.emit(chan2, JSON.stringify(res));
});

const main = async () => {
  const result = await client.request({method: "addition", params: [2, 2]});
  console.log(result);
};

main().then(() => {
  console.log("DONE");
});
import { RequestManager, Client, HTTPTransport } from "@open-rpc/client-js";

const transport = new HTTPTransport("http://localhost:3333");
const requestManager = new RequestManager([transport]);
const client = new Client(requestManager);

const main = async () => {
  const result = await client.request({method: "addition", params: [2, 2]});
  console.log(result);
};

main().then(() => {
  console.log("DONE");
});
import { RequestManager, Client, WebSocketTransport } from "@open-rpc/client-js";

const transport = new WebSocketTransport("ws://localhost:3333");
const requestManager = new RequestManager([transport]);
const client = new Client(requestManager);

const main = async () => {
  const result = await client.request({method: "addition", params: [2, 2]});
  console.log(result);
};

main().then(() => {
  console.log("DONE");
  client.close();
});

Contributing

How to contribute, build and release are outlined in CONTRIBUTING.md, BUILDING.md and RELEASING.md respectively. Commits in this repository follow the CONVENTIONAL_COMMITS.md specification.

casper-js-sdk-test-h2hdwalletcoinoxscasperdask-js-sdk@infinitebrahmanuniverse/nolb-_open-@everything-registry/sub-chunk-684test-sui.js@djhahe/casperdash-js-sdk@colligence/aws-kms-provider@databutton/codemirror-languageserverkardia-js-sdkkevacoin-jsstarknet-rpc-providerstarknet-account-analyzer@ckitjs/mercury-client@ckitjs/tippy-client@abstractfruitfactory/radix-js@clangd-wasm/clangd-wasm@heemale/mango.js@foundation-network/perpetual-client@foundation-network/spot-client@gdquest/codemirror-gdscript@etclabscore/ethereum-json-rpc@etclabscore/jade-service-runner@etclabscore/jade-service-runner-client@etclabscore/pristine-typescript-openrpc-server-client@etclabscore/signatory@etclabscore/signatory-client@ethernode/ethernode-enapi-client@ethernodeio/enapi-client@etherdata-blockchain/etherdata-sdk-react@geosky/gsaapi-client@kyve/octopus@levihhh/sui.js@mgonetwork/mango.js@marimo-team/frontend@marimo-team/frontend-wasm@marimo-team/islands@martianwallet/sui-web3.js@nilfoundation/niljs@jiffy-labs/web3a@joshvera/frontend@khannanov-nil/nil-open-rpc-docs-react@radixdlt/networking@open-rpc/inspector@planetarium/aws-kms-provider@owodunni/inspector@shinami/clients@shipsgold/ships-client@shipsgold/ships-contracts-client@roochnetwork/sdkopenrpc-mcp-servernimiq-rpc-client-tsradixdlt-js-sdksig.tools-sdkhsuijsheadsup-serverheadsup-server-client@toruslabs/xrpl-controllers@tokesim/tokesim-chain@toruslabs/casper-js-sdk@urbit/roller-api@usedapptesthello/casper-js-sdk@yubing744/rooch-sdk@xops.net/inspector-snaps@xops.net/openrpc-cli@zalastax/nolb-_open-@swappland/ft-standards-client@swappland/market-contract-client@swappland/market-contract-spec@swappland/simple-nft-client@swappland/wallet-indexer-api-client@swappland/open-rpc-token-standards-specs@swappland/simple-ft-client@swappland/nft-standards-client@zhujiantao/inspectorcasper-client-sdkcasper-js-sdkcasper-js-sdk-testcasper-js-sdk-test2casperdash-js-sdkcolligence-aws-kms-providercodemirror-languageservercremonaaws-kms-providerdimension-js-sdkdimension-js-sdk-cyethereum-json-rpc-typesetd-react-uiethos-connectetherdata-react-uifishyfish@shadowtest/octopus-backup@shadowtest/polkadot-backup-ex@shadowtest/polkadot-backup
1.8.1

2 years ago

1.8.0

2 years ago

1.7.1

4 years ago

1.7.0

4 years ago

1.6.3

4 years ago

1.6.2

4 years ago

1.6.1

5 years ago

1.6.0

5 years ago

1.5.2

5 years ago

1.5.1

5 years ago

1.5.0

5 years ago

1.4.0

5 years ago

1.3.3

5 years ago

1.3.2

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.5

5 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago