import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . ke v em . e vm . collections . BigInteger Index edList Ċ Ċ import Ġorg . ke v em . e vm . model .* Ċ import Ġorg . ke v em . rpc .* Ċ import Ġtest . Test Objects Ċ import Ġjava . math . BigInteger Ċ Ċ class ĠStandard E vm Operations Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Balance Ġworks Ġall Ġblock Ġreference Ġtypes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare And Check ForAll Block Types ({ Ġws Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġws . copy ( accounts Ġ= Ġws . accounts . update Balance ( Address (" 0 x ABC "), ĠBigInteger . TEN )) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġunder Test , Ġblock Reference Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġunder Test . get Balance ( Address (" 0 x ABC "), Ġblock Reference ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( balance ). isEqualTo ( BigInteger . TEN ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` get Storage At Ġworks Ġall Ġblock Ġreference Ġtypes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare And Check ForAll Block Types ({ Ġws Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġws . copy ( accounts Ġ= Ġws . accounts . update Storage ( Address (" 0 x ABC "), ĠBigInteger . ZERO , ĠWord . coerce From (" 0 x 1 2 3 4 "))) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġunder Test , Ġblock Reference Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstorage Ġ= Ġunder Test . get Storage At ( Address (" 0 x ABC "), ĠBigInteger . ZERO , Ġblock Reference ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( storage ). isEqualTo ( Word . coerce From (" 0 x 1 2 3 4 ")) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` getCode Ġworks Ġall Ġblock Ġreference Ġtypes `() Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare And Check ForAll Block Types ({ Ġws Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġws . copy ( accounts Ġ= Ġws . accounts . update Contract ( Address (" 0 x ABC "), ĠContract ( BigInteger Index edList . from ByteString (" 0 x 1 2 3 4 ")) )) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġunder Test , Ġblock Reference Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġunder Test . getCode ( Address (" 0 x ABC "), Ġblock Reference ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( code ). isEqualTo ( BigInteger Index edList . from ByteString (" 0 x 1 2 3 4 "). toList ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare And Check ForAll Block Types ( ĊĠĠĠĠĠĠĠ Ġprepare World State : Ġ( ws : ĠWorld State ) Ġ-> ĠWorld State , ĊĠĠĠĠĠĠĠ Ġexecute Check For Block : Ġ( Standard E vm Operations , Ġbr : ĠBlock Reference ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Check For Block ( pending World State ( op Ġ= Ġprepare World State ), ĠPending Block ) ĊĠĠĠĠĠĠĠ Ġexecute Check For Block ( latest World State ( op Ġ= Ġprepare World State ), ĠLatest Block ) ĊĠĠĠĠĠĠĠ Ġexecute Check For Block ( ear liest World State ( op Ġ= Ġprepare World State ), ĠE ar liest Block ) ĊĠĠĠĠĠĠĠ Ġexecute Check For Block ( by Number World State ( op Ġ= Ġprepare World State ), ĠNumeric Block ( BigInteger . ONE )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġear liest World State ( ĊĠĠĠĠĠĠĠ Ġc : ĠE vm Config Ġ= ĠE vm Config (), ĊĠĠĠĠĠĠĠ Ġop : Ġ( ws : ĠWorld State ) Ġ-> ĠWorld State ĊĠĠĠ Ġ): ĠStandard E vm Operations Ġ= ĊĠĠĠĠĠĠĠ ĠStandard E vm Operations ( mock Ġ{ Ġon Ġ{ Ġget E ar liest World State () Ġ} Ġdo Return Ġop ( Test Objects . world State ) Ġ}, Ġc ) ĊĊĠĠĠ Ġprivate Ġfun Ġlatest World State ( ĊĠĠĠĠĠĠĠ Ġc : ĠE vm Config Ġ= ĠE vm Config (), ĊĠĠĠĠĠĠĠ Ġop : Ġ( ws : ĠWorld State ) Ġ-> ĠWorld State ĊĠĠĠ Ġ): ĠStandard E vm Operations Ġ= ĊĠĠĠĠĠĠĠ ĠStandard E vm Operations ( mock Ġ{ Ġon Ġ{ Ġget World State () Ġ} Ġdo Return Ġop ( Test Objects . world State ) Ġ}, Ġc ) ĊĊĠĠĠ Ġprivate Ġfun Ġpending World State ( ĊĠĠĠĠĠĠĠ Ġc : ĠE vm Config Ġ= ĠE vm Config (), ĊĠĠĠĠĠĠĠ Ġop : Ġ( ws : ĠWorld State ) Ġ-> ĠWorld State ĊĠĠĠ Ġ): ĠStandard E vm Operations Ġ= ĊĠĠĠĠĠĠĠ ĠStandard E vm Operations ( mock Ġ{ Ġon Ġ{ Ġget Pending World State () Ġ} Ġdo Return Ġop ( Test Objects . world State ) Ġ}, Ġc ) ĊĊĊĠĠĠ Ġprivate Ġfun Ġby Number World State ( ĊĠĠĠĠĠĠĠ Ġc : ĠE vm Config Ġ= ĠE vm Config (), ĊĠĠĠĠĠĠĠ Ġop : Ġ( ws : ĠWorld State ) Ġ-> ĠWorld State ĊĠĠĠ Ġ): ĠStandard E vm Operations Ġ= ĊĠĠĠĠĠĠĠ ĠStandard E vm Operations ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock Ġ{ Ġon Ġ{ Ġfind World State At Block ( BigInteger . ONE ) Ġ} Ġdo Return Ġop ( Test Objects . world State ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ĊĠĠĠĠĠĠĠ Ġ) Ċ }