Commit Graph

56 Commits

Author SHA1 Message Date
Matthias Seitz ce3ebaefa0
chore(clippy): make clippy happy (#1230) 2022-05-06 08:15:49 -07:00
inconspicuous99 f5c5468420
Add: Make Ganache Startup Timeout *Configurable*. (#1224)
* Add: Configurable Ganache Startup TImeout

* fix lint, add docs.
2022-05-05 07:40:48 -07:00
Matthias Seitz 67e3480bdc
chore(core): update moonbeam url (#1228) 2022-05-05 07:31:26 -07:00
Matthias Seitz 48e292021d
feat: add anvil bindings (#1164) 2022-04-21 19:22:52 +02:00
Matthias Seitz 916e9a7334
chore(clippy): add some deny lints (#1064)
* feat: add deny lints

* trim ethers core

* trim ethers eip712

* deny ethers contract derive

* deny ethers contract abigen

* deny ethers contract

* deny ethers providers

* chore: add denies and fix unused deps

* doc: fix links

* fix: wasm build

* doc: fix links

* doc: fix links

* doc: fix inline doc links

* docs: fix intra doc links
2022-03-19 10:05:39 -07:00
wolflo dc1565c014
fix(core): adjust Ganache for new cli output (#851) 2022-02-01 12:59:54 +02:00
juniorbeef 97744b87a6
core: fix overflow and panic in priority fee estimation (#839)
The U256 priority fees were being coerced into u32, which was not big
enough for actual values. The overflow was happening but not checked.
This led to a possible divide-by-zero panic in this code as well.

This change does the math as I256 -- overkill, but it works.
2022-01-29 14:54:38 +02:00
Georgios Konstantopoulos 568d9c8697
Update Cryptography crates (#617)
* fix(core): use new k256 for pubkey calculation

* fix(core): deserialize moonbeam keys with new fn

* chore(signers): update crypto crates

* chore: update cargo lock

* ci: remove libudev req

* chore: cargo fmt

* chore: fix outstanding yubihsm errors
2021-12-21 00:41:57 +02:00
Matthias Seitz e24117a1e1
chore(clippy): make clippy happy (#705) 2021-12-19 06:28:38 +02:00
x3ccd4828 6cecc4824a
fix: parse_units was generating an error on some values because of extra decimal places added round to prevent error (#701) 2021-12-17 11:22:37 +02:00
Georgios Konstantopoulos f037fc0243
fix: do not panic on invalid units conversion (#691)
* fix: do not panic on invalid units conversion

This is done by switching the From implementations to TryFrom and
making the conversion functions return a thiserror Error instead of
the previous Boxed error object

* chore: update changelog
2021-12-15 03:32:29 +01:00
x3ccd4828 0e133e4a87
fix: format_units return was truncating the decimal places if there were leading zeros (#675) 2021-12-11 00:17:21 -07:00
Matthias Seitz 7da5b64cfd
feat: add moonbeam support (#644)
* feat: add moonbeam support

* typos
2021-12-03 10:05:38 -08:00
x3ccd4828 3a768b9c99
Fix parse units (#597)
* fix: changed format_units to return a String and preserve the decimal
places

* chore: fix changelog

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-11-24 11:07:18 +02:00
Georgios Konstantopoulos f0dea75219
feat: use ethers_solc::Solc instead of ethers_core::utils::Solc (#546)
* feat(ethers-solc): deserialize bytecode as bytes

* feat(ethers-solc): add method to fetch compact contract

* feat(ethers-solc): use Abi type instead of Vec<serde_json::Value>

* test(contract): use new Solc bindings

* test(middleware): use new Solc bindings

* chore: remove solc from ethers-core

* chore: remove concurrent setup code from ethers-core

* feat(ethers-solc): add ArtifactOutput::Nothing as a no-op artifact logger

* feat: add ethers-solc to top level crate

* examples: use new solc building pattern

* chore(solc): re-use opt str impl for error code decoding

* fix abigen example

* chore: fix doctests

* chore: remove setup feature

* fix: decode string to bytes correctly

* chore: clippy lints
2021-10-31 13:34:51 +02:00
Matthias Seitz dcf20022c6
chore: add rustfmt.toml (#537)
* chore: add rustfmt.toml

* rustfmt

* chore: Update readme with fmt info

* ci: update ci

* chore: rustfmt

* rustfmt

* rustfmt

* ci: install libudev

* chore(clippy): make clippy happy

* chore(clippy): make clippy happy

* revert ci

* ci: install libudev
2021-10-29 14:29:35 +02:00
Matthias Seitz bef7960a2b
feat: add display support for events (#513)
* chore: move proc macro implementation to separate modules

* feat: add display derive macro

* chore: reexport hex

* feat: add EthDisplay

* test: add display test

* fix: use ? op

* feat: derive EthDisplay in abigen

* feat: derive display for event enum

* chore: update changelog
2021-10-16 16:42:17 +03:00
Matthias Seitz 5d8b66a68f
feat: add general solc contract types (#484) 2021-10-04 07:45:32 +01:00
Matthias Seitz da70e0caab
feat: allow to configure combined-json (#483) 2021-10-02 05:02:16 +03:00
Georgios Konstantopoulos ede76a2feb
fix(solc): normalize EVM version across solc versions (#473)
* fix(solc): normalize EVM version across solc versions

* fix: return semver::Version from solc::version instead of String

* fix off-by-1 error in solc version parsing
2021-09-28 02:25:45 +03:00
Georgios Konstantopoulos 1fb3fbfef6 chore: expose solc module 2021-09-27 20:48:18 +03:00
Odysseas Lamtzidis 22367988fd
Add Decimal support to ethers::utils::parse_units (#463)
* implemnet parse_units with dec support

* Add doc tests

* add decimal support to parse_ethers()

* add unit tests
2021-09-20 16:02:45 -05:00
Odysseas Lamtzidis 80adc08860
Change wei from 1 to 0 (#460)
1 WEI = 10^0 WEI, not 10^1
2021-09-20 09:53:37 -05:00
Georgios Konstantopoulos 566f4c1f34 fix: remove solc path canonicalization 2021-09-13 23:58:10 +03:00
Georgios Konstantopoulos cf3339066b fix(solc): canonicalize custom paths 2021-09-13 23:46:37 +03:00
Georgios Konstantopoulos 77bc5aa30f
feat: expand solc capabilities / chore: update ethabi (#445)
* chore: use ethabi with bumped ethereum-types

* fix: do not use internal type in human readable abi

* fix: do not use internal type in abigen

* feat(solc): save the runtime bytecode

* feat: implement serde for CompiledContract

* feat: allow overriding solc binary path

* feat: expose providing raw file paths

* feat: do not set evm versions on old solc

* chore: use upstream ethabi
2021-09-13 15:35:50 +03:00
wolflo 90df511704
core: add utils::get_create2_address_from_hash() (#444) 2021-09-11 19:41:14 +03:00
wolflo 46faf7614b
Add usage examples for hashing utilities (#436)
* core: add doctest for utils::get_create2_address()

* examples: add permit hash encoding example
2021-09-09 08:42:42 +03:00
Georgios Konstantopoulos 520645c48b
chore: add changelog for #427 changes (#428) 2021-09-03 17:50:50 +03:00
wolflo 664ccfe9d6
fix: Enable solc optimization (#427)
* fix: solc optimization enabled

* feat(solc): optional optimizer and passthrough args

Change optimizer() method to accept an Option<usize> (breaking).
Add args() option to pass arbitrary arguments to solc command.
2021-09-02 13:18:04 +03:00
Georgios Konstantopoulos 38c7f5030f
chore: remove cyclical dependencies (#410)
* chore(core): remove ethers dep

* chore(providers): remove ethers dep

tests using higher-rank crates are temporarily disabled

* chore(middleware): remove ethers dep and move tests over from providers

* chore(signers): remove ethers dep

* fix(contracts): correctly determine ethers sub-crates & remove ethers

* fix: re-enable tests for all members

* fix: make contract compile without middleware dep

move over the test using middleware to ethers-middleware

* chore: cargo fmt

* chore(contract): add missing import

* WIP

* WIP

* fix(middleware): use rustls as dev dep

* chore: cargo fmt

* fix: use different key for nonce manager to avoid nonce conflicts

* chore: fix celo test ported over to middlewares

the test had the same private key with an existing middleware test,
causing potential nonce reuses

it now also uses a different storage contract, so we had to change
it to use u256 instead of string

* fix(middleware): enable contracts/celo feature

* chore: ignore non-eip2718 txs to rinkeby
2021-08-29 00:06:29 +03:00
Matthias Seitz ea566663d4
feat: wasm support (#390)
* feat: partial wasm32 support

* make compile for wasm32

* feat: att async-trait attr

* make compatible with wasm

* add type alias for archs

* rustfmt

* add wasm ci

* make compile with wasm-pack test

* make compile with wasm-pack test

* make compile with wasm-pack test

* make compile with wasm-pack test

* ci: disable wasmpack

* feat: use wasm timer delay

* feat: add wasm provider

* rustfmt

* misc refactor

* add wasm example

* make example a directory

* untrack error log

* move profile to root

* fix unused imports

* ci: enable wasm-pack test

* style: unify websocket implementations

* fix: typos

* fix: make policy compatible with wasm target

* chore: do not include ethers-wasm example as top level workspace member

* chore: modify wasm32 dependencies

* chore: make note about getrandom

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-08-23 12:56:44 +03:00
Rohit Narurkar ad779c867f
feat: fee estimation with custom/default fn (#369)
* feat: fee estimation with custom/default fn

* fix: clippy and percentage calc fix

* calculate priority fee only if base fee above threshold

* chore: some comments

* fix: use legacy tx for ganache

* test: test a few cases for fee estimation using utils
2021-08-19 17:01:40 +03:00
Matthias Seitz 985509ac1c
feat: support additional ganache arguments (#347)
* feat: support additional ganache arguments

* feat: add fork argument option
2021-07-25 17:37:38 +03:00
Jonathan LEI 4afa1c9517
Add util functions for bytes32 string encoding/decoding (#337) 2021-07-12 11:20:38 +03:00
Zaki Manian 371b7d1576
Update crypto deps for ethers (#333)
* Update crypto deps for ethers

* Update version 0.4.0

* Missed a version

* Fix internal version dependencies

* chore: use published eth-keystore-rs

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-07-07 20:18:14 +03:00
Matthias Seitz 4690f8effc
feat: support parsing solc contract abi output in string and array form (#301) 2021-05-28 10:46:44 +03:00
Austin Abell 42b10cca9a
feat: implement IPC transport support (#260)
* Initial IPC setup

* Cleanup

* Oops

* change futures dependency reference

* Document, add prints, cleanup

* Fix logic

* Make result type consistent with crate

* Setup geth ipc config and tests

* Cleanup subscription test

* Switch hash function to siphash

* Update dep usage for ordering

* Use tempfile for better cleanup (and OS support)

* Replace prints with tracing logs

* Ignore test with Celo feat

* chore: remove debug logs and use default geth ipc path

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-04-08 09:52:31 +03:00
Georgios Konstantopoulos 5eb31ceae9
chore: use latest ethabi (#253)
* chore: use latest ethabi

* chore: use re-exported ethereum types
2021-04-01 20:02:34 +03:00
Matthias Seitz 109337f138
feat: add async setup utility functions (#241)
* feat: add async compile and launch functions

* chore: update examples with new setup functions

* chore: disable setup for wasm32
2021-03-22 13:09:12 +02:00
Georgios Konstantopoulos 0b9375688e
fix: switch between units correctly (#170) 2021-01-17 14:10:30 +02:00
Georgios Konstantopoulos 5c1f8f532a
Upgrade to Tokio 1.0 and remove async-std (#120)
* feat(providers): tokio 1.0

BREAKING: This removes async-std as a compatibility option

* feat: tokio 1.0 in rest of crates

* fix: patch Cargo.toml until deps are released

* fix(contract): load ws deps

* feat: bytes 1.0 (#121)

* feat(core): move to bytes::Bytes

* feat: adjust rest of crates to Bytes

* chore: bump deps

CI fails due to:
https://github.com/snapview/tokio-tungstenite/pull/142#discussion_r550445144

* chore: use latest tokio-tungstenite

* ci: split tests into jobs (#129)

* Switch to `hex` (#128)

* fix(core): replace rustc_hex with hex

* fix(providers): replace rustc_hex with hex

* chore: replace rustc-hex with hex

* chore: cargo fmt

* fix(ledger): copy address from string correctly

* chore: fix flaky tests

Fixes #105
2020-12-31 19:19:14 +02:00
Georgios Konstantopoulos ca1283b23a docs: fix broken links 2020-12-24 17:44:26 +02:00
Georgios Konstantopoulos a22f1f9aa0
Geth TxPool API Support (#86)
* feat: support for txpool API

* feat: add a geth spawner test helper

* fix(txpool): use TxRequest instead of new data struct

The `raw` field is no longer present in latest geth's response.

* fix(txpool): use proper api response format

ref: https://github.com/ethereum/go-ethereum/pull/21720

Also add a Geth test

* ci: install geth 1.9.23

Co-authored-by: Rohit Narurkar <rohit.narurkar@protonmail.com>
2020-10-24 11:13:13 +03:00
Georgios Konstantopoulos 938972e9cc
Address checksum (#85)
* feat: addr checksum encoding

* fix: replace format! with encode to hex

* chore: Fix celo tests

* perf(checksum): convert loop to iterator

Co-authored-by: Rohit Narurkar <rohit.narurkar@protonmail.com>
2020-10-18 13:22:10 +03:00
Georgios Konstantopoulos aa37f74c4b
feat: generalize wallet/private key + yubihsm2 (#75)
* feat: generalize wallet/private key

* fix: adjust celo tests

* YubiHSM2 Support (#76)

* feat: support YubiHSM2
2020-10-02 11:41:16 +03:00
James Prestwich d218dba6df
feature: ethers-core wasm32 arch compatibility (#38)
* feature: ethers-core wasm32 arch compatibility

* fix(core): set U256 array in correct order

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2020-06-23 10:15:33 +03:00
Georgios Konstantopoulos bb1ac9c666
Improve Ganache Flexibility (#37)
* feat(core): add more features to ganache

* test(provider): choose endpoint dynamically

* test(signer): choose endpoint and accounts dynamically

* test(contract): choose endpoint and accounts dynamically

* fix: dynamic port / accounts in examples

* core(chore): fix doctest
2020-06-22 16:42:34 +03:00
Georgios Konstantopoulos 4ff466a593
fix intradoc links and add missing cargo metadata (#29) 2020-06-20 16:55:07 +03:00
Georgios Konstantopoulos 20493e0190
Fix Pending Transactions and EIP-155 (#22)
* fix(provider): ensure the Pending transaction calls the waker to get polled again

* feat(core): allow setting the blocktime in ganache

* test(provider): move pending txs test to integration tests + use block time

* fix(signers): make EIP-155 optional and fix sighash generation bug
2020-06-17 11:02:03 +03:00