From 800a8a526f4e2dd4148d8a9c4b6a29c5064c7f15 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Thu, 3 Jun 2021 10:12:59 +0200 Subject: [PATCH] Add SSTORE definition --- Project2.fst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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))