James Prestwich
7e4e8e200a
refactor: replace anyhow with eyre ( #858 )
...
* refactor: replace anyhow with eyre
* chore: update changelog
* refactor: simplify bail logic for duplicate method signatures
* refactor: simplify bail logic throughout
* refactor: use eyre::ensure
* refactor: more idiomatic use of eyre
2022-02-02 22:44:53 +02:00
James Prestwich
5f68bf52d2
refactor: MultiAbigen rework ( #852 )
...
* refactor: MultiAbigen rework
* docs: update ensure family docs
* feature: FromIterator for MultiAbigen
* refactor: cleaner instantiation of Abigen from files
* docs: update examples to use build step
* chore: add 854 to changelog
* lint: clippy
* Update ethers-contract/ethers-contract-abigen/src/lib.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2022-02-02 15:57:31 +02:00
thasarito
8e0eddbb57
feat: change abi_str to abi from contract in for hardhat abi ( #740 )
2022-01-08 11:17:36 +02:00
Matthias Seitz
2a98b34195
feat(abigen): search json recursively ( #733 )
2021-12-25 06:51:44 +02:00
Matthias Seitz
c7cf5bedbd
feat(abigen): add MultiAbigen to generate multiple contract bindings ( #724 )
...
* feat(abigen): add MultiAbigen to generate multiple contract bindings
* docs: more docs
* chore: update changelog
* rustmft
* chore: add json extension check
2021-12-23 16:38:07 +02:00
Matthias Seitz
1f4ecc6e75
feat(abigen): add provided derives for call and event enums ( #721 )
...
* feat(abigen): add provided derives for call and event enums
* chore: update CHANGELOG
2021-12-20 23:24:21 +02:00
Georgios Konstantopoulos
be468bcf32
fix(abigen): use lib for parsing paths correctly in windows
2021-12-19 22:06:38 +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
Matthias Seitz
e24117a1e1
chore(clippy): make clippy happy ( #705 )
2021-12-19 06:28:38 +02:00
Matthias Seitz
0769174b40
chore: allow unused http_get ( #674 )
...
* chore: allow unused http_get
* Update ethers-contract/ethers-contract-abigen/src/util.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* chore: update cfgs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-12-11 02:37:18 -07:00
Ivan Porto Carrero
a8b0885c25
add support for polygonscan and snowtrace for abigen ( #666 )
2021-12-10 09:05:45 -07:00
Matthias Seitz
59cf991828
feat(abigen): use structs for outputs ( #664 )
...
* feat(abigen): use structs for outputs
* update CHANGELOG
* make clippy happy
* fix lints
2021-12-09 16:00:59 -07:00
Matthias Seitz
279a2c316c
feat(abigen): support overloaded functions with different casing ( #650 )
...
* fix: support overloaded functions with different casing
* chore: fmt
* chore: typos
* feat: better method alias handling
2021-12-05 12:36:49 -08:00
Matthias Seitz
5dfc1bd171
fix: source parsing for local paths ( #633 )
2021-11-29 19:02:11 +02:00
Matthias Seitz
e15252dd8f
fix: conditional http support ( #632 )
...
* fix: conditional http support
* chore: update changelog
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-11-29 16:31:39 +02:00
Matthias Seitz
f6e803b4eb
fix: use CARGO_MANIFEST_DIR as root for relative paths in abigen! ( #631 )
...
* feat: resolve env vars in abigen paths
* docs: add env interpolation note
* chore: docs
2021-11-29 15:37:11 +02:00
Matthias Seitz
9b6cc37ca0
fix: method deduplication ( #619 )
...
* fix: method deduplication
* fix: handle name conflicts in parameters
* fix: order of numerated aliases
2021-11-27 14:31:36 +02:00
Matthias Seitz
2c30468b70
fix(codec)!: ambiguity unit8[] and bytes ( #613 )
...
* fix: unit8 encoding
* feat: use ethers::types::Bytes for solidity bytes type
* feat: add const generic from impls
* fix: failing tests
* fix: make compatible with bytes
* update changelog
* make compatible with encoding changes
* chore rm write to file
2021-11-24 22:15:17 +02:00
Matthias Seitz
d53ca0ea56
feat: make reqwest optional but enabled by default ( #580 )
...
* feat: make reqwest optional but enabled by default
* update changelog
2021-11-14 14:27:05 +02:00
Sebastian Martinez
e72636210c
Refactor crate determination in new ethers-macro crate ( #555 )
...
* fix: compute ethers-core path in derive eip712
Co-authored-by: Ryan <ryan.tate@fieldresponder.io>
* refactor: move crate determination to ethers-macro
* docs: update fmt command
* fix: change cargo_metadata dep to optional
Co-authored-by: Ryan <ryan.tate@fieldresponder.io>
2021-11-05 15:00:01 +02:00
David Tolnay
325b752144
Fix missing fmt argument in error message ( #552 )
...
* Clean up strange non-multiple-of-4 indentation in Source::with_root
* Fix missing fmt argument in error message
* Add changelog entry for PR 552
2021-11-03 10:03:42 +02:00
Matthias Seitz
a07838eaf5
fix: preserve underscores in case of collisions ( #548 )
...
* fix: overloaded with same type arguments
* fix: numerate overloaded functions
* docs: add note
* chore: update changelog
* style: rename vars
* fix: draft underscore fix
* fix: underscore aliases
2021-11-01 01:06:31 +02:00
Matthias Seitz
4123823383
feat: enumerate overloaded functions if they are nameless ( #545 )
...
* fix: overloaded with same type arguments
* fix: numerate overloaded functions
* docs: add note
* chore: update changelog
* style: rename vars
2021-10-31 13:24:02 +02:00
Matthias Seitz
dcf20022c6
chore: add rustfmt.toml ( #537 )
...
* chore: add rustfmt.toml
* rustfmt
* chore: Update readme with fmt info
* ci: update ci
* chore: rustfmt
* rustfmt
* rustfmt
* ci: install libudev
* chore(clippy): make clippy happy
* chore(clippy): make clippy happy
* revert ci
* ci: install libudev
2021-10-29 14:29:35 +02:00
Matthias Seitz
eede86df41
feat: add abi code trait impls ( #531 )
...
* feat: use const generics for array tokenize
* feat: add abi encode decode impls
* test: add some tests
* chore: move abi codec to core
* update changelog
2021-10-28 01:07:24 +03:00
Matthias Seitz
fb4d9a9ef1
feat: function call enums EthCall macro and more ( #517 )
...
* fix: do not sort event variants
* style: use deref over clone
* style: refactor some stuff
* feat: add ethcall trait
* feat: include in abigen
* feat: add bare bones eth call derive
* feat: impl EthCall derive
* feat: support enums
* feat: use abigen enum derive
* fix: concrete abi and map errors
* test: first call test
* rustfmt
* chore: use correct trait name on error
* feat: derive display for call structs
* feat: add from conversion
* test: add convert test
* chore: docs and test
* chore: update changelog
* cargo fix
* feat: add unit type derive support and more test
* chore: patch ethabi
* chore: rm ethabi patch
* feat: add encode/decode trait impls
* style: use AsRef<[u8]>
* Update ethers-contract/ethers-contract-abigen/src/contract/methods.rs
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
* style: reindent macro body
* test: add tuple event test
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-10-18 13:28:38 +03:00
Matthias Seitz
bef7960a2b
feat: add display support for events ( #513 )
...
* chore: move proc macro implementation to separate modules
* feat: add display derive macro
* chore: reexport hex
* feat: add EthDisplay
* test: add display test
* fix: use ? op
* feat: derive EthDisplay in abigen
* feat: derive display for event enum
* chore: update changelog
2021-10-16 16:42:17 +03:00
Matthias Seitz
44bb02f857
feat: substitute overloaded functions ( #501 )
...
* feat: substitute overloaded functions
* chore: update changelog
2021-10-13 12:53:43 +03:00
Matthias Seitz
ea8551da4c
feat: add support for multiple contract definitions in abigen macro ( #498 )
...
* feat: support multiple contracts in abigen
* fix: use correct events decl
* fix: parsing and tests
* test: add test
* chore: update changelog
2021-10-11 17:18:09 +03:00
Matthias Seitz
6216b2e4a2
chore: remove unused && cargo fix ( #496 )
...
* chore: rm allows
* chore: cargo fix
2021-10-10 09:31:34 +01:00
georgewhewell
7d2e900cbb
fix: allow clippy::redundant_clone and clippy::type_complexity in abigen ( #491 )
2021-10-08 15:14:16 +01:00
Alexey Shekhirin
1f17788133
feat(contract, abigen): support artifact format in proc macro ( #480 )
...
* feat(contract, abigen): support artifact format in proc macro
* don't change source abi_str
2021-10-02 20:16:55 +03:00
Matthias Seitz
42bf98330b
feat: support human readable struct inputs ( #482 )
...
* feat: keep track of custom types in abi parser
* feat: use internal structs for abi parsers
* test: add human readable struct input test
* chore: update changelog
* fix conflicts
* fix: remove eprintln
* make clippy happy
* make clippy happy
* rustfmt
* make clippy happy
2021-10-02 17:34:01 +03:00
Alexey Shekhirin
4036f45f3d
feat(contract, abigen): support Hardhat ABI format ( #478 )
2021-09-30 11:27:24 +03:00
Matthias Seitz
32c75ab1f5
fix: cleanup lock file after exec cargo metadata ( #431 )
...
* fix: cleanup lock file after exec cargo metadata
* fix typos
2021-09-05 13:19:08 +03:00
TannrA
32ad5a6abd
Event aliasing for contract bindings ( #425 )
...
* contracts: enable event aliases for Abigen
* contract: unit tests for event aliases
* contract: cleanup expand_event function
* Address pr suggestions
* contracts: remove unnecessary clone
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
* Make clippy happy
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
2021-09-03 18:57:40 +03:00
Georgios Konstantopoulos
6cc20688d0
fix(abigen): generate correct imports depending on ethers crate usage ( #413 )
2021-08-28 21:53:01 +03:00
Matthias Seitz
ea566663d4
feat: wasm support ( #390 )
...
* feat: partial wasm32 support
* make compile for wasm32
* feat: att async-trait attr
* make compatible with wasm
* add type alias for archs
* rustfmt
* add wasm ci
* make compile with wasm-pack test
* make compile with wasm-pack test
* make compile with wasm-pack test
* make compile with wasm-pack test
* ci: disable wasmpack
* feat: use wasm timer delay
* feat: add wasm provider
* rustfmt
* misc refactor
* add wasm example
* make example a directory
* untrack error log
* move profile to root
* fix unused imports
* ci: enable wasm-pack test
* style: unify websocket implementations
* fix: typos
* fix: make policy compatible with wasm target
* chore: do not include ethers-wasm example as top level workspace member
* chore: modify wasm32 dependencies
* chore: make note about getrandom
Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-08-23 12:56:44 +03:00
Georgios Konstantopoulos
6cb7cac675
Release: 0.4 ( #382 )
...
* fix(abigen): use `no_deps` to avoid touching a Cargo.lock
* fix: use once_cell default features
* release: publish versions
core/providers/signers: 0.4.6
contract: 0.4.7
middleware: 0.4.8
ethers: 0.4.0
2021-08-16 11:54:12 +03:00
Matthias Seitz
ba5f650dec
feat: generate rust structs from solidity JSON ABI ( #378 )
...
* add raw abi model
* feat: simplify struct representation
* feat: add struct generation
* use structs as function input
* fix: failing test
* add example
* rustfmt
2021-08-16 10:29:44 +03:00
Matthias Seitz
109a6b85ee
fix: only wrap single struct param in a tuple ( #368 )
2021-08-11 03:21:30 +03:00
Georgios Konstantopoulos
746d8b7bf2
chore(abigen): allow clippy enum variant names ( #364 )
2021-08-06 15:47:57 +03:00
Matthias Seitz
b0b4f4e09e
feat: detect ethers crate paths in derive macros ( #366 )
...
* feat: determine ethers crate name using metadata
* use crate detection
2021-08-06 15:47:17 +03:00
Matthias Seitz
9d38d1a412
fix: convert tuple arguments to tuples ( #363 )
2021-08-02 18:24:22 +02:00
Matthias Seitz
ed83223b93
cargo clippy --fix ( #346 )
2021-07-24 21:53:40 +03:00
Georgios Konstantopoulos
33a39cff86
fix: remove dependency on curl ( #285 )
2021-05-01 21:26:37 +03:00
Matthias Seitz
32b4e9e3f5
fix(abigen): add indexed attribute when deriving EthEvent ( #255 )
...
* fix(abigen): add indexed attribute when deriving EthEvent
* chore(clippy): make clippy happy
2021-04-02 08:46:39 +03:00
Matthias Seitz
816c5fc071
feat(abigen): extend ethevent trait methods and decoding ( #239 )
...
* feat: extend EthEvent with decode_log method and support indexed proc
macro attributes
* test: check that ethevent proc macro attributes compile
* docs: document EthEvent proc macro attributes and add example
* refactor: change decode_log to take a reference
* refactor: use ethers as fully qualified path
* feat: add events enum generation
* feat: introduce EthLogDecode trait
* feat: generate EthLogDecode implementations
* refactor: use fully qualified syntax during abigen
* fix: switch to new Event builder
* fix: make test compile again
* test: update failing tests
* refactor: rename event function
* chore(clippy): make clippy happy
* fix: rename the event correctly
* fix: add missing indexed attribute
* Revert "fix: rename the event correctly"
This reverts commit 03eabc3ead
.
* fix: make indexed names optional
* fix: dsproxy name
* fix: rename ethers top level module imports
2021-03-19 17:44:59 +02:00
Matthias Seitz
57010c1c60
feat(abigen): include ethevent proc macro in abigen code gen workflow ( #232 )
...
* fix: make EthEvent name method a trait method
* refactor: make expand methods members of Context
* fix: make AbiParser parsing non consumeable
* feat: add struct expanding
* feat: use derive(EthEvent) in abigen workflow
* test: check EthEvent in abigen macro
* test: make test compile again
* refactor: simplify and optimize abi parsing from single str
* test: add human readable abigen tests
2021-03-16 21:37:19 +02:00
James Prestwich
3e5f7a795f
feature: report path on failed abigen load ( #205 )
2021-02-22 20:35:40 +02:00