Встроенные переменные

Встроенная переменнаяпеременная контекста скрипта.

Список встроенных переменных

Название Описание
1 Buy Тип ордера
2 lastBlock Высота блокчейна в момент выполнения скрипта
3 height Информация о последнем блоке блокчейна в момент выполнения скрипта
4 nil Переменная, которая содержит пустой список.
Используется для создания списков. Например, вместо:

    let a = [5,6]

можно написать:

    let b = 5::6::nil

Списки создаются обоими способами. Первый способ — синтаксический сахар
5
  1. NOALG
  2. MD5
  3. SHA1
  4. SHA224
  5. SHA256
  6. SHA384
  7. SHA512
  8. SHA3224
  9. SHA3256
  10. SHA3384
  11. SHA3512
Переменные, которые передаются первым параметром в функцию rsaVerify
6 Sell Тип ордера
7 this Адрес отправителя транзакции или информация о токене
8 tx Транзакция или ордер
9 unit Переменная, которая содержит объект типа Unit. Переменная используется программистом для получения объекта типа Unit.
Пример 1
Функция deposit переводит 5 WAVELET на аккаунт, который вызвал эту функцию.

{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}

@Callable(inv)
func deposit() = {
  TransferSet([
    ScriptTransfer(inv.caller, 5, unit) # Перевести 5 WAVELET на аккаунт inv.caller. Вместо ID токена указан unit
  ])
}

У WAVES нет ID токена; вместо ID передается unit.
Пример 2
Функция assetInfo запрашивает информацию о токене по его ID. Далее функция isDefined проверяет, что токен с таким ID существует на блокчейне.

{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE EXPRESSION #-}
{-# SCRIPT_TYPE ACCOUNT #-}

let asset = assetInfo(base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS')
token.isDefined()

Вместо вызова функции isDefined можно использовать равенство с unit.

asset != unit
# Выражение asset != unit эквивалентно выражению token.isDefined()

results matching ""

    No results matching ""