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

EVM.Transaction

Synopsis

Documentation

data AccessListEntry Source #

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.50.4-inplace" 'False) (C1 ('MetaCons "AccessListEntry" 'PrefixI 'True) (S1 ('MetaSel ('Just "accessAddress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Addr) :*: S1 ('MetaSel ('Just "accessStorageKeys") '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.50.4-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.50.4-inplace" 'False) (C1 ('MetaCons "Transaction" 'PrefixI 'True) (((S1 ('MetaSel ('Just "txData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ByteString) :*: (S1 ('MetaSel ('Just "txGasLimit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just "txGasPrice") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe W256)))) :*: ((S1 ('MetaSel ('Just "txNonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: S1 ('MetaSel ('Just "txR") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256)) :*: (S1 ('MetaSel ('Just "txS") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: S1 ('MetaSel ('Just "txToAddr") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Addr))))) :*: ((S1 ('MetaSel ('Just "txV") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: (S1 ('MetaSel ('Just "txValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 W256) :*: S1 ('MetaSel ('Just "txType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 TxType))) :*: ((S1 ('MetaSel ('Just "txAccessList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [AccessListEntry]) :*: S1 ('MetaSel ('Just "txMaxPriorityFeeGas") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe W256))) :*: (S1 ('MetaSel ('Just "txMaxFeePerGas") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe W256)) :*: S1 ('MetaSel ('Just "txChainId") '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