diff --git a/Project2.fst b/Project2.fst index 67ec6a9..3a951fa 100644 --- a/Project2.fst +++ b/Project2.fst @@ -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)) | (MLOAD, p::stack') -> let v = (mem p) in 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)) | (BALANCE, a::stack') -> magic () | (ADDRESS, stack') -> Next (Exec(((gas-1, pc+1, mem, actor::stack'), (actor, input, code), gs)::ps))