open import Ledger.Core.Foreign.ExternalFunctions
module Ledger.Core.Foreign.Crypto.Structure
(externalFunctions : ExternalFunctions) where
open import Foreign.HaskellTypes.Deriving
open import Foreign.Convertible.Deriving
open import Tactic.Derive.Show
open import Ledger.Prelude
open import Ledger.Prelude.Foreign.HSTypes
open import Ledger.Prelude.Foreign.Util
open import Ledger.Core.Specification.Crypto
open import Ledger.Core.Foreign.Crypto.Base
open ExternalFunctions externalFunctions
HSPKKScheme : PKKScheme
HSPKKScheme = record
{ SKey = ℕ
; VKey = HSVKey
; Sig = ℕ
; Ser = ℕ
; isKeyPair = λ sk vk → sk ≡ HSVKey.hvkVKey vk
; isSigned = λ a b m → extIsSigned (HSVKey.hvkVKey a) b m ≡ true
; sign = λ _ _ → 0
; isSigned-correct = error "isSigned-correct evaluated"
}
HSCryptoStructure : CryptoStructure
HSCryptoStructure = record {
pkk = HSPKKScheme
; ScriptHash = ℕ
}
open CryptoStructure HSCryptoStructure
unquoteDecl = do
hsTypeAlias ScriptHash