* check in fevm tstorage test. note that the network upgrade is a todo. Because the network upgrade does not happen the tests currently fail so they are commented with what needs to change once the network upgrade can be wired in.
* remove TODOs from tstore test and update asserts to assert that the expected correct result happens.
* typo bugfix
* Update itests/contracts/TransientStorageTest.sol
Co-authored-by: Rod Vagg <rod@vagg.org>
* Update itests/contracts/TransientStorageTest.sol
Co-authored-by: Rod Vagg <rod@vagg.org>
* upgrade go-state-types version for tstore migration code
* ran `make bundle-gen` and `bash pack.sh v16 v16.0.0-dev1`
---------
Co-authored-by: Rod Vagg <rod@vagg.org>
* chore: fix EthGetTransactionCount for earliest block parameter
* feat: update `EthGetTransactionCount` test for `earliest`, `latest`, and `pending` block parameters and refactor `EthGetTransactionCount` to return empty block for `earliest`
* chore: refactor EthGetTransactionCount test
* update changelog
* refactor EthGetTransactionCount test and fix for earliest block parameter
* Update CHANGELOG.md
* feat(eth): fix EthGetTransactionCount for pending block parameter
* update changelog
* feat: add test for EthGetTransactionCount function
* make changes suggested by @rvagg
* Update node/impl/full/eth.go
Co-authored-by: Rod Vagg <rod@vagg.org>
* feat: improve error handling in EthGetTransactionCount test
* Update itests/fevm_test.go
Co-authored-by: Rod Vagg <rod@vagg.org>
* fix: update EthGetTransactionCount test to handle pending block parameter correctly
---------
Co-authored-by: Rod Vagg <rod@vagg.org>
This is a large diff, yet should have exactly zero functional changes
Ideally as a result of this some parts of the depchain will become lighter,
with downstream reaping the same benefits as the team that initiated this split.
P.S. work was done while forming better intuition of current dependency graph
* proofparams alternate
* createminer
* const factored from /build and types updated to use it
* buildconstants for more places
* deprecate msg
* itest cleanup
* alerting interface
* house cleaning
* rm policy and drand from buildconstants
* clean up curio further
* aussie waffle
* pr fixes
* fix lints
* little fixes
* oops this got updated
* unbreak test builds
* test fixes
* comments - cleanups
* itests fix alerting
* rm obsolete alertinginterface
* spelling oops
* changelog
* tests need buildconstants port
* Fully migrate BlockGasTarget
* ulimit should not depend on build
* complete the simplest deprecations
* bringing back versions
* poc for eth legacy tx
* print statements
* finished
* tests work
* remove print statements
* Remove all print statements
* remove extraneous changes
* cleaned up code and interface
* run make jen
* dont duplicate signature
* go mod tidy and remove prints
* clean up tests
* test for conversion
* changes as per review
* more unit tests for legacy txns
* Apply suggestions from code review
Co-authored-by: Rod Vagg <rod@vagg.org>
* address review comments from Rodd
* changes as per zen's 2nd review
* go mod tidy
* feat: ETH compatibility in Filecoin : Support EIP-155 Ethereum transactions in Filecoin (#11970)
* itests passing for 155 tx
* first working version for EIP-155 transactions
* green itest
* add docs
* tests
* remove print stmt
* remove print stmt
* validate signature
* changes as per zen's review
* correct signature verification
* gate tx by Network Version
* handle arajsek review
* fix imports order
* fix lint
* dont lock in mpool for network gating ETH messages
* sender can be an ID address
---------
Co-authored-by: Rod Vagg <rod@vagg.org>
Fixes: #10814
This PR updates the following RPC methods according to EIP-1898
specs.
The following RPC methods are affected:
- eth_getBalance
- eth_getStorageAt
- eth_getTransactionCount
- eth_getCode
- eth_call
Note that eth_getBlockByNumber was not included in this list in
the spec although it seems it should be affected also?
Currently these methods all accept a blkParam string which can be
one of "latest", "earliest", "pending", or a block number (decimal
or hex). The spec enables caller to additionally specify a json
hash which can include the following fields:
- blockNumber EthUint64: A block number (decimal or hex) which is
similar to the original use of the blkParam string
- blockHash EthHash: The block hash
- requireCanonical bool) If true we should make sure the block is
in the canonical chain
Since the blkParam needs to support both being a number/string and
a json hash then this to properly work we need to introduce a new
struct with pointer fields to check if they exist. This is done
in the EthBlockParamByNumberOrHash struct which first tries to
unmarshal as a json hash (according to eip-1898) and then fallback
to unmarshal as string/number.
* add itests for various fevm block properties and assert correct chain id
* add value checks to the block property solidity itests
* move get block function to kit
Unfortunately, we need to execute the message twice to get this (unless
we want to change some APIs). But it's unlikely to be a performance
issue and will definitely help people debug failures.
* fix: eth: correctly decode EthGetStorageAt output
We cbor-encode it. Also:
1. Actually use the passed block param.
2. Check if the target actor is an EVM actor to avoid nonsense outputs.
fixes https://github.com/filecoin-project/ref-fvm/issues/1621
This:
1. Updates the builtin actors bundle (for actors v10).
2. Updates the event entry type to include the codec.
3. Removes the cbor encoding and zero trimming from event data.
I've chose to:
1. _Not_ add codec handling to the event filtering system for now.
2. _Skip_ events with unexpected codecs.
We don't actually _allow_ these events in the FVM right now, and it
simplifies the implementation.
However, I _am_ recording the codecs in the database so we don't have to
migrate it later.