Compare commits

..

893 Commits

Author SHA1 Message Date
Richard Moore
96cb44025b Updated dist files. 2020-06-29 00:54:30 -04:00
Richard Moore
7fe702d59b Fixed typo in error string. 2020-06-29 00:45:47 -04:00
Richard Moore
9e1434503e Updated elliptic package to address possible malleability issue; which should not affect Ethereum. 2020-06-29 00:40:17 -04:00
Richard Moore
08c74e9a13 Fixed FixedNumber unguarded constructor and added isZero (#898). 2020-06-29 00:38:27 -04:00
Richard Moore
c53864de0a Added StaticJsonRpcProvider for reducing calls to chainId in certain cases (#901). 2020-06-29 00:21:59 -04:00
Richard Moore
8c1ff4c862 Allow getDefaultProvider to accept a URL as a network. 2020-06-29 00:06:31 -04:00
Richard Moore
987b5354cc Make network an optional parameter to WebSocketProvider. 2020-06-29 00:04:45 -04:00
Richard Moore
1a4f7d1b53 Updated docs. 2020-06-17 23:38:59 -04:00
Richard Moore
f9e9347e69 Removed deprecated errors package. 2020-06-17 23:34:53 -04:00
Richard Moore
d00362eb70 Updated badges in docs. 2020-06-15 02:43:17 -04:00
Richard Moore
8ed67a5c19 Fixed typo in docs (#885). 2020-06-15 02:25:46 -04:00
Richard Moore
f99029b49a Merge branch 'master' of github.com:ethers-io/ethers.js 2020-06-13 21:39:55 -04:00
Richard Moore
3017a31127 Updated dist files. 2020-06-13 21:39:36 -04:00
Richard Moore
bbb4f407b3 Allow provider.ready to stall until the network is available (#882). 2020-06-13 21:26:50 -04:00
Richard Moore
be7e86ec90 Fixed typo in changelog. 2020-06-13 20:55:05 -04:00
Richard Moore
88e68495b6 Create security policy.
Create security policy.
2020-06-13 17:21:50 -04:00
Richard Moore
738d34969d Reduce dependencies to squash security issues. 2020-06-13 16:39:00 -04:00
Richard Moore
e0e0dbef18 Updated admin scripts for publishing prod releases. 2020-06-12 23:59:06 -04:00
Richard Moore
039bad3848 Changed root package name to match umbrella package. 2020-06-12 23:18:23 -04:00
Richard Moore
73d29e6853 Updated dist files. 2020-06-12 23:09:46 -04:00
Richard Moore
5a69e9caa8 Fixed embedded pacakge version strings. 2020-06-12 23:04:10 -04:00
Richard Moore
f302d7b61a Splitting CHANGELOG beta vs release. 2020-06-12 21:27:23 -04:00
Richard Moore
b30eaca475 Updating CI for release. 2020-06-12 21:26:47 -04:00
Richard Moore
d817416bae Merge branch 'master' into ethers-v5-beta 2020-06-12 21:14:55 -04:00
Richard Moore
e805ab5b2d Updated dist files (remove from beta). 2020-06-12 21:07:12 -04:00
Richard Moore
7157816fa5 Preserve config canary string. 2020-06-12 19:22:16 -04:00
Richard Moore
9e4c7e609d Updated docs. 2020-06-12 19:21:37 -04:00
Richard Moore
427e16826e Updated dist files. 2020-04-21 23:17:53 -04:00
Richard Moore
fab14f8f5a Fixed typo in error message (#778). 2020-04-21 23:12:56 -04:00
Richard Moore
e8c89d7ca9 Allow receive type in ABI without warning (#746). 2020-04-21 23:10:15 -04:00
Richard Moore
b1c6575a1b Updated dist files. 2020-03-14 16:59:58 +01:00
Richard Moore
3b7176f322 Fixed typo in error (#722). 2020-03-13 18:37:23 +01:00
Richard Moore
5f7ddcd5d7 Fix EtherscanProvider from throwing outside async context (#729). 2020-03-13 18:34:56 +01:00
Richard Moore
4c9d740cdf Updated dist files. 2020-02-16 16:34:49 -05:00
Richard Moore
a930047a10 Added default API key for EtherscanProvider. 2020-02-16 16:29:29 -05:00
Richard Moore
4e41871fa4 Fixed typo in arguments name for waitForTransaction (#477). 2020-02-16 16:15:00 -05:00
Richard Moore
9947acc349 Partial support for non-English mnemonics for encrypted JSON wallets (#685). 2020-02-16 16:13:24 -05:00
Richard Moore
748f89660a Updated expected balance in test cases. 2020-01-29 22:45:34 -05:00
Richard Moore
2987925fa5 Updated dist files. 2020-01-29 22:14:34 -05:00
Richard Moore
0589b3102e Fix backwards compatibility with certain parsed JSON objects passed into Interface and Contracts (#721). 2020-01-29 22:01:42 -05:00
Richard Moore
df51b26fe7 Updated ENS registry address for all networks. 2020-01-29 21:54:49 -05:00
Richard Moore
b288ad9ba7 Updated dist files. 2020-01-10 21:14:46 -05:00
Richard Moore
6da5c53120 Fixed Contract and Interface constructor abi paramter type; should be a Fragment not a ParamType (#602). 2020-01-10 21:12:58 -05:00
Richard Moore
26d3271643 Add missing chainId to transaction responses (#700). 2020-01-10 20:59:28 -05:00
Richard Moore
12da07579a Updated dist files. 2020-01-07 20:06:25 -05:00
Richard Moore
bd066b8542 Fix resolveName when name is an address with an invalid checksum (#694). 2020-01-07 20:04:58 -05:00
Richard Moore
4478896ca5 Fixed testcases for PhantomJS syntax. 2020-01-03 19:43:27 -05:00
Richard Moore
f996ec0c32 Updated dist files. 2020-01-03 19:01:29 -05:00
Richard Moore
c76e01e61f Properly handle errors in the IpcProvider (#695). 2020-01-03 18:56:07 -05:00
Richard Moore
f8087ae39c Added utility function to compute CREATE2 addresses (#697). 2020-01-03 18:20:15 -05:00
Richard Moore
7250cdcd31 Updated dist files. 2019-12-21 01:09:18 -05:00
Richard Moore
20f34f1ba9 Added proper support for v0.6 Solidity JSON type (#688). 2019-12-21 01:03:05 -05:00
Richard Moore
4ac08432b8 Fixed PhantomJS test cases for new elliptic library. 2019-11-24 20:56:28 +09:00
Richard Moore
3e3048df81 Merge branch 'master' of github.com:ethers-io/ethers.js 2019-11-24 20:06:38 +09:00
Richard Moore
c6199bf52a Updated dist files. 2019-11-24 20:06:10 +09:00
Richard Moore
20409c083c Update elliptic package to protect from Minerva timing attack (#666). 2019-11-24 19:55:10 +09:00
Richard Moore
7a90f18145 Do not poll if disabled during the previous event loop. 2019-11-24 19:34:17 +09:00
Richard Moore
df1ae611ba Moved node types to devDependencies (#663). 2019-11-24 19:33:02 +09:00
Richard Moore
6009a26c89 Added provider property to Web3Provider (#641). 2019-11-24 19:31:02 +09:00
Richard Moore
30984b6f00 Merge pull request #628 from evertonfraga/patch-1
Fix typo in tests/readme.md.
2019-11-20 21:01:58 +09:00
Richard Moore
76a8e503dd Updated dist files. 2019-10-30 19:17:31 +09:00
Richard Moore
d0e0e30532 Fix filters by forcing a poll instantly when polling starts to capture the current block (#613). 2019-10-30 19:13:32 +09:00
Richard Moore
b3f5266e78 Updated dist files. 2019-10-17 01:32:36 +09:00
Richard Moore
0609ea9651 Fixed TypeScript 3.7-beta import issue (#622). 2019-10-17 01:30:00 +09:00
Ev
5af16a6090 Update README.md 2019-10-14 01:25:55 +09:00
Richard Moore
4f88c5ba6e Added changelog. 2019-09-20 02:21:11 -04:00
Richard Moore
023e946072 Update dist files. 2019-09-06 19:09:40 -04:00
Richard Moore
004cb826d2 Added pkg.ethereum key for donations (#593). 2019-09-06 19:03:15 -04:00
Richard Moore
bfcf224b2b Fixed typo in error message (#592). 2019-09-06 18:48:47 -04:00
Richard Moore
c969fe5a68 Fixed typo in error message (#580). 2019-09-06 18:47:21 -04:00
Richard Moore
8737f12e1b Fixed typo in error message (#574). 2019-09-06 18:45:56 -04:00
Richard Moore
1267eeef4a Updated dist files. 2019-08-26 17:31:40 -04:00
Richard Moore
11c250ff7c Updated package-lock for security reasons; dev dependency only. 2019-08-26 16:08:41 -04:00
Richard Moore
c303199d26 Fixed typo in error message (#592). 2019-08-26 15:59:43 -04:00
Richard Moore
ae458a1a49 Updated dist files. 2019-08-22 17:45:59 -04:00
Richard Moore
760a5aec74 Fixed ENS lookupAddress when the resolver isn't configured (#581). 2019-08-22 17:42:23 -04:00
Richard Moore
2967efc2b0 Updated dist files. 2019-08-22 15:27:28 -04:00
Richard Moore
24f243e689 Allow Secret Storage wallet address to be optional (#582). 2019-08-22 15:22:20 -04:00
Richard Moore
d719064628 Updated package-lock for lodash security advisory; the package is only a development dependency, so no urgent need to publish, just for developers (lodash/lodash#4336). 2019-07-15 19:22:21 -03:00
Richard Moore
a7d0b41d98 Reduce number of HDNode tests which cause TravisCI to timeout. 2019-07-09 20:16:37 -04:00
Richard Moore
a980fc3db0 Updated dist files. 2019-07-09 16:56:49 -04:00
Richard Moore
a34ca6b3a3 Added test cases for case-agnostic mnemonics (#557). 2019-07-09 16:55:44 -04:00
Richard Moore
ef91dcd757 Make mnemonics case-agnostic (#557). 2019-07-09 16:51:07 -04:00
Richard Moore
a5296a9258 Added tests for testnet extended private key (#553). 2019-06-28 15:42:41 -04:00
Richard Moore
f827ae68e2 Updated dist files. 2019-06-28 15:42:04 -04:00
Richard Moore
fbf15c0ffe Fixed testnet exteneded private keys (#553). 2019-06-28 15:38:19 -04:00
Richard Moore
10fdbe7274 Updated dist files. 2019-06-21 19:18:49 -04:00
Richard Moore
384fc328f2 No longer use hard-coded id of 42 in Web3Provider. 2019-06-21 19:17:55 -04:00
Richard Moore
055694ae61 Updated dist files. 2019-06-10 02:00:55 -04:00
Richard Moore
edf59d2c26 Updatd dist files. 2019-06-10 01:59:51 -04:00
Richard Moore
92c978e5c2 Fixed error in throwing an error for ABI decode (#539). 2019-06-10 01:57:03 -04:00
Richard Moore
34397fa2aa Updated dist files. 2019-05-24 19:41:38 -04:00
Richard Moore
19587eea3f Warn on deprecated INFURA API Token; use Project ID instead (#462). 2019-05-24 14:56:47 -04:00
Richard Moore
4a9373e773 Fixed typo in error message (#470). 2019-05-24 14:48:01 -04:00
Richard Moore
2997bae935 Export poll function (#514). 2019-05-24 14:38:54 -04:00
Richard Moore
b0bd9ee162 Updated dist files. 2019-05-23 18:58:05 -04:00
Richard Moore
7075c8c235 Fixed error message for unconfigured ENS names (#504). 2019-05-23 18:51:08 -04:00
Richard Moore
a4a532fe8e Fixed security recommendations (development deps only; not a problem, but quiets automatic audits). 2019-05-14 18:11:45 -04:00
Richard Moore
77c771bf76 Updated dist files. 2019-05-14 17:45:13 -04:00
Richard Moore
c93b48920e Increment JSON-RPC ID for JsonRpcProviders for environments that unsafely manage callbacks (#489). 2019-04-18 13:49:37 +02:00
Richard Moore
04c92bb8d5 Updated dist files. 2019-03-08 14:29:59 -05:00
Richard Moore
16c9745326 Added goerli to InfuraProvider (#421). 2019-03-08 14:28:39 -05:00
Richard Moore
05648177aa Updated dist files. 2019-02-15 13:44:33 -05:00
Richard Moore
f318fd9cf1 Added fastRetry to polling for JsonRpcSigner to improve polling for sent transactions (#402). 2019-02-15 13:42:12 -05:00
Richard Moore
c15a89832b Fix waitForTransaction delay (#424). 2019-02-15 13:32:08 -05:00
Richard Moore
94b0abc240 Updated dist files. 2019-02-12 00:56:38 -05:00
Richard Moore
72edcd054f Fixed waitForTransaction and removeListener (#410). 2019-02-12 00:54:32 -05:00
Richard Moore
e4a2f8ac6c Updated BIP39 list in readme. 2019-02-11 19:24:48 -05:00
Richard Moore
c6d7b31a84 Updated dist files. 2019-02-11 19:24:27 -05:00
Richard Moore
0ed983a264 Fixed support for calling self-destructed contracts (#411). 2019-02-11 19:21:53 -05:00
Richard Moore
8fab48a380 Updated balance address for Goerli test cases. 2019-02-11 19:19:02 -05:00
Richard Moore
86e815999d Updated dist files. 2019-02-08 19:58:41 -05:00
Richard Moore
a2306f7870 Fixed utils test case for phantomjs. 2019-02-08 19:52:29 -05:00
Richard Moore
60b75c10d7 Initial support for EIP-234; filter by blockHash (#412). 2019-02-08 19:49:12 -05:00
Richard Moore
41c2c8a729 Fixed out-of-safe-range hexlify values to throw an exception (#420). 2019-02-08 17:06:46 -05:00
Richard Moore
9785eed8dd Added goerli testnet support (#421). 2019-02-08 16:50:06 -05:00
Richard Moore
527de7ba5e Updated dist files. 2019-02-04 16:09:35 -05:00
Richard Moore
14484e566e Fixed missing TypeArray slice on constrained environments. 2019-02-04 16:03:45 -05:00
Richard Moore
429af2c40d Fixed test-hdnode for phantomjs; does not support let keyword. 2019-02-01 23:00:01 -05:00
Richard Moore
11fffd1690 Updated dist files. 2019-02-01 19:50:10 -05:00
Richard Moore
af3aed4580 Added xpub and xpriv deserialization (#405). 2019-02-01 19:47:20 -05:00
Richard Moore
3a3764bdb4 Added xpub and xpriv test cases for HD nodes (#405). 2019-02-01 19:46:18 -05:00
Richard Moore
18ee2c518c Support for xpub and xpriv derivation and generating extended keys; no fromExtendedKey yet (#405). 2019-02-01 18:39:50 -05:00
Richard Moore
36172f7f7b Updated dist files. 2019-01-25 19:10:44 -05:00
Richard Moore
908258f8d4 Fixed duplicate events from triggering (#404). 2019-01-25 19:08:31 -05:00
Richard Moore
774b2d5fee Updated dist files. 2019-01-24 16:53:44 -05:00
Richard Moore
b5f720ace6 Ganache does not include from in receipts (#400). 2019-01-24 16:52:24 -05:00
Richard Moore
9f201c386e Updated dist files. 2019-01-23 16:30:12 -05:00
Richard Moore
700dd34137 Added to and from for Transaction Receipts (#398). 2019-01-23 16:25:49 -05:00
Richard Moore
f2dd977de4 Added v3 INFURA end-points to InfuraProvider (#286). 2019-01-23 16:04:54 -05:00
Richard Moore
5f013216c5 Fixed long-response bug in IpcProvider (#384). 2019-01-21 17:03:52 -05:00
Richard Moore
eac0805435 Updated dist files. 2019-01-17 16:34:17 -05:00
Richard Moore
e5bee7e5a3 Fixed path for x-ethers metadata and wallet (#). 2019-01-17 16:32:51 -05:00
Richard Moore
442553620a Updated dist files. 2019-01-15 16:01:45 -05:00
Richard Moore
6d08968b87 Fixed contract removeAllListeners which did not clean up the event loop properly (#391). 2019-01-15 15:58:42 -05:00
Richard Moore
c2ce59f95e Updated dist files. 2018-12-27 15:53:00 -05:00
Richard Moore
f3ec27b95f Added customizable log levels to quiet warnings (#379). 2018-12-27 15:48:38 -05:00
Richard Moore
c88cb5ea90 Updated dist files. 2018-12-14 18:39:46 -05:00
Richard Moore
99a21660ab Allow unchecked transactions which will remain unwrapped for the JsonRpcSigner (#340). 2018-12-14 18:36:24 -05:00
Richard Moore
4bc62a1e8a Make it easier for sub-classes of Wallet to manage nonces. 2018-12-14 18:32:48 -05:00
Richard Moore
26eb6cc01a Updated dist files. 2018-12-12 16:59:25 -05:00
Richard Moore
bcba17a9e7 Allow nonce to be a BigNumber (#228). 2018-12-12 16:56:50 -05:00
Richard Moore
918b66bc2e Fixed typo in error strings (#376). 2018-12-12 16:31:23 -05:00
Richard Moore
152d672278 Add isHexString to exported utils (#367). 2018-12-12 16:23:39 -05:00
Richard Moore
51fb472809 Add abs method to BigNumber (#375). 2018-12-12 16:10:28 -05:00
Richard Moore
66440b8542 Better error messages for namehash (#364). 2018-12-10 17:02:02 -05:00
Richard Moore
fefdd51084 Updated dist files. 2018-12-08 18:48:53 -05:00
Richard Moore
6ca1d77298 Fixed function name in parsed transactions (#370). 2018-12-08 18:46:29 -05:00
Richard Moore
4f6748ec4c Include request body in web errors. 2018-12-05 04:19:34 -05:00
Richard Moore
f56fc572f1 Squashed unhandled promise exception for Providers that are never used (#362). 2018-12-05 04:18:47 -05:00
Richard Moore
16fdf6b621 Added gas estimation back into JsonRpcSigner (#365). 2018-12-05 03:32:24 -05:00
Richard Moore
a863037ca3 Updated dist files. 2018-12-04 17:16:42 -05:00
Richard Moore
2d854bd94c Do not fill in implicit values for JSON-RPC based signers (#335). 2018-12-04 17:13:55 -05:00
Richard Moore
9565c28a91 More relaxed transaction parsing (#357). 2018-12-04 16:31:18 -05:00
Richard Moore
bc457bb3bd Allow any whitespace characters in human-readable ABI (#360). 2018-12-04 16:14:57 -05:00
Richard Moore
db383a3121 Updated dist files. 2018-11-27 17:32:47 -05:00
Richard Moore
3f76f603d9 Fixed contract proxied tx.wait receipt properties (#355). 2018-11-27 17:32:05 -05:00
Richard Moore
68304848ae Updated dist files. 2018-11-27 16:03:39 -05:00
Richard Moore
bb6bc4cac3 Check for partially-working normalize support. 2018-11-27 15:59:14 -05:00
Richard Moore
ef8b9c36ef Support for platforms where UTF-8 is only half broken. 2018-11-27 15:56:50 -05:00
Richard Moore
e6c943d01f Updated dist files. 2018-11-21 16:24:40 -05:00
Richard Moore
31d3ee899f Throw exception instead of returning null for getDefaultProvider (#351). 2018-11-21 16:23:44 -05:00
Richard Moore
98143a845b Updated dist files. 2018-11-20 15:45:47 -05:00
Richard Moore
bffc557be1 Added default provider support for Ethereum classic (#351). 2018-11-20 15:41:12 -05:00
Richard Moore
09208fa8fe Updated dist files. 2018-11-13 07:50:04 -05:00
Richard Moore
048c571d3d Fixed 0 confirmation waiting (#346). 2018-11-13 07:48:37 -05:00
Richard Moore
24757f1064 Updated dist files. 2018-11-12 17:27:47 -05:00
Richard Moore
88f2f51266 Fix spacing in checkArgument errors (#318). 2018-11-12 17:22:18 -05:00
Richard Moore
93152ef863 Do not replay block events when the provider event block is reset (#343). 2018-11-12 17:17:43 -05:00
Richard Moore
09b698b0a9 Updated dist files. 2018-11-09 14:42:29 -05:00
Richard Moore
478aaf9619 Force unorm shim when String.prototype.normalize is broken (#338). 2018-11-09 14:36:21 -05:00
Richard Moore
fad902b438 Better error message when normalize is missing. 2018-11-09 14:34:14 -05:00
Richard Moore
7bfaf292db Added shims for React-Native support. 2018-11-08 18:25:16 -05:00
Richard Moore
be0488a1a0 Updated dist files. 2018-11-08 16:03:33 -05:00
Richard Moore
28a52cd485 Fix for when blockTag is specified as a null equivalent value in contract overrides (#329). 2018-11-08 16:01:48 -05:00
Richard Moore
3a19f43844 Added "debug" event for providers; do not depend on the format as it may change, but this should help debugging in most cases (#320). 2018-11-08 15:59:30 -05:00
Richard Moore
4852e837d2 Fix for Kovan filters without an address (#339). 2018-11-08 15:56:35 -05:00
Richard Moore
fa68385cfe Updated dist files. 2018-10-14 19:05:38 -04:00
Richard Moore
d54609a458 Fixed lingering polling timer when no events left to process in a provider. 2018-10-14 19:01:53 -04:00
Richard Moore
f682861e0b Fixed utils.poll from mutating passed variables. 2018-10-14 19:01:09 -04:00
Richard Moore
023a20ff47 Fixed and refactored populating transaction values for signers (#306). 2018-10-14 19:00:15 -04:00
Richard Moore
e39cd84923 Fixed test cases for phantomjs (must use ES3 syntax). 2018-10-13 17:27:19 -04:00
Richard Moore
5020897f10 Updated dist files. 2018-10-13 17:19:07 -04:00
Richard Moore
6ac2d923b7 Fixed filtering with null non-indexed parameters (#305). 2018-10-13 17:17:02 -04:00
Richard Moore
6996dd86f4 Updated dist files. 2018-10-11 16:50:52 -04:00
Richard Moore
493273d698 Added optional blockTag to call; note that this may not behave as expected on all nodes (#226). 2018-10-11 16:03:18 -04:00
Richard Moore
84344ac4c2 Check all transaction parameters are valid; protect against typos (#299). 2018-10-11 15:16:31 -04:00
Richard Moore
9b118af304 Updated dist files. 2018-10-07 01:13:10 -04:00
Richard Moore
e39e2ed718 Added address to HDNode (#196). 2018-10-07 01:09:56 -04:00
Richard Moore
71f781d542 Added French and Spanish to test-hdnode. 2018-10-07 01:05:49 -04:00
Richard Moore
b2db10e216 Mark progressCallback as optional (#293). 2018-10-07 00:42:52 -04:00
Richard Moore
3736a15714 Updated dist files. 2018-10-04 20:25:07 -04:00
Richard Moore
248158130e Added automatic event parsing for contract transaction receipts from tx.wait. 2018-10-04 19:54:15 -04:00
Richard Moore
f5c7ccbb80 Added ability to wait for a specific number of confirmations (#229). 2018-10-04 17:27:42 -04:00
Richard Moore
24335d0dd7 Fix for geth-etc (official geth is fine), which returns Receipts before the blockHash is synced to the database. 2018-10-04 16:46:19 -04:00
Richard Moore
908c2c1096 Fixed confirmations tests and bootstrap fast blockNumber. 2018-10-04 16:44:29 -04:00
Richard Moore
9797b36186 Added confirmations to TransactionResponse (#156, #238). 2018-10-04 16:24:31 -04:00
Richard Moore
731f189010 Fixed nested errors for providers that were masking true error (#292). 2018-10-04 15:24:29 -04:00
Richard Moore
cc5b157231 Updated dist files. 2018-10-03 22:52:55 -04:00
Richard Moore
99fed75202 Added version to errors. 2018-10-03 22:50:22 -04:00
Richard Moore
cb5f9f576a Fixed French and Spanish for browsers without Uint8Array.forEach. 2018-10-03 22:47:44 -04:00
Richard Moore
aeac2cdb86 Added French and Spanish includes to phantomjs test page. 2018-10-03 20:22:59 -04:00
Richard Moore
0dafd83033 Increased timeout for querying npm registry. 2018-10-03 20:08:01 -04:00
Richard Moore
f6d946cf68 Updated dist files. 2018-10-03 20:03:32 -04:00
Richard Moore
b9c07b549c Added French and Spanish wordlist dist files. 2018-10-03 20:01:35 -04:00
Richard Moore
c34a1f73c6 Added French and Spanish BIP-39 wordlists (#191). 2018-10-03 19:58:45 -04:00
Richard Moore
281bd0613d Added support for JSON serialized BigNumbers in the constructor (#288). 2018-10-03 19:54:38 -04:00
Richard Moore
d936b4cd09 Fixed scrypt for long passwords (#223). 2018-10-03 19:50:15 -04:00
Richard Moore
5a0ebf84ef Updated dist files. 2018-10-01 17:34:44 -04:00
Richard Moore
c9c5b4d641 Added chainId as supported override for contract transactions. 2018-10-01 17:33:09 -04:00
Richard Moore
5e86e02304 Fixed wildcard events and made nested events more robust (#289). 2018-10-01 17:30:45 -04:00
Richard Moore
15cd0d8e58 Fixed twitter link in README. 2018-09-28 11:00:33 -04:00
Richard Moore
061b0eae1d Version bump (major). 2018-09-27 17:17:41 -04:00
Richard Moore
d3876303f2 Merge branch 'master' into typescript 2018-09-27 17:11:25 -04:00
Richard Moore
2ad110548d Updated dist files. 2018-09-27 16:55:40 -04:00
Richard Moore
ef5d19e5c9 More logical interface for hexDataSlice (mimic slice). 2018-09-27 16:52:05 -04:00
Richard Moore
5f6bc405dd Added failure count to test case reporter. 2018-09-27 16:50:59 -04:00
Richard Moore
1ca203ca38 Remove unused dist files. 2018-09-27 16:49:38 -04:00
Richard Moore
c8a75ab01d Updated README. 2018-09-27 16:48:22 -04:00
Richard Moore
8c6eb555de Updated wordlists with new library layout for Wordlist. 2018-09-27 16:47:44 -04:00
Richard Moore
cb68403387 Fixed test case for phantomjs; non-ES3 token. 2018-09-26 16:29:16 -04:00
Richard Moore
7b5ce86c5b Updated dist files. 2018-09-26 16:15:13 -04:00
Richard Moore
f4e247fc92 Fixed trailing-zero issue after commify fix. 2018-09-26 16:11:38 -04:00
Richard Moore
e582bd73ee Updated unit test cases. 2018-09-26 16:11:07 -04:00
Richard Moore
543e12c6ca Changing contract deployment to ContractFactory. 2018-09-26 15:47:09 -04:00
Richard Moore
57439af25d Removed options from unit conversion and added separate otto-safe commify function (#202, prep for #228). 2018-09-26 15:44:39 -04:00
Richard Moore
f4dd5d19e7 Updated dist files. 2018-09-24 16:07:14 -04:00
Richard Moore
05e30f4680 Major overhaul of file layout and import/export structure to better support TypeScript. 2018-09-24 15:55:17 -04:00
Richard Moore
9c87e569cf Added Ethereum Classic Testnet to networks. 2018-09-21 15:34:56 -04:00
Richard Moore
15761027df Added constructor support for Human-Readable ABI. 2018-09-21 15:34:24 -04:00
Richard Moore
65fa0b7b22 Updated dist files. 2018-09-20 15:48:08 -04:00
Richard Moore
8b2e57276f Do not override nonce if forced to 0 (#282). 2018-09-20 15:46:53 -04:00
Richard Moore
25337d4543 Fix typo in error message (#272). 2018-09-20 15:46:04 -04:00
Richard Moore
892f30a051 Check HTTP status before parsing body in fetchJson (#280). 2018-09-20 12:44:46 -04:00
Richard Moore
829a56cc79 Updated dist files. 2018-09-20 11:58:46 -04:00
Richard Moore
9d04f2c1eb Prevent odd-length values from being passed in as bytesXX (#281). 2018-09-20 11:55:27 -04:00
Richard Moore
f02f4bc0c0 Enabled ropsten test cases for Etherscan (it is back up). 2018-09-20 11:53:52 -04:00
Richard Moore
b9829f205f Remove beta dist file. 2018-09-06 16:53:40 -04:00
Richard Moore
eef07e5a4f Updated dist files. 2018-09-06 16:41:02 -04:00
Richard Moore
13e50ec6db Exposed more secp256k1 primitives (#233 #271). 2018-09-06 16:37:44 -04:00
Richard Moore
9dcf6f3253 Added headers and timeout to fetchJson (#224 #257). 2018-09-06 16:34:45 -04:00
Richard Moore
e0cefb0398 Added VoidSigner for read-only access as a specific address. 2018-09-04 10:28:26 -04:00
Richard Moore
6018bf63f9 Make AbstractSigner provider readonly. 2018-09-04 10:27:22 -04:00
Richard Moore
7aebe53e5b Change Buffer constructor to safer operations (#265). 2018-09-04 10:20:31 -04:00
Richard Moore
32a070d909 Added support for fetching block transactions with blocks. 2018-09-04 10:08:50 -04:00
Richard Moore
b5408bcbd0 Updated readme with beta cdn link. 2018-08-27 20:19:06 +02:00
Richard Moore
284ffdfd1f Updated provider testcase for updated address. 2018-08-27 18:58:50 +02:00
Richard Moore
ae4cd90441 Updated dist files. 2018-08-27 14:51:44 +02:00
Richard Moore
5efd0c1f8a Backport fix for EIP-848 status codes from v4; only an error is generated in v3, the error string is ignored. (#262). 2018-08-27 14:51:03 +02:00
Richard Moore
962f75038b Skip dist checks for node 6 to fix Travis CI. 2018-08-27 14:04:21 +02:00
Richard Moore
ea5a56f0f0 Updated dist files. 2018-08-27 13:42:26 +02:00
Richard Moore
afae5cd2f9 Block calling contract methods until it deployed, if it is pending deployment. 2018-08-27 13:38:48 +02:00
Richard Moore
280dc56a74 Removing address from JsonRpcSigner and cache address (#263). 2018-08-27 13:27:59 +02:00
Richard Moore
2b9d8d6d6a Silence warning for external keyword in human-readable ABI. 2018-08-27 13:27:03 +02:00
Richard Moore
2d35e5e9d7 Fixed test cases for finney units. 2018-08-21 13:23:11 +02:00
Richard Moore
102a4e8bf4 Added tests for utf-8 errors. 2018-08-21 13:14:37 +02:00
Richard Moore
ce837e307e Fixed test DRNG. 2018-08-21 13:14:21 +02:00
Richard Moore
810e9e743e Updated dist files. 2018-08-21 13:13:52 +02:00
Richard Moore
e092746165 Removed jsonCopy and added deepCopy instead (#261). 2018-08-21 13:11:44 +02:00
Richard Moore
388b658bfa Invalid utf-8 strings now fail by default. 2018-08-21 13:08:28 +02:00
Richard Moore
0358e8afb7 Fixed typo in units for finney (#259). 2018-08-21 13:01:55 +02:00
Richard Moore
2b88efea65 Updated dist files. 2018-08-13 17:01:44 +01:00
Richard Moore
f4c3073304 Removed BigNumber and AbiCoder objects from utils and exposed them at the root. 2018-08-13 16:58:19 +01:00
Richard Moore
e4d5786861 Fixed isType for null values. 2018-08-13 16:56:59 +01:00
Richard Moore
46a55a1d99 Removing old dead code. 2018-08-13 16:56:20 +01:00
Richard Moore
2c1022cde1 Removed timeout from wait so we can use confirmations in the future instead and remain backwards compatible. 2018-08-13 16:54:32 +01:00
Richard Moore
f9723c42cb Re-use shallowCopy. 2018-08-13 16:52:35 +01:00
Richard Moore
3635a9bb40 Fixed custom network chain ID check. 2018-08-13 16:50:47 +01:00
Richard Moore
9e0bfa733b Updated dist files. 2018-08-05 18:35:26 -04:00
Richard Moore
a80a8a8ced Fixed miscalculating estimated fees for payable functions. 2018-08-05 18:35:00 -04:00
Richard Moore
b44a80800c Removed dead dist files. 2018-08-05 18:31:22 -04:00
Richard Moore
e3b04bb3fc Updated dist files. 2018-08-04 19:40:06 -04:00
Richard Moore
fcee62a3d9 Fixed parseSignature with empty parameter lists. 2018-08-04 19:34:30 -04:00
Richard Moore
7f1fbfc203 Make wallet.encrypt options optional. 2018-08-04 19:33:51 -04:00
Richard Moore
4f63b82bbb Updated dist files. 2018-08-03 15:26:01 -04:00
Richard Moore
f63c844c42 Added support for getting JsonRpcSigner by index and fixed gas limit in sendTransaction. 2018-08-03 15:22:28 -04:00
Richard Moore
694c0b3f7d Added test case to check build for TypeScript host-path mayhem. 2018-08-02 21:36:13 -04:00
Richard Moore
1c45840148 Updated dist files. 2018-08-02 21:35:39 -04:00
Richard Moore
421b2c857b Fixing TypeScript compiler using host paths for resolving constants. 2018-08-02 21:34:10 -04:00
Richard Moore
bacf42a22f Updated dist files. 2018-08-02 20:43:09 -04:00
Richard Moore
5c8703fb30 Restructuring for TypeScript. 2018-08-02 20:30:44 -04:00
Richard Moore
30a84d8577 Fixing long-output-delay issue on Travis CI. 2018-08-02 17:56:50 -04:00
Richard Moore
3198bc27fd Updated dist files. 2018-08-02 17:15:11 -04:00
Richard Moore
c7555516ff Using the Vyper-style gas limits sans the base cost. 2018-08-02 17:14:06 -04:00
Richard Moore
3cd0e8bf88 New custom Mocha reporter so Travis CI output is browser friendly. 2018-08-02 17:10:38 -04:00
Richard Moore
957ccd2eaf Updated dist files and tests. 2018-08-01 18:05:19 -04:00
Richard Moore
558ef2c00d Updated ethers exported structure. 2018-08-01 17:35:23 -04:00
Richard Moore
b73a964bac Moved type to enum for hmac SupportedAlgorithms. 2018-08-01 17:33:23 -04:00
Richard Moore
3e091a2938 Added Vyper-style gas ABI support. 2018-08-01 17:24:11 -04:00
Richard Moore
cb6d18035f Added error code detection for sendTransaction. 2018-08-01 17:02:27 -04:00
Richard Moore
4b15229832 Calculate estimated gasLimit for JsonRpcProvider. 2018-08-01 15:47:02 -04:00
Richard Moore
f0dfa50848 Adding node 8 back into tests. 2018-07-30 23:15:53 -04:00
Richard Moore
22f007498d Updated dist files. 2018-07-30 23:15:36 -04:00
Richard Moore
cc6f658ef1 Added support for Web3 v1.0 providers. 2018-07-30 23:14:07 -04:00
Richard Moore
9b885296d0 Major re-factor of the library layout for TypeScript; still up for discussion. 2018-07-30 18:59:52 -04:00
Richard Moore
c6c5ba0118 Updated dist files. 2018-07-27 17:02:46 -04:00
Richard Moore
a966a60656 Changed constant name for consistency. 2018-07-27 03:46:38 -04:00
Richard Moore
d05da1e487 Added transactionHash to error for consistency. 2018-07-27 03:45:11 -04:00
Richard Moore
294d0fda61 Added longer timeout for basic authentication test. 2018-07-26 18:19:26 -04:00
Richard Moore
29f3d2dea8 Fixed long fixed-length bytes from overflowing encoded ABI. (#237) 2018-07-26 18:02:42 -04:00
Richard Moore
d2b6570c39 Updated dist files. 2018-07-26 17:34:22 -04:00
Richard Moore
a1a765f6e4 Fixed types for Log Description. 2018-07-26 17:31:08 -04:00
Richard Moore
1d98928475 Updated dist files. 2018-07-26 17:02:32 -04:00
Richard Moore
73486d6f39 Added public and stateMutability for payable to ABI coder. 2018-07-26 16:58:31 -04:00
Richard Moore
640ed5dc33 Fixed recursive promise filling for contract calls. 2018-07-26 16:57:47 -04:00
Richard Moore
dda957c8e5 Removing junk files. 2018-07-25 22:05:38 -04:00
Richard Moore
97b6d8a797 Updated dist files. 2018-07-25 21:20:21 -04:00
Richard Moore
00bb20546b No longer using instanceof which conflicts with npm link. 2018-07-25 21:15:43 -04:00
Richard Moore
7cf8596906 Added bounds checks to the number coder and fixed bytes coder. 2018-07-25 19:32:27 -04:00
Richard Moore
5a0607d11b Updated dist files. 2018-07-23 19:23:53 -04:00
Richard Moore
26207e7bb8 Added non-unified types to resolve npm link issues. 2018-07-23 19:21:42 -04:00
Richard Moore
ae8d75fe6a Use ethers.wordlists for testing instead of re-import. 2018-07-23 05:38:53 -04:00
Richard Moore
4db19a1799 Type in console.log for tests. 2018-07-23 05:38:27 -04:00
Richard Moore
543ca19361 Updated dist files. 2018-07-23 05:37:48 -04:00
Richard Moore
7014afaab6 Fixing out-of-order browserify imports again. 2018-07-23 05:37:07 -04:00
Richard Moore
62987ac3a8 Updated test suite utils. 2018-07-23 03:02:39 -04:00
Richard Moore
3a5ec9b4ca Updated dist files. 2018-07-23 02:59:01 -04:00
Richard Moore
3169cf2f60 Generalized gulpfile and split browserify from tsc. 2018-07-23 02:56:40 -04:00
Richard Moore
bceefc7197 Better browserify for English wordlist. 2018-07-22 21:07:50 -04:00
Richard Moore
bfff3ea4cc Simpler empty modules for shims. 2018-07-22 20:41:30 -04:00
Richard Moore
7d4caa05ca Use class instance to detect BigNumber. 2018-07-22 20:06:36 -04:00
Richard Moore
004fd7d37d Make formatUnits options optional. 2018-07-22 20:05:45 -04:00
Richard Moore
e3da92d1ee Lazy load the elliptic curve; also fixed circular dependencies internal to the library that cause issues in browserify. 2018-07-22 20:05:14 -04:00
Richard Moore
0bc72c5ed4 Export computePublicKey in utils. 2018-07-22 19:59:27 -04:00
Richard Moore
d0cf0c8f43 Restructuring browser shims. 2018-07-22 18:25:36 -04:00
Richard Moore
4d4fe60a55 Version bump (pre-release: beta.1) 2018-07-18 16:38:40 -04:00
Richard Moore
81903e99d3 Updated dist files. 2018-07-18 16:36:21 -04:00
Richard Moore
fd40f66766 Removing node8, which fails to load Web3 dependencies. 2018-07-18 16:33:47 -04:00
Richard Moore
2aa2a38e37 Added a (hacky) way to get TypeScript to support the Contract meta-class functions. 2018-07-18 16:32:16 -04:00
Richard Moore
d701995bc0 Correct wallet.createRandom to have optional options. 2018-07-18 16:30:42 -04:00
Richard Moore
c4084fe625 Trying to fix Travis CI for node8; failing to load a devDependency in Web3. 2018-07-17 16:11:51 -04:00
Richard Moore
8c7c592bd1 Updated dist files. 2018-07-17 16:10:13 -04:00
Richard Moore
b9aca357a9 Updated generated version file. 2018-07-17 16:09:35 -04:00
Richard Moore
26f5a558d6 Fixed some concerns of eslint. 2018-07-17 16:09:06 -04:00
Richard Moore
960919d00a Version bump (pre-release: beta.0). 2018-07-17 15:49:37 -04:00
Richard Moore
b712c88088 Updated dist files. 2018-07-17 15:36:14 -04:00
Richard Moore
a062f75d38 Made Signatures more flexible for input. 2018-07-17 15:32:06 -04:00
Richard Moore
a67e3d1d65 Updated demo wallet send for v4 API. 2018-07-17 02:35:39 -04:00
Richard Moore
28927a6f1a Updated dist files. 2018-07-17 02:07:36 -04:00
Richard Moore
ce864fa1b2 Fixed browser shim for setImmediate. 2018-07-17 02:05:24 -04:00
Richard Moore
7e1e760b95 Remove editor swap file. 2018-07-17 01:49:51 -04:00
Richard Moore
d19df0dcae Updated dist files. 2018-07-17 01:46:27 -04:00
Richard Moore
b61b84dfc8 Moved static Wallet calls to utils and refactors exposed types. 2018-07-17 01:44:04 -04:00
Richard Moore
922de67a8b Updated dist files. 2018-07-16 04:00:56 -04:00
Richard Moore
e8c657ba70 Fixed type definitions using absolute path. 2018-07-16 03:59:25 -04:00
Richard Moore
1ce4f75b0d Increase wallet testcases timeout for decrypting and encrypting. 2018-07-16 03:30:09 -04:00
Richard Moore
175966674d Use brwoser hmac directly from browser pbkdf2. 2018-07-16 03:29:08 -04:00
Richard Moore
d1ce9f4964 Refactored imports and exports to be both node-friendly and TypeScript-friendly. 2018-07-16 03:27:49 -04:00
Richard Moore
0f9d0ef533 Updated dist files. 2018-07-16 00:55:34 -04:00
Richard Moore
e4df325e22 Moved getNetwork to utils. 2018-07-16 00:48:41 -04:00
Richard Moore
3b843a1782 Moving away from default exports. 2018-07-16 00:39:29 -04:00
Richard Moore
614b2d0325 Removing default export from wordlists. 2018-07-16 00:32:26 -04:00
Richard Moore
46e4db0b24 Added wordlists to faux-fs for phantomjs testing. 2018-07-16 00:25:13 -04:00
Richard Moore
94171f6c57 Updated dist files. 2018-07-16 00:24:50 -04:00
Richard Moore
e0391ee1bc Increased timeouts for some test cases that are failing in phantomjs on Travis CI. 2018-07-16 00:20:36 -04:00
Richard Moore
7004cd0b92 Added wordlist generation testing. 2018-07-16 00:19:50 -04:00
Richard Moore
b61643fecb Fixed internal exports to use types. 2018-07-16 00:09:13 -04:00
Richard Moore
8d6fa3dc93 Added sanity checksums to all BIP39 wordlists on load. 2018-07-14 20:51:51 -04:00
Richard Moore
e6c8db88bd Japanese sorting in browsers is different than in node; fixing wordlist and added sanity check. 2018-07-14 19:38:35 -04:00
Richard Moore
937194b5ee Updated dist files. 2018-07-14 17:21:32 -04:00
Richard Moore
5f3ceec6f9 Refactored types for TypeScript and to remove circular dependencies. 2018-07-14 17:19:08 -04:00
Richard Moore
3f9f0e02e5 Updated dist files. 2018-07-12 20:14:04 -04:00
Richard Moore
d6260ae11a Fixing weird browserify bug with pacakge resolution order. 2018-07-12 20:11:32 -04:00
Richard Moore
0ecfe4bafd Truly immutable BigNumber and hidden constructor. 2018-07-12 20:07:47 -04:00
Richard Moore
df2a00a2fc Fixed test-wallet for phantomjs (it does not like the "let" keyword). 2018-07-12 03:25:59 -04:00
Richard Moore
dfdbb9bb28 Updated dist files. 2018-07-12 02:53:06 -04:00
Richard Moore
979e374270 Added new-style events (removed old-style) to contracts and added filters to contracts and interfaces. 2018-07-12 02:52:43 -04:00
Richard Moore
b7e143b4f3 Changed Web3Proivder url to empty string instead of unknown if it cannot be determined. 2018-07-12 02:50:44 -04:00
Richard Moore
272265f085 Added common constants to root library. 2018-07-12 02:49:48 -04:00
Richard Moore
27402fafe6 Refactored Provider events. 2018-07-12 02:49:09 -04:00
Richard Moore
ac4211d0c6 Added common constants to utils. 2018-07-12 02:44:45 -04:00
Richard Moore
ee0faba708 Fixed ABI coder for no-name indexed parameters in events. 2018-07-12 02:43:55 -04:00
Richard Moore
e5d5871b95 Better transaction serializing API. 2018-07-12 02:42:46 -04:00
Richard Moore
4514229f27 Added eslint for promises. (#189) 2018-07-03 16:44:05 -04:00
Richard Moore
7ac8cb63c8 Use block polling rather than exponential backoff when possible. Added transactionHash to errors on failed transactions. 2018-07-03 15:48:37 -04:00
Richard Moore
8e83ceaedc Check for invalid strings in BigNumber constructor. (#219) 2018-07-03 14:58:24 -04:00
Richard Moore
b1d026b800 Added deployed to contract and abstracted polling into web. 2018-06-30 23:05:22 -04:00
Richard Moore
ebf42dc9e0 Fixed extra output in array data. (#220) 2018-06-30 22:40:20 -04:00
Richard Moore
a8283ea99f Add longer timeout for contract calling test cases. 2018-06-28 23:21:51 -04:00
Richard Moore
564c5fa364 Fix unresolved promise issues and add Promise linting. 2018-06-27 19:59:08 -04:00
Richard Moore
6faa978767 Fixes for handling weird TestRPC behaviour. 2018-06-26 18:59:22 -04:00
Richard Moore
8a340c8ff3 Fixed sendTransaction for JsonRpcSigner. 2018-06-26 18:37:21 -04:00
Richard Moore
0b35f1959a Fixed JsonRpcSigner for promises and made address optional again. 2018-06-26 17:49:54 -04:00
Richard Moore
98ea4b59a0 Fixed JsonRpcSigner for Promise-based values. 2018-06-26 17:47:31 -04:00
Richard Moore
ac2ad5a886 Travis CI and node 10 need the package-lock. 2018-06-25 21:58:34 -04:00
Richard Moore
8fe19de3ce Added support for unsigned transactions. 2018-06-25 21:02:20 -04:00
Richard Moore
40559b7044 Added node 10 to Travis CI testing. 2018-06-24 21:43:29 -04:00
Richard Moore
0b8b682fee Typo in travis config. 2018-06-24 21:29:04 -04:00
Richard Moore
083aca4693 Merge branch 'typescript' of github.com:ethers-io/ethers.js into typescript 2018-06-24 21:28:09 -04:00
Richard Moore
19475a06f5 Re-enable node 8 for testing. 2018-06-24 21:27:30 -04:00
Richard Moore
5fa014e01d Re-enable node 8 for testing. 2018-06-24 21:25:38 -04:00
Richard Moore
df591cfc4c Increase timeout for testcases that make contract requests. 2018-06-24 21:25:07 -04:00
Richard Moore
fcd57f9756 Added formatParamType and formatSignature. 2018-06-24 20:32:14 -04:00
Richard Moore
c348c60d5c Skip null values (not just undefined) when resolving ENS names. 2018-06-24 18:56:45 -04:00
Richard Moore
1d2fe8993b Populate from in estimateGas for determining gas limit. 2018-06-24 18:47:36 -04:00
Richard Moore
18aa885aef Provider and contract wait return receipts and throw on error status. 2018-06-24 18:41:28 -04:00
Richard Moore
a693576941 Updated dist files for wordlists. 2018-06-24 05:34:57 -04:00
Richard Moore
5c0475ce8c Added version to TypeScript library output. 2018-06-24 05:31:24 -04:00
Richard Moore
380c17a0a5 Removed unecessary private variable from Chinese wordlist. 2018-06-24 05:28:16 -04:00
Richard Moore
bd4ca0d4d3 Fixed TypeScript definition file generation. 2018-06-24 04:03:21 -04:00
Richard Moore
7949444612 Added initial support for EIP838, revert codes (#188). 2018-06-23 01:33:51 -04:00
Richard Moore
cf16b0ffa9 Typo in demo wallet. 2018-06-23 01:30:59 -04:00
Richard Moore
ec40c67c50 Added no implicit any for TypeScript checking. 2018-06-22 20:30:50 -04:00
Richard Moore
55ac3fef88 Increase test timeout for phantomjs hdnode tests. 2018-06-22 03:36:00 -04:00
Richard Moore
c4edd957b4 Updated dist files. 2018-06-22 03:10:59 -04:00
Richard Moore
a19cc91cd4 Updated test cases to reflect API name changes and remove brain wallets. 2018-06-22 02:31:07 -04:00
Richard Moore
c83596455b Updated dist files. 2018-06-22 02:18:19 -04:00
Richard Moore
41a91c3c2d Fixed encrypted JSON wallets in demo wallet. 2018-06-22 02:15:47 -04:00
Richard Moore
b77937ec4c Added shims include to the root library. 2018-06-22 02:14:46 -04:00
Richard Moore
1082105eea Added more specific types to signatures. 2018-06-22 02:13:34 -04:00
Richard Moore
45923ad5dd Added shims to browser in package.json. 2018-06-22 02:11:34 -04:00
Richard Moore
aa67537097 Added fallback operations to contract (#182). 2018-06-22 02:10:46 -04:00
Richard Moore
63e5ad1d95 Removed deprecated wallet operations (brainwallets and bare send). 2018-06-22 02:08:52 -04:00
Richard Moore
b2be7c807f Set up setImmediate for browsers. 2018-06-22 02:07:57 -04:00
Richard Moore
dde33aa5a5 Add tsconfig to npmignore. 2018-06-21 21:15:28 -04:00
Richard Moore
91f6e8ede6 Updated npmignore for TypeScript. 2018-06-21 21:13:34 -04:00
Richard Moore
7d8abf4463 Added sandbox test HTML file for debugging and testing. 2018-06-21 21:01:52 -04:00
Richard Moore
6abab3b974 Moved demo wallet to dist. 2018-06-21 21:01:29 -04:00
Richard Moore
970613fad9 Fixed wallet example. 2018-06-21 20:58:13 -04:00
Richard Moore
edbf8e319c Fixed resovleProperties not resolving properties. 2018-06-21 20:41:09 -04:00
Richard Moore
28cd3cace2 Moved TypeScript generation to match library layout for easier importing sub-components. 2018-06-21 20:24:30 -04:00
Richard Moore
45f8827c6e Moving wordlist generation scripts to tests. 2018-06-21 18:03:29 -04:00
Richard Moore
342be430cb Added types to package.json. 2018-06-21 17:57:33 -04:00
Richard Moore
622f02c369 Fix padding and stripping for signatures. 2018-06-20 22:07:26 -04:00
Richard Moore
263bf8047a Updated dist files (patch version bump). 2018-06-20 22:06:05 -04:00
Richard Moore
2feced5937 Strip the r and s (since we not pad) for transactions. 2018-06-20 22:03:23 -04:00
Richard Moore
6de0a765c9 Updated readme. 2018-06-20 21:19:08 -04:00
Richard Moore
4fd35224b3 Updated readme and dist files. 2018-06-20 21:14:56 -04:00
Richard Moore
52dc35bf0e Added missing String.prototype.normalize shim for phantomjs testing. 2018-06-20 21:12:04 -04:00
Richard Moore
2a111ab6ce Added mnemonic language support for Chinese, Italian, Japanese and Korean. 2018-06-20 20:29:54 -04:00
Li Xuanji
5631f071c3 pad output of signDigest 2018-06-19 13:40:11 -04:00
Richard Moore
a0f92954c8 Removing Etehrscan tests temporarily because Etherscan is down. 2018-06-19 02:21:52 -04:00
Richard Moore
64b312ef6e Adding phantomjs testing for Travis CI back. 2018-06-19 02:14:41 -04:00
Richard Moore
baf92d4ec8 Added missing browser implementations for crypto. 2018-06-19 02:14:06 -04:00
Richard Moore
1d282c544a Fixed up formatting for transforming. 2018-06-19 02:13:34 -04:00
Richard Moore
5b18a63ebc Use node crypto in node environments. 2018-06-19 02:12:57 -04:00
Richard Moore
336df72e04 Refactor Provider. 2018-06-18 18:49:00 -04:00
Richard Moore
cf79190175 Node 6 does not like async/await, which breaks Travis CI testing. 2018-06-18 14:53:41 -04:00
Richard Moore
5da4917c27 Refactoring. 2018-06-18 05:42:41 -04:00
Richard Moore
c1b24e818c Renamed convert to bytes. 2018-06-17 16:47:28 -04:00
Richard Moore
af893e79a4 Refectoring; split getAddress, expose transactions, hex operations. 2018-06-17 16:32:57 -04:00
Richard Moore
aa48dfcdf4 Removed stray localName in array sub-coders. 2018-06-15 17:50:22 -04:00
Richard Moore
efbfed0d40 Refactor API. 2018-06-15 04:18:17 -04:00
Richard Moore
059b03e090 Fixed ABI coder mutabing input. 2018-06-14 16:55:54 -04:00
Richard Moore
7391cf8d19 Added consolidated definition file. 2018-06-14 05:38:37 -04:00
Richard Moore
be7a128bf4 Renaming files. 2018-06-14 02:55:44 -04:00
Richard Moore
b6794b96a5 Removed legacy gruntfile. 2018-06-14 02:26:34 -04:00
Richard Moore
4df78764a2 Updates phantomjs test cases for gulp and TypeScript dist files. 2018-06-14 02:25:56 -04:00
Richard Moore
c411d9744d Added new checks and fixed up deploy for Contract. 2018-06-13 21:10:41 -04:00
Richard Moore
f7bfa50f15 Support for ENS addresses anywhere in a Contract call. 2018-06-13 20:02:28 -04:00
Richard Moore
8c0308dc58 Initial TypeScript migration. 2018-06-13 15:39:39 -04:00
Richard Moore
4758b30cd3 Updated mocha version to resolve node-growl security issue (not important, only part of the test suite). 2018-06-10 01:16:20 -04:00
Richard Moore
6a8ca9c318 Correctly transform uint to uint256 and int to int256 for signatures. 2018-06-06 20:48:45 -04:00
Richard Moore
884593ab76 Updated dist files. 2018-06-05 19:40:28 -04:00
Richard Moore
0517f70946 Temporary: remove ropsten test cases, it is having issues. 2018-06-05 19:38:35 -04:00
Richard Moore
514aab7ee3 Added positional and keyword argument test cases for ABIv2. 2018-06-05 19:32:18 -04:00
Richard Moore
eaaa689f2f Temporary - remove ropsten testcases for Etherscan (it is down). 2018-06-05 19:20:21 -04:00
Richard Moore
cf7872a498 Moved contract tests to Rinkeby. 2018-06-05 19:19:40 -04:00
Richard Moore
f779b6e3cc Fixed named parameters for tuples. 2018-06-05 19:18:41 -04:00
Richard Moore
a6cced81d6 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-06-03 20:50:33 -04:00
Richard Moore
62e51861b8 Added more flexible ABI coder. 2018-06-03 20:50:21 -04:00
Richard Moore
6c6e031254 Added parseTransaction to interface to detect and parse relevant function and args. 2018-06-03 17:10:48 -04:00
Richard Moore
48c07f6ef6 Prevent pending filter hashes from returning null. 2018-06-03 17:08:25 -04:00
Richard Moore
1b6c20341e Updated Etherscan API URLs. 2018-06-03 16:54:13 -04:00
Richard Moore
75eb7ed507 Merge branch 'patch-1' of git://github.com/vasilisAntonakis/ethers.js into vasilisAntonakis-patch-1 2018-06-03 16:54:03 -04:00
Richard Moore
cd360a4f8c Updated CDN file in readme. 2018-06-03 16:51:23 -04:00
Richard Moore
fd27d3e2ce Merge branch 'patch-1' of git://github.com/alcuadrado/ethers.js into alcuadrado-patch-1 2018-06-03 16:51:11 -04:00
Richard Moore
6737128b84 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-06-03 16:46:23 -04:00
Richard Moore
63b2eae4f5 Increase timeout for signing test cases. 2018-06-03 05:02:52 -04:00
Richard Moore
0b34aea23a Increase timeout for signing test cases. 2018-06-03 04:59:53 -04:00
Richard Moore
1290fa0073 Adding browser/process for now to try fixing Travis CI. 2018-06-03 03:16:58 -04:00
Richard Moore
da74e95f88 Fixing Travis CI, missing nextTick. 2018-06-03 02:42:53 -04:00
Richard Moore
ac82a5cb83 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-06-03 01:11:49 -04:00
Richard Moore
ba21348c0f Added package-lock.json to fix PhantomJS tests on Travis CI. 2018-06-03 01:09:57 -04:00
Patricio Palladino
27207037a8 Fix browser installation instructions in README.md
Browser installation instructions were outdated and pointed to v2, while node's one to v3. 
I updated the browser's one.
2018-05-31 14:55:05 -03:00
Richard Moore
a612e1e8fa Added hashMessage to Wallet. 2018-05-31 02:13:59 -04:00
Richard Moore
08d3547d4e Updated dist files. 2018-05-31 02:13:43 -04:00
Vasilis Antonakis
7702d4ce7c API baseUrl changed
Hello, I noticed there is a change in the baseUrl of etherscan APIs

** Important: (Feb-12-2018) The ROPSTEN testnet API service URL has been updated to http://api-ropsten.etherscan.io . The previous API url http://ropsten.etherscan.io will cease to function as of March 31, 2018 

https://ropsten.etherscan.io/apis

same goes for all other testnets

nice work btw :)
2018-05-28 21:49:20 +03:00
Antoni Kedracki
3bf39b3bee Promote getHash into a static method of the Wallet. 2018-05-19 17:47:45 +02:00
Richard Moore
417065bad6 Added wait to transactions from JsonRpcSigner in sendTransaction (#177). 2018-05-15 15:32:32 -04:00
Richard Moore
3cb21dd6c7 Added timestamp to EtherscanProvider history (#174). 2018-05-14 15:50:25 -04:00
Richard Moore
cebf2aab29 Better error messages for contracts. 2018-04-16 21:42:17 -04:00
Richard Moore
72bf73f931 Updated dist files. 2018-04-16 21:31:49 -04:00
Richard Moore
65caec2ea5 Fix for Ganache getLogs. 2018-04-16 19:15:44 -04:00
Richard Moore
ea7c74d48d Version bump (patch). 2018-04-14 17:07:14 -04:00
Richard Moore
86df2306c4 Merge branch 'jlindberg-oss-jlindberg-oss-gethistory' 2018-04-14 17:06:15 -04:00
Richard Moore
6c12d8f30c Merge branch 'jlindberg-oss-gethistory' of git://github.com/jlindberg-oss/ethers.js into jlindberg-oss-jlindberg-oss-gethistory 2018-04-14 17:05:56 -04:00
Richard Moore
e649a22ccf Added basic authentication to JsonRpcProvider. 2018-04-14 16:10:26 -04:00
Richard Moore
eddf9de8f9 Refactor providers; moved getSigner and listAccounts to JsonRpcProvider from Web3Provider, using errors and added initial IpcProvider. 2018-04-13 18:21:48 -04:00
Richard Moore
7e91091cc3 Updated dist files. 2018-04-12 18:31:02 -04:00
Richard Moore
9745a6ecbc Added arg to SigningKey errors. 2018-04-12 18:29:53 -04:00
Richard Moore
3936b15afc Added long chain ID support to parsing. 2018-04-12 18:29:22 -04:00
Richard Moore
efb7dce524 Added splitSignature and beginning of better error messages. 2018-04-12 15:18:11 -04:00
jlindberg-oss
ac4b5d9199 handle 0 results from getHistory without error-ing
Similar to getLogs, getHistory seems to return `result.status == 0` when there are no results found.
2018-04-07 23:44:59 -04:00
Richard Moore
fdb7114511 Version bump (patch). 2018-04-05 15:48:46 -04:00
Richard Moore
03f8c1db86 Added better errors when calling contracts with incorrect number of arguments. 2018-04-05 15:47:34 -04:00
Richard Moore
12b68b0242 Added support for arbitrary number of decimals to parseUnits and formatUnits. 2018-04-05 15:46:44 -04:00
Richard Moore
28ddf485ed Allow large block difficulty, but set it to null for PoA (#152). 2018-04-05 15:31:31 -04:00
Richard Moore
96d420e832 Added parsing function outside of results for Interface. 2018-03-27 17:34:04 -04:00
Richard Moore
0f98bb5ac5 Added some extra checks for Wallet (from reading common mistakes on Stack Exchange). 2018-03-27 17:32:23 -04:00
Richard Moore
296473299c Added blockHash to Etherscan getLogs result (#146). 2018-03-27 17:19:46 -04:00
Richard Moore
ce7718c87e Transaction receipts in Ganache do not return logsBloom; making it optional. 2018-03-17 17:40:47 -04:00
Richard Moore
1ec8f9cf85 Fixed bool and number types not throwing an exception in the ABI decoding for empty bytes. 2018-03-17 17:39:45 -04:00
Richard Moore
46fd2deb8b Added pollingInterval to provider. (#132) 2018-03-15 16:03:20 -04:00
Richard Moore
5a9f440c8f Fixed getHistory range for EtherscanProvider. 2018-03-15 15:00:52 -04:00
Richard Moore
1d67aa3e29 Stall providers for blocks, transactions and transaction receipts with null results for triggered events (i.e. we know they should not be null). (#120) 2018-03-06 18:40:11 -05:00
Richard Moore
bd7e8e708f Updated dist files and version bump (patch) for publishing. 2018-03-05 22:34:12 -05:00
Richard Moore
8a842af999 Merge pull request #133 from ygnr/master
Fixed typo on JsonRpcProvider arguments length.
2018-03-05 21:43:29 -05:00
Gokulnath Reddy
224c17a9b9 Fix typo 2018-03-06 12:16:53 +11:00
Richard Moore
89e1cb02a4 Still problems with Travis CI with node 8; deactivating for now. 2018-03-05 03:19:18 -05:00
Richard Moore
3cdb6aad25 Refactored checkBlockTag. 2018-03-05 02:52:53 -05:00
Richard Moore
8a26f38579 Trying node 8 tests again. 2018-03-05 01:55:20 -05:00
Richard Moore
424cce9224 Fixed npmignore, which legacy was dropping all library packages. 2018-03-05 00:54:33 -05:00
Richard Moore
96abf66333 Updated dist files and fixed phantomjs dependency on them. 2018-03-04 21:17:16 -05:00
Richard Moore
b2ada0cda9 Fixing phantomjs test cases now that there is no sub-packages for test. 2018-03-04 20:00:46 -05:00
Richard Moore
e67a66f900 Major version update; some changes are not backwards compatible. This package has been merged into one package instead of an umbrella pacakge. (See: #95) 2018-03-04 19:31:09 -05:00
Richard Moore
20293fbcfb Updated testcase balance for Ropsen. 2018-03-03 00:18:29 -05:00
Richard Moore
03f20f023f Added ETC (classic) network. 2018-03-02 23:52:25 -05:00
Richard Moore
dfdf4ef317 Updated dist files. 2018-02-08 00:00:54 -05:00
Richard Moore
f10c595ad3 Added units manipulation to utils index. 2018-02-07 20:34:39 -05:00
Richard Moore
f611dba0ad Updated dist files. 2018-02-03 21:02:34 -05:00
Richard Moore
da852d0012 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-02-03 20:32:02 -05:00
Richard Moore
6ade579542 Added bool support to Solidity-style hash functions (#113). 2018-02-03 20:31:50 -05:00
Richard Moore
e17947930c Updated dist files. 2018-01-28 21:30:50 -05:00
Richard Moore
74c71e6677 Fixed Contract method overrides with updated Interface. 2018-01-28 20:58:56 -05:00
Richard Moore
7635708c21 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-01-26 21:56:33 -05:00
Richard Moore
4ee9a4d191 Added x-ethers compatible encrypted mnemonic to JSON wallets. 2018-01-26 21:56:20 -05:00
Richard Moore
bb24fce859 Added strict mode to properties. 2018-01-26 17:44:54 -05:00
Richard Moore
21d53f190b Updated dist files. 2018-01-17 19:11:04 -05:00
Richard Moore
5fc59dd1cf Some nodes (e.g. TestRPC) do not like checksum addresses in their RPC calls. 2018-01-17 17:26:31 -05:00
Richard Moore
34fd2882d8 Fix typo when detecting MetaMask. 2018-01-17 17:21:38 -05:00
Richard Moore
4a23b0ddc7 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-01-17 16:23:12 -05:00
Richard Moore
c4690f9e7b Fixed auto-address and signing with Metamask and Web3Provicder. 2018-01-17 16:23:01 -05:00
Richard Moore
36c6d53757 Updated dist files. 2018-01-17 02:51:36 -05:00
Richard Moore
c550f2eb07 Merge branch 'master' of github.com:ethers-io/ethers.js 2018-01-16 18:56:10 -05:00
Richard Moore
67bb0b7f93 Added Web3Provider. 2018-01-16 18:55:56 -05:00
Richard Moore
c5b411811a Updated dist files. 2018-01-10 20:29:50 -05:00
Richard Moore
eddf93b200 Added named parameters to tuple encoding. 2018-01-10 19:20:18 -05:00
Richard Moore
9aeb309d9d Updated dist files. 2018-01-10 16:42:36 -05:00
Richard Moore
bea0ea3aaf Fixed overwriting name on Events. 2018-01-10 14:34:36 -05:00
Richard Moore
df930103e7 Fixed ABIv2 signatures for calling methods. 2018-01-09 20:45:38 -05:00
Richard Moore
d6cf970ae9 Added errors for providers trying to use ENS on networks without ENS. 2018-01-09 18:43:09 -05:00
Richard Moore
e778ab6f30 Added general unit conversion to utils/units. 2018-01-09 18:25:44 -05:00
Richard Moore
b7fc74a99d Updted dist files. 2017-12-30 14:05:40 -05:00
Richard Moore
b38a36b2f5 Version bump (patch). 2017-12-30 14:02:36 -05:00
Richard Moore
046a4a4dc0 Fixed new contract features on old platform strict mode. 2017-12-30 01:42:50 -05:00
Richard Moore
357d49ecee Version bump (patch). 2017-12-29 21:02:56 -05:00
Richard Moore
a568be9df3 Added getEtherPrice and getHistory calls for Etherscan Provider. 2017-12-29 21:01:43 -05:00
Richard Moore
43061c691b Verify message supports normalized and non-normalized recovery parameter. 2017-12-29 20:44:32 -05:00
Richard Moore
a4e768e2b3 Added pending transaction event for providers that support it. 2017-12-29 20:41:16 -05:00
Richard Moore
2d4fb371c2 Added get functions to the contract event callbacks. 2017-12-29 20:17:00 -05:00
Richard Moore
9b54b53081 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-12-05 16:01:28 -05:00
Richard Moore
3512922bef Temporary - remove InfuraProvider homestead testcases; it is down. 2017-12-05 16:01:17 -05:00
Richard Moore
60334b66ba Updated dist files. 2017-12-05 03:25:08 -05:00
Richard Moore
d38bf992c2 Removing Node 8 for now in Travis CI; it is not working. 2017-12-05 02:36:33 -05:00
Richard Moore
ce95391804 Trying to unjam Travic CI build. 2017-12-05 02:33:04 -05:00
Richard Moore
511fff1390 Fixed message signing when the values are zero-padded. 2017-12-05 01:59:37 -05:00
Richard Moore
178980c34a Fixed address filtering and added more features to the event metadata. 2017-12-05 01:58:20 -05:00
Richard Moore
132e56e65e Added more provider log details. 2017-12-05 01:56:57 -05:00
Richard Moore
ff63e99c86 Updated dist files. 2017-12-02 02:52:36 -05:00
Richard Moore
a3fab18a93 Version bump (patch) for contracts. 2017-12-01 22:26:58 -05:00
Richard Moore
a9cc1bf641 Version bump (patch) for providers. 2017-12-01 22:26:12 -05:00
Richard Moore
fa4db2cecc Add binary message support for wallet.signMessage (#80). 2017-12-01 22:25:19 -05:00
Richard Moore
ca249054e5 If a block does not exist, return null (instead of rejecting). 2017-12-01 21:59:26 -05:00
Richard Moore
f6ace914e9 Allow contract overrides for nonce. 2017-12-01 21:58:36 -05:00
Richard Moore
1d38633e69 Updated dist files. 2017-11-23 03:49:36 -05:00
Richard Moore
8129f0cb8b Added tightly packed (aka non-standard packed) Solidity hash functions. 2017-11-23 02:11:08 -05:00
Richard Moore
b06002a2a8 Support for negative hexidecimal BigNumber. 2017-11-23 01:37:58 -05:00
Richard Moore
464584265a Merge pull request #76 from andrew--r/patch-1
Fixed error for incorrect private key.
2017-11-22 02:55:26 -05:00
Andrew Romanov
184839a57a Fix typo 2017-11-22 08:46:49 +03:00
Richard Moore
3ed66f5c16 Updated dist files. 2017-11-21 21:28:58 -05:00
Richard Moore
0d106d01af Added names for nested tuples and fixed topics (now optional) for event parsing. 2017-11-21 19:24:44 -05:00
Richard Moore
807c8133ea Fixed getTransaction to address and raw computation for providers that do not include it. 2017-11-21 19:05:34 -05:00
Richard Moore
f6cc207ae5 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-20 01:41:15 -05:00
Richard Moore
388a77258e Updated dist files. 2017-11-20 01:41:01 -05:00
Richard Moore
424abc3395 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-19 22:26:41 -05:00
Richard Moore
83b5e4b4a3 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-19 22:26:14 -05:00
Richard Moore
03c10086e7 Expose BigNumber object for TypeScript. 2017-11-19 22:25:41 -05:00
Richard Moore
dae3a5b8b1 Updated dist files. 2017-11-18 18:58:53 -05:00
Richard Moore
67a29eb92e Etherscan is back up; re-adding the test cases. 2017-11-18 18:01:02 -05:00
Richard Moore
5a837e1b0a Fixed some weird cases for TestRPC and getTransaction. 2017-11-18 18:00:36 -05:00
Richard Moore
a1f2c84d03 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-17 14:59:44 -05:00
Richard Moore
628c99936e Added test cases for legacy parameters. 2017-11-17 14:59:42 -05:00
Richard Moore
e8b23c29a5 Fixed for PoA networks getTransactionReceipt (#69). 2017-11-17 14:55:14 -05:00
Richard Moore
6e19e6eca9 Updated dist files. 2017-11-12 16:39:41 -05:00
Richard Moore
ef71271db6 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-12 16:02:17 -05:00
Richard Moore
11f0434bdd Fixed legacy parameters for Providers and added test cases. 2017-11-12 16:02:07 -05:00
Richard Moore
46ff8e891e Updated dist files for umbrella package. 2017-11-09 19:54:28 -05:00
Richard Moore
4df288e244 Removed shims from PhantomJS tests. 2017-11-09 03:14:48 -05:00
Richard Moore
a9bc2b5ea8 Fixed slice for limited environments in HD and PBKDF2. 2017-11-08 22:38:11 -05:00
Richard Moore
d49beb8374 Added connect method and fixed missing provider/signer error. 2017-11-08 21:13:06 -05:00
Richard Moore
f88b3523c0 Version bump (patch) for provider. 2017-11-08 21:08:27 -05:00
Richard Moore
04f0a33489 Added slice and missing Math libraries for limited environments. 2017-11-08 20:19:41 -05:00
Richard Moore
b4bc01f2c3 Merge pull request #63 from ConnorGutman/patch-1
Remove double declaration of  transactionIndex for TransactionReceipt.
2017-11-08 19:04:11 -05:00
Connor Gutman
7eaf22f573 Remove double declaration of transactionIndex
This little guy nearly broke my react native app's production build by sneaking past me. 👋 Buh-bye 👋
2017-11-08 16:28:56 -07:00
Richard Moore
255b7e0a0f Version bump (patch) for utils. 2017-11-07 18:15:11 -05:00
Richard Moore
9adcbbb0fe Small README change. 2017-11-07 01:00:36 -05:00
Richard Moore
31b5650489 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-06 22:45:06 -05:00
Richard Moore
2e90718d6a Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-06 19:36:22 -05:00
Richard Moore
fe3ac0e94d Added ABI v2 coder to Interface (still experimental in Solidity though). 2017-11-06 19:35:18 -05:00
Richard Moore
50422b6060 Removing duplicate license. 2017-11-05 13:44:21 -05:00
Richard Moore
4351a3ac86 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-05 13:41:00 -05:00
Richard Moore
ccffc46f67 Added pow to BigNumber. 2017-11-05 13:40:54 -05:00
Richard Moore
e8bb624560 Adding default code of conduct
Adding the default code of conduct document.
2017-11-04 02:03:41 -05:00
Richard Moore
21c6fdce3a Creating license file in GitHub UI
Apparently GitHub doesn’t recognize license.txt, so adding license.
2017-11-03 14:53:11 -05:00
Richard Moore
18cd678b71 Version bump (patch) for providers. 2017-11-03 02:41:41 -05:00
Richard Moore
9cac6b06f5 Updated list of networks (legacy provider list). 2017-11-03 01:34:57 -05:00
Richard Moore
73ee7664a1 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-11-03 01:31:09 -05:00
Richard Moore
8835225655 Updated getTransactionReceipt for Byzantium. 2017-11-03 01:30:56 -05:00
Richard Moore
54c19dfb5a Fixed default network for providers (#51). 2017-10-28 17:00:59 -04:00
Richard Moore
e4c455bdb6 Less strict parsing for loose providers. 2017-10-27 17:03:26 -04:00
Richard Moore
3c9f6f6ab9 Merge branch 'master' of github.com:ethers-io/ethers.js 2017-10-27 01:16:10 -04:00
Richard Moore
fb65772dd6 Added sighash and signature the Interface function properties. 2017-10-27 00:24:59 -04:00
Richard Moore
aeec6d6d52 Added Rinkeby and Kovan support. 2017-10-25 19:59:54 -04:00
Richard Moore
9be0053d62 Exclude the slower node version when running PhantomJS. 2017-10-22 18:36:47 -04:00
Richard Moore
466fbcb8da Using exclude instead of include for Travis-CI. 2017-10-22 18:20:20 -04:00
Richard Moore
f43a03a151 Using matrix include and fix test bug. 2017-10-22 18:17:31 -04:00
Richard Moore
b3134642a2 Splitting PhantomJS testing out of node testing. 2017-10-22 18:05:44 -04:00
Richard Moore
4d00215098 Added all test cases for PhantomJS. 2017-10-22 17:56:01 -04:00
Richard Moore
6926e5f423 Fix for case-sensitive Gruntfile. 2017-10-22 17:51:30 -04:00
Richard Moore
a5e1f40c30 First attempt at PhantomJS test cases. 2017-10-22 17:47:17 -04:00
Richard Moore
857688f36c Fix in test-accounts for case-sensitive file systems. 2017-10-21 04:03:51 -04:00
Richard Moore
0ac2bfd1cf Travis-CI updates. 2017-10-21 04:01:00 -04:00
Richard Moore
0adedcab50 Updating root test script for travis-ci. 2017-10-21 03:36:55 -04:00
Richard Moore
74406cc0b7 Adding travis-ci. 2017-10-21 03:28:01 -04:00
Richard Moore
8754bb80e0 Fixed documentation link in readme. 2017-10-20 23:01:08 -04:00
Richard Moore
67ac227fec Updated readme with latest dist version in CDN (and added utf-8 charset). 2017-10-20 22:59:30 -04:00
Richard Moore
666210a061 Fixed link in readme to documentation. 2017-10-20 22:01:51 -04:00
Richard Moore
2403a98219 Moved documentation to its own repository (see the ethers-io/documentation repo). 2017-10-20 21:59:30 -04:00
Richard Moore
f140fa6017 Updated dist files and dist scripts. 2017-10-20 15:44:54 -04:00
Richard Moore
a5df551689 Version bump (patch) for utils. 2017-10-20 15:16:18 -04:00
Richard Moore
ea6177d19e Updating some links in utils README. 2017-10-20 15:14:14 -04:00
Richard Moore
5c776a83ff Removed chatty library (See issue #36). 2017-10-20 15:13:29 -04:00
Richard Moore
bdcdfdabec Added Etherscan URL for testcase. 2017-10-19 02:56:40 -04:00
Richard Moore
264a7da9f7 Added some comparison test cases against ethereumjs-abi. 2017-10-19 02:55:38 -04:00
Richard Moore
f5f2bf85c5 Added message signing to Wallet. 2017-10-19 02:52:55 -04:00
Richard Moore
cb7e40a892 Updated to most recent stable web3 and ethereum lib. 2017-10-19 02:51:43 -04:00
Richard Moore
121d104d46 Removed old nodeunit test cases. 2017-10-19 02:51:20 -04:00
Richard Moore
44729ffba9 Migrated most test cases to mocha and added pre-generated gzipped test suite. 2017-10-18 21:28:45 -04:00
Richard Moore
4a3d68eada Version bump (patch). 2017-10-17 16:09:43 -04:00
Richard Moore
afb35ec307 Fixed Provider.lookup to support any address format. 2017-10-17 16:07:32 -04:00
Richard Moore
bbd3c94ec3 Added id to utils. 2017-10-17 16:05:44 -04:00
Richard Moore
394761a6ca Added ENS reverse lookup to provider. 2017-10-03 19:37:06 -04:00
Richard Moore
c566f00567 Updated dist files. 2017-07-05 20:39:03 -04:00
Richard Moore
03b967c99a Version bump (patch) for wallet. 2017-07-05 20:34:21 -04:00
Richard Moore
966267edf9 Version bump (patch) for providers. 2017-07-05 20:32:16 -04:00
Richard Moore
a53595eea5 Version bump (patch) for utils. 2017-07-05 20:31:13 -04:00
Richard Moore
eec9799706 Updated dist files. 2017-07-05 20:30:28 -04:00
Richard Moore
811710c8f0 Updated provider for picky JSON-RPC nodes. 2017-07-05 20:26:03 -04:00
Richard Moore
1c0d0157ad Add gt to big numbers. 2017-06-30 14:38:48 -04:00
Richard Moore
b4d622b02b Do not allow (non-hex-prefixed) strings to be treated as arrayish. 2017-06-30 14:38:27 -04:00
ricmoo
1b3b117b06 Fixed secret storage for bad passwords. 2017-05-29 23:08:47 -05:00
ricmoo
33ca1fc670 Version bump (patch). 2017-05-28 15:48:58 -05:00
ricmoo
91f9a47afa Added support for PBKD2 encrypted wallets (which Parity uses). 2017-05-28 15:46:57 -05:00
ricmoo
70f10cd23e Version bump (patch); updated dist files. 2017-05-21 20:39:16 -04:00
ricmoo
0a52beb539 Updated dist files. 2017-05-21 20:38:41 -04:00
ricmoo
0d36f839c3 Updated documents to include ENS. 2017-05-21 20:37:29 -04:00
ricmoo
c815166eb5 Added ENS null resolving cases. 2017-05-21 20:34:45 -04:00
ricmoo
9616720abb Version bump (minor); ENS support. 2017-05-21 20:31:37 -04:00
ricmoo
01f909fc05 Fixed getLogs bug. 2017-05-21 20:29:09 -04:00
ricmoo
b69d3de3e3 Contract is now ENS ready. 2017-05-21 20:27:47 -04:00
ricmoo
7b1856aacb Added name resolve test cases (need more though). 2017-05-21 18:09:17 -04:00
ricmoo
d5402d017a Allow getLogs filter to include ENS names. 2017-05-21 18:01:23 -04:00
ricmoo
c59414b74b Added ENS name support to Provider and Wallet. 2017-05-20 15:42:16 -04:00
ricmoo
0aee62df4d Updated dist and added donation address to readme. 2017-05-10 19:09:58 -04:00
ricmoo
1531793084 Fixed getDeployTransaction with ABI objects and added support for indexed parameters in event logs. 2017-05-09 21:48:56 -04:00
ricmoo
4b41c0e1a2 Added resetEventsBlock feature and fixed a problem with some INFURA nodes. 2017-05-09 21:45:36 -04:00
ricmoo
12eb60d2f7 Fixed createRandom when no options are passed in. 2017-05-09 18:53:32 -04:00
ricmoo
00b628c6cc Changed filenames of namehash test cases. 2017-05-08 16:14:55 -04:00
ricmoo
9e80c55275 Fixed up testcases for namehash. 2017-05-08 16:13:01 -04:00
ricmoo
301d803fc5 Version bump (patch) for namehash. 2017-05-08 12:14:56 -04:00
ricmoo
a07dfa9572 Added ENS test generation script. 2017-05-03 20:25:04 -04:00
ricmoo
b528131937 Added namehash to utils. 2017-05-03 20:24:07 -04:00
ricmoo
169347d0c4 Version bump (patch). 2017-04-22 11:58:43 -04:00
ricmoo
e4dcec7de7 Updating dist package for updated EtherscanProvider. 2017-04-22 11:57:39 -04:00
ricmoo
4407c7a4e1 Updated to new Etherscan URL. 2017-04-22 11:46:04 -04:00
ricmoo
cafd16b960 Updted etherscan provider (they changed their URL). 2017-04-22 11:43:32 -04:00
ricmoo
3d56251d15 Added npmignore to thin down the umbrella package. 2017-04-06 14:13:22 -04:00
ricmoo
a90ab3dbb1 Removed old file. 2017-04-06 14:10:32 -04:00
ricmoo
c137f5fe9f Version bump (patch) for Issue#15; browser-random-bytes using undefined utils. 2017-04-06 13:50:02 -04:00
Richard Moore
f7bdaadd7e Merge pull request #15 from slavik0329/master
Fixed call to defineProperty.
2017-04-06 13:48:16 -04:00
Steve Dakh
36a5b13a0c Fixed call to defineProperty 2017-04-06 13:39:21 -04:00
ricmoo
42f4ff398c Remove old hdnode (now part of Wallet). 2017-04-05 17:19:13 -04:00
ricmoo
d65a1f120e Updated test location (test files are too big to include in dist). 2017-04-05 17:14:57 -04:00
ricmoo
ef2be2e86d Updated wallet tool to use new library. 2017-04-05 17:14:09 -04:00
ricmoo
14841641c1 Updated gitignore. 2017-04-05 17:13:26 -04:00
ricmoo
cde70b1494 Updated documentation. 2017-04-05 17:06:11 -04:00
ricmoo
79a7f3dd64 Updated umbrella README. 2017-04-05 16:56:41 -04:00
ricmoo
ef2f0add35 Moved to using npm versions of packages in umbrella package. 2017-04-05 16:53:29 -04:00
ricmoo
2ff0b10084 Added repo ro package.json. 2017-04-05 16:43:57 -04:00
ricmoo
40634da90b Added basic README for npm. 2017-04-05 16:43:34 -04:00
ricmoo
afea5e81f9 Added repo to package.json 2017-04-05 16:35:53 -04:00
ricmoo
29cc0795b4 Fixed cross-package isBigNumber. 2017-04-05 16:33:37 -04:00
ricmoo
f77d5ff909 Added repo to package.json. 2017-04-05 16:27:06 -04:00
ricmoo
88b48738cc Added basic README for npm. 2017-04-05 16:26:39 -04:00
ricmoo
617f7a1ce6 Version bump (patch) to include new readme. 2017-04-05 16:10:06 -04:00
ricmoo
2ab382a355 Added basic readme for utils. 2017-04-05 16:09:33 -04:00
ricmoo
28f40287ce Adding repo to package.json. 2017-04-05 16:06:14 -04:00
ricmoo
7250e96850 Use most recent compatible version of ethers packages. 2017-04-04 18:55:36 -04:00
ricmoo
92bef64979 Removed HDNode dist files (moved to Wallet). 2017-04-04 18:54:46 -04:00
ricmoo
1c2d7c466e Updated dist packages. 2017-04-04 18:53:59 -04:00
ricmoo
85bce0582e Added HTML build of docs. 2017-04-04 18:48:34 -04:00
ricmoo
e746891ae0 Updated documentation. 2017-04-04 18:43:41 -04:00
ricmoo
9fa2c878b9 Updated to new version of etehreumjs-tx (for testing EIP155 support). 2017-04-04 18:32:35 -04:00
ricmoo
6c963f6404 Transactions are returned instead of hashes. 2017-04-04 18:32:00 -04:00
ricmoo
bb8f06c248 If raw is missing from a transaction, compute it. 2017-04-04 18:23:31 -04:00
ricmoo
cb9bfccb9a Moved HDNode into Wallet. 2017-04-04 17:50:50 -04:00
ricmoo
3069fa759b Contracts now return hex strings instead of arrays. 2017-04-04 17:40:25 -04:00
ricmoo
ecd9d31371 Renamed summonBrainWallet to fromBrainWallet. Removed crowdslae tests (they will be added again in the future). 2017-04-04 17:39:32 -04:00
ricmoo
6c0723bc43 Added testcase for nonce (which should be truncated). 2017-04-04 17:36:59 -04:00
ricmoo
dc4f2dcee7 Cleaned up umbrella index. 2017-04-04 17:35:34 -04:00
ricmoo
f772ce111e Renamed "execute" to "functions". Use signer estimateGas if possible. 2017-04-04 17:33:47 -04:00
ricmoo
d686374e05 Make safe integers into JavaScript numbers. Added more detail error messages. Prevent contracts from hijacking "functions" and "events". 2017-04-04 17:32:04 -04:00
ricmoo
73eef741b6 Small bug fixes and improved network ID population. 2017-04-04 17:30:17 -04:00
ricmoo
4075f330e2 Using Provider.inherits. 2017-04-04 17:28:25 -04:00
ricmoo
c10c3b937c Make fallback providers immutable. 2017-04-04 17:27:28 -04:00
ricmoo
8603c836e1 Cleaning up utils index. 2017-04-04 17:26:09 -04:00
ricmoo
27bdceaf32 Using throw-error to populate meaningful errors. 2017-04-04 17:22:53 -04:00
ricmoo
9672b9d3b8 Renamed rlp to RLP. 2017-04-04 17:21:59 -04:00
ricmoo
4f05bf87ac Fixed signing key recover when hex strings are passed in for r and s. 2017-04-04 17:19:55 -04:00
ricmoo
c88d796f0e Fixed progressCallback canel bug. Return transaction instead of transaction hash. Renamed rlp to RLP. 2017-04-04 17:19:18 -04:00
ricmoo
0b8cf42fcf Changed validMnemonic to isValidMnemonic. 2017-04-04 17:18:23 -04:00
ricmoo
807b27048b Added throw-error utility. 2017-04-04 17:06:49 -04:00
ricmoo
6a01b622a2 Updated a lot of the documentation. 2017-03-23 05:20:27 -04:00
ricmoo
7e61b6b730 Suppress too many levels of api-advanded in the toc. 2017-03-23 05:19:33 -04:00
ricmoo
156534e2ba Initial documentation (still lots to do). 2017-03-12 19:12:18 -04:00
ricmoo
5f650572ce Added sup override for dt. 2017-03-12 19:08:13 -04:00
ricmoo
9bed4096b8 Fixed contract-address bug (nonce was not zero-stripped). 2017-03-10 17:16:58 -05:00
ricmoo
b097e48efc Grunt file to produce browser test cases. 2017-03-08 01:55:02 -05:00
ricmoo
1a3aa4fd1a Added listener event for address balance changes. 2017-03-08 01:53:59 -05:00
ricmoo
83d099b37c Fixed constructor calls. 2017-03-08 01:52:53 -05:00
ricmoo
637a6d7f40 Better checks for trying to call contract methods with weird options. 2017-03-08 01:52:23 -05:00
ricmoo
78c4af5e4b Removed base option to toString. 2017-03-08 01:51:28 -05:00
ricmoo
730ccd36b2 Fixed fallback randomBytes for weak-crypto browsers.. 2017-03-08 01:51:04 -05:00
ricmoo
33a1459505 Re-org packages. 2017-03-08 01:50:12 -05:00
ricmoo
30cf4a1702 Moved wallet to separate file. 2017-03-08 01:49:05 -05:00
ricmoo
16529909f9 House cleaning. 2017-03-08 01:48:27 -05:00
ricmoo
adc1d93ac2 Added EIP155 support. 2017-03-08 01:47:29 -05:00
ricmoo
94ba940382 Moved hdnode to wallet. 2017-03-06 16:11:24 -05:00
ricmoo
cf83d92cc1 Fixing up browser test cases. 2017-03-01 15:56:49 -05:00
ricmoo
f6990b6e1f Changed name of local created test private keys. 2017-03-01 15:24:02 -05:00
ricmoo
da1526b92f Added dummy file to keep dist directory in tests. 2017-03-01 15:20:00 -05:00
ricmoo
4cd710f84e Added npm test to umbrella pacakge. 2017-03-01 15:18:54 -05:00
ricmoo
55833fcad0 Added Contract getDeployFunction. 2017-03-01 03:59:46 -05:00
ricmoo
f1d35ba18a Fixed to address bug and simplified code. 2017-03-01 02:36:14 -05:00
ricmoo
54685bd660 Fixed name bug (typo). 2017-03-01 02:34:52 -05:00
ricmoo
b0f0e8841e Moved to more flexible contract signers. 2017-03-01 02:34:18 -05:00
ricmoo
a073968597 Added constructor and simplified interface. 2017-03-01 02:33:29 -05:00
ricmoo
5ecba670a5 Moved to Provider provided inherits. 2017-03-01 02:31:11 -05:00
ricmoo
45c1108ca8 Added topic events and fixed bugs. 2017-03-01 02:30:37 -05:00
ricmoo
e115b2d8a8 Fixed call bug for strict JSON-RPC nodes. 2017-03-01 02:29:12 -05:00
ricmoo
cf20071189 Fixed empty response for getLogs and call bug. 2017-03-01 02:27:59 -05:00
ricmoo
b4b60b64aa Added provider test cases. 2017-03-01 02:26:50 -05:00
ricmoo
8111ef74b2 Refactored RLP coder a bit. 2017-02-28 20:50:53 -05:00
ricmoo
b4c498f088 Added TestContract.sol for testing contracts and providers. 2017-02-28 20:50:20 -05:00
ricmoo
8286c63ddc Gruntfile produces proper stand-alone files for browser. 2017-02-27 17:35:23 -05:00
ricmoo
7394e83eeb Added testcase name to failed test cases. 2017-02-27 17:29:23 -05:00
ricmoo
ebd9bbde2e Added browser test harness. 2017-02-27 01:51:27 -05:00
ricmoo
90f27da293 Fixed umbrella test harness. 2017-02-27 01:50:17 -05:00
ricmoo
7d11687f15 Updated hdnode API in test case. 2017-02-27 00:17:22 -05:00
ricmoo
3234f04b27 Added brainwallet test. 2017-02-27 00:17:01 -05:00
ricmoo
5c16c14fed Fixed filename typo. 2017-02-27 00:13:09 -05:00
ricmoo
6aca737405 Added contracts pacakge.json. 2017-02-27 00:10:19 -05:00
ricmoo
c884627e21 Added dist files. 2017-02-27 00:09:47 -05:00
ricmoo
8fa9b34e87 Added providers to umbrella package. 2017-02-27 00:09:07 -05:00
ricmoo
b1190e6e0b Optimized gruntfile (manually remove weird pulled in dependencies). 2017-02-27 00:08:48 -05:00
ricmoo
0c1615aef5 Custom pbkdf2 without create-hash and create-hmac. 2017-02-27 00:07:46 -05:00
ricmoo
e31f20e441 Added default url for JSON-RPC provider. 2017-02-27 00:06:32 -05:00
ricmoo
735e492f8c Cleaning up utils. 2017-02-27 00:05:39 -05:00
ricmoo
a107a7c3e2 Cleaning up hdnode. 2017-02-27 00:04:03 -05:00
ricmoo
b5f4d3b113 Cleaning up wallet. 2017-02-27 00:02:40 -05:00
ricmoo
005c0d2cdc Removed dead code. 2017-02-25 01:24:54 -05:00
ricmoo
0db4b352b6 Added split up providers. 2017-02-25 01:23:48 -05:00
ricmoo
0694a5db0e Added auto-running testcases. 2017-02-24 15:24:11 -05:00
ricmoo
73c7efffb0 Added wallet package.json. 2017-02-24 15:10:54 -05:00
ricmoo
729170ec97 Added split up contract. 2017-02-24 15:10:28 -05:00
ricmoo
2b0c40feb4 Added HDNode and BIP39 mnemonic phrases. 2017-02-24 14:59:05 -05:00
ricmoo
91543a0029 Split up utils. 2017-02-24 14:57:46 -05:00
ricmoo
9625745f4c Added new regression tests (based on pregenerated JSON files). 2017-02-24 14:56:55 -05:00
ricmoo
89c4c75e3c Scripts to run test cases. 2017-02-24 14:44:19 -05:00
ricmoo
6aceee8486 Added test case generation files. 2017-02-24 14:42:54 -05:00
ricmoo
26958d74d8 Moving test cases around; preparing to delete. 2017-02-24 14:41:24 -05:00
ricmoo
38d578a2c6 Migrating to a split up package; renaming files. 2017-02-24 14:32:44 -05:00
ricmoo
96aaed7395 Version bump (patch). 2017-02-02 17:06:44 -05:00
ricmoo
7027935ff7 Fixed failing contracts with fallback function. 2017-02-02 17:06:07 -05:00
ricmoo
5d692f4908 Some JSON-RPC clients do not allow call blockTag to be optional. 2017-01-27 16:24:53 -05:00
ricmoo
9def4a6170 Fix data bug for sendTransaction (was not incuded). 2017-01-27 15:49:15 -05:00
ricmoo
3a0d79b1e4 Just pulling in bn.js and hash.js libraries, instead of relying on the version pulled from elliptic. 2016-11-21 18:45:24 -05:00
ricmoo
048ef96ad0 Fixed package dependency issue when elliptic is already installed. 2016-11-21 18:20:36 -05:00
ricmoo
51f1fa50dd Expose the Interface and Contract objects. 2016-11-21 17:46:36 -05:00
ricmoo
d8a88c18d3 Added keyword arguments and proper result types for the Interface and Solidity parser. 2016-11-09 17:27:34 -05:00
ricmoo
db7cff9582 BN.js fixed nmask for us, so we use that now instead of our mask hack. 2016-11-09 16:39:33 -05:00
ricmoo
dc2583ddd8 Updating dist. 2016-10-05 00:12:15 +08:00
ricmoo
3be962f09d Made secret-storage more closely resemble geth. 2016-10-05 00:06:05 +08:00
ricmoo
736b08e016 Updated parseTransaction to format parameters more meaningfully. 2016-09-16 14:46:19 +08:00
ricmoo
d8013cae37 Added transaction parsing with address recovery. 2016-09-16 14:08:36 +08:00
ricmoo
b26b1b9c53 Moved getContractAddress to utils. 2016-08-23 22:06:26 -04:00
ricmoo
1c9c7b7a7d Refactored some internal libraries. 2016-08-23 20:24:18 -04:00
ricmoo
a9aaeefe24 Moved address functions to utils (things without need ofr signing do not need all the extra requires). 2016-08-23 20:12:12 -04:00
ricmoo
8257e3f885 Moved ether parsing/formatting into its own library. 2016-08-23 19:35:19 -04:00
ricmoo
965c987761 Updated docs for promise-based secret storage. 2016-08-15 23:27:10 -04:00
ricmoo
142e5276fe Moved encrypt, decrypt and brain wallet to use promises (which greatly improves nested progress callback, approx 4x performance). 2016-08-15 23:04:02 -04:00
ricmoo
351d1a2dad Added github repo to package.json. 2016-08-10 14:30:33 -04:00
ricmoo
72424ea2d2 Fixed typo in wallet demo. 2016-08-08 17:12:27 -04:00
ricmoo
1e703bfdb4 Version Bump (patch). 2016-08-08 14:34:55 -04:00
ricmoo
dee0a4bf3e Added raw private key and made homestead default network. 2016-08-08 00:18:01 -04:00
ricmoo
9c1d6051fb Fixed empty transaction field bug. 2016-08-07 15:18:42 -04:00
ricmoo
3c67736cbb Fixed randomish bug. 2016-08-07 15:17:53 -04:00
ricmoo
c697a5bc81 Version bump (patch). 2016-08-05 16:15:50 -04:00
ricmoo
0e9df5cb76 Fixed bug when passing in hex string to formatEther. 2016-08-05 16:14:09 -04:00
ricmoo
7a37dd6949 Added installing section and npm badge to docs. 2016-08-05 03:53:29 -04:00
ricmoo
cecefd416d Small changes to docs. 2016-08-05 03:40:31 -04:00
ricmoo
79f9047c21 Added wallet provider test. 2016-08-05 03:16:13 -04:00
ricmoo
f9f7469ccf Fixed variable masking issue in exaples in docs. 2016-08-05 03:06:36 -04:00
ricmoo
1e5933eb45 Fixed test cases that were being missed. 2016-08-05 03:04:17 -04:00
ricmoo
a4e1f531b7 Etherscan now supports estiateGas and getGasPrice (thanks Matt!). 2016-08-05 02:56:24 -04:00
ricmoo
0a38d14930 Updated dist. 2016-08-04 21:38:05 -04:00
ricmoo
4e7f2fa3d4 Allow wei to be passed in as a hex string. 2016-08-04 21:37:33 -04:00
ricmoo
4b99bb579c Fixed getContractAddress function 2016-08-04 21:37:15 -04:00
ricmoo
0b59519c19 Version bump (patch). 2016-08-04 20:29:55 -04:00
ricmoo
4d18119ccf Updated dist. 2016-08-04 20:29:20 -04:00
ricmoo
4af236d3ac Moved setImmediate shim to wallet. 2016-08-04 20:28:55 -04:00
ricmoo
eddb9c28a8 Moved setImmediate shim into wallet. 2016-08-04 20:27:21 -04:00
ricmoo
40a6fdd95e Removed web3 from splitter. 2016-08-04 20:12:50 -04:00
ricmoo
3f80001e4d On failed RPC, include original error and data. 2016-08-04 17:53:44 -04:00
ricmoo
89082164ce Version bump (patch). 2016-08-04 04:00:02 -04:00
ricmoo
9df7c2f37a Fixed etherscan production url. 2016-08-04 03:58:48 -04:00
ricmoo
840f510bf1 Added documentation note for why gas price is hard-coded. 2016-08-04 03:43:59 -04:00
ricmoo
1bd95b127b Added wallet example. 2016-08-04 03:21:49 -04:00
ricmoo
97154e49a6 Version bump (patch). 2016-08-04 03:20:37 -04:00
ricmoo
db757b5bbb Fixed wrong default gasLimit bug and clearing provider. 2016-08-04 03:20:01 -04:00
ricmoo
af62f54042 Added etherscan example to docs. 2016-08-03 19:41:46 -04:00
ricmoo
1b0dc18bdc Abstracted providers and added etherscan provider. 2016-08-03 19:36:44 -04:00
ricmoo
1db36b3132 Version bump (patch). 2016-08-03 02:27:56 -04:00
ricmoo
805879a213 Refactored provider to parse the response. 2016-08-03 02:26:36 -04:00
ricmoo
e1157f3a4c Updated documentation with Provider API and related methods. 2016-08-02 17:49:11 -04:00
ricmoo
46e0866410 Updated dist. 2016-08-02 17:46:38 -04:00
ricmoo
621c1ee74e Removed duplicate functions. 2016-08-02 17:46:20 -04:00
ricmoo
b3f9070b39 Added full provider API including estimate proxy. 2016-08-02 17:43:18 -04:00
ricmoo
14b15dcf5a Added provider standard methods. 2016-08-02 17:41:28 -04:00
ricmoo
e4c62d2939 Updated test info in the docs. 2016-08-02 01:12:04 -04:00
ricmoo
b50c0bd615 Added license file. 2016-08-02 01:11:43 -04:00
ricmoo
e55ee253ab Cleaned up solidity test cases. 2016-08-01 20:09:34 -04:00
ricmoo
f81fa6e4f5 Version bump (patch; still very beta). 2016-08-01 20:06:54 -04:00
ricmoo
4785c650f3 Upgraded some packages. 2016-08-01 19:39:54 -04:00
ricmoo
be99fa858e Removed debug logging. 2016-08-01 19:39:40 -04:00
ricmoo
196d4f6659 Fixed docs. at bit 2016-08-01 19:34:03 -04:00
ricmoo
1233233c6c Removed debugging logging. 2016-08-01 19:33:21 -04:00
ricmoo
742bcc753f Added brainwallet test case. 2016-08-01 19:32:57 -04:00
ricmoo
839c2a10aa Added summonBrainWallet function. 2016-08-01 19:25:18 -04:00
ricmoo
b298d41c22 Added dependencies for test cases. 2016-08-01 18:37:04 -04:00
ricmoo
c70a9f61cb Added some more info to contract tests that require RPC running. 2016-08-01 18:36:33 -04:00
ricmoo
6440d8e69d Allow running individual unit tests. 2016-08-01 18:34:12 -04:00
ricmoo
97dcd4d450 Fixed testcase generation for soidity parameter encoding/decoding. 2016-08-01 18:31:51 -04:00
ricmoo
b8d4514dd0 Fixed contract interface decoding numbers. 2016-08-01 18:26:12 -04:00
ricmoo
0ceee56de3 Fixed contract interface coder for numbers. 2016-08-01 17:57:00 -04:00
ricmoo
024cc1806f Re-ordered some parameters, fixed typo. 2016-08-01 14:14:53 -04:00
ricmoo
5e421d2636 Added ether string parsing and formatting. 2016-07-29 20:06:58 -04:00
ricmoo
f71ea72d54 Added https proxy for splitter demo. 2016-07-29 15:40:15 -04:00
ricmoo
d65379f6c4 Added splitter demo app. 2016-07-29 04:46:59 -04:00
ricmoo
06281e85c4 Fixed RPC method calls. 2016-07-29 04:45:46 -04:00
ricmoo
5dc2621a32 Fixed type in randomish. 2016-07-27 03:09:11 -04:00
ricmoo
c024f88ce1 Updated dist to inlcude randomish. 2016-07-27 03:03:14 -04:00
ricmoo
b5e6ac7db9 Varialbe name changes. 2016-07-27 03:02:30 -04:00
ricmoo
60732f8243 Added gitignore. 2016-07-27 03:01:52 -04:00
ricmoo
4a557349a3 Added testcase for encrypting a wallet. 2016-07-27 03:01:37 -04:00
ricmoo
5bf0c310d3 Added randomish library. 2016-07-27 02:53:40 -04:00
ricmoo
99ec103e97 Removed some debugging info. 2016-07-27 02:52:21 -04:00
ricmoo
829505d548 Split up test cases. 2016-07-26 17:58:17 -04:00
ricmoo
5c9ee7f2a5 Added beginning of RPC providers. 2016-07-26 17:57:11 -04:00
ricmoo
fa0d54966d Added use strict to all files. 2016-07-25 03:55:16 -04:00
ricmoo
401dd5162d Updated dist and version bump. 2016-07-23 03:29:31 -04:00
ricmoo
2dee42449a Updated testcases to include secret storage. 2016-07-23 03:28:19 -04:00
ricmoo
224e8aff07 Allow signing key to be passed into wallet and expose private key. 2016-07-23 03:27:56 -04:00
ricmoo
b5710cd710 Added Secret Storage JSON Wallet support. 2016-07-23 03:27:14 -04:00
ricmoo
8033a8f94c Fixed double-0x bug in Interface. 2016-07-22 14:49:26 -04:00
ricmoo
4bcef804b6 Updated testcases. 2016-07-22 14:49:03 -04:00
ricmoo
66a5b0ecdc Expose private key in a signing key. 2016-07-22 02:43:19 -04:00
ricmoo
2605e7de40 Moved to proper tet framework. 2016-07-22 02:43:03 -04:00
ricmoo
f50f171223 Reuse existing functions. 2016-07-21 17:07:40 -04:00
ricmoo
7626b541f5 Refactor. 2016-07-21 17:06:42 -04:00
ricmoo
24c7fc533a Refactored wallet and utilities. 2016-07-21 17:03:32 -04:00
ricmoo
21fdfe9581 Moved all Contract code to lib/contract.js. 2016-07-21 04:21:44 -04:00
ricmoo
ca8ee1c0e3 Updated documentation. 2016-07-21 04:20:31 -04:00
ricmoo
0980b864fa Added start of contract ABI library. 2016-07-20 18:06:03 -04:00
ricmoo
d0a822f02a Added isHexString and sha256 to utils. 2016-07-20 18:03:46 -04:00
ricmoo
4dbce955ee Added sha256 to utils. 2016-07-20 18:03:05 -04:00
ricmoo
6b18675274 Added basic documentation. 2016-07-16 00:34:40 -04:00
ricmoo
907e65a359 Moved ethereumjs libs to devDependencies since they are only used for testing. 2016-07-16 00:34:21 -04:00
ricmoo
723a4a910c Basic contract calls. 2016-07-16 00:33:04 -04:00
ricmoo
89a6fac231 Added contract support. 2016-07-15 23:47:35 -04:00
ricmoo
9a309ed7b7 Do not re-require elliptic for secp256k1. 2016-07-14 20:58:26 -04:00
ricmoo
d10aa35dab Initial code drop. 2016-07-14 13:43:15 -04:00
371 changed files with 4743 additions and 5733 deletions

View File

@@ -3,7 +3,7 @@ name: Node.js CI
on:
push:
branches:
- ethers-v5-beta
- master
jobs:
test-node:

View File

@@ -3,521 +3,34 @@ Changelog
This change log is managed by `scripts/cmds/update-versions` but may be manually updated.
ethers/v5.0.0-beta.192 (2020-06-12 04:51)
-----------------------------------------
ethers/v5.0.3 (2020-06-29 00:50)
--------------------------------
- Support nonpayable Solidity modifier in ABI. ([adc8d3d](https://github.com/ethers-io/ethers.js/commit/adc8d3d9aec2f5ee8e207f8bc77d99052e473d16))
- More debug information in timeout and fetch errors. ([#678](https://github.com/ethers-io/ethers.js/issues/678); [693094e](https://github.com/ethers-io/ethers.js/commit/693094e97ce4f0dc0cd49b9cf6b1557bd7dc517d))
- Use URL parse instead of constructor for react compatibility. ([#874](https://github.com/ethers-io/ethers.js/issues/874); [5e7d28b](https://github.com/ethers-io/ethers.js/commit/5e7d28b19b18aa1bbb4b851f74f6d7865725be02))
- Fixed typo in error string. ([7fe702d](https://github.com/ethers-io/ethers.js/commit/7fe702d59b0b81d2812e407b99a1e98e0e18ba03))
- Updated elliptic package to address possible malleability issue; which should not affect Ethereum. ([9e14345](https://github.com/ethers-io/ethers.js/commit/9e1434503e2a0280e9918c4eadb4d972b062b3b0))
- Fixed FixedNumber unguarded constructor and added isZero. ([#898](https://github.com/ethers-io/ethers.js/issues/898); [08c74e9](https://github.com/ethers-io/ethers.js/commit/08c74e9a132f37ab8cc3fb5dab3bd1fd708ee702))
- Added StaticJsonRpcProvider for reducing calls to chainId in certain cases. ([#901](https://github.com/ethers-io/ethers.js/issues/901); [c53864d](https://github.com/ethers-io/ethers.js/commit/c53864de0af55dd8ec8ca5681e78da380d85250a))
- Allow getDefaultProvider to accept a URL as a network. ([8c1ff4c](https://github.com/ethers-io/ethers.js/commit/8c1ff4c862b8cecb04c98d71910870e0b73867a0))
- Make network an optional parameter to WebSocketProvider. ([987b535](https://github.com/ethers-io/ethers.js/commit/987b5354cc18ed41620c43910ac163f358d91b5d))
- Removed deprecated errors package. ([f9e9347](https://github.com/ethers-io/ethers.js/commit/f9e9347e69133354c3d65c1f47475ddac8a793cf))
- Updated badges in docs. ([d00362e](https://github.com/ethers-io/ethers.js/commit/d00362eb706cfbf9911611e8d934260061cfbbd2))
- Create security policy. Create security policy. ([88e6849](https://github.com/ethers-io/ethers.js/commit/88e68495b67d9268ee66362b08c9b691d03ab58a))
ethers/v5.0.0-beta.191 (2020-06-03 03:41)
-----------------------------------------
ethers/v5.0.2 (2020-06-13 21:36)
--------------------------------
- Allow undefined properties in transaction object and fix stray this. ([#860](https://github.com/ethers-io/ethers.js/issues/860); [98bb589](https://github.com/ethers-io/ethers.js/commit/98bb58964bec7dff0ccf481d474354ec1ca6f376), [d2406c4](https://github.com/ethers-io/ethers.js/commit/d2406c42a18c123205918eb46bf24de0ff97ee23))
- Allow JsonRpcSigner to override from if it matches Signer. ([#862](https://github.com/ethers-io/ethers.js/issues/862); [1a89c59](https://github.com/ethers-io/ethers.js/commit/1a89c591c26a7fcc2031d0df90137d8a096c5c01))
- Added initial support for spontaneous network changes. ([#495](https://github.com/ethers-io/ethers.js/issues/495), [#861](https://github.com/ethers-io/ethers.js/issues/861); [2bc7bb6](https://github.com/ethers-io/ethers.js/commit/2bc7bb6e61219a40cfe2acd95c115c2195c21223), [d2ca4fb](https://github.com/ethers-io/ethers.js/commit/d2ca4fb443b2653063ca5aa349b52ecd0ff79e2f))
- Allow provider.ready to stall until the network is available. ([#882](https://github.com/ethers-io/ethers.js/issues/882); [bbb4f40](https://github.com/ethers-io/ethers.js/commit/bbb4f407b34782c36ff93fa528e3b9f793987d4a))
- Reduce dependencies to squash security issues. ([738d349](https://github.com/ethers-io/ethers.js/commit/738d34969d7c2184242b92f78228ba6a8aed1f3a))
- Updated admin scripts for publishing prod releases. ([e0e0dbe](https://github.com/ethers-io/ethers.js/commit/e0e0dbef1830572c465670b826a7aa2b403ad2e8))
ethers/v5.0.0-beta.190 (2020-06-01 05:02)
-----------------------------------------
ethers/v5.0.1 (2020-06-12 23:09)
--------------------------------
- Re-enable tests removed to fix slow CI. ([cd7a0b3](https://github.com/ethers-io/ethers.js/commit/cd7a0b36cd77df5d5951a97cdb6b6be1c9387f51))
- Major Contract refactor for overrides. ([#819](https://github.com/ethers-io/ethers.js/issues/819), [#845](https://github.com/ethers-io/ethers.js/issues/845), [#847](https://github.com/ethers-io/ethers.js/issues/847), [#860](https://github.com/ethers-io/ethers.js/issues/860); [42dee67](https://github.com/ethers-io/ethers.js/commit/42dee67187adb04d0b88f420b24cb3e73301d609))
- Remove legacy Circle CI tasks. ([c445232](https://github.com/ethers-io/ethers.js/commit/c445232980007d3474bc036ff59fb37638f93820))
- Fixing GitHub actions. ([#853](https://github.com/ethers-io/ethers.js/issues/853); [6b8f0f3](https://github.com/ethers-io/ethers.js/commit/6b8f0f3cb38295cd5d693f9b71f629b591206f1e))
- Fixed embedded package version strings. ([5a69e9c](https://github.com/ethers-io/ethers.js/commit/5a69e9caa882aa5f1b44c4453d67cde43254eafe))
ethers/v5.0.0-beta.189 (2020-05-29 21:25)
-----------------------------------------
ethers/v5.0.0 (2020-06-12 19:58)
--------------------------------
- Simplify typing for properties module. ([41e66ab](https://github.com/ethers-io/ethers.js/commit/41e66ab834e9835807481658a7956207edfef3d7))
- Refactor Contract away from monolithic runMethod. ([e5a1b4d](https://github.com/ethers-io/ethers.js/commit/e5a1b4d5cbbaa0a8ce64c72e13d0d12fa2b856e3))
- Correctly set last emitted block for WebSocketProvider. ([#856](https://github.com/ethers-io/ethers.js/issues/856); [1b0ad5a](https://github.com/ethers-io/ethers.js/commit/1b0ad5aa69327f80c7814069142965914673dc06))
- Fixed delayed network detection attempting to overwrite read-only value. ([#854](https://github.com/ethers-io/ethers.js/issues/854); [8efd8d2](https://github.com/ethers-io/ethers.js/commit/8efd8d203158ebdef040ec759c3b423312a86e7c))
- Better WebSocket compatibilities with Parity. ([#849](https://github.com/ethers-io/ethers.js/issues/849); [180a1af](https://github.com/ethers-io/ethers.js/commit/180a1aff3adc5b4af3a1349b52666ca5942c92a2))
ethers/v5.0.0-beta.188 (2020-05-21 00:02)
-----------------------------------------
- Make filter blockHash property name match EIP-234. ([b03c4ed](https://github.com/ethers-io/ethers.js/commit/b03c4edd31a1929b411d0559d17eee7e3d6b11c8), [ed29fac](https://github.com/ethers-io/ethers.js/commit/ed29fac376c1a0aa210bf75979bb2ab62d0cf46b))
- Fixed FallbackProvider sync-stalling for backends. ([#841](https://github.com/ethers-io/ethers.js/issues/841); [f963589](https://github.com/ethers-io/ethers.js/commit/f96358940043123aa7a8fe97a1af7af293ce9740))
- Add correct tag to release on publish. ([#828](https://github.com/ethers-io/ethers.js/issues/828); [8516076](https://github.com/ethers-io/ethers.js/commit/85160766cdcd031f226382901ebadee9d7f40200))
ethers/v5.0.0-beta.187 (2020-05-12 23:29)
-----------------------------------------
- Add sub-error to gas estimate error for Ganache users. ([#829](https://github.com/ethers-io/ethers.js/issues/829); [647fbd8](https://github.com/ethers-io/ethers.js/commit/647fbd8cbfa0f94f72db6faadd528e61c49b1dd6))
- Moved ABI check for unique names to coding time and only if ambiguous. ([#816](https://github.com/ethers-io/ethers.js/issues/816); [fa87417](https://github.com/ethers-io/ethers.js/commit/fa87417e9416d99a37d9a2668a1e54feb7e342fc))
- Added missing Interface exports to umbrella utils. ([82a9326](https://github.com/ethers-io/ethers.js/commit/82a93263fae330ae39a7212e74d973fa9f820f64))
- Fixed FallbackProvider ESM super-this out-of-order issue. ([#822](https://github.com/ethers-io/ethers.js/issues/822); [fde102b](https://github.com/ethers-io/ethers.js/commit/fde102b7eda304403dcc677cd6d3b48339cd3a81))
- Fixed node hanging on unnecessary timeout when fetchJson fails. ([fdf2253](https://github.com/ethers-io/ethers.js/commit/fdf2253218cf379043acc32dea8c95c284a82cec))
ethers/v5.0.0-beta.186 (2020-05-08 15:27)
-----------------------------------------
- Fix JsonRpcProvider out-of-order super call. ([#822](https://github.com/ethers-io/ethers.js/issues/822); [963197d](https://github.com/ethers-io/ethers.js/commit/963197d70c96e5970b431173c2cc782cb496674c))
ethers/v5.0.0-beta.185 (2020-05-04 22:54)
-----------------------------------------
- More robust FallbackProvider on clean exits. ([8eeda23](https://github.com/ethers-io/ethers.js/commit/8eeda23e989fcb0126bd20b17c67f62466d19259))
- Safer test suite reporter timer. ([657a039](https://github.com/ethers-io/ethers.js/commit/657a0394f56b51a13c691477c2b0dcf74678fd7c))
- Added goerli to AlchemyProvider tests. ([ab7c781](https://github.com/ethers-io/ethers.js/commit/ab7c78118ab80990a3e3368749599a1cf6e9d4ae))
- Added more robust poll event to Provider. ([dc48bfb](https://github.com/ethers-io/ethers.js/commit/dc48bfb7adb9334848c93173ba2c634f22a9a72f))
- Added goerli to AlchemyProvider. ([86670eb](https://github.com/ethers-io/ethers.js/commit/86670eb80e96fc4ba4e3664c9389f8130bbfea73))
- Removed Cloudflare from test suite; it is down again. ([17dc022](https://github.com/ethers-io/ethers.js/commit/17dc022603afdfe4147638ab4b2704bcef09533f))
- Prevent forceOutput in test reporter from crashing. ([cafd344](https://github.com/ethers-io/ethers.js/commit/cafd34460b194d78092021f1d7e0307130340b68))
- Stall FallbackProvider backends from requests if not in-sync. ([fa6904f](https://github.com/ethers-io/ethers.js/commit/fa6904fef35e7ab888221f3a0613bfe7e6df3594))
- Allow providers to detect their network after instantiation. ([#814](https://github.com/ethers-io/ethers.js/issues/814); [99ae946](https://github.com/ethers-io/ethers.js/commit/99ae946476a317a9d89e5d8f57cf37f8680bfa2b))
- Better messaging on low-level network errors. ([#814](https://github.com/ethers-io/ethers.js/issues/814); [0e3a66c](https://github.com/ethers-io/ethers.js/commit/0e3a66c82959a08f3f4e4ffbca3ae3792ff2548f))
- Manage FallbackProvider stalling without unref. ([#815](https://github.com/ethers-io/ethers.js/issues/815); [7b1a7c7](https://github.com/ethers-io/ethers.js/commit/7b1a7c7f31a3631e12c2a341b562983360e670e9))
- Only error on duplicate signatures in Contract ABI. ([#499](https://github.com/ethers-io/ethers.js/issues/499); [098d7ef](https://github.com/ethers-io/ethers.js/commit/098d7efb21bd648c2660342297d2419904a10925))
- Added getWebSocketProvider static method to InfuraProvider. ([a6c1174](https://github.com/ethers-io/ethers.js/commit/a6c1174dffe6dca1a3a64d1d472cec6e12372117))
- Fix WebSocketProvider responses when message result is null. ([#813](https://github.com/ethers-io/ethers.js/issues/813); [472e5b0](https://github.com/ethers-io/ethers.js/commit/472e5b07eab180baa12185c8f00e5079ce4c671f))
- Allow modifiers on Human-Readable ABI for tuples and arrays. ([83fba3d](https://github.com/ethers-io/ethers.js/commit/83fba3de25b524cc48975b1952f4319d63874205))
- Added initial renew support to ENS CLI. ([54dfb75](https://github.com/ethers-io/ethers.js/commit/54dfb757c4c88e4bcada1890c4016fadfb25581a))
- Allow contract filters to include OR-ed values. ([#437](https://github.com/ethers-io/ethers.js/issues/437); [28800d7](https://github.com/ethers-io/ethers.js/commit/28800d7681f3bab08f6d30a22f0813e04feee18a))
ethers/v5.0.0-beta.184 (2020-04-28 04:58)
-----------------------------------------
- Removed old EIP-1193 experimental provider; it can now be supported by Web3Provider as EIP-1193 is now backwards compatible. ([84c68ac](https://github.com/ethers-io/ethers.js/commit/84c68ac5c17b10897ade966d6c8fac1f1f66a4af))
- Fixed getLogs filter deserialization. ([#805](https://github.com/ethers-io/ethers.js/issues/805); [393c0c7](https://github.com/ethers-io/ethers.js/commit/393c0c74a91175adca2e25026dcdb9e6445afd8f))
- Added EIP-1193 support to Web3Provider. ([56af441](https://github.com/ethers-io/ethers.js/commit/56af4413b1dd1787db68985e0b612b63d86fdf7c))
- Minor typing-detected fixes. ([d1f3a42](https://github.com/ethers-io/ethers.js/commit/d1f3a42c119d5588eab667ec7bb6e71042cfb656))
- Added initial support for recoverable coding erros. ([#800](https://github.com/ethers-io/ethers.js/issues/800); [bda6623](https://github.com/ethers-io/ethers.js/commit/bda66230916e58e25a522e8430ce4de25091eb6b))
- More draconian Typing. ([14e6811](https://github.com/ethers-io/ethers.js/commit/14e6811bf7d7c38a3b5714dededcc883c185d814))
- Omit HID libraries for hardware-wallets package on unsupported environments. ([#798](https://github.com/ethers-io/ethers.js/issues/798); [2e24920](https://github.com/ethers-io/ethers.js/commit/2e24920d028d42908d0764ad4ca0b56b55f852d1), [5aefb43](https://github.com/ethers-io/ethers.js/commit/5aefb4303d2fdda62e7e5ddb644919f613d6016a))
- Make default constructor non-payable. ([#684](https://github.com/ethers-io/ethers.js/issues/684); [017ea0d](https://github.com/ethers-io/ethers.js/commit/017ea0d6bd22833e9d399ae6b818443786f17884))
ethers/v5.0.0-beta.183 (2020-04-23 23:28)
-----------------------------------------
- Fixed inconsistent log format in WebSocketProvider. ([#795](https://github.com/ethers-io/ethers.js/issues/795); [8e7751f](https://github.com/ethers-io/ethers.js/commit/8e7751f7dfb41e58f81c7918cf36c152c3209ae2))
- Added WebSocketProvider support for ENS names in filters. ([6707754](https://github.com/ethers-io/ethers.js/commit/6707754580490c5a801d6205af0841794d20b3c9))
- Fixed provider filtering by ENS name. ([aeeb75f](https://github.com/ethers-io/ethers.js/commit/aeeb75f74c3be11b9b3b2925fd73349070542e54))
- Fixed ContractFactory.deploy ignoring overrides. ([#796](https://github.com/ethers-io/ethers.js/issues/796); [8bb2a0f](https://github.com/ethers-io/ethers.js/commit/8bb2a0fd08f6f128a80444e3fd90c29e4cd7edfb))
- Fix median calculation for large block number deltas across FallbackProvider backends. ([fca5ccb](https://github.com/ethers-io/ethers.js/commit/fca5ccbc2052569e700a96dbb1de1c9cef7c966f))
- Work-around for Cloudflare not offering eth_blockNumber. ([8cf4b3c](https://github.com/ethers-io/ethers.js/commit/8cf4b3cf4598f4f3643d5ebe9c366466d398cb83))
- Added string spell-checking to library and fixed discovered typos. ([71d03c6](https://github.com/ethers-io/ethers.js/commit/71d03c6e3cab1aacb3e4e74d3966fbaa7db2ee06))
- Fixed getUrl for node 8. ([560adea](https://github.com/ethers-io/ethers.js/commit/560adeabb06a2ab483bcad162f02ccef41ebc245))
- Dependency security updates. ([da3b0bf](https://github.com/ethers-io/ethers.js/commit/da3b0bf0786fe8a95c68485d130ca59c597ffe4d))
- Fixes for dist builds without injected XMLHttpRequest. ([#789](https://github.com/ethers-io/ethers.js/issues/789), [#506](https://github.com/ethers-io/ethers.js/issues/506); [9ae6b70](https://github.com/ethers-io/ethers.js/commit/9ae6b70efb9f3d3251820403597085cfa30ace05))
ethers/v5.0.0-beta.182 (2020-04-16 21:53)
-----------------------------------------
- Added support for Contract event parsing error recovery. ([cc72f76](https://github.com/ethers-io/ethers.js/commit/cc72f76695572d235d7f5a5ad4dc1838a5fe884a))
- Fix provider log filters with zero topics. ([#785](https://github.com/ethers-io/ethers.js/issues/785); [4ef0e4f](https://github.com/ethers-io/ethers.js/commit/4ef0e4f7653226bf8cca86e065ad614e7288af96))
ethers/v5.0.0-beta.181 (2020-04-15 18:23)
-----------------------------------------
- Temporarily remove CloudflareProvider tests; it is down and breaking the tests. ([797abb7](https://github.com/ethers-io/ethers.js/commit/797abb726711499d96bf1c12c61e3bb1a7b4925d))
- Better error reporting for Fragments. ([7dcefcb](https://github.com/ethers-io/ethers.js/commit/7dcefcbf71ef337103639bbe3f4ad2625565651a))
- Fixed Contract filter unsubscribing. ([2eb3823](https://github.com/ethers-io/ethers.js/commit/2eb3823de4ba111cc0c746a0715fe6dd3d1b16da), [39c78f3](https://github.com/ethers-io/ethers.js/commit/39c78f37ceff9b8ec08329903dcba7bd53bd8661))
- Fixed WebSocketProvider filter events. ([#784](https://github.com/ethers-io/ethers.js/issues/784); [69f7077](https://github.com/ethers-io/ethers.js/commit/69f707762ed5939c5f52bf6dce5c5513aaf6fa1d))
- Added bitwise operations to BigNumber. ([#781](https://github.com/ethers-io/ethers.js/issues/781); [7498c18](https://github.com/ethers-io/ethers.js/commit/7498c18235c7566b2f652cddba991f55e0943da8), [284771e](https://github.com/ethers-io/ethers.js/commit/284771ea39b6f4ee9cdf75ce5feea9e6aa9a65c5))
ethers/v5.0.0-beta.180 (2020-04-03 22:10)
-----------------------------------------
- Correctly return the Provider in NonceManager. ([6caf7c2](https://github.com/ethers-io/ethers.js/commit/6caf7c292cd5f03741cd6b30053c3325c4f30a81))
- Fail earlier when resolving an ENS name that is not a string. ([2882546](https://github.com/ethers-io/ethers.js/commit/28825463517f8821392464ec2283ee59c431d928))
- Fixed mutabilityState calculation for function fragments. ([#762](https://github.com/ethers-io/ethers.js/issues/762); [6526de0](https://github.com/ethers-io/ethers.js/commit/6526de016fda5403474dad61ee59acc62ee25ebc), [d7c8b35](https://github.com/ethers-io/ethers.js/commit/d7c8b355a049b36068b0525a357c6278639a8d58))
- Force Log properties to be non-optional. ([#415](https://github.com/ethers-io/ethers.js/issues/415); [da412f6](https://github.com/ethers-io/ethers.js/commit/da412f660723d1c411484e74970ce4eb166374c2), [8ad26f0](https://github.com/ethers-io/ethers.js/commit/8ad26f0ff42614a6c40e735cb6fffd36874da1a0))
- Fixed Signer call not forwarding blockTag. ([#768](https://github.com/ethers-io/ethers.js/issues/768); [053a2d7](https://github.com/ethers-io/ethers.js/commit/053a2d7fcdb4ca4c9bfd0bee0f42e0187d3db477))
ethers/v5.0.0-beta.179 (2020-03-31 23:40)
-----------------------------------------
- Fixed ENS CLI lookup for Website. ([0f144c6](https://github.com/ethers-io/ethers.js/commit/0f144c6cc03082026080782356b940af3389b34e))
- Fixed getEtherPrice for EtherscanProvider. ([#776](https://github.com/ethers-io/ethers.js/issues/776); [6c71b51](https://github.com/ethers-io/ethers.js/commit/6c71b515126d8ef3cea5a1aec814c4cab56cc1a5))
- Fixed ENS CLI tool set-websites and added set-name. ([70cffb6](https://github.com/ethers-io/ethers.js/commit/70cffb6a5166a79a54e02b03b6a7ec0085407e07))
ethers/v5.0.0-beta.178 (2020-03-30 22:14)
-----------------------------------------
- Fixed Event args keyword access. ([2692e78](https://github.com/ethers-io/ethers.js/commit/2692e783b40ce16207fa1a8e8513ebb5455fd2d0), [092ce9b](https://github.com/ethers-io/ethers.js/commit/092ce9bcc2abf92c40550c4a990a8e2c889cc250))
- Updating TypeScript library and fixing some audit issues. ([bd32ee0](https://github.com/ethers-io/ethers.js/commit/bd32ee0af5b25a435e5896773d8bfd482d3adcaf))
ethers/v5.0.0-beta.177 (2020-03-21 12:46)
-----------------------------------------
- Abstracted JSON-RPC parameter generation for others to use. ([030f65e](https://github.com/ethers-io/ethers.js/commit/030f65e66ce059d69d8d77973d5c3190745eaac2))
- Updated RLP package to use Logger instead of bare errors. ([390497f](https://github.com/ethers-io/ethers.js/commit/390497f38964a052837f6c0e7c96efe74c668517))
- Fixed log level filtering for Logger. ([#379](https://github.com/ethers-io/ethers.js/issues/379); [72c8992](https://github.com/ethers-io/ethers.js/commit/72c89922a4e1b77295414c8e0717a7373f2397b8))
- Throw errors when trying to RLP encode integers. ([9ea16e5](https://github.com/ethers-io/ethers.js/commit/9ea16e5172928962792ba4c0273e23db373409e0))
- Added delays to provider tests to prevent throttling causing failed tests. ([3e44aac](https://github.com/ethers-io/ethers.js/commit/3e44aac8f199ec09babb20c4af2ee668e0ab05a1))
ethers/v5.0.0-beta.176 (2020-03-12 19:10)
-----------------------------------------
- Checking in initial Eip1193Bridge (experimental). ([2c78f0b](https://github.com/ethers-io/ethers.js/commit/2c78f0bf265a0f7c9f4cfc1bc79ecd4629b59c49))
- Added initial WebSocketProvider. ([#141](https://github.com/ethers-io/ethers.js/issues/141); [117a5dd](https://github.com/ethers-io/ethers.js/commit/117a5dd7ffa783c4335c0b87621437447cd499d0))
- Renamed properties based on community recommendations; estimate to estimateGas and addressPromise to resovledAddress. ([fe3b3fa](https://github.com/ethers-io/ethers.js/commit/fe3b3fa1aded67827fec1131931d95d8153d8f32))
- Better error reporting and fixed look-ahead for data labels. ([e52312e](https://github.com/ethers-io/ethers.js/commit/e52312e783b8d0fdd7e9992716cbe2e179751b38))
ethers/v5.0.0-beta.175 (2020-02-27 19:53)
-----------------------------------------
- Fix address-less filter listening in Provider. ([#741](https://github.com/ethers-io/ethers.js/issues/741); [64dccb2](https://github.com/ethers-io/ethers.js/commit/64dccb275c68ebb40328350d4ab5be0f29b8a02e))
- Added sync version of wallet decryption. ([0ad94cd](https://github.com/ethers-io/ethers.js/commit/0ad94cdf8137259bedb38c0dc949b61570bcdac0), [6809c37](https://github.com/ethers-io/ethers.js/commit/6809c370c027aea148466c00d3ce09c6d0ee6ddc))
ethers/v5.0.0-beta.175 (2020-02-27 19:38)
-----------------------------------------
- Fix address-less filter listening in Provider. ([#741](https://github.com/ethers-io/ethers.js/issues/741); [64dccb2](https://github.com/ethers-io/ethers.js/commit/64dccb275c68ebb40328350d4ab5be0f29b8a02e))
- Added sync version of wallet decryption. ([0ad94cd](https://github.com/ethers-io/ethers.js/commit/0ad94cdf8137259bedb38c0dc949b61570bcdac0))
ethers/v5.0.0-beta.174 (2020-02-25 14:57)
-----------------------------------------
- Reduced default Provider quorum for testnets. ([1cfab31](https://github.com/ethers-io/ethers.js/commit/1cfab3173c3d0519beffc054efe73f70b7d28501))
- Added JSON-RPC debugging on error responses. ([ad27600](https://github.com/ethers-io/ethers.js/commit/ad27600c699827858e7343adff2d4fa622248e42))
- Fixed setLogLevel to affect global logging. ([ac51a88](https://github.com/ethers-io/ethers.js/commit/ac51a88c2913d7055e050c91d7d96bb42abf6656))
- Renamed interface getTopic to getEventTopic. ([f61f34b](https://github.com/ethers-io/ethers.js/commit/f61f34bfb295bafee3b7ee426efa696aaa9bbafe))
- Fix log parsing when no matching topic hash is found. ([#733](https://github.com/ethers-io/ethers.js/issues/733); [a5d2ec5](https://github.com/ethers-io/ethers.js/commit/a5d2ec534f75b21eebe69a789a3c43c33014a825), [4b8e198](https://github.com/ethers-io/ethers.js/commit/4b8e198bf209fcf0aea55018d8940355ea4345de), [89ac9f4](https://github.com/ethers-io/ethers.js/commit/89ac9f4f298ac340c4429e8ebdacd29962eba7f4))
ethers/v5.0.0-beta.173 (2020-02-12 17:09)
-----------------------------------------
- Added experimental EipWrappedProvider. ([944600d](https://github.com/ethers-io/ethers.js/commit/944600d779564c500ab98d3265286a0717642614))
- Updated signature for JsonRpcProvider.send to match EIP-1193. ([b962b59](https://github.com/ethers-io/ethers.js/commit/b962b59ab72e67bc4566a361964e42cf1b791025))
- Added binary literal support to ASM grammar. ([375bd15](https://github.com/ethers-io/ethers.js/commit/375bd15594a3179432e8452d819d91ea72b4bdd8))
- Added explicit pop placeholders to ASM dialect. ([a6b696d](https://github.com/ethers-io/ethers.js/commit/a6b696d8bd03c4027b52fe23745f066d158f1420))
- Added position independent code option for asm. ([89615c5](https://github.com/ethers-io/ethers.js/commit/89615c59d385a58fa79b6bbd8eae53c30e45fe96))
- Added ASM semantic checking and the Pop placeholder. ([a33bf0e](https://github.com/ethers-io/ethers.js/commit/a33bf0e37f4f969cc03b85ebf0dbadcf3e9b068a))
- Better type safety for defineReadOnly. ([e7adc84](https://github.com/ethers-io/ethers.js/commit/e7adc84a972968f39a983efb6f21b6ceaacd6cc5))
- Fixed CLI sandbox quiting after prompt entry. ([ff9bc2a](https://github.com/ethers-io/ethers.js/commit/ff9bc2a282e617125bbca76702dec85149661390))
ethers/v5.0.0-beta.172 (2020-02-04 00:59)
-----------------------------------------
- Synced GitHub issue cache. ([13dbf1f](https://github.com/ethers-io/ethers.js/commit/13dbf1f965eab344d2a304f7612d19ea96391261))
- Better typing for Timers. ([5622f70](https://github.com/ethers-io/ethers.js/commit/5622f703d962993442623ef1450a595825c4efa8))
- Safer transaction serialization, matching signature.v with chainId. ([#708](https://github.com/ethers-io/ethers.js/issues/708); [edb7c5d](https://github.com/ethers-io/ethers.js/commit/edb7c5da91ce271688561364d867998b0f0675e3))
- Fixed Opcode typo and added check to prevent future typos. ([15bb840](https://github.com/ethers-io/ethers.js/commit/15bb8409077f96b22e8bd60c426cddd015454e6b))
- Renamed AST nodes for teh assembler. ([f02c7db](https://github.com/ethers-io/ethers.js/commit/f02c7db4109d1785b4528757aa50f24948e896ae))
- Added timeout to waitForTransaction. ([#477](https://github.com/ethers-io/ethers.js/issues/477); [bacc440](https://github.com/ethers-io/ethers.js/commit/bacc4403979fa423890e269e7a5c7d11c6891a9f))
- Added CLI for asm package. ([aafa42a](https://github.com/ethers-io/ethers.js/commit/aafa42a32b2a5c7481a409ad048dfc06112c6599))
- Prevent Signer.checkTransaction from creating conflicting from properties. ([1decb13](https://github.com/ethers-io/ethers.js/commit/1decb1379902b60a15925b9b1de39633393db825))
- Include asm in generated TypeScript dependencies. ([ba29618](https://github.com/ethers-io/ethers.js/commit/ba296188960fb345dfdab12f2bb3ed3dc5eab51a))
- Clean up some asm checks and dead code. ([fa317eb](https://github.com/ethers-io/ethers.js/commit/fa317ebc032f8a5f9fb2dd10e23496252ae744e1))
- More contained Opcode API. ([da8153c](https://github.com/ethers-io/ethers.js/commit/da8153c87753b79e5e4cd34d484b8e0e717426d9))
- Added initial codedrop for the asm package. ([0296594](https://github.com/ethers-io/ethers.js/commit/0296594aba8d1e90e9ef7a18d2324f6cac815953))
ethers/v5.0.0-beta.171 (2020-02-01 05:05)
-----------------------------------------
- Added CLI for asm package. ([aafa42a](https://github.com/ethers-io/ethers.js/commit/aafa42a32b2a5c7481a409ad048dfc06112c6599))
- Added more flatworm documentation. ([1c85fe9](https://github.com/ethers-io/ethers.js/commit/1c85fe95b2b536828e83087676becba85c9a90bb))
- Prevent Signer.checkTransaction from creating conflicting from properties. ([1decb13](https://github.com/ethers-io/ethers.js/commit/1decb1379902b60a15925b9b1de39633393db825))
- Include asm in generated TypeScript dependencies. ([ba29618](https://github.com/ethers-io/ethers.js/commit/ba296188960fb345dfdab12f2bb3ed3dc5eab51a))
- Clean up some asm checks and dead code. ([fa317eb](https://github.com/ethers-io/ethers.js/commit/fa317ebc032f8a5f9fb2dd10e23496252ae744e1))
- More contained Opcode API. ([da8153c](https://github.com/ethers-io/ethers.js/commit/da8153c87753b79e5e4cd34d484b8e0e717426d9))
- Added initial codedrop for the asm package. ([0296594](https://github.com/ethers-io/ethers.js/commit/0296594aba8d1e90e9ef7a18d2324f6cac815953))
ethers/v5.0.0-beta.171 (2020-01-29 21:41)
-----------------------------------------
- Better solc support in CLI; it will search the local pacakge for an existing solc version. ([7428776](https://github.com/ethers-io/ethers.js/commit/7428776f75222d5c07282bc29c3dd8ed99f5d2cc))
- Update ENS registry address and lower default quorum for testnets. ([edb49da](https://github.com/ethers-io/ethers.js/commit/edb49da15518f25b3d60813ebb84f54171e308f3))
- Exposed isBytes and isBytesLike in ethers.utils. ([99329b0](https://github.com/ethers-io/ethers.js/commit/99329b013ce7f3af301d40c41f7eb35bff288910))
ethers/v5.0.0-beta.170 (2020-01-21 20:37)
-----------------------------------------
- Better, easier and more provider testing. ([e0d1d38](https://github.com/ethers-io/ethers.js/commit/e0d1d3866d2559f39627254873a0a1d4c0fcaf3d))
- Fixed out-of-bounds difficulty in getBlock, which can affect PoA networks. ([#711](https://github.com/ethers-io/ethers.js/issues/711); [251882c](https://github.com/ethers-io/ethers.js/commit/251882ced4379931ec82ba28a4db10bc7dbf3580))
ethers/v5.0.0-beta.169 (2020-01-20 19:42)
-----------------------------------------
- Fixed imports after refactor. ([adf5622](https://github.com/ethers-io/ethers.js/commit/adf56229c6cc83003d319ea9a004677e2555d478))
- Refactor some enum names and add UTF-8 error support to the umbrella package. ([931da2f](https://github.com/ethers-io/ethers.js/commit/931da2f77446fc9266cf07f0d7d78d4376625005))
- Allow arbitrary apiKey for UrlJsonRpcProvider. ([5878b54](https://github.com/ethers-io/ethers.js/commit/5878b54d6eded1329a6dc3b4023f876a87f72b6e))
- Added more general error handling (e.g. error, ignore, replace) for calling toUtf8String. ([a055edb](https://github.com/ethers-io/ethers.js/commit/a055edb5855b96fdf179403458c1694b96fd906c))
ethers/v5.0.0-beta.168 (2020-01-18 21:46)
-----------------------------------------
- Much more resiliant FallbackProvider which can ignore properties that are only approximate and supports per-provider priorities. ([#635](https://github.com/ethers-io/ethers.js/issues/635), [#588](https://github.com/ethers-io/ethers.js/issues/588); [f4bcf24](https://github.com/ethers-io/ethers.js/commit/f4bcf24a257a17ec9beb98f3d0b3682de543534c))
- Fixed some typing for receipts and logs. ([#497](https://github.com/ethers-io/ethers.js/issues/497); [ea102ef](https://github.com/ethers-io/ethers.js/commit/ea102ef7c4fa5df7b9389fbc8a2947bbbd4c471e))
- Abstracting mnemonic phrases. ([#685](https://github.com/ethers-io/ethers.js/issues/685); [92a383f](https://github.com/ethers-io/ethers.js/commit/92a383ff0dad4587e44953efca3c6ab795a1b1bd))
- Sync GitHub issues. ([75e1a37](https://github.com/ethers-io/ethers.js/commit/75e1a37bb5935d5d538ffcfce5b0073e1334d457))
- Fixed 304 status for fetchJson. ([c66d81e](https://github.com/ethers-io/ethers.js/commit/c66d81e96f7c9b0808f181085ffe1c92f6219d46))
ethers/v5.0.0-beta.167 (2020-01-11 04:16)
-----------------------------------------
- Fixed testcases for provider changes. ([90ed07c](https://github.com/ethers-io/ethers.js/commit/90ed07c74e7230ea0f02288b140d497d8b9779e0))
- Add support for legacy flat signatures with recid instead of normalized v. ([245cd0e](https://github.com/ethers-io/ethers.js/commit/245cd0e48e07eef35f5bf45ee7fe5ed5ef31338a))
- Fix TransactionResponse to have chainId instead of legacy networkId. ([#700](https://github.com/ethers-io/ethers.js/issues/700); [72b3bc9](https://github.com/ethers-io/ethers.js/commit/72b3bc9909074893038c768f3da1564ed96a6a20))
- Fixed splitSignature computing wrong v for BytesLike. ([#700](https://github.com/ethers-io/ethers.js/issues/700); [4151c0e](https://github.com/ethers-io/ethers.js/commit/4151c0eacd22287e2369a8656ffa00359db6f84b))
- Added dist files for hardware-wallets. ([c846649](https://github.com/ethers-io/ethers.js/commit/c84664953d2f50ee0d704a8aa18fe6c08668dabb))
- Browser support (with dist files) for Ledger. ([6f7fbf3](https://github.com/ethers-io/ethers.js/commit/6f7fbf3858c82417933a5e5595a919c0ec0487c7))
ethers/v5.0.0-beta.166 (2020-01-10 03:09)
-----------------------------------------
- Relaxed joinSignature API to allow SignauteLike. ([602e6a8](https://github.com/ethers-io/ethers.js/commit/602e6a8973480299843a0158f75451a2c6aac749))
- Initial code drop of new hardware wallet package. ([2e8f5ca](https://github.com/ethers-io/ethers.js/commit/2e8f5ca7ed498261079da75713b18f3370dfd236))
- Added more docs. ([381a72d](https://github.com/ethers-io/ethers.js/commit/381a72ddaa7fb59ef2ded84d228296d693df05c3))
ethers/v5.0.0-beta.165 (2020-01-09 03:31)
-----------------------------------------
- Fixed require resolution for CLI scripts. ([c04f9a7](https://github.com/ethers-io/ethers.js/commit/c04f9a7fff727bb04a4aa3a0fa05fd5cd8e795a6))
- Added new URLs for default ETC (and ETC testnets) providers. ([#351](https://github.com/ethers-io/ethers.js/issues/351); [3c184ac](https://github.com/ethers-io/ethers.js/commit/3c184ace21aafbb27f4d44cce1bb738af899d59f))
ethers/v5.0.0-beta.164 (2020-01-07 19:57)
-----------------------------------------
- Use better Description typing. ([2d5492c](https://github.com/ethers-io/ethers.js/commit/2d5492cd2ee722c818c249244af7b5bea05d67b0))
- Better property access on ABI decoded results. ([#698](https://github.com/ethers-io/ethers.js/issues/698); [13f50ab](https://github.com/ethers-io/ethers.js/commit/13f50abd847f7ddcc7e54c102da54e2d23b86fae))
- Better typing support for Description. ([d0f4642](https://github.com/ethers-io/ethers.js/commit/d0f4642f6d2c9f5119f1910a0082894c60e81191))
- Fixed resolveName when name is an address with an invalid checksum. ([#694](https://github.com/ethers-io/ethers.js/issues/694); [1e72fc7](https://github.com/ethers-io/ethers.js/commit/1e72fc7d6f7c3be4410dbdcfbab9a0463ceb52bd))
ethers/v5.0.0-beta.163 (2020-01-06 18:57)
-----------------------------------------
- Added function to generate CREATE2 addresses. ([#697](https://github.com/ethers-io/ethers.js/issues/697); [eb26a6d](https://github.com/ethers-io/ethers.js/commit/eb26a6d95022a241c44f859e7b2f29646afb4914))
- Force constructor name to be null (instead of undefined). ([a648f2b](https://github.com/ethers-io/ethers.js/commit/a648f2bd1e5e52a3662896f04fe7025884866972))
- Added documentation uploading script. ([e593aba](https://github.com/ethers-io/ethers.js/commit/e593aba2946c98820b0c2edf9c5dab6cb30c7402))
- Added Czech wordlist to default wordlists export. ([#691](https://github.com/ethers-io/ethers.js/issues/691); [5724fa5](https://github.com/ethers-io/ethers.js/commit/5724fa5d9c6fe73f14ec8bdea1f7226a222537ef))
- Added Czech BIP-39 wordlist. ([#691](https://github.com/ethers-io/ethers.js/issues/691); [f54f06b](https://github.com/ethers-io/ethers.js/commit/f54f06b5c8092997fd3c9055d69a3e0796ce44f3))
- Updated README. ([e809ead](https://github.com/ethers-io/ethers.js/commit/e809eadf8d608cd8c8a78c08a2e3547dd09156cf))
- Updating docs. ([184c459](https://github.com/ethers-io/ethers.js/commit/184c459fab0d089a8a879584b72e5eb3560b33ce))
- Merge branch 'yuetloo-ethers-v5-beta' into ethers-v5-beta ([06cafe3](https://github.com/ethers-io/ethers.js/commit/06cafe3437ef129b47f5f9c02f4759f2c4854d3c))
- Add circleci and parity test files ([fdf0980](https://github.com/ethers-io/ethers.js/commit/fdf0980663ffead0faf3e9b7b233b22ca1574e21))
- Fixed typo in package test dist scripts. ([9c78c7f](https://github.com/ethers-io/ethers.js/commit/9c78c7fee69d07733048d898d58205ae7f5c82d7))
ethers/v5.0.0-beta.162 (2019-11-25 00:02)
-----------------------------------------
- Update elliptic package to protect from Minerva timing attack. ([#666](https://github.com/ethers-io/ethers.js/issues/666); [cf036e1](https://github.com/ethers-io/ethers.js/commit/cf036e1ffad3340fcf1c7559d0032493ccc08e6e))
- Browser and node testing works again. ([4470477](https://github.com/ethers-io/ethers.js/commit/4470477d7fd3031f2f3a1fbd9c538468c33c7350))
ethers/v5.0.0-beta.161 (2019-11-23 21:43)
-----------------------------------------
- Updated dist files (sorted package.json to reduce package version change chatter). ([f308ba3](https://github.com/ethers-io/ethers.js/commit/f308ba3540ed0d282d099456d0369873ad9596b0))
- Stubs for adding throttle support. ([2f0e679](https://github.com/ethers-io/ethers.js/commit/2f0e679f0bc81bf901cf60a79e50f9715cddec5a))
- Refactor wordlists. ([abab9f6](https://github.com/ethers-io/ethers.js/commit/abab9f6aa27d1870d1053e7caa951408b86c454d))
- Browser testcases work again. ([c11c2e2](https://github.com/ethers-io/ethers.js/commit/c11c2e2e3376a6764f07ed443245823f2792b8cc))
- Added dist files for non-English wordlists. ([3d75c52](https://github.com/ethers-io/ethers.js/commit/3d75c52dac668af5eeede3e7764dadd3055a0707))
- Sync GitHub issue cache. ([29f0e9d](https://github.com/ethers-io/ethers.js/commit/29f0e9dd627a7b4b7f772300497f27718c9ecc7b))
ethers/v5.0.0-beta.160 (2019-11-20 18:36)
-----------------------------------------
- Updated API in testcases. ([3ab3733](https://github.com/ethers-io/ethers.js/commit/3ab373334c75800f2b20b6639ed8eb1b11e453ef))
- Fixed scrypt import in ESM build. ([b72ef27](https://github.com/ethers-io/ethers.js/commit/b72ef27b2a8f9941fb9d79122ec449fed9d2464d))
- Fixed null apiKey problem for InfuraProvider. ([e518151](https://github.com/ethers-io/ethers.js/commit/e51815150912d10e2734707986b10b37c87d6d12))
- Added support for sighash-style tuple parsing. ([19aaade](https://github.com/ethers-io/ethers.js/commit/19aaade9c62510012cfd50ae487ebd1705a28678))
- Fixed solc imports for cli. ([c35ddaf](https://github.com/ethers-io/ethers.js/commit/c35ddaf646efa25e738fee604585a0a7af45b206))
- Added nonce manager to experimental index. ([8316406](https://github.com/ethers-io/ethers.js/commit/8316406977ea26ca2044d16f7b3bb6ba21ef5b43))
- Removing NodesmithProvider from default provider as it is being discontinued. ([01ca350](https://github.com/ethers-io/ethers.js/commit/01ca35036ca11a47f60890e5cae62e46a00f3da8))
- Moved bare ABI named functions and events from Interface into Contracts to simplify other consumers of Interface. ([da8ca2e](https://github.com/ethers-io/ethers.js/commit/da8ca2e8bc982fc3ea0343bb3c593a485ca1fef0))
- Added support for complex API keys including support for INFURA project secrets. ([#464](https://github.com/ethers-io/ethers.js/issues/464), [#651](https://github.com/ethers-io/ethers.js/issues/651), [#652](https://github.com/ethers-io/ethers.js/issues/652); [1ec5804](https://github.com/ethers-io/ethers.js/commit/1ec5804bd460f6948d4813469fdc7bf739baa6a6))
- Migrated to scrypt-js v3. ([75895fa](https://github.com/ethers-io/ethers.js/commit/75895fa1491e7542c755a102f4e4c190685fd2b6))
- Moved getDefaultProvider to providers package. ([51e4ef2](https://github.com/ethers-io/ethers.js/commit/51e4ef2b45b83a8d82923600a2fac544d70b0807))
- Migrating providers to modern syntax and scoping. ([#634](https://github.com/ethers-io/ethers.js/issues/634); [e1509a6](https://github.com/ethers-io/ethers.js/commit/e1509a6326dd2cb8bf7ed64b82dd3947b768a314))
- Migrating to modern syntax and scoping. ([#634](https://github.com/ethers-io/ethers.js/issues/634); [394c36c](https://github.com/ethers-io/ethers.js/commit/394c36cad43f229a94c72d21f94d1c7982a887a1))
- Added provider property to Web3Provider. ([#641](https://github.com/ethers-io/ethers.js/issues/641); [1d4f90a](https://github.com/ethers-io/ethers.js/commit/1d4f90a958da6364117353850d62535c9702abd2))
- Updated GitHub issue cache. ([494381a](https://github.com/ethers-io/ethers.js/commit/494381a6284cc8ed90bd8002d42a6b6d94dc1200))
- Force deploy receipt to address to be null. ([#573](https://github.com/ethers-io/ethers.js/issues/573); [d9d438a](https://github.com/ethers-io/ethers.js/commit/d9d438a119bb11f8516fc9cf02c534ab3816fcb3))
- Updated experimental NonceManager. ([3d514c8](https://github.com/ethers-io/ethers.js/commit/3d514c8dbb94e1c4ce5754463e683dd9dbe7c0aa))
- Fixed typo in error message. ([28339a9](https://github.com/ethers-io/ethers.js/commit/28339a9c8585392086da159a46df4afb8958915c))
- Added GitHub issue caching. ([fea867a](https://github.com/ethers-io/ethers.js/commit/fea867a206f007a17718396e486883a5e718aa29))
ethers/v5.0.0-beta.159 (2019-10-17 01:08)
-----------------------------------------
- Removing TypeScript build files from npm to fix excessive package diffs.
- Fixed getBlock for blockhashes with a leading 0. ([#629](https://github.com/ethers-io/ethers.js/issues/629); [12cfc59](https://github.com/ethers-io/ethers.js/commit/12cfc599656d7e3a6d3d9aa4e468592865a711cc))
ethers/v5.0.0-beta.158 (2019-09-28 01:56)
-----------------------------------------
- Added less-common, but useful, coding functions to Interface. ([778eb3b](https://github.com/ethers-io/ethers.js/commit/778eb3b425b5ab5b23d28e75be92feccd0fc56bc))
- Add response handling and 304 support to fetchJson. ([3d25882](https://github.com/ethers-io/ethers.js/commit/3d25882d6bf689740506b9c569f6e0d30da6f6a5))
- Allow numeric values in a transaction to be odd-lengthed hexstrings. ([#614](https://github.com/ethers-io/ethers.js/issues/614); [a12030a](https://github.com/ethers-io/ethers.js/commit/a12030ad29aa13c02aa75d9e0860f4986a0043b4))
- Simpler crypt for admin tools. ([828c8cf](https://github.com/ethers-io/ethers.js/commit/828c8cfd419ac4f8d11d978c2e2ff83eba5ae909))
ethers/v5.0.0-beta.157 (2019-09-08 02:43)
-----------------------------------------
- Fixed getContractAddress for odd-length hex values. ([#572](https://github.com/ethers-io/ethers.js/issues/572); [751793e](https://github.com/ethers-io/ethers.js/commit/751793ea25183d54d7fc4c610a789608f91c062e))
- Fixed typo in error message. ([#592](https://github.com/ethers-io/ethers.js/issues/592); [6f4291f](https://github.com/ethers-io/ethers.js/commit/6f4291f65f0ea20c65fef7fd7b09b4d5bf5f0dcd))
- Fixed typo in error message. ([#580](https://github.com/ethers-io/ethers.js/issues/580); [9c63b4a](https://github.com/ethers-io/ethers.js/commit/9c63b4a7535f423a802bb1c17c325ce968987349))
- Fixed typo in error message. ([#574](https://github.com/ethers-io/ethers.js/issues/574); [22a2673](https://github.com/ethers-io/ethers.js/commit/22a26736cc332fe6e896c9d2707cc99ceee2fb10))
ethers/v5.0.0-beta.156 (2019-09-06 17:56)
-----------------------------------------
- Removed export star to fix UMD dist file. ([4c17c4d](https://github.com/ethers-io/ethers.js/commit/4c17c4db0455e1b89fd597c4c929cdc36aa3d90d))
- Updated TypeScript version. ([e8028d0](https://github.com/ethers-io/ethers.js/commit/e8028d0e73368257b76b394bb8e2bf63f8aecd71))
- Fixed test suites and reporter. ([1e0ed4e](https://github.com/ethers-io/ethers.js/commit/1e0ed4e99a22a27fe5057336f8cb320809768f3e))
- Added lock-versions admin tool. ([2187604](https://github.com/ethers-io/ethers.js/commit/21876049137644af2b3afa31120ee95d032843a8))
- Updated packages with version lock and moved types. ([85b4db7](https://github.com/ethers-io/ethers.js/commit/85b4db7d6db37b853f11a90cf4648c34404edcf9))
- Fixed typo in error message. ([#592](https://github.com/ethers-io/ethers.js/issues/592); [019c1fc](https://github.com/ethers-io/ethers.js/commit/019c1fc7089b3da2d7bd41c933b6c6bc35c8dade))
- Fixed build process to re-target browser field to ES version. ([3a91e91](https://github.com/ethers-io/ethers.js/commit/3a91e91df56c1ef6cf096c0322f74fd5060891e0))
- Major overhaul in compilation to enable ES6 module generation. ([73a0077](https://github.com/ethers-io/ethers.js/commit/73a0077fd38c6ae79f33a9d4d3cc128a904b4a6c))
- Updated some of the flatworm docs. ([81fd942](https://github.com/ethers-io/ethers.js/commit/81fd9428cab4be7eee7ddeb564bf91f282cae475))
- Fixed package descriptions. ([#561](https://github.com/ethers-io/ethers.js/issues/561); [ebfca98](https://github.com/ethers-io/ethers.js/commit/ebfca98dc276d6f6ca6961632635e8203bb17645))
ethers/v5.0.0-beta.155 (2019-08-22 17:11)
-----------------------------------------
- Added Wrapped Ether and Token transfers to CLI. ([c031a13](https://github.com/ethers-io/ethers.js/commit/c031a1336815923bae85d9982dba0985a79cfaed))
- Fixed sendTransaction and use median gas price in FallbackProvider. ([07e1599](https://github.com/ethers-io/ethers.js/commit/07e15993ba181cfbff987778d158dbde6bb84de2))
- Port optional Secret Storage wallet address to v5. ([#582](https://github.com/ethers-io/ethers.js/issues/582); [a12d60d](https://github.com/ethers-io/ethers.js/commit/a12d60d722dfcf998a2e06eba5e46390d7d442e5))
- Updated flatworm docs output. ([8745a81](https://github.com/ethers-io/ethers.js/commit/8745a81b11b710036ddb546308c13958be1affb9))
- Added initial flatworm documentation stubs. ([0333a76](https://github.com/ethers-io/ethers.js/commit/0333a76f4ff382b5b59b24c672b702721e7a386a))
ethers/v5.0.0-beta.154 (2019-08-21 01:51)
-----------------------------------------
- Use safe transfer for ENS in CLI. ([b7494d8](https://github.com/ethers-io/ethers.js/commit/b7494d8618001797a4e856f3d1886273897e6ba4))
- Fixed quorum-matching logic for FallbackProvider. ([b304ec1](https://github.com/ethers-io/ethers.js/commit/b304ec1f008ec5301c0dbd1a493d790fe3528512))
- Added CloudflareProvider. ([#587](https://github.com/ethers-io/ethers.js/issues/587); [621313d](https://github.com/ethers-io/ethers.js/commit/621313d2a697bc6e1dd25eb5b08d67e832a28d05))
- Added receipt to CALL_EXCEPTION errors. ([724c32e](https://github.com/ethers-io/ethers.js/commit/724c32e8c08b55404594f263e52babb0550a15b8))
ethers/v5.0.0-beta.153 (2019-08-06 19:15)
-----------------------------------------
- Updated gas estimate failure messaging to include that the tx may simple be causing a revert. ([edb26b1](https://github.com/ethers-io/ethers.js/commit/edb26b16354afd707e5d03e174c4cc809b951c4f))
- Additional sanity checks in ethers-ens. ([de4b2a4](https://github.com/ethers-io/ethers.js/commit/de4b2a449ca3a49807c8bedb3e21e8e8d71e63fc))
- Fix bug in --wait for CLI. ([9977c9f](https://github.com/ethers-io/ethers.js/commit/9977c9f66a7007dcc1963128c88c584b6b6c064b))
- Added content-hash support to ENS CLI. ([7dfef46](https://github.com/ethers-io/ethers.js/commit/7dfef463f83a9190d1b89cf81e0fb692da3dd813))
ethers/v5.0.0-beta.152 (2019-08-05 14:37)
-----------------------------------------
- Using CLI --wait instead of custom Plugin flag for ethers-ens. ([19ee2b5](https://github.com/ethers-io/ethers.js/commit/19ee2b516005b2c35b846f19457ec9bbfa0c283b))
- Added --wait as a general flag to CLI. ([7640292](https://github.com/ethers-io/ethers.js/commit/7640292ac8b7b9e6de3ad6699d23e2debf26cc1b))
- Added migrate-registrar and transfer to ENS CLI. ([31e8e1b](https://github.com/ethers-io/ethers.js/commit/31e8e1b0520bc8be390fbf7e2b473c36a8649eb3))
- Include data in the CLI transaction dump. ([53bd96a](https://github.com/ethers-io/ethers.js/commit/53bd96a9f675233906033290f1e0c71ca4e9d389))
- Better errors on gas estimation failure. ([0e6b810](https://github.com/ethers-io/ethers.js/commit/0e6b810def390309240508a99b2cf0736848dedd))
ethers/v5.0.0-beta.151 (2019-08-05 14:29)
-----------------------------------------
- Added package name prefix to all _version for Logger. ([692589d](https://github.com/ethers-io/ethers.js/commit/692589db54cbca10a2a453e9a1801a8612056559))
ethers/v5.0.0-beta.150 (2019-08-03 01:07)
-----------------------------------------
- Fixed old references to errors package. ([1cabce7](https://github.com/ethers-io/ethers.js/commit/1cabce7e1c23b15cc2b630c0b403dd72d815a5ba))
- Added generation scripts for Table A.1 for stringprep. ([#42](https://github.com/ethers-io/ethers.js/issues/42); [b21681a](https://github.com/ethers-io/ethers.js/commit/b21681a7f4292b0e77315caad3a59fe814e9292b))
ethers/v5.0.0-beta.149 (2019-08-03 00:45)
-----------------------------------------
- Fixed some case-folding and added Table A.1 for IDNA. ([#42](https://github.com/ethers-io/ethers.js/issues/42); [f955dca](https://github.com/ethers-io/ethers.js/commit/f955dca417a6f86690cf33a81b08baa99e1b1a5c))
- Removed references to legacy errors pacakge and updated umbrella pacakge. ([c09de16](https://github.com/ethers-io/ethers.js/commit/c09de163473c361cac11ddef9ec852f4cbb7d8e3))
- Updated admin module to use new fetchJson. ([226c100](https://github.com/ethers-io/ethers.js/commit/226c100c72c3fcb0c0e3b62be5f579fd9cc4c904))
- Updated dist files. ([8354c3f](https://github.com/ethers-io/ethers.js/commit/8354c3f9fe5487f21acaaeccd4450d9a5d495bc1))
- Full case-folding for IDNA in namehash. ([0af95f4](https://github.com/ethers-io/ethers.js/commit/0af95f4a655106e67c2ba8f445af88c9e9e24339))
- Deprecating errors for logger. ([0b224e8](https://github.com/ethers-io/ethers.js/commit/0b224e8fb5811cd06727063c909ca1e1e5cde57e))
- More consistent debug events for Providers. ([e8f28b5](https://github.com/ethers-io/ethers.js/commit/e8f28b55d7dd62e29f03628232ffe7c75dc811b5))
ethers/v5.0.0-beta.148 (2019-07-27 18:56)
-----------------------------------------
- Initial drop of new ENS CLI tool. ([c3c65b2](https://github.com/ethers-io/ethers.js/commit/c3c65b2fa19e117d6433c2e0b3d20decfe506c74))
- Added TypeScript tool support for functions with multiple outputs. ([6de4a5d](https://github.com/ethers-io/ethers.js/commit/6de4a5d8a9d114c4c33c58f8a304b60e7370eeff))
- Added CLI support for stand-alone (no sub-command) tools. ([b67b121](https://github.com/ethers-io/ethers.js/commit/b67b12123996f1aaf7cbe3c8648fd85a22d6674e))
- Make utils.resolveProperties preserve object parameter order. ([74dbc28](https://github.com/ethers-io/ethers.js/commit/74dbc281ede042c5eeaa7b45150b215dea860a88))
- Added initial IDNA support for full UTF-8 support in namehash. ([#42](https://github.com/ethers-io/ethers.js/issues/42); [28eb38e](https://github.com/ethers-io/ethers.js/commit/28eb38ee703288aaad9f730b2d93fe3aeea7ada6))
ethers/v5.0.0-beta.147 (2019-07-23 01:04)
-----------------------------------------
- Use the CLI solc instead of solc directly for ABI testcase generation. ([99c7b1c](https://github.com/ethers-io/ethers.js/commit/99c7b1ca94382490b9757fd51375a7ad4259b831))
- Added experimental UTF-8 functions for escaping non-ascii strings. ([b132e32](https://github.com/ethers-io/ethers.js/commit/b132e32172c9d63e59209628dadd5796dd6291c8))
- Bump Solidity version in CLI to 0.5.10. ([6005248](https://github.com/ethers-io/ethers.js/commit/600524842e1a4b857e8428a45c0c7d1baa0624ee))
ethers/v5.0.0-beta.146 (2019-07-20 21:06)
-----------------------------------------
- Keep extra filter topics when using Frgment filters in Contracts. ([efaafb2](https://github.com/ethers-io/ethers.js/commit/efaafb203feaf703de803df7e346652372e9fb75))
- Updated package.json description for Contract package. ([#561](https://github.com/ethers-io/ethers.js/issues/561); [d88ee45](https://github.com/ethers-io/ethers.js/commit/d88ee45937b3484b68f72e3f72ad6c29556c984b))
ethers/v5.0.0-beta.145 (2019-07-20 20:12)
-----------------------------------------
- Export provider.Formatter. ([#562](https://github.com/ethers-io/ethers.js/issues/562); [083fd76](https://github.com/ethers-io/ethers.js/commit/083fd76a3a638ec16d5f9bf652101e5a150c7347))
- Update CLI to use new Fragment.format style. ([9a41199](https://github.com/ethers-io/ethers.js/commit/9a4119910b07d1ad61bafafb38ac18a9dae1d9ed))
- Added FormatTypes to utils. ([a05027c](https://github.com/ethers-io/ethers.js/commit/a05027c744102bbe1be5e13dd89b9c1e64b3b526))
- Added experimental memory-hard password scheme for password-protected mnemonics to the CLI. ([5877418](https://github.com/ethers-io/ethers.js/commit/5877418de94256a69fdf2ad466ba579309b9dee8))
- Added more flexible output options to fragment.format (JSON and minimal) and better JSON object parsing. ([e9558c8](https://github.com/ethers-io/ethers.js/commit/e9558c8d4fe6df889f4d7ba6ac6448aa543ef99d))
ethers/v5.0.0-beta.144 (2019-07-09 17:28)
-----------------------------------------
- Make mnemonic phrases case agnostic. ([#557](https://github.com/ethers-io/ethers.js/issues/557); [e4423b7](https://github.com/ethers-io/ethers.js/commit/e4423b7a277e7e1be1c02d345d4ab1eab484c9b8))
ethers/v5.0.0-beta.143 (2019-07-02 16:12)
-----------------------------------------
- Adding more support for offline signing in the CLI. ([9cc269c](https://github.com/ethers-io/ethers.js/commit/9cc269ceb5d33b2d88542d4bc6771279f729e733))
- Allow providers to prepare their Network object. ([6484908](https://github.com/ethers-io/ethers.js/commit/6484908cb25dd35e5d98b2672dca72ed3f30cbe1))
- Export BIP-44 default path in ethers.utils. ([04bdf45](https://github.com/ethers-io/ethers.js/commit/04bdf456eb07aa72872265e0ee01e3231d2b6cf1))
ethers/v5.0.0-beta.142 (2019-06-28 16:13)
-----------------------------------------
- Do not require a Signer for contract.populateTransaction. ([0e78386](https://github.com/ethers-io/ethers.js/commit/0e78386a08d3d3a0a98c8d03cd665b8992ab3ea2))
- Bumping version of solc to 0.5.9. ([e2da447](https://github.com/ethers-io/ethers.js/commit/e2da447c7bc05937966bc4909c47291e4819d2a9))
ethers/v5.0.0-beta.141 (2019-06-24 21:25)
-----------------------------------------
- Fix non-ES6 import in keccak256. ([5eb393d](https://github.com/ethers-io/ethers.js/commit/5eb393d828328b34567566d3c0d622b4aef1e202))
- Refactored wordlist exports to export Wordlist directly. ([746d255](https://github.com/ethers-io/ethers.js/commit/746d255b741844b615583b2de3ffd07631b4e872))
ethers/v5.0.0-beta.140 (2019-06-12 01:25)
-----------------------------------------
- Move from node-fetch to cross-fetch; better browser fallback implementation. ([826ffbc](https://github.com/ethers-io/ethers.js/commit/826ffbc7c4ed1c301f30e6f264eedeaf3c243ca8))
- Added getStatic with support for inheritance of static methods. ([5e4535e](https://github.com/ethers-io/ethers.js/commit/5e4535e939fdb9d9d23bd14b3e2590873d3eb508))
- Fixed node-fetch for Safari (todo: push this fix upstream to node-fetch). ([7164e51](https://github.com/ethers-io/ethers.js/commit/7164e51131215ae3201b49f8c7f5ade8cbd8a420))
- Migrated XMLHttpRequest to fetch API. ([#506](https://github.com/ethers-io/ethers.js/issues/506); [62201c5](https://github.com/ethers-io/ethers.js/commit/62201c5eebc52e9723dbbb2cc64823155ce1e0f9))
ethers/v5.0.0-beta.139 (2019-06-11 17:55)
-----------------------------------------
- Removed freeze option from deepCopy; all properties are read-only and only objects may have new properties added. ([1bc792d](https://github.com/ethers-io/ethers.js/commit/1bc792d9dcc6a06a1be4fc5e5b9a538a3f6b7ada))
- Moved away from isNamedInstance which breaks after Browserify name mangling. ([257d67c](https://github.com/ethers-io/ethers.js/commit/257d67c9625fa237bcfb3d651c49aa3b79175cae))
- Expose poll function in utils. ([#512](https://github.com/ethers-io/ethers.js/issues/512); [e6f6383](https://github.com/ethers-io/ethers.js/commit/e6f6383346818fa67423f1f20450e011242eb554))
- Make TransactionResponse hash required. ([#537](https://github.com/ethers-io/ethers.js/issues/537); [095c1fe](https://github.com/ethers-io/ethers.js/commit/095c1fe579068a3204ea0d1bc1893f293f61e719))
ethers/v5.0.0-beta.138 (2019-06-04 16:05)
-----------------------------------------
- Fixed INFURA project ID checking. ([#534](https://github.com/ethers-io/ethers.js/issues/534); [5bf763f](https://github.com/ethers-io/ethers.js/commit/5bf763fe2307e8570ab5e91e30c43e2e5731fc39))
ethers/v5.0.0-beta.137 (2019-06-01 14:06)
-----------------------------------------
- Fixed invalid arrayify value in browser for SHA2-HMAC. ([#530](https://github.com/ethers-io/ethers.js/issues/530); [c4a494b](https://github.com/ethers-io/ethers.js/commit/c4a494b528f2e5f706c159d916d8ff0ffd96a211))
- Fix event and function fragment formatting. ([a2d4b29](https://github.com/ethers-io/ethers.js/commit/a2d4b2907184d9480a72fe6f67652489074af86e))
- Fixed default JsonRpcSigner. ([#532](https://github.com/ethers-io/ethers.js/issues/532); [5ba6a61](https://github.com/ethers-io/ethers.js/commit/5ba6a616a6f969b1f28f8c6367c21488f497a7ae))
- Added changelog management to update-versions. ([4a3f719](https://github.com/ethers-io/ethers.js/commit/4a3f7190dc04275030d313289e1ba6a2b31407ec))
ethers/v5.0.0-beta.136
----------------------
- Added queryFilter to Contracts. ([#463](https://github.com/ethers-io/ethers.js/issues/463); [eea53bb](https://github.com/ethers-io/ethers.js/commit/eea53bb1be29ad2bd1b229a13c85b12be264b019))
- Allow storage class in Human-Readable ABI. ([#476](https://github.com/ethers-io/ethers.js/issues/476); [cf39adb](https://github.com/ethers-io/ethers.js/commit/cf39adb09020ca0393e028b330bfd07fb4869236))
- Track per-provider JSON-RPC ID in JsonRpcProvider. ([#337](https://github.com/ethers-io/ethers.js/issues/337), [#489](https://github.com/ethers-io/ethers.js/issues/489); [044554b](https://github.com/ethers-io/ethers.js/commit/044554b58525d1677646a74119f86ea867a06d1e))
- Fixed typo in error message. ([#470](https://github.com/ethers-io/ethers.js/issues/470); [47d92ae](https://github.com/ethers-io/ethers.js/commit/47d92aeff02cacfb26793850c7faef7cb21ce4cf))
ethers/v5.0.0-beta.135
----------------------
- Better error message for unconfigured ENS names. ([#504](https://github.com/ethers-io/ethers.js/issues/504); [3cbc4b4](https://github.com/ethers-io/ethers.js/commit/3cbc4b462262ba61fa7d99a7a12e7bbf8049afb1))
- Fixed contract events. ([#404](https://github.com/ethers-io/ethers.js/issues/404); [8cdda37](https://github.com/ethers-io/ethers.js/commit/8cdda37095df28f828ccd2ac5437ccb6541b16cc))
- Updated license for BaseX to include original authors; was only included in the source. ([03c9725](https://github.com/ethers-io/ethers.js/commit/03c97259c46de10dbe6ce62921de2f32ffff0522))
- Preserve config canary string. ([7157816](https://github.com/ethers-io/ethers.js/commit/7157816fa53f660d750811b293e3b1d5a2f70bd4))
- Updated docs. ([9e4c7e6](https://github.com/ethers-io/ethers.js/commit/9e4c7e609d9eeb5f2a11d6a90bfa9d32ee696431))

523
CHANGELOG.v5-beta.md Normal file
View File

@@ -0,0 +1,523 @@
Changelog
=========
This change log is managed by `scripts/cmds/update-versions` but may be manually updated.
ethers/v5.0.0-beta.192 (2020-06-12 04:51)
-----------------------------------------
- Support nonpayable Solidity modifier in ABI. ([adc8d3d](https://github.com/ethers-io/ethers.js/commit/adc8d3d9aec2f5ee8e207f8bc77d99052e473d16))
- More debug information in timeout and fetch errors. ([#678](https://github.com/ethers-io/ethers.js/issues/678); [693094e](https://github.com/ethers-io/ethers.js/commit/693094e97ce4f0dc0cd49b9cf6b1557bd7dc517d))
- Use URL parse instead of constructor for react compatibility. ([#874](https://github.com/ethers-io/ethers.js/issues/874); [5e7d28b](https://github.com/ethers-io/ethers.js/commit/5e7d28b19b18aa1bbb4b851f74f6d7865725be02))
ethers/v5.0.0-beta.191 (2020-06-03 03:41)
-----------------------------------------
- Allow undefined properties in transaction object and fix stray this. ([#860](https://github.com/ethers-io/ethers.js/issues/860); [98bb589](https://github.com/ethers-io/ethers.js/commit/98bb58964bec7dff0ccf481d474354ec1ca6f376), [d2406c4](https://github.com/ethers-io/ethers.js/commit/d2406c42a18c123205918eb46bf24de0ff97ee23))
- Allow JsonRpcSigner to override from if it matches Signer. ([#862](https://github.com/ethers-io/ethers.js/issues/862); [1a89c59](https://github.com/ethers-io/ethers.js/commit/1a89c591c26a7fcc2031d0df90137d8a096c5c01))
- Added initial support for spontaneous network changes. ([#495](https://github.com/ethers-io/ethers.js/issues/495), [#861](https://github.com/ethers-io/ethers.js/issues/861); [2bc7bb6](https://github.com/ethers-io/ethers.js/commit/2bc7bb6e61219a40cfe2acd95c115c2195c21223), [d2ca4fb](https://github.com/ethers-io/ethers.js/commit/d2ca4fb443b2653063ca5aa349b52ecd0ff79e2f))
ethers/v5.0.0-beta.190 (2020-06-01 05:02)
-----------------------------------------
- Re-enable tests removed to fix slow CI. ([cd7a0b3](https://github.com/ethers-io/ethers.js/commit/cd7a0b36cd77df5d5951a97cdb6b6be1c9387f51))
- Major Contract refactor for overrides. ([#819](https://github.com/ethers-io/ethers.js/issues/819), [#845](https://github.com/ethers-io/ethers.js/issues/845), [#847](https://github.com/ethers-io/ethers.js/issues/847), [#860](https://github.com/ethers-io/ethers.js/issues/860); [42dee67](https://github.com/ethers-io/ethers.js/commit/42dee67187adb04d0b88f420b24cb3e73301d609))
- Remove legacy Circle CI tasks. ([c445232](https://github.com/ethers-io/ethers.js/commit/c445232980007d3474bc036ff59fb37638f93820))
- Fixing GitHub actions. ([#853](https://github.com/ethers-io/ethers.js/issues/853); [6b8f0f3](https://github.com/ethers-io/ethers.js/commit/6b8f0f3cb38295cd5d693f9b71f629b591206f1e))
ethers/v5.0.0-beta.189 (2020-05-29 21:25)
-----------------------------------------
- Simplify typing for properties module. ([41e66ab](https://github.com/ethers-io/ethers.js/commit/41e66ab834e9835807481658a7956207edfef3d7))
- Refactor Contract away from monolithic runMethod. ([e5a1b4d](https://github.com/ethers-io/ethers.js/commit/e5a1b4d5cbbaa0a8ce64c72e13d0d12fa2b856e3))
- Correctly set last emitted block for WebSocketProvider. ([#856](https://github.com/ethers-io/ethers.js/issues/856); [1b0ad5a](https://github.com/ethers-io/ethers.js/commit/1b0ad5aa69327f80c7814069142965914673dc06))
- Fixed delayed network detection attempting to overwrite read-only value. ([#854](https://github.com/ethers-io/ethers.js/issues/854); [8efd8d2](https://github.com/ethers-io/ethers.js/commit/8efd8d203158ebdef040ec759c3b423312a86e7c))
- Better WebSocket compatibilities with Parity. ([#849](https://github.com/ethers-io/ethers.js/issues/849); [180a1af](https://github.com/ethers-io/ethers.js/commit/180a1aff3adc5b4af3a1349b52666ca5942c92a2))
ethers/v5.0.0-beta.188 (2020-05-21 00:02)
-----------------------------------------
- Make filter blockHash property name match EIP-234. ([b03c4ed](https://github.com/ethers-io/ethers.js/commit/b03c4edd31a1929b411d0559d17eee7e3d6b11c8), [ed29fac](https://github.com/ethers-io/ethers.js/commit/ed29fac376c1a0aa210bf75979bb2ab62d0cf46b))
- Fixed FallbackProvider sync-stalling for backends. ([#841](https://github.com/ethers-io/ethers.js/issues/841); [f963589](https://github.com/ethers-io/ethers.js/commit/f96358940043123aa7a8fe97a1af7af293ce9740))
- Add correct tag to release on publish. ([#828](https://github.com/ethers-io/ethers.js/issues/828); [8516076](https://github.com/ethers-io/ethers.js/commit/85160766cdcd031f226382901ebadee9d7f40200))
ethers/v5.0.0-beta.187 (2020-05-12 23:29)
-----------------------------------------
- Add sub-error to gas estimate error for Ganache users. ([#829](https://github.com/ethers-io/ethers.js/issues/829); [647fbd8](https://github.com/ethers-io/ethers.js/commit/647fbd8cbfa0f94f72db6faadd528e61c49b1dd6))
- Moved ABI check for unique names to coding time and only if ambiguous. ([#816](https://github.com/ethers-io/ethers.js/issues/816); [fa87417](https://github.com/ethers-io/ethers.js/commit/fa87417e9416d99a37d9a2668a1e54feb7e342fc))
- Added missing Interface exports to umbrella utils. ([82a9326](https://github.com/ethers-io/ethers.js/commit/82a93263fae330ae39a7212e74d973fa9f820f64))
- Fixed FallbackProvider ESM super-this out-of-order issue. ([#822](https://github.com/ethers-io/ethers.js/issues/822); [fde102b](https://github.com/ethers-io/ethers.js/commit/fde102b7eda304403dcc677cd6d3b48339cd3a81))
- Fixed node hanging on unnecessary timeout when fetchJson fails. ([fdf2253](https://github.com/ethers-io/ethers.js/commit/fdf2253218cf379043acc32dea8c95c284a82cec))
ethers/v5.0.0-beta.186 (2020-05-08 15:27)
-----------------------------------------
- Fix JsonRpcProvider out-of-order super call. ([#822](https://github.com/ethers-io/ethers.js/issues/822); [963197d](https://github.com/ethers-io/ethers.js/commit/963197d70c96e5970b431173c2cc782cb496674c))
ethers/v5.0.0-beta.185 (2020-05-04 22:54)
-----------------------------------------
- More robust FallbackProvider on clean exits. ([8eeda23](https://github.com/ethers-io/ethers.js/commit/8eeda23e989fcb0126bd20b17c67f62466d19259))
- Safer test suite reporter timer. ([657a039](https://github.com/ethers-io/ethers.js/commit/657a0394f56b51a13c691477c2b0dcf74678fd7c))
- Added goerli to AlchemyProvider tests. ([ab7c781](https://github.com/ethers-io/ethers.js/commit/ab7c78118ab80990a3e3368749599a1cf6e9d4ae))
- Added more robust poll event to Provider. ([dc48bfb](https://github.com/ethers-io/ethers.js/commit/dc48bfb7adb9334848c93173ba2c634f22a9a72f))
- Added goerli to AlchemyProvider. ([86670eb](https://github.com/ethers-io/ethers.js/commit/86670eb80e96fc4ba4e3664c9389f8130bbfea73))
- Removed Cloudflare from test suite; it is down again. ([17dc022](https://github.com/ethers-io/ethers.js/commit/17dc022603afdfe4147638ab4b2704bcef09533f))
- Prevent forceOutput in test reporter from crashing. ([cafd344](https://github.com/ethers-io/ethers.js/commit/cafd34460b194d78092021f1d7e0307130340b68))
- Stall FallbackProvider backends from requests if not in-sync. ([fa6904f](https://github.com/ethers-io/ethers.js/commit/fa6904fef35e7ab888221f3a0613bfe7e6df3594))
- Allow providers to detect their network after instantiation. ([#814](https://github.com/ethers-io/ethers.js/issues/814); [99ae946](https://github.com/ethers-io/ethers.js/commit/99ae946476a317a9d89e5d8f57cf37f8680bfa2b))
- Better messaging on low-level network errors. ([#814](https://github.com/ethers-io/ethers.js/issues/814); [0e3a66c](https://github.com/ethers-io/ethers.js/commit/0e3a66c82959a08f3f4e4ffbca3ae3792ff2548f))
- Manage FallbackProvider stalling without unref. ([#815](https://github.com/ethers-io/ethers.js/issues/815); [7b1a7c7](https://github.com/ethers-io/ethers.js/commit/7b1a7c7f31a3631e12c2a341b562983360e670e9))
- Only error on duplicate signatures in Contract ABI. ([#499](https://github.com/ethers-io/ethers.js/issues/499); [098d7ef](https://github.com/ethers-io/ethers.js/commit/098d7efb21bd648c2660342297d2419904a10925))
- Added getWebSocketProvider static method to InfuraProvider. ([a6c1174](https://github.com/ethers-io/ethers.js/commit/a6c1174dffe6dca1a3a64d1d472cec6e12372117))
- Fix WebSocketProvider responses when message result is null. ([#813](https://github.com/ethers-io/ethers.js/issues/813); [472e5b0](https://github.com/ethers-io/ethers.js/commit/472e5b07eab180baa12185c8f00e5079ce4c671f))
- Allow modifiers on Human-Readable ABI for tuples and arrays. ([83fba3d](https://github.com/ethers-io/ethers.js/commit/83fba3de25b524cc48975b1952f4319d63874205))
- Added initial renew support to ENS CLI. ([54dfb75](https://github.com/ethers-io/ethers.js/commit/54dfb757c4c88e4bcada1890c4016fadfb25581a))
- Allow contract filters to include OR-ed values. ([#437](https://github.com/ethers-io/ethers.js/issues/437); [28800d7](https://github.com/ethers-io/ethers.js/commit/28800d7681f3bab08f6d30a22f0813e04feee18a))
ethers/v5.0.0-beta.184 (2020-04-28 04:58)
-----------------------------------------
- Removed old EIP-1193 experimental provider; it can now be supported by Web3Provider as EIP-1193 is now backwards compatible. ([84c68ac](https://github.com/ethers-io/ethers.js/commit/84c68ac5c17b10897ade966d6c8fac1f1f66a4af))
- Fixed getLogs filter deserialization. ([#805](https://github.com/ethers-io/ethers.js/issues/805); [393c0c7](https://github.com/ethers-io/ethers.js/commit/393c0c74a91175adca2e25026dcdb9e6445afd8f))
- Added EIP-1193 support to Web3Provider. ([56af441](https://github.com/ethers-io/ethers.js/commit/56af4413b1dd1787db68985e0b612b63d86fdf7c))
- Minor typing-detected fixes. ([d1f3a42](https://github.com/ethers-io/ethers.js/commit/d1f3a42c119d5588eab667ec7bb6e71042cfb656))
- Added initial support for recoverable coding erros. ([#800](https://github.com/ethers-io/ethers.js/issues/800); [bda6623](https://github.com/ethers-io/ethers.js/commit/bda66230916e58e25a522e8430ce4de25091eb6b))
- More draconian Typing. ([14e6811](https://github.com/ethers-io/ethers.js/commit/14e6811bf7d7c38a3b5714dededcc883c185d814))
- Omit HID libraries for hardware-wallets package on unsupported environments. ([#798](https://github.com/ethers-io/ethers.js/issues/798); [2e24920](https://github.com/ethers-io/ethers.js/commit/2e24920d028d42908d0764ad4ca0b56b55f852d1), [5aefb43](https://github.com/ethers-io/ethers.js/commit/5aefb4303d2fdda62e7e5ddb644919f613d6016a))
- Make default constructor non-payable. ([#684](https://github.com/ethers-io/ethers.js/issues/684); [017ea0d](https://github.com/ethers-io/ethers.js/commit/017ea0d6bd22833e9d399ae6b818443786f17884))
ethers/v5.0.0-beta.183 (2020-04-23 23:28)
-----------------------------------------
- Fixed inconsistent log format in WebSocketProvider. ([#795](https://github.com/ethers-io/ethers.js/issues/795); [8e7751f](https://github.com/ethers-io/ethers.js/commit/8e7751f7dfb41e58f81c7918cf36c152c3209ae2))
- Added WebSocketProvider support for ENS names in filters. ([6707754](https://github.com/ethers-io/ethers.js/commit/6707754580490c5a801d6205af0841794d20b3c9))
- Fixed provider filtering by ENS name. ([aeeb75f](https://github.com/ethers-io/ethers.js/commit/aeeb75f74c3be11b9b3b2925fd73349070542e54))
- Fixed ContractFactory.deploy ignoring overrides. ([#796](https://github.com/ethers-io/ethers.js/issues/796); [8bb2a0f](https://github.com/ethers-io/ethers.js/commit/8bb2a0fd08f6f128a80444e3fd90c29e4cd7edfb))
- Fix median calculation for large block number deltas across FallbackProvider backends. ([fca5ccb](https://github.com/ethers-io/ethers.js/commit/fca5ccbc2052569e700a96dbb1de1c9cef7c966f))
- Work-around for Cloudflare not offering eth_blockNumber. ([8cf4b3c](https://github.com/ethers-io/ethers.js/commit/8cf4b3cf4598f4f3643d5ebe9c366466d398cb83))
- Added string spell-checking to library and fixed discovered typos. ([71d03c6](https://github.com/ethers-io/ethers.js/commit/71d03c6e3cab1aacb3e4e74d3966fbaa7db2ee06))
- Fixed getUrl for node 8. ([560adea](https://github.com/ethers-io/ethers.js/commit/560adeabb06a2ab483bcad162f02ccef41ebc245))
- Dependency security updates. ([da3b0bf](https://github.com/ethers-io/ethers.js/commit/da3b0bf0786fe8a95c68485d130ca59c597ffe4d))
- Fixes for dist builds without injected XMLHttpRequest. ([#789](https://github.com/ethers-io/ethers.js/issues/789), [#506](https://github.com/ethers-io/ethers.js/issues/506); [9ae6b70](https://github.com/ethers-io/ethers.js/commit/9ae6b70efb9f3d3251820403597085cfa30ace05))
ethers/v5.0.0-beta.182 (2020-04-16 21:53)
-----------------------------------------
- Added support for Contract event parsing error recovery. ([cc72f76](https://github.com/ethers-io/ethers.js/commit/cc72f76695572d235d7f5a5ad4dc1838a5fe884a))
- Fix provider log filters with zero topics. ([#785](https://github.com/ethers-io/ethers.js/issues/785); [4ef0e4f](https://github.com/ethers-io/ethers.js/commit/4ef0e4f7653226bf8cca86e065ad614e7288af96))
ethers/v5.0.0-beta.181 (2020-04-15 18:23)
-----------------------------------------
- Temporarily remove CloudflareProvider tests; it is down and breaking the tests. ([797abb7](https://github.com/ethers-io/ethers.js/commit/797abb726711499d96bf1c12c61e3bb1a7b4925d))
- Better error reporting for Fragments. ([7dcefcb](https://github.com/ethers-io/ethers.js/commit/7dcefcbf71ef337103639bbe3f4ad2625565651a))
- Fixed Contract filter unsubscribing. ([2eb3823](https://github.com/ethers-io/ethers.js/commit/2eb3823de4ba111cc0c746a0715fe6dd3d1b16da), [39c78f3](https://github.com/ethers-io/ethers.js/commit/39c78f37ceff9b8ec08329903dcba7bd53bd8661))
- Fixed WebSocketProvider filter events. ([#784](https://github.com/ethers-io/ethers.js/issues/784); [69f7077](https://github.com/ethers-io/ethers.js/commit/69f707762ed5939c5f52bf6dce5c5513aaf6fa1d))
- Added bitwise operations to BigNumber. ([#781](https://github.com/ethers-io/ethers.js/issues/781); [7498c18](https://github.com/ethers-io/ethers.js/commit/7498c18235c7566b2f652cddba991f55e0943da8), [284771e](https://github.com/ethers-io/ethers.js/commit/284771ea39b6f4ee9cdf75ce5feea9e6aa9a65c5))
ethers/v5.0.0-beta.180 (2020-04-03 22:10)
-----------------------------------------
- Correctly return the Provider in NonceManager. ([6caf7c2](https://github.com/ethers-io/ethers.js/commit/6caf7c292cd5f03741cd6b30053c3325c4f30a81))
- Fail earlier when resolving an ENS name that is not a string. ([2882546](https://github.com/ethers-io/ethers.js/commit/28825463517f8821392464ec2283ee59c431d928))
- Fixed mutabilityState calculation for function fragments. ([#762](https://github.com/ethers-io/ethers.js/issues/762); [6526de0](https://github.com/ethers-io/ethers.js/commit/6526de016fda5403474dad61ee59acc62ee25ebc), [d7c8b35](https://github.com/ethers-io/ethers.js/commit/d7c8b355a049b36068b0525a357c6278639a8d58))
- Force Log properties to be non-optional. ([#415](https://github.com/ethers-io/ethers.js/issues/415); [da412f6](https://github.com/ethers-io/ethers.js/commit/da412f660723d1c411484e74970ce4eb166374c2), [8ad26f0](https://github.com/ethers-io/ethers.js/commit/8ad26f0ff42614a6c40e735cb6fffd36874da1a0))
- Fixed Signer call not forwarding blockTag. ([#768](https://github.com/ethers-io/ethers.js/issues/768); [053a2d7](https://github.com/ethers-io/ethers.js/commit/053a2d7fcdb4ca4c9bfd0bee0f42e0187d3db477))
ethers/v5.0.0-beta.179 (2020-03-31 23:40)
-----------------------------------------
- Fixed ENS CLI lookup for Website. ([0f144c6](https://github.com/ethers-io/ethers.js/commit/0f144c6cc03082026080782356b940af3389b34e))
- Fixed getEtherPrice for EtherscanProvider. ([#776](https://github.com/ethers-io/ethers.js/issues/776); [6c71b51](https://github.com/ethers-io/ethers.js/commit/6c71b515126d8ef3cea5a1aec814c4cab56cc1a5))
- Fixed ENS CLI tool set-websites and added set-name. ([70cffb6](https://github.com/ethers-io/ethers.js/commit/70cffb6a5166a79a54e02b03b6a7ec0085407e07))
ethers/v5.0.0-beta.178 (2020-03-30 22:14)
-----------------------------------------
- Fixed Event args keyword access. ([2692e78](https://github.com/ethers-io/ethers.js/commit/2692e783b40ce16207fa1a8e8513ebb5455fd2d0), [092ce9b](https://github.com/ethers-io/ethers.js/commit/092ce9bcc2abf92c40550c4a990a8e2c889cc250))
- Updating TypeScript library and fixing some audit issues. ([bd32ee0](https://github.com/ethers-io/ethers.js/commit/bd32ee0af5b25a435e5896773d8bfd482d3adcaf))
ethers/v5.0.0-beta.177 (2020-03-21 12:46)
-----------------------------------------
- Abstracted JSON-RPC parameter generation for others to use. ([030f65e](https://github.com/ethers-io/ethers.js/commit/030f65e66ce059d69d8d77973d5c3190745eaac2))
- Updated RLP package to use Logger instead of bare errors. ([390497f](https://github.com/ethers-io/ethers.js/commit/390497f38964a052837f6c0e7c96efe74c668517))
- Fixed log level filtering for Logger. ([#379](https://github.com/ethers-io/ethers.js/issues/379); [72c8992](https://github.com/ethers-io/ethers.js/commit/72c89922a4e1b77295414c8e0717a7373f2397b8))
- Throw errors when trying to RLP encode integers. ([9ea16e5](https://github.com/ethers-io/ethers.js/commit/9ea16e5172928962792ba4c0273e23db373409e0))
- Added delays to provider tests to prevent throttling causing failed tests. ([3e44aac](https://github.com/ethers-io/ethers.js/commit/3e44aac8f199ec09babb20c4af2ee668e0ab05a1))
ethers/v5.0.0-beta.176 (2020-03-12 19:10)
-----------------------------------------
- Checking in initial Eip1193Bridge (experimental). ([2c78f0b](https://github.com/ethers-io/ethers.js/commit/2c78f0bf265a0f7c9f4cfc1bc79ecd4629b59c49))
- Added initial WebSocketProvider. ([#141](https://github.com/ethers-io/ethers.js/issues/141); [117a5dd](https://github.com/ethers-io/ethers.js/commit/117a5dd7ffa783c4335c0b87621437447cd499d0))
- Renamed properties based on community recommendations; estimate to estimateGas and addressPromise to resovledAddress. ([fe3b3fa](https://github.com/ethers-io/ethers.js/commit/fe3b3fa1aded67827fec1131931d95d8153d8f32))
- Better error reporting and fixed look-ahead for data labels. ([e52312e](https://github.com/ethers-io/ethers.js/commit/e52312e783b8d0fdd7e9992716cbe2e179751b38))
ethers/v5.0.0-beta.175 (2020-02-27 19:53)
-----------------------------------------
- Fix address-less filter listening in Provider. ([#741](https://github.com/ethers-io/ethers.js/issues/741); [64dccb2](https://github.com/ethers-io/ethers.js/commit/64dccb275c68ebb40328350d4ab5be0f29b8a02e))
- Added sync version of wallet decryption. ([0ad94cd](https://github.com/ethers-io/ethers.js/commit/0ad94cdf8137259bedb38c0dc949b61570bcdac0), [6809c37](https://github.com/ethers-io/ethers.js/commit/6809c370c027aea148466c00d3ce09c6d0ee6ddc))
ethers/v5.0.0-beta.175 (2020-02-27 19:38)
-----------------------------------------
- Fix address-less filter listening in Provider. ([#741](https://github.com/ethers-io/ethers.js/issues/741); [64dccb2](https://github.com/ethers-io/ethers.js/commit/64dccb275c68ebb40328350d4ab5be0f29b8a02e))
- Added sync version of wallet decryption. ([0ad94cd](https://github.com/ethers-io/ethers.js/commit/0ad94cdf8137259bedb38c0dc949b61570bcdac0))
ethers/v5.0.0-beta.174 (2020-02-25 14:57)
-----------------------------------------
- Reduced default Provider quorum for testnets. ([1cfab31](https://github.com/ethers-io/ethers.js/commit/1cfab3173c3d0519beffc054efe73f70b7d28501))
- Added JSON-RPC debugging on error responses. ([ad27600](https://github.com/ethers-io/ethers.js/commit/ad27600c699827858e7343adff2d4fa622248e42))
- Fixed setLogLevel to affect global logging. ([ac51a88](https://github.com/ethers-io/ethers.js/commit/ac51a88c2913d7055e050c91d7d96bb42abf6656))
- Renamed interface getTopic to getEventTopic. ([f61f34b](https://github.com/ethers-io/ethers.js/commit/f61f34bfb295bafee3b7ee426efa696aaa9bbafe))
- Fix log parsing when no matching topic hash is found. ([#733](https://github.com/ethers-io/ethers.js/issues/733); [a5d2ec5](https://github.com/ethers-io/ethers.js/commit/a5d2ec534f75b21eebe69a789a3c43c33014a825), [4b8e198](https://github.com/ethers-io/ethers.js/commit/4b8e198bf209fcf0aea55018d8940355ea4345de), [89ac9f4](https://github.com/ethers-io/ethers.js/commit/89ac9f4f298ac340c4429e8ebdacd29962eba7f4))
ethers/v5.0.0-beta.173 (2020-02-12 17:09)
-----------------------------------------
- Added experimental EipWrappedProvider. ([944600d](https://github.com/ethers-io/ethers.js/commit/944600d779564c500ab98d3265286a0717642614))
- Updated signature for JsonRpcProvider.send to match EIP-1193. ([b962b59](https://github.com/ethers-io/ethers.js/commit/b962b59ab72e67bc4566a361964e42cf1b791025))
- Added binary literal support to ASM grammar. ([375bd15](https://github.com/ethers-io/ethers.js/commit/375bd15594a3179432e8452d819d91ea72b4bdd8))
- Added explicit pop placeholders to ASM dialect. ([a6b696d](https://github.com/ethers-io/ethers.js/commit/a6b696d8bd03c4027b52fe23745f066d158f1420))
- Added position independent code option for asm. ([89615c5](https://github.com/ethers-io/ethers.js/commit/89615c59d385a58fa79b6bbd8eae53c30e45fe96))
- Added ASM semantic checking and the Pop placeholder. ([a33bf0e](https://github.com/ethers-io/ethers.js/commit/a33bf0e37f4f969cc03b85ebf0dbadcf3e9b068a))
- Better type safety for defineReadOnly. ([e7adc84](https://github.com/ethers-io/ethers.js/commit/e7adc84a972968f39a983efb6f21b6ceaacd6cc5))
- Fixed CLI sandbox quiting after prompt entry. ([ff9bc2a](https://github.com/ethers-io/ethers.js/commit/ff9bc2a282e617125bbca76702dec85149661390))
ethers/v5.0.0-beta.172 (2020-02-04 00:59)
-----------------------------------------
- Synced GitHub issue cache. ([13dbf1f](https://github.com/ethers-io/ethers.js/commit/13dbf1f965eab344d2a304f7612d19ea96391261))
- Better typing for Timers. ([5622f70](https://github.com/ethers-io/ethers.js/commit/5622f703d962993442623ef1450a595825c4efa8))
- Safer transaction serialization, matching signature.v with chainId. ([#708](https://github.com/ethers-io/ethers.js/issues/708); [edb7c5d](https://github.com/ethers-io/ethers.js/commit/edb7c5da91ce271688561364d867998b0f0675e3))
- Fixed Opcode typo and added check to prevent future typos. ([15bb840](https://github.com/ethers-io/ethers.js/commit/15bb8409077f96b22e8bd60c426cddd015454e6b))
- Renamed AST nodes for teh assembler. ([f02c7db](https://github.com/ethers-io/ethers.js/commit/f02c7db4109d1785b4528757aa50f24948e896ae))
- Added timeout to waitForTransaction. ([#477](https://github.com/ethers-io/ethers.js/issues/477); [bacc440](https://github.com/ethers-io/ethers.js/commit/bacc4403979fa423890e269e7a5c7d11c6891a9f))
- Added CLI for asm package. ([aafa42a](https://github.com/ethers-io/ethers.js/commit/aafa42a32b2a5c7481a409ad048dfc06112c6599))
- Prevent Signer.checkTransaction from creating conflicting from properties. ([1decb13](https://github.com/ethers-io/ethers.js/commit/1decb1379902b60a15925b9b1de39633393db825))
- Include asm in generated TypeScript dependencies. ([ba29618](https://github.com/ethers-io/ethers.js/commit/ba296188960fb345dfdab12f2bb3ed3dc5eab51a))
- Clean up some asm checks and dead code. ([fa317eb](https://github.com/ethers-io/ethers.js/commit/fa317ebc032f8a5f9fb2dd10e23496252ae744e1))
- More contained Opcode API. ([da8153c](https://github.com/ethers-io/ethers.js/commit/da8153c87753b79e5e4cd34d484b8e0e717426d9))
- Added initial codedrop for the asm package. ([0296594](https://github.com/ethers-io/ethers.js/commit/0296594aba8d1e90e9ef7a18d2324f6cac815953))
ethers/v5.0.0-beta.171 (2020-02-01 05:05)
-----------------------------------------
- Added CLI for asm package. ([aafa42a](https://github.com/ethers-io/ethers.js/commit/aafa42a32b2a5c7481a409ad048dfc06112c6599))
- Added more flatworm documentation. ([1c85fe9](https://github.com/ethers-io/ethers.js/commit/1c85fe95b2b536828e83087676becba85c9a90bb))
- Prevent Signer.checkTransaction from creating conflicting from properties. ([1decb13](https://github.com/ethers-io/ethers.js/commit/1decb1379902b60a15925b9b1de39633393db825))
- Include asm in generated TypeScript dependencies. ([ba29618](https://github.com/ethers-io/ethers.js/commit/ba296188960fb345dfdab12f2bb3ed3dc5eab51a))
- Clean up some asm checks and dead code. ([fa317eb](https://github.com/ethers-io/ethers.js/commit/fa317ebc032f8a5f9fb2dd10e23496252ae744e1))
- More contained Opcode API. ([da8153c](https://github.com/ethers-io/ethers.js/commit/da8153c87753b79e5e4cd34d484b8e0e717426d9))
- Added initial codedrop for the asm package. ([0296594](https://github.com/ethers-io/ethers.js/commit/0296594aba8d1e90e9ef7a18d2324f6cac815953))
ethers/v5.0.0-beta.171 (2020-01-29 21:41)
-----------------------------------------
- Better solc support in CLI; it will search the local pacakge for an existing solc version. ([7428776](https://github.com/ethers-io/ethers.js/commit/7428776f75222d5c07282bc29c3dd8ed99f5d2cc))
- Update ENS registry address and lower default quorum for testnets. ([edb49da](https://github.com/ethers-io/ethers.js/commit/edb49da15518f25b3d60813ebb84f54171e308f3))
- Exposed isBytes and isBytesLike in ethers.utils. ([99329b0](https://github.com/ethers-io/ethers.js/commit/99329b013ce7f3af301d40c41f7eb35bff288910))
ethers/v5.0.0-beta.170 (2020-01-21 20:37)
-----------------------------------------
- Better, easier and more provider testing. ([e0d1d38](https://github.com/ethers-io/ethers.js/commit/e0d1d3866d2559f39627254873a0a1d4c0fcaf3d))
- Fixed out-of-bounds difficulty in getBlock, which can affect PoA networks. ([#711](https://github.com/ethers-io/ethers.js/issues/711); [251882c](https://github.com/ethers-io/ethers.js/commit/251882ced4379931ec82ba28a4db10bc7dbf3580))
ethers/v5.0.0-beta.169 (2020-01-20 19:42)
-----------------------------------------
- Fixed imports after refactor. ([adf5622](https://github.com/ethers-io/ethers.js/commit/adf56229c6cc83003d319ea9a004677e2555d478))
- Refactor some enum names and add UTF-8 error support to the umbrella package. ([931da2f](https://github.com/ethers-io/ethers.js/commit/931da2f77446fc9266cf07f0d7d78d4376625005))
- Allow arbitrary apiKey for UrlJsonRpcProvider. ([5878b54](https://github.com/ethers-io/ethers.js/commit/5878b54d6eded1329a6dc3b4023f876a87f72b6e))
- Added more general error handling (e.g. error, ignore, replace) for calling toUtf8String. ([a055edb](https://github.com/ethers-io/ethers.js/commit/a055edb5855b96fdf179403458c1694b96fd906c))
ethers/v5.0.0-beta.168 (2020-01-18 21:46)
-----------------------------------------
- Much more resiliant FallbackProvider which can ignore properties that are only approximate and supports per-provider priorities. ([#635](https://github.com/ethers-io/ethers.js/issues/635), [#588](https://github.com/ethers-io/ethers.js/issues/588); [f4bcf24](https://github.com/ethers-io/ethers.js/commit/f4bcf24a257a17ec9beb98f3d0b3682de543534c))
- Fixed some typing for receipts and logs. ([#497](https://github.com/ethers-io/ethers.js/issues/497); [ea102ef](https://github.com/ethers-io/ethers.js/commit/ea102ef7c4fa5df7b9389fbc8a2947bbbd4c471e))
- Abstracting mnemonic phrases. ([#685](https://github.com/ethers-io/ethers.js/issues/685); [92a383f](https://github.com/ethers-io/ethers.js/commit/92a383ff0dad4587e44953efca3c6ab795a1b1bd))
- Sync GitHub issues. ([75e1a37](https://github.com/ethers-io/ethers.js/commit/75e1a37bb5935d5d538ffcfce5b0073e1334d457))
- Fixed 304 status for fetchJson. ([c66d81e](https://github.com/ethers-io/ethers.js/commit/c66d81e96f7c9b0808f181085ffe1c92f6219d46))
ethers/v5.0.0-beta.167 (2020-01-11 04:16)
-----------------------------------------
- Fixed testcases for provider changes. ([90ed07c](https://github.com/ethers-io/ethers.js/commit/90ed07c74e7230ea0f02288b140d497d8b9779e0))
- Add support for legacy flat signatures with recid instead of normalized v. ([245cd0e](https://github.com/ethers-io/ethers.js/commit/245cd0e48e07eef35f5bf45ee7fe5ed5ef31338a))
- Fix TransactionResponse to have chainId instead of legacy networkId. ([#700](https://github.com/ethers-io/ethers.js/issues/700); [72b3bc9](https://github.com/ethers-io/ethers.js/commit/72b3bc9909074893038c768f3da1564ed96a6a20))
- Fixed splitSignature computing wrong v for BytesLike. ([#700](https://github.com/ethers-io/ethers.js/issues/700); [4151c0e](https://github.com/ethers-io/ethers.js/commit/4151c0eacd22287e2369a8656ffa00359db6f84b))
- Added dist files for hardware-wallets. ([c846649](https://github.com/ethers-io/ethers.js/commit/c84664953d2f50ee0d704a8aa18fe6c08668dabb))
- Browser support (with dist files) for Ledger. ([6f7fbf3](https://github.com/ethers-io/ethers.js/commit/6f7fbf3858c82417933a5e5595a919c0ec0487c7))
ethers/v5.0.0-beta.166 (2020-01-10 03:09)
-----------------------------------------
- Relaxed joinSignature API to allow SignauteLike. ([602e6a8](https://github.com/ethers-io/ethers.js/commit/602e6a8973480299843a0158f75451a2c6aac749))
- Initial code drop of new hardware wallet package. ([2e8f5ca](https://github.com/ethers-io/ethers.js/commit/2e8f5ca7ed498261079da75713b18f3370dfd236))
- Added more docs. ([381a72d](https://github.com/ethers-io/ethers.js/commit/381a72ddaa7fb59ef2ded84d228296d693df05c3))
ethers/v5.0.0-beta.165 (2020-01-09 03:31)
-----------------------------------------
- Fixed require resolution for CLI scripts. ([c04f9a7](https://github.com/ethers-io/ethers.js/commit/c04f9a7fff727bb04a4aa3a0fa05fd5cd8e795a6))
- Added new URLs for default ETC (and ETC testnets) providers. ([#351](https://github.com/ethers-io/ethers.js/issues/351); [3c184ac](https://github.com/ethers-io/ethers.js/commit/3c184ace21aafbb27f4d44cce1bb738af899d59f))
ethers/v5.0.0-beta.164 (2020-01-07 19:57)
-----------------------------------------
- Use better Description typing. ([2d5492c](https://github.com/ethers-io/ethers.js/commit/2d5492cd2ee722c818c249244af7b5bea05d67b0))
- Better property access on ABI decoded results. ([#698](https://github.com/ethers-io/ethers.js/issues/698); [13f50ab](https://github.com/ethers-io/ethers.js/commit/13f50abd847f7ddcc7e54c102da54e2d23b86fae))
- Better typing support for Description. ([d0f4642](https://github.com/ethers-io/ethers.js/commit/d0f4642f6d2c9f5119f1910a0082894c60e81191))
- Fixed resolveName when name is an address with an invalid checksum. ([#694](https://github.com/ethers-io/ethers.js/issues/694); [1e72fc7](https://github.com/ethers-io/ethers.js/commit/1e72fc7d6f7c3be4410dbdcfbab9a0463ceb52bd))
ethers/v5.0.0-beta.163 (2020-01-06 18:57)
-----------------------------------------
- Added function to generate CREATE2 addresses. ([#697](https://github.com/ethers-io/ethers.js/issues/697); [eb26a6d](https://github.com/ethers-io/ethers.js/commit/eb26a6d95022a241c44f859e7b2f29646afb4914))
- Force constructor name to be null (instead of undefined). ([a648f2b](https://github.com/ethers-io/ethers.js/commit/a648f2bd1e5e52a3662896f04fe7025884866972))
- Added documentation uploading script. ([e593aba](https://github.com/ethers-io/ethers.js/commit/e593aba2946c98820b0c2edf9c5dab6cb30c7402))
- Added Czech wordlist to default wordlists export. ([#691](https://github.com/ethers-io/ethers.js/issues/691); [5724fa5](https://github.com/ethers-io/ethers.js/commit/5724fa5d9c6fe73f14ec8bdea1f7226a222537ef))
- Added Czech BIP-39 wordlist. ([#691](https://github.com/ethers-io/ethers.js/issues/691); [f54f06b](https://github.com/ethers-io/ethers.js/commit/f54f06b5c8092997fd3c9055d69a3e0796ce44f3))
- Updated README. ([e809ead](https://github.com/ethers-io/ethers.js/commit/e809eadf8d608cd8c8a78c08a2e3547dd09156cf))
- Updating docs. ([184c459](https://github.com/ethers-io/ethers.js/commit/184c459fab0d089a8a879584b72e5eb3560b33ce))
- Merge branch 'yuetloo-ethers-v5-beta' into ethers-v5-beta ([06cafe3](https://github.com/ethers-io/ethers.js/commit/06cafe3437ef129b47f5f9c02f4759f2c4854d3c))
- Add circleci and parity test files ([fdf0980](https://github.com/ethers-io/ethers.js/commit/fdf0980663ffead0faf3e9b7b233b22ca1574e21))
- Fixed typo in package test dist scripts. ([9c78c7f](https://github.com/ethers-io/ethers.js/commit/9c78c7fee69d07733048d898d58205ae7f5c82d7))
ethers/v5.0.0-beta.162 (2019-11-25 00:02)
-----------------------------------------
- Update elliptic package to protect from Minerva timing attack. ([#666](https://github.com/ethers-io/ethers.js/issues/666); [cf036e1](https://github.com/ethers-io/ethers.js/commit/cf036e1ffad3340fcf1c7559d0032493ccc08e6e))
- Browser and node testing works again. ([4470477](https://github.com/ethers-io/ethers.js/commit/4470477d7fd3031f2f3a1fbd9c538468c33c7350))
ethers/v5.0.0-beta.161 (2019-11-23 21:43)
-----------------------------------------
- Updated dist files (sorted package.json to reduce package version change chatter). ([f308ba3](https://github.com/ethers-io/ethers.js/commit/f308ba3540ed0d282d099456d0369873ad9596b0))
- Stubs for adding throttle support. ([2f0e679](https://github.com/ethers-io/ethers.js/commit/2f0e679f0bc81bf901cf60a79e50f9715cddec5a))
- Refactor wordlists. ([abab9f6](https://github.com/ethers-io/ethers.js/commit/abab9f6aa27d1870d1053e7caa951408b86c454d))
- Browser testcases work again. ([c11c2e2](https://github.com/ethers-io/ethers.js/commit/c11c2e2e3376a6764f07ed443245823f2792b8cc))
- Added dist files for non-English wordlists. ([3d75c52](https://github.com/ethers-io/ethers.js/commit/3d75c52dac668af5eeede3e7764dadd3055a0707))
- Sync GitHub issue cache. ([29f0e9d](https://github.com/ethers-io/ethers.js/commit/29f0e9dd627a7b4b7f772300497f27718c9ecc7b))
ethers/v5.0.0-beta.160 (2019-11-20 18:36)
-----------------------------------------
- Updated API in testcases. ([3ab3733](https://github.com/ethers-io/ethers.js/commit/3ab373334c75800f2b20b6639ed8eb1b11e453ef))
- Fixed scrypt import in ESM build. ([b72ef27](https://github.com/ethers-io/ethers.js/commit/b72ef27b2a8f9941fb9d79122ec449fed9d2464d))
- Fixed null apiKey problem for InfuraProvider. ([e518151](https://github.com/ethers-io/ethers.js/commit/e51815150912d10e2734707986b10b37c87d6d12))
- Added support for sighash-style tuple parsing. ([19aaade](https://github.com/ethers-io/ethers.js/commit/19aaade9c62510012cfd50ae487ebd1705a28678))
- Fixed solc imports for cli. ([c35ddaf](https://github.com/ethers-io/ethers.js/commit/c35ddaf646efa25e738fee604585a0a7af45b206))
- Added nonce manager to experimental index. ([8316406](https://github.com/ethers-io/ethers.js/commit/8316406977ea26ca2044d16f7b3bb6ba21ef5b43))
- Removing NodesmithProvider from default provider as it is being discontinued. ([01ca350](https://github.com/ethers-io/ethers.js/commit/01ca35036ca11a47f60890e5cae62e46a00f3da8))
- Moved bare ABI named functions and events from Interface into Contracts to simplify other consumers of Interface. ([da8ca2e](https://github.com/ethers-io/ethers.js/commit/da8ca2e8bc982fc3ea0343bb3c593a485ca1fef0))
- Added support for complex API keys including support for INFURA project secrets. ([#464](https://github.com/ethers-io/ethers.js/issues/464), [#651](https://github.com/ethers-io/ethers.js/issues/651), [#652](https://github.com/ethers-io/ethers.js/issues/652); [1ec5804](https://github.com/ethers-io/ethers.js/commit/1ec5804bd460f6948d4813469fdc7bf739baa6a6))
- Migrated to scrypt-js v3. ([75895fa](https://github.com/ethers-io/ethers.js/commit/75895fa1491e7542c755a102f4e4c190685fd2b6))
- Moved getDefaultProvider to providers package. ([51e4ef2](https://github.com/ethers-io/ethers.js/commit/51e4ef2b45b83a8d82923600a2fac544d70b0807))
- Migrating providers to modern syntax and scoping. ([#634](https://github.com/ethers-io/ethers.js/issues/634); [e1509a6](https://github.com/ethers-io/ethers.js/commit/e1509a6326dd2cb8bf7ed64b82dd3947b768a314))
- Migrating to modern syntax and scoping. ([#634](https://github.com/ethers-io/ethers.js/issues/634); [394c36c](https://github.com/ethers-io/ethers.js/commit/394c36cad43f229a94c72d21f94d1c7982a887a1))
- Added provider property to Web3Provider. ([#641](https://github.com/ethers-io/ethers.js/issues/641); [1d4f90a](https://github.com/ethers-io/ethers.js/commit/1d4f90a958da6364117353850d62535c9702abd2))
- Updated GitHub issue cache. ([494381a](https://github.com/ethers-io/ethers.js/commit/494381a6284cc8ed90bd8002d42a6b6d94dc1200))
- Force deploy receipt to address to be null. ([#573](https://github.com/ethers-io/ethers.js/issues/573); [d9d438a](https://github.com/ethers-io/ethers.js/commit/d9d438a119bb11f8516fc9cf02c534ab3816fcb3))
- Updated experimental NonceManager. ([3d514c8](https://github.com/ethers-io/ethers.js/commit/3d514c8dbb94e1c4ce5754463e683dd9dbe7c0aa))
- Fixed typo in error message. ([28339a9](https://github.com/ethers-io/ethers.js/commit/28339a9c8585392086da159a46df4afb8958915c))
- Added GitHub issue caching. ([fea867a](https://github.com/ethers-io/ethers.js/commit/fea867a206f007a17718396e486883a5e718aa29))
ethers/v5.0.0-beta.159 (2019-10-17 01:08)
-----------------------------------------
- Removing TypeScript build files from npm to fix excessive package diffs.
- Fixed getBlock for blockhashes with a leading 0. ([#629](https://github.com/ethers-io/ethers.js/issues/629); [12cfc59](https://github.com/ethers-io/ethers.js/commit/12cfc599656d7e3a6d3d9aa4e468592865a711cc))
ethers/v5.0.0-beta.158 (2019-09-28 01:56)
-----------------------------------------
- Added less-common, but useful, coding functions to Interface. ([778eb3b](https://github.com/ethers-io/ethers.js/commit/778eb3b425b5ab5b23d28e75be92feccd0fc56bc))
- Add response handling and 304 support to fetchJson. ([3d25882](https://github.com/ethers-io/ethers.js/commit/3d25882d6bf689740506b9c569f6e0d30da6f6a5))
- Allow numeric values in a transaction to be odd-lengthed hexstrings. ([#614](https://github.com/ethers-io/ethers.js/issues/614); [a12030a](https://github.com/ethers-io/ethers.js/commit/a12030ad29aa13c02aa75d9e0860f4986a0043b4))
- Simpler crypt for admin tools. ([828c8cf](https://github.com/ethers-io/ethers.js/commit/828c8cfd419ac4f8d11d978c2e2ff83eba5ae909))
ethers/v5.0.0-beta.157 (2019-09-08 02:43)
-----------------------------------------
- Fixed getContractAddress for odd-length hex values. ([#572](https://github.com/ethers-io/ethers.js/issues/572); [751793e](https://github.com/ethers-io/ethers.js/commit/751793ea25183d54d7fc4c610a789608f91c062e))
- Fixed typo in error message. ([#592](https://github.com/ethers-io/ethers.js/issues/592); [6f4291f](https://github.com/ethers-io/ethers.js/commit/6f4291f65f0ea20c65fef7fd7b09b4d5bf5f0dcd))
- Fixed typo in error message. ([#580](https://github.com/ethers-io/ethers.js/issues/580); [9c63b4a](https://github.com/ethers-io/ethers.js/commit/9c63b4a7535f423a802bb1c17c325ce968987349))
- Fixed typo in error message. ([#574](https://github.com/ethers-io/ethers.js/issues/574); [22a2673](https://github.com/ethers-io/ethers.js/commit/22a26736cc332fe6e896c9d2707cc99ceee2fb10))
ethers/v5.0.0-beta.156 (2019-09-06 17:56)
-----------------------------------------
- Removed export star to fix UMD dist file. ([4c17c4d](https://github.com/ethers-io/ethers.js/commit/4c17c4db0455e1b89fd597c4c929cdc36aa3d90d))
- Updated TypeScript version. ([e8028d0](https://github.com/ethers-io/ethers.js/commit/e8028d0e73368257b76b394bb8e2bf63f8aecd71))
- Fixed test suites and reporter. ([1e0ed4e](https://github.com/ethers-io/ethers.js/commit/1e0ed4e99a22a27fe5057336f8cb320809768f3e))
- Added lock-versions admin tool. ([2187604](https://github.com/ethers-io/ethers.js/commit/21876049137644af2b3afa31120ee95d032843a8))
- Updated packages with version lock and moved types. ([85b4db7](https://github.com/ethers-io/ethers.js/commit/85b4db7d6db37b853f11a90cf4648c34404edcf9))
- Fixed typo in error message. ([#592](https://github.com/ethers-io/ethers.js/issues/592); [019c1fc](https://github.com/ethers-io/ethers.js/commit/019c1fc7089b3da2d7bd41c933b6c6bc35c8dade))
- Fixed build process to re-target browser field to ES version. ([3a91e91](https://github.com/ethers-io/ethers.js/commit/3a91e91df56c1ef6cf096c0322f74fd5060891e0))
- Major overhaul in compilation to enable ES6 module generation. ([73a0077](https://github.com/ethers-io/ethers.js/commit/73a0077fd38c6ae79f33a9d4d3cc128a904b4a6c))
- Updated some of the flatworm docs. ([81fd942](https://github.com/ethers-io/ethers.js/commit/81fd9428cab4be7eee7ddeb564bf91f282cae475))
- Fixed package descriptions. ([#561](https://github.com/ethers-io/ethers.js/issues/561); [ebfca98](https://github.com/ethers-io/ethers.js/commit/ebfca98dc276d6f6ca6961632635e8203bb17645))
ethers/v5.0.0-beta.155 (2019-08-22 17:11)
-----------------------------------------
- Added Wrapped Ether and Token transfers to CLI. ([c031a13](https://github.com/ethers-io/ethers.js/commit/c031a1336815923bae85d9982dba0985a79cfaed))
- Fixed sendTransaction and use median gas price in FallbackProvider. ([07e1599](https://github.com/ethers-io/ethers.js/commit/07e15993ba181cfbff987778d158dbde6bb84de2))
- Port optional Secret Storage wallet address to v5. ([#582](https://github.com/ethers-io/ethers.js/issues/582); [a12d60d](https://github.com/ethers-io/ethers.js/commit/a12d60d722dfcf998a2e06eba5e46390d7d442e5))
- Updated flatworm docs output. ([8745a81](https://github.com/ethers-io/ethers.js/commit/8745a81b11b710036ddb546308c13958be1affb9))
- Added initial flatworm documentation stubs. ([0333a76](https://github.com/ethers-io/ethers.js/commit/0333a76f4ff382b5b59b24c672b702721e7a386a))
ethers/v5.0.0-beta.154 (2019-08-21 01:51)
-----------------------------------------
- Use safe transfer for ENS in CLI. ([b7494d8](https://github.com/ethers-io/ethers.js/commit/b7494d8618001797a4e856f3d1886273897e6ba4))
- Fixed quorum-matching logic for FallbackProvider. ([b304ec1](https://github.com/ethers-io/ethers.js/commit/b304ec1f008ec5301c0dbd1a493d790fe3528512))
- Added CloudflareProvider. ([#587](https://github.com/ethers-io/ethers.js/issues/587); [621313d](https://github.com/ethers-io/ethers.js/commit/621313d2a697bc6e1dd25eb5b08d67e832a28d05))
- Added receipt to CALL_EXCEPTION errors. ([724c32e](https://github.com/ethers-io/ethers.js/commit/724c32e8c08b55404594f263e52babb0550a15b8))
ethers/v5.0.0-beta.153 (2019-08-06 19:15)
-----------------------------------------
- Updated gas estimate failure messaging to include that the tx may simple be causing a revert. ([edb26b1](https://github.com/ethers-io/ethers.js/commit/edb26b16354afd707e5d03e174c4cc809b951c4f))
- Additional sanity checks in ethers-ens. ([de4b2a4](https://github.com/ethers-io/ethers.js/commit/de4b2a449ca3a49807c8bedb3e21e8e8d71e63fc))
- Fix bug in --wait for CLI. ([9977c9f](https://github.com/ethers-io/ethers.js/commit/9977c9f66a7007dcc1963128c88c584b6b6c064b))
- Added content-hash support to ENS CLI. ([7dfef46](https://github.com/ethers-io/ethers.js/commit/7dfef463f83a9190d1b89cf81e0fb692da3dd813))
ethers/v5.0.0-beta.152 (2019-08-05 14:37)
-----------------------------------------
- Using CLI --wait instead of custom Plugin flag for ethers-ens. ([19ee2b5](https://github.com/ethers-io/ethers.js/commit/19ee2b516005b2c35b846f19457ec9bbfa0c283b))
- Added --wait as a general flag to CLI. ([7640292](https://github.com/ethers-io/ethers.js/commit/7640292ac8b7b9e6de3ad6699d23e2debf26cc1b))
- Added migrate-registrar and transfer to ENS CLI. ([31e8e1b](https://github.com/ethers-io/ethers.js/commit/31e8e1b0520bc8be390fbf7e2b473c36a8649eb3))
- Include data in the CLI transaction dump. ([53bd96a](https://github.com/ethers-io/ethers.js/commit/53bd96a9f675233906033290f1e0c71ca4e9d389))
- Better errors on gas estimation failure. ([0e6b810](https://github.com/ethers-io/ethers.js/commit/0e6b810def390309240508a99b2cf0736848dedd))
ethers/v5.0.0-beta.151 (2019-08-05 14:29)
-----------------------------------------
- Added package name prefix to all _version for Logger. ([692589d](https://github.com/ethers-io/ethers.js/commit/692589db54cbca10a2a453e9a1801a8612056559))
ethers/v5.0.0-beta.150 (2019-08-03 01:07)
-----------------------------------------
- Fixed old references to errors package. ([1cabce7](https://github.com/ethers-io/ethers.js/commit/1cabce7e1c23b15cc2b630c0b403dd72d815a5ba))
- Added generation scripts for Table A.1 for stringprep. ([#42](https://github.com/ethers-io/ethers.js/issues/42); [b21681a](https://github.com/ethers-io/ethers.js/commit/b21681a7f4292b0e77315caad3a59fe814e9292b))
ethers/v5.0.0-beta.149 (2019-08-03 00:45)
-----------------------------------------
- Fixed some case-folding and added Table A.1 for IDNA. ([#42](https://github.com/ethers-io/ethers.js/issues/42); [f955dca](https://github.com/ethers-io/ethers.js/commit/f955dca417a6f86690cf33a81b08baa99e1b1a5c))
- Removed references to legacy errors pacakge and updated umbrella pacakge. ([c09de16](https://github.com/ethers-io/ethers.js/commit/c09de163473c361cac11ddef9ec852f4cbb7d8e3))
- Updated admin module to use new fetchJson. ([226c100](https://github.com/ethers-io/ethers.js/commit/226c100c72c3fcb0c0e3b62be5f579fd9cc4c904))
- Updated dist files. ([8354c3f](https://github.com/ethers-io/ethers.js/commit/8354c3f9fe5487f21acaaeccd4450d9a5d495bc1))
- Full case-folding for IDNA in namehash. ([0af95f4](https://github.com/ethers-io/ethers.js/commit/0af95f4a655106e67c2ba8f445af88c9e9e24339))
- Deprecating errors for logger. ([0b224e8](https://github.com/ethers-io/ethers.js/commit/0b224e8fb5811cd06727063c909ca1e1e5cde57e))
- More consistent debug events for Providers. ([e8f28b5](https://github.com/ethers-io/ethers.js/commit/e8f28b55d7dd62e29f03628232ffe7c75dc811b5))
ethers/v5.0.0-beta.148 (2019-07-27 18:56)
-----------------------------------------
- Initial drop of new ENS CLI tool. ([c3c65b2](https://github.com/ethers-io/ethers.js/commit/c3c65b2fa19e117d6433c2e0b3d20decfe506c74))
- Added TypeScript tool support for functions with multiple outputs. ([6de4a5d](https://github.com/ethers-io/ethers.js/commit/6de4a5d8a9d114c4c33c58f8a304b60e7370eeff))
- Added CLI support for stand-alone (no sub-command) tools. ([b67b121](https://github.com/ethers-io/ethers.js/commit/b67b12123996f1aaf7cbe3c8648fd85a22d6674e))
- Make utils.resolveProperties preserve object parameter order. ([74dbc28](https://github.com/ethers-io/ethers.js/commit/74dbc281ede042c5eeaa7b45150b215dea860a88))
- Added initial IDNA support for full UTF-8 support in namehash. ([#42](https://github.com/ethers-io/ethers.js/issues/42); [28eb38e](https://github.com/ethers-io/ethers.js/commit/28eb38ee703288aaad9f730b2d93fe3aeea7ada6))
ethers/v5.0.0-beta.147 (2019-07-23 01:04)
-----------------------------------------
- Use the CLI solc instead of solc directly for ABI testcase generation. ([99c7b1c](https://github.com/ethers-io/ethers.js/commit/99c7b1ca94382490b9757fd51375a7ad4259b831))
- Added experimental UTF-8 functions for escaping non-ascii strings. ([b132e32](https://github.com/ethers-io/ethers.js/commit/b132e32172c9d63e59209628dadd5796dd6291c8))
- Bump Solidity version in CLI to 0.5.10. ([6005248](https://github.com/ethers-io/ethers.js/commit/600524842e1a4b857e8428a45c0c7d1baa0624ee))
ethers/v5.0.0-beta.146 (2019-07-20 21:06)
-----------------------------------------
- Keep extra filter topics when using Frgment filters in Contracts. ([efaafb2](https://github.com/ethers-io/ethers.js/commit/efaafb203feaf703de803df7e346652372e9fb75))
- Updated package.json description for Contract package. ([#561](https://github.com/ethers-io/ethers.js/issues/561); [d88ee45](https://github.com/ethers-io/ethers.js/commit/d88ee45937b3484b68f72e3f72ad6c29556c984b))
ethers/v5.0.0-beta.145 (2019-07-20 20:12)
-----------------------------------------
- Export provider.Formatter. ([#562](https://github.com/ethers-io/ethers.js/issues/562); [083fd76](https://github.com/ethers-io/ethers.js/commit/083fd76a3a638ec16d5f9bf652101e5a150c7347))
- Update CLI to use new Fragment.format style. ([9a41199](https://github.com/ethers-io/ethers.js/commit/9a4119910b07d1ad61bafafb38ac18a9dae1d9ed))
- Added FormatTypes to utils. ([a05027c](https://github.com/ethers-io/ethers.js/commit/a05027c744102bbe1be5e13dd89b9c1e64b3b526))
- Added experimental memory-hard password scheme for password-protected mnemonics to the CLI. ([5877418](https://github.com/ethers-io/ethers.js/commit/5877418de94256a69fdf2ad466ba579309b9dee8))
- Added more flexible output options to fragment.format (JSON and minimal) and better JSON object parsing. ([e9558c8](https://github.com/ethers-io/ethers.js/commit/e9558c8d4fe6df889f4d7ba6ac6448aa543ef99d))
ethers/v5.0.0-beta.144 (2019-07-09 17:28)
-----------------------------------------
- Make mnemonic phrases case agnostic. ([#557](https://github.com/ethers-io/ethers.js/issues/557); [e4423b7](https://github.com/ethers-io/ethers.js/commit/e4423b7a277e7e1be1c02d345d4ab1eab484c9b8))
ethers/v5.0.0-beta.143 (2019-07-02 16:12)
-----------------------------------------
- Adding more support for offline signing in the CLI. ([9cc269c](https://github.com/ethers-io/ethers.js/commit/9cc269ceb5d33b2d88542d4bc6771279f729e733))
- Allow providers to prepare their Network object. ([6484908](https://github.com/ethers-io/ethers.js/commit/6484908cb25dd35e5d98b2672dca72ed3f30cbe1))
- Export BIP-44 default path in ethers.utils. ([04bdf45](https://github.com/ethers-io/ethers.js/commit/04bdf456eb07aa72872265e0ee01e3231d2b6cf1))
ethers/v5.0.0-beta.142 (2019-06-28 16:13)
-----------------------------------------
- Do not require a Signer for contract.populateTransaction. ([0e78386](https://github.com/ethers-io/ethers.js/commit/0e78386a08d3d3a0a98c8d03cd665b8992ab3ea2))
- Bumping version of solc to 0.5.9. ([e2da447](https://github.com/ethers-io/ethers.js/commit/e2da447c7bc05937966bc4909c47291e4819d2a9))
ethers/v5.0.0-beta.141 (2019-06-24 21:25)
-----------------------------------------
- Fix non-ES6 import in keccak256. ([5eb393d](https://github.com/ethers-io/ethers.js/commit/5eb393d828328b34567566d3c0d622b4aef1e202))
- Refactored wordlist exports to export Wordlist directly. ([746d255](https://github.com/ethers-io/ethers.js/commit/746d255b741844b615583b2de3ffd07631b4e872))
ethers/v5.0.0-beta.140 (2019-06-12 01:25)
-----------------------------------------
- Move from node-fetch to cross-fetch; better browser fallback implementation. ([826ffbc](https://github.com/ethers-io/ethers.js/commit/826ffbc7c4ed1c301f30e6f264eedeaf3c243ca8))
- Added getStatic with support for inheritance of static methods. ([5e4535e](https://github.com/ethers-io/ethers.js/commit/5e4535e939fdb9d9d23bd14b3e2590873d3eb508))
- Fixed node-fetch for Safari (todo: push this fix upstream to node-fetch). ([7164e51](https://github.com/ethers-io/ethers.js/commit/7164e51131215ae3201b49f8c7f5ade8cbd8a420))
- Migrated XMLHttpRequest to fetch API. ([#506](https://github.com/ethers-io/ethers.js/issues/506); [62201c5](https://github.com/ethers-io/ethers.js/commit/62201c5eebc52e9723dbbb2cc64823155ce1e0f9))
ethers/v5.0.0-beta.139 (2019-06-11 17:55)
-----------------------------------------
- Removed freeze option from deepCopy; all properties are read-only and only objects may have new properties added. ([1bc792d](https://github.com/ethers-io/ethers.js/commit/1bc792d9dcc6a06a1be4fc5e5b9a538a3f6b7ada))
- Moved away from isNamedInstance which breaks after Browserify name mangling. ([257d67c](https://github.com/ethers-io/ethers.js/commit/257d67c9625fa237bcfb3d651c49aa3b79175cae))
- Expose poll function in utils. ([#512](https://github.com/ethers-io/ethers.js/issues/512); [e6f6383](https://github.com/ethers-io/ethers.js/commit/e6f6383346818fa67423f1f20450e011242eb554))
- Make TransactionResponse hash required. ([#537](https://github.com/ethers-io/ethers.js/issues/537); [095c1fe](https://github.com/ethers-io/ethers.js/commit/095c1fe579068a3204ea0d1bc1893f293f61e719))
ethers/v5.0.0-beta.138 (2019-06-04 16:05)
-----------------------------------------
- Fixed INFURA project ID checking. ([#534](https://github.com/ethers-io/ethers.js/issues/534); [5bf763f](https://github.com/ethers-io/ethers.js/commit/5bf763fe2307e8570ab5e91e30c43e2e5731fc39))
ethers/v5.0.0-beta.137 (2019-06-01 14:06)
-----------------------------------------
- Fixed invalid arrayify value in browser for SHA2-HMAC. ([#530](https://github.com/ethers-io/ethers.js/issues/530); [c4a494b](https://github.com/ethers-io/ethers.js/commit/c4a494b528f2e5f706c159d916d8ff0ffd96a211))
- Fix event and function fragment formatting. ([a2d4b29](https://github.com/ethers-io/ethers.js/commit/a2d4b2907184d9480a72fe6f67652489074af86e))
- Fixed default JsonRpcSigner. ([#532](https://github.com/ethers-io/ethers.js/issues/532); [5ba6a61](https://github.com/ethers-io/ethers.js/commit/5ba6a616a6f969b1f28f8c6367c21488f497a7ae))
- Added changelog management to update-versions. ([4a3f719](https://github.com/ethers-io/ethers.js/commit/4a3f7190dc04275030d313289e1ba6a2b31407ec))
ethers/v5.0.0-beta.136
----------------------
- Added queryFilter to Contracts. ([#463](https://github.com/ethers-io/ethers.js/issues/463); [eea53bb](https://github.com/ethers-io/ethers.js/commit/eea53bb1be29ad2bd1b229a13c85b12be264b019))
- Allow storage class in Human-Readable ABI. ([#476](https://github.com/ethers-io/ethers.js/issues/476); [cf39adb](https://github.com/ethers-io/ethers.js/commit/cf39adb09020ca0393e028b330bfd07fb4869236))
- Track per-provider JSON-RPC ID in JsonRpcProvider. ([#337](https://github.com/ethers-io/ethers.js/issues/337), [#489](https://github.com/ethers-io/ethers.js/issues/489); [044554b](https://github.com/ethers-io/ethers.js/commit/044554b58525d1677646a74119f86ea867a06d1e))
- Fixed typo in error message. ([#470](https://github.com/ethers-io/ethers.js/issues/470); [47d92ae](https://github.com/ethers-io/ethers.js/commit/47d92aeff02cacfb26793850c7faef7cb21ce4cf))
ethers/v5.0.0-beta.135
----------------------
- Better error message for unconfigured ENS names. ([#504](https://github.com/ethers-io/ethers.js/issues/504); [3cbc4b4](https://github.com/ethers-io/ethers.js/commit/3cbc4b462262ba61fa7d99a7a12e7bbf8049afb1))
- Fixed contract events. ([#404](https://github.com/ethers-io/ethers.js/issues/404); [8cdda37](https://github.com/ethers-io/ethers.js/commit/8cdda37095df28f828ccd2ac5437ccb6541b16cc))
- Updated license for BaseX to include original authors; was only included in the source. ([03c9725](https://github.com/ethers-io/ethers.js/commit/03c97259c46de10dbe6ce62921de2f32ffff0522))

View File

@@ -1,17 +1,35 @@
The Ethers Project
==================
**EXPERIMENTAL**
[![npm (tag)](https://img.shields.io/npm/v/ethers)](https://www.npmjs.com/package/ethers)
[![Node.js CI](https://github.com/ethers-io/ethers.js/workflows/Node.js%20CI/badge.svg?branch=ethers-v5-beta)](https://github.com/ethers-io/ethers.js/actions?query=workflow%3A%22Node.js+CI%22)
This branch is the next release of ethers.js, which should
be promoted to the official release shortly.
A complete Ethereum wallet implementation and utilities in JavaScript (and TypeScript).
I would recommend it for most new projects and personally use
it for my own projects.
**Features:**
The [new documentation](https://docs-beta.ethers.io) is still a
bit sparse, but is coming along as well and will be complete
before the promotion to master.
- Keep your private keys in your client, **safe** and sound
- Import and export **JSON wallets** (Geth, Parity and crowdsale)
- Import and export BIP 39 **mnemonic phrases** (12 word backup phrases) and **HD Wallets** (English as well as Czech, French, Italian, Japanese, Korean, Simplified Chinese, Spanish, Traditional Chinese)
- Meta-classes create JavaScript objects from any contract ABI, including **ABIv2** and **Human-Readable ABI**
- Connect to Ethereum nodes over [JSON-RPC](https://github.com/ethereum/wiki/wiki/JSON-RPC), [INFURA](https://infura.io), [Etherscan](https://etherscan.io), [Alchemy](https://alchemyapi.io) or [MetaMask](https://metamask.io)
- **ENS names** are first-class citizens; they can be used anywhere an Ethereum addresses can be used
- **Tiny** (~104kb compressed; 322kb uncompressed)
- **Modular** packages; include only what you need
- **Complete** functionality for all your Ethereum desires
- Extensive [documentation](https://docs.ethers.io/ethers.js/html/)
- Large collection of **test cases** which are maintained and added to
- Fully **TypeScript** ready, with definition files and full TypeScript source
- **MIT License** (including ALL dependencies); completely open source to do with as you please
Keep Updated
------------
For the latest news and advisories, please follow the [@ethersproject](https://twitter.com/ethersproject)
on Twitter (low-traffic, non-marketting, important information only) as well as watch this GitHub project.
For the latest changes, see the [CHANGELOG](https://github.com/ethers-io/ethers.js/blob/master/CHANGELOG.md).
Installing
@@ -20,13 +38,13 @@ Installing
**node.js**
```
/home/ricmoo/some_project> npm install --save ethers@next
/home/ricmoo/some_project> npm install --save ethers
```
**browser (UMD)**
```
<script src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js" type="text/javasctipt">
<script src="https://cdn.ethers.io/lib/ethers-5.0.umd.min.js" type="text/javascript">
</script>
```
@@ -39,10 +57,22 @@ Installing
```
Documentation
-------------
Browse the [documentation](https://docs.ethers.io/v5/) online:
- [Getting Started](https://docs.ethers.io/v5/getting-started/)
- [Full API Documentation](https://docs.ethers.io/v5/api/)
- [Various Ethereum Articles](https://blog.ricmoo.com/)
Or browser the entire documentations as a [single page](https://docs.ethers.io/single-page/) to make searching easier.
Ancillary Packages
------------------
These are a number of packages not included in the umbrella `ethers ` npm package, and
These are a number of packages not included in the umbrella `ethers` npm package, and
additional packages are always being added. Often these packages are for specific
use-cases, so rather than adding them to the umbrella package, they are added as
ancillary packaged, which can be included by those who need them, while not bloating
@@ -50,46 +80,9 @@ everyone else with packages they do not need.
We will keep a list of useful pacakges here.
- `@ethersproject/experimental`
- `@ethersproject/cli`
- `@ethersproject/ens`
- `@ethersproject/ledger`
- `@ethersproject/trezor`
Hacking
-------
This project uses a combination of Lerna and the ./admin scripts to manage
itself as a package of packages.
The umbrella package can be found in `packages/ethers`, and all packages in general
can be found in the `packages/` folder.
If you add new dependencies to any package (incuding internal dependencies), you will
need to re-create the internal links and re-build teh dependency graph::
```
/home/ethers> npm run bootstrap
```
To run a continuous build (with incremental TypeScript compilation):
```
/home/ethers> npm run auto-build
```
Finally, once you have made all your changes, you will need to bump the version
of packages that changed their NPM tarballs, as well as update the _version.*
and distribution builds (which is what we host on the CDN for browser-based
apps). To do this, run:
```
/home/ethers> npm run update-versions
```
Which will also list all packages that have changed along with the specifc files.
- `@ethersproject/experimental` ([documentation](https://docs.ethers.io))
- `@ethersproject/cli` ([documentation](https://docs.ethers.io))
- `@ethersproject/hardware-wallets` ([documentation](https://docs.ethers.io))
License

33
SECURITY.md Normal file
View File

@@ -0,0 +1,33 @@
# Security Policy
## Supported Versions
Maintaining multiple versions of the library is quite time consuming, so
the majority of the effort is focused on the latest major release.
If you do require a version outside of this chart updated with patch fix,
please [contact me](mailto:github@ricmoo.com).
| Version | Supported | Initial Release |
| ------- | ------------------------------------------ | ----------------- |
| 5.0.x | :white_check_mark: | 2020-06-12 |
| 4.0.x | :white_check_mark: (security patches only) | 2018-10-01 |
| 3.0.x | :x: | 2018-03-05 |
| 2.2.x | :x: | 2018-01-11 |
| 2.1.x | :x: | 2017-05-22 |
| 2.0.x | :x: | 2017-04-05 |
| 1.0.x | :x: | 2016-08-23 |
| 0.0.x | :x: | 2016-07-14 |
## Reporting a Vulnerability
If you identify a security vulnerability with this library (or any dependency),
please do not hesitate to contact [github@ricmoo.com](mailto:github@ricmoo.com)
immediately.
I try to respond within the same day and will address any concern as quickly
as possible (including code fixes and publishing to NPM).
Any vulnerability will also be published to this file, along with credits,
pertinent information and links to fixes.

View File

@@ -23,15 +23,23 @@ const { log } = require("../log");
const deps = info[key];
if (!deps) { return; }
Object.keys(deps).forEach((name) => {
if (versions[name] == null) { return; }
const value = ">=" + versions[name];
if (value !== deps[name])
if (!deps[name]) { return; }
// Not a package in this monorepoa
const version = versions[name];
if (version == null) { return; }
const value = ((version.indexOf("beta") !== -1) ? ">=": "^") + version;
// No change
if (value === deps[name]) { return; }
// Show a header for the first change
if (!shown) {
log(`<bold:Locking ${ info.name }:>`);
shown = true;
}
log(` <green:${ name }>: ${ deps[name] } => <bold:${ value.substring(2) }>`);
// Show the locked version
log(` <green:${ name }>: ${ deps[name] } => <bold:${ value.replace(">", "&gt;") }>`);
deps[name] = value;
});
});

View File

@@ -10,7 +10,7 @@ const { getPackageVersion, publish } = require("../npm");
const { log } = require("../log");
const USER_AGENT = "ethers-dist@0.0.0";
const TAG = "next";
const TAG = "latest";
let dirnames = getOrdered();
@@ -75,10 +75,7 @@ if (process.argv.length > 2) {
let dirname = dirnames[i];
if (dirname === "ethers") {
options.tag = "next";
includeEthers = true;
} else {
options.tag = "latest";
}
let info = loadPackage(dirname);
@@ -98,20 +95,30 @@ if (process.argv.length > 2) {
log(" <green:Done.>");
}
// Publish the GitHub release (currently beta)
const beta = true;
// Publish the GitHub release
const beta = false;
if (includeEthers) {
{
// The password above already succeeded
const username = await config.get("github-user");
const password = await config.get("github-release");
// The password above already succeeded
const username = await config.get("github-user");
const password = await config.get("github-release");
// Get the latest change from the changelog
const change = latestChange();
// Get the latest change from the changelog
const change = latestChange();
// Publish the release
const link = await createRelease(username, password, change.version, change.title, change.content, beta, gitCommit);
log(`<bold:Published Release:> ${ link }`);
}
/*
{
const accessKey = await config.get("aws-upload-scripts-accesskey");
const secretKey = await config.get("aws-upload-scripts-secretkey");
const s3 =
}
*/
// Publish the release
const link = await createRelease(username, password, change.version, change.title, change.content, beta, gitCommit);
log(`<bold:Published Release:> ${ link }`);
}
})();

100
admin/cmds/serve-docs.js Normal file
View File

@@ -0,0 +1,100 @@
const fs = require("fs");
const http = require("http");
const path = require("path");
function getMime(filename) {
const comps = filename.split('.');
const ext = comps[comps.length - 1];
switch (ext.toLowerCase()) {
case 'css': return 'text/css';
case 'doctree': return 'application/x-doctree';
case 'eot': return 'application/vnd.ms-fontobject';
case 'gif': return 'image/gif';
case 'html': return 'text/html';
case 'js': return 'application/javascript';
case 'jpg': return 'image/jpeg';
case 'jpeg': return 'image/jpeg';
case 'md': return 'text/markdown';
case 'pickle': return 'application/x-pickle';
case 'png': return 'image/png';
case 'svg': return 'image/svg+xml';
case 'ttf': return 'application/x-font-ttf';
case 'txt': return 'text/plain';
case 'woff': return 'application/font-woff';
}
console.log('NO MIME', filename);
return undefined;
}
function start(root, options) {
if (root == null) { throw new Error("root required"); }
if (options == null) { options = { }; }
if (options.port == null) { options.port = 8000; }
root = path.resolve(root);
const server = http.createServer((req, resp) => {
// Follow redirects in options
if (options.redirects && options.redirects[req.url]) {
resp.writeHead(301, { Location: options.redirects[req.url] });
resp.end();
return;
}
let filename = path.resolve(root, "." + req.url);
// Make sure we aren't crawling out of our sandbox
if (req.url[0] !== "/" || filename.substring(0, filename.length) !== filename) {
resp.writeHead(403);
resp.end();
return;
}
try {
const stat = fs.statSync(filename);
if (stat.isDirectory()) {
// Redirect bare directory to its path (i.e. "/foo" => "/foo/")
if (req.url[req.url.length - 1] !== "/") {
resp.writeHead(301, { Location: req.url + "/" });
resp.end();
return;
}
filename += "/index.html";
}
const content = fs.readFileSync(filename);
resp.writeHead(200, {
"Content-Length": content.length,
"Content-Type": getMime(filename)
});
resp.end(content);
return;
} catch (error) {
if (error.code === "ENOENT") {
resp.writeHead(404, { });
resp.end();
return;
}
resp.writeHead(500, { });
resp.end();
return;
}
});
server.listen(options.port, () => {
console.log(`Listening on port: ${ options.port }`);
});
return server;
}
start(path.resolve(__dirname, "../../docs"), {
redirects: {
"/": "/v5/"
}
});

View File

@@ -19,7 +19,7 @@ expired failed fetches formatted formatting funding generated
has ignoring implemented implementer imported including instantiate
keyword labelled larger lookup matches mined modified modifies multi
named needed nested neutered numeric offline optimizer overriding owned packed
padded parsed parsing passed placeholder processing reached
padded parsed parsing passed placeholder processing properties reached
recommended recovered redacted remaining replaced required
serializes shared signed signing skipped stored supported tagging targetted
transactions uninstall unstake unsubscribe using verifies website
@@ -42,8 +42,8 @@ jumpdest mstore shr shl xor
ABIEncoder testcase numberish Wordlist
// Common Code Strings
abi addr api app arg arrayify asm basex bigint bn byte bytecode
callback calldata checksum ciphertext cli codepoint config
abi addr api app arg arrayify asm basex bigint bignumber bn byte
bytecode callback calldata checksum ciphertext cli codepoint config
contenthash ctr ctrl debug dd dklen eexist encseed eof ethaddr
ethseed ethers eval exec filename func gz hid http https hw iv
info init ipc json kdf kdfparams labelhash lang lib mm multihash nfc

View File

@@ -60,7 +60,7 @@ if (process.argv.length > 2) {
// Bump the version if necessary
if (info.version === npmInfo.version) {
let newVersion = semver.inc(info.version, "prerelease", "beta");
let newVersion = semver.inc(info.version, "patch");
// Write out the _version.ts
if (!info._ethers_nobuild) {

View File

@@ -22,6 +22,7 @@ function Config(filename) {
this.salt = null;
this.dkey = null;
this.values = { };
this.canary = "";
this.filename = filename;
}
@@ -37,6 +38,8 @@ Config.prototype.load = async function() {
};
}
this.canary = data.canary || "";
this.salt = data.salt;
const password = await prompt.getPassword(colorify("Password (config-store): ", "bold"));
@@ -77,7 +80,8 @@ Config.prototype.save = function() {
ciphertext: ciphertext.toString("base64"),
iv: iv.toString("base64"),
salt: this.salt,
hmac: hmac
hmac: hmac,
canary: this.canary
};
fs.writeFileSync(this.filename, JSON.stringify(data, null, 2));

View File

@@ -54,7 +54,7 @@ async function runDiff(dirnames) {
// Bump the version if necessary
if (info.version === npmInfo.version) {
info.version = semver.inc(info.version, "prerelease", "beta");
info.version = semver.inc(info.version, "patch");
}
console.log(colorify("<bold:Package>: ") + info.name);
@@ -176,7 +176,7 @@ async function runUpdate(dirnames) {
// Bump the version if necessary
if (info.version === npmInfo.version) {
let newVersion = semver.inc(info.version, "prerelease", "beta");
let newVersion = semver.inc(info.version, "patch");
// Write out the _version.ts
if (!info._ethers_skipPrepare) {

View File

@@ -2,7 +2,7 @@
const resolve = require("path").resolve;
const npm = require("libnpm");
const npmpub = require("libnpmpublish");
const semver = require("semver");
const local = require("./local");
@@ -60,7 +60,7 @@ async function getTarballHash(name, version) {
async function _publish(info, tarball, options) {
try {
let result = await npm.publish(info, tarball, options);
let result = await npmpub.publish(info, tarball, options);
return result;
} catch (error) {

View File

@@ -82,7 +82,7 @@ _subsection: InfuraProvider @<InfuraProvider> @INHERIT<[[UrlJsonRpcProvider]]> @
The **InfuraProvider** is backed by the popular [INFURA](link-infura)
Ethereum service.
_property: new ethers.providers.InfuraProvider([ network = "homestead", [ apiKey ] ])
_property: new ethers.providers.InfuraProvider([ network = "homestead", [ apiKey ] ]) @SRC<providers>
Create a new **InfuraProvider** connected to //network// with
the optional //apiKey//.
@@ -96,6 +96,12 @@ specify a [Project Secret](link-infura-secret) which can be used
on non-public sources (like on a server) to further secure your
API access and quotas.
_property: InfuraProvider.getWebSocketProvider([ network [ , apiKey ] ]) => [[WebSocketProvider]] @<InfuraProvider-getWebSocketProvider> @SRC<providers>
Create a new [[WebSocketProvider]] using the INFURA web-socket endpoint
to connect to //network// with the optional //apiKey//.
The //network// and //apiKey// are specified the same as [the constructor](InfuraProvider).
_note: Note: Default API keys
If no //apiKey// is provided, a shared API key will be used,
which may result in reduced performance and throttled requests.
@@ -136,6 +142,14 @@ provider = new InfuraProvider("homestead", {
projectSecret: projectSecret
});
// Connect to the INFURA WebSocket endpoints with a WebSocketProvider
provider = InfuraProvider.getWebSocketProvider()
// <hide>
provider._websocket.onopen = function(){
provider._websocket.close();
};
// </hide>
_subsection: AlchemyProvider @<AlchemyProvider> @inherit<[[UrlJsonRpcProvider]]> @src<providers:class.AlchemyProvider>

View File

@@ -93,7 +93,7 @@ The URL to use for the JsonRpcProvider instance.
_subsection: Web3Provider @<Web3Provider> @INHERIT<[[JsonRpcProvider]]>
_subsection: Web3Provider @<Web3Provider> @INHERIT<[[JsonRpcProvider]]> @SRC<providers:class.Web3Provider>
The Web3Provider is meant to ease moving from a [web3.js based](link-web3)
application to ethers by wraping an existing Web3-compatible (such as a
@@ -144,3 +144,20 @@ This is identical to ``sendAsync``. Historically, this used a synchronous
web request, but no current browsers support this, so its use this way
was deprecated quite a long time ago
_subsection: WebSocketProvider @<WebSocketProvider> @INHERIT<[[JsonRpcProvider]]> @SRC<providers:class.WebSocketProvider>
The **WebSocketProvider** connects to a JSON-RPC WebSocket-compatible backend
which allows for a persistent connection, multiplexing requests and pub-sub
events for a more immediate event dispatching.
The WebSocket API is newer, and if running your own infrastructure, note that
WebSockets are much more intensive on your server resourses, as they must manage
and maintain the state for each client. For this reason, many services may also
charge additional fees for using their WebSocket endpoints.
_property: new ethers.provider.WebSockerProvider([ url [ , network ] ])
Returns a new [[WebSocketProvider]] connected to //url// as the //network//.
If //url// is unspecified, the default ``"ws:/\/localhost:8546"`` will be used.
If //network// is unspecified, it will be queried from the network.

View File

@@ -263,7 +263,4 @@ module.exports = {
"link-wiki-overflow": { name: "overflow", url: "https:/\/en.wikipedia.org/wiki/Integer_overflow" },
"link-wiki-underflow": { name: "arithmetic underflow", url: "https:/\/en.wikipedia.org/wiki/Arithmetic_underflow" },
},
redirectLinks: JSON.parse(fs.readFileSync(resolve(__dirname, "redirects.json"))),
};

View File

@@ -1,4 +1,4 @@
_section: Contributing and Hacking
_section: Contributing and Hacking @<contributing>
The ethers.js library is something that I've written out of necessity,
and has grown somewhat organically over time.
@@ -25,14 +25,19 @@ have a public discussion and figure out the best way to address to problem/featu
**:)**
_subsection: Building
_subsection: Building @<contributing--building>
If you wish to modify the source code, there are a few steps involved in setting up
your environment.
If you wish to modify the source code, there are a few steps involved in
setting up your environment.
_code: Preparing the Package @lang<shell>
Since the library uses a monorepo, you must install an initial required
set of libraries, which can then be used to install the remaining libraries
used within each package, as well as link all the packages within the repo
with each other.
# Clone the REPO
_code: Preparing for builds @lang<shell>
# Clone the repository
/home/ricmoo> git clone git@github.com:ethers-io/ethers.js.git
/home/ricmoo> cd ethers.js
@@ -44,6 +49,10 @@ _code: Preparing the Package @lang<shell>
/home/ricmoo/ethers.js> npm run bootstrap
_subsection: Making your changes @<contributing--updating>
TODO: Add more information here.
_code: Watching and Building @lang<shell>
# Begin watching the files and re-building whenever they change
@@ -72,3 +81,65 @@ _code: Preparing the Distribution @lang<shell>
/home/ricmoo/ethers.js> npm run update-version
_subsection: Documentation @<contributing--documentation>
The documents are generated using [Flatworm](flatworm) documentation
generation tool, which was written for the purpose of writing the documentation
for ethers.
Style Guide (this section will have much more coming):
- Try to keep lines no longer than //around// 80 characters
- Avoid inline links in the source; use the ``externalLinks`` field in the config.js
- Prefix external links with ``link-``
- Changing an anchor name must be well justified, as it will break all existing links
to that section; flatworm will support symblinks in the future
- In general, I aim for xonsistency; look to similar situations throughout the documentation
_heading: Building
To build the documentation, you should first follow the
[above steps](contributing--building) to build the ethers library.
Building the docs will generate several types of output:
- A full set of HTML pages, linking across each other
- A single one-page HTML page with all pages linking to local anchors
- A full set of README.md pages organized to be browsable and linkable in GitHub
- A metadata dump for tool ingestion (still needs more work)
- (@TODO; only half done) The documentation as a LaTeX and generated PDF
_code: Building the Documentations @lang<shell>
/home/ricmoo/ethers.js> npm run build-docs
_heading: Evaluation
When building the documentation, all code samples are run through a JavaScript
VM to ensure there are no typos in the example code, as well the exact output
of results are injected into the output, so there is no need to keep the results
and code in-sync.
However, this can be a bit of a headache when making many small changes, so to
build the documentation faster, you can skip the evaluation step, which will
inject the code directly.
_code: Build docs skipping evaluation @lang<shell>
/home/ricmoo/ethers.js> npm run build-docs -- --skip-eval
_heading: Previewing Changes
To preview the changes locally, you can use any standard web server and run
from the ``/docs/`` folder, or use the built-in web server.
The same caveats as normal web development apply, such flushing browser
caches after changing (and re-building) the docs.
_code: Running a webserver @lang<shell>
/home/ricmoo/ethers.js> npm run serve-docs

View File

@@ -1,4 +1,4 @@
_section: Flatworm Docs
_section: Flatworm Docs @<flatworm>
The //Flatworm Docs// rendering engine is designed to be **very**
simple, but provide enough formatting necessary for documenting
@@ -102,7 +102,7 @@ _definition: **_table:** //FOOTER//
Creates a [Table](flatworm--table) structured according to the body.
Each cell support and variables support markdown.
Each cell contents supports markdown and variables supports markdown.
**Extensions:** [@style](flatworm--ext-style)
@@ -173,7 +173,8 @@ This is placed in an orange box.
\_null:
This breaks out of a directive. For example, to end a
This breaks out of a directive. For example, to end
a ``_note:`` or ``_code:``.
_subsection: Markdown @<flatworm-markdown>

View File

@@ -0,0 +1,113 @@
const fs = require("fs");
const { resolve } = require("path");
const Content = `
<html>
<head>
<title>ethers.js - Legacy Documentation</title>
<style type="text/css">
html {
font-family: sans-serif;
}
h1 {
opacity: 0.8;
}
.content {
border: 2px solid #000;
border-radius: 7px;
box-shadow: 5px 5px 10px #aaa;
left: 50%;
padding: 20px;
position: absolute;
text-align: center;
transform: translate(-50%, 30px);
width: 700px;
}
.hr {
border-top: 1px solid black;
margin: 4px 10px 40px;
}
span.v5 {
font-size: 24px;
margin-bottom: 40px;
}
span.v4 {
opacity: 0.7;
}
</style>
</head>
<body>
<div class="content">
<h1>This link is out-of-date <i>and</i> has moved.</h1>
<div class="hr"></div>
<span class="v5">Click <a id="link-v5" href="%%DEFAULT%%">here</a> to visit the updated documentation</span>
<br />
<br />
<br />
<span class="v4">or continue to the historic <a id="link-v4" href="%%LEGACY%%">legacy documentation</a>.</span>
</div>
<script type="text/javascript">
var redirects = %%REDIRECTS%%;
var hash = location.hash;
if (hash && hash !== "#") {
hash = hash.substring(1);
var v4 = document.getElementById("link-v4");
v4.setAttribute("href", v4.getAttribute("href").split("#")[0] + "#" + hash);
var target = redirects[hash];
if (target) {
var v5 = document.getElementById("link-v5");
v5.setAttribute("href", target);
}
}
</script>
</body>
</html>`
const redirects = require("./redirects.json");
const links = require("../docs/v5/metadata.json").links;
const result = { };
const prefix = "ethers.js/html/";
Object.keys(redirects).forEach((uri) => {
if (uri.substring(0, prefix.length) !== prefix) { return; }
const comps = uri.substring(prefix.length).split("#");
const filename = comps[0];
const hash = comps[1] || "_";
const tag = redirects[uri];
let path = null;
if (tag.path) {
path = tag.path;
} else if (tag.tag) {
path = links[tag.tag] || null;
} else {
console.log("Missing tag:", uri);
return;
}
if (!path) {
console.log("Missing path:", uri);
return;
}
if (!result[filename]) { result[filename] = {
"_legacy": `/v4/${ filename }`
}; }
result[filename][hash] = path;
});
function generateOutput(filename) {
const page = result[filename];
return Content.replace("%%DEFAULT%%", page._ || "/v5/")
.replace("%%LEGACY%%", page._legacy || "/v4/")
.replace("%%REDIRECTS%%", JSON.stringify(page));
}
Object.keys(result).forEach((filename) => {
const output = generateOutput(filename);
const path = resolve(__dirname, "../docs/ethers.js/html", filename);
fs.writeFileSync(path, output);
});

View File

@@ -414,7 +414,7 @@
"ethers.js/html/migration.html#waiting-for-transactions":
{ "tag": "" },
"ethers.js/html/notes.html":
{ "tag": "/v5/" },
{ "path": "/v5/" },
"ethers.js/html/notes.html#checksum-address":
{ "tag": "address-formats" },
"ethers.js/html/notes.html#contributing":

View File

@@ -44,7 +44,7 @@
<span class="v4">or continue to the historic <a id="link-v4" href="/v4/notes.html">legacy documentation</a>.</span>
</div>
<script type="text/javascript">
var redirects = {"_legacy":"/v4/notes.html","checksum-address":"/v5/api/utils/address/#address-formats","contributing":"/v5/contributing/","icap-address":"/v5/api/utils/address/#address-formats","ieee754":"/v5/api/utils/bignumber/#BigNumber--notes-safenumbers","memory-hard-brute-force-encrpyting":"/v5/concepts/security/#security--pbkdf","responsible-disclosure":"/v5/contributing/","security":"/v5/concepts/security/","why-can-t-i-just-use-numbers":"/v5/api/utils/bignumber/#BigNumber--notes-safenumbers"};
var redirects = {"_legacy":"/v4/notes.html","_":"/v5/","checksum-address":"/v5/api/utils/address/#address-formats","contributing":"/v5/contributing/","icap-address":"/v5/api/utils/address/#address-formats","ieee754":"/v5/api/utils/bignumber/#BigNumber--notes-safenumbers","memory-hard-brute-force-encrpyting":"/v5/concepts/security/#security--pbkdf","responsible-disclosure":"/v5/contributing/","security":"/v5/concepts/security/","why-can-t-i-just-use-numbers":"/v5/api/utils/bignumber/#BigNumber--notes-safenumbers"};
var hash = location.hash;
if (hash && hash !== "#") {
hash = hash.substring(1);

View File

@@ -71,7 +71,7 @@ contract.value()
<div class="nav previous"><a href="/v5/api/contract/contract/"><span class="arrow">&larr;</span>Contract</a></div>
<div class="nav next"><a href="/v5/api/contract/example/">Example: ERC-20 Contract<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -109,7 +109,7 @@
<div class="nav previous"><a href="/v5/api/contract/"><span class="arrow">&larr;</span>Contract Interaction</a></div>
<div class="nav next"><a href="/v5/api/contract/contract-factory/">ContractFactory<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -18,41 +18,42 @@
<a name="example-erc-20-contract"></a><h1 class="show-anchors"><div>Example: ERC-20 Contract<div class="anchors"><a class="self" href="/v5/api/contract/example/#example-erc-20-contract"></a></div></div></h1>
<a name="example-erc-20-contract--connecting-to-a-contract"></a><h2 class="show-anchors"><div>Connecting to a Contract<div class="anchors"><a class="self" href="/v5/api/contract/example/#example-erc-20-contract--connecting-to-a-contract"></a></div></div></h2>
<div class="code-title"><div>A simple ERC-20 contract</div></div><div class="code">// A Human-Readable ABI; any supported ABI format could be used
const abi = [
// Read-Only Functions
"function balanceOf(address owner) view returns (uint256)",
<div class="code-title"><div>A simple ERC-20 contract</div></div><div class="code"><span class="comment">// A Human-Readable ABI; any supported ABI format could be used
</span>const abi = [
<span class="comment"> // Read-Only Functions
</span> "function balanceOf(address owner) view returns (uint256)",
"function decimals() view returns (uint8)",
"function symbol() view returns (string)",
// Authenticated Functions
"function transfer(address to, uint amount) returns (boolean)",
<span class="comment"> // Authenticated Functions
</span> "function transfer(address to, uint amount) returns (boolean)",
// Events
"event Transfer(address indexed from, address indexed to, uint amount)"
<span class="comment"> // Events
</span> "event Transfer(address indexed from, address indexed to, uint amount)"
];
// This can be an address or an ENS name
const address = "dai.tokens.ethers.eth";
<span class="comment">// This can be an address or an ENS name
</span>const address = "dai.tokens.ethers.eth";
// An example Provider
const provider = ethers.getDefaultProvider();
<span class="comment">// An example Provider
</span>const provider = ethers.getDefaultProvider();
// An example Signer
const signer = ethers.Wallet.createRandom().connect(provider);
<span class="comment">// An example Signer
</span>const signer = ethers.Wallet.createRandom().connect(provider);
// Read-Only; By connecting to a Provider, allows:
// - Any constant function
// - Querying Filters
// - Populating Unsigned Transactions for non-constant methods
// - Estimating Gas for non-constant (as an anonymous sender)
// - Static Calling non-constant methods (as anonymous sender)
const erc20 = new ethers.Contract(address, abi, provider);
<span class="comment">// Read-Only; By connecting to a Provider, allows:
</span><span class="comment">// - Any constant function
</span><span class="comment">// - Querying Filters
</span><span class="comment">// - Populating Unsigned Transactions for non-constant methods
</span><span class="comment">// - Estimating Gas for non-constant (as an anonymous sender)
</span><span class="comment">// - Static Calling non-constant methods (as anonymous sender)
</span>const erc20 = new ethers.Contract(address, abi, provider);
// Read-Write; By connecting to a Signer, allows:
// - Everything from Read-Only (except as Signer, not anonymous)
// - Sending transactions for non-constant functions
const erc20_rw = new ethers.Contract(address, abi, signer)</div><a name="example-erc-20-contract--connecting-to-a-contract--erc20contract"></a><h3 class="show-anchors"><div>ERC20Contract<span class="inherits"> inherits <a href="/v5/api/contract/contract/">Contract</a></span><div class="anchors"><a class="self" href="/v5/api/contract/example/#example-erc-20-contract--connecting-to-a-contract--erc20contract"></a></div></div></h3>
<span class="comment">// Read-Write; By connecting to a Signer, allows:
</span><span class="comment">// - Everything from Read-Only (except as Signer, not anonymous)
</span><span class="comment">// - Sending transactions for non-constant functions
</span>const erc20_rw = new ethers.Contract(address, abi, signer)
</div><a name="example-erc-20-contract--connecting-to-a-contract--erc20contract"></a><h3 class="show-anchors"><div>ERC20Contract<span class="inherits"> inherits <a href="/v5/api/contract/contract/">Contract</a></span><div class="anchors"><a class="self" href="/v5/api/contract/example/#example-erc-20-contract--connecting-to-a-contract--erc20contract"></a></div></div></h3>
<div class="property show-anchors"><div class="signature"><span class="modifier">new </span><span class="path">ethers</span><span class="symbol">.</span><span class="method">Contract</span><span class="symbol">(</span> <span class="param">address</span> <span class="symbol">,</span> <span class="param">abi</span> <span class="symbol">,</span> <span class="param">providerOrSigner</span> <span class="symbol">)</span><div class="anchors"></div></div><div class="body"><p>See the above code example for creating an Instance which will (in addition to the Contact methods and properties) automatically add the additional properties defined in <i>abi</i> to a <b>Contract</b> connected to <i>address</i> using the <i>providerOrSigner</i>.</p>
</div></div><a name="example-erc-20-contract--properties"></a><h2 class="show-anchors"><div>Properties<span class="inherits">(inheritted from <a href="/v5/api/contract/contract/">Contract</a>)</span><div class="anchors"><a class="self" href="/v5/api/contract/example/#example-erc-20-contract--properties"></a></div></div></h2>
@@ -126,7 +127,7 @@ const erc20_rw = new ethers.Contract(address, abi, signer)</div><a name="example
<div class="nav previous"><a href="/v5/api/contract/contract-factory/"><span class="arrow">&larr;</span>ContractFactory</a></div>
<div class="nav next"><a href="/v5/api/signer/">Signers<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -26,7 +26,7 @@
<div class="nav previous"><a href="/v5/api/"><span class="arrow">&larr;</span>Application Programming Interface</a></div>
<div class="nav next"><a href="/v5/api/contract/contract/">Contract<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -54,7 +54,7 @@
<div class="nav previous"><a href="/v5/api/other/hardware/"><span class="arrow">&larr;</span>Hardware Wallets</a></div>
<div class="nav next"><a href="/v5/cli/">Command Line Interfaces<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/concepts/security/"><span class="arrow">&larr;</span>Security</a></div>
<div class="nav next"><a href="/v5/api/contract/">Contract Interaction<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -69,7 +69,7 @@
<div class="nav previous"><a href="/v5/api/other/assembly/dialect/"><span class="arrow">&larr;</span>Ethers ASM Dialect</a></div>
<div class="nav next"><a href="/v5/api/other/assembly/ast/">Abstract Syntax Tree<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -87,7 +87,7 @@
<div class="nav previous"><a href="/v5/api/other/assembly/api/"><span class="arrow">&larr;</span>Utilities</a></div>
<div class="nav next"><a href="/v5/api/other/hardware/">Hardware Wallets<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -77,7 +77,7 @@
<div class="nav previous"><a href="/v5/api/other/assembly/"><span class="arrow">&larr;</span>Assembly</a></div>
<div class="nav next"><a href="/v5/api/other/assembly/api/">Utilities<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/api/other/"><span class="arrow">&larr;</span>Other Libraries</a></div>
<div class="nav next"><a href="/v5/api/other/assembly/dialect/">Ethers ASM Dialect<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -19,7 +19,8 @@
<a name="hardware-wallets"></a><h1 class="show-anchors"><div>Hardware Wallets<div class="anchors"><a class="self" href="/v5/api/other/hardware/#hardware-wallets"></a></div></div></h1>
<a name="hw-ledger"></a><a name="hardware-wallets--hw-ledger"></a><h2 class="show-anchors"><div>LedgerSigner<span class="inherits"> inherits <a href="/v5/api/signer/#Signer">Signer</a></span><div class="anchors"><a class="self" href="/v5/api/other/hardware/#hw-ledger"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/hardware-wallets/src.ts/ledger.ts#L23">source</a></div></div></h2><p>The <a href="https://www.ledger.com">Ledger Hardware Wallets</a> are a fairly popular brand.</p>
<div class="code-title"><div>Importing in ES6 or TypeScript</div></div><div class="code">import { LedgerSigner } from "@ethersproject/hardware-wallets";</div><a name="hardware-wallets--hw-ledger--api"></a><h3 class="show-anchors"><div>API<div class="anchors"><a class="self" href="/v5/api/other/hardware/#hardware-wallets--hw-ledger--api"></a></div></div></h3>
<div class="code-title"><div>Importing in ES6 or TypeScript</div></div><div class="code">import { LedgerSigner } from "@ethersproject/hardware-wallets";
</div><a name="hardware-wallets--hw-ledger--api"></a><h3 class="show-anchors"><div>API<div class="anchors"><a class="self" href="/v5/api/other/hardware/#hardware-wallets--hw-ledger--api"></a></div></div></h3>
<div class="property show-anchors"><div class="signature"><span class="modifier">new </span><span class="method">LedgerSigner</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">provider</span> <span class="symbol">[</span> <span class="symbol">,</span> <span class="param">type</span> <span class="symbol">[</span> <span class="symbol">,</span> <span class="param">path</span> <span class="symbol">]</span> <span class="symbol">]</span> <span class="symbol">]</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/other/hardware/#hw-ledger">LedgerSigner</a></span><div class="anchors"></div></div><div class="body"><p>Connects to a Ledger Hardware Wallet. The <i>type</i> if left unspecified is determined by the environment; in node the default is "hid" and in the browser "u2f" is the default. The default Ethereum path is used if <i>path</i> is left unspecified.</p>
</div></div>
@@ -28,7 +29,7 @@
<div class="nav previous"><a href="/v5/api/other/assembly/ast/"><span class="arrow">&larr;</span>Abstract Syntax Tree</a></div>
<div class="nav next"><a href="/v5/api/experimental/">Experimental<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/api/utils/wordlists/"><span class="arrow">&larr;</span>Wordlists</a></div>
<div class="nav next"><a href="/v5/api/other/assembly/">Assembly<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -38,11 +38,6 @@ It is highly recommended for production, you register with [Etherscan](https://e
```javascript
// <hide>
const EtherscanProvider = ethers.providers.EtherscanProvider;
const apiKey = "...";
// </hide>
// Connect to mainnet (homestead)
provider = new EtherscanProvider();
@@ -51,11 +46,11 @@ provider = new EtherscanProvider("rinkeby");
provider = new EtherscanProvider(4);
const network = ethers.providers.getNetwork("rinkeby");
// <hide>
delete network._defaultProvider;
network
// </hide>
//!
// {
// chainId: 4,
// ensAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
// name: 'rinkeby'
// }
provider = new EtherscanProvider(network);
@@ -100,12 +95,6 @@ It is highly recommended for production, you register with [INFURA](https://infu
```javascript
// <hide>
const InfuraProvider = ethers.providers.InfuraProvider;
const projectId = "...";
const projectSecret = "...";
// </hide>
// Connect to mainnet (homestead)
provider = new InfuraProvider();
@@ -153,11 +142,6 @@ It is highly recommended for production, you register with [Alchemy](https://alc
```javascript
// <hide>
const AlchemyProvider = ethers.providers.AlchemyProvider;
const apiKey = "...";
// </hide>
// Connect to mainnet (homestead)
provider = new AlchemyProvider();
@@ -186,10 +170,6 @@ Create a new **CloudflareProvider** connected to mainnet (i.e. "homestead").
```javascript
// <hide>
const CloudflareProvider = ethers.providers.CloudflareProvider;
// </hide>
// Connect to mainnet (homestead)
provider = new CloudflareProvider();
```

View File

@@ -34,30 +34,26 @@
</div></div><div class="definition"><div class="term"><b>Supported Networks</b></div><div class="body"><p><ul><li>Homestead (Mainnet) </li><li>Ropsten (proof-of-work testnet) </li><li>Rinkeby (proof-of-authority testnet) </li><li>G&ouml;rli (clique testnet) </li><li>Kovan (proof-of-authority testnet) </li></ul></p>
</div></div><div class="code-title"><div>Etherscan Examples</div></div><div class="code">// &lt;hide&gt;
const EtherscanProvider = ethers.providers.EtherscanProvider;
const apiKey = "...";
// &lt;/hide&gt;
</div></div><div class="code-title"><div>Etherscan Examples</div></div><div class="code"><span class="comment">// Connect to mainnet (homestead)
</span>provider = new EtherscanProvider();
// Connect to mainnet (homestead)
provider = new EtherscanProvider();
// Connect to rinkeby testnet (these are equivalent)
provider = new EtherscanProvider("rinkeby");
<span class="comment">// Connect to rinkeby testnet (these are equivalent)
</span>provider = new EtherscanProvider("rinkeby");
provider = new EtherscanProvider(4);
const network = ethers.providers.getNetwork("rinkeby");
// &lt;hide&gt;
delete network._defaultProvider;
network
// &lt;/hide&gt;
//!
<span class="result ok">// {
</span><span class="result ok">// chainId: 4,
</span><span class="result ok">// ensAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
</span><span class="result ok">// name: 'rinkeby'
</span><span class="result ok">// }
</span>
provider = new EtherscanProvider(network);
// Connect to mainnet (homestead) with an API key
provider = new EtherscanProvider(null, apiKey);
provider = new EtherscanProvider("homestead", apiKey);</div><div class="property show-anchors"><div class="signature"><span class="path">provider</span><span class="symbol">.</span><span class="method">getHistory</span><span class="symbol">(</span> <span class="param">address</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Array&lt; History &gt;</span><div class="anchors"><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/etherscan-provider.ts#L306">source</a></div></div><div class="body"><p>@TODO... Explain</p>
<span class="comment">// Connect to mainnet (homestead) with an API key
</span>provider = new EtherscanProvider(null, apiKey);
provider = new EtherscanProvider("homestead", apiKey);
</div><div class="property show-anchors"><div class="signature"><span class="path">provider</span><span class="symbol">.</span><span class="method">getHistory</span><span class="symbol">(</span> <span class="param">address</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Array&lt; History &gt;</span><div class="anchors"><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/etherscan-provider.ts#L306">source</a></div></div><div class="body"><p>@TODO... Explain</p>
</div></div><a name="InfuraProvider"></a><a name="api-providers--InfuraProvider"></a><h2 class="show-anchors"><div>InfuraProvider<span class="inherits"> inherits <a href="/v5/api/providers/other/#UrlJsonRpcProvider">UrlJsonRpcProvider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/api-providers/#InfuraProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/infura-provider.ts#L17">source</a></div></div></h2><p>The <b>InfuraProvider</b> is backed by the popular <a href="https://infura.io">INFURA</a> Ethereum service.</p>
@@ -73,28 +69,23 @@ provider = new EtherscanProvider("homestead", apiKey);</div><div class="property
</div></div><div class="definition"><div class="term"><b>Supported Networks</b></div><div class="body"><p><ul><li>Homestead (Mainnet) </li><li>Ropsten (proof-of-work testnet) </li><li>Rinkeby (proof-of-authority testnet) </li><li>G&ouml;rli (clique testnet) </li><li>Kovan (proof-of-authority testnet) </li></ul></p>
</div></div><div class="code-title"><div>INFURA Examples</div></div><div class="code">// &lt;hide&gt;
const InfuraProvider = ethers.providers.InfuraProvider;
const projectId = "...";
const projectSecret = "...";
// &lt;/hide&gt;
</div></div><div class="code-title"><div>INFURA Examples</div></div><div class="code"><span class="comment">// Connect to mainnet (homestead)
</span>provider = new InfuraProvider();
// Connect to mainnet (homestead)
provider = new InfuraProvider();
<span class="comment">// Connect to the ropsten testnet
</span><span class="comment">// (see EtherscanProvider above for other network examples)
</span>provider = new InfuraProvider("ropsten");
// Connect to the ropsten testnet
// (see EtherscanProvider above for other network examples)
provider = new InfuraProvider("ropsten");
// Connect to mainnet with a Project ID (these are equivalent)
provider = new InfuraProvider(null, projectId);
<span class="comment">// Connect to mainnet with a Project ID (these are equivalent)
</span>provider = new InfuraProvider(null, projectId);
provider = new InfuraProvider("homestead", projectId);
// Connect to mainnet with a Project ID and Project Secret
provider = new InfuraProvider("homestead", {
<span class="comment">// Connect to mainnet with a Project ID and Project Secret
</span>provider = new InfuraProvider("homestead", {
projectId: projectId,
projectSecret: projectSecret
});</div><a name="AlchemyProvider"></a><a name="api-providers--AlchemyProvider"></a><h2 class="show-anchors"><div>AlchemyProvider<span class="inherits"> inherits <a href="/v5/api/providers/other/#UrlJsonRpcProvider">UrlJsonRpcProvider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/api-providers/#AlchemyProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/alchemy-provider.ts#L18">source</a></div></div></h2><p>The <b>AlchemyProvider</b> is backed by <a href="https://alchemyapi.io">Alchemy</a>.</p>
});
</div><a name="AlchemyProvider"></a><a name="api-providers--AlchemyProvider"></a><h2 class="show-anchors"><div>AlchemyProvider<span class="inherits"> inherits <a href="/v5/api/providers/other/#UrlJsonRpcProvider">UrlJsonRpcProvider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/api-providers/#AlchemyProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/alchemy-provider.ts#L18">source</a></div></div></h2><p>The <b>AlchemyProvider</b> is backed by <a href="https://alchemyapi.io">Alchemy</a>.</p>
<div class="property show-anchors"><div class="signature"><span class="modifier">new </span><span class="path">ethers</span><span class="symbol">.</span><span class="path">providers</span><span class="symbol">.</span><span class="method">AlchemyProvider</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">network</span> = "<span class="param">homestead</span>" <span class="symbol">,</span> <span class="symbol">[</span> <span class="param">apiKey</span> <span class="symbol">]</span> <span class="symbol">]</span> <span class="symbol">)</span><div class="anchors"></div></div><div class="body"><p>Create a new <b>AlchemyProvider</b> connected to <i>network</i> with the optional <i>apiKey</i>.</p>
@@ -106,38 +97,31 @@ provider = new InfuraProvider("homestead", {
</div></div><div class="definition"><div class="term"><b>Supported Networks</b></div><div class="body"><p><ul><li>Homestead (Mainnet) </li><li>Ropsten (proof-of-work testnet) </li><li>Rinkeby (proof-of-authority testnet) </li><li>G&ouml;rli (clique testnet) </li><li>Kovan (proof-of-authority testnet) </li></ul></p>
</div></div><div class="code-title"><div>Alchemy Examples</div></div><div class="code">// &lt;hide&gt;
const AlchemyProvider = ethers.providers.AlchemyProvider;
const apiKey = "...";
// &lt;/hide&gt;
</div></div><div class="code-title"><div>Alchemy Examples</div></div><div class="code"><span class="comment">// Connect to mainnet (homestead)
</span>provider = new AlchemyProvider();
// Connect to mainnet (homestead)
provider = new AlchemyProvider();
<span class="comment">// Connect to the ropsten testnet
</span><span class="comment">// (see EtherscanProvider above for other network examples)
</span>provider = new AlchemyProvider("ropsten");
// Connect to the ropsten testnet
// (see EtherscanProvider above for other network examples)
provider = new AlchemyProvider("ropsten");
// Connect to mainnet with an API key (these are equivalent)
provider = new AlchemyProvider(null, apiKey);
provider = new AlchemyProvider("homestead", apiKey);</div><a name="CloudflareProvider"></a><a name="api-providers--CloudflareProvider"></a><h2 class="show-anchors"><div>CloudflareProvider<span class="inherits"> inherits <a href="/v5/api/providers/other/#UrlJsonRpcProvider">UrlJsonRpcProvider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/api-providers/#CloudflareProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/cloudflare-provider.ts#L10">source</a></div></div></h2><p>The CloudflareProvider is backed by the <a href="https://developers.cloudflare.com/distributed-web/ethereum-gateway/">Cloudflare Ethereum Gateway</a>.</p>
<span class="comment">// Connect to mainnet with an API key (these are equivalent)
</span>provider = new AlchemyProvider(null, apiKey);
provider = new AlchemyProvider("homestead", apiKey);
</div><a name="CloudflareProvider"></a><a name="api-providers--CloudflareProvider"></a><h2 class="show-anchors"><div>CloudflareProvider<span class="inherits"> inherits <a href="/v5/api/providers/other/#UrlJsonRpcProvider">UrlJsonRpcProvider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/api-providers/#CloudflareProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/cloudflare-provider.ts#L10">source</a></div></div></h2><p>The CloudflareProvider is backed by the <a href="https://developers.cloudflare.com/distributed-web/ethereum-gateway/">Cloudflare Ethereum Gateway</a>.</p>
<div class="property show-anchors"><div class="signature"><span class="modifier">new </span><span class="path">ethers</span><span class="symbol">.</span><span class="path">providers</span><span class="symbol">.</span><span class="method">CloudflareProvider</span><span class="symbol">(</span> <span class="symbol">)</span><div class="anchors"></div></div><div class="body"><p>Create a new <b>CloudflareProvider</b> connected to mainnet (i.e. "homestead").</p>
</div></div><div class="definition"><div class="term"><b>Supported Networks</b></div><div class="body"><p><ul><li>Homestead (Mainnet) </li></ul></p>
</div></div><div class="code-title"><div>Cloudflare Examples</div></div><div class="code">// &lt;hide&gt;
const CloudflareProvider = ethers.providers.CloudflareProvider;
// &lt;/hide&gt;
// Connect to mainnet (homestead)
provider = new CloudflareProvider();</div>
</div></div><div class="code-title"><div>Cloudflare Examples</div></div><div class="code"><span class="comment">// Connect to mainnet (homestead)
</span>provider = new CloudflareProvider();
</div>
<div class="footer">
<div class="nav previous"><a href="/v5/api/providers/jsonrpc-provider/"><span class="arrow">&larr;</span>JsonRpcProvider</a></div>
<div class="nav next"><a href="/v5/api/providers/other/">Other 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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -47,7 +47,7 @@
<div class="nav previous"><a href="/v5/api/signer/"><span class="arrow">&larr;</span>Signers</a></div>
<div class="nav next"><a href="/v5/api/providers/provider/">Provider<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -16,18 +16,18 @@
<div class="content">
<div class="breadcrumbs"><a href="/v5/">Documentation</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp;<a href="/v5/api/">API</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp;<a href="/v5/api/providers/">Providers</a>&nbsp;&nbsp;&raquo;&nbsp;&nbsp;<span class="current">JsonRpcProvider</span></div>
<a name="JsonRpcProvider"></a><a name="JsonRpcProvider"></a><h1 class="show-anchors"><div>JsonRpcProvider<span class="inherits"> inherits <a href="/v5/api/providers/provider/">Provider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L234">source</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>
<a name="JsonRpcProvider"></a><a name="JsonRpcProvider"></a><h1 class="show-anchors"><div>JsonRpcProvider<span class="inherits"> inherits <a href="/v5/api/providers/provider/">Provider</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L220">source</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="symbol">.</span><span class="path">providers</span><span class="symbol">.</span><span class="method">JsonRpcProvider</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">url</span> <span class="symbol">[</span> <span class="symbol">,</span> <span class="param">aNetworkish</span> <span class="symbol">]</span> <span class="symbol">]</span> <span class="symbol">)</span><div class="anchors"><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L240">source</a></div></div><div class="body"><p>Connect to a JSON-RPC API located at <i>url</i> using the <i>aNetworkish</i> network. If <i>url</i> is not specified, the default (i.e. <code class="inline">http://localhost:8545</code>) is used and if no network is specified, it will be determined automatically by querying the node.</p>
<div class="property show-anchors"><div class="signature"><span class="modifier">new </span><span class="path">ethers</span><span class="symbol">.</span><span class="path">providers</span><span class="symbol">.</span><span class="method">JsonRpcProvider</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">url</span> <span class="symbol">[</span> <span class="symbol">,</span> <span class="param">aNetworkish</span> <span class="symbol">]</span> <span class="symbol">]</span> <span class="symbol">)</span><div class="anchors"><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L226">source</a></div></div><div class="body"><p>Connect to a JSON-RPC API located at <i>url</i> using the <i>aNetworkish</i> network. If <i>url</i> is not specified, the default (i.e. <code class="inline">http://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"><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, configuration or settings in their UI to enable JSON-RPC, unlock accounrs or expose specific APIs. Please consult their documentation.</p>
</div></div><a name="JsonRpcProvider-getSigner"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">getSigner</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">addressOrIndex</span> <span class="symbol">]</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner">JsonRpcSigner</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L305">source</a></div></div><div class="body"><p>Returns a <a href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner">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="JsonRpcProvider-getSigner"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">getSigner</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">addressOrIndex</span> <span class="symbol">]</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner">JsonRpcSigner</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L291">source</a></div></div><div class="body"><p>Returns a <a href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner">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="JsonRpcProvider-getUncheckedSigner"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">getUncheckedSigner</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">addressOrIndex</span> <span class="symbol">]</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/providers/jsonrpc-provider/#UncheckedJsonRpcSigner">JsonRpcUncheckedSigner</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L309">source</a></div></div><div class="body">
</div></div><a name="JsonRpcProvider-listAccounts"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">listAccounts</span><span class="symbol">(</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Array&lt; string &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L313">source</a></div></div><div class="body"><p>Returns a list of all account addresses managed by this provider.</p>
</div></div><a name="JsonRpcProvider-getUncheckedSigner"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">getUncheckedSigner</span><span class="symbol">(</span> <span class="symbol">[</span> <span class="param">addressOrIndex</span> <span class="symbol">]</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/providers/jsonrpc-provider/#UncheckedJsonRpcSigner">JsonRpcUncheckedSigner</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L295">source</a></div></div><div class="body">
</div></div><a name="JsonRpcProvider-listAccounts"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">listAccounts</span><span class="symbol">(</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Array&lt; string &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L299">source</a></div></div><div class="body"><p>Returns a list of all account addresses managed by this provider.</p>
</div></div><a name="JsonRpcProvider-send"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">send</span><span class="symbol">(</span> <span class="param">method</span> <span class="symbol">,</span> <span class="param">params</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Promise&lt; any &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L319">source</a></div></div><div class="body"><p>Allows sending raw messages to the provider.</p>
</div></div><a name="JsonRpcProvider-send"></a><div class="property show-anchors"><div class="signature"><span class="path">jsonRpcProvider</span><span class="symbol">.</span><span class="method">send</span><span class="symbol">(</span> <span class="param">method</span> <span class="symbol">,</span> <span class="param">params</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Promise&lt; any &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-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#L305">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>
@@ -35,13 +35,13 @@
<div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">provider</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/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><a name="JsonRpcSigner-connectUnchecked"></a><div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">connectUnchecked</span><span class="symbol">(</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/providers/jsonrpc-provider/#UncheckedJsonRpcSigner">JsonRpcUncheckedSigner</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner-connectUnchecked"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L87">source</a></div></div><div class="body"><p>Returns a new Signer object which does not perform addtional checks when sending a transaction. See <a href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-getUncheckedSigner">getUncheckedSigner</a> for more details.</p>
</div></div><a name="JsonRpcSigner-connectUnchecked"></a><div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">connectUnchecked</span><span class="symbol">(</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/providers/jsonrpc-provider/#UncheckedJsonRpcSigner">JsonRpcUncheckedSigner</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner-connectUnchecked"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L83">source</a></div></div><div class="body"><p>Returns a new Signer object which does not perform addtional checks when sending a transaction. See <a href="/v5/api/providers/jsonrpc-provider/#JsonRpcProvider-getUncheckedSigner">getUncheckedSigner</a> for more details.</p>
</div></div><a name="JsonRpcSigner-sendUncheckedTransaction"></a><div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">sendUncheckedTransaction</span><span class="symbol">(</span> <span class="param">transaction</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Promise&lt; string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>&lt; 32 &gt; &gt; &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner-sendUncheckedTransaction"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L116">source</a></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><a name="JsonRpcSigner-sendUncheckedTransaction"></a><div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">sendUncheckedTransaction</span><span class="symbol">(</span> <span class="param">transaction</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Promise&lt; string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>&lt; 32 &gt; &gt; &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner-sendUncheckedTransaction"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L102">source</a></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><a name="JsonRpcSigner-unlock"></a><div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">unlock</span><span class="symbol">(</span> <span class="param">password</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Promise&lt; boolean &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner-unlock"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L202">source</a></div></div><div class="body"><p>Request the node unlock the account (if locked) using <i>password</i>.</p>
</div></div><a name="JsonRpcSigner-unlock"></a><div class="property show-anchors"><div class="signature"><span class="path">signer</span><span class="symbol">.</span><span class="method">unlock</span><span class="symbol">(</span> <span class="param">password</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Promise&lt; boolean &gt;</span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner-unlock"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L188">source</a></div></div><div class="body"><p>Request the node unlock the account (if locked) using <i>password</i>.</p>
</div></div><a name="UncheckedJsonRpcSigner"></a><a name="JsonRpcProvider--UncheckedJsonRpcSigner"></a><h2 class="show-anchors"><div>JsonRpcUncheckedSigner<span class="inherits"> inherits <a href="/v5/api/signer/#Signer">Signer</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#UncheckedJsonRpcSigner"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L211">source</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>
</div></div><a name="UncheckedJsonRpcSigner"></a><a name="JsonRpcProvider--UncheckedJsonRpcSigner"></a><h2 class="show-anchors"><div>JsonRpcUncheckedSigner<span class="inherits"> inherits <a href="/v5/api/signer/#Signer">Signer</a></span><div class="anchors"><a class="self" href="/v5/api/providers/jsonrpc-provider/#UncheckedJsonRpcSigner"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/providers/src.ts/json-rpc-provider.ts#L197">source</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="/v5/api/providers/jsonrpc-provider/#JsonRpcSigner">JsonRpcSigner</a> immeidately queries the provider for the details using the returned transaction hash to populate the <a href="/v5/api/providers/types/#providers-TransactionResponse">TransactionResponse</a> object.</p>
@@ -61,7 +61,7 @@
<div class="nav previous"><a href="/v5/api/providers/provider/"><span class="arrow">&larr;</span>Provider</a></div>
<div class="nav next"><a href="/v5/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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -93,7 +93,7 @@
<div class="nav previous"><a href="/v5/api/providers/api-providers/"><span class="arrow">&larr;</span>API Providers</a></div>
<div class="nav next"><a href="/v5/api/providers/types/">Types<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -187,7 +187,7 @@
<div class="nav previous"><a href="/v5/api/providers/other/"><span class="arrow">&larr;</span>Other Providers</a></div>
<div class="nav next"><a href="/v5/api/utils/">Utilities<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -203,34 +203,38 @@ walletMnemonic = Wallet.fromMnemonic(mnemonic)
walletPrivateKey = new Wallet(walletMnemonic.privateKey)
walletMnemonic.address === walletPrivateKey.address
//!
// true
// The address as a Promise per the Signer API
walletMnemonic.getAddress()
//!
// { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' }
// A Wallet address is also available synchronously
walletMnemonic.address
//!
// '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1'
// The internal cryptographic components
walletMnemonic.privateKey
//!
// '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db'
walletMnemonic.publicKey
//!
// '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64'
// The wallet mnemonic
walletMnemonic.mnemonic
//!
// {
// locale: 'en',
// path: 'm/44\'/60\'/0\'/0/0',
// phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol'
// }
// Note: A wallet created with a private key does not
// have a mnemonic (the derivation prevents it)
walletPrivateKey.mnemonic
//!
// null
// Signing a message
walletMnemonic.signMessage("Hello World")
//!
// { Promise: '0x14280e5885a19f60e536de50097e96e3738c7acae4e9e62d67272d794b8127d31c03d9cd59781d4ee31fb4e1b893bd9b020ec67dfa65cfb51e2bdadbb1de26d91c' }
tx = {
to: "0x8ba1f109551bD432803012645Ac136ddd64DBA72",
@@ -239,7 +243,7 @@ tx = {
// Signing a transaction
walletMnemonic.signTransaction(tx)
//!
// { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' }
// The connect method returns a new instance of the
// Wallet connected to a provider
@@ -247,15 +251,12 @@ wallet = walletMnemonic.connect(provider)
// Querying the network
wallet.getBalance();
//!
// { Promise: { BigNumber: "42" } }
wallet.getTransactionCount();
//!
// { Promise: 0 }
// Sending ether
wallet.sendTransaction(tx)
// <hide>
//! error
// </hide>
```
VoidSigner
@@ -282,12 +283,9 @@ abi = [
]
contract = new ethers.Contract("dai.tokens.ethers.eth", abi, signer)
// <hide>
//!
// </hide>
// Get the number of tokens for this account
tokens = await contract.balanceOf(signer.getAddress())
//! async tokens
// { BigNumber: "7712595125722568213383" }
//
// Pre-flight (check for revert) on DAI from the signer
@@ -300,11 +298,11 @@ tokens = await contract.balanceOf(signer.getAddress())
// This will pass since the token balance is available
contract.callStatic.transfer("donations.ethers.eth", tokens)
//!
// { Promise: true }
// This will fail since it is greater than the token balance
contract.callStatic.transfer("donations.ethers.eth", tokens.add(1))
//! error
// Error: call revert exception (method="transfer(address,uint256)", errorSignature="Error(string)", errorArgs=["Dai/insufficient-balance"], reason="Dai/insufficient-balance", code=CALL_EXCEPTION, version=abi/5.0.0-beta.156)
```
ExternallyOwnedAccount

View File

@@ -131,67 +131,69 @@
<p>If <i>progress</i> is provided it will be called during decryption with a value between 0 and 1 indicating the progress towards completion.</p>
</div></div><div class="code-title"><div>Wallet Examples</div></div><div class="code">// Create a wallet instance from a mnemonic...
mnemonic = "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol"
</div></div><div class="code-title"><div>Wallet Examples</div></div><div class="code"><span class="comment">// Create a wallet instance from a mnemonic...
</span>mnemonic = "announce room limb pattern dry unit scale effort smooth jazz weasel alcohol"
walletMnemonic = Wallet.fromMnemonic(mnemonic)
// ...or from a private key
walletPrivateKey = new Wallet(walletMnemonic.privateKey)
<span class="comment">// ...or from a private key
</span>walletPrivateKey = new Wallet(walletMnemonic.privateKey)
walletMnemonic.address === walletPrivateKey.address
//!
// The address as a Promise per the Signer API
walletMnemonic.getAddress()
//!
// A Wallet address is also available synchronously
walletMnemonic.address
//!
// The internal cryptographic components
walletMnemonic.privateKey
//!
walletMnemonic.publicKey
//!
// The wallet mnemonic
walletMnemonic.mnemonic
//!
// Note: A wallet created with a private key does not
// have a mnemonic (the derivation prevents it)
walletPrivateKey.mnemonic
//!
// Signing a message
walletMnemonic.signMessage("Hello World")
//!
<span class="result ok">// true
</span>
<span class="comment">// The address as a Promise per the Signer API
</span>walletMnemonic.getAddress()
<span class="result ok">// { Promise: '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1' }
</span>
<span class="comment">// A Wallet address is also available synchronously
</span>walletMnemonic.address
<span class="result ok">// '0x71CB05EE1b1F506fF321Da3dac38f25c0c9ce6E1'
</span>
<span class="comment">// The internal cryptographic components
</span>walletMnemonic.privateKey
<span class="result ok">// '0x1da6847600b0ee25e9ad9a52abbd786dd2502fa4005dd5af9310b7cc7a3b25db'
</span>walletMnemonic.publicKey
<span class="result ok">// '0x04b9e72dfd423bcf95b3801ac93f4392be5ff22143f9980eb78b3a860c4843bfd04829ae61cdba4b3b1978ac5fc64f5cc2f4350e35a108a9c9a92a81200a60cd64'
</span>
<span class="comment">// The wallet mnemonic
</span>walletMnemonic.mnemonic
<span class="result ok">// {
</span><span class="result ok">// locale: 'en',
</span><span class="result ok">// path: 'm/44\'/60\'/0\'/0/0',
</span><span class="result ok">// phrase: 'announce room limb pattern dry unit scale effort smooth jazz weasel alcohol'
</span><span class="result ok">// }
</span>
<span class="comment">// Note: A wallet created with a private key does not
</span><span class="comment">// have a mnemonic (the derivation prevents it)
</span>walletPrivateKey.mnemonic
<span class="result ok">// null
</span>
<span class="comment">// Signing a message
</span>walletMnemonic.signMessage("Hello World")
<span class="result ok">// { Promise: '0x14280e5885a19f60e536de50097e96e3738c7acae4e9e62d67272d794b8127d31c03d9cd59781d4ee31fb4e1b893bd9b020ec67dfa65cfb51e2bdadbb1de26d91c' }
</span>
tx = {
to: "0x8ba1f109551bD432803012645Ac136ddd64DBA72",
value: utils.parseEther("1.0")
}
// Signing a transaction
walletMnemonic.signTransaction(tx)
//!
<span class="comment">// Signing a transaction
</span>walletMnemonic.signTransaction(tx)
<span class="result ok">// { Promise: '0xf865808080948ba1f109551bd432803012645ac136ddd64dba72880de0b6b3a7640000801ca0918e294306d177ab7bd664f5e141436563854ebe0a3e523b9690b4922bbb52b8a01181612cec9c431c4257a79b8c9f0c980a2c49bb5a0e6ac52949163eeb565dfc' }
</span>
<span class="comment">// The connect method returns a new instance of the
</span><span class="comment">// Wallet connected to a provider
</span>wallet = walletMnemonic.connect(provider)
// The connect method returns a new instance of the
// Wallet connected to a provider
wallet = walletMnemonic.connect(provider)
// Querying the network
wallet.getBalance();
//!
wallet.getTransactionCount();
//!
// Sending ether
wallet.sendTransaction(tx)
// &lt;hide&gt;
//! error
// &lt;/hide&gt;</div><a name="VoidSigner"></a><a name="signers--VoidSigner"></a><h2 class="show-anchors"><div>VoidSigner<span class="inherits"> inherits <a href="/v5/api/signer/#Signer">Signer</a></span><div class="anchors"><a class="self" href="/v5/api/signer/#VoidSigner"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abstract-signer/src.ts/index.ts#L211">source</a></div></div></h2><p>A <b>VoidSigner</b> is a simple Signer which cannot sign.</p>
<span class="comment">// Querying the network
</span>wallet.getBalance();
<span class="result ok">// { Promise: { BigNumber: "42" } }
</span>wallet.getTransactionCount();
<span class="result ok">// { Promise: 0 }
</span>
<span class="comment">// Sending ether
</span>wallet.sendTransaction(tx)
</div><a name="VoidSigner"></a><a name="signers--VoidSigner"></a><h2 class="show-anchors"><div>VoidSigner<span class="inherits"> inherits <a href="/v5/api/signer/#Signer">Signer</a></span><div class="anchors"><a class="self" href="/v5/api/signer/#VoidSigner"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abstract-signer/src.ts/index.ts#L211">source</a></div></div></h2><p>A <b>VoidSigner</b> is a simple Signer which cannot sign.</p>
<p>It is useful as a read-only signer, when an API requires a Signer as a parameter, but it is known only read-only operations will be carried.</p>
@@ -204,36 +206,34 @@ wallet.sendTransaction(tx)
</div></div><div class="code-title"><div>VoidSigner Pre-flight Example</div></div><div class="code">address = "0x8ba1f109551bD432803012645Ac136ddd64DBA72"
signer = new ethers.VoidSigner(address, provider)
// The DAI token contract
abi = [
<span class="comment">// The DAI token contract
</span>abi = [
"function balanceOf(address) view returns (uint)",
"function transfer(address, uint) returns (bool)"
]
contract = new ethers.Contract("dai.tokens.ethers.eth", abi, signer)
// &lt;hide&gt;
//!
// &lt;/hide&gt;
// Get the number of tokens for this account
tokens = await contract.balanceOf(signer.getAddress())
//! async tokens
//
// Pre-flight (check for revert) on DAI from the signer
//
// Note: We do not have the private key at this point, this
// simply allows us to check what would happen if we
// did. This can be useful to check before prompting
// a request in the UI
<span class="comment">// Get the number of tokens for this account
</span>tokens = await contract.balanceOf(signer.getAddress())
<span class="result ok">// { BigNumber: "7712595125722568213383" }
</span>
//
<span class="comment">// Pre-flight (check for revert) on DAI from the signer
</span>//
<span class="comment">// Note: We do not have the private key at this point, this
</span><span class="comment">// simply allows us to check what would happen if we
</span><span class="comment">// did. This can be useful to check before prompting
</span><span class="comment">// a request in the UI
</span>//
// This will pass since the token balance is available
contract.callStatic.transfer("donations.ethers.eth", tokens)
//!
// This will fail since it is greater than the token balance
contract.callStatic.transfer("donations.ethers.eth", tokens.add(1))
//! error</div><a name="ExternallyOwnedAccount"></a><a name="signers--ExternallyOwnedAccount"></a><h2 class="show-anchors"><div>ExternallyOwnedAccount<div class="anchors"><a class="self" href="/v5/api/signer/#ExternallyOwnedAccount"></a></div></div></h2><p>This is an interface which contains a minimal set of properties required for Externally Owned Accounts which can have certain operations performed, such as encoding as a JSON wallet.</p>
<span class="comment">// This will pass since the token balance is available
</span>contract.callStatic.transfer("donations.ethers.eth", tokens)
<span class="result ok">// { Promise: true }
</span>
<span class="comment">// This will fail since it is greater than the token balance
</span>contract.callStatic.transfer("donations.ethers.eth", tokens.add(1))
<span class="result error">// Error: call revert exception (method="transfer(address,uint256)", errorSignature="Error(string)", errorArgs=["Dai/insufficient-balance"], reason="Dai/insufficient-balance", code=CALL_EXCEPTION, version=abi/5.0.0-beta.156)
</span></div><a name="ExternallyOwnedAccount"></a><a name="signers--ExternallyOwnedAccount"></a><h2 class="show-anchors"><div>ExternallyOwnedAccount<div class="anchors"><a class="self" href="/v5/api/signer/#ExternallyOwnedAccount"></a></div></div></h2><p>This is an interface which contains a minimal set of properties required for Externally Owned Accounts which can have certain operations performed, such as encoding as a JSON wallet.</p>
<div class="property show-anchors"><div class="signature"><span class="path">eoa</span><span class="symbol">.</span><span class="method">address</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/address/#address">Address</a> &gt;</span><div class="anchors"></div></div><div class="body"><p>The <a href="/v5/api/utils/address/#address">Address</a> of this EOA.</p>
@@ -247,7 +247,7 @@ contract.callStatic.transfer("donations.ethers.eth", tokens.add(1))
<div class="nav previous"><a href="/v5/api/contract/example/"><span class="arrow">&larr;</span>Example: ERC-20 Contract</a></div>
<div class="nav next"><a href="/v5/api/providers/">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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -43,7 +43,7 @@
<div class="nav previous"><a href="/v5/api/utils/abi/"><span class="arrow">&larr;</span>Application Binary Interface</a></div>
<div class="nav next"><a href="/v5/api/utils/abi/formats/">ABI Formats<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -28,7 +28,7 @@
<div class="nav previous"><a href="/v5/api/utils/abi/coder/"><span class="arrow">&larr;</span>AbiCoder</a></div>
<div class="nav next"><a href="/v5/api/utils/abi/fragments/">Fragments<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -59,7 +59,7 @@
</div></div><a name="Fragment-isFragment"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">Fragment</span><span class="symbol">.</span><span class="method">isFragment</span><span class="symbol">(</span> <span class="param">object</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#Fragment-isFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L474">source</a></div></div><div class="body"><p>Tra lal al</p>
</div></div><a name="ConstructorFragment"></a><a name="fragments--ConstructorFragment"></a><h2 class="show-anchors"><div>ConstructorFragment<span class="inherits"> inherits <a href="/v5/api/utils/abi/fragments/#Fragment">Fragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ConstructorFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L704">source</a></div></div></h2>
</div></div><a name="ConstructorFragment"></a><a name="fragments--ConstructorFragment"></a><h2 class="show-anchors"><div>ConstructorFragment<span class="inherits"> inherits <a href="/v5/api/utils/abi/fragments/#Fragment">Fragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ConstructorFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L708">source</a></div></div></h2>
<a name="fragments--ConstructorFragment--properties"></a><h3 class="show-anchors"><div>Properties<div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#fragments--ConstructorFragment--properties"></a></div></div></h3>
<div class="property show-anchors"><div class="signature"><span class="path">fragment</span><span class="symbol">.</span><span class="method">gas</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/bignumber/">BigNumber</a></span><div class="anchors"></div></div><div class="body"><p>This is the gas limit that should be used during deployment. It may be null.</p>
@@ -70,9 +70,9 @@
<p><ul><li><code class="inline">nonpayable</code> </li><li><code class="inline">payable</code> </li></ul></p>
</div></div><a name="fragments--ConstructorFragment--methods"></a><h3 class="show-anchors"><div>Methods<div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#fragments--ConstructorFragment--methods"></a></div></div></h3>
<a name="ConstructorFragment-from"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">ConstructorFragment</span><span class="symbol">.</span><span class="method">from</span><span class="symbol">(</span> <span class="param">objectOrString</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/abi/fragments/#ConstructorFragment">ConstructorFragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ConstructorFragment-from"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L742">source</a></div></div><div class="body"><p>Tra la la...</p>
<a name="ConstructorFragment-from"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">ConstructorFragment</span><span class="symbol">.</span><span class="method">from</span><span class="symbol">(</span> <span class="param">objectOrString</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/abi/fragments/#ConstructorFragment">ConstructorFragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ConstructorFragment-from"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L746">source</a></div></div><div class="body"><p>Tra la la...</p>
</div></div><a name="ConstructorFragment-isConstructorFragment"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">ConstructorFragment</span><span class="symbol">.</span><span class="method">isConstructorFragment</span><span class="symbol">(</span> <span class="param">object</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ConstructorFragment-isConstructorFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L790">source</a></div></div><div class="body"><p>Tra lal al</p>
</div></div><a name="ConstructorFragment-isConstructorFragment"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">ConstructorFragment</span><span class="symbol">.</span><span class="method">isConstructorFragment</span><span class="symbol">(</span> <span class="param">object</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ConstructorFragment-isConstructorFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L794">source</a></div></div><div class="body"><p>Tra lal al</p>
</div></div><a name="EventFragment"></a><a name="fragments--EventFragment"></a><h2 class="show-anchors"><div>EventFragment<span class="inherits"> inherits <a href="/v5/api/utils/abi/fragments/#Fragment">Fragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#EventFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L483">source</a></div></div></h2>
<a name="fragments--EventFragment--properties"></a><h3 class="show-anchors"><div>Properties<div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#fragments--EventFragment--properties"></a></div></div></h3>
@@ -83,7 +83,7 @@
</div></div><a name="EventFragment-isEventFragment"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">EventFragment</span><span class="symbol">.</span><span class="method">isEventFragment</span><span class="symbol">(</span> <span class="param">object</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#EventFragment-isEventFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L572">source</a></div></div><div class="body"><p>Tra lal al</p>
</div></div><a name="FunctionFragment"></a><a name="fragments--FunctionFragment"></a><h2 class="show-anchors"><div>FunctionFragment<span class="inherits"> inherits <a href="/v5/api/utils/abi/fragments/#ConstructorFragment">ConstructorFragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#FunctionFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L800">source</a></div></div></h2>
</div></div><a name="FunctionFragment"></a><a name="fragments--FunctionFragment"></a><h2 class="show-anchors"><div>FunctionFragment<span class="inherits"> inherits <a href="/v5/api/utils/abi/fragments/#ConstructorFragment">ConstructorFragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#FunctionFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L804">source</a></div></div></h2>
<a name="fragments--FunctionFragment--properties"></a><h3 class="show-anchors"><div>Properties<div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#fragments--FunctionFragment--properties"></a></div></div></h3>
<div class="property show-anchors"><div class="signature"><span class="path">fragment</span><span class="symbol">.</span><span class="method">constant</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"></div></div><div class="body"><p>This is whether the function is constant (i.e. does not change state). This is true if the state mutability is <code class="inline">pure</code> or <code class="inline">view</code>.</p>
@@ -94,9 +94,9 @@
</div></div><div class="property show-anchors"><div class="signature"><span class="path">fragment</span><span class="symbol">.</span><span class="method">outputs</span> <span class="arrow">&rArr;</span> <span class="returns">Array&lt; <a href="/v5/api/utils/abi/fragments/#ParamType">ParamType</a> &gt;</span><div class="anchors"></div></div><div class="body"><p>A list of the Function output parameters.</p>
</div></div><a name="fragments--FunctionFragment--method"></a><h3 class="show-anchors"><div>Method<div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#fragments--FunctionFragment--method"></a></div></div></h3>
<a name="FunctionFragment-from"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">FunctionFragment</span><span class="symbol">.</span><span class="method">from</span><span class="symbol">(</span> <span class="param">objectOrString</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/abi/fragments/#FunctionFragment">FunctionFragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#FunctionFragment-from"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L742">source</a></div></div><div class="body"><p>Tra la la...</p>
<a name="FunctionFragment-from"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">FunctionFragment</span><span class="symbol">.</span><span class="method">from</span><span class="symbol">(</span> <span class="param">objectOrString</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/abi/fragments/#FunctionFragment">FunctionFragment</a></span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#FunctionFragment-from"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L746">source</a></div></div><div class="body"><p>Tra la la...</p>
</div></div><a name="FunctionFragment-isFunctionFragment"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">FunctionFragment</span><span class="symbol">.</span><span class="method">isFunctionFragment</span><span class="symbol">(</span> <span class="param">object</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#FunctionFragment-isFunctionFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L921">source</a></div></div><div class="body"><p>Tra lal al</p>
</div></div><a name="FunctionFragment-isFunctionFragment"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="path">FunctionFragment</span><span class="symbol">.</span><span class="method">isFunctionFragment</span><span class="symbol">(</span> <span class="param">object</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">boolean</span><div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#FunctionFragment-isFunctionFragment"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L925">source</a></div></div><div class="body"><p>Tra lal al</p>
</div></div><a name="ParamType"></a><a name="fragments--ParamType"></a><h2 class="show-anchors"><div>ParamType<div class="anchors"><a class="self" href="/v5/api/utils/abi/fragments/#ParamType"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/abi/src.ts/fragments.ts#L251">source</a></div></div></h2><p>The following examples will represent the Solidity parameter:</p>
@@ -131,7 +131,7 @@
<div class="nav previous"><a href="/v5/api/utils/abi/formats/"><span class="arrow">&larr;</span>ABI Formats</a></div>
<div class="nav next"><a href="/v5/api/utils/abi/interface/">Interface<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -28,7 +28,7 @@
<div class="nav previous"><a href="/v5/api/utils/"><span class="arrow">&larr;</span>Utilities</a></div>
<div class="nav next"><a href="/v5/api/utils/abi/coder/">AbiCoder<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -122,7 +122,7 @@
<div class="nav previous"><a href="/v5/api/utils/abi/fragments/"><span class="arrow">&larr;</span>Fragments</a></div>
<div class="nav next"><a href="/v5/api/utils/address/">Addresses<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -62,7 +62,7 @@
<div class="nav previous"><a href="/v5/api/utils/abi/interface/"><span class="arrow">&larr;</span>Interface</a></div>
<div class="nav next"><a href="/v5/api/utils/bignumber/">BigNumber<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -50,42 +50,42 @@ Returns an instance of a **BigNumber** for *aBigNumberish*.
```javascript
// From a decimal string...
BigNumber.from("42")
//!
// { BigNumber: "42" }
// From a HexString...
BigNumber.from("0x2a")
//!
// { BigNumber: "42" }
// From a negative HexString...
BigNumber.from("-0x2a")
//!
// { BigNumber: "-42" }
// From an Array (or Uint8Array)...
BigNumber.from([ 42 ])
//!
// { BigNumber: "42" }
// From an existing BigNumber...
let one1 = constants.One;
let one2 = BigNumber.from(one1)
one2
//!
// { BigNumber: "1" }
// ...which returns the same instance
one1 === one2
//!
// true
// From a (safe) number...
BigNumber.from(42)
//!
// { BigNumber: "42" }
// From a ES2015 BigInt... (only on platforms with BigInt support)
BigNumber.from(42n)
//!
// { BigNumber: "42" }
// Numbers outside the safe range fail:
BigNumber.from(Number.MAX_SAFE_INTEGER);
//! error
// Error: overflow (fault="overflow", operation="BigNumber.from", value=9007199254740991, code=NUMERIC_FAULT, version=bignumber/5.0.0-beta.139)
```
Methods
@@ -210,7 +210,7 @@ let a = BigNumber.from(42);
let b = BigNumber.from("91");
a.mul(b);
//!
// { BigNumber: "3822" }
```
Notes
@@ -220,7 +220,7 @@ Notes
```javascript
(Number.MAX_SAFE_INTEGER + 2 - 2) == (Number.MAX_SAFE_INTEGER)
//!
// false
```

View File

@@ -40,44 +40,45 @@
<div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">BigNumber</span><span class="symbol">.</span><span class="method">from</span><span class="symbol">(</span> <span class="param">aBigNumberish</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/bignumber/">BigNumber</a></span><div class="anchors"></div></div><div class="body"><p>Returns an instance of a <b>BigNumber</b> for <i>aBigNumberish</i>.</p>
</div></div><a name="BigNumber--BigNumber--creating--examples"></a><h3 class="show-anchors"><div>Examples:<div class="anchors"></div></div></h3>
<div class="code">// From a decimal string...
BigNumber.from("42")
//!
// From a HexString...
BigNumber.from("0x2a")
//!
// From a negative HexString...
BigNumber.from("-0x2a")
//!
// From an Array (or Uint8Array)...
BigNumber.from([ 42 ])
//!
// From an existing BigNumber...
let one1 = constants.One;
<div class="code"><span class="comment">// From a decimal string...
</span>BigNumber.from("42")
<span class="result ok">// { BigNumber: "42" }
</span>
<span class="comment">// From a HexString...
</span>BigNumber.from("0x2a")
<span class="result ok">// { BigNumber: "42" }
</span>
<span class="comment">// From a negative HexString...
</span>BigNumber.from("-0x2a")
<span class="result ok">// { BigNumber: "-42" }
</span>
<span class="comment">// From an Array (or Uint8Array)...
</span>BigNumber.from([ 42 ])
<span class="result ok">// { BigNumber: "42" }
</span>
<span class="comment">// From an existing BigNumber...
</span>let one1 = constants.One;
let one2 = BigNumber.from(one1)
one2
//!
// ...which returns the same instance
one1 === one2
//!
// From a (safe) number...
BigNumber.from(42)
//!
// From a ES2015 BigInt... (only on platforms with BigInt support)
BigNumber.from(42n)
//!
// Numbers outside the safe range fail:
BigNumber.from(Number.MAX_SAFE_INTEGER);
//! error</div><a name="BigNumber--methods"></a><a name="BigNumber--BigNumber--methods"></a><h2 class="show-anchors"><div>Methods<div class="anchors"><a class="self" href="/v5/api/utils/bignumber/#BigNumber--methods"></a></div></div></h2><p>The BigNumber class is immutable, so no operations can change the value it represents.</p>
<span class="result ok">// { BigNumber: "1" }
</span>
<span class="comment">// ...which returns the same instance
</span>one1 === one2
<span class="result ok">// true
</span>
<span class="comment">// From a (safe) number...
</span>BigNumber.from(42)
<span class="result ok">// { BigNumber: "42" }
</span>
<span class="comment">// From a ES2015 BigInt... (only on platforms with BigInt support)
</span>BigNumber.from(42n)
<span class="result ok">// { BigNumber: "42" }
</span>
<span class="comment">// Numbers outside the safe range fail:
</span>BigNumber.from(Number.MAX_SAFE_INTEGER);
<span class="result error">// Error: overflow (fault="overflow", operation="BigNumber.from", value=9007199254740991, code=NUMERIC_FAULT, version=bignumber/5.0.0-beta.139)
</span></div><a name="BigNumber--methods"></a><a name="BigNumber--BigNumber--methods"></a><h2 class="show-anchors"><div>Methods<div class="anchors"><a class="self" href="/v5/api/utils/bignumber/#BigNumber--methods"></a></div></div></h2><p>The BigNumber class is immutable, so no operations can change the value it represents.</p>
<a name="BigNumber--BigNumber--methods--math-operations"></a><h3 class="show-anchors"><div>Math Operations<div class="anchors"><a class="self" href="/v5/api/utils/bignumber/#BigNumber--BigNumber--methods--math-operations"></a></div></div></h3>
<div class="property show-anchors"><div class="signature"><span class="path">BigNumber</span><span class="symbol">.</span><span class="method">add</span><span class="symbol">(</span> <span class="param">otherValue</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns"><a href="/v5/api/utils/bignumber/">BigNumber</a></span><div class="anchors"><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/bignumber/src.ts/bignumber.ts#L71">source</a></div></div><div class="body"><p>Returns a BigNumber with the value of <i>BigNumber</i> <b>+</b> <i>otherValue</i>.</p>
@@ -132,7 +133,8 @@ BigNumber.from(Number.MAX_SAFE_INTEGER);
let b = BigNumber.from("91");
a.mul(b);
//!</div><a name="BigNumber--notes"></a><a name="BigNumber--BigNumber--notes"></a><h2 class="show-anchors"><div>Notes<div class="anchors"><a class="self" href="/v5/api/utils/bignumber/#BigNumber--notes"></a></div></div></h2><p>This section is a for a couple of questions that come up frequently.</p>
<span class="result ok">// { BigNumber: "3822" }
</span></div><a name="BigNumber--notes"></a><a name="BigNumber--BigNumber--notes"></a><h2 class="show-anchors"><div>Notes<div class="anchors"><a class="self" href="/v5/api/utils/bignumber/#BigNumber--notes"></a></div></div></h2><p>This section is a for a couple of questions that come up frequently.</p>
<a name="BigNumber--notes-safenumbers"></a><a name="BigNumber--BigNumber--notes--BigNumber--notes-safenumbers"></a><h3 class="show-anchors"><div>Why can't I just use numbers?<div class="anchors"><a class="self" href="/v5/api/utils/bignumber/#BigNumber--notes-safenumbers"></a></div></div></h3><p>The first problem many encounter when dealing with Ethereum is the concept of numbers. Most common currencies are broken down with very little granularity. For example, there are only 100 cents in a single dollar. However, there are 10<sup>18</sup> <b>wei</b> in a single <b>ether</b>.</p>
@@ -141,7 +143,8 @@ a.mul(b);
<p>To demonstrate how this may be an issue in your code, consider:</p>
<div class="code">(Number.MAX_SAFE_INTEGER + 2 - 2) == (Number.MAX_SAFE_INTEGER)
//!</div><p>To remedy this, all numbers (which can be large) are stored and manipulated as <a href="/v5/api/utils/bignumber/">Big Numbers</a>.</p>
<span class="result ok">// false
</span></div><p>To remedy this, all numbers (which can be large) are stored and manipulated as <a href="/v5/api/utils/bignumber/">Big Numbers</a>.</p>
<p>The functions <a href="/v5/api/utils/display-logic/#utils-parseEther">parseEther( etherString )</a> and <a href="/v5/api/utils/display-logic/#utils-formatEther">formatEther( wei )</a> can be used to convert between string representations, which are displayed to or entered by the user and Big Number representations which can have mathematical operations handled safely.</p>
@@ -175,7 +178,7 @@ a.mul(b);
<div class="nav previous"><a href="/v5/api/utils/address/"><span class="arrow">&larr;</span>Addresses</a></div>
<div class="nav next"><a href="/v5/api/utils/bytes/">Byte Manipulation<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -63,27 +63,27 @@ Converts *aBigNumberish* to a [HexString](/v5/api/utils/bytes/#HexString), with
```javascript
// Convert a hexstring to a Uint8Array
arrayify("0x1234")
//!
// Uint8Array [ 18, 52 ]
// Convert an Array to a hexstring
hexlify([1, 2, 3, 4])
//!
// '0x01020304'
// Convert an Object to a hexstring
hexlify({ length: 2, "0": 1, "1": 2 })
//!
// '0x0102'
// Convert an Array to a hexstring
hexlify([ 1 ])
//!
// '0x01'
// Convert a number to a stripped hex value
hexValue(1)
//!
// '0x1'
// Convert an Array to a stripped hex value
hexValue([ 1, 2 ])
//!
// '0x102'
```
Array Manipulation
@@ -164,16 +164,32 @@ Return a copy of *array* shuffled using [Fisher-Yates Shuffle](https://en.wikipe
```javascript
utils.randomBytes(8)
//!
// Uint8Array [ 131, 252, 210, 50, 128, 120, 18, 68 ]
const data = [ 1, 2, 3, 4, 5, 6, 7 ];
// Returns a new Array
utils.shuffled(data);
//!
// [
// 7,
// 6,
// 4,
// 2,
// 3,
// 1,
// 5
// ]
// The Original is unscathed...
data
//!
// [
// 1,
// 2,
// 3,
// 4,
// 5,
// 6,
// 7
// ]
```

View File

@@ -49,29 +49,30 @@
</div></div><a name="utils-hexValue"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">hexValue</span><span class="symbol">(</span> <span class="param">aBigNumberish</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#HexString">HexString</a> &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/bytes/#utils-hexValue"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/bytes/src.ts/index.ts#L287">source</a></div></div><div class="body"><p>Converts <i>aBigNumberish</i> to a <a href="/v5/api/utils/bytes/#HexString">HexString</a>, with no <u>unnecessary</u> leading zeros.</p>
</div></div><div class="code-title"><div>Examples</div></div><div class="code">// Convert a hexstring to a Uint8Array
arrayify("0x1234")
//!
// Convert an Array to a hexstring
hexlify([1, 2, 3, 4])
//!
// Convert an Object to a hexstring
hexlify({ length: 2, "0": 1, "1": 2 })
//!
// Convert an Array to a hexstring
hexlify([ 1 ])
//!
// Convert a number to a stripped hex value
hexValue(1)
//!
// Convert an Array to a stripped hex value
hexValue([ 1, 2 ])
//!</div><a name="byte-manipulation--array-manipulation"></a><h2 class="show-anchors"><div>Array Manipulation<div class="anchors"><a class="self" href="/v5/api/utils/bytes/#byte-manipulation--array-manipulation"></a></div></div></h2>
</div></div><div class="code-title"><div>Examples</div></div><div class="code"><span class="comment">// Convert a hexstring to a Uint8Array
</span>arrayify("0x1234")
<span class="result ok">// Uint8Array [ 18, 52 ]
</span>
<span class="comment">// Convert an Array to a hexstring
</span>hexlify([1, 2, 3, 4])
<span class="result ok">// '0x01020304'
</span>
<span class="comment">// Convert an Object to a hexstring
</span>hexlify({ length: 2, "0": 1, "1": 2 })
<span class="result ok">// '0x0102'
</span>
<span class="comment">// Convert an Array to a hexstring
</span>hexlify([ 1 ])
<span class="result ok">// '0x01'
</span>
<span class="comment">// Convert a number to a stripped hex value
</span>hexValue(1)
<span class="result ok">// '0x1'
</span>
<span class="comment">// Convert an Array to a stripped hex value
</span>hexValue([ 1, 2 ])
<span class="result ok">// '0x102'
</span></div><a name="byte-manipulation--array-manipulation"></a><h2 class="show-anchors"><div>Array Manipulation<div class="anchors"><a class="self" href="/v5/api/utils/bytes/#byte-manipulation--array-manipulation"></a></div></div></h2>
<a name="utils-concat"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">concat</span><span class="symbol">(</span> <span class="param">arrayOfBytesLike</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Uint8Array</span><div class="anchors"><a class="self" href="/v5/api/utils/bytes/#utils-concat"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/bytes/src.ts/index.ts#L140">source</a></div></div><div class="body"><p>Concatenates all the <a href="/v5/api/utils/bytes/#BytesLike">BytesLike</a> in <i>arrayOfBytesLike</i> into a single Uint8Array.</p>
</div></div><a name="utils-stripZeros"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">stripZeros</span><span class="symbol">(</span> <span class="param">aBytesLike</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Uint8Array</span><div class="anchors"><a class="self" href="/v5/api/utils/bytes/#utils-stripZeros"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/bytes/src.ts/index.ts#L154">source</a></div></div><div class="body"><p>Returns a Uint8Array with all leading <code class="inline">0</code> bytes of <i>aBtyesLike</i> removed.</p>
@@ -104,23 +105,40 @@ hexValue([ 1, 2 ])
</div></div><a name="utils-shuffled"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">shuffled</span><span class="symbol">(</span> <span class="param">array</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">Array&lt; any &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/bytes/#utils-shuffled"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/random/src.ts/shuffle.ts#L3">source</a></div></div><div class="body"><p>Return a copy of <i>array</i> shuffled using <a href="https://en.wikipedia.org/wiki/Fisher-Yates_shuffle">Fisher-Yates Shuffle</a>.</p>
</div></div><div class="code-title"><div>Examples</div></div><div class="code">utils.randomBytes(8)
//!
<span class="result ok">// Uint8Array [ 131, 252, 210, 50, 128, 120, 18, 68 ]
</span>
const data = [ 1, 2, 3, 4, 5, 6, 7 ];
// Returns a new Array
utils.shuffled(data);
//!
// The Original is unscathed...
data
//!</div>
<span class="comment">// Returns a new Array
</span>utils.shuffled(data);
<span class="result ok">// [
</span><span class="result ok">// 7,
</span><span class="result ok">// 6,
</span><span class="result ok">// 4,
</span><span class="result ok">// 2,
</span><span class="result ok">// 3,
</span><span class="result ok">// 1,
</span><span class="result ok">// 5
</span><span class="result ok">// ]
</span>
<span class="comment">// The Original is unscathed...
</span>data
<span class="result ok">// [
</span><span class="result ok">// 1,
</span><span class="result ok">// 2,
</span><span class="result ok">// 3,
</span><span class="result ok">// 4,
</span><span class="result ok">// 5,
</span><span class="result ok">// 6,
</span><span class="result ok">// 7
</span><span class="result ok">// ]
</span></div>
<div class="footer">
<div class="nav previous"><a href="/v5/api/utils/bignumber/"><span class="arrow">&larr;</span>BigNumber</a></div>
<div class="nav next"><a href="/v5/api/utils/constants/">Constants<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -45,7 +45,7 @@
<div class="nav previous"><a href="/v5/api/utils/bytes/"><span class="arrow">&larr;</span>Byte Manipulation</a></div>
<div class="nav next"><a href="/v5/api/utils/display-logic/">Display Logic and Input<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -52,7 +52,7 @@
<div class="nav previous"><a href="/v5/api/utils/constants/"><span class="arrow">&larr;</span>Constants</a></div>
<div class="nav next"><a href="/v5/api/utils/encoding/">Encoding Utilities<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -49,7 +49,7 @@
<div class="nav previous"><a href="/v5/api/utils/display-logic/"><span class="arrow">&larr;</span>Display Logic and Input</a></div>
<div class="nav next"><a href="/v5/api/utils/fixednumber/">FixedNumber<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -87,7 +87,7 @@
<div class="nav previous"><a href="/v5/api/utils/encoding/"><span class="arrow">&larr;</span>Encoding Utilities</a></div>
<div class="nav next"><a href="/v5/api/utils/hashing/">Hashing Algorithms<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -37,13 +37,13 @@ Returns the [SHA2-512](https://en.wikipedia.org/wiki/SHA-2) digest of *aBytesLik
```javascript
utils.keccak256([ 0x12, 0x34 ])
//!
// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
utils.keccak256("0x")
//!
// '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
utils.keccak256("0x1234")
//!
// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
// The value MUST be data, such as:
// - an Array of numbers
@@ -52,15 +52,15 @@ utils.keccak256("0x1234")
// Do NOT use UTF-8 strings that are not a DataHexstring
utils.keccak256("hello world")
//! error
// Error: invalid arrayify value (argument="value", value="hello world", code=INVALID_ARGUMENT, version=bytes/5.0.0-beta.138)
// If needed, convert strings to bytes first:
utils.keccak256(utils.toUtf8Bytes("hello world"))
//!
// '0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad'
// Or equivalently use the identity function:
utils.id("hello world")
//!
// '0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad'
// Keep in mind that the string "0x1234" represents TWO
// bytes (i.e. [ 0x12, 0x34 ]. If you wish to compute the
@@ -71,47 +71,44 @@ utils.id("hello world")
// Hash of TWO (2) bytes:
utils.keccak256("0x1234")
//!
// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
// Hash of TWO (2) bytes: (same result)
utils.keccak256([ 0x12, 0x34 ])
//!
// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
const bytes = utils.toUtf8Bytes("0x1234");
// <hide>
bytes
// </hide>
//!
// Uint8Array [ 48, 120, 49, 50, 51, 52 ]
// Hash of SIX (6) characters (different than above)
utils.keccak256(bytes)
//!
// '0x1ac7d1b81b7ba1025b36ccb86723da6ee5a87259f1c2fd5abe69d3200b512ec8'
// Hash of SIX (6) characters (same result)
utils.id("0x1234")
//!
// '0x1ac7d1b81b7ba1025b36ccb86723da6ee5a87259f1c2fd5abe69d3200b512ec8'
```
```javascript
utils.ripemd160("0x")
//!
// '0x9c1185a5c5e9fc54612808977ee8f548b2258d31'
utils.ripemd160("0x1234")
//!
// '0xc39867e393cb061b837240862d9ad318c176a96d'
```
```javascript
utils.sha256("0x")
//!
// '0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
utils.sha256("0x1234")
//!
// '0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f'
utils.sha512("0x")
//!
// '0xcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'
utils.sha512("0x1234")
//!
// '0x4c54886c9821195522d88ff4705c3e0c686b921054421e6ea598739c29c26e1ee75419aaceec94dd2e3c0dbb82ecf895c9f61215f375de6d800d9b99d3d4b816'
```
HMAC
@@ -138,7 +135,7 @@ Use the [SHA2-512](https://en.wikipedia.org/wiki/SHA-2) hash algorithm.
const key = "0x0102";
const data = "0x1234";
utils.computeHmac("sha256", key, data)
//!
// '0x7553df81c628815cf569696cad13a37c606c5058df13d9dff4fee2cf5e9b5779'
```
Hashing Helpers
@@ -160,16 +157,16 @@ Returns the [ENS Namehash](https://docs.ens.domains/contract-api-reference/name-
```javascript
utils.namehash("")
//!
// '0x0000000000000000000000000000000000000000000000000000000000000000'
utils.namehash("eth")
//!
// '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae'
utils.namehash("ricmoo.firefly.eth")
//!
// '0x0bcad17ecf260d6506c6b97768bdc2acfb6694445d27ffd3f9c1cfbee4a9bd6d'
utils.namehash("ricmoo.xyz")
//!
// '0x7d56aa46358ba2f8b77d8e05bcabdd2358370dcf34e87810f8cea77ecb3fc57d'
```
Solidity Hashing Algorithms
@@ -192,15 +189,15 @@ Returns the [SHA2-256](https://en.wikipedia.org/wiki/SHA-2) of the non-standard
```javascript
utils.solidityPack([ "int16", "uint48" ], [ -1, 12 ])
//!
// '0xffff00000000000c'
utils.solidityPack([ "string", "uint8" ], [ "Hello", 3 ])
//!
// '0x48656c6c6f03'
utils.solidityKeccak256([ "int16", "uint48" ], [ -1, 12 ])
//!
// '0x81da7abb5c9c7515f57dab2fc946f01217ab52f3bd8958bc36bd55894451a93c'
utils.soliditySha256([ "int16", "uint48" ], [ -1, 12 ])
//!
// '0xa5580fb602f6e2ba9c588011dc4e6c2335e0f5d970dc45869db8f217efc6911a'
```

View File

@@ -31,73 +31,73 @@
</div></div><a name="utils-sha512"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">sha512</span><span class="symbol">(</span> <span class="param">aBytesLike</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>&lt; 64 &gt; &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils-sha512"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/sha2/src.ts/index.ts#L22">source</a></div></div><div class="body"><p>Returns the <a href="https://en.wikipedia.org/wiki/SHA-2">SHA2-512</a> digest of <i>aBytesLike</i>.</p>
</div></div><div class="code-title"><div>KECCAK256</div></div><div class="code">utils.keccak256([ 0x12, 0x34 ])
//!
<span class="result ok">// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
</span>
utils.keccak256("0x")
//!
<span class="result ok">// '0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470'
</span>
utils.keccak256("0x1234")
//!
// The value MUST be data, such as:
// - an Array of numbers
// - a data hex string (e.g. "0x1234")
// - a Uint8Array
// Do NOT use UTF-8 strings that are not a DataHexstring
utils.keccak256("hello world")
//! error
// If needed, convert strings to bytes first:
utils.keccak256(utils.toUtf8Bytes("hello world"))
//!
// Or equivalently use the identity function:
utils.id("hello world")
//!
// Keep in mind that the string "0x1234" represents TWO
// bytes (i.e. [ 0x12, 0x34 ]. If you wish to compute the
// hash of the 6 characters "0x1234", convert it to UTF-8
// bytes first using utils.toUtf8Bytes.
// Consider the following examples:
// Hash of TWO (2) bytes:
utils.keccak256("0x1234")
//!
// Hash of TWO (2) bytes: (same result)
utils.keccak256([ 0x12, 0x34 ])
//!
<span class="result ok">// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
</span>
<span class="comment">// The value MUST be data, such as:
</span><span class="comment">// - an Array of numbers
</span><span class="comment">// - a data hex string (e.g. "0x1234")
</span><span class="comment">// - a Uint8Array
</span>
<span class="comment">// Do NOT use UTF-8 strings that are not a DataHexstring
</span>utils.keccak256("hello world")
<span class="result error">// Error: invalid arrayify value (argument="value", value="hello world", code=INVALID_ARGUMENT, version=bytes/5.0.0-beta.138)
</span>
<span class="comment">// If needed, convert strings to bytes first:
</span>utils.keccak256(utils.toUtf8Bytes("hello world"))
<span class="result ok">// '0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad'
</span>
<span class="comment">// Or equivalently use the identity function:
</span>utils.id("hello world")
<span class="result ok">// '0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad'
</span>
<span class="comment">// Keep in mind that the string "0x1234" represents TWO
</span><span class="comment">// bytes (i.e. [ 0x12, 0x34 ]. If you wish to compute the
</span><span class="comment">// hash of the 6 characters "0x1234", convert it to UTF-8
</span><span class="comment">// bytes first using utils.toUtf8Bytes.
</span>
<span class="comment">// Consider the following examples:
</span>
<span class="comment">// Hash of TWO (2) bytes:
</span>utils.keccak256("0x1234")
<span class="result ok">// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
</span>
<span class="comment">// Hash of TWO (2) bytes: (same result)
</span>utils.keccak256([ 0x12, 0x34 ])
<span class="result ok">// '0x56570de287d73cd1cb6092bb8fdee6173974955fdef345ae579ee9f475ea7432'
</span>
const bytes = utils.toUtf8Bytes("0x1234");
// &lt;hide&gt;
bytes
// &lt;/hide&gt;
//!
// Hash of SIX (6) characters (different than above)
utils.keccak256(bytes)
//!
// Hash of SIX (6) characters (same result)
utils.id("0x1234")
//!</div><div class="code-title"><div>RIPEMD160</div></div><div class="code">utils.ripemd160("0x")
//!
<span class="result ok">// Uint8Array [ 48, 120, 49, 50, 51, 52 ]
</span>
<span class="comment">// Hash of SIX (6) characters (different than above)
</span>utils.keccak256(bytes)
<span class="result ok">// '0x1ac7d1b81b7ba1025b36ccb86723da6ee5a87259f1c2fd5abe69d3200b512ec8'
</span>
<span class="comment">// Hash of SIX (6) characters (same result)
</span>utils.id("0x1234")
<span class="result ok">// '0x1ac7d1b81b7ba1025b36ccb86723da6ee5a87259f1c2fd5abe69d3200b512ec8'
</span></div><div class="code-title"><div>RIPEMD160</div></div><div class="code">utils.ripemd160("0x")
<span class="result ok">// '0x9c1185a5c5e9fc54612808977ee8f548b2258d31'
</span>
utils.ripemd160("0x1234")
//!</div><div class="code-title"><div>SHA-2</div></div><div class="code">utils.sha256("0x")
//!
<span class="result ok">// '0xc39867e393cb061b837240862d9ad318c176a96d'
</span></div><div class="code-title"><div>SHA-2</div></div><div class="code">utils.sha256("0x")
<span class="result ok">// '0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
</span>
utils.sha256("0x1234")
//!
<span class="result ok">// '0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f'
</span>
utils.sha512("0x")
//!
<span class="result ok">// '0xcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'
</span>
utils.sha512("0x1234")
//!</div><a name="utils--hmac"></a><a name="hashing-algorithms--utils--hmac"></a><h2 class="show-anchors"><div>HMAC<div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--hmac"></a></div></div></h2>
<span class="result ok">// '0x4c54886c9821195522d88ff4705c3e0c686b921054421e6ea598739c29c26e1ee75419aaceec94dd2e3c0dbb82ecf895c9f61215f375de6d800d9b99d3d4b816'
</span></div><a name="utils--hmac"></a><a name="hashing-algorithms--utils--hmac"></a><h2 class="show-anchors"><div>HMAC<div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--hmac"></a></div></div></h2>
<a name="utils-computeHmac"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">computeHmac</span><span class="symbol">(</span> <span class="param">algorithm</span> <span class="symbol">,</span> <span class="param">key</span> <span class="symbol">,</span> <span class="param">data</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a> &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils-computeHmac"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/sha2/src.ts/index.ts#L27">source</a></div></div><div class="body"><p>Returns the <a href="https://en.wikipedia.org/wiki/HMAC">HMAC</a> of <i>data</i> with <i>key</i> using the <a href="/v5/api/utils/hashing/#utils--hmac-supported-algorithm">Algorithm</a> <i>algorithm</i>.</p>
</div></div><a name="utils--hmac-supported-algorithm"></a><a name="hashing-algorithms--utils--hmac--utils--hmac-supported-algorithm"></a><h3 class="show-anchors"><div><b>HMAC Supported Algorithms</b><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--hmac-supported-algorithm"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/sha2/src.ts/index.ts#L11">source</a></div></div></h3>
@@ -108,22 +108,25 @@ utils.sha512("0x1234")
</div></div><div class="code-title"><div>HMAC</div></div><div class="code">const key = "0x0102";
const data = "0x1234";
utils.computeHmac("sha256", key, data)
//!</div><a name="utils--hashing-helpers"></a><a name="hashing-algorithms--utils--hashing-helpers"></a><h2 class="show-anchors"><div>Hashing Helpers<div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--hashing-helpers"></a></div></div></h2>
<span class="result ok">// '0x7553df81c628815cf569696cad13a37c606c5058df13d9dff4fee2cf5e9b5779'
</span></div><a name="utils--hashing-helpers"></a><a name="hashing-algorithms--utils--hashing-helpers"></a><h2 class="show-anchors"><div>Hashing Helpers<div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--hashing-helpers"></a></div></div></h2>
<a name="utils-hashMessage"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">hashMessage</span><span class="symbol">(</span> <span class="param">message</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>&lt; 32 &gt; &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils-hashMessage"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/hash/src.ts/index.ts#L53">source</a></div></div><div class="body"><p>Computes the <a href="https://eips.ethereum.org/EIPS/eip-191">EIP-191</a> personal message digest of <i>message</i>. Personal messages are converted to UTF-8 bytes and prefixed with <code class="inline">\x19Ethereum Signed Message:</code> and the length of <i>message</i>.</p>
</div></div><a name="utils-namehash"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">namehash</span><span class="symbol">(</span> <span class="param">name</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>&lt; 32 &gt; &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils-namehash"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/hash/src.ts/index.ts#L29">source</a></div></div><div class="body"><p>Returns the <a href="https://docs.ens.domains/contract-api-reference/name-processing#hashing-names">ENS Namehash</a> of <i>name</i>.</p>
</div></div><div class="code-title"><div>Hashing Messages</div></div><div class="code">// @TODO: include examples of hashMessage; it can be complex. :)</div><div class="code-title"><div>Namehash</div></div><div class="code">utils.namehash("")
//!
</div></div><div class="code-title"><div>Hashing Messages</div></div><div class="code"><span class="comment">// @TODO: include examples of hashMessage; it can be complex. :)
</span></div><div class="code-title"><div>Namehash</div></div><div class="code">utils.namehash("")
<span class="result ok">// '0x0000000000000000000000000000000000000000000000000000000000000000'
</span>
utils.namehash("eth")
//!
<span class="result ok">// '0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae'
</span>
utils.namehash("ricmoo.firefly.eth")
//!
<span class="result ok">// '0x0bcad17ecf260d6506c6b97768bdc2acfb6694445d27ffd3f9c1cfbee4a9bd6d'
</span>
utils.namehash("ricmoo.xyz")
//!</div><a name="utils--solidity-hashing"></a><a name="hashing-algorithms--utils--solidity-hashing"></a><h2 class="show-anchors"><div>Solidity Hashing Algorithms<div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--solidity-hashing"></a></div></div></h2><p>When using the Solidity <code class="inline">abi.packEncoded(...)</code> function, a non-standard <i>tightly packed</i> version of encoding is used. These functions implement the tightly packing algorithm.</p>
<span class="result ok">// '0x7d56aa46358ba2f8b77d8e05bcabdd2358370dcf34e87810f8cea77ecb3fc57d'
</span></div><a name="utils--solidity-hashing"></a><a name="hashing-algorithms--utils--solidity-hashing"></a><h2 class="show-anchors"><div>Solidity Hashing Algorithms<div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils--solidity-hashing"></a></div></div></h2><p>When using the Solidity <code class="inline">abi.packEncoded(...)</code> function, a non-standard <i>tightly packed</i> version of encoding is used. These functions implement the tightly packing algorithm.</p>
<a name="utils-solidityPack"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">solidityPack</span><span class="symbol">(</span> <span class="param">types</span> <span class="symbol">,</span> <span class="param">values</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a> &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils-solidityPack"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/solidity/src.ts/index.ts#L73">source</a></div></div><div class="body"><p>Returns the non-standard encoded <i>values</i> packed according to their respecive type in <i>types</i>.</p>
@@ -132,22 +135,23 @@ utils.namehash("ricmoo.xyz")
</div></div><a name="utils-soliditySha256"></a><div class="property show-anchors"><div class="signature"><span class="path">ethers</span><span class="symbol">.</span><span class="path">utils</span><span class="symbol">.</span><span class="method">soliditySha256</span><span class="symbol">(</span> <span class="param">types</span> <span class="symbol">,</span> <span class="param">values</span> <span class="symbol">)</span> <span class="arrow">&rArr;</span> <span class="returns">string&lt; <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>&lt; 32 &gt; &gt;</span><div class="anchors"><a class="self" href="/v5/api/utils/hashing/#utils-soliditySha256"></a><a class="source" href="https://github.com/ethers-io/ethers.js/blob/ethers-v5-beta/packages/solidity/src.ts/index.ts#L86">source</a></div></div><div class="body"><p>Returns the <a href="https://en.wikipedia.org/wiki/SHA-2">SHA2-256</a> of the non-standard encoded <i>values</i> packed according to their respective type in <i>types</i>.</p>
</div></div><div class="code-title"><div>Solidity Hashing</div></div><div class="code">utils.solidityPack([ "int16", "uint48" ], [ -1, 12 ])
//!
<span class="result ok">// '0xffff00000000000c'
</span>
utils.solidityPack([ "string", "uint8" ], [ "Hello", 3 ])
//!
<span class="result ok">// '0x48656c6c6f03'
</span>
utils.solidityKeccak256([ "int16", "uint48" ], [ -1, 12 ])
//!
<span class="result ok">// '0x81da7abb5c9c7515f57dab2fc946f01217ab52f3bd8958bc36bd55894451a93c'
</span>
utils.soliditySha256([ "int16", "uint48" ], [ -1, 12 ])
//!</div>
<span class="result ok">// '0xa5580fb602f6e2ba9c588011dc4e6c2335e0f5d970dc45869db8f217efc6911a'
</span></div>
<div class="footer">
<div class="nav previous"><a href="/v5/api/utils/fixednumber/"><span class="arrow">&larr;</span>FixedNumber</a></div>
<div class="nav next"><a href="/v5/api/utils/hdnode/">HD Wallet<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -88,7 +88,7 @@
<div class="nav previous"><a href="/v5/api/utils/hashing/"><span class="arrow">&larr;</span>Hashing Algorithms</a></div>
<div class="nav next"><a href="/v5/api/utils/logger/">Logging<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/api/providers/types/"><span class="arrow">&larr;</span>Types</a></div>
<div class="nav next"><a href="/v5/api/utils/abi/">Application Binary Interface<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -132,7 +132,7 @@
<div class="nav previous"><a href="/v5/api/utils/hdnode/"><span class="arrow">&larr;</span>HD Wallet</a></div>
<div class="nav next"><a href="/v5/api/utils/properties/">Property Utilities<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -29,7 +29,7 @@
<div class="nav previous"><a href="/v5/api/utils/logger/"><span class="arrow">&larr;</span>Logging</a></div>
<div class="nav next"><a href="/v5/api/utils/signing-key/">Signing Key<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -45,7 +45,7 @@
<div class="nav previous"><a href="/v5/api/utils/properties/"><span class="arrow">&larr;</span>Property Utilities</a></div>
<div class="nav next"><a href="/v5/api/utils/strings/">Strings<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -98,7 +98,7 @@
<div class="nav previous"><a href="/v5/api/utils/signing-key/"><span class="arrow">&larr;</span>Signing Key</a></div>
<div class="nav next"><a href="/v5/api/utils/transactions/">Transactions<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -81,7 +81,7 @@
<div class="nav previous"><a href="/v5/api/utils/strings/"><span class="arrow">&larr;</span>Strings</a></div>
<div class="nav next"><a href="/v5/api/utils/web/">Web Utilities<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -61,7 +61,7 @@
<div class="nav previous"><a href="/v5/api/utils/transactions/"><span class="arrow">&larr;</span>Transactions</a></div>
<div class="nav next"><a href="/v5/api/utils/wordlists/">Wordlists<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -58,7 +58,7 @@
<div class="nav previous"><a href="/v5/api/utils/web/"><span class="arrow">&larr;</span>Web Utilities</a></div>
<div class="nav next"><a href="/v5/api/other/">Other Libraries<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -180,7 +180,7 @@ return(0, #myContract)
<div class="nav previous"><a href="/v5/cli/ethers/"><span class="arrow">&larr;</span>Sandbox Utility</a></div>
<div class="nav next"><a href="/v5/cli/ens/">Ethereum Naming Service<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -94,7 +94,7 @@ OTHER OPTIONS
<div class="nav previous"><a href="/v5/cli/asm/"><span class="arrow">&larr;</span>Assembler</a></div>
<div class="nav next"><a href="/v5/cli/typescript/">TypeScript<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -209,7 +209,7 @@ homestead&gt;</div><div class="definition container-box warning"><div class="ter
<div class="nav previous"><a href="/v5/cli/"><span class="arrow">&larr;</span>Command Line Interfaces</a></div>
<div class="nav next"><a href="/v5/cli/asm/">Assembler<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -23,7 +23,7 @@
<div class="nav previous"><a href="/v5/api/experimental/"><span class="arrow">&larr;</span>Experimental</a></div>
<div class="nav next"><a href="/v5/cli/ethers/">Sandbox Utility<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -102,7 +102,7 @@
<div class="nav previous"><a href="/v5/cli/typescript/"><span class="arrow">&larr;</span>TypeScript</a></div>
<div class="nav next"><a href="/v5/cookbook/">Cookbook<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -42,7 +42,7 @@ OTHER OPTIONS
<div class="nav previous"><a href="/v5/cli/ens/"><span class="arrow">&larr;</span>Ethereum Naming Service</a></div>
<div class="nav next"><a href="/v5/cli/plugin/">Making Your Own<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -27,25 +27,26 @@
<p>This can be acomplished by using the following function:</p>
<div class="code-title"><div>Automatically Refresh on Network Change</div></div><div class="code">// Force page refreshes on network changes
{
// The "any" network will allow spontaneous network changes
const provider = new ethers.providers.Web3Provider(window.ethereum, "any");
<div class="code-title"><div>Automatically Refresh on Network Change</div></div><div class="code"><span class="comment">// Force page refreshes on network changes
</span>{
<span class="comment"> // The "any" network will allow spontaneous network changes
</span> const provider = new ethers.providers.Web3Provider(window.ethereum, "any");
provider.on("network", (newNetwork, oldNetwork) =&gt; {
// When a Provider makes its initial connection, it emits a "network"
// event with a null oldNetwork along with the newNetwork. So, if the
// oldNetwork exists, it represents a changing network
if (oldNetwork) {
<span class="comment"> // When a Provider makes its initial connection, it emits a "network"
</span><span class="comment"> // event with a null oldNetwork along with the newNetwork. So, if the
</span><span class="comment"> // oldNetwork exists, it represents a changing network
</span> if (oldNetwork) {
window.location.reload();
}
});
}</div>
}
</div>
<div class="footer">
<div class="nav previous"><!--PREV_LINK--></div>
<div class="nav next"><!--NEXT_LINK--></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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -20,14 +20,6 @@ Example Log Matching
```javascript
// <hide>
const tokenAddress = ethers.constants.AddressZero;
const myAddress = ethers.constants.AddressZero;
const myOtherAddress = ethers.constants.AddressZero;
const id = ethers.utils.id;
const hexZeroPad = ethers.utils.hexZeroPad;
// </hide>
// Short example of manually creating filters for an ERC-20
// Transfer event.
//
@@ -90,14 +82,6 @@ To simplify life, ..., explain here, the contract API
```javascript
// <hide>
const tokenAddress = "0x6B175474E89094C44Da98b954EedeAC495271d0F"; // DAI
const myAddress = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
const otherAddress = "0xEA517D5a070e6705Cc5467858681Ed953d285Eb9";
const provider = ethers.getDefaultProvider();
const Contract = ethers.Contract;
// </hide>
const abi = [
"event Transfer(address indexed src, address indexed dst, uint val)"
];
@@ -106,19 +90,49 @@ const contract = new Contract(tokenAddress, abi, provider);
// List all token transfers *from* myAddress
contract.filters.Transfer(myAddress)
//!
// {
// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
// ]
// }
// List all token transfers *to* myAddress:
contract.filters.Transfer(null, myAddress)
//!
// {
// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// null,
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
// ]
// }
// List all token transfers *from* myAddress *to* otherAddress:
contract.filters.Transfer(myAddress, otherAddress)
//!
// {
// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
// '0x000000000000000000000000ea517d5a070e6705cc5467858681ed953d285eb9'
// ]
// }
// List all token transfers *to* myAddress OR otherAddress:
contract.filters.Transfer(null, [ myAddress, otherAddress ])
//!
// {
// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// null,
// [
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
// '0x000000000000000000000000ea517d5a070e6705cc5467858681ed953d285eb9'
// ]
// ]
// }
```
### Other Things? TODO

View File

@@ -34,40 +34,32 @@
<p>If a topic-set is an array of topics, a log topic in that position must match any <b>one</b> of topics (i.e. the topic in thie position are <code class="inline">OR</code>-ed).</p>
<table class="table full"><tr><td align="center" width="25%"><b>Topic-Sets</b></td><td align="center" colspan="3" width="75%"><b>Matching Logs</b></td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A ]</td><td align="left" colspan="3" rowspan="2" width="75%">topic[0] = A</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ null, B ]</td><td align="left" colspan="3" rowspan="3" width="75%">topic[1] = B</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ null, [ B ] ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ null, [ B ], null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, B ]</td><td align="left" colspan="3" rowspan="3" width="75%">(topic[0] = A) <b>AND</b> (topic[1] = B)</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, [ B ] ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, [ B ], null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ [ A, B ] ]</td><td align="left" colspan="3" rowspan="2" width="75%">(topic[0] = A) <b>OR</b> (topic[0] = B)</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ [ A, B ], null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ [ A, B ], [ C, D ] ]</td><td align="left" colspan="3" width="75%"><b>[</b> (topic[0] = A) <b>OR</b> (topic[0] = B) <b>]</b> <b>AND</b> <b>[</b> (topic[1] = C) <b>OR</b> (topic[1] = D) <b>]</b></td><td class="fix">&nbsp;</td></tr><tr><td class="table-title" colspan="4">Example Log Matching</td><td class="fix">&nbsp;</td></tr></table><div class="code-title"><div>ERC-20 Transfer Filter Examples</div></div><div class="code">// &lt;hide&gt;
const tokenAddress = ethers.constants.AddressZero;
const myAddress = ethers.constants.AddressZero;
const myOtherAddress = ethers.constants.AddressZero;
const id = ethers.utils.id;
const hexZeroPad = ethers.utils.hexZeroPad;
// &lt;/hide&gt;
// Short example of manually creating filters for an ERC-20
// Transfer event.
//
// Most users should generally use the Contract API to
// compute filters, as it is much simpler, but this is
// provided as an illustration for those curious. See
// below for examples of the equivalent Contract API.
// ERC-20:
// Transfer(address indexed src, address indexed dst, uint val)
//
// -------------------^
// ----------------------------------------^
//
// Notice that only *src* and *dst* are *indexed*, so ONLY they
// qualify for filtering.
//
// Also, note that in Solidity an Event uses the first topic to
// identify the Event name; for Transfer this will be:
// id("Transfer(address,address,uint256)")
//
// Other Notes:
// - A topic must be 32 bytes; so shorter types must be padded
// List all token transfers *from* myAddress
filter = {
<table class="table full"><tr><td align="center" width="25%"><b>Topic-Sets</b></td><td align="center" colspan="3" width="75%"><b>Matching Logs</b></td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A ]</td><td align="left" colspan="3" rowspan="2" width="75%">topic[0] = A</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ null, B ]</td><td align="left" colspan="3" rowspan="3" width="75%">topic[1] = B</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ null, [ B ] ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ null, [ B ], null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, B ]</td><td align="left" colspan="3" rowspan="3" width="75%">(topic[0] = A) <b>AND</b> (topic[1] = B)</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, [ B ] ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ A, [ B ], null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ [ A, B ] ]</td><td align="left" colspan="3" rowspan="2" width="75%">(topic[0] = A) <b>OR</b> (topic[0] = B)</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ [ A, B ], null ]</td><td class="fix">&nbsp;</td></tr><tr><td align="center" width="25%">[ [ A, B ], [ C, D ] ]</td><td align="left" colspan="3" width="75%"><b>[</b> (topic[0] = A) <b>OR</b> (topic[0] = B) <b>]</b> <b>AND</b> <b>[</b> (topic[1] = C) <b>OR</b> (topic[1] = D) <b>]</b></td><td class="fix">&nbsp;</td></tr><tr><td class="table-title" colspan="4">Example Log Matching</td><td class="fix">&nbsp;</td></tr></table><div class="code-title"><div>ERC-20 Transfer Filter Examples</div></div><div class="code"><span class="comment">// Short example of manually creating filters for an ERC-20
</span><span class="comment">// Transfer event.
</span>//
<span class="comment">// Most users should generally use the Contract API to
</span><span class="comment">// compute filters, as it is much simpler, but this is
</span><span class="comment">// provided as an illustration for those curious. See
</span><span class="comment">// below for examples of the equivalent Contract API.
</span>
<span class="comment">// ERC-20:
</span><span class="comment">// Transfer(address indexed src, address indexed dst, uint val)
</span>//
<span class="comment">// -------------------^
</span><span class="comment">// ----------------------------------------^
</span>//
<span class="comment">// Notice that only *src* and *dst* are *indexed*, so ONLY they
</span><span class="comment">// qualify for filtering.
</span>//
<span class="comment">// Also, note that in Solidity an Event uses the first topic to
</span><span class="comment">// identify the Event name; for Transfer this will be:
</span><span class="comment">// id("Transfer(address,address,uint256)")
</span>//
<span class="comment">// Other Notes:
</span><span class="comment">// - A topic must be 32 bytes; so shorter types must be padded
</span>
<span class="comment">// List all token transfers *from* myAddress
</span>filter = {
address: tokenAddress,
topics: [
id("Transfer(address,address,uint256)"),
@@ -75,8 +67,8 @@ filter = {
]
}
// List all token transfers *to* myAddress:
filter = {
<span class="comment">// List all token transfers *to* myAddress:
</span>filter = {
address: tokenAddress,
topics: [
id("Transfer(address,address,uint256)"),
@@ -85,8 +77,8 @@ filter = {
]
}
// List all token transfers *to* myAddress or myOtherAddress:
filter = {
<span class="comment">// List all token transfers *to* myAddress or myOtherAddress:
</span>filter = {
address: tokenAddress,
topics: [
id("Transfer(address,address,uint256)"),
@@ -96,37 +88,61 @@ filter = {
hexZeroPad(myOtherAddress, 32),
]
]
}</div><p>To simplify life, ..., explain here, the contract API</p>
}
</div><p>To simplify life, ..., explain here, the contract API</p>
<div class="code-title"><div>ERC-20 Contract Filter Examples</div></div><div class="code">// &lt;hide&gt;
const tokenAddress = "0x6B175474E89094C44Da98b954EedeAC495271d0F"; // DAI
const myAddress = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
const otherAddress = "0xEA517D5a070e6705Cc5467858681Ed953d285Eb9";
const provider = ethers.getDefaultProvider();
const Contract = ethers.Contract;
// &lt;/hide&gt;
const abi = [
<div class="code-title"><div>ERC-20 Contract Filter Examples</div></div><div class="code">const abi = [
"event Transfer(address indexed src, address indexed dst, uint val)"
];
const contract = new Contract(tokenAddress, abi, provider);
// List all token transfers *from* myAddress
contract.filters.Transfer(myAddress)
//!
// List all token transfers *to* myAddress:
contract.filters.Transfer(null, myAddress)
//!
// List all token transfers *from* myAddress *to* otherAddress:
contract.filters.Transfer(myAddress, otherAddress)
//!
// List all token transfers *to* myAddress OR otherAddress:
contract.filters.Transfer(null, [ myAddress, otherAddress ])
//!</div><a name="events--logs-and-filtering--other-things-todo"></a><h3 class="show-anchors"><div>Other Things? TODO<div class="anchors"><a class="self" href="/v5/concepts/events/#events--logs-and-filtering--other-things-todo"></a></div></div></h3><p>Explain what happens to strings and bytes, how to filter and retain the value</p>
<span class="comment">// List all token transfers *from* myAddress
</span>contract.filters.Transfer(myAddress)
<span class="result ok">// {
</span><span class="result ok">// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span>
<span class="comment">// List all token transfers *to* myAddress:
</span>contract.filters.Transfer(null, myAddress)
<span class="result ok">// {
</span><span class="result ok">// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// null,
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span>
<span class="comment">// List all token transfers *from* myAddress *to* otherAddress:
</span>contract.filters.Transfer(myAddress, otherAddress)
<span class="result ok">// {
</span><span class="result ok">// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
</span><span class="result ok">// '0x000000000000000000000000ea517d5a070e6705cc5467858681ed953d285eb9'
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span>
<span class="comment">// List all token transfers *to* myAddress OR otherAddress:
</span>contract.filters.Transfer(null, [ myAddress, otherAddress ])
<span class="result ok">// {
</span><span class="result ok">// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// null,
</span><span class="result ok">// [
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
</span><span class="result ok">// '0x000000000000000000000000ea517d5a070e6705cc5467858681ed953d285eb9'
</span><span class="result ok">// ]
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span></div><a name="events--logs-and-filtering--other-things-todo"></a><h3 class="show-anchors"><div>Other Things? TODO<div class="anchors"><a class="self" href="/v5/concepts/events/#events--logs-and-filtering--other-things-todo"></a></div></div></h3><p>Explain what happens to strings and bytes, how to filter and retain the value</p>
@@ -134,7 +150,7 @@ contract.filters.Transfer(null, [ myAddress, otherAddress ])
<div class="nav previous"><a href="/v5/concepts/"><span class="arrow">&larr;</span>Ethereum Basics</a></div>
<div class="nav next"><a href="/v5/concepts/gas/">Gas<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -27,7 +27,7 @@
<div class="nav previous"><a href="/v5/concepts/events/"><span class="arrow">&larr;</span>Events</a></div>
<div class="nav next"><a href="/v5/concepts/security/">Security<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -26,7 +26,7 @@
<div class="nav previous"><a href="/v5/getting-started/"><span class="arrow">&larr;</span>Getting Started</a></div>
<div class="nav next"><a href="/v5/concepts/events/">Events<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -39,29 +39,30 @@
<p>The scrypt algorithm is designed to be tuned. The main purpose of this is to increase the difficulty as time goes on and computers get faster, but it can also be tuned down in situations where the security is less important.</p>
<div class="code">// Our wallet object
const wallet = Wallet.createRandom();
<div class="code"><span class="comment">// Our wallet object
</span>const wallet = Wallet.createRandom();
// The password to encrypt with
const password = "password123";
<span class="comment">// The password to encrypt with
</span>const password = "password123";
// WARNING: Doing this substantially reduces the security
// of the wallet. This is highly NOT recommended.
// We override the default scrypt.N value, which is used
// to indicate the difficulty to crack this wallet.
const json = wallet.encrypt(password, {
<span class="comment">// WARNING: Doing this substantially reduces the security
</span><span class="comment">// of the wallet. This is highly NOT recommended.
</span>
<span class="comment">// We override the default scrypt.N value, which is used
</span><span class="comment">// to indicate the difficulty to crack this wallet.
</span>const json = wallet.encrypt(password, {
scrypt: {
// The number must be a power of 2 (default: 131072)
N: 64
<span class="comment"> // The number must be a power of 2 (default: 131072)
</span> N: 64
}
});</div>
});
</div>
<div class="footer">
<div class="nav previous"><a href="/v5/concepts/gas/"><span class="arrow">&larr;</span>Gas</a></div>
<div class="nav next"><a href="/v5/api/">Application Programming Interface<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -57,7 +57,7 @@
<div class="nav previous"><a href="/v5/testing/"><span class="arrow">&larr;</span>Testing</a></div>
<div class="nav next"><a href="/v5/documentation/">Flatworm Docs<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/cli/plugin/"><span class="arrow">&larr;</span>Making Your Own</a></div>
<div class="nav next"><a href="/v5/migration/">Migration Guide<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -229,22 +229,15 @@ foo
```
```javascript
// <hide>
const url = require("url");
// </hide>
url.parse("https://www.ricmoo.com/").protocol
//!
// 'https:'
url.parse(45)
//! error
// Error: The "url" argument must be of type string. Received type number
// You want to assign (doesn't emit eval) AND display the value
const foo = 4 + 5;
// <hide>
foo
// </hide>
//!
// 9
```
### Languages

View File

@@ -199,22 +199,16 @@ const foo = 4 + 5;
// &lt;hide&gt;
foo
// &lt;/hide&gt;
//!</div><div class="code-title"><div>Result of Code Example</div></div><div class="code">// &lt;hide&gt;
const url = require("url");
// &lt;/hide&gt;
url.parse("https://www.ricmoo.com/").protocol
//!
//!</div><div class="code-title"><div>Result of Code Example</div></div><div class="code">url.parse("https://www.ricmoo.com/").protocol
<span class="result ok">// 'https:'
</span>
url.parse(45)
//! error
// You want to assign (doesn't emit eval) AND display the value
const foo = 4 + 5;
// &lt;hide&gt;
foo
// &lt;/hide&gt;
//!</div><a name="flatworm-docs--flatworm--code--languages"></a><h3 class="show-anchors"><div>Languages<div class="anchors"><a class="self" href="/v5/documentation/#flatworm-docs--flatworm--code--languages"></a></div></div></h3><p>The language can be specified using the <a href="/v5/documentation/#flatworm--ext-lang">@lang extension</a>.</p>
<span class="result error">// Error: The "url" argument must be of type string. Received type number
</span>
<span class="comment">// You want to assign (doesn't emit eval) AND display the value
</span>const foo = 4 + 5;
<span class="result ok">// 9
</span></div><a name="flatworm-docs--flatworm--code--languages"></a><h3 class="show-anchors"><div>Languages<div class="anchors"><a class="self" href="/v5/documentation/#flatworm-docs--flatworm--code--languages"></a></div></div></h3><p>The language can be specified using the <a href="/v5/documentation/#flatworm--ext-lang">@lang extension</a>.</p>
<table class="table minimal"><tr><td align="center"><b>Language</b></td><td align="center"><b>Notes</b></td><td class="fix">&nbsp;</td></tr><tr><td align="center">javascript</td><td align="left">Syntax highlights and <a href="/v5/documentation/#flatworm--code-eval">evaluates</a> the JavaScipt</td><td class="fix">&nbsp;</td></tr><tr><td align="center">script</td><td align="left">Same as <code class="inline">javascript</code>, but does not evaluate the results</td><td class="fix">&nbsp;</td></tr><tr><td align="center">shell</td><td align="left">Shell scripts or command-line</td><td class="fix">&nbsp;</td></tr><tr><td align="center">text</td><td align="left">Plain text with no syntax highlighting</td><td class="fix">&nbsp;</td></tr></table><a name="flatworm--table"></a><a name="flatworm-docs--flatworm--table"></a><h2 class="show-anchors"><div>Tables<div class="anchors"><a class="self" href="/v5/documentation/#flatworm--table"></a></div></div></h2><p>The table directive consumes the entire body up until the next directive. To terminate a table early to begin a text block, use a <b>_null:</b> directive.</p>
@@ -287,7 +281,7 @@ $bottom: This just represents an example of
<div class="nav previous"><a href="/v5/contributing/"><span class="arrow">&larr;</span>Contributing and Hacking</a></div>
<div class="nav next"><a href="/v5/license/">License and Copyright<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -65,21 +65,21 @@ const signer = provider.getSigner()
```javascript
// Look up the current block number
provider.getBlockNumber()
//!
// { Promise: 10253799 }
// Get the balance of an account (by address or ENS name)
balance = await provider.getBalance("ethers.eth")
//! async balance
// { BigNumber: "2337132817842795605" }
// Often you will need to format the output for the user
// which prefer to see values in ether (instead of wei)
ethers.utils.formatEther(balance)
//!
// '2.337132817842795605'
// Or if a user enters a string in an input field, you may need
// to convert it from ether (as a string) to wei (as a BigNumber)
ethers.utils.parseEther("1.0")
//!
// { BigNumber: "1000000000000000000" }
```
### Writing to the Blockchain
@@ -123,33 +123,21 @@ const daiContract = new ethers.Contract(daiAddress, daiAbi, provider);
### Read-Only Methods
```javascript
// <hide>
const daiAbi = [
// Some simple details about the token
"function name() view returns (string)",
"function symbol() view returns (string)",
// Get the account balance
"function balanceOf(address) view returns (uint)",
];
const daiContract = new ethers.Contract("dai.tokens.ethers.eth", daiAbi, provider);
// </hide>
// Get the ERC-20 token name
daiContract.name()
//!
// { Promise: 'Dai Stablecoin' }
// Get the ERC-20 token synbol (for tickers and UIs)
daiContract.symbol()
//!
// { Promise: 'DAI' }
// Get the balance of an address
balance = await daiContract.balanceOf("ricmoo.firefly.eth")
//! async balance
// { BigNumber: "7712595125722568213383" }
// Format the DAI for displaying to the user
ethers.utils.formatUnits(balance, 18)
//!
// '7712.595125722568213383'
```
### State Changing Methods
@@ -170,14 +158,6 @@ tx = daiWithSigner.transfer("ricmoo.firefly.eth", dai);
### Listening to Events
```javascript
// <hide>
const daiAbi = [
"event Transfer(address indexed, address indexed, uint256)"
];
const daiContract = new ethers.Contract("dai.tokens.ethers.eth", daiAbi, provider);
const formatEther = ethers.utils.formatEther;
// </hide>
// Receive an event when ANY transfer occurs
daiContract.on("Transfer", (from, to, amount, event) => {
console.log(`${ from } sent ${ formatEther(amount) } to ${ to}`);
@@ -189,56 +169,108 @@ daiContract.on("Transfer", (from, to, amount, event) => {
// A filter for when a specific address receives tokens
myAddress = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
filter = daiContract.filters.Transfer(null, myAddress)
// <hide>
filter
// </hide>
//!
// {
// address: 'dai.tokens.ethers.eth',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// null,
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
// ]
// }
// Receive an event when that filter occurs
daiContract.on(filter, (from, to, amount, event) => {
// The to will always be "address"
console.log(`I got ${ formatEther(amount) } from ${ from }.`);
});
// <hide>
// Don't want to block the docs from compiling...
daiContract.removeAllListeners();
// </hide>
```
### Query Historic Events
```javascript
// <hide>
const signer = new ethers.VoidSigner("0x8ba1f109551bD432803012645Ac136ddd64DBA72");
const daiAbi = [
"event Transfer(address indexed, address indexed, uint256)"
];
const daiContract = new ethers.Contract("dai.tokens.ethers.eth", daiAbi, provider);
//!
// </hide>
// Get the address of the Signer
myAddress = await signer.getAddress()
//! async myAddress
// '0x8ba1f109551bD432803012645Ac136ddd64DBA72'
// Filter for all token transfers to me
filterFrom = daiContract.filters.Transfer(myAddress, null);
// <hide>
filterFrom
// </hide>
//!
// {
// address: 'dai.tokens.ethers.eth',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
// ]
// }
// Filter for all token transfers from me
filterTo = daiContract.filters.Transfer(null, myAddress);
// <hide>
filterTo
// </hide>
//!
// {
// address: 'dai.tokens.ethers.eth',
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// null,
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
// ]
// }
// List all transfers sent from me a specific block range
daiContract.queryFilter(filterFrom, 9843470, 9843480)
//!
// { Promise: [
// {
// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
// args: [
// '0x8ba1f109551bD432803012645Ac136ddd64DBA72',
// '0x8B3765eDA5207fB21690874B722ae276B96260E0',
// { BigNumber: "4750000000000000000" }
// ],
// blockHash: '0x8462eb2fbcef5aa4861266f59ad5f47b9aa6525d767d713920fdbdfb6b0c0b78',
// blockNumber: 9843476,
// data: '0x00000000000000000000000000000000000000000000000041eb63d55b1b0000',
// decode: [Function],
// event: 'Transfer',
// eventSignature: 'Transfer(address,address,uint256)',
// getBlock: [Function],
// getTransaction: [Function],
// getTransactionReceipt: [Function],
// logIndex: 69,
// removeListener: [Function],
// removed: false,
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
// '0x0000000000000000000000008b3765eda5207fb21690874b722ae276b96260e0'
// ],
// transactionHash: '0x1be23554545030e1ce47391a41098a46ff426382ed740db62d63d7676ff6fcf1',
// transactionIndex: 81
// },
// {
// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
// args: [
// '0x8ba1f109551bD432803012645Ac136ddd64DBA72',
// '0x00De4B13153673BCAE2616b67bf822500d325Fc3',
// { BigNumber: "250000000000000000" }
// ],
// blockHash: '0x8462eb2fbcef5aa4861266f59ad5f47b9aa6525d767d713920fdbdfb6b0c0b78',
// blockNumber: 9843476,
// data: '0x00000000000000000000000000000000000000000000000003782dace9d90000',
// decode: [Function],
// event: 'Transfer',
// eventSignature: 'Transfer(address,address,uint256)',
// getBlock: [Function],
// getTransaction: [Function],
// getTransactionReceipt: [Function],
// logIndex: 70,
// removeListener: [Function],
// removed: false,
// topics: [
// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
// '0x00000000000000000000000000de4b13153673bcae2616b67bf822500d325fc3'
// ],
// transactionHash: '0x1be23554545030e1ce47391a41098a46ff426382ed740db62d63d7676ff6fcf1',
// transactionIndex: 81
// }
// ] }
//
// The following have had the results omitted due to the
@@ -256,16 +288,11 @@ Signing Messages
----------------
```javascript
// <hide>
const signer = ethers.Wallet.createRandom();
//!
// </hide>
// To sign a simple string, which can often be used for
// logging into a service, such as CryptoKitties simply
// pass the string in.
signature = await signer.signMessage("Hello World");
//! async signature
// '0xe4f2a4e1a867a4757bd1ef7d0d5b9bf552c013f4598356e9326106d74d47292412efc81cd3b97a7e298f1b78b973c376d32ae0bdca811514e1258360a00c1bb71c'
//
// A common case is also signing a hash, which is 32
@@ -278,10 +305,10 @@ message = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
// This array representation is 32 bytes long
messageBytes = ethers.utils.arrayify(message);
//!
// Uint8Array [ 221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241, 99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239 ]
// To sign a hash, you most often want to sign the bytes
signature = await signer.signMessage(messageBytes)
//! async signature
// '0x4542871f6c9b776c7ca4f23d0435b4e98eaf9fc25060162bf1c43420d8ce202c2d12a5e1c1dbbbde145e5ee8b1c243c931d3e2d93394f73081800155b2cc480b1c'
```

View File

@@ -21,7 +21,9 @@
<div class="code">/home/ricmoo&gt; npm install --save ethers@next</div><a name="importing"></a><a name="getting-started--importing"></a><h2 class="show-anchors"><div>Importing<div class="anchors"><a class="self" href="/v5/getting-started/#importing"></a></div></div></h2>
<a name="getting-started--importing--node-js"></a><h3 class="show-anchors"><div>Node.js<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--importing--node-js"></a></div></div></h3>
<div class="code-title"><div>node.js require</div></div><div class="code">const { ethers } = require("ethers");</div><div class="code-title"><div>ES6 or TypeScript</div></div><div class="code">import { ethers } from "ethers";</div><a name="getting-started--importing--web-browser"></a><h3 class="show-anchors"><div>Web Browser<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--importing--web-browser"></a></div></div></h3><p>It is generally better practice (for security reasons) to copy the <a href="https://cdn.ethers.io/lib/ethers-5.0.esm.min.js">ethers library</a> to your own webserver and serve it yourself.</p>
<div class="code-title"><div>node.js require</div></div><div class="code">const { ethers } = require("ethers");
</div><div class="code-title"><div>ES6 or TypeScript</div></div><div class="code">import { ethers } from "ethers";
</div><a name="getting-started--importing--web-browser"></a><h3 class="show-anchors"><div>Web Browser<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--importing--web-browser"></a></div></div></h3><p>It is generally better practice (for security reasons) to copy the <a href="https://cdn.ethers.io/lib/ethers-5.0.esm.min.js">ethers library</a> to your own webserver and serve it yourself.</p>
<p>For quick demos or prototyping though, it can be loaded in your Web Applications from our CDN.</p>
@@ -33,37 +35,40 @@
<p><ul><li>A connection to the Ethereum network (a <a href="/v5/api/providers/provider/">Provider</a>) </li><li>Holds your private key and can sign thing (a <a href="/v5/api/signer/#Signer">Signer</a>) </li></ul></p>
<div class="code-title"><div>Connecting to Metamask</div></div><div class="code">// A Web3Provider wraps a standard Web3 provider, which is
// what Metamask injects as window.ethereum into each page
const provider = new ethers.providers.Web3Provider(window.ethereum)
<div class="code-title"><div>Connecting to Metamask</div></div><div class="code"><span class="comment">// A Web3Provider wraps a standard Web3 provider, which is
</span><span class="comment">// what Metamask injects as window.ethereum into each page
</span>const provider = new ethers.providers.Web3Provider(window.ethereum)
// The Metamask plugin also allows signing transactions to
// send ether and pay to change state within the blockchain.
// For this, we need the account signer...
const signer = provider.getSigner()</div><a name="getting-started--querying"></a><a name="getting-started--getting-started--connecting--getting-started--querying"></a><h3 class="show-anchors"><div>Querying the Blockchain<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--querying"></a></div></div></h3><p>Once you have a <a href="/v5/api/providers/provider/">Provider</a>, you have a read-only connection to the blockchain, which can be used to query the current state, fetch historic logs, look up deployed code and so on.</p>
<span class="comment">// The Metamask plugin also allows signing transactions to
</span><span class="comment">// send ether and pay to change state within the blockchain.
</span><span class="comment">// For this, we need the account signer...
</span>const signer = provider.getSigner()
</div><a name="getting-started--querying"></a><a name="getting-started--getting-started--connecting--getting-started--querying"></a><h3 class="show-anchors"><div>Querying the Blockchain<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--querying"></a></div></div></h3><p>Once you have a <a href="/v5/api/providers/provider/">Provider</a>, you have a read-only connection to the blockchain, which can be used to query the current state, fetch historic logs, look up deployed code and so on.</p>
<div class="code-title"><div>Basic Queries</div></div><div class="code">// Look up the current block number
provider.getBlockNumber()
//!
// Get the balance of an account (by address or ENS name)
balance = await provider.getBalance("ethers.eth")
//! async balance
// Often you will need to format the output for the user
// which prefer to see values in ether (instead of wei)
ethers.utils.formatEther(balance)
//!
// Or if a user enters a string in an input field, you may need
// to convert it from ether (as a string) to wei (as a BigNumber)
ethers.utils.parseEther("1.0")
//!</div><a name="getting-started--sending"></a><a name="getting-started--getting-started--connecting--getting-started--sending"></a><h3 class="show-anchors"><div>Writing to the Blockchain<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--sending"></a></div></div></h3>
<div class="code-title"><div>Sending Ether</div></div><div class="code">// Send 1 ether to an ens name.
const tx = signer.sendTransaction({
<div class="code-title"><div>Basic Queries</div></div><div class="code"><span class="comment">// Look up the current block number
</span>provider.getBlockNumber()
<span class="result ok">// { Promise: 10253799 }
</span>
<span class="comment">// Get the balance of an account (by address or ENS name)
</span>balance = await provider.getBalance("ethers.eth")
<span class="result ok">// { BigNumber: "2337132817842795605" }
</span>
<span class="comment">// Often you will need to format the output for the user
</span><span class="comment">// which prefer to see values in ether (instead of wei)
</span>ethers.utils.formatEther(balance)
<span class="result ok">// '2.337132817842795605'
</span>
<span class="comment">// Or if a user enters a string in an input field, you may need
</span><span class="comment">// to convert it from ether (as a string) to wei (as a BigNumber)
</span>ethers.utils.parseEther("1.0")
<span class="result ok">// { BigNumber: "1000000000000000000" }
</span></div><a name="getting-started--sending"></a><a name="getting-started--getting-started--connecting--getting-started--sending"></a><h3 class="show-anchors"><div>Writing to the Blockchain<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--sending"></a></div></div></h3>
<div class="code-title"><div>Sending Ether</div></div><div class="code"><span class="comment">// Send 1 ether to an ens name.
</span>const tx = signer.sendTransaction({
to: "ricmoo.firefly.eth",
value: ethers.utils.parseEther("1.0")
});</div><a name="getting-started--contracts"></a><a name="getting-started--getting-started--contracts"></a><h2 class="show-anchors"><div>Contracts<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--contracts"></a></div></div></h2><p>A Contract is an abstraction of program code which lives on the Ethereum blockchain.</p>
});
</div><a name="getting-started--contracts"></a><a name="getting-started--getting-started--contracts"></a><h2 class="show-anchors"><div>Contracts<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--contracts"></a></div></div></h2><p>A Contract is an abstraction of program code which lives on the Ethereum blockchain.</p>
<p>The <a href="/v5/api/contract/contract/">Contract</a> object makes it easier to use an on-chain Contract as a normal JavaScript object, with the method all mapped to encoding and decoding data for you.</p>
@@ -77,173 +82,206 @@ const tx = signer.sendTransaction({
<p>An ABI often comes from the Solidity or Vyper compiler, but may also be placed in the code easily using the Human-Readable ABI, which the following examples use.</p>
<div class="code-title"><div>Connecting to the DAI Contract</div></div><div class="code">// We can use an ENS name for the contract address
const daiAddress = "dai.tokens.ethers.eth";
<div class="code-title"><div>Connecting to the DAI Contract</div></div><div class="code"><span class="comment">// We can use an ENS name for the contract address
</span>const daiAddress = "dai.tokens.ethers.eth";
// The ERC-20 Contract ABI, which is a common contract interface
// for tokens (this is the Human-Readable ABI format)
const daiAbi = [
// Some simple details about the token
"function name() view returns (string)",
<span class="comment">// The ERC-20 Contract ABI, which is a common contract interface
</span><span class="comment">// for tokens (this is the Human-Readable ABI format)
</span>const daiAbi = [
<span class="comment"> // Some simple details about the token
</span> "function name() view returns (string)",
"function symbol() view returns (string)",
// Get the account balance
"function balanceOf(address) view returns (uint)",
<span class="comment"> // Get the account balance
</span> "function balanceOf(address) view returns (uint)",
// Send some of your tokens to someone else
"function transfer(address to, uint amount)",
<span class="comment"> // Send some of your tokens to someone else
</span> "function transfer(address to, uint amount)",
// An event triggered whenever anyone transfers to someone else
"event Transfer(address indexed from, address indexed to, uint amount)"
<span class="comment"> // An event triggered whenever anyone transfers to someone else
</span> "event Transfer(address indexed from, address indexed to, uint amount)"
];
// The Contract object
const daiContract = new ethers.Contract(daiAddress, daiAbi, provider);</div><a name="getting-started--reading"></a><a name="getting-started--getting-started--contracts--getting-started--reading"></a><h3 class="show-anchors"><div>Read-Only Methods<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--reading"></a></div></div></h3>
<div class="code-title"><div>Querying the DAI Contract</div></div><div class="code">// &lt;hide&gt;
const daiAbi = [
// Some simple details about the token
"function name() view returns (string)",
"function symbol() view returns (string)",
<span class="comment">// The Contract object
</span>const daiContract = new ethers.Contract(daiAddress, daiAbi, provider);
</div><a name="getting-started--reading"></a><a name="getting-started--getting-started--contracts--getting-started--reading"></a><h3 class="show-anchors"><div>Read-Only Methods<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--reading"></a></div></div></h3>
<div class="code-title"><div>Querying the DAI Contract</div></div><div class="code"><span class="comment">// Get the ERC-20 token name
</span>daiContract.name()
<span class="result ok">// { Promise: 'Dai Stablecoin' }
</span>
<span class="comment">// Get the ERC-20 token synbol (for tickers and UIs)
</span>daiContract.symbol()
<span class="result ok">// { Promise: 'DAI' }
</span>
<span class="comment">// Get the balance of an address
</span>balance = await daiContract.balanceOf("ricmoo.firefly.eth")
<span class="result ok">// { BigNumber: "7712595125722568213383" }
</span>
<span class="comment">// Format the DAI for displaying to the user
</span>ethers.utils.formatUnits(balance, 18)
<span class="result ok">// '7712.595125722568213383'
</span></div><a name="getting-started--writing"></a><a name="getting-started--getting-started--contracts--getting-started--writing"></a><h3 class="show-anchors"><div>State Changing Methods<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--writing"></a></div></div></h3>
<div class="code-title"><div>Sending DAI</div></div><div class="code"><span class="comment">// The DAI Contract is currently connected to the Provider,
</span><span class="comment">// which is read-only. We need to connect to a Signer, so
</span><span class="comment">// that we can pay to send state-changing transactions.
</span>const daiWithSigner = contract.connect(signer);
// Get the account balance
"function balanceOf(address) view returns (uint)",
];
const daiContract = new ethers.Contract("dai.tokens.ethers.eth", daiAbi, provider);
// &lt;/hide&gt;
<span class="comment">// Each DAI has 18 decimal places
</span>const dai = ethers.utils.parseUnits("1.0", 18);
// Get the ERC-20 token name
daiContract.name()
//!
// Get the ERC-20 token synbol (for tickers and UIs)
daiContract.symbol()
//!
// Get the balance of an address
balance = await daiContract.balanceOf("ricmoo.firefly.eth")
//! async balance
// Format the DAI for displaying to the user
ethers.utils.formatUnits(balance, 18)
//!</div><a name="getting-started--writing"></a><a name="getting-started--getting-started--contracts--getting-started--writing"></a><h3 class="show-anchors"><div>State Changing Methods<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--writing"></a></div></div></h3>
<div class="code-title"><div>Sending DAI</div></div><div class="code">// The DAI Contract is currently connected to the Provider,
// which is read-only. We need to connect to a Signer, so
// that we can pay to send state-changing transactions.
const daiWithSigner = contract.connect(signer);
// Each DAI has 18 decimal places
const dai = ethers.utils.parseUnits("1.0", 18);
// Send 1 DAI to "ricmoo.firefly.eth"
tx = daiWithSigner.transfer("ricmoo.firefly.eth", dai);</div><a name="getting-started--events"></a><a name="getting-started--getting-started--contracts--getting-started--events"></a><h3 class="show-anchors"><div>Listening to Events<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--events"></a></div></div></h3>
<div class="code-title"><div>Listening to Events</div></div><div class="code">// &lt;hide&gt;
const daiAbi = [
"event Transfer(address indexed, address indexed, uint256)"
];
const daiContract = new ethers.Contract("dai.tokens.ethers.eth", daiAbi, provider);
const formatEther = ethers.utils.formatEther;
// &lt;/hide&gt;
// Receive an event when ANY transfer occurs
daiContract.on("Transfer", (from, to, amount, event) =&gt; {
<span class="comment">// Send 1 DAI to "ricmoo.firefly.eth"
</span>tx = daiWithSigner.transfer("ricmoo.firefly.eth", dai);
</div><a name="getting-started--events"></a><a name="getting-started--getting-started--contracts--getting-started--events"></a><h3 class="show-anchors"><div>Listening to Events<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--events"></a></div></div></h3>
<div class="code-title"><div>Listening to Events</div></div><div class="code"><span class="comment">// Receive an event when ANY transfer occurs
</span>daiContract.on("Transfer", (from, to, amount, event) =&gt; {
console.log(`${ from } sent ${ formatEther(amount) } to ${ to}`);
// The event object contains the verbatim log data, the
// EventFragment and functions to fetch the block,
// transaction and receipt and event functions
});
<span class="comment"> // The event object contains the verbatim log data, the
</span><span class="comment"> // EventFragment and functions to fetch the block,
</span><span class="comment"> // transaction and receipt and event functions
</span>});
// A filter for when a specific address receives tokens
myAddress = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
<span class="comment">// A filter for when a specific address receives tokens
</span>myAddress = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
filter = daiContract.filters.Transfer(null, myAddress)
// &lt;hide&gt;
filter
// &lt;/hide&gt;
//!
// Receive an event when that filter occurs
daiContract.on(filter, (from, to, amount, event) =&gt; {
// The to will always be "address"
console.log(`I got ${ formatEther(amount) } from ${ from }.`);
<span class="result ok">// {
</span><span class="result ok">// address: 'dai.tokens.ethers.eth',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// null,
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span>
<span class="comment">// Receive an event when that filter occurs
</span>daiContract.on(filter, (from, to, amount, event) =&gt; {
<span class="comment"> // The to will always be "address"
</span> console.log(`I got ${ formatEther(amount) } from ${ from }.`);
});
// &lt;hide&gt;
// Don't want to block the docs from compiling...
daiContract.removeAllListeners();
// &lt;/hide&gt;</div><a name="getting-started--history"></a><a name="getting-started--getting-started--contracts--getting-started--history"></a><h3 class="show-anchors"><div>Query Historic Events<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--history"></a></div></div></h3>
<div class="code-title"><div>Filtering Historic Events</div></div><div class="code">// &lt;hide&gt;
const signer = new ethers.VoidSigner("0x8ba1f109551bD432803012645Ac136ddd64DBA72");
const daiAbi = [
"event Transfer(address indexed, address indexed, uint256)"
];
const daiContract = new ethers.Contract("dai.tokens.ethers.eth", daiAbi, provider);
//!
// &lt;/hide&gt;
// Get the address of the Signer
myAddress = await signer.getAddress()
//! async myAddress
// Filter for all token transfers to me
filterFrom = daiContract.filters.Transfer(myAddress, null);
// &lt;hide&gt;
filterFrom
// &lt;/hide&gt;
//!
// Filter for all token transfers from me
filterTo = daiContract.filters.Transfer(null, myAddress);
// &lt;hide&gt;
filterTo
// &lt;/hide&gt;
//!
// List all transfers sent from me a specific block range
daiContract.queryFilter(filterFrom, 9843470, 9843480)
//!
</div><a name="getting-started--history"></a><a name="getting-started--getting-started--contracts--getting-started--history"></a><h3 class="show-anchors"><div>Query Historic Events<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--history"></a></div></div></h3>
<div class="code-title"><div>Filtering Historic Events</div></div><div class="code"><span class="comment">// Get the address of the Signer
</span>myAddress = await signer.getAddress()
<span class="result ok">// '0x8ba1f109551bD432803012645Ac136ddd64DBA72'
</span>
<span class="comment">// Filter for all token transfers to me
</span>filterFrom = daiContract.filters.Transfer(myAddress, null);
<span class="result ok">// {
</span><span class="result ok">// address: 'dai.tokens.ethers.eth',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span>
<span class="comment">// Filter for all token transfers from me
</span>filterTo = daiContract.filters.Transfer(null, myAddress);
<span class="result ok">// {
</span><span class="result ok">// address: 'dai.tokens.ethers.eth',
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// null,
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72'
</span><span class="result ok">// ]
</span><span class="result ok">// }
</span>
<span class="comment">// List all transfers sent from me a specific block range
</span>daiContract.queryFilter(filterFrom, 9843470, 9843480)
<span class="result ok">// { Promise: [
</span><span class="result ok">// {
</span><span class="result ok">// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
</span><span class="result ok">// args: [
</span><span class="result ok">// '0x8ba1f109551bD432803012645Ac136ddd64DBA72',
</span><span class="result ok">// '0x8B3765eDA5207fB21690874B722ae276B96260E0',
</span><span class="result ok">// { BigNumber: "4750000000000000000" }
</span><span class="result ok">// ],
</span><span class="result ok">// blockHash: '0x8462eb2fbcef5aa4861266f59ad5f47b9aa6525d767d713920fdbdfb6b0c0b78',
</span><span class="result ok">// blockNumber: 9843476,
</span><span class="result ok">// data: '0x00000000000000000000000000000000000000000000000041eb63d55b1b0000',
</span><span class="result ok">// decode: [Function],
</span><span class="result ok">// event: 'Transfer',
</span><span class="result ok">// eventSignature: 'Transfer(address,address,uint256)',
</span><span class="result ok">// getBlock: [Function],
</span><span class="result ok">// getTransaction: [Function],
</span><span class="result ok">// getTransactionReceipt: [Function],
</span><span class="result ok">// logIndex: 69,
</span><span class="result ok">// removeListener: [Function],
</span><span class="result ok">// removed: false,
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
</span><span class="result ok">// '0x0000000000000000000000008b3765eda5207fb21690874b722ae276b96260e0'
</span><span class="result ok">// ],
</span><span class="result ok">// transactionHash: '0x1be23554545030e1ce47391a41098a46ff426382ed740db62d63d7676ff6fcf1',
</span><span class="result ok">// transactionIndex: 81
</span><span class="result ok">// },
</span><span class="result ok">// {
</span><span class="result ok">// address: '0x6B175474E89094C44Da98b954EedeAC495271d0F',
</span><span class="result ok">// args: [
</span><span class="result ok">// '0x8ba1f109551bD432803012645Ac136ddd64DBA72',
</span><span class="result ok">// '0x00De4B13153673BCAE2616b67bf822500d325Fc3',
</span><span class="result ok">// { BigNumber: "250000000000000000" }
</span><span class="result ok">// ],
</span><span class="result ok">// blockHash: '0x8462eb2fbcef5aa4861266f59ad5f47b9aa6525d767d713920fdbdfb6b0c0b78',
</span><span class="result ok">// blockNumber: 9843476,
</span><span class="result ok">// data: '0x00000000000000000000000000000000000000000000000003782dace9d90000',
</span><span class="result ok">// decode: [Function],
</span><span class="result ok">// event: 'Transfer',
</span><span class="result ok">// eventSignature: 'Transfer(address,address,uint256)',
</span><span class="result ok">// getBlock: [Function],
</span><span class="result ok">// getTransaction: [Function],
</span><span class="result ok">// getTransactionReceipt: [Function],
</span><span class="result ok">// logIndex: 70,
</span><span class="result ok">// removeListener: [Function],
</span><span class="result ok">// removed: false,
</span><span class="result ok">// topics: [
</span><span class="result ok">// '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
</span><span class="result ok">// '0x0000000000000000000000008ba1f109551bd432803012645ac136ddd64dba72',
</span><span class="result ok">// '0x00000000000000000000000000de4b13153673bcae2616b67bf822500d325fc3'
</span><span class="result ok">// ],
</span><span class="result ok">// transactionHash: '0x1be23554545030e1ce47391a41098a46ff426382ed740db62d63d7676ff6fcf1',
</span><span class="result ok">// transactionIndex: 81
</span><span class="result ok">// }
</span><span class="result ok">// ] }
</span>
//
// The following have had the results omitted due to the
// number of entries; but they provide some useful examples
<span class="comment">// The following have had the results omitted due to the
</span><span class="comment">// number of entries; but they provide some useful examples
</span>//
<span class="comment">// List all transfers I sent in the last 10,000 blocks
</span>daiContract.queryFilter(filterFrom, -10000)
<span class="comment">// List all transfers ever sent to me
</span>daiContract.queryFilter(filterTo)
</div><a name="getting-started--signing"></a><a name="getting-started--getting-started--signing"></a><h2 class="show-anchors"><div>Signing Messages<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--signing"></a></div></div></h2>
<div class="code-title"><div>Signing Messages</div></div><div class="code"><span class="comment">// To sign a simple string, which can often be used for
</span><span class="comment">// logging into a service, such as CryptoKitties simply
</span><span class="comment">// pass the string in.
</span>signature = await signer.signMessage("Hello World");
<span class="result ok">// '0xe4f2a4e1a867a4757bd1ef7d0d5b9bf552c013f4598356e9326106d74d47292412efc81cd3b97a7e298f1b78b973c376d32ae0bdca811514e1258360a00c1bb71c'
</span>
//
<span class="comment">// A common case is also signing a hash, which is 32
</span><span class="comment">// bytes. It is important to note, that to sign binary
</span><span class="comment">// data it MUST be an Array (or TypedArray)
</span>//
// List all transfers I sent in the last 10,000 blocks
daiContract.queryFilter(filterFrom, -10000)
<span class="comment">// This string is 66 chacacters long
</span>message = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
// List all transfers ever sent to me
daiContract.queryFilter(filterTo)</div><a name="getting-started--signing"></a><a name="getting-started--getting-started--signing"></a><h2 class="show-anchors"><div>Signing Messages<div class="anchors"><a class="self" href="/v5/getting-started/#getting-started--signing"></a></div></div></h2>
<div class="code-title"><div>Signing Messages</div></div><div class="code">// &lt;hide&gt;
const signer = ethers.Wallet.createRandom();
//!
// &lt;/hide&gt;
// To sign a simple string, which can often be used for
// logging into a service, such as CryptoKitties simply
// pass the string in.
signature = await signer.signMessage("Hello World");
//! async signature
//
// A common case is also signing a hash, which is 32
// bytes. It is important to note, that to sign binary
// data it MUST be an Array (or TypedArray)
//
// This string is 66 chacacters long
message = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
// This array representation is 32 bytes long
messageBytes = ethers.utils.arrayify(message);
//!
// To sign a hash, you most often want to sign the bytes
signature = await signer.signMessage(messageBytes)
//! async signature</div>
<span class="comment">// This array representation is 32 bytes long
</span>messageBytes = ethers.utils.arrayify(message);
<span class="result ok">// Uint8Array [ 221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241, 99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239 ]
</span>
<span class="comment">// To sign a hash, you most often want to sign the bytes
</span>signature = await signer.signMessage(messageBytes)
<span class="result ok">// '0x4542871f6c9b776c7ca4f23d0435b4e98eaf9fc25060162bf1c43420d8ce202c2d12a5e1c1dbbbde145e5ee8b1c243c931d3e2d93394f73081800155b2cc480b1c'
</span></div>
<div class="footer">
<div class="nav previous"><a href="/v5/"><span class="arrow">&larr;</span>Documentation</a></div>
<div class="nav next"><a href="/v5/concepts/">Ethereum Basics<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -46,7 +46,7 @@
<div class="nav previous"><!--PREV_LINK--></div>
<div class="nav next"><!--NEXT_LINK--></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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -32,7 +32,7 @@
<div class="nav previous"><!--PREV_LINK--></div>
<div class="nav next"><a href="/v5/getting-started/">Getting Started<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -32,7 +32,7 @@
<div class="nav previous"><a href="/v5/documentation/"><span class="arrow">&larr;</span>Flatworm Docs</a></div>
<div class="nav next"><!--NEXT_LINK--></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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -20,29 +20,32 @@
<a name="migration-v4--bignumber"></a><h2 class="show-anchors"><div>BigNumber<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--bignumber"></a></div></div></h2>
<a name="migration-v4--bignumber--namespace"></a><h3 class="show-anchors"><div>Namespace<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--bignumber--namespace"></a></div></div></h3><p>Since <a href="/v5/api/utils/bignumber/">BigNumber</a> is used quite frequently, it has been moved to the top level of the umbrella package.</p>
<div class="code">// v4
ethers.utils.BigNumber
<div class="code"><span class="comment">// v4
</span>ethers.utils.BigNumber
ethers.utils.BigNumberish
// v5
ethers.BigNumber
ethers.BigNumberish</div><a name="migration-v4--bignumber--creating-instances"></a><h3 class="show-anchors"><div>Creating Instances<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--bignumber--creating-instances"></a></div></div></h3><p>The <code class="inline">bigNumberify</code> method was always preferred over the constructor since it could short-circuit an object instantiation for [[BigNumber] objects (since they are immutable). This has been moved to a static <code class="inline">from</code> class method.</p>
<span class="comment">// v5
</span>ethers.BigNumber
ethers.BigNumberish
</div><a name="migration-v4--bignumber--creating-instances"></a><h3 class="show-anchors"><div>Creating Instances<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--bignumber--creating-instances"></a></div></div></h3><p>The <code class="inline">bigNumberify</code> method was always preferred over the constructor since it could short-circuit an object instantiation for [[BigNumber] objects (since they are immutable). This has been moved to a static <code class="inline">from</code> class method.</p>
<div class="code">// v4
new ethers.utils.BigNumber(someValue)
<div class="code"><span class="comment">// v4
</span>new ethers.utils.BigNumber(someValue)
ethers.utils.bigNumberify(someValue);
// v5
// - Constructor is private
// - Removed `bigNumberify`
ethers.BigNumber.from(someValue)</div><a name="migration-v4--contracts"></a><h2 class="show-anchors"><div>Contracts<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--contracts"></a></div></div></h2>
<div class="code">// @TODO</div><a name="migration-v4--errors"></a><h2 class="show-anchors"><div>Errors<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--errors"></a></div></div></h2>
<span class="comment">// v5
</span><span class="comment">// - Constructor is private
</span><span class="comment">// - Removed `bigNumberify`
</span>ethers.BigNumber.from(someValue)
</div><a name="migration-v4--contracts"></a><h2 class="show-anchors"><div>Contracts<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--contracts"></a></div></div></h2>
<div class="code"><span class="comment">// @TODO
</span></div><a name="migration-v4--errors"></a><h2 class="show-anchors"><div>Errors<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--errors"></a></div></div></h2>
<a name="migration-v4--errors--namespace"></a><h3 class="show-anchors"><div>Namespace<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--errors--namespace"></a></div></div></h3><p>All errors now belong to the <a href="/v5/api/utils/logger/#Logger">Logger</a> class and the related functions have been moved to <a href="/v5/api/utils/logger/#Logger">Logger</a> instances, which can include a per-package version string.</p>
<p>Global error fucntions have been moved <a href="/v5/api/utils/logger/#Logger">Logger</a> class methods.</p>
<div class="code">// v4
ethers.errors.UNKNOWN_ERROR
<div class="code"><span class="comment">// v4
</span>ethers.errors.UNKNOWN_ERROR
ethers.errors.*
errors.setCensorship(censorship, permanent)
@@ -55,8 +58,8 @@ errors.throwError(message, code, params)
errors.warn(...)
errors.info(...)
// v5
ethers.utils.Logger.errors.UNKNOWN_ERROR
<span class="comment">// v5
</span>ethers.utils.Logger.errors.UNKNOWN_ERROR
ethers.utils.Logger.errors.*
Logger.setCensorship(censorship, permanent)
@@ -68,31 +71,34 @@ logger.checkNew(self, kind)
logger.checkNormalize()
logger.throwError(message, code, params)
logger.warn(...)
logger.info(...)</div><a name="migration-v4--interface"></a><h2 class="show-anchors"><div>Interface<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface"></a></div></div></h2><p>The <a href="/v5/api/utils/abi/interface/">Interface</a> object has undergone the most dramatic changes.</p>
logger.info(...)
</div><a name="migration-v4--interface"></a><h2 class="show-anchors"><div>Interface<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface"></a></div></div></h2><p>The <a href="/v5/api/utils/abi/interface/">Interface</a> object has undergone the most dramatic changes.</p>
<p>It is no longer a meta-class and now has methods that simplify handling contract interface operations without the need for object inspection and special edge cases.</p>
<a name="migration-v4--interface--functions"></a><h3 class="show-anchors"><div>Functions<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface--functions"></a></div></div></h3>
<div class="code">// v4 (example: "transfer(address to, uint amount)")
interface.functions.transfer.encode(to, amount)
<div class="code"><span class="comment">// v4 (example: "transfer(address to, uint amount)")
</span>interface.functions.transfer.encode(to, amount)
interface.functions.transfer.decode(callData)
// v5
interface.encodeData("transfer", [ to, amount ])
<span class="comment">// v5
</span>interface.encodeData("transfer", [ to, amount ])
interface.decodeResult("transfer", data)
// Or you can use any compatible signature or Fragment objects.
// Notice that signature normalization is performed for you,
// e.g. "uint" and "uint256" will be automatically converted
interface.encodeData("transfer(address,uint)", [ to, amount ])
interface.decodeResult("transfer(address to, uint256 amount)", data)</div><a name="migration-v4--interface--events"></a><h3 class="show-anchors"><div>Events<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface--events"></a></div></div></h3>
<div class="code">// v4 (example: Transfer(address indexed, address indexed, uint256)
interface.events.Transfer.encodeTopics(values)
<span class="comment">// Or you can use any compatible signature or Fragment objects.
</span><span class="comment">// Notice that signature normalization is performed for you,
</span><span class="comment">// e.g. "uint" and "uint256" will be automatically converted
</span>interface.encodeData("transfer(address,uint)", [ to, amount ])
interface.decodeResult("transfer(address to, uint256 amount)", data)
</div><a name="migration-v4--interface--events"></a><h3 class="show-anchors"><div>Events<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface--events"></a></div></div></h3>
<div class="code"><span class="comment">// v4 (example: Transfer(address indexed, address indexed, uint256)
</span>interface.events.Transfer.encodeTopics(values)
interface.events.Transfer.decode(data, topics)
// v5
interface.encodeFilterTopics("Transfer", values)
interface.encodeEventLog("Transfer", data, topics)</div><a name="migration-v4--interface--inspection"></a><h3 class="show-anchors"><div>Inspection<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface--inspection"></a></div></div></h3><p>Interrogating properties about a function or event can now (mostly) be done directly on the <a href="/v5/api/utils/abi/fragments/#Fragment">Fragment</a> object.</p>
<span class="comment">// v5
</span>interface.encodeFilterTopics("Transfer", values)
interface.encodeEventLog("Transfer", data, topics)
</div><a name="migration-v4--interface--inspection"></a><h3 class="show-anchors"><div>Inspection<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--interface--inspection"></a></div></div></h3><p>Interrogating properties about a function or event can now (mostly) be done directly on the <a href="/v5/api/utils/abi/fragments/#Fragment">Fragment</a> object.</p>
<div class="code">// v4
interface.functions.transfer.name
@@ -143,24 +149,26 @@ const sighash = interface.getSighash(functionFragment)
const eventSig = eventFragment.format()
const topic = interface.getTopic(eventFragment)</div><a name="migration-v4--utilities"></a><h2 class="show-anchors"><div>Utilities<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--utilities"></a></div></div></h2>
<a name="migration-v4--utilities--renaming"></a><h3 class="show-anchors"><div>Renaming<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--utilities--renaming"></a></div></div></h3>
<div class="code">// @TODO</div><a name="migration-v4--wallet"></a><h2 class="show-anchors"><div>Wallet<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--wallet"></a></div></div></h2>
<div class="code"><span class="comment">// @TODO
</span></div><a name="migration-v4--wallet"></a><h2 class="show-anchors"><div>Wallet<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--wallet"></a></div></div></h2>
<a name="migration-v4--wallet--mnemonic-phrases"></a><h3 class="show-anchors"><div>Mnemonic Phrases<div class="anchors"><a class="self" href="/v5/migration/ethers-v4/#migration-v4--wallet--mnemonic-phrases"></a></div></div></h3><p>The <b>mnemonic</b> phrase and related properties have been merged into a single <code class="inline">mnemonic</code> object, which also now includes the <code class="inline">locale</code>.</p>
<div class="code">// v4
wallet.mnemonic
<div class="code"><span class="comment">// v4
</span>wallet.mnemonic
wallet.path
// v5
// - Mnemonic phrase and path are a Mnemonic object
// - Note: wallet.mnemonic is null if there is no mnemonic
wallet.mnemonic.phrase
wallet.mnemonic.path</div>
<span class="comment">// v5
</span><span class="comment">// - Mnemonic phrase and path are a Mnemonic object
</span><span class="comment">// - Note: wallet.mnemonic is null if there is no mnemonic
</span>wallet.mnemonic.phrase
wallet.mnemonic.path
</div>
<div class="footer">
<div class="nav previous"><a href="/v5/migration/web3/"><span class="arrow">&larr;</span>Migration: From Web3.js</a></div>
<div class="nav next"><a href="/v5/testing/">Testing<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/cookbook/"><span class="arrow">&larr;</span>Cookbook</a></div>
<div class="nav next"><a href="/v5/migration/web3/">Migration: From Web3.js<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

View File

@@ -28,7 +28,7 @@
<div class="nav previous"><a href="/v5/migration/"><span class="arrow">&larr;</span>Migration Guide</a></div>
<div class="nav next"><a href="/v5/migration/ethers-v4/">Migration: From Ethers v4<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

File diff suppressed because one or more lines are too long

View File

@@ -24,7 +24,7 @@
<div class="nav previous"><a href="/v5/migration/ethers-v4/"><span class="arrow">&larr;</span>Migration: From Ethers v4</a></div>
<div class="nav next"><a href="/v5/contributing/">Contributing and Hacking<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 License</a>. Generated on June 12, 2020, 3:31am.</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 License</a>. Last modified on June 12, 2020, 7:17pm.</div>
</div>
<script src="/v5/static/script.js" type="text/javascript"></script>
</body>

2514
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
{
"name": "root",
"name": "ethers",
"private": true,
"repository": {
"type": "git",
@@ -29,6 +29,8 @@
"test": "if [ \"$TEST\" == \"\" ]; then npm run test-node; else npm run \"test-$TEST\"; fi",
"lock-versions": "node ./admin/cmds/lock-versions",
"build-docs": "flatworm docs.wrm docs",
"serve-docs": "node ./admin/cmds/serve-docs.js",
"test-docs": "npm run build-docs && npm run serve-docs",
"upload-docs": " node ./admin/cmds/upload-docs.js",
"spell-check": "node admin/cmds/spell-check.js",
"_admin_prepare": "npm run clean && npm run bootstrap && npm run build && node ./admin/cmds/update-exports.js",
@@ -43,12 +45,12 @@
"aes-js": "3.0.0",
"aws-sdk": "2.137.0",
"diff": "4.0.1",
"flatworm": "0.0.2-beta.3",
"flatworm": "0.0.2-beta.4",
"karma": "5.0.2",
"karma-chrome-launcher": "3.1.0",
"karma-mocha": "2.0.0",
"lerna": "^3.20.2",
"libnpm": "2.0.1",
"libnpmpublish": "1.1.3",
"mocha": "^7.1.1",
"npm-packlist": "1.4.1",
"rollup": "1.20.1",

View File

@@ -1 +1 @@
export declare const version = "abi/5.0.0-beta.156";
export declare const version = "abi/5.0.1";

View File

@@ -1 +1 @@
export const version = "abi/5.0.0-beta.156";
export const version = "abi/5.0.1";

View File

@@ -1 +1 @@
export declare const version = "abi/5.0.0-beta.156";
export declare const version = "abi/5.0.1";

View File

@@ -1,3 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "abi/5.0.0-beta.156";
exports.version = "abi/5.0.1";

Some files were not shown because too many files have changed in this diff Show More