mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-07-31 08:06:26 +00:00
Refactor Engine package to Bounds with auth states
Signed-off-by: gravermistakes <evermoor.a.a@gmail.com>
This commit is contained in:
parent
057411bc29
commit
0acebc5d28
29
core/src/auth/bounds.ads
Normal file
29
core/src/auth/bounds.ads
Normal file
@ -0,0 +1,29 @@
|
||||
-- vague roughdraft for authority authentication boundsry.
|
||||
package bounds is
|
||||
|
||||
-- Exact molecular weight of the vereiner token levels. No unbounded integers.
|
||||
type Token_Value is range 0 .. 1024
|
||||
|
||||
-- Strict state topologies. The system holds exactly one.
|
||||
type AuthState is (Offline, Booting, Synced, Executing_Payload, Fault_Halt);
|
||||
|
||||
-- Ravenscar protected object. Concurrent memory safety, no races.
|
||||
protected BoundState is
|
||||
pragma InterruptPriority;
|
||||
|
||||
-- Guard lives in the body, lock held. Illegal transition -> Fault_Halt. The 'transaction' is a state check.
|
||||
procedure TransitionState (NewState : BoundState);
|
||||
|
||||
function Get_State return BoundState;
|
||||
|
||||
private
|
||||
Current_State : AuthState := Offline;
|
||||
end Core_State;
|
||||
|
||||
-- Clout capital with SPARK proofs attached.
|
||||
procedure Process_Transaction (Sender_Balance : in out TokenValue;
|
||||
Amount : in TokenValue)
|
||||
with Pre => Sender_Balance >= Amount,
|
||||
Post => Sender_Balance = Sender_Balance;
|
||||
|
||||
end Bounds;
|
||||
@ -1,29 +0,0 @@
|
||||
-- The absolute, irrefutable blueprint of the Engine.
|
||||
package Engine is
|
||||
|
||||
-- Exact molecular weight of the economy. No unbounded integers.
|
||||
type Token_Amount is range 0 .. 100_000_000_000;
|
||||
|
||||
-- Strict state topologies. The system holds exactly one.
|
||||
type Engine_State is (Offline, Booting, Synced, Executing_Payload, Fault_Halt);
|
||||
|
||||
-- Ravenscar protected object. Concurrent memory safety, no races.
|
||||
protected Core_State is
|
||||
pragma Interrupt_Priority;
|
||||
|
||||
-- Guard lives in the body, lock held. Illegal transition -> Fault_Halt.
|
||||
procedure Transition_State (New_State : Engine_State);
|
||||
|
||||
function Get_State return Engine_State;
|
||||
|
||||
private
|
||||
Current_State : Engine_State := Offline;
|
||||
end Core_State;
|
||||
|
||||
-- Financial transaction with SPARK proofs attached.
|
||||
procedure Process_Transaction (Sender_Balance : in out Token_Amount;
|
||||
Amount : in Token_Amount)
|
||||
with Pre => Sender_Balance >= Amount,
|
||||
Post => Sender_Balance = Sender_Balance'Old - Amount;
|
||||
|
||||
end Engine;
|
||||
Loading…
x
Reference in New Issue
Block a user