-
Notifications
You must be signed in to change notification settings - Fork 846
Expand file tree
/
Copy pathheader-from-rpc.ts
More file actions
39 lines (36 loc) · 1.3 KB
/
header-from-rpc.ts
File metadata and controls
39 lines (36 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { BlockHeader } from './header'
import { KECCAK256_NULL, toBuffer } from 'ethereumjs-util'
import { BlockOptions } from './types'
/**
* Creates a new block header object from Ethereum JSON RPC.
*
* @param blockParams - Ethereum JSON RPC of block (eth_getBlockByNumber)
* @param chainOptions - An object describing the blockchain
*/
export default function blockHeaderFromRpc(blockParams: any, options?: BlockOptions) {
const blockHeader = BlockHeader.fromHeaderData(
{
parentHash: blockParams.parentHash,
uncleHash: blockParams.sha3Uncles,
coinbase: blockParams.miner,
stateRoot: blockParams.stateRoot,
transactionsTrie: blockParams.transactionsRoot,
receiptTrie: blockParams.receiptRoot || blockParams.receiptsRoot || KECCAK256_NULL,
bloom: blockParams.logsBloom,
difficulty: blockParams.difficulty,
number: blockParams.number,
gasLimit: blockParams.gasLimit,
gasUsed: blockParams.gasUsed,
timestamp: blockParams.timestamp,
extraData: blockParams.extraData,
mixHash: blockParams.mixHash,
nonce: blockParams.nonce,
},
options,
)
// override hash in case something was missing TODO: why do we need this?
//blockHeader.hash = function () {
// return toBuffer(blockParams.hash)
//}
return blockHeader
}