# Функции блокчейна
# addressFromRecipient(Address|Alias): Address
Получает адрес, соответствующий псевдониму.
addressFromRecipient(AddressOrAlias: Address|Alias): Address
Описание возвращаемой структуры см. в разделе Address.
# Параметры
Параметр | Описание |
---|---|
AddressOrAlias : Address|Alias | Адрес или псевдоним, обычно получателя транзакции |
# Пример
let address =Address(base58'3NADPfTVhGvVvvRZuqQjhSU4trVqYHwnqjF')
addressFromRecipient(address)
# assetBalance
Получает баланс аккаунта по ID ассета.
Баланс учитывает платежи, приложенные к текущему вызову скрипта. На баланс не влияют переводы (ScriptTransfer
), выполненные текущей вызываемой функцией (а вложенные вызовы — влияют).
Для получения баланса WAVES используйте функцию wavesBalance.
assetBalance(addressOrAlias: Address|Alias, assetId: ByteVector): Int
# Параметры
Параметр | Описание |
---|---|
addressOrAlias : Address|Alias | Адрес или псевдоним аккаунта |
assetId : ByteVector | ID токена |
# Пример
let address = Address(base58'3PJaDyprvekvPXPuAtxrapacuDJopgJRaU3')
let bitcoinId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
assetBalance(address, bitcoinId) # Возвращает баланс в биткойне
# assetInfo
Получает параметры ассета по его ID.
Получение параметров WAVES с помощью функции assetInfo
не предусмотрено.
assetInfo(id: ByteVector): Аsset|Unit
Описание возвращаемой структуры см. в разделе Asset.
# Параметры
Параметр | Описание |
---|---|
id : ByteVector | ID токена |
# Пример
let bitcoinId = base58'8LQW8f7P5d5PZM7GtZEBgaqRPGSzS3DfPuiXrURJ4AJS'
let x = match assetInfo(bitcoinId) {
case asset:Asset =>
asset.decimals # 8
case _ => throw("Can't find asset")
}
# blockInfoByHeight
Получает информацию о блоке по высоте блока.
blockInfoByHeight(height: Int): BlockInfo|Unit
Описание возвращаемой структуры см. в разделе BlockInfo.
# Параметры
Параметр | Описание |
---|---|
height : Int | Высота блока |
# Пример
let x = match blockInfoByHeight(1234567) {
case block:BlockInfo =>
block.generator.toString() # "3P38Z9aMhGKAWnCiyMW4T3PcHcRaTAmTztH"
case _ => throw("Can't find block")
}
# calculateAssetId
Вычисляет ID ассета, созданного структурой Issue при выполнении вызываемой функции.
calculateAssetId(issue: Issue): ByteVector
# Параметры
Параметр | Описание |
---|---|
issue : Issue | Структура, при помощи которой сформирован ассет |
# Пример
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(inv)
func issueAndId() = {
let issue = Issue("CryptoRouble", "Description", 1000, 2, true)
let id = calculateAssetId(issue)
(
[
issue,
BinaryEntry("id", id)
],
unit
)
}
# calculateDelay
Вычисляет временную задержку в миллисекундах перед генерацией блока в соответствии с формулой Fair PoS (c Tmin = 0).
⚠️ Функция добавлена в Стандартной библиотеке версии 8.
func calculateDelay(generator: Address, balance: Int): Int
# Параметры
Параметр | Описание |
---|---|
generator : Address | Адрес, байты которого вместе с VRF текущего блока используются для получения хита, подставляемого в формулу |
balance : Int | Значение генерирующего баланса в WAVELET, подставляемое в формулу |
# Пример
calculateDelay(i.caller, i.caller.wavesBalance().generating)
# calculateLeaseId
Вычисляет ID лизинга, созданного структурой Lease при выполнении вызываемой функции.
calculateLeaseId(lease: Lease): ByteVector
# Параметры
Параметр | Описание |
---|---|
lease : Lease | Структура, задающая параметры лизинга |
# Пример
{-# STDLIB_VERSION 8 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(i)
func foo() = {
let lease = Lease(Alias("merry"),100000000)
let id = calculateLeaseId(lease)
(
[
lease,
BinaryEntry("lease", id)
],
unit
)
}
# scriptHash
Возвращает BLAKE2b-256-хеш скрипта, установленного на аккаунте. Возвращает unit
, если скрипт отсутствует.
Функция может использоваться для проверки того, что скрипт совпадает с ожидаемым.
scriptHash(addressOrAlias: Address|Alias): ByteVector|Unit
# Параметры
Параметр | Описание |
---|---|
addressOrAlias : Address|Alias | Адрес или псевдоним аккаунта |
# Пример
let addr = Address(base58'3MxBZbnN8Z8sbYjjL5N3oG5C8nWq9NMeCEm')
scriptHash(addr) # Возвращает base58'G6ihnWN5mMedauCgNa8TDrSKWACPJKGQyYagmMQhPuja'
# transactionHeightById
Получает высоту блока транзакции. Для транзакций с неудачным результатом выполнения скрипта (см. раздел Валидация транзакции) или пропущенных в результате оспаривания блока (см. раздел Waves 1.5: легкая нода) возвращает unit
.
transactionHeightById(id: ByteVector): Int|Unit
# Параметры
Параметр | Описание |
---|---|
id : ByteVector | ID транзакции |
# transferTransactionById
Получает данные транзакции перевода. Для транзакций, пропущенных в результате оспаривания блока (см. раздел Waves 1.5: легкая нода), возвращает unit
.
transferTransactionById(id: ByteVector): TransferTransaction|Unit
Описание возвращаемой структуры см. в разделе TransferTransaction.
# Параметры
Параметр | Описание |
---|---|
id : ByteVector | ID транзакции перевода |
# Пример
let transferId = base58'J2rcMzCWCZ1P3SFZzvz9PR2NtBjomDh57HTcqptaAJHK'
let x = match transferTransactionById(transferId) {
case ttx:TransferTransaction =>
ttx.amount # 3500000000
case _ => throw("Can't find transaction")
}
# wavesBalance
Возвращает все виды баланса WAVES аккаунта. О видах баланса см. в разделе Баланс аккаунта.
Баланс учитывает платежи, приложенные к вызову скрипта. На баланс не влияют переводы (ScriptTransfer
), выполненные текущей вызываемой функцией (а вложенные вызовы — влияют).
wavesBalance(addressOrAlias: Address|Alias): BalanceDetails
Описание возвращаемой структуры см. в разделе BalanceDetails.
# Параметры
Параметр | Описание |
---|---|
addressOrAlias : Address|Alias | Адрес или псевдоним аккаунта |