Commit graph

773 commits

Author SHA1 Message Date
Jared Wasinger
709ff38bc1 gofmt files. add a TODO comment and remove another useless comment 2025-01-22 13:54:57 +01:00
Jared Wasinger
645c844f4b clean up link/deploy code. add docs 2025-01-22 13:54:57 +01:00
Jared Wasinger
47192a758c change semantics of contract overrides again: any direct/indirect dependencies of contracts/libraries specified with override addresses should not be deployed if they are not elsewhere referenced as direct/indirect deps of non-override contracts. 2025-01-22 13:54:57 +01:00
Jared Wasinger
736d587990 full support for errors with working test 2025-01-22 13:54:57 +01:00
Jared Wasinger
9552b30263 wip (just committing so that I can rebase off master to use ethclient.RevertErrorData) 2025-01-22 13:54:57 +01:00
Jared Wasinger
9a59bdb239 generation of custom error unpacking builds (not tested yet) 2025-01-22 13:54:57 +01:00
Jared Wasinger
e7e1426d89 remove debug prints. fix contract linking test condition 2025-01-22 13:54:57 +01:00
Jared Wasinger
c293caade9 tests working now 2025-01-22 13:54:57 +01:00
Jared Wasinger
5cc853d807 fix linking tests 2025-01-22 13:54:57 +01:00
Jared Wasinger
60fc16dea8 rewrite contract link/deploy again 2025-01-22 13:54:57 +01:00
Jared Wasinger
e4c01633a4 make link test case input be its own struct 2025-01-22 13:54:57 +01:00
Jared Wasinger
f9186b712e one more test 2025-01-22 13:54:57 +01:00
Jared Wasinger
463c3b6dd4 fix test cases 2025-01-22 13:54:57 +01:00
Jared Wasinger
81289d7e26 wip: update 2025-01-22 13:54:57 +01:00
Jared Wasinger
4821fbae99 add test cases for contract linking that I forgot to push earlier. Fix deployment logic (apparently modifying a map in-place during iteration is not safe???? 2025-01-22 13:54:57 +01:00
Jared Wasinger
44420cbb36 basic linking test working 2025-01-22 13:54:57 +01:00
Jared Wasinger
b06406a8b2 wip 2025-01-22 13:54:57 +01:00
Jared Wasinger
c8b17ca9c4 staging changes for linking tests. rework LinkAndDeploy to decouple logic of contract deployment, by passing a callback that does it. 2025-01-22 13:54:57 +01:00
Jared Wasinger
ba68e747b5 mv test contracts to internal directory under v2 2025-01-22 13:54:57 +01:00
Jared Wasinger
4872d7fde5 remove unecessary abi parameter from WatchEvents. simplify event tests 2025-01-22 13:54:57 +01:00
Jared Wasinger
b50593e702 add db example from sina 2025-01-22 13:54:57 +01:00
Jared Wasinger
a0485167d5 add generic call/transact 2025-01-22 13:54:57 +01:00
Jared Wasinger
28d57002ff add generic log watching/filtering. skip adding generic call/transact (issue with interface regarding contract methods that don't take arguments) 2025-01-22 13:54:57 +01:00
Jared Wasinger
69e6f2932d add binding generation test 2025-01-22 13:54:57 +01:00
Jared Wasinger
57e13591cc small cleanups 2025-01-22 13:54:57 +01:00
Jared Wasinger
2df68eb106 remove unused error test, other unused code in tests 2025-01-22 13:54:57 +01:00
Jared Wasinger
6b5967afd8 delete unused test data. remove useless v2 helper methods. update tests 2025-01-22 13:54:57 +01:00
Jared Wasinger
d3d6926683 fix contract filter test. rename *Logs methods to *Events, to reflect the fact that these are specific to solidity events. 2025-01-22 13:54:57 +01:00
Jared Wasinger
1f25c68ec4 add error unpacking. simplify WatchLogs api. 2025-01-22 13:54:57 +01:00
Jared Wasinger
4fc62e94b3 add errors to emitted code. 2025-01-22 13:54:57 +01:00
Jared Wasinger
f2d78fcfaf return multiple results in exported struct (instead of anonymous one). add return_structs contract example to have an example of it. 2025-01-22 13:54:57 +01:00
Jared Wasinger
51207183cd add coverage for event filtering 2025-01-22 13:54:57 +01:00
Jared Wasinger
cd18d99180 add test coverage for events watching 2025-01-22 13:54:57 +01:00
Jared Wasinger
1e8aca95e9 add test for overrides 2025-01-22 13:54:57 +01:00
Jared Wasinger
77158e5bf0 various small fixes: better error message, remove unecessary comments. address review about missing word in function documentation. 2025-01-22 13:54:57 +01:00
Jared Wasinger
d0a8ead758 add copyright notices. move v2 template to its own file. Rename V2Backend->BackendV2 2025-01-22 13:54:57 +01:00
Jared Wasinger
26641a190a make tests run again 2025-01-22 13:54:57 +01:00
Jared Wasinger
afe887fcc3 remove old half-written test case with events (I will add it back in when I complete it). 2025-01-22 13:54:57 +01:00
Jared Wasinger
b612cab7f1 simplify generated code for list of library dependencies 2025-01-22 13:54:57 +01:00
Jared Wasinger
0bdf69cbc6 some more docs 2025-01-22 13:54:57 +01:00
Jared Wasinger
0cff488b04 fix v2 test 2025-01-22 13:54:57 +01:00
Jared Wasinger
ab97d38da5 more docs. fix nested library contract. fix associated test case. 2025-01-22 13:54:57 +01:00
Jared Wasinger
b2aec5af41 add missing files from testdata. refactor contract deployment API to be cleaner 2025-01-22 13:54:57 +01:00
Jared Wasinger
03a6ade16b format improvements 2025-01-22 13:54:57 +01:00
Jared Wasinger
41b77f9d9c update library test contract to have constructor with inputs. remove some debug print statements 2025-01-22 13:54:57 +01:00
Jared Wasinger
42d159fb9a fix contract 2025-01-22 13:54:57 +01:00
Jared Wasinger
7c95aa1411 closer to test passing now... 2025-01-22 13:54:57 +01:00
Jared Wasinger
5ba939f50c rework contract deployment API 2025-01-22 13:54:57 +01:00
Jared Wasinger
cc04aa4e9e commit of wip-code: rework the contract deployment code to be cleaner 2025-01-22 13:54:57 +01:00
Jared Wasinger
6d9104e706 dependency graph calculation working 2025-01-22 13:54:57 +01:00
Jared Wasinger
26491ae5cd still in a wip state 2025-01-22 13:54:57 +01:00
Jared Wasinger
61263dcd68 stage point before I try to dedup contract interaction api 2025-01-22 13:54:57 +01:00
Jared Wasinger
0aac1981f5 move v2 contract interaction methods into v2 package. add test 2025-01-22 13:54:57 +01:00
Jared Wasinger
9c086811ae isolate V2 contract interaction API into its own package 2025-01-22 13:54:57 +01:00
Jared Wasinger
cb0d1ea3ba fix last rebase regression 2025-01-22 13:54:56 +01:00
Jared Wasinger
f7fa3fe037 add back code that got mistakenly removed in the rebase 2025-01-22 13:54:56 +01:00
Sina Mahmoodi
135ef69b9b fix test 2025-01-22 13:54:56 +01:00
Sina Mahmoodi
c14bd3d6e7 clean lang selection leftovers 2025-01-22 13:54:55 +01:00
Sina Mahmoodi
b504552373 Pass pointer to log for unpack 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
f7084f4723 Add deploy code to contract struct 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
e2746e7f54 define contract instance type 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
040f808742 skip unpack method when no return args 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
ee1263a78c drop fmt 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
7b6f0eadd7 replace fmt with errors
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2025-01-22 13:53:59 +01:00
Sina Mahmoodi
6b69f4c90c drop unnecessary imports 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
d4ccdc30c2 add copyright header to lib.go 2025-01-22 13:53:59 +01:00
Sina Mahmoodi
ed627ccf8b accounts/abi: abigen v2 2025-01-22 13:53:59 +01:00
georgehao
1843f27766
all: fix some typos in comments and names (#31023) 2025-01-14 14:16:15 +01:00
maskpp
3c208cdea8
accounts/abi/bind: make it possible to wait for tx hash (#30079)
This change adds methods which makes it possible for to wait for a transaction with a specific hash when deploying contracts during abi bind interaction.

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2024-12-17 09:12:10 +01:00
lightclient
f808d7357e
all: implement eip-7702 set code tx (#30078)
This PR implements EIP-7702: "Set EOA account code". 
Specification: https://eips.ethereum.org/EIPS/eip-7702

> Add a new transaction type that adds a list of `[chain_id, address,
nonce, y_parity, r, s]` authorization tuples. For each tuple, write a
delegation designator `(0xef0100 ++ address)` to the signing account’s
code. All code reading operations must load the code pointed to by the
designator.

---------

Co-authored-by: Mario Vega <marioevz@gmail.com>
Co-authored-by: Martin Holst Swende <martin@swende.se>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-12-16 11:29:37 +01:00
Darren Kelly
330190e476
accounts/abi: support unpacking solidity errors (#30738)
This PR adds the error fragments to `func (abi ABI) getArguments` which
allows typed decoding of errors.
2024-12-10 14:30:24 +01:00
Jordan Krage
3c754e2a09
accounts/abi: fix MakeTopics mutation of big.Int inputs (#30785)
#28764 updated `func MakeTopics` to support negative `*big.Int`s.
However, it also changed the behavior of the function from just
_reading_ the input `*big.Int` via `Bytes()`, to leveraging
`big.U256Bytes` which is documented as being _destructive_:

This change updates `MakeTopics` to not mutate the original, and 
also applies the same change in signer/core/apitypes.
2024-11-25 13:34:50 +01:00
Martin HS
a5f0001845
cmd/geth: remove unlock commandline flag (#30737)
This is one further step towards removing account management from
`geth`. This PR deprecates the flag `unlock`, and makes the flag moot:
unlock via geth is no longer possible.
2024-11-15 10:15:15 +01:00
Madhur Shrimal
a6037d027f
accounts/usbwallet: support dynamic tx (#30180)
Adds support non-legacy transaction-signing using ledger

---------

Co-authored-by: Martin Holst Swende <martin@swende.se>
2024-11-08 14:57:29 +01:00
Martin HS
5adc314817
build: update to golangci-lint 1.61.0 (#30587)
Changelog: https://golangci-lint.run/product/changelog/#1610 

Removes `exportloopref` (no longer needed), replaces it with
`copyloopvar` which is basically the opposite.

Also adds: 
- `durationcheck`
- `gocheckcompilerdirectives`
- `reassign`
- `mirror`
- `tenv`

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2024-10-14 19:25:22 +02:00
Ceyhun Onur
9eb91542de
accounts/abi/bind, ethclient/simulated: check SendTransaction error in tests (#30349)
In few tests the returned error from `SendTransaction` is not being
checked. This PR checks the returned err in tests.

Returning errors also revealed tx in `TestCommitReturnValue` is not
actually being sent, and returns err ` only replay-protected (EIP-155)
transactions allowed over RPC`. Fixed the transaction by using the
`testTx` function.
2024-08-27 17:11:50 +02:00
chen4903
65aaf52f4c
accounts/abi: handle ABIs with contract type parameter (#30315)
convert parameter of type contract to the basic `address` type
---------

Co-authored-by: Martin HS <martin@swende.se>
2024-08-20 12:26:35 +02:00
ysh0566
67b8137100
accounts/abi/bind: add accessList support to base bond contract (#30195)
Adding the correct accessList parameter when calling a contract can
reduce gas consumption. However, the current version only allows adding
the accessList manually when constructing the transaction. This PR can
provide convenience for saving gas.
2024-08-01 12:09:04 -06:00
Icarus Wu
b635089c7c
all: remove deprecated protobuf dependencies (#30232)
The package `github.com/golang/protobuf/proto` is deprecated in favor
`google.golang.org/protobuf/proto`. We should update the codes to
recommended package.

Signed-off-by: Icarus Wu <icaruswu66@qq.com>
2024-08-01 16:25:55 +02:00
zhiqiangxu
71210b0630
all: simplify tests using t.TempDir() (#30150) 2024-07-15 15:26:58 +02:00
winniehere
de366fd2e2
accounts/abi: embed Go template instead of string literal (#30098)
refactor(accounts/abi): use embed pkg to split default template to file
2024-07-02 15:58:15 +03:00
jwasinger
41abab9e39
build: add check for stale generated files (#30037)
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-07-01 17:16:15 +02:00
jwasinger
a4e338f05e
accounts/usbwallet/trezor: upgrade to generate with protoc 27.1 (#30058) 2024-07-01 16:18:38 +02:00
Halimao
fe0c0b04fe
accounts/keystore: use t.TempDir in test (#30052) 2024-06-25 11:24:33 +02:00
jackyin
3687c34cfc
accounts: avoid duplicate regex compilation (#29943)
* fix: Optimize regular initialization

* modify var name

* variable change to private types
2024-06-12 10:46:36 +03:00
Steven Wang
b8cf1636d4
accounts: fix TestUpdateKeyfileContents (#29867)
Create the directory before NewKeyStore. This ensures the watcher successfully starts on
the first attempt, and waitWatcherStart functions as intended.
2024-05-29 12:12:57 +02:00
Bin
f8820f170c
accounts, cmd/geth, core: close opened files (#29598)
* fix: open file used up but not closed

* feat: more same case

* feat: accept conversation
2024-04-30 15:47:21 +02:00
haoran
b2b0e1da8c
all: fix various typos (#29600)
* core: fix typo

* rpc: fix typo

* snap: fix typo

* trie: fix typo

* main: fix typo

* abi: fix typo

* main: fix field comment for basicOp
2024-04-23 13:09:42 +03:00
persmor
0a51028819
all: fix various typos (#29542)
* core/rawdb: fix typos

* accounts/abi: fix typos

* metrics: fix typo

* beacon: fix typo

* crypto: fix typo

* rpc: fix typo

* rpc: fix typo
2024-04-16 15:44:00 +03:00
Aaron Chen
ed4bc7f27b
all: replace fmt.Errorf() with errors.New() if no param required (#29472) 2024-04-08 12:59:17 +02:00
Martin HS
7ee9a6e89f
signer: implement blob txs sendtxargs, enable blobtx-signing (#28976)
This change makes it possible to sign blob transactions
2024-04-05 19:29:44 +02:00
crazeteam
fa5019de19
accounts/keystore: fix typos in comments (#29336) 2024-03-27 13:16:29 +01:00
Aaron Chen
723b1e36ad
all: fix mismatched names in comments (#29348)
* all: fix mismatched names in comments

* metrics: fix mismatched name in UpdateIfGt
2024-03-26 21:01:28 +01:00
Martin HS
14cc967d19
all: remove dependency on golang.org/exp (#29314)
This change includes a leftovers from https://github.com/ethereum/go-ethereum/pull/29307
- using the [new `slices` package](https://go.dev/doc/go1.21#slices) and
- using the [new `cmp.Ordered`](https://go.dev/doc/go1.21#cmp) instead of exp `constraints.Ordered`
2024-03-25 07:50:18 +01:00
Martin HS
14eb8967be
all: use min/max/clear from go1.21 (#29307) 2024-03-21 13:50:13 +01:00
Tien Nguyen
eda9c7e36f
accounts/abi/bind: check invalid chainID first (#29275) 2024-03-19 14:05:31 +01:00
Martin HS
ab49f228ad
all: update to go version 1.22.1 (#28946)
Since Go 1.22 has deprecated certain elliptic curve operations, this PR removes 
references to the affected functions and replaces them with a custom implementation
in package crypto. This causes backwards-incompatible changes in some places.

---------

Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Felix Lange <fjl@twurst.com>
2024-03-18 17:36:50 +01:00
SanYe
ba2dd9385c
accounts/abi/bind: remove unused err set and check (#29269)
accounts/abi: remove unused err set and check
2024-03-15 10:46:22 +01:00
Justin Dhillon
b80643b737
accounts/usbwallet, common/bitutil: fix broken links in docs (#29078)
fixes some links in documentation
2024-03-13 07:54:40 +01:00
cuinix
3bebabbd03
accounts: remove redundant string conversion (#29184) 2024-03-07 22:25:08 +01:00