ethers.js/docs/api/providers/jsonrpc-provider/index.html
2020-02-25 14:57:11 -05:00

16 lines
30 KiB
HTML

<html><head><title>JsonRpcProvider</title><link rel="stylesheet" type="text/css" href="/static/style.css"></head><body><div class="sidebar"><div class="header"><div class="logo"><a href="/"><div class="image"></div><div class="name">ethers</div><div class="version">v5.0-beta</div></a></div></div><div class="toc"><div><div class="link title"><a href="/">Documentation</a></div><div class="base show link depth-1"><a href="/getting-started/">Getting Started</a></div><div class="hide link depth-2"><a href="/getting-started/#getting-started--installing">Installing</a></div><div class="hide link depth-2"><a href="/getting-started/#getting-started--importing">Importing</a></div><div class="base show link depth-1"><a href="/concepts/">Concepts</a></div><div class="hide link depth-2"><a href="/concepts/events/">Events</a></div><div class="hide link depth-3"><a href="/concepts/events/#events--solidity-topics">Solidity Topics</a></div><div class="hide link depth-2"><a href="/concepts/gas/">Gas</a></div><div class="hide link depth-3"><a href="/concepts/gas/#gas-price">Gas Price</a></div><div class="hide link depth-3"><a href="/concepts/gas/#gas-limit">Gas Limit</a></div><div class="base ancestor show link depth-1"><a href="/api/">Application Programming Interface</a></div><div class="show link depth-2"><a href="/api/contract/">Contract Interaction</a></div><div class="hide link depth-3"><a href="/api/contract/contract/">Contract</a></div><div class="hide link depth-4"><a href="/api/contract/contract/#contract--properties">Properties</a></div><div class="hide link depth-4"><a href="/api/contract/contract/#contract--methods">Methods</a></div><div class="hide link depth-4"><a href="/api/contract/contract/#contract--events">Events</a></div><div class="hide link depth-4"><a href="/api/contract/contract/#contract-metaclass">Meta-Class</a></div><div class="hide link depth-3"><a href="/api/contract/example/">Example: ERC-20 Contract</a></div><div class="hide link depth-4"><a href="/api/contract/example/#example-erc-20-contract--connecting-to-a-contract">Connecting to a Contract</a></div><div class="hide link depth-4"><a href="/api/contract/example/#example-erc-20-contract--properties-inheritted-from-contract">Properties ^^//(inheritted from [[contract]])//^^</a></div><div class="hide link depth-4"><a href="/api/contract/example/#example-erc-20-contract--methods-inheritted-from-contract">Methods ^^//(inheritted from [[contract]])//^^</a></div><div class="hide link depth-4"><a href="/api/contract/example/#erc20-events">Events ^^//(inheritted from Contract)//^^</a></div><div class="hide link depth-4"><a href="/api/contract/example/#example-erc-20-contract--meta-class-methods-added-at-runtime">Meta-Class Methods ^^//(added at Runtime)//^^</a></div><div class="hide link depth-4"><a href="/api/contract/example/#example-erc-20-contract--meta-class-filters-added-at-runtime">Meta-Class Filters ^^//(added at Runtime)//^^</a></div><div class="show link depth-2"><a href="/api/signer/">Signers</a></div><div class="hide link depth-3"><a href="/api/signer/#signer">Signer</a></div><div class="hide link depth-3"><a href="/api/signer/#wallet">Wallet</a></div><div class="hide link depth-3"><a href="/api/signer/#void-signer">VoidSigner</a></div><div class="hide link depth-3"><a href="/api/signer/#externally-owned-account">ExternallyOwnedAccount</a></div><div class="ancestor show link depth-2"><a href="/api/providers/">Providers</a></div><div class="show link depth-3"><a href="/api/providers/provider/">Provider</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--accounts-methods">Accounts Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--blocks-methods">Blocks Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--ethereum-naming-service-ens-methods">Ethereum Naming Service (ENS) Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--logs-methods">Logs Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--network-status-methods">Network Status Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--transactions-methods">Transactions Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--event-emitter-methods">Event Emitter Methods</a></div><div class="hide link depth-4"><a href="/api/providers/provider/#provider--inspection-methods">Inspection Methods</a></div><div class="myself ancestor ancestor show link depth-3"><a href="/api/providers/jsonrpc-provider/">JsonRpcProvider</a></div><div class="child link depth-4"><a href="/api/providers/jsonrpc-provider/#signer-jsonrpc">JsonRpcSigner</a></div><div class="child link depth-4"><a href="/api/providers/jsonrpc-provider/#provider-jsonrpc-uncheckedsigner">JsonRpcUncheckedSigner</a></div><div class="show link depth-3"><a href="/api/providers/api-providers/">API Providers</a></div><div class="hide link depth-4"><a href="/api/providers/api-providers/#api-providers--etherscanprovider">EtherscanProvider</a></div><div class="hide link depth-4"><a href="/api/providers/api-providers/#api-providers--infuraprovider">InfuraProvider</a></div><div class="hide link depth-4"><a href="/api/providers/api-providers/#api-providers--alchemyprovider">AlchemyProvider</a></div><div class="hide link depth-4"><a href="/api/providers/api-providers/#api-providers--cloudfrontprovider">CloudfrontProvider</a></div><div class="show link depth-3"><a href="/api/providers/other/">Other Providers</a></div><div class="hide link depth-4"><a href="/api/providers/other/#provider-fallback">FallbackProvider</a></div><div class="hide link depth-4"><a href="/api/providers/other/#provider-ipc">IpcProvider</a></div><div class="hide link depth-4"><a href="/api/providers/other/#provider-urljsonrpc">UrlJsonRpcProvider</a></div><div class="hide link depth-4"><a href="/api/providers/other/#provider-web3">Web3Provider</a></div><div class="show link depth-3"><a href="/api/providers/types/">Types</a></div><div class="hide link depth-4"><a href="/api/providers/types/#provider-blocktag">BlockTag</a></div><div class="hide link depth-4"><a href="/api/providers/types/#provider-network">Network</a></div><div class="hide link depth-4"><a href="/api/providers/types/#provider-block">Block</a></div><div class="hide link depth-4"><a href="/api/providers/types/#types--events-and-logs">Events and Logs</a></div><div class="hide link depth-4"><a href="/api/providers/types/#types--transactions">Transactions</a></div><div class="show link depth-2"><a href="/api/utils/">Utilities</a></div><div class="hide link depth-3"><a href="/api/utils/abi/">Application Binary Interface</a></div><div class="hide link depth-4"><a href="/api/utils/abi/interface/">Interface</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--creating-instances">Creating Instances</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--properties">Properties</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--formatting">Formatting</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--fragment-access">Fragment Access</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--signature-and-topic-hashes">Signature and Topic Hashes</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--encoding-data">Encoding Data</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--decoding-data">Decoding Data</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--parsing">Parsing</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-interface--types">Types</a></div><div class="hide link depth-5"><a href="/api/utils/abi/interface/#abi-fragmentid">Specifying Fragments</a></div><div class="hide link depth-4"><a href="/api/utils/abi/fragments/">Fragments</a></div><div class="hide link depth-5"><a href="/api/utils/abi/fragments/#fragments--formats">Formats</a></div><div class="hide link depth-5"><a href="/api/utils/abi/fragments/#abi-fragment">Fragment</a></div><div class="hide link depth-5"><a href="/api/utils/abi/fragments/#abi-constructorfragment">ConstructorFragment</a></div><div class="hide link depth-5"><a href="/api/utils/abi/fragments/#abi-eventfragment">EventFragment</a></div><div class="hide link depth-5"><a href="/api/utils/abi/fragments/#abi-functionfragment">FunctionFragment</a></div><div class="hide link depth-5"><a href="/api/utils/abi/fragments/#abi-paramtype">ParamType</a></div><div class="hide link depth-3"><a href="/api/utils/address/">Addresses</a></div><div class="hide link depth-4"><a href="/api/utils/address/#address-formats">Address Formats</a></div><div class="hide link depth-4"><a href="/api/utils/address/#addresses--functions">Functions</a></div><div class="hide link depth-3"><a href="/api/utils/bignumber/">BigNumber</a></div><div class="hide link depth-4"><a href="/api/utils/bignumber/#bignumber--types">Types</a></div><div class="hide link depth-4"><a href="/api/utils/bignumber/#bignumber--creating-instances">Creating Instances</a></div><div class="hide link depth-4"><a href="/api/utils/bignumber/#bignumber--methods">Methods</a></div><div class="hide link depth-4"><a href="/api/utils/bignumber/#bignumber--notes">Notes</a></div><div class="hide link depth-3"><a href="/api/utils/bytes/">Byte Manipulation</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--types">Types</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--inspection">Inspection</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--converting-between-arrays-and-hexstrings">Converting between Arrays and Hexstrings</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--array-manipulation">Array Manipulation</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--hexstring-manipulation">Hexstring Manipulation</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--signature-conversion">Signature Conversion</a></div><div class="hide link depth-4"><a href="/api/utils/bytes/#byte-manipulation--random-bytes">Random Bytes</a></div><div class="hide link depth-3"><a href="/api/utils/constants/">Constants</a></div><div class="hide link depth-4"><a href="/api/utils/constants/#constants--bytes">Bytes</a></div><div class="hide link depth-4"><a href="/api/utils/constants/#constants--strings">Strings</a></div><div class="hide link depth-4"><a href="/api/utils/constants/#constants--bignumber">BigNumber</a></div><div class="hide link depth-3"><a href="/api/utils/display-logic/">Display Logic and Input</a></div><div class="hide link depth-4"><a href="/api/utils/display-logic/#display-logic-and-input--units">Units</a></div><div class="hide link depth-4"><a href="/api/utils/display-logic/#display-logic-and-input--functions">Functions</a></div><div class="hide link depth-3"><a href="/api/utils/encoding/">Encoding Utilities</a></div><div class="hide link depth-4"><a href="/api/utils/encoding/#bse58">Base58</a></div><div class="hide link depth-4"><a href="/api/utils/encoding/#base64">Base64</a></div><div class="hide link depth-4"><a href="/api/utils/encoding/#rlp">Recursive-Length Prefix</a></div><div class="hide link depth-3"><a href="/api/utils/fixednumber/">FixedNumber</a></div><div class="hide link depth-4"><a href="/api/utils/fixednumber/#fixednumber--creating-instances">Creating Instances</a></div><div class="hide link depth-4"><a href="/api/utils/fixednumber/#fixednumber--properties">Properties</a></div><div class="hide link depth-4"><a href="/api/utils/fixednumber/#fixednumber--methods">Methods</a></div><div class="hide link depth-4"><a href="/api/utils/fixednumber/#fixedformat">FixedFormat</a></div><div class="hide link depth-3"><a href="/api/utils/hashing/">Hashing Algorithms</a></div><div class="hide link depth-4"><a href="/api/utils/hashing/#hashing-algorithms--cryptographic-hashing">Cryptographic Hashing</a></div><div class="hide link depth-4"><a href="/api/utils/hashing/#hashing-algorithms--common-hashing-helpers">Common Hashing Helpers</a></div><div class="hide link depth-4"><a href="/api/utils/hashing/#hashing-algorithms--solidity-hashing-algorithms">Solidity Hashing Algorithms</a></div><div class="hide link depth-3"><a href="/api/utils/hdnode/">HD Wallet</a></div><div class="hide link depth-4"><a href="/api/utils/hdnode/#hd-wallet--types">Types</a></div><div class="hide link depth-4"><a href="/api/utils/hdnode/#hdnode">HDNode</a></div><div class="hide link depth-4"><a href="/api/utils/hdnode/#hd-wallet--other-functions">Other Functions</a></div><div class="hide link depth-3"><a href="/api/utils/logger/">Logging</a></div><div class="hide link depth-4"><a href="/api/utils/logger/#logger">Logger</a></div><div class="hide link depth-4"><a href="/api/utils/logger/#errors">Errors</a></div><div class="hide link depth-4"><a href="/api/utils/logger/#logger-levels">Log Levels</a></div><div class="hide link depth-3"><a href="/api/utils/properties/">Property Utilities</a></div><div class="hide link depth-3"><a href="/api/utils/signing-key/">Signing Key</a></div><div class="hide link depth-4"><a href="/api/utils/signing-key/#utils-signingkey--other-functions">Other Functions</a></div><div class="hide link depth-3"><a href="/api/utils/strings/">Strings</a></div><div class="hide link depth-4"><a href="/api/utils/strings/#bytes32-string">Bytes32String</a></div><div class="hide link depth-4"><a href="/api/utils/strings/#utf8-string">UTF-8 Strings</a></div><div class="hide link depth-4"><a href="/api/utils/strings/#unicode-normalization-form">UnicodeNormalizationForm</a></div><div class="hide link depth-4"><a href="/api/utils/strings/#utf8error">Custom UTF-8 Error Handling</a></div><div class="hide link depth-3"><a href="/api/utils/transactions/">Transactions</a></div><div class="hide link depth-4"><a href="/api/utils/transactions/#utils-transactions--types">Types</a></div><div class="hide link depth-4"><a href="/api/utils/transactions/#utils-transactions--functions">Functions</a></div><div class="hide link depth-3"><a href="/api/utils/web/">Web Utilities</a></div><div class="hide link depth-3"><a href="/api/utils/wordlists/">Wordlists</a></div><div class="hide link depth-4"><a href="/api/utils/wordlists/#wordlist">Wordlist</a></div><div class="hide link depth-4"><a href="/api/utils/wordlists/#wordlist-languages">Languages</a></div><div class="show link depth-2"><a href="/api/other/">Other Libraries</a></div><div class="hide link depth-3"><a href="/api/other/assembly/">Assembly</a></div><div class="hide link depth-4"><a href="/api/other/assembly/dialect/">Ethers ASM Dialect</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-opcode">Opcodes</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-label">Labels</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-literal">Literals</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-comment">Comments</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-scope">Scopes</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-datasegment">Data Segment</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-links">Links</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-placeholder">Stack Placeholders</a></div><div class="hide link depth-5"><a href="/api/other/assembly/dialect/#asm-dialect-scripting">Evaluation and Excution</a></div><div class="hide link depth-4"><a href="/api/other/assembly/api/">Utilities</a></div><div class="hide link depth-5"><a href="/api/other/assembly/api/#asm-utilities--assembler">Assembler</a></div><div class="hide link depth-5"><a href="/api/other/assembly/api/#asm-utilities--disassembler">Disassembler</a></div><div class="hide link depth-5"><a href="/api/other/assembly/api/#asm-opcode">Opcode</a></div><div class="hide link depth-4"><a href="/api/other/assembly/ast/">Abstract Syntax Tree</a></div><div class="hide link depth-5"><a href="/api/other/assembly/ast/#asm-ast--types">Types</a></div><div class="hide link depth-5"><a href="/api/other/assembly/ast/#asm-ast--nodes">Nodes</a></div><div class="hide link depth-3"><a href="/api/other/hardware/">Hardware Wallets</a></div><div class="hide link depth-4"><a href="/api/other/hardware/#hw-ledger">LedgerSigner</a></div><div class="base show link depth-1"><a href="/cli/">Command Line Interfaces</a></div><div class="hide link depth-2"><a href="/cli/ethers/">Sandbox Utility</a></div><div class="hide link depth-3"><a href="/cli/ethers/#sandbox-utility--help">Help</a></div><div class="hide link depth-3"><a href="/cli/ethers/#sandbox-utility--examples">Examples</a></div><div class="hide link depth-2"><a href="/cli/asm/">Assembler</a></div><div class="hide link depth-3"><a href="/cli/asm/#cli-asm--help">Help</a></div><div class="hide link depth-3"><a href="/cli/asm/#cli-asm--example-input-files">Example Input Files</a></div><div class="hide link depth-3"><a href="/cli/asm/#cli-asm--assembler-examples">Assembler Examples</a></div><div class="hide link depth-3"><a href="/cli/asm/#cli-asm--disassembler-examples">Disassembler Examples</a></div><div class="hide link depth-2"><a href="/cli/ens/">Ethereum Naming Service</a></div><div class="hide link depth-3"><a href="/cli/ens/#ethereum-naming-service--help">Help</a></div><div class="hide link depth-3"><a href="/cli/ens/#ethereum-naming-service--examples">Examples</a></div><div class="hide link depth-2"><a href="/cli/typescript/">TypeScript</a></div><div class="hide link depth-3"><a href="/cli/typescript/#typescript--help">Help</a></div><div class="hide link depth-3"><a href="/cli/typescript/#typescript--examples">Examples</a></div><div class="hide link depth-2"><a href="/cli/plugin/">Making Your Own</a></div><div class="hide link depth-3"><a href="/cli/plugin/#cli-cli">CLI</a></div><div class="hide link depth-3"><a href="/cli/plugin/#cli-plugin">Plugin</a></div><div class="hide link depth-3"><a href="/cli/plugin/#cli-argparser">ArgParser</a></div><div class="base show link depth-1"><a href="/cookbook/">Cookbook</a></div><div class="base show link depth-1"><a href="/migration/">Migration Guide</a></div><div class="hide link depth-2"><a href="/migration/web3/">Migration: From Web3.js</a></div><div class="hide link depth-3"><a href="/migration/web3/#migration-from-web3-js--contracts">Contracts</a></div><div class="hide link depth-3"><a href="/migration/web3/#migration-from-web3-js--providers">Providers</a></div><div class="hide link depth-3"><a href="/migration/web3/#migration-from-web3-js--numbers">Numbers</a></div><div class="hide link depth-3"><a href="/migration/web3/#migration-from-web3-js--utilities">Utilities</a></div><div class="hide link depth-2"><a href="/migration/ethers-v4/">Migration: From Ethers v4</a></div><div class="hide link depth-3"><a href="/migration/ethers-v4/#migration-v4--bignumber">BigNumber</a></div><div class="hide link depth-3"><a href="/migration/ethers-v4/#migration-v4--contracts">Contracts</a></div><div class="hide link depth-3"><a href="/migration/ethers-v4/#migration-v4--errors">Errors</a></div><div class="hide link depth-3"><a href="/migration/ethers-v4/#migration-v4--interface">Interface</a></div><div class="hide link depth-3"><a href="/migration/ethers-v4/#migration-v4--utilities">Utilities</a></div><div class="hide link depth-3"><a href="/migration/ethers-v4/#migration-v4--wallet">Wallet</a></div><div class="base show link depth-1"><a href="/testing/">Testing</a></div><div class="base show link depth-1"><a href="/contributing/">Contributing and Hacking</a></div><div class="hide link depth-2"><a href="/contributing/#contributing-and-hacking--building">Building</a></div><div class="base show link depth-1"><a href="/documentation/">Flatworm Docs</a></div><div class="hide link depth-2"><a href="/documentation/#flatworm-fragments">Fragments</a></div><div class="hide link depth-2"><a href="/documentation/#flatworm-markdown">Markdown</a></div><div class="hide link depth-2"><a href="/documentation/#flatworm-config">Configuration</a></div><div class="hide link depth-2"><a href="/documentation/#flatworm-extended-directive-functions">Extended Directive Functions</a></div><div class="base show link depth-1"><a href="/license/">License and Copyright</a></div></div></div></div><div class="content"><div class="breadcrumbs"><a href="/">Documentation</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp;<a href="/api/">API</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp;<a href="/api/providers/">Providers</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp;<span class="current">JsonRpcProvider</span></div><a name="provider-jsonrpc"></a><a name="provider-jsonrpc"></a><a name="provider-jsonrpc"></a><h1 class="show-anchors"><div>JsonRpcProvider<span class="inherits"> inherits <a href="/api/providers/provider/">Provider</a></span><div class="anchors"><a class="self" href="#provider-jsonrpc"></a></div></div></h1>
<p>The <a href="https://github.com/ethereum/wiki/wiki/JSON-RPC">JSON-RPC API</a> is a very popular method for interacting with Ethereum and is available in all major Ethereum node implementations (e.g. <a href="https://geth.ethereum.org">Geth</a> and <a href="https://www.parity.io">Parity</a>) as well as many third-party web services (e.g. <a href="https://infura.io">INFURA</a>)</p>
<div class="property show-anchors"><div class="signature"><span class="modifier">new </span><span class="path">ethers</span> . <span class="path">providers</span> . <span class="method">JsonRpcProvider</span> ( [ <span class="param">url</span> [ , <span class="param">aNetworkish</span> ] ] ) <div class="anchors"></div></div><div class="body"><p>Connect to a JSON-RPC API located at <i>url</i> using the /aNetworkish<i> network. If </i>url<i> is not specified, the default (i.e. <code class="inline">http:</i>localhost:8545</code>) is used and if no network is specified, it will be determined automatically by querying the node.</p></div></div>
<div class="definition container-box note show-anchors"><div class="term">Note: Connecting to a Local Node</div><div class="body"><p>Each node implementation is slightly different and may require specific command-line flags or changes in their Settings UI to enable JSON-RPC, unlock accounrs or expose specific APIs. Please consult theit documentation.</p></div></div>
<a name="provider-jsonrpc-getsigner"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span> . <span class="method">getSigner</span> ( [ <span class="param">addressOrIndex</span> ] ) <span class="arrow">&rArr;</span> <span class="returns"><a href="/api/providers/jsonrpc-provider/#signer-jsonrpc">JsonRpcSigner</a></span><div class="anchors"><a class="self" href="#provider-jsonrpc-getsigner"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L279">source</a></div></div><div class="body"><p>Returns a <a href="/api/providers/jsonrpc-provider/#signer-jsonrpc">JsonRpcSigner</a> which is managed by this Ethereum node, at <i>addressOrIndex</i>. If no <i>addressOrIndex</i> is provided, the first account (account #0) is used.</p></div></div>
<a name="provider-jsonrpc-getuncheckedsigner"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span> . <span class="method">getUncheckedSigner</span> ( [ <span class="param">addressOrIndex</span> ] ) <span class="arrow">&rArr;</span> <span class="returns"><a href="/api/providers/jsonrpc-provider/#provider-jsonrpc-uncheckedsigner">JsonRpcUncheckedSigner</a></span><div class="anchors"><a class="self" href="#provider-jsonrpc-getuncheckedsigner"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L283">source</a></div></div><div class="body"><p></p></div></div>
<a name="provider-jsonrpc-listaccounts"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span> . <span class="method">listAccounts</span> ( ) <span class="arrow">&rArr;</span> <span class="returns">Array&lt;&thinsp;string&thinsp;&gt;</span><div class="anchors"><a class="self" href="#provider-jsonrpc-listaccounts"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L287">source</a></div></div><div class="body"><p>Returns a list of all account addresses managed by this provider.</p></div></div>
<a name="provider-jsonrpc-send"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span> . <span class="method">send</span> ( <span class="param">method</span> , <span class="param">params</span> ) <span class="arrow">&rArr;</span> <span class="returns">Promise&lt;&thinsp;any&thinsp;&gt;</span><div class="anchors"><a class="self" href="#provider-jsonrpc-send"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L293">source</a></div></div><div class="body"><p>Allows sending raw messages to the provider.</p><p>This can be used for backend-specific calls, such as for debugging or specific account management.</p></div></div>
<a name="signer-jsonrpc"></a><a name="provider-jsonrpc--signer-jsonrpc"></a><a name="signer-jsonrpc"></a><h2 class="show-anchors"><div>JsonRpcSigner<span class="inherits"> inherits <a href="/api/signer/#signer">Signer</a></span><div class="anchors"><a class="self" href="#signer-jsonrpc"></a></div></div></h2>
<p>A <b>JsonRpcSigner</b> is a simple Signer which is backed by a connected <a href="/api/providers/jsonrpc-provider/">JsonRpcProvider</a>.</p>
<div class="property show-anchors"><div class="signature"><span class="path">signer</span> . <span class="method">provider</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/api/providers/jsonrpc-provider/">JsonRpcProvider</a></span><div class="anchors"></div></div><div class="body"><p>The provider this signer was established from.</p></div></div>
<div class="property show-anchors"><div class="signature"><span class="path">signer</span> . <span class="method">connectUnchecked</span> ( ) <span class="arrow">&rArr;</span> <span class="returns"><a href="/api/providers/jsonrpc-provider/#provider-jsonrpc-uncheckedsigner">JsonRpcUncheckedSigner</a></span><div class="anchors"></div></div><div class="body"><p>Returns a new Signer object which does not perform addtional checks when sending a transaction. See <a href="/api/providers/jsonrpc-provider/#provider-jsonrpc-uncheckedsigner">JsonRpcUncheckedSigner</a> for more details.</p></div></div>
<div class="property show-anchors"><div class="signature"><span class="path">signer</span> . <span class="method">sendUncheckedTransaction</span> ( <span class="param">transaction</span> ) <span class="arrow">&rArr;</span> <span class="returns">Promise&lt;&thinsp;string&lt;&thinsp;<a href="/api/utils/bytes/#datahexstring">DataHexstring</a>&lt;&thinsp;32&thinsp;&gt;&thinsp;&gt;&thinsp;&gt;</span><div class="anchors"></div></div><div class="body"><p>Sends the <i>transaction</i> and returns a Promise which resolves to the opacque transaction hash.</p></div></div>
<div class="property show-anchors"><div class="signature"><span class="path">signer</span> . <span class="method">unlock</span> ( <span class="param">password</span> ) <span class="arrow">&rArr;</span> <span class="returns">Promise&lt;&thinsp;boolean&thinsp;&gt;</span><div class="anchors"></div></div><div class="body"><p>Request the node unlock the account (if locked) using <i>password</i>.</p></div></div>
<a name="provider-jsonrpc-uncheckedsigner"></a><a name="provider-jsonrpc--provider-jsonrpc-uncheckedsigner"></a><a name="provider-jsonrpc-uncheckedsigner"></a><h2 class="show-anchors"><div>JsonRpcUncheckedSigner<span class="inherits"> inherits <a href="/api/signer/#signer">Signer</a></span><div class="anchors"><a class="self" href="#provider-jsonrpc-uncheckedsigner"></a></div></div></h2>
<p>The JSON-RPC API only provides a transaction hash as the response when a transaction is sent, but the ethers Provider requires populating all details of a transaction before returning it. For example, the gas price and gas limit may be adjusted by the node or the nonce automatically included, in which case the opaque transaction hash has discarded this.</p><p>To remedy this, the <a href="/api/providers/jsonrpc-provider/#signer-jsonrpc">JsonRpcSigner</a> immeidately queries the provider for the details using the returned transaction hash to populate the <a href="/api/providers/types/#provider-transactionresponse">TransactionResponse</a> object.</p><p>Some backends do not respond immediately and instead defer releasing the details of a transaction it was responsible for signing until it is mined.</p><p>The <b>UncheckedSigner</b> does not populate any additional information and will immediately return the result as a mock <a href="/api/providers/types/#provider-transactionresponse">TransactionResponse</a>-like object, with most of the properties set to null, but allows access to the transaction hash quickly, if that is all that is required.</p><div class="footer"><div class="nav previous"><a href="/api/providers/provider/"><span class="arrow">&larr;</span>Provider</a></div> <div class="nav next"><a href="/api/providers/api-providers/">API Providers<span class="arrow">&rarr;</span></a></div></div><div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons Attribution 4.0 International License</a>.</div></div><script src="/script.js" type="text/javascript"></script></body></html><!-- ContentHash:e813b936e176b28f6cbc02615740e1d3dcfb3c4deef627887fb70e478f2bcd2d -->