module Ledger.Dijkstra.Foreign.Ledger where
open import Class.Convertible
open import Class.Convertible.Foreign
open import Tactic.Derive.Convertible
open import Class.HasHsType
open import Class.HasHsType.Foreign
open import Tactic.Derive.HsType
open import Ledger.Prelude
open import Ledger.Prelude.Foreign.HSTypes
open import Ledger.Core.Foreign.Address
open import Ledger.Dijkstra.Foreign.HSStructures
open import Ledger.Dijkstra.Foreign.PParams
open import Ledger.Dijkstra.Foreign.Cert
open import Ledger.Dijkstra.Foreign.Enact
open import Ledger.Dijkstra.Foreign.Gov
open import Ledger.Dijkstra.Foreign.Utxo
open import Ledger.Dijkstra.Foreign.Transaction
open import Ledger.Dijkstra.Specification.Ledger it DummyAbstractFunctions
open import Ledger.Dijkstra.Specification.Ledger.Properties.Computational it DummyAbstractFunctions
open Computational
instance
HsTy-SubLedgerEnv = autoHsType SubLedgerEnv ⊣ withConstructor "MkSubLedgerEnv"
• fieldPrefix "sle"
Conv-SubLedgerEnv = autoConvert SubLedgerEnv
HsTy-LedgerEnv = autoHsType LedgerEnv ⊣ withConstructor "MkLedgerEnv"
• fieldPrefix "le"
Conv-LedgerEnv = autoConvert LedgerEnv
HsTy-LedgerState = autoHsType LedgerState ⊣ withConstructor "MkLedgerState"
• fieldPrefix "ls"
Conv-LedgerState = autoConvert LedgerState
ledger-step : HsType (LedgerEnv → LedgerState → Tx TxLevelTop → ComputationResult String LedgerState)
ledger-step = to (compute Computational-LEDGER)
{-# COMPILE GHC ledger-step as ledgerStep #-}
ledgers-step : HsType (LedgerEnv → LedgerState → List (Tx TxLevelTop) → ComputationResult String LedgerState)
ledgers-step = to (compute Computational-LEDGERS)
{-# COMPILE GHC ledgers-step as ledgersStep #-}