Commit Graph

119 Commits

Author SHA1 Message Date
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
Akram Hussein 69e0ff7301
fix: doc typo regarding Multicall::call_array (#1985) 2022-12-30 14:44:03 +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
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 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
DaniPopes 64a70cfd57
fix: failing CI (#1847)
* fix gasprice

* fmt

* docs

* fix examples typo

* fix examples

* clippy
2022-11-09 08:09:03 -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
Todsaporn Banjerdkit 84c1c3f2cd
docs: fix typo annonated to annotated (#1790) 2022-10-17 06:59:03 -07:00
DaniPopes d2c9db5ae9
fix(core, etherscan): RawAbi and Abi (#1757) 2022-09-29 11:15: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
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
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
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
Danilo Tuler ea8bcd11be
feat: add support for Optimism Goerli (#1641) 2022-08-30 09:45:43 -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
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 52ead7c645
chore(abigen): reexport filter (#1565) 2022-08-04 10:03:25 -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 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
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 c31eec5008
docs(contract): improve EventStream docs (#1450) 2022-07-04 11:47:11 -07: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
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 cffcc7bbec
chore(clippy): fix newest nightly lints (#1298) 2022-05-22 15:18:57 -07:00
Meet Mangukiya 5d604edd5c
feat(ContractDeployer): add tx builder methods (#1289) 2022-05-21 17:48:41 -07:00
Matthias Seitz ce3ebaefa0
chore(clippy): make clippy happy (#1230) 2022-05-06 08:15:49 -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 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 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
Georgios Konstantopoulos 9626cc1335
feat: add contract interface helpers (#982)
* feat(contract): add helpers for decoding as raw Token

This allows decoding Events and Function data without knowing the return type

* feat(contract): add helpers for decoding function outputs

* chore(contract): remove redundant generic param
2022-03-02 15:58:18 +02:00
georgewhewell ce8c671218
Add Ftm multicall addresses (#927)
* add multicall addresses for fantom

* update changelog

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-18 16:05:08 +02:00
Jim e3f0621d43
Expose New `call_raw` API that permits MultiCalls without Detokenization (#915)
* Add `call_raw` method that forgoes detokenization for MultiCall. Have `call` wrap around `call_raw` permitting user to handle detokenization themselves if they wish

* Improve documentation: Add details to the documentation example that informs the user of their responsibility to detokenize results
2022-02-15 22:38:01 +02:00
Mark Tyneway 100f121202
feat(ethers-contract): add `send_with_receipt` to `Deployer` (#865)
* feat(ethers-contract): add `send_with_receipt` to `Deployer`

The `Deployer` is used to deploy contracts and its `send`
function returns an attached instance of a `Contract`.
There is no way to know the transaction hash of the
deployment transaction, so this commit adds another
method `send_with_receipt` that returns an attached
`Contract` as well as a `TransactionReceipt`.

* changelog: update

* tests: call `send_with_receipt` in tests

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-05 16:37:09 +02:00
Rohit Narurkar af94479d81
fix: derive serde Ser and De for log metadata (#823) 2022-01-21 14:30:57 +02:00
thasarito 183c0d21c4
reexport multiabigen (#731) 2021-12-24 16:34:18 +02:00
Matthias Seitz 11406ee8d4
feat: add EventStream::select to combine multiple event streams (#725)
* feat: add EventStream::select to combine multiple event streams

* chore: update changelog
2021-12-23 21:23:55 +02:00
Matthias Seitz 3c164bc9bf
feat(abigen): add EthAbiCodec proc macro (#704)
* feat(abigen): add EthAbiCodec proc macro

* rustfmt

* fix: tuple codec
2021-12-19 16:40:17 +02:00