# [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 |