mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-07-31 16:16: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