forked from cerc-io/plugeth
300df874d7
This change closes https://github.com/ethereum/go-ethereum/issues/27730 . By using an iterator instead of a slice of transactions, we can better handle the case when an individual transaction (within an otherwise well-formed RLP-list) cannot be decoded.
77 lines
4.6 KiB
Plaintext
77 lines
4.6 KiB
Plaintext
This example comes from https://github.com/ethereum/go-ethereum/issues/27730.
|
|
The input transactions contain three transactions, number `0` and `2` are taken from
|
|
`testdata/13`, whereas number `1` is taken from #27730.
|
|
|
|
The problematic second transaction cannot be RLP-decoded, and the expectation is
|
|
that that particular transaction should be rejected, but number `0` and `1` should
|
|
still be accepted.
|
|
|
|
```
|
|
$ go run . t8n --input.alloc=./testdata/30/alloc.json --input.txs=./testdata/30/txs_more.rlp --input.env=./testdata/30/env.json --output.result=stdout --output.alloc=stdout --state.fork=Cancun
|
|
WARN [10-22|15:38:03.283] rejected tx index=1 error="rlp: input string too short for common.Address, decoding into (types.Transaction)(types.BlobTx).To"
|
|
INFO [10-22|15:38:03.284] Trie dumping started root=348312..915c93
|
|
INFO [10-22|15:38:03.284] Trie dumping complete accounts=3 elapsed="160.831µs"
|
|
{
|
|
"alloc": {
|
|
"0x095e7baea6a6c7c4c2dfeb977efac326af552d87": {
|
|
"code": "0x60004960005500",
|
|
"balance": "0xde0b6b3a7640000"
|
|
},
|
|
"0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
|
|
"balance": "0xde0b6b3a7640000"
|
|
},
|
|
"0xd02d72e067e77158444ef2020ff2d325f929b363": {
|
|
"balance": "0xfffffffb8390",
|
|
"nonce": "0x3"
|
|
}
|
|
},
|
|
"result": {
|
|
"stateRoot": "0x3483124b6710486c9fb3e07975669c66924697c88cccdcc166af5e1218915c93",
|
|
"txRoot": "0x013509c8563d41c0ae4bf38f2d6d19fc6512a1d0d6be045079c8c9f68bf45f9d",
|
|
"receiptsRoot": "0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1",
|
|
"logsHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
|
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"receipts": [
|
|
{
|
|
"type": "0x2",
|
|
"root": "0x",
|
|
"status": "0x1",
|
|
"cumulativeGasUsed": "0x5208",
|
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"logs": null,
|
|
"transactionHash": "0xa98a24882ea90916c6a86da650fbc6b14238e46f0af04a131ce92be897507476",
|
|
"contractAddress": "0x0000000000000000000000000000000000000000",
|
|
"gasUsed": "0x5208",
|
|
"effectiveGasPrice": null,
|
|
"blockHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
"transactionIndex": "0x0"
|
|
},
|
|
{
|
|
"type": "0x2",
|
|
"root": "0x",
|
|
"status": "0x1",
|
|
"cumulativeGasUsed": "0xa410",
|
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
"logs": null,
|
|
"transactionHash": "0x36bad80acce7040c45fd32764b5c2b2d2e6f778669fb41791f73f546d56e739a",
|
|
"contractAddress": "0x0000000000000000000000000000000000000000",
|
|
"gasUsed": "0x5208",
|
|
"effectiveGasPrice": null,
|
|
"blockHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
"transactionIndex": "0x1"
|
|
}
|
|
],
|
|
"rejected": [
|
|
{
|
|
"index": 1,
|
|
"error": "rlp: input string too short for common.Address, decoding into (types.Transaction)(types.BlobTx).To"
|
|
}
|
|
],
|
|
"currentDifficulty": null,
|
|
"gasUsed": "0xa410",
|
|
"currentBaseFee": "0x7",
|
|
"withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"
|
|
}
|
|
}
|
|
|
|
``` |