# [Ride v5, v4, v3] Предыдущие версии Стандартной библиотеки
⚠️ Для разработки приложений рекомендуем использовать версию 6 Стандартной библиотеки.
Предыдущие версии стандартной библиотеки:
- Версия 5 — доступна с момента активации фичи № 16 “Ride V5, dApp-to-dApp invocations”.
- Версия 4 — доступна с момента активации фичи № 15 “Ride V4, VRF, Protobuf, Failed transactions”.
- Версия 3.
Сравнение версий представлено в таблице.
# | Версия 3 | Версия 4 | Версия 5 |
---|---|---|---|
Скрипт | Добавлены: • dApp-скрипт • Директивы • Аннотации • Пользовательские функции • Макрос FOLD<N> | Добавлены: • Вызов dApp из dApp | |
Типы данных | Добавлены: • List | Добавлены: • Any • BigInt | |
Переменные | Добавлены встроенные переменные: • this • lastBlock • nil • Типы округления: CEILING, DOWN, FLOOR и т.д. • Обозначения алгоритмов хеширования: NOALG, MD5, SHA1 и т.д. | Добавлены нетерпеливые переменные | |
Структуры | Добавлены: Действия скрипта: • DataEntry • ScriptTransfer Результаты скрипта: • ScriptResult • TransferSet • WriteSet Общие структуры: • Asset • AttachedPayment • BlockInfo • Invocation Структуры транзакций: • InvokeScriptTransaction | Добавлены: Действия скрипта: • BinaryEntry • BooleanEntry • IntegerEntry • StringEntry • DeleteEntry • Issue • Reissue • Burn • SponsorFee Общие структуры: • BalanceDetails Структуры транзакций: • UpdateAssetInfoTransaction Изменены: Общие структуры: • Asset • BlockInfo • Invocation Структуры транзакций: • DataTransaction • InvokeScriptTransaction • IssueTransaction Удалены: • DataEntry • ScriptResult • TransferSet • WriteSet | Добавлены: Действия скрипта: • Lease • LeaseCancel Изменены: Общие структуры: • Invocation |
Встроенные функции | Добавлены: Функции блокчейна: • assetInfo • blockInfoByHeight • transferTransactionById Функции конвертации: • parseInt • parseIntValue • toInt • toUtf8String • toString(Address) Функции кодирования: • toBase16String Функции декодирования: • fromBase16String Математические функции: • log • pow Функции строки: • indexOf • lastIndexOf • split Функции объединения: • value • valueOrErrorMessage Функции верификации: • checkMerkleProof • rsaVerify Удалены: • transactionById | Добавлены: Функции блокчейна: • calculateAssetId Функции конвертации: • transferTransactionFromProto Функции списка: • containsElement • indexOf • lastIndexOf • min/max • removeByIndex Математические функции: • median Функции строки: • contains • makeString Функции объединения: • valueOrElse Функции верификации: • bn256groth16verify • createMerkleRoot • ecrecover • groth16verify Удалены: • checkMerkleProof • extract | Добавлены: Функции вызова dApp из dApp: • invoke • reentrantInvoke Функции блокчейна: • calculateLeaseId • scriptHash Функции конвертации: • parseBigInt • parseBigIntValue • toBigInt(ByteVector): BigInt • toBigInt(ByteVector, Int, Int): BigInt • toBigInt(Int): BigInt • toBytes(BigInt): ByteVector • toInt(BigInt): Int • toString(BigInt): String Функции списка: • max(List[BigInt]): Bigint • min(List[BigInt]): Bigint Математические функции: • fraction(Int, Int, Int, Union): Int • fraction(BigInt, BigInt, BigInt): BigInt • fraction(BigInt, BigInt, BigInt, Union): BigInt • log(BigInt, Int, BigInt, Int, Int, Union): BigInt • median(List[BigInt]): Bigint • pow(BigInt, Int, BigInt, Int, Int, Union): BigInt Функции хранилища данных аккаунта: • getBinary(key: String): ByteVector|Unit • getBinaryValue(key: String): ByteVector • getBoolean(key: String): Boolean|Unit • getBooleanValue(key: String): Boolean • getInteger(key: String): Int|Unit • getIntegerValue(key: String): Int • getString(key: String): String|Unit • getStringValue(key: String): String • isDataStorageUntouched |
Операторы | Добавлены: • :+ • ++ | ||
Изменения сложности | • Оператор -: 9 → 1 • Оператор !: 11 → 1 • Оператор !=: 26 → 1 • throw: 2 → 1 • isDefined: 35 → 1 | • Оператор +: 10 → 2 для значений типа ByteVector, 10 → 20 для строк • Функции: изменения сложности см. в разделе Встроенные функции • Добавлены функции blake2b256_<N>Kb ,keccak256_<N>Kb , sha256_<N>Kb ,rsaVerify_<N>Kb , sigVerify_<N>Kb с различной сложностью сложностью в зависимости от размера аргумента | fraction(Int, Int, Int): Int: 1 → 14 |
Размер данных | • String : до 32 767 байт• ByteVector : до 32 767 байт(кромеполя bodyBytes структуры транзакции) | ||
Учет приложенных платежей на балансе вызываемого dApp | После выполнения скрипта | После выполнения скрипта | Перед выполнением скрипта |