hevm-0.51.1: Ethereum virtual machine evaluator
Safe HaskellSafe-Inferred
LanguageGHC2021

EVM.Transaction

Synopsis

Documentation

data AccessListEntry Source #

Constructors

AccessListEntry 

Fields

Instances

Instances details
FromJSON AccessListEntry Source # 
Instance details

Defined in EVM.Transaction

ToJSON AccessListEntry Source # 
Instance details

Defined in EVM.Transaction

Generic AccessListEntry Source # 
Instance details

Defined in EVM.Transaction

Associated Types

type Rep AccessListEntry :: Type -> Type #

Show AccessListEntry Source # 
Instance details

Defined in EVM.Transaction

type Rep AccessListEntry Source # 
Instance details

Defined in EVM.Transaction

type Rep AccessListEntry = D1 ('MetaData "AccessListEntry" "EVM.Transaction" "hevm-0.51.1-inplace" 'False) (C1 ('MetaCons "AccessListEntry" 'PrefixI 'True) (S1 ('MetaSel ('Just "address") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Addr) :*: S1 ('MetaSel ('Just "storageKeys") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [W256])))

data TxType Source #

Instances

Instances details
ToJSON TxType Source # 
Instance details

Defined in EVM.Transaction

Generic TxType Source # 
Instance details

Defined in EVM.Transaction

Associated Types

type Rep TxType :: Type -> Type #

Methods

from :: TxType -> Rep TxType x #

to :: Rep TxType x -> TxType #

Show TxType Source # 
Instance details

Defined in EVM.Transaction

Eq TxType Source # 
Instance details

Defined in EVM.Transaction

Methods

(==) :: TxType -> TxType -> Bool #

(/=) :: TxType -> TxType -> Bool #

type Rep TxType Source # 
Instance details

Defined in EVM.Transaction

type Rep TxType = D1 ('MetaData "TxType" "EVM.Transaction" "hevm-0.51.1-inplace" 'False) (C1 ('MetaCons "LegacyTransaction" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "AccessListTransaction" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "EIP1559Transaction" 'PrefixI 'False) (U1 :: Type -> Type)))

data Transaction Source #

Instances

Instances details
FromJSON Transaction Source # 
Instance details

Defined in EVM.Transaction

ToJSON Transaction Source # 
Instance details

Defined in EVM.Transaction

Generic Transaction Source # 
Instance details

Defined in EVM.Transaction

Associated Types

type Rep Transaction :: Type -> Type #

Show Transaction Source # 
Instance details

Defined in EVM.Transaction

type Rep Transaction Source # 
Instance details

Defined in EVM.Transaction

type Rep Transaction = D1 ('MetaData "Transaction" "EVM.Transaction" "hevm-0.51.1-inplace" 'False) (C1 ('MetaCons "Transaction" 'PrefixI 'True) (((S1 ('MetaSel ('Just "txdata") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString) :*: (S1 ('MetaSel ('Just "gasLimit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just "gasPrice") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe W256)))) :*: ((S1 ('MetaSel ('Just "nonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: S1 ('MetaSel ('Just "r") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256)) :*: (S1 ('MetaSel ('Just "s") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: S1 ('MetaSel ('Just "toAddr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Addr))))) :*: ((S1 ('MetaSel ('Just "v") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: (S1 ('MetaSel ('Just "value") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: S1 ('MetaSel ('Just "txtype") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxType))) :*: ((S1 ('MetaSel ('Just "accessList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [AccessListEntry]) :*: S1 ('MetaSel ('Just "maxPriorityFeeGas") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe W256))) :*: (S1 ('MetaSel ('Just "maxFeePerGas") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe W256)) :*: S1 ('MetaSel ('Just "chainId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256))))))

txAccessMap :: Transaction -> Map Addr [W256] Source #

utility function for getting a more useful representation of accesslistentries duplicates only matter for gas computation

setupTx :: Addr -> Addr -> W256 -> Word64 -> Map Addr Contract -> Map Addr Contract Source #

Increments origin nonce and pays gas deposit

initTx :: VM -> VM Source #

Given a valid tx loaded into the vm state, subtract gas payment from the origin, increment the nonce and pay receiving address