Я пытаюсь проверить этот код смарт-контракта ликвидности, но если показывает ошибку. Ликвидность похожа на ocaml, умный контрактный язык Tezos. - PullRequest
0 голосов
/ 08 января 2019

Я пытался проверить первую точку входа в эту игру - игру. Но когда он пытается его скомпилировать, появляется какая-то ошибка. Как мне поступить или мне чего-то не хватает?

[%%version 0.4]

type game = {
  number : nat;
  bet : tez;
  player : key_hash;
} 

type storage = {
  game : game option;
  oracle_id : address;
}

let%entry play (number : nat) storage = 
  if number>100p then Current.failwith "number must be <=100";
  if 2p.Current.amount()>Current.balance() then Current.failwith"less balance";

  match storage.game with
  |some g -> failwith ("game has already started",g)
  |None -> 
      let bet = Current.amount() in
      let storage = storage.game <- Some {number, bet, player} in
      (([]:operation list),storage)

1 Ответ

0 голосов
/ 08 января 2019

Вы забыли инициализировать, добавьте этот код:

let%init storage (oracle_id : address) =
  {game = (None : game option); oracle_id}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...