# [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 | Адрес или псевдоним аккаунта |