# [Ride v5] Встроенные функции
⚠️ Это документация Стандартной библиотеки версии 5. Рекомендуем использовать версию 6. Перейти к версии 6
Встроенная функция — функция Стандартной библиотеки.
# Математические функции
Название | Описание | Сложность |
---|---|---|
fraction(Int, Int, Int): Int | Умножает два целых числа и делит на третье без переполнения | 14 |
fraction(Int, Int, Int, Union): Int | Умножает два целых числа и делит на третье без переполнения, применяя указанный метод округления | 17 |
fraction(BigInt, BigInt, BigInt): BigInt | Умножает два больших целых числа и делит на третье без переполнения | 128 |
fraction(BigInt, BigInt, BigInt, Union): BigInt | Умножает два больших целых числа и делит на третье без переполнения, применяя указанный метод округления | 128 |
log(Int, Int, Int, Int, Int, Union): Int | Вычисляет логарифм числа по заданному основанию | 100 |
log(BigInt, Int, BigInt, Int, Int, Union): BigInt | Вычисляет логарифм числа по заданному основанию с высокой точностью | 200 |
median(List[Int]): Int | Возвращает медиану списка целых чисел | 20 |
median(List[BigInt]): BigInt | Возвращает медиану списка больших целых чисел | 160 |
pow(Int, Int, Int, Int, Int, Union): Int | Возводит число в степень | 100 |
pow(BigInt, Int, BigInt, Int, Int, Union): BigInt | Возводит число в степень с высокой точностью | 200 |
# Функции блокчейна
Название | Описание | Сложность |
---|---|---|
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 |
# Функции верификации
Название | Описание | Сложность |
---|---|---|
bn256Groth16Verify(ByteVector, ByteVector, ByteVector): Boolean | Семейство функций. Осуществляют проверку zk-SNARK по протоколу groth16 на кривой bn254 | 800–1650 |
createMerkleRoot(List[ByteVector], ByteVector, Int) : ByteVector | Вычисляет корневой хеш дерева Меркла транзакций блока | 30 |
ecrecover(messageHash: ByteVector, signature: ByteVector) | Восстанавливает открытый ключ из хеша сообщения и цифровой подписи ECDSA | 70 |
groth16Verify(ByteVector, ByteVector, ByteVector): Boolean | Семейство функций. Осуществляют проверку zk-SNARK по протоколу groth16 на кривой bls12-381 | 1200–2700 |
rsaVerify(digestAlgorithmType, ByteVector, ByteVector, ByteVector): Boolean | Семейство функций. Проверяют, что цифровая подпись RSA достоверна | 500–1000 |
sigVerify(ByteVector, ByteVector, ByteVector): Boolean | Семейство функций. Проверяют, что цифровая подпись Curve25519 достоверна | 47–200 |
# Функции вызова dApp из dApp
Name | Description | Complexity |
---|---|---|
invoke(Address|Alias, String, List[Any], List[AttachedPayments]): Any | Вызывает вызываемую функцию dApp, c ограничением на повторные вызовы исходного dApp | 75 |
reentrantInvoke(Address|Alias, String, List[Any], List[AttachedPayments]): Any | Вызывает вызываемую функцию dApp, без ограничения на повторные вызовы исходного dApp | 75 |
# Функции декодирования
Название | Описание | Сложность |
---|---|---|
addressFromString(String): Address|Unit | Декодирует адрес из строки base58 | 1 |
addressFromStringValue(String): Address | Декодирует адрес из строки base58. Завершается ошибкой, если адрес невозможно декодировать | 1 |
fromBase16String(String): ByteVector | Декодирует строку base16 в массив байтов | 10 |
fromBase58String(String): ByteVector | Декодирует строку base58 в массив байтов | 1 |
fromBase64String(String): ByteVector | Декодирует строку base64 в массив байтов | 40 |
# Функции исключения
Название | Описание | Сложность |
---|---|---|
throw() | Выбрасывает исключение | 1 |
throw(String) | Выбрасывает исключение с сообщением | 1 |
# Функции кодирования
Название | Описание | Сложность |
---|---|---|
toBase16String(ByteVector): String | Кодирует массив байтов в строку base16 | 10 |
toBase58String(ByteVector): String | Кодирует массив байтов в строку base58 | 3 |
toBase64String(ByteVector): String | Кодирует массив байтов в строку base64 | 35 |
# Функции конвертации
Название | Описание | Сложность |
---|---|---|
addressFromPublicKey(ByteVector): Address | Получает адрес, соответствующий открытому ключу аккаунта | 63 |
parseBigInt(String): BigInt|Unit | Конвертирует строковое представление числа в эквивалентное большое целое число | 65 |
parseBigIntValue(String): BigInt | Конвертирует строковое представление числа в эквивалентное большое целое число. Завершается ошибкой, если строка не может быть преобразована | 65 |
parseInt(String): Int|Unit | Конвертирует строковое представление числа в эквивалентное целое число | 2 |
parseIntValue(String): Int | Конвертирует строковое представление числа в эквивалентное целое число. Завершается ошибкой, если строка не может быть преобразована | 2 |
toBigInt(ByteVector): BigInt | Конвертирует массив байтов в большое целое число | 65 |
toBigInt(ByteVector, Int, Int): BigInt | Конвертирует массив байтов начиная с указанного индекса в большое целое число | 65 |
toBigInt(Int): BigInt | Конвертирует целое число в большое целое | 1 |
toBytes(Boolean): ByteVector | Конвертирует логическое значение в массив байтов | 1 |
toBytes(Int): ByteVector | Конвертирует целое число в массив байтов | 1 |
toBytes(String): ByteVector | Конвертирует строку в массив байтов | 8 |
toBytes(BigInt): ByteVector | Конвертирует большое целое число в массив байтов | 65 |
toInt(BigInt): Int | Конвертирует большое целое число в обычное целое. Завершается ошибкой, если число не может быть преобразовано | 1 |
toInt(ByteVector): Int | Конвертирует массив байтов в целое число | 1 |
toInt(ByteVector, Int): Int | Конвертирует массив байтов, начиная с указанного индекса, в целое число | 1 |
toString(Address): String | Конвертирует массив байтов адреса в строку | 10 |
toString(Boolean): String | Конвертирует логическое значение в строку | 1 |
toString(Int): String | Конвертирует целое число в строку | 1 |
toString(BigInt): String | Конвертирует большое целое число в строку | 65 |
toUtf8String(ByteVector): String | Конвертирует массив байтов в строку в UTF-8 | 7 |
transferTransactionFromProto(ByteVector): TransferTransaction|Unit | Десериализует транзакцию перевода | 5 |
# Функции массива байтов
Название | Описание | Сложность |
---|---|---|
drop(ByteVector, Int): ByteVector | Возвращает массив байтов без первых N байтов | 6 |
dropRight(ByteVector, Int): ByteVector | Возвращает массив байтов без последних N байтов | 6 |
size(ByteVector): Int | Возвращает количество байтов в массиве байтов | 1 |
take(ByteVector, Int): ByteVector | Возвращает первые N байтов массива байтов | 6 |
takeRight(ByteVector, Int): ByteVector | Возвращает последние N байтов массива байтов | 6 |
# Функции объединения
Название | Описание | Сложность |
---|---|---|
isDefined(T|Unit): Boolean | Проверяет, что параметр отличен от unit | 1 |
value(T|Unit): T | Возвращает значение из параметра типа данных объединение. Завершается ошибкой, если параметр равен unit | 2 |
valueOrElse(T|Unit, T): T | Возвращает значение из параметра типа данных объединение, если параметр не равен unit . В противном случае возвращает второй параметр | 2 |
valueOrErrorMessage(T|Unit, String): T | Возвращает значение из параметра типа данных объединение, если параметр не равен unit . В противном случае завершается ошибкой с сообщением, заданным во втором параметре | 2 |
# Функции получения данных из хранилища данных аккаунта
Название | Описание | Сложность |
---|---|---|
getBinary(Address|Alias, String): ByteVector|Unit | Получает массив байтов по ключу | 10 |
getBinary(String): ByteVector|Unit | Получает массив байтов по ключу из собственного хранилища данных | 10 |
getBinaryValue(Address|Alias, String): ByteVector | Получает массив байтов по ключу. Завершается ошибкой, если данных нет | 10 |
getBinaryValue(String): ByteVector | Получает массив байтов по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
getBoolean(Address|Alias, String): Boolean|Unit | Получает логическое значение по ключу | 10 |
getBoolean(String): Boolean|Unit | Получает логическое значение по ключу из собственного хранилища данных | 10 |
getBooleanValue(Address|Alias, String): Boolean | Получает логическое значение по ключу. Завершается ошибкой, если данных нет | 10 |
getBooleanValue(String): Boolean | Получает логическое значение по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
getInteger(Address|Alias, String): Int|Unit | Получает целое число по ключу | 10 |
getInteger(String): Int|Unit | Получает целое число по ключу из собственного хранилища данных | 10 |
getIntegerValue(Address|Alias, String): Int | Получает целое число по ключу. Завершается ошибкой, если данных нет | 10 |
getIntegerValue(String): Int | Получает целое число по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
getString(Address|Alias, String): String|Unit | Получает строку по ключу | 10 |
getString(String): String|Unit | Получает строку по ключу из собственного хранилища данных | 10 |
getStringValue(Address|Alias, String): String | Получает строку по ключу. Завершается ошибкой, если данных нет | 10 |
getStringValue(String): String | Получает строку по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
isDataStorageUntouched(Address|Alias): Boolean | Проверяет, что хранилище данных указанного аккаунта никогда не содержало записей | 10 |
# Функции списка
Название | Описание | Сложность |
---|---|---|
cons(A, List[B]): List[A|B] | Вставляет элемент в начало списка | 1 |
containsElement(list: List[T], element: T): Boolean | Проверяет наличие элемента в списке | 5 |
getElement(List[T], Int): T | Получает элемент по индексу | 2 |
indexOf(List[T], T): Int|Unit | Возвращает индекс первого вхождения элемента в списке | 5 |
lastIndexOf(List[T], T): Int|Unit | Возвращает индекс последнего вхождения элемента в списке | 5 |
max(List[Int]): Int | Возвращает наибольший элемент в списке целых чисел | 3 |
max(List[BigInt]): BigInt | Возвращает наибольший элемент в списке больших целых чисел | 192 |
min(List[Int]): Int | Возвращает наименьший элемент в списке целых чисел | 3 |
min(List[BigInt]): BigInt | Возвращает наименьший элемент в списке больших целых чисел | 192 |
removeByIndex(List[T], Int): List[T] | Удаляет элемент из списка по индексу | 7 |
size(List[T]): Int | Возвращает размер списка | 2 |
A
, B
, T
означает любой допустимый тип.
# Функции строки
Название | Описание | Сложность |
---|---|---|
contains(String, String): Boolean | Проверяет, содержится ли строка в строке | 3 |
drop(String, Int): String | Удаляет первые n символов строки | 20 |
dropRight(String, Int): String | Удаляет последние n символов строки | 20 |
indexOf(String, String): Int|Unit | Возвращает индекс первого вхождения подстроки | 3 |
indexOf(String, String, Int): Int|Unit | Возвращает индекс первого вхождения подстроки после указанного индекса | 3 |
lastIndexOf(String, String): Int|Unit | Возвращает индекс последнего вхождения подстроки | 3 |
lastIndexOf(String, String, Int): Int|Unit | Возвращает индекс последнего вхождения подстроки после указанного индекса | 3 |
makeString(List[String], String): String | Объединяет строки из списка, используя разделитель | 30 |
size(String): Int | Возвращает длину строки | 1 |
split(String, String): List[String] | Разбивает строку на список подстрок, используя разделитель | 75 |
take(String, Int): String | Возвращает первые n символов строки | 20 |
takeRight(String, Int): String | Возвращает последние n символов строки | 20 |
# Функции транзакции данных
Название | Описание | Сложность |
---|---|---|
getBinary(List[], String): ByteVector|Unit | Возвращает массив байтов из списка записей данных по ключу | 10 |
getBinary(List[], Int): ByteVector|Unit | Возвращает массив байтов из списка записей данных по индексу | 4 |
getBinaryValue(List[], String): ByteVector | Возвращает массив байтов из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
getBinaryValue(List[], Int): ByteVector | Возвращает массив байтов из списка записей данных по индексу. Завершается ошибкой, если данных нет | 4 |
getBoolean(List[], String): Boolean|Unit | Возвращает логическое значение из списка записей данных по ключу | 10 |
getBoolean(List[], Int): Boolean|Unit | Возвращает логическое значение из списка записей данных по индексу | 4 |
getBooleanValue(List[], String): Boolean | Возвращает логическое значение из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
getBooleanValue(List[], Int): Boolean | Возвращает логическое значение из списка записей данных по индексу. Завершается ошибкой, если данных нет | 4 |
getInteger(List[], String): Int|Unit | Возвращает целое число из списка записей данных по ключу | 10 |
getInteger(List[], Int): Int|Unit | Возвращает целое число из списка записей данных по индексу | 4 |
getIntegerValue(List[], String): Int | Возвращает целое число из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
getIntegerValue(List[], Int): Int | Возвращает целое число из списка записей данных по индексу. Завершается ошибкой, если данных нет | 4 |
getString(List[] String): String|Unit | Возвращает строку из списка записей данных по ключу | 10 |
getString(List[], Int): String|Unit | Возвращает строку из списка записей данных по индексу | 4 |
getStringValue(List[], String): String | Возвращает строку из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
getStringValue(List[], Int): String | Возвращает строку из списка записей данных по индексу. Завершается ошибкой, если данных нет | 4 |
# Функции хеширования
Название | Описание | Сложность |
---|---|---|
blake2b256(ByteVector): ByteVector | Семейство функций. Хешируют массив байтов с помощью алгоритма BLAKE2b-256 | 10–200 |
keccak256(ByteVector): ByteVector | Семейство функций. Хешируют массив байтов с помощью алгоритма Keccak-256 | 10–200 |
sha256(ByteVector): ByteVector | Семейство функций. Хешируют массив байтов с помощью алгоритма SHA-256 | 10–200 |