mirror of https://github.com/status-im/nim-eth.git
57 lines
1.6 KiB
Nim
57 lines
1.6 KiB
Nim
|
# eth
|
||
|
# Copyright (c) 2024 Status Research & Development GmbH
|
||
|
# Licensed and distributed under either of
|
||
|
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||
|
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||
|
|
||
|
{.push raises: [].}
|
||
|
|
||
|
import "."/[addresses, base, hashes, transactions]
|
||
|
|
||
|
export addresses, base, hash, transactions
|
||
|
|
||
|
type
|
||
|
Topic* = Bytes32
|
||
|
# topic can be Hash32 or zero padded bytes array
|
||
|
|
||
|
Log* = object
|
||
|
address*: Address
|
||
|
topics*: seq[Topic]
|
||
|
data*: seq[byte]
|
||
|
|
||
|
# easily convertible between
|
||
|
# ReceiptType and TxType
|
||
|
ReceiptType* = TxType
|
||
|
# LegacyReceipt = TxLegacy
|
||
|
# Eip2930Receipt = TxEip2930
|
||
|
# Eip1559Receipt = TxEip1559
|
||
|
# Eip4844Receipt = TxEip4844
|
||
|
# Eip7702Receipt = TxEip7702
|
||
|
|
||
|
Receipt* = object
|
||
|
receiptType* : ReceiptType
|
||
|
isHash* : bool # hash or status
|
||
|
status* : bool # EIP-658
|
||
|
hash* : Hash32
|
||
|
cumulativeGasUsed*: GasInt
|
||
|
logsBloom* : Bloom
|
||
|
logs* : seq[Log]
|
||
|
|
||
|
const
|
||
|
LegacyReceipt* = TxLegacy
|
||
|
Eip2930Receipt* = TxEip2930
|
||
|
Eip1559Receipt* = TxEip1559
|
||
|
Eip4844Receipt* = TxEip4844
|
||
|
Eip7702Receipt* = TxEip7702
|
||
|
|
||
|
func hasStatus*(rec: Receipt): bool {.inline.} =
|
||
|
rec.isHash == false
|
||
|
|
||
|
func hasStateRoot*(rec: Receipt): bool {.inline.} =
|
||
|
rec.isHash == true
|
||
|
|
||
|
func stateRoot*(rec: Receipt): Hash32 {.inline.} =
|
||
|
doAssert(rec.hasStateRoot)
|
||
|
rec.hash
|