James Prestwich
ded611e714
feature: contract revert trait ( #2182 )
...
* feature: contract revert trait
* fix: proper link to abigen in docs
* fix: don't borrow Bytes, better valid_slector
* fix: mattsse's nits
* opt: hardcode selector for Error(string)
* fix: add docstring to RevertString
* docs: enhance docs on ContractRevert
* chore: add doc on decoding error reverts as strings
* docs: more docstring on ContractRevert
* fix: fix try_into invocation
---------
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-02-28 00:59:32 -07:00
James Prestwich
2090bf560e
Expose contract revert errors in the ContractError struct ( #2172 )
...
* feature: spelunk for revert errors
* feature: bubble up revert to contract error
* feature: bubble up reverts to multicall
* fix: correctly remove signature when deserializing EthErrors
* chore: remove redundant test
* chore: clippy
* fix: allow empty revert string
* docs: add all missing rustdoc for ethers-contract
* chore: rustfmt
* chore: Changelog
* fix: danipope test comment
2023-02-22 14:52:25 -08:00
DaniPopes
e55b8116f3
feat(contract): improve Multicall result handling ( #2164 )
...
* nits
* clippy
* ordering
* move
* chore: edition 2021
* chore: detokenize nit
* feat(contract): improve Multicall result handling
* docs: update CHANGELOG.md
* feat: make fields public
* chore: clippy
2023-02-20 18:50:28 -08:00
DaniPopes
3732de844c
fix(abigen): builtin trait derives ( #2170 )
...
* fix(abigen): builtin trait derives
* refactor: EthDisplay
* feat(derive): improve type detection
* chore: cleanup
* chore: edition 2021
* chore: clippy
* chore: use unreachable
2023-02-20 16:27:43 -08:00
James Prestwich
ef6e7f41a1
Refactor: organize ethers-providers ( #2159 )
...
* feature: bubble up jsonrpc error response via trait
* refactor: ClientError to TransportError
* refactor: FromErr to MiddlewareError
* tests: fix test with middlewareerror
* fix: doctest
* fix: fix custom middleware example
* feature: as_serde_error
* docs: for error traits
* fix: custom example and unnecessary ref
* refactor: in progress organization
* refactor: continue cleaning up
* refactor: finish changing crate layout
* refactor: fix test imports
* refactor: move convenience impl into toolbox
* chore: changelog
* docs: make them suck less
* fix: remove deprecation
* fix: DaniPopes's nits
2023-02-20 15:55:36 -08:00
Georgios Konstantopoulos
8d511dbd64
chore: fmt
2023-02-18 13:22:58 -08:00
frankie
9733b16afc
Include deployed bytecode in abigen output ( #2163 )
...
* test
* sanity check
2023-02-18 12:53:39 -08:00
James Prestwich
0c16eb971d
Prestwich/event no lifetime ( #2105 )
...
* refactor(breaking): remove lifetime from Event
* fix: example updated to use new event
2023-02-13 17:14:38 -08:00
Matthias Seitz
e970f58a8a
fix(abigen): use event name from abi attribute ( #2144 )
...
* fix(abigen): use event name from abi attribute
* rustfmt
2023-02-13 17:11:13 -08:00
James Prestwich
0236de8d2a
refactor: make contract abstract over Borrow ( #2082 )
...
* refactor: contract abstract over Borrow
* refactor: preserve old connect usage
* nit: remove commented out modules
* chore: changelog
* test: add compile check to tests
* docs: add usage note to doc and make sure contractcall is visible
* fix: test compilation
* refactor: ContractCallInternal -> FunctionCall, ContractInternal -> ContractInstance
* fix: Send IntoFuture
* nit: must-use on connect
* docs: remove deprecation warning in docstrings for type aliases
* Update ethers-contract/src/call.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
---------
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-02-06 13:27:01 -08:00
wigy
7da559bbed
fix(provider): Add Send bound to return type of JsonRpcClient::request ( #2072 )
2023-01-27 16:57:08 -05:00
Guillaume Malette
83b12a80e3
Make ContractCall IntoFuture implement Send ( #2083 )
...
* fix(contracts): Add a failing test showing that ContractCall IntoFuture is not Send
* fix(contracts): Add Send bound for IntoFuture implementation of ContractCall
* chore: update CHAGELOG
* chore: fmt
---------
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2023-01-27 14:54:49 -05: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
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
Andrey Kuznetsov
279aea6323
feat(contract): add_calls and call_array for multicall ( #1941 )
2022-12-18 13:05:02 +02: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
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
3b52c2fc7e
fix: improve overloaded param diff matching ( #1853 )
2022-11-11 14:25:31 -08:00
DaniPopes
debd6fec3d
chore: clippy ( #1812 )
...
* chore: clippy
* fmt
2022-11-07 15:43:11 -08: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
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
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
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
Matthias Seitz
c51dcffec6
test: comment out etherscan abigen! test ( #1616 )
2022-08-19 08:18:03 -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
b354102073
fix: use fully qualified path for Result ( #1527 )
2022-07-28 11:06:06 -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