Commit Graph

266 Commits

Author SHA1 Message Date
James Prestwich 13ce18fd3b
feature: allow event builder to stream with meta (#1483)
* feature: allow event builder to stream with meta

* doc: improve rustdoc

* feature: subscribe_with_meta

* chore: fmt
2022-07-17 11:26:16 -07:00
Matthias Seitz 841b75430e
chore(deps): bump pin-project to silence new clippy lints (#1464) 2022-07-06 13:22:55 -07:00
dependabot[bot] dc01d0c9ed
chore(deps): bump once_cell from 1.12.0 to 1.13.0 (#1453)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.0...v1.13.0)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-05 08:54:50 -07:00
jole b287fcca4d
Generate structs for the return data of abigen-erated contracts (#1440)
* convert some helper functions

* use said helpers

* more

* don't derive EthCall on return structs

* move return structs to separate function

* remove unused

* remove duplicate code

* reduce code duplication

also use an iterator instead of a presized vector

* comments

* stuck

* fix wrong field

* rename

* don't generate structs for no-output functions

* cosmetic changes

* test: decode and verify result

* more testing

unnamed output (tuple struct)
no output (doesn't exist) -> can't verify this in code though

* Update ethers-contract/ethers-contract-abigen/src/contract/methods.rs

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>

* remove dbg print

oops :(

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-07-04 11:54:02 -07:00
Matthias Seitz c31eec5008
docs(contract): improve EventStream docs (#1450) 2022-07-04 11:47:11 -07:00
Matthias Seitz 7c6462be02
chore(core): convenience impls for Bytes (#1421)
* chore(core): convenience impls for Bytes

* update asserts
2022-06-28 09:30:59 -07:00
Matthias Seitz f17f900d01
fix(abigen): remove redundant index adjustment for many overloads (#1419) 2022-06-27 11:52:06 -07:00
Matthias Seitz 659ac061b2
refactor(abigen): replace ethabi::Reader (#1417)
* feat: add human readable function parser

* clippy fix

* revert bad clippy

* refactor(abigen): replace ethabi::Reader

* fix: add token to tuple token parsing
2022-06-26 17:26:43 -07:00
Matthias Seitz 2524663674
fix(abigen): use abi signature attribute if provided (#1409) 2022-06-23 02:53:24 -04:00
Matthias Seitz 69095c15cf
feat: add eth filter deserialization and matching (#1389)
* feat: add eth filter deserialization and matching

* chore: rustfmt

* extend test

* add missing conversion
2022-06-17 09:34:16 -07:00
Georgios Konstantopoulos e991148790 Revert "release: disable dev deps"
This reverts commit b3159507a8.
2022-06-14 14:23:10 +03:00
Georgios Konstantopoulos b3159507a8 release: disable dev deps 2022-06-14 14:15:25 +03:00
Georgios Konstantopoulos 5e0f38ae40 (cargo-release) version 0.13.0 2022-06-14 13:59:12 +03:00
Georgios Konstantopoulos ed6c3f8413 (cargo-release) version 0.13.0 2022-06-14 13:59:11 +03:00
Georgios Konstantopoulos 54b81e6b7f (cargo-release) version 0.13.0 2022-06-14 13:59:11 +03:00
Georgios Konstantopoulos 89f86d801e (cargo-release) version 0.13.0 2022-06-14 13:59:11 +03:00
Georgios Konstantopoulos fdccd80551 (cargo-release) version 0.13.0 2022-06-14 13:59:11 +03:00
Georgios Konstantopoulos f3096ce177 (cargo-release) version 0.13.0 2022-06-14 13:59:11 +03:00
Georgios Konstantopoulos ce275f1838 (cargo-release) version 0.13.0 2022-06-14 13:59:11 +03:00
Georgios Konstantopoulos 3017e09146 (cargo-release) version 0.13.0 2022-06-14 13:59:10 +03:00
Georgios Konstantopoulos 4791bb6a07 (cargo-release) version 0.13.0 2022-06-14 13:59:10 +03:00
Gio a532eb4d29
Add call builder and eth_call state overrides (#1340)
* Add call builder and eth_call state overrides

* Fix <Caller as Future>::poll impl

* Move call overrides to ethers_provider::call_raw

* Add example for call_raw overrides

* Add support for contract call overrides

* Documentation and convenience impls for call_raw types

* Test for eth_call state overrides

* ci: install geth

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-06-04 14:18:25 -07:00
Matthias Seitz 89bc6420bb
test: replace ganache with anvil (#1286)
* ci: install anvil

* test: use anvil instead of ganache

* ci: fix anvil ver

* ci: re-enable example tests

* test: remove unnecessary assertions

* test: enable anvil launch test

* docs: typo

* test: fix anvil chain id

* ci: install ganache

Ganache is needed for the Ganache tests

* chore: remove legacy feature from some examples

* ci: correctly build examples

* test: use correct account balance for anvil

* chore: remove sub_id == 1 check

this was only possible in ganache because it gives serial
sub ids, but in every other reasonable client the ids are generated
randomly, so we cannot test for its value

* test: ensure txs are different

There is a bug in Ganache's mempool which accepts duplicate transactions (here with the same nonce), whereas here we pre-set all the nonces so that they end up having a different transaction hash.

* test: ignore ganache tests

* fix: terzor api changes

* ci(examples): install Anvil, remove geth/ganache

* test(provider): Anvil instead of Geth

some tests start to fail now

* fix: revert usage of Anvil in ipc tests

Anvil does not support IPC yet

* fix: update examples script

* ci: use anvil for wasm example

* replace last ganache usage

Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-06-01 08:22:39 -07:00
tri-joe eb3945097d
make abigen-ed modules pub (#1332) 2022-05-31 13:29:02 -07:00
Clifton King a41ae901e5
fix(abigen): non-snake-case modules out of order (#1331)
eg: `console` and `shared_types` were out of order and would fail
rustfmt check
2022-05-31 09:44:24 -07:00
Matthias Seitz d2c46867c1
chore(deps): make tokio required dependency (#1322)
* chore(deps): make tokio non optional

* chore(deps): bump tokio 0.18

* Update ethers-providers/Cargo.toml

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-05-28 17:54:45 -07:00
Clifton King 7b9503c8b0
fix(abigen): clippy warnings on solidity bindings (#1319)
eg the `console` contract throws a clippy warning
2022-05-27 13:32:57 -07:00
dependabot[bot] 37f3df5234
chore(deps): bump once_cell from 1.11.0 to 1.12.0 (#1306)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-24 00:31:40 -07:00
rakita 4301447155
relax thiserror minor version constraint (#1294) 2022-05-23 11:41:30 -07:00
Meet Mangukiya 2f34fc9705
feat(ethers-contract-abigen): opt out of checking cargo.toml for consistency (#1301) 2022-05-23 11:41:05 -07:00
Matthias Seitz cffcc7bbec
chore(clippy): fix newest nightly lints (#1298) 2022-05-22 15:18:57 -07:00
dependabot[bot] 2883ed7e2d
chore(deps): bump once_cell from 1.10.0 to 1.11.0 (#1288)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-21 17:50:00 -07:00
Meet Mangukiya 5d604edd5c
feat(ContractDeployer): add tx builder methods (#1289) 2022-05-21 17:48:41 -07:00
Meet Mangukiya 6d5bebd860
Release process and CI (#1240)
* Fix the crate versions

* release.toml: add cargo-release config

* CONTRIBUTING.md: Update Releasing section

* feat: add release github workflow

* feat: generate CHANGELOGs and create github releases in CI
2022-05-13 13:10:05 -07:00
Matthias Seitz 847110a3fe
fix: filter out empty bytecode (#1248) 2022-05-11 07:34:41 -07:00
Matthias Seitz 4b462e6ef2
test(abigen): ensure structs in events work (#1235)
* test(abigen): ensure structs in events work

* chore: rename vars

* chore: use ganache chain id

* chore: disable ganache test on celo
2022-05-09 09:26:36 -07:00
Matthias Seitz fd994d7fde
feat(abigen): support overloaded events (#1233)
* feat(abigen): support overloaded events

* chore: update CHANGELOG
2022-05-07 09:31:53 -07:00
Matthias Seitz ce3ebaefa0
chore(clippy): make clippy happy (#1230) 2022-05-06 08:15:49 -07:00
dependabot[bot] c44872f62e
chore(deps): bump thiserror from 1.0.30 to 1.0.31 (#1206)
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.30 to 1.0.31.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.30...1.0.31)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-02 11:54:22 -07:00
oblique 6faceb20d7
feat: Relax `Clone` requirements when `Arc<M>` is used (#1183)
`#[derive(Clone)]` was implementing `Clone` only if `M` was `Clone`,
however because of `Arc<M>` this can be relaxed.
2022-04-27 15:33:22 +03:00
Nicolas Gailly 9d53c73af0
Update event.rs (#1173) 2022-04-24 16:10:21 +02:00
Matthias Seitz 77bd9d49c8
test: add ethcall derive test for vec tuples (#1144) 2022-04-23 03:09:29 -07:00
Matthias Seitz 9047f96d95
feat: make stream mod public (#1160) 2022-04-21 19:29:40 +02:00
Matthias Seitz 969d4e01c0
feat: accept different middlewares for contract connect (#1159) 2022-04-21 17:05:23 +02:00
inconspicuous99 5f1f967ec1
ContractDeployer: pub deployer can modify defaults (#1156) 2022-04-19 13:20:59 -07:00
Matthias Seitz a99dd1328b
fix: support display for bytes (#1148) 2022-04-16 13:08:31 -07:00
Dan Cline 1d14f9d26e
Ensure a consistent chain ID between a signer and provider in SignerMiddleware (#1095)
* feat(middleware): fetch chainid from middleware

Require SignerMiddleware to fetch the inner middleware's to set for the
signer. SignerMiddleware now requires an instantiated middleware with
an accessible get_chainid method.

* ci: update ganache

newer ganache version is needed to specify the ganache provider chain id
in tests

* set SignerMiddleware constructor return to result

* create new method for pulling chainid

* add consistent chainid CHANGELOG entry

* remove awaits

* switch test_derive_eip712 to use consistent signer

 * remove gas estimation equality assert in deploy_and_call_contract -
   updated version of ganache no longer returns the same value for gas
   estimation and gas_used

* revert with_signer to non-async non-result

* cargo fmt

* expand SignerMiddleware::new comment

* remove doc indent
2022-04-10 10:55:30 -07:00
Matthias Seitz a43a9b8806
fix(abi): change abiarraytype trait bounds for tuple (#1079) 2022-03-24 17:40:34 -07: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
Matthias Seitz b6b5b09f4a
feat(abigen): add abi object deserializer and generate deploy function (#1030)
* feat(abigen): add abi object deserializer

* chore: rustfmt

* refactor: use enum type for deser abi

* refactor: use enum types for deser

* chore: rustfmt

* feat: add bytecode field

* feat: generate bytecode static

* feat: generate deployment function

* refactor: deploy function

* feat: add contract deployer type

* feat: make 0x prefix optional

* feat: add deploy function

* feat: add deploy example

* chore: update CHANGELOG

* chore(clippy): make clippy happy
2022-03-18 21:23:33 -07:00