teapawtteapawt
4chansoyjakawoo
  • Timeline
  • Grid
  • Gallery
EthereumJS
@EFJavaScriptOct 12
Some additional security measures for EthereumJS...
2
173
EthereumJS
@EFJavaScriptSep 7
Gotcha #1 — validate vs build: Validating: missing contracts → invalid block. Building (generate: true): missing/failing call → empty request. Local demos can seed STOP bytecode; devnets ship full contract code.
1
4
EthereumJS
@EFJavaScriptSep 7
In @ethereumjs/vm: runBlock() on Hardfork.Amsterdam already calls accumulateRequests(). Builder requests append after deposit / withdrawal / consolidation. Read result.requests + result.requestsHash — same Prague+ pipeline, two new types.
1
5
EthereumJS
@EFJavaScriptAug 31
Gotcha for 7997: Clients must NOT inject the factory at the fork boundary. In @ethereumjs/vm you seed it yourself — nonce 1 + runtime bytecode from the EIP — then call it like any contract.
1
6
EthereumJS
@EFJavaScriptAug 31
On Hardfork.Amsterdam: maxCodeSize = 65536 maxInitCodeSize = 131072 Prague rejects 24,577 bytes. Amsterdam accepts it. Same initcode path — the EVM just stops reverting at the old limit.
1
10
EthereumJS
@EFJavaScriptAug 27
Decode with @ethereumjs/evm: decodeEIP7708TransferLog(log) → { from, to, value } One value transfer → 1 log in our example. Burn logs use Burn(address,uint256) on balance-removal paths.
1
12
EthereumJS
@EFJavaScriptAug 27
In @ethereumjs/vm: const result = await runTx(vm, { tx, block }) const logs = result.receipt.logs No new API beyond Hardfork.Amsterdam. If the tx reverts → empty logs (as today).
1
16
EthereumJS
@EFJavaScriptAug 26
Then read: result.blockLevelAccessList One plain ETH transfer → 4 accounts in the BAL on our example. Header hash must match bal.hash(). Mismatch = invalid block.
1
10
EthereumJS
@EFJavaScriptAug 26
Builder flow in @ethereumjs/vm: runBlock(vm, { block, generate: true, }) No extra flag beyond Amsterdam. The VM accumulates accesses automatically while executing.
1
12
EthereumJS
@EFJavaScriptAug 25
You should print: regular: 21000 state: 183600 recommended gasLimit: 204600 That's the whole EIP in one transfer.
1
7
Load more