# [Ride v4 и v3] Встроенные функции
⚠️ Это документация Стандартной библиотеки версии 4 и 3. Рекомендуем использовать версию 6. Перейти к версии 6
Встроенная функция — функция Стандартной библиотеки.
# Математические функции
| Название | Описание | Сложность |
|---|---|---|
| fraction(Int, Int, Int): Int | Умножает два целых числа и делит на третье без переполнения | 1 |
| log(Int, Int, Int, Int, Int, Union): Int | Вычисляет логарифм числа по заданному основанию | 100 |
| median(List[Int]): Int | Возвращает медиану списка целых чисел | 20 |
| pow(Int, Int, Int, Int, Int, Union): Int | Возводит число в степень | 100 |
# Функции блокчейна
| Название | Описание | Сложность |
|---|---|---|
| addressFromRecipient(Address|Alias): Address | Получает адрес, соответствующий псевдониму | 100 для Стандартной библиотеки версии 3 5 для Стандартной библиотеки версии 4 |
| assetBalancе(Address|Alias, ByteVector): Int | Получает баланс аккаунта по ID токена | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 |
| assetInfo(ByteVector): Аsset|Unit | Получает информацию о токене | 100 для Стандартной библиотеки версии 3 15 для Стандартной библиотеки версии 4 |
| blockInfoByHeight(Int): BlockInfo |Unit | Получает информацию о блоке по высоте блока | 100 для Стандартной библиотеки версии 3 5 для Стандартной библиотеки версии 4 |
| calculateAssetId(Issue): ByteVector | Вычисляет ID ассета, созданного структурой Issue при выполнении транзакции вызова скрипта | 10 |
| transactionHeightById(ByteVector): Int|Unit | Получает высоту блока транзакции | 100 для Стандартной библиотеки версии 3 20 для Стандартной библиотеки версии 4 |
| transferTransactionById(ByteVector): TransferTransaction|Unit | Получает данные транзакции перевода | 100 для Стандартной библиотеки версии 3 60 для Стандартной библиотеки версии 4 |
| wavesBalance(Address|Alias): Int | Получает баланс аккаунта в WAVES | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 |
# Функции верификации
| Название | Описание | Сложность |
|---|---|---|
| bn256Groth16Verify(ByteVector, ByteVector, ByteVector): Boolean | Семейство функций. Осуществляют проверку zk-SNARK по протоколу groth16 на кривой bn254 | 800–1650 |
| checkMerkleProof(ByteVector, ByteVector, ByteVector): Boolean | Проверяет, что данные являются частью дерева Меркла | 30 |
| 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 достоверна | 300 для Стандартной библиотеки версии 3 500–1000 для Стандартной библиотеки версии 4 |
| sigVerify(ByteVector, ByteVector, ByteVector): Boolean | Семейство функций. Проверяют, что цифровая подпись Curve25519 достоверна | 100 для Стандартной библиотеки версии 3 47–200 для Стандартной библиотеки версии 4 |
# Функции декодирования
| Название | Описание | Сложность |
|---|---|---|
| addressFromString(String): Address|Unit | Декодирует адрес из строки base58 | 124 для Стандартной библиотеки версии 3 1 для Стандартной библиотеки версии 4 |
| addressFromStringValue(String): Address | Декодирует адрес из строки base58. Завершается ошибкой, если адрес невозможно декодировать | 124 для Стандартной библиотеки версии 3 1 для Стандартной библиотеки версии 4 |
| fromBase16String(String): ByteVector | Декодирует строку base16 в массив байтов | 10 |
| fromBase58String(String): ByteVector | Декодирует строку base58 в массив байтов | 10 для Стандартной библиотеки версии 3 1 для Стандартной библиотеки версии 4 |
| fromBase64String(String): ByteVector | Декодирует строку base64 в массив байтов | 10 для Стандартной библиотеки версии 3 40 для Стандартной библиотеки версии 4 |
# Функции исключения
| Название | Описание | Сложность |
|---|---|---|
| throw() | Выбрасывает исключение | 1 |
| throw(String) | Выбрасывает исключение с сообщением | 1 |
# Функции кодирования
| Название | Описание | Сложность |
|---|---|---|
| toBase16String(ByteVector): String | Кодирует массив байтов в строку base16 | 10 |
| toBase58String(ByteVector): String | Кодирует массив байтов в строку base58 | 10 для Стандартной библиотеки версии 3 3 для Стандартной библиотеки версии 4 |
| toBase64String(ByteVector): String | Кодирует массив байтов в строку base64 | 10 для Стандартной библиотеки версии 3 35 для Стандартной библиотеки версии 4 |
# Функции конвертации
| Название | Описание | Сложность |
|---|---|---|
| addressFromPublicKey(ByteVector): Address | Получает адрес, соответствующий открытому ключу аккаунта | 82 для Стандартной библиотеки версии 3 63 для Стандартной библиотеки версии 4 |
| parseInt(String): Int|Unit | Конвертирует строковое представление числа в эквивалентное целое число | 20 для Стандартной библиотеки версии 3 2 для Стандартной библиотеки версии 4 |
| parseIntValue(String): Int | Конвертирует строковое представление числа в эквивалентное целое число. Завершается ошибкой, если строка не может быть спарсена | 20 для Стандартной библиотеки версии 3 2 для Стандартной библиотеки версии 4 |
| toBytes(Boolean): ByteVector | Конвертирует логическое значение в массив байтов | 1 |
| toBytes(Int): ByteVector | Конвертирует целое число в массив байтов | 1 |
| toBytes(String): ByteVector | Конвертирует строку в массив байтов | 1 для Стандартной библиотеки версии 3 8 для Стандартной библиотеки версии 4 |
| toInt(ByteVector): Int | Конвертирует массив байтов в целое число | 10 для Стандартной библиотеки версии 3 1 для Стандартной библиотеки версии 4 |
| toInt(ByteVector, Int): Int | Конвертирует массив байтов, начиная с указанного индекса, в целое число | 10 для Стандартной библиотеки версии 3 1 для Стандартной библиотеки версии 4 |
| toString(Address): String | Конвертирует массив байтов адреса в строку | 10 |
| toString(Boolean): String | Конвертирует логическое значение в строку | 1 |
| toString(Int): String | Конвертирует целое число в строку | 1 |
| toUtf8String(ByteVector): String | Конвертирует массив байтов в строку в UTF-8 | 20 для Стандартной библиотеки версии 3 7 для Стандартной библиотеки версии 4 |
| transferTransactionFromProto(ByteVector): TransferTransaction|Unit | Десериализует транзакцию перевода | 5 |
# Функции массива байтов
| Название | Описание | Сложность |
|---|---|---|
| drop(ByteVector, Int): ByteVector | Возвращает массив байтов без первых N байтов | 1 для Стандартной библиотеки версии 3 6 для Стандартной библиотеки версии 4 |
| dropRight(ByteVector, Int): ByteVector | Возвращает массив байтов без последних N байтов | 19 для Стандартной библиотеки версии 3 6 для Стандартной библиотеки версии 4 |
| size(ByteVector): Int | Возвращает количество байтов в массиве байтов | 1 |
| take(ByteVector, Int): ByteVector | Возвращает первые N байтов массива байтов | 1 для Стандартной библиотеки версии 3 6 для Стандартной библиотеки версии 4 |
| takeRight(ByteVector, Int): ByteVector | Возвращает последние N байтов массива байтов | 19 для Стандартной библиотеки версии 3 6 для Стандартной библиотеки версии 4 |
# Функции объединения
| Название | Описание | Сложность |
|---|---|---|
| extract(T|Unit): T | Возвращает значение из параметра типа данных объединение. Завершается ошибкой, если параметр равен unit | 13 |
| isDefined(T|Unit): Boolean | Проверяет, что параметр отличен от unit | 1 |
| value(T|Unit): T | Возвращает значение из параметра типа данных объединение. Завершается ошибкой, если параметр равен unit | 13 для Стандартной библиотеки версии 3 2 для Стандартной библиотеки версии 4 |
| valueOrElse(T|Unit, T): T | Возвращает значение из параметра типа данных объединение, если параметр не равен unit. В противном случае возвращает второй параметр | 2 |
| valueOrErrorMessage(T|Unit, String): T | Возвращает значение из параметра типа данных объединение, если параметр не равен unit. В противном случае завершается ошибкой с сообщением, заданным во втором параметре | 13 для Стандартной библиотеки версии 3 2 для Стандартной библиотеки версии 4 |
# Функции получения данных из хранилища данных аккаунта
| Название | Описание | Сложность |
|---|---|---|
| getBinary(Address|Alias, String): ByteVector|Unit | Получает массив байтов по ключу | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getBinary(String): ByteVector|Unit | Получает массив байтов по ключу из собственного хранилища данных | 10 |
| getBinaryValue(Address|Alias, String): ByteVector | Получает массив байтов по ключу. Завершается ошибкой, если данных нет | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getBinaryValue(String): ByteVector | Получает массив байтов по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
| getBoolean(Address|Alias, String): Boolean|Unit | Получает логическое значение по ключу | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getBoolean(String): Boolean|Unit | Получает логическое значение по ключу из собственного хранилища данных | 10 |
| getBooleanValue(Address|Alias, String): Boolean | Получает логическое значение по ключу. Завершается ошибкой, если данных нет | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getBooleanValue(String): Boolean | Получает логическое значение по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
| getInteger(Address|Alias, String | Получает целое число по ключу | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getInteger(String): Int|Unit | Получает целое число по ключу из собственного хранилища данных | 10 |
| getIntegerValue(Address|Alias, String): Int | Получает целое число по ключу. Завершается ошибкой, если данных нет | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getIntegerValue(String): Int | Получает целое число по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
| getString(Address|Alias, String): String|Unit | Получает строку по ключу | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getString(String): String|Unit | Получает строку по ключу из собственного хранилища данных | 10 |
| getStringValue(Address|Alias, String): String | Получает строку по ключу. Завершается ошибкой, если данных нет | 100 для Стандартной библиотеки версии 3 10 для Стандартной библиотеки версии 4 и 5 |
| getStringValue(String): String | Получает строку по ключу из собственного хранилища данных. Завершается ошибкой, если данных нет | 10 |
# Функции списка
| Название | Описание | Сложность |
|---|---|---|
| cons(T, List[T]): List[T] | Вставляет элемент в начало списка | 2 для Стандартной библиотеки версии 3 1 для Стандартной библиотеки версии 4 |
| containsElement(list: List[T], element: T): Boolean | Проверяет наличие элемента в списке | 5 |
| getElement(List[T], Int): T | Получает элемент по индексу | 2 |
| indexOf(list: List[T], element: T): Int|Unit | Возвращает индекс первого вхождения элемента в списке | 5 |
| lastIndexOf(list: List[T], element: T): Int|Unit | Возвращает индекс последнего вхождения элемента в списке | 5 |
| max(List[Int]): Int | Возвращает наибольший элемент в списке | 3 |
| min(List[Int]): Int | Возвращает наименьший элемент в списке | 3 |
| removeByIndex(list: List[T], index: Int): List[T] | Удаляет элемент из списка по индексу | 7 |
| size(List[T]): Int | Возвращает размер списка | 2 |
T означает любой допустимый тип.
# Функции строки
| Название | Описание | Сложность |
|---|---|---|
| contains(String, String): Boolean | Проверяет, содержится ли строка в строке | 3 |
| drop(String, Int): String | Удаляет первые n символов строки | 1 для Стандартной библиотеки версии 3 20 для Стандартной библиотеки версии 4 |
| dropRight(String, Int): String | Удаляет последние n символов строки | 19 для Стандартной библиотеки версии 3 20 для Стандартной библиотеки версии 4 |
| indexOf(String, String): Int|Unit | Возвращает индекс первого вхождения подстроки | 20 для Стандартной библиотеки версии 3 3 для Стандартной библиотеки версии 4 |
| indexOf(String, String, Int): Int|Unit | Возвращает индекс первого вхождения подстроки после указанного индекса | 20 для Стандартной библиотеки версии 3 3 для Стандартной библиотеки версии 4 |
| lastIndexOf(String, String): Int|Unit | Возвращает индекс последнего вхождения подстроки | 20 для Стандартной библиотеки версии 3 3 для Стандартной библиотеки версии 4 |
| lastIndexOf(String, String, Int): Int|Unit | Возвращает индекс последнего вхождения подстроки после указанного индекса | 20 для Стандартной библиотеки версии 3 3 для Стандартной библиотеки версии 4 |
| makeString(List[String], String): String | Объединяет строки из списка, используя разделитель | 30 |
| size(String): Int | Возвращает длину строки | 1 |
| split(String, String): List[String] | Разбивает строку на список подстрок, используя разделитель | 100 для Стандартной библиотеки версии 3 75 для Стандартной библиотеки версии 4 |
| take(String, Int): String | Возвращает первые n символов строки | 1 для Стандартной библиотеки версии 3 20 для Стандартной библиотеки версии 4 |
| takeRight(String, Int): String | Возвращает последние n символов строки | 19 для Стандартной библиотеки версии 3 20 для Стандартной библиотеки версии 4 |
# Функции транзакции данных
| Название | Описание | Сложность |
|---|---|---|
| getInteger(List[], String): Int|Unit | Возвращает целое число из списка записей данных по ключу | 10 |
| getInteger(List[], Int): Int|Unit | Возвращает целое число из списка записей данных по индексу | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getIntegerValue(List[], String): Int | Возвращает целое число из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
| getIntegerValue(List[], Int): Int | Возвращает целое число из списка записей данных по индексу. Завершается ошибкой, если данных нет | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getBoolean(List[], String): Boolean|Unit | Возвращает логическое значение из списка записей данных по ключу | 10 |
| getBoolean(List[], Int): Boolean|Unit | Возвращает логическое значение из списка записей данных по индексу | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getBooleanValue(List[], String): Boolean | Возвращает логическое значение из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
| getBooleanValue(List[], Int): Boolean | Возвращает логическое значение из списка записей данных по индексу. Завершается ошибкой, если данных нет | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getBinary(List[], String): ByteVector|Unit | Возвращает массив байтов из списка записей данных по ключу | 10 |
| getBinary(List[], Int): ByteVector|Unit | Возвращает массив байтов из списка записей данных по индексу | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getBinaryValue(List[], String): ByteVector | Возвращает массив байтов из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
| getBinaryValue(List[], Int): ByteVector | Возвращает массив байтов из списка записей данных по индексу. Завершается ошибкой, если данных нет | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getString(List[] String): String|Unit | Возвращает строку из списка записей данных по ключу | 10 |
| getString(List[], Int): String|Unit | Возвращает строку из списка записей данных по индексу | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
| getStringValue(List[], String): String | Возвращает строку из списка записей данных по ключу. Завершается ошибкой, если данных нет | 10 |
| getStringValue(List[], Int): String | Возвращает строку из списка записей данных по индексу. Завершается ошибкой, если данных нет | 30 для Стандартной библиотеки версии 3 4 для Стандартной библиотеки версии 4 |
# Функции хеширования
| Название | Описание | Сложность |
|---|---|---|
| blake2b256(ByteVector): ByteVector | Семейство функций. Хешируют массив байтов с помощью алгоритма BLAKE2b-256 | 10 для Стандартной библиотеки версии 3 10–200 для Стандартной библиотеки версии 4 |
| keccak256(ByteVector): ByteVector | Семейство функций. Хешируют массив байтов с помощью алгоритма Keccak-256 | 10 для Стандартной библиотеки версии 3 10–200 для Стандартной библиотеки версии 4 |
| sha256(ByteVector): ByteVector | Семейство функций. Хешируют массив байтов с помощью алгоритма SHA-256 | 10 для Стандартной библиотеки версии 3 10–200 для Стандартной библиотеки версии 4 |