Commit graph

303 commits

Author SHA1 Message Date
Daniel Liu
91f6259135 accounts/abi: remove function Unpack2 (#20830) 2025-01-24 16:18:29 +08:00
Daniel Liu
56f9c17817 accounts/abi: Prevent recalculation of internal fields (#20895)
* accounts/abi: prevent recalculation of ID, Sig and String

* accounts/abi: fixed unpacking of no values

* accounts/abi: multiple fixes to arguments

* accounts/abi: refactored methodName and eventName

This commit moves the complicated logic of how we assign method names
and event names if they already exist into their own functions for
better readability.

* accounts/abi: prevent recalculation of internal

In this commit, I changed the way we calculate the string
representations, sig representations and the id's of methods. Before
that these fields would be recalculated everytime someone called .Sig()
.String() or .ID() on a method or an event.

Additionally this commit fixes issue #20856 as we assign names to inputs
with no name (input with name "" becomes "arg0")

* accounts/abi: added unnamed event params test

* accounts/abi: fixed rebasing errors in method sig

* accounts/abi: fixed rebasing errors in method sig

* accounts/abi: addressed comments

* accounts/abi: added FunctionType enumeration

* accounts/abi/bind: added test for unnamed arguments

* accounts/abi: improved readability in NewMethod, nitpicks

* accounts/abi: method/eventName -> overloadedMethodName
2025-01-24 16:18:29 +08:00
Daniel Liu
fd53a433aa accounts/abi: implement new fallback functions (#20764)
* accounts/abi: implement new fackball functions

In Solidity v0.6.0, the original fallback is separated
into two different sub types: fallback and receive.

This PR addes the support for parsing new format abi
and the relevant abigen functionalities.

* accounts/abi: fix unit tests

* accounts/abi: minor fixes

* accounts/abi, mobile: support jave binding

* accounts/abi: address marius's comment

* accounts/abi: Work around the uin64 conversion issue

Co-authored-by: Guillaume Ballet <gballet@gmail.com>
2025-01-24 16:18:29 +08:00
Daniel Liu
296c052c02 accounts/abi/bind: fixed erroneous filtering of negative ints (#20865)
* accounts/abi/bind: fixed erroneous packing of negative ints

* accounts/abi/bind: added test cases for negative ints in topics

* accounts/abi/bind: fixed genIntType for go 1.12

* accounts/abi: minor  nitpick
2025-01-24 16:18:29 +08:00
Daniel Liu
f8b85afec5 accounts/abi/bind: Refactored topics (#20851)
* accounts/abi/bind: refactored topics

* accounts/abi/bind: use store function to remove code duplication

* accounts/abi/bind: removed unused type defs

* accounts/abi/bind: error on tuples in topics

* Cosmetic changes to restart travis build

Co-authored-by: Guillaume Ballet <gballet@gmail.com>
2025-01-24 16:18:29 +08:00
Daniel Liu
6259ce565c accounts/abi faster unpacking of int256 (#20850) 2025-01-24 16:18:29 +08:00
Daniel Liu
164d929307 accounts/abi/bind/backends: add support for historical state (#20644) 2025-01-24 16:18:29 +08:00
Daniel Liu
8d4c290cce accounts/abi: fix method constant flag for solidity 6.0 (#20482) 2025-01-24 16:18:29 +08:00
Daniel Liu
0350880af6 accounts/abi/backends/simulated: add more API methods (#5) (#20208)
* Add more functionality to the sim (#5)

* backends: implement more of ethclient in sim

* backends: add BlockByNumber to simulated backend

* backends: make simulated progress function agree with syncprogress interface for client

* backends: add more tests

* backends: add more comments

* backends: fix sim for index in tx and add tests

* backends: add lock back to estimategas

* backends: goimports

* backends: go ci lint

* Add more functionality to the sim (#5)

* backends: implement more of ethclient in sim

* backends: add BlockByNumber to simulated backend

* backends: make simulated progress function agree with syncprogress interface for client

* backends: add more tests

* backends: add more comments

* backends: fix sim for index in tx and add tests

* backends: add lock back to estimategas

* backends: goimports

* backends: go ci lint

* assert errs
2025-01-24 16:18:29 +08:00
Daniel Liu
f7b66c10b3 [#20266] Fix bugs decoding integers and fixed bytes in indexed event fields (#20269)
* fix parseTopics() and add tests

* remove printf

* add ParseTopicsIntoMap() tests

* fix FixedBytesTy

* fix int and fixed bytes

* golint topics_test.go
2025-01-24 16:18:29 +08:00
Daniel Liu
e9f9c19c52 accounts/abi/bind: fix destructive packing of *big.Int (#20412) 2025-01-24 16:18:29 +08:00
Daniel Liu
f2fb9f8661 accounts/abi/bind: avoid reclaring structs (#20381) 2025-01-24 16:18:29 +08:00
Daniel Liu
eb628a4f02 accounts/abi: fix staticcheck warnings (#20358)
* accounts/abi: fix staticcheck warnings

* accounts/abi: restore unused field for test
2025-01-24 16:18:29 +08:00
Daniel Liu
575a5cb2e2 accounts/abi/bind/backends: remove unused assignment (#20359) 2025-01-24 16:18:29 +08:00
Daniel Liu
3a320d2c6f accounts/abi/bind, cmd/abigen: implement alias for abigen (#20244) 2025-01-24 16:18:29 +08:00
Daniel Liu
32615fda97 accounts/abi: add internalType information and fix issues (#20179)
* accounts/abi: fix various issues

The fixed issues include:

(1) If there is no return in a call function, unpack should
return nil error

(2) For some functions which have struct array as parameter,
it will also be detected and generate the struct definition

(3) For event, if it has non-indexed parameter, the parameter
name will also be assigned if empty. Also the internal struct
will be detected and generate struct defition if not exist.

(4) Fix annotation generation in event function

* accounts/abi: add new abi field internalType

* accounts: address comments and add tests

* accounts/abi: replace strings.ReplaceAll with strings.Replace
2025-01-24 16:18:29 +08:00
Daniel Liu
5009a3df04 accounts/abi: fix incorrect signature (#19881)
The abi package already supports function overload by adding a suffix to the overloaded function name, but it uses the function name with suffix to calculate signature(both for the event and method).

This PR fixes it by adding a new field named RawName, which can be used to calcuate all signatures but use Name to distinguish different overloaded function.
2025-01-24 16:18:29 +08:00
Daniel Liu
9340a81ce1 accounts/abi/bind: support closing a simulated backend (#19902) 2025-01-24 16:18:29 +08:00
Daniel Liu
6d17a42edb all: replace t.Log(); t.FailNow() with t.Fatal() (#19849) 2025-01-24 16:18:29 +08:00
Daniel Liu
587f6b3438 accounts/abi/bind: fix typo in comments (#19791) 2025-01-24 16:18:29 +08:00
Daniel Liu
0050f84142 accounts/abi: enable struct golang binding generation (#18491)
* accounts/abi, cmd/abigen: support tuple

accounts/abi/bind, cmd/abigen: add objc back

accounts/abi/bind: use byte[24] as function indicator

accounts/abi/bind: resolve struct slice or array

accounts/abi/bind: remove sort logic

accounts: fix issues in abi

* accounts/abi: address comment
2025-01-24 16:18:29 +08:00
Daniel Liu
71e4c0609a accounts/abi: Fix method overwritten by same name methods (#17099)
* accounts/abi: Fix method overwritten by same name methods.

* accounts/abi: Fix method overwritten by same name methods.

* accounts/abi: avoid possible name conflict

Co-authored-by: Guillaume Ballet <gballet@gmail.com>
2025-01-24 16:18:29 +08:00
Daniel Liu
f542e463d3 accounts: implement simple checkpoint syncing (#19543) 2025-01-24 16:18:29 +08:00
Daniel Liu
894bed5b7e accounts/abi: adding the method EventById and its test (#19359) 2025-01-24 16:18:29 +08:00
Daniel Liu
6aeab6a207 accounts/abi/bind: rename NewKeystoreTransactor (#19703)
renamed NewKeyStoreFromTransactor to NewKeystoreTransactor
fixed godoc
2025-01-24 16:18:29 +08:00
Daniel Liu
313018496f accounts: added transactorFromKeyStore (#19685) 2025-01-24 16:18:29 +08:00
Daniel Liu
316d2f8052 accounts/abi: fix TestUnpackMethodIntoMap (#19484) 2025-01-24 16:18:29 +08:00
Daniel Liu
44d58cb8dc accounts/abi: fix documentation (#19568) 2025-01-24 16:18:29 +08:00
Daniel Liu
769a34bfb7 accounts/abi: generic unpacking of event logs into map[string]interface{} (#18440)
Add methods that allow for the unpacking of event logs into maps (allows for agnostic unpacking of logs)
2025-01-24 16:18:29 +08:00
Daniel Liu
36577396ec accounts/abi: add the original name as json-structtag for tuples (#19340) 2025-01-24 16:18:29 +08:00
Daniel Liu
e4d78ed594 accounts/abi/bind: static byte arrays should be right-padded (#19269) 2025-01-24 16:18:29 +08:00
Daniel Liu
5d0dea852e accounts/abi: mutex lock in TransactionByHash and code cleanup (#19133) 2025-01-24 16:18:29 +08:00
Daniel Liu
dcc3fc3ec3 accounts/abi: fix error message format (#19122) 2025-01-24 16:18:29 +08:00
Daniel Liu
99092ac54f accounts/abi/bind/backends: add TransactionByHash to SimulatedBackend (#19026) 2025-01-24 16:18:29 +08:00
Daniel Liu
d44902a64a accounts/abi: allow interface as the destination (#18490) 2025-01-24 16:18:29 +08:00
Daniel Liu
e70bb4b119 accounts/abi: Add tests for reflection ahead of refactor (#18434) 2025-01-24 16:18:29 +08:00
Daniel Liu
7d5953f972 accounts/abi: Extra slice tests (#18424)
Co-authored-by: weimumu <934657014@qq.com>
2025-01-24 16:18:29 +08:00
Daniel Liu
2d0047b4b8 accounts/abi: tuple support (#18406) 2025-01-24 16:18:29 +08:00
Daniel Liu
930ec9ba86 accounts/abi: allow abi tags when unpacking structs (#16648) 2025-01-24 16:18:28 +08:00
Daniel Liu
48de514dd9 accounts/abi/bind: add optional block number for calls (#17942) 2025-01-24 16:18:28 +08:00
Daniel Liu
9ec0b75eaf accounts/abi: fix string array unpack bug (#18364) 2025-01-24 16:18:28 +08:00
Daniel Liu
bb54f11c13 accounts/abi: brings out the msg defined at require statement in SC function (#17328) 2025-01-24 16:18:28 +08:00
Daniel Liu
16e444c4f8 accounts/abi: add support for unpacking returned bytesN arrays (#15242) 2025-01-24 16:18:28 +08:00
Daniel Liu
95d06922b7 accounts/abi: fix slice unpack bug (#18321) 2025-01-24 16:18:28 +08:00
Daniel Liu
0bf459b979 accounts/abi: argument type and name were reversed (#17947)
argument type and name were reversed
2025-01-24 16:18:28 +08:00
Daniel Liu
11519292cd accounts/abi: add packing for dynamic array and slice types (#18051) 2025-01-24 16:18:28 +08:00
Daniel Liu
e2ea9e87b5 accounts/abi: fix panic in MethodById lookup (#17798) 2025-01-24 16:18:28 +08:00
Daniel Liu
de16c7571f accounts/abi: fix unpacking of negative int256 (#17583) 2025-01-24 16:18:28 +08:00
Daniel Liu
eb90b2899f backends: increase gaslimit in order to allow tests of large contracts (#17358) 2025-01-24 16:18:28 +08:00
Daniel Liu
c5c876a7e7 accounts/abi: refactor Method#Sig() to use index in range iterator directly (#17198) 2025-01-24 16:18:28 +08:00