33 lines
41 KiB
HTML
33 lines
41 KiB
HTML
<html><head><title>Sandbox Utility</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 show link depth-1"><a href="/api/">Application Programming Interface</a></div><div class="hide 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="hide 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="hide link depth-2"><a href="/api/providers/">Providers</a></div><div class="hide 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="hide link depth-3"><a href="/api/providers/jsonrpc-provider/">JsonRpcProvider</a></div><div class="hide link depth-4"><a href="/api/providers/jsonrpc-provider/#signer-jsonrpc">JsonRpcSigner</a></div><div class="hide link depth-4"><a href="/api/providers/jsonrpc-provider/#provider-jsonrpc-uncheckedsigner">JsonRpcUncheckedSigner</a></div><div class="hide 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="hide 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="hide 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="hide 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="hide 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 ancestor show link depth-1"><a href="/cli/">Command Line Interfaces</a></div><div class="myself ancestor ancestor show link depth-2"><a href="/cli/ethers/">Sandbox Utility</a></div><div class="child link depth-3"><a href="/cli/ethers/#sandbox-utility--help">Help</a></div><div class="child link depth-3"><a href="/cli/ethers/#sandbox-utility--examples">Examples</a></div><div class="show 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="show 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="show 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="show 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> » <a href="/cli/">Command Line Interfaces</a> » <span class="current">Sandbox Utility</span></div><a name="sandbox-utility"></a><h1 class="show-anchors"><div>Sandbox Utility<div class="anchors"><a class="self" href="#sandbox-utility"></a></div></div></h1>
|
|
<p>The sandbox utility provides a simple way to use the most common ethers utilities required during learning, debuging and managing interactions with the Ethereum network.</p><p>If no command is given, it will enter a REPL interface with many of the ethers utilities already exposed.</p>
|
|
<a name="sandbox-utility--help"></a><h2 class="show-anchors"><div>Help<div class="anchors"><a class="self" href="#sandbox-utility--help"></a></div></div></h2>
|
|
|
|
<div class="code">Usage:<br> ethers [ COMMAND ] [ ARGS ] [ OPTIONS ]<br><br>COMMANDS (default: sandbox)<br> sandbox Run a REPL VM environment with ethers<br> init FILENAME Create a new JSON wallet<br> [ --force ] Overwrite any existing files<br> fund TARGET Fund TARGET with testnet ether<br> info [ TARGET ... ] Dump info for accounts, addresses and ENS names<br> send TARGET ETHER Send ETHER ether to TARGET form accounts[0]<br> [ --allow-zero ] Allow sending to the address zero<br> [ --data DATA ] Include data in the transaction<br> sweep TARGET Send all ether from accounts[0] to TARGET<br> sign-message MESSAGE Sign a MESSAGE with accounts[0]<br> [ --hex ] The message content is hex encoded<br> eval CODE Run CODE in a VM with ethers<br> run FILENAME Run FILENAME in a VM with ethers<br> wait HASH Wait for a transaction HASH to be mined<br> wrap-ether VALUE Deposit VALUE into Wrapped Ether (WETH)<br> unwrap-ether VALUE Withdraw VALUE from Wrapped Ether (WETH)<br> send-token TOKEN ADDRESS VALUE<br> Send VALUE tokens (at TOKEN) to ADDRESS<br> compile FILENAME Compiles a Solidity contract<br> [ --no-optimize ] Do not optimize the compiled output<br> [ --warnings ] Error on any warning<br> deploy FILENAME Compile and deploy a Solidity contract<br> [ --no-optimize ] Do not optimize the compiled output<br> [ --contract NAME ] Specify the contract to deploy<br><br>ACCOUNT OPTIONS<br> --account FILENAME Load from a file (JSON, RAW or mnemonic)<br> --account RAW_KEY Use a private key (insecure *)<br> --account 'MNEMONIC' Use a mnemonic (insecure *)<br> --account - Use secure entry for a raw key or mnemonic<br> --account-void ADDRESS Use an address as a void signer<br> --account-void ENS_NAME Add the resolved address as a void signer<br> --account-rpc ADDRESS Add the address from a JSON-RPC provider<br> --account-rpc INDEX Add the index from a JSON-RPC provider<br> --mnemonic-password Prompt for a password for mnemonics<br> --xxx-mnemonic-password Prompt for a (experimental) hard password<br><br>PROVIDER OPTIONS (default: all + homestead)<br> --alchemy Include Alchemy<br> --etherscan Include Etherscan<br> --infura Include INFURA<br> --nodesmith Include nodesmith<br> --rpc URL Include a custom JSON-RPC<br> --offline Dump signed transactions (no send)<br> --network NETWORK Network to connect to (default: homestead)<br><br>TRANSACTION OPTIONS (default: query network)<br> --gasPrice GWEI Default gas price for transactions(in wei)<br> --gasLimit GAS Default gas limit for transactions<br> --nonce NONCE Initial nonce for the first transaction<br> --yes Always accept Siging and Sending<br><br>OTHER OPTIONS<br> --wait Wait until transactions are mined<br> --debug Show stack traces for errors<br> --help Show this usage and exit<br> --version Show this version and exit<br><br>(*) By including mnemonics or private keys on the command line they are<br> possibly readable by other users on your system and may get stored in<br> your bash history file. This is NOT recommended.</div>
|
|
|
|
<a name="sandbox-utility--examples"></a><h2 class="show-anchors"><div>Examples<div class="anchors"><a class="self" href="#sandbox-utility--examples"></a></div></div></h2>
|
|
|
|
<a name="cliex-init"></a><a name="sandbox-utility--examples--cliex-init"></a><a name="cliex-init"></a><h3 class="show-anchors"><div>Creating Wallets<div class="anchors"><a class="self" href="#cliex-init"></a></div></div></h3>
|
|
|
|
<div class="code">/home/ethers> ethers init wallet.json<br>Creating a new JSON Wallet - wallet.json<br>Keep this password and file SAFE!! If lost or forgotten<br>it CANNOT be recovered, by ANYone, EVER.<br>Choose a password: ******<br>Confirm password: ******<br>Encrypting... 100%<br>New account address: 0x485bcC23ae2E5038ec7ec9b8DCB2A6A6291cC003<br>Saved: wallet.json<br><br><br># If you are planning to try out the Ropsten testnet...<br>/home/ethers> ethers --network ropsten fund 0x485bcC23ae2E5038ec7ec9b8DCB2A6A6291cC003<br>Transaction Hash: 0x8dc55b8f8dc8076acded97f9e3ed7d6162460c0221e2769806006b6d7d1156e0</div>
|
|
|
|
<a name="cliex-send"></a><a name="sandbox-utility--examples--cliex-send"></a><a name="cliex-send"></a><h3 class="show-anchors"><div>Sending Ether and Tokens<div class="anchors"><a class="self" href="#cliex-send"></a></div></div></h3>
|
|
|
|
<div class="code"># Sending ether<br>/home/ricmoo> ethers --account wallet.json send ricmoo.firefly.eth 0.123<br>Password (wallet.json): ******<br>Decrypting... 100%<br>Transaction:<br> To: 0x8ba1f109551bD432803012645Ac136ddd64DBA72<br> From: 0xaB7C8803962c0f2F5BBBe3FA8bf41cd82AA1923C<br> Value: 0.123 ether<br> Nonce: 96<br> Data: 0x<br> Gas Limit: 21000<br> Gas Price: 1.2 gwei<br> Chain ID: 1<br> Network: homestead<br>Send Transaction? (y/N/a) y<br>Response:<br> Hash: 0xc4adf8b379033d7ab679d199aa35e6ceee9a802ca5ab0656af067e911c4a589a<br><br><br># Sending a token (SAI)<br># NOTE: the contract address could be used instead but<br># popular token contract addresses are also managed<br># by ethers<br>/home/ricmoo> ethers --account wallet.json send-token sai.tokens.ethers.eth ricmoo.firefly.eth 1.0<br>Sending Tokens:<br> To: 0x8ba1f109551bD432803012645Ac136ddd64DBA72<br> Token Contract: 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359<br> Value: 1.0<br>Password (wallet.json): ******<br>Decrypting... 100%<br>Transaction:<br> To: 0x89d24A6b4CcB1B6fAA2625fE562bDD9a23260359<br> From: 0xaB7C8803962c0f2F5BBBe3FA8bf41cd82AA1923C<br> Value: 0.0 ether<br> Nonce: 95<br> Data: 0xa9059cbb0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba720000000000000000000000000000000000000000000000000de0b6b3a7640000<br> Gas Limit: 37538<br> Gas Price: 1.0 gwei<br> Chain ID: 1<br> Network: homestead<br>Send Transaction? (y/N/a) y<br>Response:<br> Hash: 0xd609ecb7e3b5e8d36fd781dffceede3975ece6774b6322ea56cf1e4d0a17e3a1</div>
|
|
|
|
<a name="cliex-signing"></a><a name="sandbox-utility--examples--cliex-signing"></a><a name="cliex-signing"></a><h3 class="show-anchors"><div>Signing Messages<div class="anchors"><a class="self" href="#cliex-signing"></a></div></div></h3>
|
|
|
|
<div class="code">/home/ethers> ethers --account wallet.json sign-message 'Hello World'<br>Password (wallet.json): ******<br>Decrypting... 100%<br>Message:<br> Message: "Hello World"<br> Message (hex): 0x48656c6c6f20576f726c64<br>Sign Message? (y/N/a) y<br>Signature<br> Flat: 0xca3f0b32a22a5ab97ca8be7e4a36b1e81d565c6822465d769f4faa4aa24539fb122ee5649c8a37c9f5fc8446593674159e3a7b039997cd6ee697a24b787b1a161b<br> r: 0xca3f0b32a22a5ab97ca8be7e4a36b1e81d565c6822465d769f4faa4aa24539fb<br> s: 0x122ee5649c8a37c9f5fc8446593674159e3a7b039997cd6ee697a24b787b1a16<br> vs: 0x122ee5649c8a37c9f5fc8446593674159e3a7b039997cd6ee697a24b787b1a16<br> v: 27<br> recid: 0</div>
|
|
|
|
<a name="cliex-scripting"></a><a name="sandbox-utility--examples--cliex-scripting"></a><a name="cliex-scripting"></a><h3 class="show-anchors"><div>Scripting<div class="anchors"><a class="self" href="#cliex-scripting"></a></div></div></h3>
|
|
<p>The <code class="inline">eval</code> command can be used to execute simple one-line scripts from the command line to be passed into other commands or stored in script environment variables.</p>
|
|
<div class="code"># Get the formatted balance of an account<br>/home/ethers> ethers --network ropsten --account wallet.json eval 'accounts[0].getBalance().then(b => formatEther(b))'<br>3.141592653589793238<br><br># Get the current block number<br>/home/ethers> ethers --network rinkeby eval "provider.getBlockNumber()"<br>5761009<br><br># Convert a Solidity signature to JSON<br>/home/ethers> ethers eval 'utils.Fragment.from("function balanceOf(address owner) view returns (uint)").format("json")' <br>{"type":"function","name":"balanceOf","constant":true,"stateMutability":"view","payble":false,"inputs":[{"type":"address","name":"owner"}],"ouputs":[{"type":"uint256"}]}<br><br># Compute a topic hash<br>/home/ricmoo> ethers eval 'id("Transfer(address,address,uint256")'<br>0xd99659a21de82e379975ce8df556f939a4ccb95e92144f38bb0dd35730ffcdd5<br><br># Create a random mnemonic<br>/home/ricmoo> ethers eval 'Wallet.createRandom().mnemonic'<br>useful pond inch knock ritual matrix giggle attend dilemma convince coach amazing</div>
|
|
|
|
<a name="cliex-mnemonicpassword"></a><a name="sandbox-utility--examples--cliex-mnemonicpassword"></a><a name="cliex-mnemonicpassword"></a><h3 class="show-anchors"><div>Using Mnemonics (with a password)<div class="anchors"><a class="self" href="#cliex-mnemonicpassword"></a></div></div></h3>
|
|
<p>All mnemonic phrases have a password, but the default is to use the empty string (i.e. <code class="inline">""</code>) as the password. If you have a password on your mnemonic, the <code class="inline">--mnemonic-password</code> will prompt for the password to use to decrypt the account.</p>
|
|
<div class="code">/home/ricmoo> ethers --account public-mnemonic.txt --mnemonic-password<br>Password (mnemonic): ******<br>network: homestead (chainId: 1)<br>homestead> accounts[0].getAddress()<br><Promise id=0 resolved><br>'0x6d3F723EC1B73141AA4aC248c3ab34A5a1DAD776'<br>homestead></div>
|
|
|
|
<a name="cliex-mnemonicpassword-xxx"></a><a name="sandbox-utility--examples--cliex-mnemonicpassword-xxx"></a><a name="cliex-mnemonicpassword-xxx"></a><h3 class="show-anchors"><div>Using Mnemonics (with experimental memory-hard passwords)<div class="anchors"><a class="self" href="#cliex-mnemonicpassword-xxx"></a></div></div></h3>
|
|
<p>The <code class="inline">--xxx-mnemonic-password</code> is similar to the <code class="inline">--mnemonic-password</code> options, which uses a password to decrypt the account for a mnemonic, however it passes the password through the <a href="https://en.wikipedia.org/wiki/Scrypt">scrypt</a> <i>password-based key derivation function</i> first, which is intentionally slow and makes a brute-force attack far more difficult.</p>
|
|
<div class="code">/home/ricmoo> ethers --account mnemonic.txt --xxx-mnemonic-password<br>Password (mnemonic; experimental - hard): ******<br>Decrypting... 100%<br>network: homestead (chainId: 1)<br>homestead> accounts[0].getAddress()<br><Promise id=0 resolved><br>'0x56FC8792cC17971C19bEC4Ced978beEA44711EeD'<br>homestead></div>
|
|
|
|
<div class="definition container-box warning show-anchors"><div class="term">Note</div><div class="body"><p>This is still an experimental feature (hence the <code class="inline">xxx</code>).</p></div></div><div class="footer"><div class="nav previous"><a href="/cli/"><span class="arrow">←</span>Command Line Interfaces</a></div> <div class="nav next"><a href="/cli/asm/">Assembler<span class="arrow">→</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:cea5a74250ba0d766ac05493f385423823cb822f3c5a2a865f5e8958df90fddd --> |