Add SSTORE definition

This commit is contained in:
Tobias Eidelpes 2021-06-03 10:12:59 +02:00
parent 86929c7dc8
commit 800a8a526f

View File

@ -128,7 +128,9 @@ let step te cs =
| (MSTORE, p::v::stack') -> Next (Exec(((gas-1, pc+1, update mem p v, stack'), (actor, input, code), gs)::ps)) | (MSTORE, p::v::stack') -> Next (Exec(((gas-1, pc+1, update mem p v, stack'), (actor, input, code), gs)::ps))
| (MLOAD, p::stack') -> let v = (mem p) in | (MLOAD, p::stack') -> let v = (mem p) in
Next (Exec(((gas-1, pc+1, mem, v::stack'), (actor, input, code), gs') :: ps)) Next (Exec(((gas-1, pc+1, mem, v::stack'), (actor, input, code), gs') :: ps))
| (SSTORE, p::v::stack') -> magic () | (SSTORE, p::v::stack') -> let acc = (let (bal, stor, code) = gs actor in (bal, update stor p v, code)) in
let gs' = update gs actor acc in
Next (Exec(((gas-1, pc+1, mem, stack'), (actor, input, code), gs') :: ps))
| (SLOAD, v::stack') -> Next (Exec(((gas-1, pc+1, mem, (let (bal, stor, code) = gs actor in stor v)::stack'), (actor, input, code), gs)::ps)) | (SLOAD, v::stack') -> Next (Exec(((gas-1, pc+1, mem, (let (bal, stor, code) = gs actor in stor v)::stack'), (actor, input, code), gs)::ps))
| (BALANCE, a::stack') -> magic () | (BALANCE, a::stack') -> magic ()
| (ADDRESS, stack') -> Next (Exec(((gas-1, pc+1, mem, actor::stack'), (actor, input, code), gs)::ps)) | (ADDRESS, stack') -> Next (Exec(((gas-1, pc+1, mem, actor::stack'), (actor, input, code), gs)::ps))