Commit Graph

33 Commits

Author SHA1 Message Date
Matthias Seitz f5ef8149e5
feat(abigen): support shared type during multiabigen (#959)
* refactor: move type deduplication to abigen crate

* refactor: separate expansion process

* feat: support shared type during multiabigen

* test: add type deduplication test

* chore: rustfmt

* typos

* chore(clippy): make clippy happy

* chore: add anonymous field
2022-02-24 22:09:08 +02:00
Matthias Seitz d4f8984f59
chore(deps): bump ethabi master (#787) 2022-01-13 02:58:11 +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 2a3fcbbb40
feat(abigen): use AbiType when parsing Function abi signature fails at compile time (#647)
* refactor: improved from token impl

* feat: add AbiType support

* feat: no need for expect

* feat: add missing abiarraytype impl

* test: add struct derive test

* chore: rustfmt

* chore: update changelog

* chore: rustfmt
2021-12-04 06:19:00 +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
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
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 5779a3cdaf
feat: add ethabitype support for solidity style enums (#526)
* feat: tokenize solidity like enums

* test: add enum test

* rustfmt
2021-10-24 20:58:41 +03:00
Matthias Seitz b072b05515
fix: use debug fmt for nested arrays (#527) 2021-10-24 17:02:06 +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 c3528b78db
fix: use syn::Index for tuple access (#515)
* fix: use syn::Index for tuple access

* rustfmt
2021-10-16 19:45:42 +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 4608ddd9fa
chore: move proc macro implementation to separate modules (#510) 2021-10-16 11:19:42 +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
Georgios Konstantopoulos 77bc5aa30f
feat: expand solc capabilities / chore: update ethabi (#445)
* chore: use ethabi with bumped ethereum-types

* fix: do not use internal type in human readable abi

* fix: do not use internal type in abigen

* feat(solc): save the runtime bytecode

* feat: implement serde for CompiledContract

* feat: allow overriding solc binary path

* feat: expose providing raw file paths

* feat: do not set evm versions on old solc

* chore: use upstream ethabi
2021-09-13 15:35:50 +03:00
Matthias Seitz 8b5f4bfa81
fix: always treat abi type structs as tuples (#417)
* fix: always treat abi type structs as tuples

* fix: keep decoding for single field structs

* feat: unify event and struct encoding
2021-09-02 19:16:39 +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 ed83223b93
cargo clippy --fix (#346) 2021-07-24 21:53:40 +03:00
Matthias Seitz b5a2ee9a3d
fix: event decoding for events with zero or one parameters (#300)
* fix: support events with zero or one paramaters

* test: test against events with zero and one parameter
2021-05-28 10:44:42 +03:00
Matthias Seitz ac6d4d70a6
fix: off by one error during event decoding (#296) 2021-05-24 11:52:21 +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
Matthias Seitz 0c18f9b32c
fix: make EthEvent abi attribute work for tuple inputs (#229)
* fix: try to parse the provided abi as tuple

* test: validate ethevent abi attribute

* docs: document ethevent abi attribute
2021-03-16 10:12:32 +02:00
Matthias Seitz 7b10b76e20
feat: add EthEvent proc macro derive support (#227)
* refactor: extract error module and use error macros

* feat: add solidity struct parser

* refactor: add AbiParse and support struct parsing

* test: add more struct parsing tests

* feat: add EthAbiType proc macro derive for deriving Tokenizable trait

* test: add EthAbiType derive tests

* refactor: extract tokenizeable implementation in separate method

* chore(test): use EthAbiType derive instead implementing Detokenizeable

* feat: introduce EthEvent trait

* feat: add EthEvent proc macro derive support

* test: add proc macro derive tests

* chore: rustfmt

Co-authored-by: Georgios Konstantopoulos <me@gakonst.com>
2021-03-15 13:59:52 +02:00
Georgios Konstantopoulos 29a3a16085
chore: upgrade to latest ethtypes (#137)
* chore: upgrade to latest ethtypes

* chore: fix doctests
2021-01-10 14:03:37 +02:00
Georgios Konstantopoulos 4ff466a593
fix intradoc links and add missing cargo metadata (#29) 2020-06-20 16:55:07 +03:00
Georgios Konstantopoulos 570b45eb10
ABI Encoder v2 + ABI Spec v6.6 (#17)
* feat(core): update ethabi and enable more Toeknize impls

* feat(contract/abigen): implement simple AbiEncoderV2

* tests(ethers): add abigen example

* fix(core): fix abi tests

* chore: make clippy happy
2020-06-16 15:08:42 +03:00
Georgios Konstantopoulos beb480f22b
chore(abigen-macro): do not run the doctests since the abi paths cannot be found 2020-06-11 12:33:09 +03:00
Georgios Konstantopoulos 7dbc2d4f25
test(abigen): re-enable tests 2020-06-11 00:11:42 +03:00
Georgios Konstantopoulos 73b502ed5f
macro: re-enable paths/etherscan and enable more complex tokens 2020-06-04 00:05:05 +03:00
Georgios Konstantopoulos cd4914d37f
refactor: pull crates to root dir 2020-06-01 21:24:22 +03:00