DaniPopes
944ed05556
fix(abigen): handle all struct field types ( #2289 )
...
* fix(abigen): handle all struct field types
* typo
2023-03-21 10:38:23 -07:00
DaniPopes
439a0c7de0
chore(deps): bump and use workspace dependencies ( #2222 )
...
* chore: update all deps
* chore: update dependabot
* chore: separate ethers package from workspace
* chore: package metadata
* chore: use package.*.workspace = true
* fix: docs.rs build
* chore: update examples manifests
* chore: use workspace dependencies for ethers-* crates
* fix: test
* chore: use workspace dependencies for all dependencies
* chore: pin rust-crypto
* chore: add license field to example crates
* fixes
* more fixes
* fix: test
* last fixes
* fix: wasm
* fix: docs.rs build
* fix
* fix: wasm-pack error
see also https://github.com/rustwasm/wasm-pack/issues/1238
* fix: wasm deps and example
* ci: update
* fix: wasm tests
* fix: eip712 tests
* fix: windows ci
* fix
* chore: update docsrs metadata
* chore: bump version to match crates.io
* chore: rm bad release.toml config
* chore: rm release.toml
bad configuration
* chore: add exclude to workspace
* fix: middleware
* fix: solc feature flags
* chore: run cargo upgrade
* chore: update deps
* chore: update remaining deps
* undo fix
* update lock
* bump yubi
* fix: update coins-* and fix spki breaking changes
2023-03-16 12:28:35 -07:00
Matthias Seitz
72be3376e2
feat(abigen): support empty events ( #2263 )
2023-03-15 16:12:12 -07:00
DaniPopes
da743fc8b2
ci/test: improve CI jobs and tests ( #2189 )
...
* ci: move to scripts directory
* nits
* ci: improve main CI jobs
* fix: install script
* fix
* fix: use curl for windows installation
* fix: wasm typo
* tests: move to single binary
* chore: clippy
* chore: clippy
* chore: clippy
* fix: test command
* fix: quote tests
* update script
* fix: action exclude
* fix: dev deps
* fix: only run wasm in own job
* ci: add aarch64 targets
* test: rm useless test
* ci: update security audit
* ci: add deny CI
* chore: rm unused audit.toml
* chore: update geth.rs
* ci: remove unusable targets
* fix: install script path
* fix: wasm
* improve script
* fix: failing ci
* fix: contract tests
* ci: improve install script
* update middleware tests
* move integration etherscan tests to tests/ dir
* fix: eip2930 access_list field name
* add pendingtransaction must_use
* add random anvil comment
* ci: add miri job
* ci: simplify
* fixci
* Revert "add pendingtransaction must_use"
This reverts commit 770b21b4a3
.
* fix: macos script
* fix: use curl in script
* unused ci
* update script
* fix wasm
* rm_miri
* fix: signer test
* fix: wasm ci
* fix: ipc test
* fix: live celo tests
* fix: abi online source test
* fix: windows paths in test
* chore: update serial_test
* ci: run live tests separately
* fix: provider tests
* fix: unused var
* fix: feature
* fix merge
* fix: etherscan key tests
* ci: rm duplicate audit
* fix: split etherscan test ci
* fix: etherscan test
* fix: generate multiple unused ports
* fix: source test
* fix: udeps
* rm unused
2023-02-28 17:26:27 -07:00
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
Clifton King
aa008727ee
fix(abigen): contract names can be reserve words ( #1498 )
...
* fix(abigen): contract names can be reserve words
* update changelog
* clippy warning
* module names consistent with other safe_*
* update refs to generated abis
* move reserved words tests to their own fn
* added note to changelog re: module name changes
2022-07-24 03:18:24 +02: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
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
2524663674
fix(abigen): use abi signature attribute if provided ( #1409 )
2022-06-23 02:53:24 -04: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
Matthias Seitz
cffcc7bbec
chore(clippy): fix newest nightly lints ( #1298 )
2022-05-22 15:18:57 -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
77bd9d49c8
test: add ethcall derive test for vec tuples ( #1144 )
2022-04-23 03:09:29 -07:00
Matthias Seitz
a99dd1328b
fix: support display for bytes ( #1148 )
2022-04-16 13:08:31 -07:00