# [Ride v5] Функции блокчейна
⚠️ Это документация Стандартной библиотеки версии 5. Рекомендуем использовать версию 6. Перейти к версии 6
| Название | Описание | Сложность |
|---|---|---|
| addressFromRecipient(Address|Alias): Address | Получает адрес, соответствующий псевдониму | 5 |
| assetBalancе(Address|Alias, ByteVector): Int | Получает баланс аккаунта по ID токена | 10 |
| assetInfo(ByteVector): Аsset|Unit | Получает информацию о токене | 15 |
| blockInfoByHeight(Int): BlockInfo|Unit | Получает информацию о блоке по высоте блока | 5 |
| calculateAssetId(Issue): ByteVector | Вычисляет ID ассета, созданного структурой Issue при выполнении вызываемой функции | 10 |
| calculateLeaseId(Lease): ByteVector | Вычисляет ID ассета, созданного структурой Lease при выполнении вызываемой функции | 1 |
| scriptHash(Address|Alias): ByteVector|Unit | Возвращает BLAKE2b-256-хеш скрипта, установленного на аккаунте | 200 |
| transactionHeightById(ByteVector): Int|Unit | Получает высоту блока транзакции | 20 |
| transferTransactionById(ByteVector): TransferTransaction|Unit | Получает данные транзакции перевода | 60 |
| wavesBalance(Address|Alias): BalanceDetails | Получает баланс аккаунта в WAVES | 10 |
# addressFromRecipient(Address|Alias): Address
Получает адрес, соответствующий псевдониму.
addressFromRecipient(AddressOrAlias: Address|Alias): Address
Описание возвращаемой структуры см. в разделе Address.
# Параметры
| Параметр | Описание |
|---|---|
AddressOrAlias: Address|Alias | Адрес или псевдоним, обычно получателя транзакции |
# Примеры
let address =Address(base58'3NADPfTVhGvVvvRZuqQjhSU4trVqYHwnqjF')
addressFromRecipient(address)
# assetBalance
Получает баланс аккаунта по ID токена.
Баланс учитывает платежи, приложенные к вызову скрипта. На баланс не влияют переводы (ScriptTransfer), выполненные текущей вызываемой функцией (а вложенные вызовы — влияют).
assetBalance(addressOrAlias: Address|Alias, assetId: ByteVector): Int
# Параметры
| Параметр | Описание |
|---|---|
addressOrAlias: Address|Alias | Адрес или псевдоним аккаунта |
assetId: ByteVector | ID токена |
# 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 5 #-}
{-# 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
)
}
# calculateLeaseId
Вычисляет ID лизинга, созданного структурой Lease при выполнении вызываемой функции.
calculateLeaseId(lease: Lease): ByteVector
# Параметры
| Параметр | Описание |
|---|---|
lease: Lease | Структура, задающая параметры лизинга |
# Пример
{-# STDLIB_VERSION 5 #-}
{-# 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 аккаунта. О видах баланса см. в разделe Баланс аккаунта.
Баланс учитывает платежи, приложенные к вызову скрипта. На баланс не влияют переводы (ScriptTransfer), выполненные текущей вызываемой функцией (а вложенные вызовы — влияют).
wavesBalance(addressOrAlias: Address|Alias): BalanceDetails
Описание возвращаемой структуры см. в разделе BalanceDetails.
# Параметры
| Параметр | Описание |
|---|---|
addressOrAlias: Address|Alias | Адрес или псевдоним аккаунта |