Contract - TGAZT-V0
Address:
ID:

SUMMARY
FULL NAMETest Get Available Zen Tokens V0
STATUSInactive
TRANSACTIONS0
LAST ACTIVATION BLOCK1,885
BALANCES
ASSETAMOUNT
(* NAME_START:test13:NAME_END *)

open Zen.Types
open Zen.Base
open Zen.Cost
open Zen.Asset
open Zen.Data

module D = Zen.Dictionary
module Tx = Zen.TxSkeleton
module C = Zen.Cost
module RT = Zen.ResultT
module CR = Zen.ContractResult

let cf _ _ _ _ _ wallet _ =
    4 + 64 + 2 + (64 + (0 + 64 + 3)) + 25
    |> C.ret #nat

let main txSkeleton _ contractId _ _ messageBody wallet _ =
    let! returnAddress =
      messageBody >!= tryDict
                  >?= D.tryFind "returnAddress"
                  >?= tryLock
    in

    match returnAddress with
    | Some returnAddress ->
      let! amount = Tx.getAvailableTokens zenAsset txSkeleton in

      let! txSkeleton =
        ret txSkeleton
        >>= Tx.lockToAddress zenAsset amount returnAddress in

      CR.ofTxSkel txSkeleton
    | None ->
      RT.autoFailw "returnAddress is required"