Commit Graph

418 Commits

Author SHA1 Message Date
DaniPopes 5edcd3765c
feat(contract): use u64 and add more chains to multicall (#2042)
* feat: add new chains and use u64

* chore: manually implement Clone and Debug to avoid trait bounds.

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-13 10:18:55 -08:00
Nick 9e559aefeb
fix(abigen): ensure correct ABI in `From` impl (#2036)
* fix(abigen): ensure correct ABI in `From` impl

`new` creates a `Contract` with the correct ABI, but the `From` impl
simply wraps the source `Contract`, which could have a completely
different ABI. In effect this was an unsafe cast, and indeed was
observed to trigger a "method not found (this should never happen)"
panic for subsequent method lookups. Implementing `From` in terms of
`new` fixes this, at the cost of an extra `Arc::clone()` (which I can't
see how to eliminate without piercing the `ethers::contract::Contract`
public API).

* Remove unnecessary `async` from test

Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>

Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
2023-01-13 10:18:17 -08:00
DaniPopes 79f27e2366
docs(abigen): rename `event_derives` to `derives` (#2018)
* chore: rename event_derives to derives

Misleading name, `event_derives` implies that only Solidity events'
structs would apply, while this is not true

* last derive

* mv

* docs

* docs

* last doc
2023-01-13 10:17:32 -08:00
DaniPopes 015eeabea8
feat(contract): return multicall pending transaction (#2044)
* feat(contract): return multicall pending transaction

* fix: tests

* docs: update CHANGELOG.md
2023-01-11 19:30:56 -08:00
DaniPopes 0187bedd11
feat(abigen): use prettyplease (#2027) 2023-01-09 07:17:22 +02:00
DaniPopes 96f4723c13
fix(abigen): tests (#2015)
* fix: methods tests

* fix: remaining paths in tests
2023-01-06 11:30:34 +02:00
DaniPopes 24b9ae2404
fix(contract): doctests (#2007) 2023-01-04 13:29:10 +02:00
Matthias Seitz 6ac3e75c6a
fix: use full path of i256 (#2000) 2023-01-03 15:12:47 +02:00
DaniPopes 97582cc346
feat(core, contract): improve `determine_ethers_crates` (#1988)
* refactor: determine_ethers_crates

* feat: improve crate resolution

* export new types and functions

* export

* fix: file name check

* fix: invert condition and check CARGO_MANIFEST_DIR

* use abigen macro to generate multicall

* chore: rm debug

* rm unnecessary .replace

* chore: clippy

* chore: clippy

* Revert "chore: clippy"

This reverts commit bd220f308d.

* Revert "chore: clippy"

This reverts commit 5550f4e856.

* add tests

* better tests, docs

* add another test

* fix docs

* refactor: add an environment struct for determining ethers crates

* fix: use fmt::Debug to escape paths

* docs: rename and rm old docs

* feat: use global path for crates

* fix: docs

* chore: move rand impl to tests mod
2023-01-03 15:11:57 +02:00
DaniPopes d272318483
chore: update all rust editions to 2021 (#1979) 2022-12-30 14:48:29 +02:00
Akram Hussein 69e0ff7301
fix: doc typo regarding Multicall::call_array (#1985) 2022-12-30 14:44:03 +02:00
dependabot[bot] a42cc9f63f
chore(deps): bump once_cell from 1.16.0 to 1.17.0 (#1987)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.16.0 to 1.17.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.16.0...v1.17.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-30 14:43:05 +02:00
DaniPopes d8d4eac3ad
fix(contract): add setter for MultiBindings' rustfmt (#1948) 2022-12-22 21:05:00 +02:00
Yiannis M 813600e6c9
fix: Add `openssl` and `rustls` feature flags in ethers-middleware (#1961)
* fix: ethers-middleware: Add `openssl` and `rustls` feature flags

* fix: ethers-contract-derive: Disable default features of ethers-contract-abigen

Without this fix, `rustls` was enabled by default even if user had `openssl` feature flag
2022-12-21 16:44:42 +02:00
Genysys 91cd6ccce8
feat: adds bscscan as abi source (#1955) 2022-12-19 17:54:24 +02:00
Andrey Kuznetsov 279aea6323
feat(contract): add_calls and call_array for multicall (#1941) 2022-12-18 13:05:02 +02:00
Andrey Kuznetsov 5bc9ee73b2
fix(contract): allow 16 calls in multicall (#1934) 2022-12-15 09:47:59 +02:00
joshieDo 92e726921a
chore: add celo chain (#1932)
* add celo chain

* add missing chain case

* clippy & fmt
2022-12-07 21:37:11 -08:00
Matthias Seitz 3dfc04f9fe
chore(clippy): make clippy happy (#1923) 2022-12-05 22:05:33 -08:00
Matthias Seitz 556821f077
chore: generate selector as hex in docs (#1924) 2022-12-05 22:05:24 -08:00
Dan Cline 80d887b67e
docs: update MRSV to 1.64 (#1926)
* IntoFuture was implemented in #1826, which means the MSRV should now
   be 1.64
2022-12-05 22:04:48 -08:00
Matthias Seitz 0ce6b107d6
fix: make version detection infallible (#1916) 2022-12-01 06:14:51 -08:00
DaniPopes 2d793edc94
fix(contract): multicall decode error (#1907)
* wip

* use empty bytes for reverts

* minor improvements

* fix test

* use is_empty

* docs

* clippy

* fix: rust-analyzer bug

* revert rename
2022-11-30 13:20:22 -08:00
Matthias Seitz 17addcfd91
fix(abigen): rm wrong brackets (#1914) 2022-11-30 13:14:40 -08:00
Georgios Konstantopoulos 78e89f8efa (cargo-release) version 1.0.2 2022-11-27 12:27:57 -08:00
Georgios Konstantopoulos 4a70dc5614 (cargo-release) version 1.0.2 2022-11-27 12:27:56 -08:00
Georgios Konstantopoulos 758a0e5b6e (cargo-release) version 1.0.2 2022-11-27 12:27:56 -08:00
Matthias Seitz c542844424
fix: handle non existing Cargo.toml edge case (#1886) 2022-11-23 07:35:55 -08:00
Matthias Seitz 84f896f47b
chore(clippy): make clippy happy (#1888) 2022-11-23 07:35:38 -08:00
Andrea Simeoni 845aa4920f
feat: Instantiate an event builder without a contract instance (#1882)
* Build an `Event` without requiring a contract instance

* Contract unit test

* Function to set Event address

* Example

* Typo to improve readability

* CHANGELOG

* cargo +nightly fmt

* FIX conflict

* review: applied Address alias

Co-authored-by: Andrea Simeoni <>
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-11-22 13:15:36 -08:00
Matthias Seitz 616bd92cc4
fix: mock ethers mod layout (#1884) 2022-11-22 13:07:51 -08:00
Will Smith 9d75e5f178
Fix: use cwd manifest (#1869)
* fix(abigen): make compatible with older rust versions

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

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

* fix: linting

* fix(abigen): use active cargo.toml over crate cargo.toml

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-11-17 11:23:10 -08:00
Will Smith a525659f5d
fix(abigen): make compatible with older rust versions (#1868)
* fix(abigen): make compatible with older rust versions

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

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

* fix: linting

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2022-11-17 10:43:41 -08:00
Georgios Konstantopoulos 74bf6fbb04 chore: fmt / clippy 2022-11-15 13:36:25 -08:00
Will Smith d47e34dc5b
fix: generated crate not using generated version (#1852)
* fix: generated crate not using generated version

* add docs

* wip: add base testcases

* fix: str formatting

* fix: add missing comma

* fix: tests and file loading

* fix: strip whitespaces

* fix: case where we are using specified crate

* linting: remove extra ref

* refactor: use toml parser over regex

* fix: add case for path and ethers-contract

* fix: add missing comma

* feat: don't check for path

* remove build-dep fallback
2022-11-15 13:00:12 -08:00
Matthias Seitz 3b52c2fc7e
fix: improve overloaded param diff matching (#1853) 2022-11-11 14:25:31 -08:00
DaniPopes 64a70cfd57
fix: failing CI (#1847)
* fix gasprice

* fmt

* docs

* fix examples typo

* fix examples

* clippy
2022-11-09 08:09:03 -08:00
dependabot[bot] 715cd5b0a6
chore(deps): bump once_cell from 1.15.0 to 1.16.0 (#1817)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.15.0 to 1.16.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.15.0...v1.16.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-07 15:45:36 -08:00
MouseLess.eth dcc8df9ae5
contract: move Event into scope for rustdoc Fixes #1676 (#1787) 2022-11-07 15:44:41 -08:00
DaniPopes fb88215a87
fix: rustdoc errors (#1808)
* fix: rustdoc warnings

* fix: partially re-run abigen for multicall_contract

* fix

* fix test

* fix: rustdoc nightly warnings
2022-11-07 15:43:23 -08:00
DaniPopes debd6fec3d
chore: clippy (#1812)
* chore: clippy

* fmt
2022-11-07 15:43:11 -08:00
Lev Khoroshansky cfc301d6b1
Impl `IntoFuture` for `ContractCall` (#1826) 2022-11-06 17:54:18 -08:00
snoopy-mev 14e038860b
fix Build issue (#1819) 2022-10-31 09:56:05 -07:00
Alejandro Banzas 50c7ff1d8e
adding chiado support (#1811) 2022-10-31 09:01:34 -07:00
Georgios Konstantopoulos 87b10bdf24 Revert "chore: disable dev deps for release"
This reverts commit d8a1be6fb1.
2022-10-25 11:12:50 -07:00
Georgios Konstantopoulos d8a1be6fb1 chore: disable dev deps for release 2022-10-25 11:04:28 -07:00
Georgios Konstantopoulos 9ec8d9cdad (cargo-release) version 1.0.0 2022-10-25 11:03:00 -07:00
Georgios Konstantopoulos ab24c5558a (cargo-release) version 1.0.0 2022-10-25 11:03:00 -07:00
Georgios Konstantopoulos e34c487a85 (cargo-release) version 1.0.0 2022-10-25 11:03:00 -07:00
Georgios Konstantopoulos aac5fab028 (cargo-release) version 1.0.0 2022-10-25 11:03:00 -07:00
Georgios Konstantopoulos fc54d8f11e (cargo-release) version 1.0.0 2022-10-25 11:03:00 -07:00
Georgios Konstantopoulos f27078b317 (cargo-release) version 1.0.0 2022-10-25 11:02:59 -07:00
Georgios Konstantopoulos 16a207b0bd (cargo-release) version 1.0.0 2022-10-25 11:02:59 -07:00
Georgios Konstantopoulos 79024ebbe9 (cargo-release) version 1.0.0 2022-10-25 11:02:59 -07:00
Todsaporn Banjerdkit 84c1c3f2cd
docs: fix typo annonated to annotated (#1790) 2022-10-17 06:59:03 -07:00
Matthias Seitz ef22e05a9a
fix(abigen): remove trailing test,script markers (#1776) 2022-10-11 10:48:30 -07:00
Matthias Seitz 12548b5abf
fix: skip json abi formatting (#1777) 2022-10-11 08:10:31 -07:00
DaniPopes d2c9db5ae9
fix(core, etherscan): RawAbi and Abi (#1757) 2022-09-29 11:15:04 -07:00
DaniPopes 5c762c44d7
fmt: all (#1751)
* fmt: all

* fmt: eol
2022-09-28 11:58:26 -07:00
DaniPopes 0734fce48c
fix(contract, signers): cyclic deps (#1730)
* fix(signers): cyclic deps

* fix(contract): cyclic deps

* fix: feature
2022-09-24 12:41:04 -07:00
DaniPopes 4ed46089d8
contract: return `Arc<M>` instead of `&M` (#1731)
* return Arc<M> instead of &M

* docs
2022-09-24 12:40:08 -07:00
DaniPopes 733c5d3dfd
fix(contract): relax Middleware trait bound for getters (#1728)
* wip

* fix(contract): relax Middleware trait bound for getters

* chore: clippy

* move

* fix: multicall
2022-09-23 17:32:24 -07:00
dependabot[bot] 139b4ae818
chore(deps): bump once_cell from 1.14.0 to 1.15.0 (#1725)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.14.0 to 1.15.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.14.0...v1.15.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-21 09:57:22 -07:00
DaniPopes db75e3628e
feat(core): add utility methods to NameOrAddress (#1720)
* feat: NameOrAddress impls

* feat: add to_addr to TypedTransaction

* fix: use NameOrAddress for ens

* chore: clippy

* dont clone
2022-09-19 10:51:04 -07:00
DaniPopes 3926749213
docs: add MSRV (#1712) 2022-09-18 08:45:45 -07:00
DaniPopes c341f31fc4
chore: add abigen to default features (#1684)
* chore: add abigen to default features

* docs: update CHANGELOG.md
2022-09-09 16:19:29 -07:00
Matthias Seitz 513ed588ca
chore: export abi related types (#1677)
* chore: export abi related types

* feat: expose function
2022-09-08 09:07:38 -07:00
Matthias Seitz 0e7f46b03d
feat(abigen): subsitute structs in event bindings (#1674)
* fix(abigen): handle event defaults

* feat(abigen): subsitute structs in event bindings

* update changelog

* chore: rustfmt

* fix broken tests

* chore(clippy): make clippy happy
2022-09-07 09:14:13 -07:00
dependabot[bot] 96cc8242ee
chore(deps): bump once_cell from 1.13.1 to 1.14.0 (#1669)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.13.1 to 1.14.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.13.1...v1.14.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>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-05 09:55:30 -07:00
DaniPopes 72449c09e1
feat(contract): add extra Multicall helper methods (#1666)
* feat(contract): add extra Multicall helper methods

* docs: update CHANGELOG.md

* normalize helper methods' names
2022-09-05 09:54:49 -07:00
Matthias Seitz 6a86d4ff22
chore(clippy): make clippy happy (#1659) 2022-09-04 10:57:52 -07:00
Matthias Seitz 430c56ee4a
fix(abigen): only derive default of no arrays len > 32 (#1653)
* fix(abigen): only derive default of no arrays len > 32

* impl default
2022-08-31 08:24:21 -07:00
Danilo Tuler ea8bcd11be
feat: add support for Optimism Goerli (#1641) 2022-08-30 09:45:43 -07:00
Matthias Seitz 792d415845
fix: set chain id explicitly (#1647) 2022-08-30 09:45:36 -07:00
Matthias Seitz 6e6d827f1f
test: add large tuple test (#1642) 2022-08-29 17:03:12 -07:00
DaniPopes edc00054b1
feat(contract): update Multicall to Multicall3 (#1584)
* chore: update multicall_contract binding

* feat: update multicall_contract.rs to Multicall3

* fix multicall_contract.rs exports

* update test Multicall.sol contract

* feat: update Multicall to Multicall3

* update exports

* update tests

* perf: use aggregate3 when no value is being sent

* feat: handle revert data

* test: add multicall v2 and v3 tests

* fix: clippy

* docs: add documentation, improve comments

* docs: add more documentation

* fix: solidity minimum version for Multicall.sol

* fix: multicall_contract.rs imports

* docs: add explanation for previous commit

* docs

* docs

* fix: remove unused re-export, feature gate Multicall

* fix: address review

* chore: improve error handling

* chore: export MulticallError

* docs
2022-08-28 12:18:58 -07:00
Matthias Seitz 0b04ffe787
feat: add uint8 type (#1639)
* feat: add uint8 type

* update changelog

* derive default

* fix: failing test
2022-08-28 12:17:48 -07:00
Clifton King b1124441ec
feat(abigen): descriptive deserialization errors (#1633)
* feat(abigen): descriptive deserialization errors

* update changelog

* map_err -> wrap_err
2022-08-23 17:54:56 -07:00
Nicolas Gotchac 68fba606c2
Don't auto-generate an AccessList when sending/filling a tx (#1619)
Add an optionnal `block` parameter to the gas estimation method
2022-08-19 14:33:12 -07:00
Matthias Seitz c51dcffec6
test: comment out etherscan abigen! test (#1616) 2022-08-19 08:18:03 -07:00
dependabot[bot] 4655c44481
chore(deps): bump once_cell from 1.13.0 to 1.13.1 (#1606)
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.13.0 to 1.13.1.
- [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.13.0...v1.13.1)

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

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-17 14:13:59 -07:00
Matthias Seitz 43b8bb5251
fix(abigen): use correct str Regex (#1566) 2022-08-04 10:03:43 -07:00
Matthias Seitz 52ead7c645
chore(abigen): reexport filter (#1565) 2022-08-04 10:03:25 -07:00
Matthias Seitz e6c1927a1c
feat(abigen): add contract filter (#1564)
* feat(abigen): add contract filter

* refactor: move to top of file

* add tests

* update changelog
2022-08-04 08:22:00 -07:00
Matthias Seitz 27a184db45
feat: add EthError trait and derive (#1549)
* feat: add EthError trait and derive

* update changelog
2022-08-02 11:03:52 -07:00
Matthias Seitz 6bb25e5228
fix(abigen): resolve output struct types correctly (#1546)
* fix(abigen): resolve output struct types correctly

* chore(clippy): make clippy happy
2022-08-01 09:45:31 -07:00
Matthias Seitz c75608eda1
ci: rm pinned nightly (#1541)
* ci: rm pinned nightly

* chore(clippy): make clippy happy
2022-07-31 19:00:31 -07:00
Matthias Seitz 1f69ec7679
revert: add back dev-deps (#1532)
* Revert "disable dev deps"

This reverts commit 97bdcb9d82.

* fix: add back removed dev-deps
2022-07-28 17:36:22 -07:00
Georgios Konstantopoulos 1ef7735e3d MBlockerge branch 'master' of github.com:gakonst/ethers-rs 2022-07-28 11:45:59 -07:00
Matthias Seitz b354102073
fix: use fully qualified path for Result (#1527) 2022-07-28 11:06:06 -07:00
Georgios Konstantopoulos 6f22e67044 (cargo-release) version 0.17.0 2022-07-28 10:58:50 -07:00
Georgios Konstantopoulos 3fce0cca25 (cargo-release) version 0.17.0 2022-07-28 10:58:50 -07:00
Georgios Konstantopoulos 842c321678 (cargo-release) version 0.17.0 2022-07-28 10:58:50 -07:00
Georgios Konstantopoulos 2b7d035324 (cargo-release) version 0.17.0 2022-07-28 10:58:49 -07:00
Georgios Konstantopoulos 8d3e796b47 (cargo-release) version 0.17.0 2022-07-28 10:58:49 -07:00
Georgios Konstantopoulos de2ed3391d (cargo-release) version 0.17.0 2022-07-28 10:58:49 -07:00
Georgios Konstantopoulos 97bdcb9d82 disable dev deps 2022-07-28 10:57:38 -07:00
Clifton King c418f4ef34
fix(abigen): abigen feature required for bindings (#1508)
* fix(abigen): abigen feature required for bindings

traits such as ethers::contract::EthDisplay require abigen

* update changelog

* abigen now uses re-exported version of serde_json
2022-07-26 08:28:39 -07:00
Matthias Seitz 6b713958d1
feat: bump abi/token tuple limit (#1506) 2022-07-26 08:27:19 -07:00
Matthias Seitz d22fb2bd0b
test: update broken test and use it module for ethers-contract (#1502)
* refactor: make ethers-contract tests it module

* update failing test

* assert console is generated

* chore(clippy): make clippy happy

* update broken test

* move sol files back

* chore: rustfmt

* chore(clippy): make clippy happy
2022-07-24 14:41:06 -07:00