forked from tornado-packages/ethers.js
Compare commits
893 Commits
v5.0.0-bet
...
v5.0.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96cb44025b | ||
|
|
7fe702d59b | ||
|
|
9e1434503e | ||
|
|
08c74e9a13 | ||
|
|
c53864de0a | ||
|
|
8c1ff4c862 | ||
|
|
987b5354cc | ||
|
|
1a4f7d1b53 | ||
|
|
f9e9347e69 | ||
|
|
d00362eb70 | ||
|
|
8ed67a5c19 | ||
|
|
f99029b49a | ||
|
|
3017a31127 | ||
|
|
bbb4f407b3 | ||
|
|
be7e86ec90 | ||
|
|
88e68495b6 | ||
|
|
738d34969d | ||
|
|
e0e0dbef18 | ||
|
|
039bad3848 | ||
|
|
73d29e6853 | ||
|
|
5a69e9caa8 | ||
|
|
f302d7b61a | ||
|
|
b30eaca475 | ||
|
|
d817416bae | ||
|
|
e805ab5b2d | ||
|
|
7157816fa5 | ||
|
|
9e4c7e609d | ||
|
|
427e16826e | ||
|
|
fab14f8f5a | ||
|
|
e8c89d7ca9 | ||
|
|
b1c6575a1b | ||
|
|
3b7176f322 | ||
|
|
5f7ddcd5d7 | ||
|
|
4c9d740cdf | ||
|
|
a930047a10 | ||
|
|
4e41871fa4 | ||
|
|
9947acc349 | ||
|
|
748f89660a | ||
|
|
2987925fa5 | ||
|
|
0589b3102e | ||
|
|
df51b26fe7 | ||
|
|
b288ad9ba7 | ||
|
|
6da5c53120 | ||
|
|
26d3271643 | ||
|
|
12da07579a | ||
|
|
bd066b8542 | ||
|
|
4478896ca5 | ||
|
|
f996ec0c32 | ||
|
|
c76e01e61f | ||
|
|
f8087ae39c | ||
|
|
7250cdcd31 | ||
|
|
20f34f1ba9 | ||
|
|
4ac08432b8 | ||
|
|
3e3048df81 | ||
|
|
c6199bf52a | ||
|
|
20409c083c | ||
|
|
7a90f18145 | ||
|
|
df1ae611ba | ||
|
|
6009a26c89 | ||
|
|
30984b6f00 | ||
|
|
76a8e503dd | ||
|
|
d0e0e30532 | ||
|
|
b3f5266e78 | ||
|
|
0609ea9651 | ||
|
|
5af16a6090 | ||
|
|
4f88c5ba6e | ||
|
|
023e946072 | ||
|
|
004cb826d2 | ||
|
|
bfcf224b2b | ||
|
|
c969fe5a68 | ||
|
|
8737f12e1b | ||
|
|
1267eeef4a | ||
|
|
11c250ff7c | ||
|
|
c303199d26 | ||
|
|
ae458a1a49 | ||
|
|
760a5aec74 | ||
|
|
2967efc2b0 | ||
|
|
24f243e689 | ||
|
|
d719064628 | ||
|
|
a7d0b41d98 | ||
|
|
a980fc3db0 | ||
|
|
a34ca6b3a3 | ||
|
|
ef91dcd757 | ||
|
|
a5296a9258 | ||
|
|
f827ae68e2 | ||
|
|
fbf15c0ffe | ||
|
|
10fdbe7274 | ||
|
|
384fc328f2 | ||
|
|
055694ae61 | ||
|
|
edf59d2c26 | ||
|
|
92c978e5c2 | ||
|
|
34397fa2aa | ||
|
|
19587eea3f | ||
|
|
4a9373e773 | ||
|
|
2997bae935 | ||
|
|
b0bd9ee162 | ||
|
|
7075c8c235 | ||
|
|
a4a532fe8e | ||
|
|
77c771bf76 | ||
|
|
c93b48920e | ||
|
|
04c92bb8d5 | ||
|
|
16c9745326 | ||
|
|
05648177aa | ||
|
|
f318fd9cf1 | ||
|
|
c15a89832b | ||
|
|
94b0abc240 | ||
|
|
72edcd054f | ||
|
|
e4a2f8ac6c | ||
|
|
c6d7b31a84 | ||
|
|
0ed983a264 | ||
|
|
8fab48a380 | ||
|
|
86e815999d | ||
|
|
a2306f7870 | ||
|
|
60b75c10d7 | ||
|
|
41c2c8a729 | ||
|
|
9785eed8dd | ||
|
|
527de7ba5e | ||
|
|
14484e566e | ||
|
|
429af2c40d | ||
|
|
11fffd1690 | ||
|
|
af3aed4580 | ||
|
|
3a3764bdb4 | ||
|
|
18ee2c518c | ||
|
|
36172f7f7b | ||
|
|
908258f8d4 | ||
|
|
774b2d5fee | ||
|
|
b5f720ace6 | ||
|
|
9f201c386e | ||
|
|
700dd34137 | ||
|
|
f2dd977de4 | ||
|
|
5f013216c5 | ||
|
|
eac0805435 | ||
|
|
e5bee7e5a3 | ||
|
|
442553620a | ||
|
|
6d08968b87 | ||
|
|
c2ce59f95e | ||
|
|
f3ec27b95f | ||
|
|
c88cb5ea90 | ||
|
|
99a21660ab | ||
|
|
4bc62a1e8a | ||
|
|
26eb6cc01a | ||
|
|
bcba17a9e7 | ||
|
|
918b66bc2e | ||
|
|
152d672278 | ||
|
|
51fb472809 | ||
|
|
66440b8542 | ||
|
|
fefdd51084 | ||
|
|
6ca1d77298 | ||
|
|
4f6748ec4c | ||
|
|
f56fc572f1 | ||
|
|
16fdf6b621 | ||
|
|
a863037ca3 | ||
|
|
2d854bd94c | ||
|
|
9565c28a91 | ||
|
|
bc457bb3bd | ||
|
|
db383a3121 | ||
|
|
3f76f603d9 | ||
|
|
68304848ae | ||
|
|
bb6bc4cac3 | ||
|
|
ef8b9c36ef | ||
|
|
e6c943d01f | ||
|
|
31d3ee899f | ||
|
|
98143a845b | ||
|
|
bffc557be1 | ||
|
|
09208fa8fe | ||
|
|
048c571d3d | ||
|
|
24757f1064 | ||
|
|
88f2f51266 | ||
|
|
93152ef863 | ||
|
|
09b698b0a9 | ||
|
|
478aaf9619 | ||
|
|
fad902b438 | ||
|
|
7bfaf292db | ||
|
|
be0488a1a0 | ||
|
|
28a52cd485 | ||
|
|
3a19f43844 | ||
|
|
4852e837d2 | ||
|
|
fa68385cfe | ||
|
|
d54609a458 | ||
|
|
f682861e0b | ||
|
|
023a20ff47 | ||
|
|
e39cd84923 | ||
|
|
5020897f10 | ||
|
|
6ac2d923b7 | ||
|
|
6996dd86f4 | ||
|
|
493273d698 | ||
|
|
84344ac4c2 | ||
|
|
9b118af304 | ||
|
|
e39e2ed718 | ||
|
|
71f781d542 | ||
|
|
b2db10e216 | ||
|
|
3736a15714 | ||
|
|
248158130e | ||
|
|
f5c7ccbb80 | ||
|
|
24335d0dd7 | ||
|
|
908c2c1096 | ||
|
|
9797b36186 | ||
|
|
731f189010 | ||
|
|
cc5b157231 | ||
|
|
99fed75202 | ||
|
|
cb5f9f576a | ||
|
|
aeac2cdb86 | ||
|
|
0dafd83033 | ||
|
|
f6d946cf68 | ||
|
|
b9c07b549c | ||
|
|
c34a1f73c6 | ||
|
|
281bd0613d | ||
|
|
d936b4cd09 | ||
|
|
5a0ebf84ef | ||
|
|
c9c5b4d641 | ||
|
|
5e86e02304 | ||
|
|
15cd0d8e58 | ||
|
|
061b0eae1d | ||
|
|
d3876303f2 | ||
|
|
2ad110548d | ||
|
|
ef5d19e5c9 | ||
|
|
5f6bc405dd | ||
|
|
1ca203ca38 | ||
|
|
c8a75ab01d | ||
|
|
8c6eb555de | ||
|
|
cb68403387 | ||
|
|
7b5ce86c5b | ||
|
|
f4e247fc92 | ||
|
|
e582bd73ee | ||
|
|
543e12c6ca | ||
|
|
57439af25d | ||
|
|
f4dd5d19e7 | ||
|
|
05e30f4680 | ||
|
|
9c87e569cf | ||
|
|
15761027df | ||
|
|
65fa0b7b22 | ||
|
|
8b2e57276f | ||
|
|
25337d4543 | ||
|
|
892f30a051 | ||
|
|
829a56cc79 | ||
|
|
9d04f2c1eb | ||
|
|
f02f4bc0c0 | ||
|
|
b9829f205f | ||
|
|
eef07e5a4f | ||
|
|
13e50ec6db | ||
|
|
9dcf6f3253 | ||
|
|
e0cefb0398 | ||
|
|
6018bf63f9 | ||
|
|
7aebe53e5b | ||
|
|
32a070d909 | ||
|
|
b5408bcbd0 | ||
|
|
284ffdfd1f | ||
|
|
ae4cd90441 | ||
|
|
5efd0c1f8a | ||
|
|
962f75038b | ||
|
|
ea5a56f0f0 | ||
|
|
afae5cd2f9 | ||
|
|
280dc56a74 | ||
|
|
2b9d8d6d6a | ||
|
|
2d35e5e9d7 | ||
|
|
102a4e8bf4 | ||
|
|
ce837e307e | ||
|
|
810e9e743e | ||
|
|
e092746165 | ||
|
|
388b658bfa | ||
|
|
0358e8afb7 | ||
|
|
2b88efea65 | ||
|
|
f4c3073304 | ||
|
|
e4d5786861 | ||
|
|
46a55a1d99 | ||
|
|
2c1022cde1 | ||
|
|
f9723c42cb | ||
|
|
3635a9bb40 | ||
|
|
9e0bfa733b | ||
|
|
a80a8a8ced | ||
|
|
b44a80800c | ||
|
|
e3b04bb3fc | ||
|
|
fcee62a3d9 | ||
|
|
7f1fbfc203 | ||
|
|
4f63b82bbb | ||
|
|
f63c844c42 | ||
|
|
694c0b3f7d | ||
|
|
1c45840148 | ||
|
|
421b2c857b | ||
|
|
bacf42a22f | ||
|
|
5c8703fb30 | ||
|
|
30a84d8577 | ||
|
|
3198bc27fd | ||
|
|
c7555516ff | ||
|
|
3cd0e8bf88 | ||
|
|
957ccd2eaf | ||
|
|
558ef2c00d | ||
|
|
b73a964bac | ||
|
|
3e091a2938 | ||
|
|
cb6d18035f | ||
|
|
4b15229832 | ||
|
|
f0dfa50848 | ||
|
|
22f007498d | ||
|
|
cc6f658ef1 | ||
|
|
9b885296d0 | ||
|
|
c6c5ba0118 | ||
|
|
a966a60656 | ||
|
|
d05da1e487 | ||
|
|
294d0fda61 | ||
|
|
29f3d2dea8 | ||
|
|
d2b6570c39 | ||
|
|
a1a765f6e4 | ||
|
|
1d98928475 | ||
|
|
73486d6f39 | ||
|
|
640ed5dc33 | ||
|
|
dda957c8e5 | ||
|
|
97b6d8a797 | ||
|
|
00bb20546b | ||
|
|
7cf8596906 | ||
|
|
5a0607d11b | ||
|
|
26207e7bb8 | ||
|
|
ae8d75fe6a | ||
|
|
4db19a1799 | ||
|
|
543ca19361 | ||
|
|
7014afaab6 | ||
|
|
62987ac3a8 | ||
|
|
3a5ec9b4ca | ||
|
|
3169cf2f60 | ||
|
|
bceefc7197 | ||
|
|
bfff3ea4cc | ||
|
|
7d4caa05ca | ||
|
|
004fd7d37d | ||
|
|
e3da92d1ee | ||
|
|
0bc72c5ed4 | ||
|
|
d0cf0c8f43 | ||
|
|
4d4fe60a55 | ||
|
|
81903e99d3 | ||
|
|
fd40f66766 | ||
|
|
2aa2a38e37 | ||
|
|
d701995bc0 | ||
|
|
c4084fe625 | ||
|
|
8c7c592bd1 | ||
|
|
b9aca357a9 | ||
|
|
26f5a558d6 | ||
|
|
960919d00a | ||
|
|
b712c88088 | ||
|
|
a062f75d38 | ||
|
|
a67e3d1d65 | ||
|
|
28927a6f1a | ||
|
|
ce864fa1b2 | ||
|
|
7e1e760b95 | ||
|
|
d19df0dcae | ||
|
|
b61b84dfc8 | ||
|
|
922de67a8b | ||
|
|
e8c657ba70 | ||
|
|
1ce4f75b0d | ||
|
|
175966674d | ||
|
|
d1ce9f4964 | ||
|
|
0f9d0ef533 | ||
|
|
e4df325e22 | ||
|
|
3b843a1782 | ||
|
|
614b2d0325 | ||
|
|
46e4db0b24 | ||
|
|
94171f6c57 | ||
|
|
e0391ee1bc | ||
|
|
7004cd0b92 | ||
|
|
b61643fecb | ||
|
|
8d6fa3dc93 | ||
|
|
e6c8db88bd | ||
|
|
937194b5ee | ||
|
|
5f3ceec6f9 | ||
|
|
3f9f0e02e5 | ||
|
|
d6260ae11a | ||
|
|
0ecfe4bafd | ||
|
|
df2a00a2fc | ||
|
|
dfdbb9bb28 | ||
|
|
979e374270 | ||
|
|
b7e143b4f3 | ||
|
|
272265f085 | ||
|
|
27402fafe6 | ||
|
|
ac4211d0c6 | ||
|
|
ee0faba708 | ||
|
|
e5d5871b95 | ||
|
|
4514229f27 | ||
|
|
7ac8cb63c8 | ||
|
|
8e83ceaedc | ||
|
|
b1d026b800 | ||
|
|
ebf42dc9e0 | ||
|
|
a8283ea99f | ||
|
|
564c5fa364 | ||
|
|
6faa978767 | ||
|
|
8a340c8ff3 | ||
|
|
0b35f1959a | ||
|
|
98ea4b59a0 | ||
|
|
ac2ad5a886 | ||
|
|
8fe19de3ce | ||
|
|
40559b7044 | ||
|
|
0b8b682fee | ||
|
|
083aca4693 | ||
|
|
19475a06f5 | ||
|
|
5fa014e01d | ||
|
|
df591cfc4c | ||
|
|
fcd57f9756 | ||
|
|
c348c60d5c | ||
|
|
1d2fe8993b | ||
|
|
18aa885aef | ||
|
|
a693576941 | ||
|
|
5c0475ce8c | ||
|
|
380c17a0a5 | ||
|
|
bd4ca0d4d3 | ||
|
|
7949444612 | ||
|
|
cf16b0ffa9 | ||
|
|
ec40c67c50 | ||
|
|
55ac3fef88 | ||
|
|
c4edd957b4 | ||
|
|
a19cc91cd4 | ||
|
|
c83596455b | ||
|
|
41a91c3c2d | ||
|
|
b77937ec4c | ||
|
|
1082105eea | ||
|
|
45923ad5dd | ||
|
|
aa67537097 | ||
|
|
63e5ad1d95 | ||
|
|
b2be7c807f | ||
|
|
dde33aa5a5 | ||
|
|
91f6e8ede6 | ||
|
|
7d8abf4463 | ||
|
|
6abab3b974 | ||
|
|
970613fad9 | ||
|
|
edbf8e319c | ||
|
|
28cd3cace2 | ||
|
|
45f8827c6e | ||
|
|
342be430cb | ||
|
|
622f02c369 | ||
|
|
263bf8047a | ||
|
|
2feced5937 | ||
|
|
6de0a765c9 | ||
|
|
4fd35224b3 | ||
|
|
52dc35bf0e | ||
|
|
2a111ab6ce | ||
|
|
5631f071c3 | ||
|
|
a0f92954c8 | ||
|
|
64b312ef6e | ||
|
|
baf92d4ec8 | ||
|
|
1d282c544a | ||
|
|
5b18a63ebc | ||
|
|
336df72e04 | ||
|
|
cf79190175 | ||
|
|
5da4917c27 | ||
|
|
c1b24e818c | ||
|
|
af893e79a4 | ||
|
|
aa48dfcdf4 | ||
|
|
efbfed0d40 | ||
|
|
059b03e090 | ||
|
|
7391cf8d19 | ||
|
|
be7a128bf4 | ||
|
|
b6794b96a5 | ||
|
|
4df78764a2 | ||
|
|
c411d9744d | ||
|
|
f7bfa50f15 | ||
|
|
8c0308dc58 | ||
|
|
4758b30cd3 | ||
|
|
6a8ca9c318 | ||
|
|
884593ab76 | ||
|
|
0517f70946 | ||
|
|
514aab7ee3 | ||
|
|
eaaa689f2f | ||
|
|
cf7872a498 | ||
|
|
f779b6e3cc | ||
|
|
a6cced81d6 | ||
|
|
62e51861b8 | ||
|
|
6c6e031254 | ||
|
|
48c07f6ef6 | ||
|
|
1b6c20341e | ||
|
|
75eb7ed507 | ||
|
|
cd360a4f8c | ||
|
|
fd27d3e2ce | ||
|
|
6737128b84 | ||
|
|
63b2eae4f5 | ||
|
|
0b34aea23a | ||
|
|
1290fa0073 | ||
|
|
da74e95f88 | ||
|
|
ac82a5cb83 | ||
|
|
ba21348c0f | ||
|
|
27207037a8 | ||
|
|
a612e1e8fa | ||
|
|
08d3547d4e | ||
|
|
7702d4ce7c | ||
|
|
3bf39b3bee | ||
|
|
417065bad6 | ||
|
|
3cb21dd6c7 | ||
|
|
cebf2aab29 | ||
|
|
72bf73f931 | ||
|
|
65caec2ea5 | ||
|
|
ea7c74d48d | ||
|
|
86df2306c4 | ||
|
|
6c12d8f30c | ||
|
|
e649a22ccf | ||
|
|
eddf9de8f9 | ||
|
|
7e91091cc3 | ||
|
|
9745a6ecbc | ||
|
|
3936b15afc | ||
|
|
efb7dce524 | ||
|
|
ac4b5d9199 | ||
|
|
fdb7114511 | ||
|
|
03f8c1db86 | ||
|
|
12b68b0242 | ||
|
|
28ddf485ed | ||
|
|
96d420e832 | ||
|
|
0f98bb5ac5 | ||
|
|
296473299c | ||
|
|
ce7718c87e | ||
|
|
1ec8f9cf85 | ||
|
|
46fd2deb8b | ||
|
|
5a9f440c8f | ||
|
|
1d67aa3e29 | ||
|
|
bd7e8e708f | ||
|
|
8a842af999 | ||
|
|
224c17a9b9 | ||
|
|
89e1cb02a4 | ||
|
|
3cdb6aad25 | ||
|
|
8a26f38579 | ||
|
|
424cce9224 | ||
|
|
96abf66333 | ||
|
|
b2ada0cda9 | ||
|
|
e67a66f900 | ||
|
|
20293fbcfb | ||
|
|
03f20f023f | ||
|
|
dfdf4ef317 | ||
|
|
f10c595ad3 | ||
|
|
f611dba0ad | ||
|
|
da852d0012 | ||
|
|
6ade579542 | ||
|
|
e17947930c | ||
|
|
74c71e6677 | ||
|
|
7635708c21 | ||
|
|
4ee9a4d191 | ||
|
|
bb24fce859 | ||
|
|
21d53f190b | ||
|
|
5fc59dd1cf | ||
|
|
34fd2882d8 | ||
|
|
4a23b0ddc7 | ||
|
|
c4690f9e7b | ||
|
|
36c6d53757 | ||
|
|
c550f2eb07 | ||
|
|
67bb0b7f93 | ||
|
|
c5b411811a | ||
|
|
eddf93b200 | ||
|
|
9aeb309d9d | ||
|
|
bea0ea3aaf | ||
|
|
df930103e7 | ||
|
|
d6cf970ae9 | ||
|
|
e778ab6f30 | ||
|
|
b7fc74a99d | ||
|
|
b38a36b2f5 | ||
|
|
046a4a4dc0 | ||
|
|
357d49ecee | ||
|
|
a568be9df3 | ||
|
|
43061c691b | ||
|
|
a4e768e2b3 | ||
|
|
2d4fb371c2 | ||
|
|
9b54b53081 | ||
|
|
3512922bef | ||
|
|
60334b66ba | ||
|
|
d38bf992c2 | ||
|
|
ce95391804 | ||
|
|
511fff1390 | ||
|
|
178980c34a | ||
|
|
132e56e65e | ||
|
|
ff63e99c86 | ||
|
|
a3fab18a93 | ||
|
|
a9cc1bf641 | ||
|
|
fa4db2cecc | ||
|
|
ca249054e5 | ||
|
|
f6ace914e9 | ||
|
|
1d38633e69 | ||
|
|
8129f0cb8b | ||
|
|
b06002a2a8 | ||
|
|
464584265a | ||
|
|
184839a57a | ||
|
|
3ed66f5c16 | ||
|
|
0d106d01af | ||
|
|
807c8133ea | ||
|
|
f6cc207ae5 | ||
|
|
388a77258e | ||
|
|
424abc3395 | ||
|
|
83b5e4b4a3 | ||
|
|
03c10086e7 | ||
|
|
dae3a5b8b1 | ||
|
|
67a29eb92e | ||
|
|
5a837e1b0a | ||
|
|
a1f2c84d03 | ||
|
|
628c99936e | ||
|
|
e8b23c29a5 | ||
|
|
6e19e6eca9 | ||
|
|
ef71271db6 | ||
|
|
11f0434bdd | ||
|
|
46ff8e891e | ||
|
|
4df288e244 | ||
|
|
a9bc2b5ea8 | ||
|
|
d49beb8374 | ||
|
|
f88b3523c0 | ||
|
|
04f0a33489 | ||
|
|
b4bc01f2c3 | ||
|
|
7eaf22f573 | ||
|
|
255b7e0a0f | ||
|
|
9adcbbb0fe | ||
|
|
31b5650489 | ||
|
|
2e90718d6a | ||
|
|
fe3ac0e94d | ||
|
|
50422b6060 | ||
|
|
4351a3ac86 | ||
|
|
ccffc46f67 | ||
|
|
e8bb624560 | ||
|
|
21c6fdce3a | ||
|
|
18cd678b71 | ||
|
|
9cac6b06f5 | ||
|
|
73ee7664a1 | ||
|
|
8835225655 | ||
|
|
54c19dfb5a | ||
|
|
e4c455bdb6 | ||
|
|
3c9f6f6ab9 | ||
|
|
fb65772dd6 | ||
|
|
aeec6d6d52 | ||
|
|
9be0053d62 | ||
|
|
466fbcb8da | ||
|
|
f43a03a151 | ||
|
|
b3134642a2 | ||
|
|
4d00215098 | ||
|
|
6926e5f423 | ||
|
|
a5e1f40c30 | ||
|
|
857688f36c | ||
|
|
0ac2bfd1cf | ||
|
|
0adedcab50 | ||
|
|
74406cc0b7 | ||
|
|
8754bb80e0 | ||
|
|
67ac227fec | ||
|
|
666210a061 | ||
|
|
2403a98219 | ||
|
|
f140fa6017 | ||
|
|
a5df551689 | ||
|
|
ea6177d19e | ||
|
|
5c776a83ff | ||
|
|
bdcdfdabec | ||
|
|
264a7da9f7 | ||
|
|
f5f2bf85c5 | ||
|
|
cb7e40a892 | ||
|
|
121d104d46 | ||
|
|
44729ffba9 | ||
|
|
4a3d68eada | ||
|
|
afb35ec307 | ||
|
|
bbd3c94ec3 | ||
|
|
394761a6ca | ||
|
|
c566f00567 | ||
|
|
03b967c99a | ||
|
|
966267edf9 | ||
|
|
a53595eea5 | ||
|
|
eec9799706 | ||
|
|
811710c8f0 | ||
|
|
1c0d0157ad | ||
|
|
b4d622b02b | ||
|
|
1b3b117b06 | ||
|
|
33ca1fc670 | ||
|
|
91f9a47afa | ||
|
|
70f10cd23e | ||
|
|
0a52beb539 | ||
|
|
0d36f839c3 | ||
|
|
c815166eb5 | ||
|
|
9616720abb | ||
|
|
01f909fc05 | ||
|
|
b69d3de3e3 | ||
|
|
7b1856aacb | ||
|
|
d5402d017a | ||
|
|
c59414b74b | ||
|
|
0aee62df4d | ||
|
|
1531793084 | ||
|
|
4b41c0e1a2 | ||
|
|
12eb60d2f7 | ||
|
|
00b628c6cc | ||
|
|
9e80c55275 | ||
|
|
301d803fc5 | ||
|
|
a07dfa9572 | ||
|
|
b528131937 | ||
|
|
169347d0c4 | ||
|
|
e4dcec7de7 | ||
|
|
4407c7a4e1 | ||
|
|
cafd16b960 | ||
|
|
3d56251d15 | ||
|
|
a90ab3dbb1 | ||
|
|
c137f5fe9f | ||
|
|
f7bdaadd7e | ||
|
|
36a5b13a0c | ||
|
|
42f4ff398c | ||
|
|
d65a1f120e | ||
|
|
ef2be2e86d | ||
|
|
14841641c1 | ||
|
|
cde70b1494 | ||
|
|
79a7f3dd64 | ||
|
|
ef2f0add35 | ||
|
|
2ff0b10084 | ||
|
|
40634da90b | ||
|
|
afea5e81f9 | ||
|
|
29cc0795b4 | ||
|
|
f77d5ff909 | ||
|
|
88b48738cc | ||
|
|
617f7a1ce6 | ||
|
|
2ab382a355 | ||
|
|
28f40287ce | ||
|
|
7250e96850 | ||
|
|
92bef64979 | ||
|
|
1c2d7c466e | ||
|
|
85bce0582e | ||
|
|
e746891ae0 | ||
|
|
9fa2c878b9 | ||
|
|
6c963f6404 | ||
|
|
bb8f06c248 | ||
|
|
cb9bfccb9a | ||
|
|
3069fa759b | ||
|
|
ecd9d31371 | ||
|
|
6c0723bc43 | ||
|
|
dc4f2dcee7 | ||
|
|
f772ce111e | ||
|
|
d686374e05 | ||
|
|
73eef741b6 | ||
|
|
4075f330e2 | ||
|
|
c10c3b937c | ||
|
|
8603c836e1 | ||
|
|
27bdceaf32 | ||
|
|
9672b9d3b8 | ||
|
|
4f05bf87ac | ||
|
|
c88d796f0e | ||
|
|
0b8cf42fcf | ||
|
|
807b27048b | ||
|
|
6a01b622a2 | ||
|
|
7e61b6b730 | ||
|
|
156534e2ba | ||
|
|
5f650572ce | ||
|
|
9bed4096b8 | ||
|
|
b097e48efc | ||
|
|
1a3aa4fd1a | ||
|
|
83d099b37c | ||
|
|
637a6d7f40 | ||
|
|
78c4af5e4b | ||
|
|
730ccd36b2 | ||
|
|
33a1459505 | ||
|
|
30cf4a1702 | ||
|
|
16529909f9 | ||
|
|
adc1d93ac2 | ||
|
|
94ba940382 | ||
|
|
cf83d92cc1 | ||
|
|
f6990b6e1f | ||
|
|
da1526b92f | ||
|
|
4cd710f84e | ||
|
|
55833fcad0 | ||
|
|
f1d35ba18a | ||
|
|
54685bd660 | ||
|
|
b0f0e8841e | ||
|
|
a073968597 | ||
|
|
5ecba670a5 | ||
|
|
45c1108ca8 | ||
|
|
e115b2d8a8 | ||
|
|
cf20071189 | ||
|
|
b4b60b64aa | ||
|
|
8111ef74b2 | ||
|
|
b4c498f088 | ||
|
|
8286c63ddc | ||
|
|
7394e83eeb | ||
|
|
ebd9bbde2e | ||
|
|
90f27da293 | ||
|
|
7d11687f15 | ||
|
|
3234f04b27 | ||
|
|
5c16c14fed | ||
|
|
6aca737405 | ||
|
|
c884627e21 | ||
|
|
8fa9b34e87 | ||
|
|
b1190e6e0b | ||
|
|
0c1615aef5 | ||
|
|
e31f20e441 | ||
|
|
735e492f8c | ||
|
|
a107a7c3e2 | ||
|
|
b5f4d3b113 | ||
|
|
005c0d2cdc | ||
|
|
0db4b352b6 | ||
|
|
0694a5db0e | ||
|
|
73c7efffb0 | ||
|
|
729170ec97 | ||
|
|
2b0c40feb4 | ||
|
|
91543a0029 | ||
|
|
9625745f4c | ||
|
|
89c4c75e3c | ||
|
|
6aceee8486 | ||
|
|
26958d74d8 | ||
|
|
38d578a2c6 | ||
|
|
96aaed7395 | ||
|
|
7027935ff7 | ||
|
|
5d692f4908 | ||
|
|
9def4a6170 | ||
|
|
3a0d79b1e4 | ||
|
|
048ef96ad0 | ||
|
|
51f1fa50dd | ||
|
|
d8a88c18d3 | ||
|
|
db7cff9582 | ||
|
|
dc2583ddd8 | ||
|
|
3be962f09d | ||
|
|
736b08e016 | ||
|
|
d8013cae37 | ||
|
|
b26b1b9c53 | ||
|
|
1c9c7b7a7d | ||
|
|
a9aaeefe24 | ||
|
|
8257e3f885 | ||
|
|
965c987761 | ||
|
|
142e5276fe | ||
|
|
351d1a2dad | ||
|
|
72424ea2d2 | ||
|
|
1e703bfdb4 | ||
|
|
dee0a4bf3e | ||
|
|
9c1d6051fb | ||
|
|
3c67736cbb | ||
|
|
c697a5bc81 | ||
|
|
0e9df5cb76 | ||
|
|
7a37dd6949 | ||
|
|
cecefd416d | ||
|
|
79f9047c21 | ||
|
|
f9f7469ccf | ||
|
|
1e5933eb45 | ||
|
|
a4e1f531b7 | ||
|
|
0a38d14930 | ||
|
|
4e7f2fa3d4 | ||
|
|
4b99bb579c | ||
|
|
0b59519c19 | ||
|
|
4d18119ccf | ||
|
|
4af236d3ac | ||
|
|
eddb9c28a8 | ||
|
|
40a6fdd95e | ||
|
|
3f80001e4d | ||
|
|
89082164ce | ||
|
|
9df7c2f37a | ||
|
|
840f510bf1 | ||
|
|
1bd95b127b | ||
|
|
97154e49a6 | ||
|
|
db757b5bbb | ||
|
|
af62f54042 | ||
|
|
1b0dc18bdc | ||
|
|
1db36b3132 | ||
|
|
805879a213 | ||
|
|
e1157f3a4c | ||
|
|
46e0866410 | ||
|
|
621c1ee74e | ||
|
|
b3f9070b39 | ||
|
|
14b15dcf5a | ||
|
|
e4c62d2939 | ||
|
|
b50c0bd615 | ||
|
|
e55ee253ab | ||
|
|
f81fa6e4f5 | ||
|
|
4785c650f3 | ||
|
|
be99fa858e | ||
|
|
196d4f6659 | ||
|
|
1233233c6c | ||
|
|
742bcc753f | ||
|
|
839c2a10aa | ||
|
|
b298d41c22 | ||
|
|
c70a9f61cb | ||
|
|
6440d8e69d | ||
|
|
97dcd4d450 | ||
|
|
b8d4514dd0 | ||
|
|
0ceee56de3 | ||
|
|
024cc1806f | ||
|
|
5e421d2636 | ||
|
|
f71ea72d54 | ||
|
|
d65379f6c4 | ||
|
|
06281e85c4 | ||
|
|
5dc2621a32 | ||
|
|
c024f88ce1 | ||
|
|
b5e6ac7db9 | ||
|
|
60732f8243 | ||
|
|
4a557349a3 | ||
|
|
5bf0c310d3 | ||
|
|
99ec103e97 | ||
|
|
829505d548 | ||
|
|
5c9ee7f2a5 | ||
|
|
fa0d54966d | ||
|
|
401dd5162d | ||
|
|
2dee42449a | ||
|
|
224e8aff07 | ||
|
|
b5710cd710 | ||
|
|
8033a8f94c | ||
|
|
4bcef804b6 | ||
|
|
66a5b0ecdc | ||
|
|
2605e7de40 | ||
|
|
f50f171223 | ||
|
|
7626b541f5 | ||
|
|
24c7fc533a | ||
|
|
21fdfe9581 | ||
|
|
ca8ee1c0e3 | ||
|
|
0980b864fa | ||
|
|
d0a822f02a | ||
|
|
4dbce955ee | ||
|
|
6b18675274 | ||
|
|
907e65a359 | ||
|
|
723a4a910c | ||
|
|
89a6fac231 | ||
|
|
9a309ed7b7 | ||
|
|
d10aa35dab |
2
.github/workflows/nodejs.yml
vendored
2
.github/workflows/nodejs.yml
vendored
@@ -3,7 +3,7 @@ name: Node.js CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- ethers-v5-beta
|
||||
- master
|
||||
|
||||
jobs:
|
||||
test-node:
|
||||
|
||||
533
CHANGELOG.md
533
CHANGELOG.md
@@ -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
523
CHANGELOG.v5-beta.md
Normal 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))
|
||||
|
||||
95
README.md
95
README.md
@@ -1,17 +1,35 @@
|
||||
The Ethers Project
|
||||
==================
|
||||
|
||||
**EXPERIMENTAL**
|
||||
[](https://www.npmjs.com/package/ethers)
|
||||
[](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
33
SECURITY.md
Normal 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.
|
||||
@@ -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(">", ">") }>`);
|
||||
deps[name] = value;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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
100
admin/cmds/serve-docs.js
Normal 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/"
|
||||
}
|
||||
});
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"))),
|
||||
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
|
||||
113
docs.wrm/generate-redirects.js
Normal file
113
docs.wrm/generate-redirects.js
Normal 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);
|
||||
});
|
||||
|
||||
@@ -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":
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -71,7 +71,7 @@ contract.value()
|
||||
<div class="nav previous"><a href="/v5/api/contract/contract/"><span class="arrow">←</span>Contract</a></div>
|
||||
<div class="nav next"><a href="/v5/api/contract/example/">Example: ERC-20 Contract<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/contract/"><span class="arrow">←</span>Contract Interaction</a></div>
|
||||
<div class="nav next"><a href="/v5/api/contract/contract-factory/">ContractFactory<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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">←</span>ContractFactory</a></div>
|
||||
<div class="nav next"><a href="/v5/api/signer/">Signers<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/"><span class="arrow">←</span>Application Programming Interface</a></div>
|
||||
<div class="nav next"><a href="/v5/api/contract/contract/">Contract<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/other/hardware/"><span class="arrow">←</span>Hardware Wallets</a></div>
|
||||
<div class="nav next"><a href="/v5/cli/">Command Line Interfaces<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/concepts/security/"><span class="arrow">←</span>Security</a></div>
|
||||
<div class="nav next"><a href="/v5/api/contract/">Contract Interaction<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/other/assembly/dialect/"><span class="arrow">←</span>Ethers ASM Dialect</a></div>
|
||||
<div class="nav next"><a href="/v5/api/other/assembly/ast/">Abstract Syntax Tree<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/other/assembly/api/"><span class="arrow">←</span>Utilities</a></div>
|
||||
<div class="nav next"><a href="/v5/api/other/hardware/">Hardware Wallets<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/other/assembly/"><span class="arrow">←</span>Assembly</a></div>
|
||||
<div class="nav next"><a href="/v5/api/other/assembly/api/">Utilities<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/other/"><span class="arrow">←</span>Other Libraries</a></div>
|
||||
<div class="nav next"><a href="/v5/api/other/assembly/dialect/">Ethers ASM Dialect<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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">⇒</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">←</span>Abstract Syntax Tree</a></div>
|
||||
<div class="nav next"><a href="/v5/api/experimental/">Experimental<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/wordlists/"><span class="arrow">←</span>Wordlists</a></div>
|
||||
<div class="nav next"><a href="/v5/api/other/assembly/">Assembly<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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();
|
||||
```
|
||||
|
||||
@@ -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ö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">// <hide>
|
||||
const EtherscanProvider = ethers.providers.EtherscanProvider;
|
||||
const apiKey = "...";
|
||||
// </hide>
|
||||
</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");
|
||||
// <hide>
|
||||
delete network._defaultProvider;
|
||||
network
|
||||
// </hide>
|
||||
//!
|
||||
|
||||
<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">⇒</span> <span class="returns">Array< History ></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">⇒</span> <span class="returns">Array< History ></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ö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">// <hide>
|
||||
const InfuraProvider = ethers.providers.InfuraProvider;
|
||||
const projectId = "...";
|
||||
const projectSecret = "...";
|
||||
// </hide>
|
||||
</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ö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">// <hide>
|
||||
const AlchemyProvider = ethers.providers.AlchemyProvider;
|
||||
const apiKey = "...";
|
||||
// </hide>
|
||||
</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">// <hide>
|
||||
const CloudflareProvider = ethers.providers.CloudflareProvider;
|
||||
// </hide>
|
||||
|
||||
// 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">←</span>JsonRpcProvider</a></div>
|
||||
<div class="nav next"><a href="/v5/api/providers/other/">Other Providers<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/signer/"><span class="arrow">←</span>Signers</a></div>
|
||||
<div class="nav next"><a href="/v5/api/providers/provider/">Provider<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -16,18 +16,18 @@
|
||||
<div class="content">
|
||||
<div class="breadcrumbs"><a href="/v5/">Documentation</a> » <a href="/v5/api/">API</a> » <a href="/v5/api/providers/">Providers</a> » <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">⇒</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">⇒</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">⇒</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">⇒</span> <span class="returns">Array< string ></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">⇒</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">⇒</span> <span class="returns">Array< string ></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">⇒</span> <span class="returns">Promise< any ></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">⇒</span> <span class="returns">Promise< any ></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">⇒</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">⇒</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">⇒</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">⇒</span> <span class="returns">Promise< string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>< 32 > > ></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">⇒</span> <span class="returns">Promise< string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>< 32 > > ></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">⇒</span> <span class="returns">Promise< boolean ></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">⇒</span> <span class="returns">Promise< boolean ></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">←</span>Provider</a></div>
|
||||
<div class="nav next"><a href="/v5/api/providers/api-providers/">API Providers<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/providers/api-providers/"><span class="arrow">←</span>API Providers</a></div>
|
||||
<div class="nav next"><a href="/v5/api/providers/types/">Types<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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
@@ -187,7 +187,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/providers/other/"><span class="arrow">←</span>Other Providers</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/">Utilities<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
// <hide>
|
||||
//! error
|
||||
// </hide></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)
|
||||
|
||||
// <hide>
|
||||
//!
|
||||
// </hide>
|
||||
// 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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/address/#address">Address</a> ></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">←</span>Example: ERC-20 Contract</a></div>
|
||||
<div class="nav next"><a href="/v5/api/providers/">Providers<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/abi/"><span class="arrow">←</span>Application Binary Interface</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/abi/formats/">ABI Formats<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/abi/coder/"><span class="arrow">←</span>AbiCoder</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/abi/fragments/">Fragments<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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">⇒</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">⇒</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">⇒</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">⇒</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">⇒</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">⇒</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">⇒</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">⇒</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">⇒</span> <span class="returns">Array< <a href="/v5/api/utils/abi/fragments/#ParamType">ParamType</a> ></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">⇒</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">⇒</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">⇒</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">⇒</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">←</span>ABI Formats</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/abi/interface/">Interface<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/"><span class="arrow">←</span>Utilities</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/abi/coder/">AbiCoder<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/abi/fragments/"><span class="arrow">←</span>Fragments</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/address/">Addresses<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/abi/interface/"><span class="arrow">←</span>Interface</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/bignumber/">BigNumber<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -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">⇒</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">⇒</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">←</span>Addresses</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/bytes/">Byte Manipulation<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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
|
||||
// ]
|
||||
```
|
||||
|
||||
|
||||
@@ -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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#HexString">HexString</a> ></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">⇒</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">⇒</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">⇒</span> <span class="returns">Array< any ></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">←</span>BigNumber</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/constants/">Constants<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/bytes/"><span class="arrow">←</span>Byte Manipulation</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/display-logic/">Display Logic and Input<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/constants/"><span class="arrow">←</span>Constants</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/encoding/">Encoding Utilities<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/display-logic/"><span class="arrow">←</span>Display Logic and Input</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/fixednumber/">FixedNumber<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/encoding/"><span class="arrow">←</span>Encoding Utilities</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/hashing/">Hashing Algorithms<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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'
|
||||
```
|
||||
|
||||
|
||||
@@ -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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>< 64 > ></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");
|
||||
// <hide>
|
||||
bytes
|
||||
// </hide>
|
||||
//!
|
||||
|
||||
// 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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a> ></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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>< 32 > ></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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>< 32 > ></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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a> ></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">⇒</span> <span class="returns">string< <a href="/v5/api/utils/bytes/#DataHexString">DataHexString</a>< 32 > ></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">←</span>FixedNumber</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/hdnode/">HD Wallet<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/hashing/"><span class="arrow">←</span>Hashing Algorithms</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/logger/">Logging<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/providers/types/"><span class="arrow">←</span>Types</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/abi/">Application Binary Interface<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/hdnode/"><span class="arrow">←</span>HD Wallet</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/properties/">Property Utilities<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/logger/"><span class="arrow">←</span>Logging</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/signing-key/">Signing Key<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/properties/"><span class="arrow">←</span>Property Utilities</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/strings/">Strings<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/signing-key/"><span class="arrow">←</span>Signing Key</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/transactions/">Transactions<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/strings/"><span class="arrow">←</span>Strings</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/web/">Web Utilities<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/transactions/"><span class="arrow">←</span>Transactions</a></div>
|
||||
<div class="nav next"><a href="/v5/api/utils/wordlists/">Wordlists<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/utils/web/"><span class="arrow">←</span>Web Utilities</a></div>
|
||||
<div class="nav next"><a href="/v5/api/other/">Other Libraries<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -180,7 +180,7 @@ return(0, #myContract)
|
||||
<div class="nav previous"><a href="/v5/cli/ethers/"><span class="arrow">←</span>Sandbox Utility</a></div>
|
||||
<div class="nav next"><a href="/v5/cli/ens/">Ethereum Naming Service<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -94,7 +94,7 @@ OTHER OPTIONS
|
||||
<div class="nav previous"><a href="/v5/cli/asm/"><span class="arrow">←</span>Assembler</a></div>
|
||||
<div class="nav next"><a href="/v5/cli/typescript/">TypeScript<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -209,7 +209,7 @@ homestead></div><div class="definition container-box warning"><div class="ter
|
||||
<div class="nav previous"><a href="/v5/cli/"><span class="arrow">←</span>Command Line Interfaces</a></div>
|
||||
<div class="nav next"><a href="/v5/cli/asm/">Assembler<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<div class="nav previous"><a href="/v5/api/experimental/"><span class="arrow">←</span>Experimental</a></div>
|
||||
<div class="nav next"><a href="/v5/cli/ethers/">Sandbox Utility<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<div class="nav previous"><a href="/v5/cli/typescript/"><span class="arrow">←</span>TypeScript</a></div>
|
||||
<div class="nav next"><a href="/v5/cookbook/">Cookbook<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -42,7 +42,7 @@ OTHER OPTIONS
|
||||
<div class="nav previous"><a href="/v5/cli/ens/"><span class="arrow">←</span>Ethereum Naming Service</a></div>
|
||||
<div class="nav next"><a href="/v5/cli/plugin/">Making Your Own<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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) => {
|
||||
// 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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"> </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"> </td></tr><tr><td align="center" width="25%">[ A, null ]</td><td class="fix"> </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"> </td></tr><tr><td align="center" width="25%">[ null, [ B ] ]</td><td class="fix"> </td></tr><tr><td align="center" width="25%">[ null, [ B ], null ]</td><td class="fix"> </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"> </td></tr><tr><td align="center" width="25%">[ A, [ B ] ]</td><td class="fix"> </td></tr><tr><td align="center" width="25%">[ A, [ B ], null ]</td><td class="fix"> </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"> </td></tr><tr><td align="center" width="25%">[ [ A, B ], null ]</td><td class="fix"> </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"> </td></tr><tr><td class="table-title" colspan="4">Example Log Matching</td><td class="fix"> </td></tr></table><div class="code-title"><div>ERC-20 Transfer Filter Examples</div></div><div class="code">// <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.
|
||||
//
|
||||
// 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"> </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"> </td></tr><tr><td align="center" width="25%">[ A, null ]</td><td class="fix"> </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"> </td></tr><tr><td align="center" width="25%">[ null, [ B ] ]</td><td class="fix"> </td></tr><tr><td align="center" width="25%">[ null, [ B ], null ]</td><td class="fix"> </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"> </td></tr><tr><td align="center" width="25%">[ A, [ B ] ]</td><td class="fix"> </td></tr><tr><td align="center" width="25%">[ A, [ B ], null ]</td><td class="fix"> </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"> </td></tr><tr><td align="center" width="25%">[ [ A, B ], null ]</td><td class="fix"> </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"> </td></tr><tr><td class="table-title" colspan="4">Example Log Matching</td><td class="fix"> </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">// <hide>
|
||||
const tokenAddress = "0x6B175474E89094C44Da98b954EedeAC495271d0F"; // DAI
|
||||
const myAddress = "0x8ba1f109551bD432803012645Ac136ddd64DBA72";
|
||||
const otherAddress = "0xEA517D5a070e6705Cc5467858681Ed953d285Eb9";
|
||||
const provider = ethers.getDefaultProvider();
|
||||
const Contract = ethers.Contract;
|
||||
// </hide>
|
||||
|
||||
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">←</span>Ethereum Basics</a></div>
|
||||
<div class="nav next"><a href="/v5/concepts/gas/">Gas<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<div class="nav previous"><a href="/v5/concepts/events/"><span class="arrow">←</span>Events</a></div>
|
||||
<div class="nav next"><a href="/v5/concepts/security/">Security<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="nav previous"><a href="/v5/getting-started/"><span class="arrow">←</span>Getting Started</a></div>
|
||||
<div class="nav next"><a href="/v5/concepts/events/">Events<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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">←</span>Gas</a></div>
|
||||
<div class="nav next"><a href="/v5/api/">Application Programming Interface<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
<div class="nav previous"><a href="/v5/testing/"><span class="arrow">←</span>Testing</a></div>
|
||||
<div class="nav next"><a href="/v5/documentation/">Flatworm Docs<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/cli/plugin/"><span class="arrow">←</span>Making Your Own</a></div>
|
||||
<div class="nav next"><a href="/v5/migration/">Migration Guide<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -199,22 +199,16 @@ const foo = 4 + 5;
|
||||
// <hide>
|
||||
foo
|
||||
// </hide>
|
||||
//!</div><div class="code-title"><div>Result of Code Example</div></div><div class="code">// <hide>
|
||||
const url = require("url");
|
||||
// </hide>
|
||||
|
||||
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;
|
||||
// <hide>
|
||||
foo
|
||||
// </hide>
|
||||
//!</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"> </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"> </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"> </td></tr><tr><td align="center">shell</td><td align="left">Shell scripts or command-line</td><td class="fix"> </td></tr><tr><td align="center">text</td><td align="left">Plain text with no syntax highlighting</td><td class="fix"> </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">←</span>Contributing and Hacking</a></div>
|
||||
<div class="nav next"><a href="/v5/license/">License and Copyright<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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'
|
||||
```
|
||||
|
||||
|
||||
@@ -21,7 +21,9 @@
|
||||
|
||||
<div class="code">/home/ricmoo> 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">// <hide>
|
||||
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);
|
||||
// </hide>
|
||||
<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">// <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) => {
|
||||
<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) => {
|
||||
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)
|
||||
// <hide>
|
||||
filter
|
||||
// </hide>
|
||||
//!
|
||||
|
||||
// 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 }.`);
|
||||
<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) => {
|
||||
<span class="comment"> // The to will always be "address"
|
||||
</span> console.log(`I got ${ formatEther(amount) } from ${ from }.`);
|
||||
});
|
||||
|
||||
// <hide>
|
||||
// Don't want to block the docs from compiling...
|
||||
daiContract.removeAllListeners();
|
||||
// </hide></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">// <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
|
||||
|
||||
// Filter for all token transfers to me
|
||||
filterFrom = daiContract.filters.Transfer(myAddress, null);
|
||||
// <hide>
|
||||
filterFrom
|
||||
// </hide>
|
||||
//!
|
||||
|
||||
// Filter for all token transfers from me
|
||||
filterTo = daiContract.filters.Transfer(null, myAddress);
|
||||
// <hide>
|
||||
filterTo
|
||||
// </hide>
|
||||
//!
|
||||
|
||||
// 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">// <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
|
||||
|
||||
//
|
||||
// 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">←</span>Documentation</a></div>
|
||||
<div class="nav next"><a href="/v5/concepts/">Ethereum Basics<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">→</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>
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="nav previous"><a href="/v5/documentation/"><span class="arrow">←</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>
|
||||
|
||||
@@ -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">←</span>Migration: From Web3.js</a></div>
|
||||
<div class="nav next"><a href="/v5/testing/">Testing<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/cookbook/"><span class="arrow">←</span>Cookbook</a></div>
|
||||
<div class="nav next"><a href="/v5/migration/web3/">Migration: From Web3.js<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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>
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<div class="nav previous"><a href="/v5/migration/"><span class="arrow">←</span>Migration Guide</a></div>
|
||||
<div class="nav next"><a href="/v5/migration/ethers-v4/">Migration: From Ethers v4<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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
@@ -24,7 +24,7 @@
|
||||
<div class="nav previous"><a href="/v5/migration/ethers-v4/"><span class="arrow">←</span>Migration: From Ethers v4</a></div>
|
||||
<div class="nav next"><a href="/v5/contributing/">Contributing and Hacking<span class="arrow">→</span></a></div>
|
||||
</div>
|
||||
<div class="copyright">The content of this site is licensed under the <a href="https://choosealicense.com/licenses/cc-by-4.0/">Creative Commons 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
2514
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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",
|
||||
|
||||
2
packages/abi/lib.esm/_version.d.ts
vendored
2
packages/abi/lib.esm/_version.d.ts
vendored
@@ -1 +1 @@
|
||||
export declare const version = "abi/5.0.0-beta.156";
|
||||
export declare const version = "abi/5.0.1";
|
||||
|
||||
@@ -1 +1 @@
|
||||
export const version = "abi/5.0.0-beta.156";
|
||||
export const version = "abi/5.0.1";
|
||||
|
||||
2
packages/abi/lib/_version.d.ts
vendored
2
packages/abi/lib/_version.d.ts
vendored
@@ -1 +1 @@
|
||||
export declare const version = "abi/5.0.0-beta.156";
|
||||
export declare const version = "abi/5.0.1";
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user