Skip to content

Instantly share code, notes, and snippets.

@BekaValentine
Last active May 22, 2017 17:11
Show Gist options
  • Select an option

  • Save BekaValentine/39f0f4deea0a89c20fe48387e2c7dae5 to your computer and use it in GitHub Desktop.

Select an option

Save BekaValentine/39f0f4deea0a89c20fe48387e2c7dae5 to your computer and use it in GitHub Desktop.
(module Validator
(import Prelude)
(export validator)
(local)
;; validator :: ByteString -> Comp Unit
(define validator
(lam sig
(bind
(txhash)
signedHash
[Prelude.verifySig
<authorizedPublicKey>
sig
signedHash]))))
(module Redeemer
(import)
(export redeemer)
(local)
;; redeemer :: Comp ByteString
(define redeemer
(success <redeemingSig>)))
(module Validator
(import Prelude)
(export validator)
(local)
;; validator :: List (Maybe ByteString) -> Comp Unit
(define validator
(lam sigs
(bind
(txhash)
signedHash
[Prelude.verifyMultiSig
<minNumSignaturessRequired>
<allAuthorizedPublicKeys>
signedHash
sigs]))))
(module Redeemer
(import Prelude)
(export redeemer)
(local)
;; redeemer :: Comp (List (Maybe ByteString))
(define redeemer
(success <redeemingSigs>)))
(module Validator
(import Prelude)
(export validator)
(local notSoSecretNumber)
(define notSoSecretNumber 42)
;; validator :: Integer -> Comp Unit
(define validator
(lam guess
(case (builtin equalsInteger guess notSoSecretNumber)
(cl Prelude.True () (success Prelude.Unit))
(cl Prelude.False () (failure))))))
(module Redeemer
(import)
(export redeemer)
(local)
;; redeemer :: Comp Integer
(define redeemer (success 64)))
(module Validator
(import Prelude)
(export validator)
(local secretNumber)
(define secretNumber <hashOf42>)
;; validator :: Integer -> Comp Unit
(define validator
(lam guess
(case (builtin equalsByteString
(builtin sha2_256
(builtin intToByteString guess))
secretNumber)
(cl Prelude.True () (success Prelude.Unit))
(cl Prelude.False () (failure))))))
(module Redeemer
(import)
(export redeemer)
(local)
;; redeemer :: Comp Integer
(define redeemer (success 64)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment