Commit Graph

133 Commits

Author SHA1 Message Date
Steven Allen
6e22c08c1d
fix: api: return errors on failure to lookup an eth txn receipt (#11329)
All these cases here are actually errors and returning `nil` makes this
hard to debug. We likely returned nil in the past to be "best effort"
but, as far as I can tell, we should only hit these error cases if
something is actually wrong.

part of #11325
2023-10-24 12:13:45 -07:00
Fridrik Asmundsson
0096d521c3 fix decoding toplevel output in trace_replayBlockTransactions 2023-08-29 12:27:08 +00:00
Fridrik Asmundsson
10a5480895 Decode output using top level trace 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ee3cdf0e97 Fix use filecoin addr + other small refactor
After changing in prev commit to use to ethereum addresses the
comparison does not make sense against builtin actors. This
fixes that by storing also the filecoin addresses in each trace

Also renamed filecoin related fields to Filecoin prefix.

Also remove requirement call to InvokeContract needed to come
from a evm actor
2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
8d8891a431 Moved tracing types to ethtypes to address circular dependencies 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ef7bcfec06 Do not compute message index as traces should be in message execution order 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
a1b890c8c7 return wrapped errors 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
4068e0710d Do not return interface{} from trace api methods 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ebb54bc381 fix naming lint 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
ba1ee60d1b Refactor eth.go 2023-08-28 17:48:22 +00:00
Fridrik Asmundsson
dda2d7e023 Refactor EthBlockNumberOrHash and remove the number field 2023-06-22 17:18:50 +00:00
Fridrik Asmundsson
f358160cd5 Add EIP-1898 support needed for The Graph compatibility
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.
2023-06-20 09:38:00 +00:00
Steven Allen
739d61c698 fix: eth: ensure that the event topics are non-nil
Even when empty.

fixes #10910
2023-06-12 14:25:02 -07:00
Fridrik Asmundsson
4ca30abeef Add support for blockHash param in eth_getLogs 2023-05-10 16:43:25 -04:00
Fridrik Asmundsson
2bc205ed62 feat: Add eth_syncing RPC method
This commit adds eth_syncing RPC method which returns an object
with data about the sync status or false.
2023-05-10 16:08:18 -04:00
Friðrik Ásmundsson
ceb3f1e41e
Validate that FromBlock/ToBlock epoch is indeed a hex value (#10780)
* Validate that FromBlock/ToBlock epoch is indeed a hex value

* Adding tests
2023-05-09 17:17:23 -04:00
ZenGround0
ed7d1ef493
Merge pull request #10534 from filecoin-project/raulk/fix-parse-block-param-error
fix: Eth RPC: do not occlude block param errors.
2023-05-08 11:51:39 -04:00
Mikers
41fce94db4
perf: eth: gas estimate set applyTsMessages false (#10546)
* have gas estimate call callInternal with applyTsMessages = false and other calls with applyTsMessages=true for gas caclulation optimization

* set applyTsMessages = true in CallWithGas call in shed

* update test with new callwithgas api optimization for eth call

* Update chain/stmgr/call.go

Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>

* env flag LOTUS_SKIP_APPLY_TS_MESSAGE_CALL_WITH_GAS must be 1 in order to have applyTsMessages change

* env flag LOTUS_SKIP_APPLY_TS_MESSAGE_CALL_WITH_GAS must be 1 in order to have applyTsMessages change

* make sure that even if we arent apply ts messages we grab ts messages from the particular user who is requesting gas estimation

---------

Co-authored-by: Jiaying Wang <42981373+jennijuju@users.noreply.github.com>
Co-authored-by: Łukasz Magiera <magik6k@users.noreply.github.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-0-4-29.us-east-2.compute.internal>
2023-03-23 18:27:01 -04:00
raulk
0f8a4b7789 fix: Eth RPC: do not occlude block param errors. 2023-03-22 11:37:35 +00:00
Steven Allen
2207ab3c93 fix: eth: handle a potential divide by zero in receipt handling
This isn't really possible to hit on-chain at this piont (message won't
be accepted) but we might as well be extra careful.

fixes #10471
2023-03-16 08:53:52 -07:00
Łukasz Magiera
093ff95580
Merge pull request #10467 from filecoin-project/steb/gw-eth-lookback-limit
feat: apply gateway lookback limit to eth API lookback
2023-03-16 08:50:59 +01:00
Łukasz Magiera
c0aed3c4a2
Merge pull request #10474 from filecoin-project/raulk/fix-pending-support
fix: revert "Eth API: drop support for 'pending' block parameter."
2023-03-16 08:49:49 +01:00
Steven Allen
17274e72da feat: expose limited apis on the gateway 2023-03-15 16:12:18 -07:00
Steven Allen
3776ee3b62 fix: actually apply limit 2023-03-15 16:11:13 -07:00
Steven Allen
fee480193e feat: apply gateway lookback limit to eth API lookback
This change:

1. Introduces new "limited" API endpoints for EthGetTransactionByHash
   and EthGetTransactionReceipt that accept lookback-limits.
2. Implements the gateway version of these API endpoints by calling the
   limited variants with the default message search lookback limit.

fixes #10412
2023-03-15 16:11:11 -07:00
Łukasz Magiera
720e95991c make lint happy 2023-03-15 18:52:11 +01:00
Łukasz Magiera
470dd8da3d ethrpc: Buffer sub messages if subscriber is slow 2023-03-15 18:34:10 +01:00
raulk
e8325f9a98 Revert "Eth API: drop support for 'pending' block parameter."
This reverts commit 9412753ba3.
2023-03-14 13:46:01 +00:00
Steven Allen
73a2b4152b
feat: eth: Avoid StateCompute in EthTxnReceipt lookup (#10460)
Instead:

1. Use the receipt from the message search.
2. Re-compute the gas fees that would have been charged.

fixes #10418

Co-authored-by: raulk <raul.kripalani@gmail.com>
2023-03-13 11:44:59 -07:00
raulk
75c279ab97
Merge pull request #10456 from filecoin-project/raulk/fix-eth-net_version 2023-03-13 11:25:19 +00:00
Raúl Kripalani
2e56237898 Merge branch 'master' into asr/fix-eth-api-gateway 2023-03-12 15:56:55 +00:00
Raúl Kripalani
e65a5988e1 Eth API: make eth_getTransactionByBlock* ops return ErrUnsupported. 2023-03-12 15:53:56 +00:00
Raúl Kripalani
5a4b5ff97e remove superfluous filter. 2023-03-12 00:44:49 +00:00
Raúl Kripalani
7ce92f1422 Eth API: make net_version return the chain ID. 2023-03-11 23:26:26 +00:00
Raúl Kripalani
9412753ba3 Eth API: drop support for 'pending' block parameter.
After transitioning from using StateCompute to loading receipts,
we can no longer handle the 'pending' block without forcing
computation. Eth Core Devs are evaluating a proposal to remove
support on their end too.
2023-03-11 23:03:21 +00:00
Raúl Kripalani
f7a979d825 eth_feeHistory: migrate to using TipSetState. 2023-03-11 17:25:00 +00:00
Steven Allen
1cf57ffe2d feat: eth: optimize receipt reading
This optimizes the eth APIs (except the fee history one) to lookup the
tipset state/receipts instead of computing the state.
2023-03-10 15:33:45 -08:00
Jiaying Wang
1096ead73e
Merge pull request #10427 from filecoin-project/raulk/fix-eth-parseBlkParam
fix: Eth API: make block parameter parsing sounder.
2023-03-09 14:21:24 -05:00
Raúl Kripalani
fce0813821 switch to ChainAPI#ChainGetTipSetByHeight. 2023-03-09 18:51:38 +00:00
Aayush Rajasekaran
9fa81673da
Merge pull request #10411 from filecoin-project/asr/simplity-new-eth-tx-rct
refactor: EthAPI: Drop unnecessary param from newEthTxReceipt
2023-03-09 12:44:44 -05:00
Raúl Kripalani
941ef84b71 Merge branch 'master' into raulk/fix-eth-parseBlkParam 2023-03-09 12:16:23 +00:00
Aayush Rajasekaran
ab91ab100f
fix: eth API: return correct txIdx around null blocks (#10419) 2023-03-09 12:14:57 +00:00
ychiao
0a0df61d77
fix: EthAPI: use StateCompute for feeHistory; apply minimum gas premium (#10413) 2023-03-09 00:28:17 +00:00
Raúl Kripalani
28d8b4cd65 Eth API: fail when requesting future epochs. 2023-03-08 20:49:36 +00:00
Raúl Kripalani
cef416e2b0 Eth API: make block parameter parsing sounder. 2023-03-08 20:38:09 +00:00
Aayush
f1b1eb8b36 refactor: EthAPI: Drop unnecessary param from newEthTxReceipt 2023-03-07 13:40:39 -05:00
Aayush
8b5bc45fcf fix: eth API: correct gateway restrictions, drop unimplemented methods 2023-03-07 12:53:04 -05:00
Aayush Rajasekaran
12496e5631
Merge pull request #10389 from filecoin-project/asr/fix-eth-api-genesis
fix: EthAPI: Correctly get parent hash
2023-03-06 09:15:48 -05:00
Aayush
920fdfdf85 fix: EthAPI: Correctly get parent hash 2023-03-03 16:42:57 -05:00
Aayush
cfb5eac015 fix: EthAPI: Make newEthBlockFromFilecoinTipSet faster and correct 2023-03-02 12:34:09 -05:00