# [Ride v4 and v3] Built-in functions
⚠️ This is the documentation for the Standard library version 4 and 3. We recommend to use version 6. Go to version 6
A built-in function is a function of the Standard library.
# Account data storage functions
Name | Description | Complexity |
---|---|---|
getBinary(Address|Alias, String): ByteVector|Unit | Gets an array of bytes by key | 100 for Standard Library version 3 10 for Standard Library version 4 |
getBinaryValue(Address|Alias, String): ByteVector | Gets an array of bytes by key. Fails if there is no data | 100 for Standard Library version 3 10 for Standard Library version 4 |
getBoolean(Address|Alias, String): Boolean|Unit | Gets a boolean value by key | 100 for Standard Library version 3 10 for Standard Library version 4 |
getBooleanValue(Address|Alias, String): Boolean | Gets a boolean value by key. Fails if there is no data | 100 for Standard Library version 3 10 for Standard Library version 4 |
getInteger(Address|Alias, String): Int|Unit | Gets an integer by key | 100 for Standard Library version 3 10 for Standard Library version 4 |
getIntegerValue(Address|Alias, String): Int | Gets an integer by key. Fails if there is no data | 100 for Standard Library version 3 10 for Standard Library version 4 |
getString(Address|Alias, String): String|Unit | Gets a string by key | 100 for Standard Library version 3 10 for Standard Library version 4 |
getStringValue(Address|Alias, String): String | Gets a string by key. Fails if there is no data | 100 for Standard Library version 3 10 for Standard Library version 4 |
# Blockchain functions
Name | Description | Complexity |
---|---|---|
addressFromRecipient(Address|Alias): Address | Gets the corresponding address of the alias | 100 for Standard Library version 3 5 for Standard Library version 4 |
assetBalance(Address|Alias, ByteVector): Int | Gets account balance by token ID | 100 for Standard Library version 3 10 for Standard Library version 4 |
assetInfo(ByteVector): Asset|Unit | Gets the information about a token | 100 for Standard Library version 3 15 for Standard Library version 4 |
blockInfoByHeight(Int): BlockInfo |Unit | Gets the information about a block by the block height | 100 for Standard Library version 3 5 for Standard Library version 4 |
calculateAssetId(Issue): ByteVector | Calculates the ID of the asset, created by Issue structure during invoke script transaction execution | 10 |
transactionHeightById(ByteVector): Int|Unit | Gets the block height of a transaction | 100 for Standard Library version 3 20 for Standard Library version 4 |
transferTransactionById(ByteVector): TransferTransaction|Unit | Gets the data of a transfer transaction | 100 for Standard Library version 3 60 for Standard Library version 4 |
wavesBalance(Address|Alias): Int | Gets account balance in WAVES | 100 for Standard Library version 3 10 for Standard Library version 4 |
# Byte array functions
Name | Description | Complexity |
---|---|---|
drop(ByteVector, Int): ByteVector | Returns the byte array without the first N bytes | 1 for Standard Library version 3 6 for Standard Library version 4 |
dropRight(ByteVector, Int): ByteVector | Returns the byte array without the last N bytes | 19 for Standard Library version 3 6 for Standard Library version 4 |
size(ByteVector): Int | Returns the number of bytes in the byte array | 1 |
take(ByteVector, Int): ByteVector | Returns the first N bytes of the byte array | 1 for Standard Library version 3 6 for Standard Library version 4 |
takeRight(ByteVector, Int): ByteVector | Returns the last N bytes of the byte array | 19 for Standard Library version 3 6 for Standard Library version 4 |
# Converting functions
Name | Description | Complexity |
---|---|---|
addressFromPublicKey(ByteVector): Address | Converts account public key to address | 82 for Standard Library version 3 63 for Standard Library version 4 |
parseInt(String): Int|Unit | Converts the string representation of a number to its integer equivalent | 20 for Standard Library version 3 2 for Standard Library version 4 |
parseIntValue(String): Int | Converts the string representation of a number to its integer equivalent. Fails if the string cannot be parsed | 20 for Standard Library version 3 2 for Standard Library version 4 |
toBytes(Boolean): ByteVector | Converts a boolean to an array of bytes | 1 |
toBytes(Int): ByteVector | Converts an integer to an array of bytes | 1 |
toBytes(String): ByteVector | Converts a string to an array of bytes | 1 for Standard Library version 3 8 for Standard Library version 4 |
toInt(ByteVector): Int | Converts an array of bytes to an integer | 10 for Standard Library version 3 1 for Standard Library version 4 |
toInt(ByteVector, Int): Int | Converts an array of bytes to an integer starting from a certain index | 10 for Standard Library version 3 1 for Standard Library version 4 |
toString(Address): String | Converts an address to a string | 10 |
toString(Boolean): String | Converts a boolean to a string | 1 |
toString(Int): String | Converts an integer to a string | 1 |
toUtf8String(ByteVector): String | Converts an array of bytes to a UTF-8 string | 20 for Standard Library version 3 7 for Standard Library version 4 |
transferTransactionFromProto(ByteVector): TransferTransaction|Unit | Deserializes transfer transaction | 5 |
# Data transaction functions
Name | Description | Complexity |
---|---|---|
getInteger(List[], String): Int|Unit | Gets an integer value from a list of data entires by key | 10 |
getInteger(List[], Int): Int|Unit | Gets an integer value from a list of data entires by index | 30 for Standard Library version 3 4 for Standard Library version 4 |
getIntegerValue(List[], String): Int | Gets an integer value from a list of data entires by key. Fails if there is no data | 10 |
getIntegerValue(List[], Int): Int | Gets an integer value from a list of data entires by index. Fails if there is no data | 30 for Standard Library version 3 4 for Standard Library version 4 |
getBoolean(List[], String): Boolean|Unit | Gets a boolean value from a list of data entires by key | 10 |
getBoolean(List[], Int): Boolean|Unit | Gets a boolean value from a list of data entires by index | 30 for Standard Library version 3 4 for Standard Library version 4 |
getBooleanValue(List[], String): Boolean | Gets a boolean value from a list of data entires by key. Fails if there is no data | 10 |
getBooleanValue(List[], Int): Boolean | Gets a boolean value from a list of data entires by index. Fails if there is no data | 30 for Standard Library version 3 4 for Standard Library version 4 |
getBinary(List[], String): ByteVector|Unit | Gets a binary value from a list of data entires by key | 10 |
getBinary(List[], Int): ByteVector|Unit | Gets a binary value from a list of data entires by index | 30 for Standard Library version 3 4 for Standard Library version 4 |
getBinaryValue(List[], String): ByteVector | Gets a binary value from a list of data entires by key. Fails if there is no data | 10 |
getBinaryValue(List[], Int): ByteVector | Gets a binary value from a list of data entires by index. Fails if there is no data | 30 for Standard Library version 3 4 for Standard Library version 4 |
getString(List[] String): String|Unit | Gets a string value from a list of data entires by key | 10 |
getString(List[], Int): String|Unit | Gets a string value from a list of data entires by index | 30 for Standard Library version 3 4 for Standard Library version 4 |
getStringValue(List[], String): String | Gets a string value from a list of data entires by key. Fails if there is no data | 10 |
getStringValue(List[], Int): String | Gets a string value from a list of data entires by index. Fails if there is no data | 30 for Standard Library version 3 4 for Standard Library version 4 |
# Decoding functions
Name | Description | Complexity |
---|---|---|
addressFromString(String): Address|Unit | Decodes address from base58 string | 124 for Standard Library version 3 1 for Standard Library version 4 |
addressFromStringValue(String): Address | Decodes address from base58 string. Fails if the address cannot be decoded | 124 for Standard Library version 3 1 for Standard Library version 4 |
fromBase16String(String): ByteVector | Decodes base16 string to an array of bytes | 10 |
fromBase58String(String): ByteVector | Decodes base58 string to an array of bytes | 10 for Standard Library version 3 1 for Standard Library version 4 |
fromBase64String(String): ByteVector | Decodes base64 string to an array of bytes | 10 for Standard Library version 3 40 for Standard Library version 4 |
# Encoding functions
Name | Description | Complexity |
---|---|---|
toBase16String(ByteVector): String | Encodes array of bytes to base16 string | 10 |
toBase58String(ByteVector): String | Encodes array of bytes to base58 string | 10 for Standard Library version 3 3 for Standard Library version 4 |
toBase64String(ByteVector): String | Encodes array of bytes to base64 string | 10 for Standard Library version 3 35 for Standard Library version 4 |
# Exception functions
Name | Description | Complexity |
---|---|---|
throw() | Raises an exception | 1 |
throw(String) | Raises an exception with a message | 1 |
# Hashing functions
Name | Description | Complexity |
---|---|---|
blake2b256(ByteVector): ByteVector | Range of functions. Hash an array of bytes using BLAKE2b-256 | 10 for Standard Library version 3 10–200 for Standard Library version 4 |
keccak256(ByteVector): ByteVector | Range of functions. Hash an array of bytes using Keccak-256 | 10 for Standard Library version 3 10–200 for Standard Library version 4 |
sha256(ByteVector): ByteVector | Range of functions. Hash an array of bytes using SHA-256 | 10 for Standard Library version 3 10–200 for Standard Library version 4 |
# List functions
Name | Description | Complexity |
---|---|---|
cons(T, List[T]): List[T] | Inserts element to the beginning of the list | 2 for Standard Library version 3 1 for Standard Library version 4 |
containsElement(list: List[T], element: T): Boolean | Check if the element is in the list | 5 |
getElement(List[T], Int): T | Gets element from the list | 2 |
indexOf(list: List[T], element: T): Int|Unit | Returns the index of the first occurrence of the element in the list | 5 |
lastIndexOf(list: List[T], element: T): Int|Unit | Returns the index of the last occurrence of the element in the list | 5 |
max(List[Int]): Int | Returns the largest element in the list | 3 |
min(List[Int]): Int | Returns the smallest item in the list | 3 |
removeByIndex(list: List[T], index: Int): List[T] | Removes an element from the list by index | 7 |
size(List[T]): Int | Returns the size of the list | 2 |
T
means any valid type.
# Math functions
Name | Description | Complexity |
---|---|---|
fraction(Int, Int, Int): Int | Multiplies and divides integers to avoid overflow | 1 |
log(Int, Int, Int, Int, Int, Union): Int | Calculates logarithm of a number with a base | 100 |
median(List[Int]): Int | Returns the median of a list of integers | 20 |
pow(Int, Int, Int, Int, Int, Union): Int | Raises a number to a given power | 100 |
# String functions
Name | Description | Complexity |
---|---|---|
contains(String, String): Boolean | Checks whether the string contains substring | 3 |
drop(String, Int): String | Drops the first n characters of a string | 1 for Standard Library version 3 20 for Standard Library version 4 |
dropRight(String, Int): String | Drops the last n characters of a string | 19 for Standard Library version 3 20 for Standard Library version 4 |
indexOf(String, String): Int|Unit | Returns the index of the first occurrence of a substring | 20 for Standard Library version 3 3 for Standard Library version 4 |
indexOf(String, String, Int): Int|Unit | Returns the index of the first occurrence of a substring after a certain index | 20 for Standard Library version 3 3 for Standard Library version 4 |
lastIndexOf(String, String): Int|Unit | Returns the index of the last occurrence of a substring | 20 for Standard Library version 3 3 for Standard Library version 4 |
lastindexOf(String, String, Int): Int|Unit | Returns the index of the last occurrence of a substring before a certain index | 20 for Standard Library version 3 3 for Standard Library version 4 |
makeString(List[String], String): String | Concatenates list strings adding a separator | 30 |
size(String): Int | Returns the size of a string | 1 |
split(String, String): List[String] | Splits a string delimited by a separator into a list of substrings. | 100 for Standard Library version 3 75 for Standard Library version 4 |
take(String, Int): String | Takes the first n characters from a string | 1 for Standard Library version 3 20 for Standard Library version 4 |
takeRight(String, Int): String | Takes the last n characters from a string | 19 for Standard Library version 3 20 for Standard Library version 4 |
# Union functions
Name | Description | Complexity |
---|---|---|
extract(T|Unit): T | Gets a value from a union type argument. Fails if it is unit | 13 |
isDefined(T|Unit): Boolean | Checks if an argument is not unit | 1 |
value(T|Unit): T | Gets a value from a union type argument. Fails if it is unit | 13 for Standard Library version 3 2 for Standard Library version 4 |
valueOrElse(T|Unit, T): T | Returns a value from a union type argument if it's not unit . Otherwise, returns the second argument | 2 |
valueOrErrorMessage(T|Unit, String): T | Gets a value from a union type argument if it's not unit . Otherwise, fails with the message specified in the second argument | 13 for Standard Library version 3 2 for Standard Library version 4 |
# Verification functions
Name | Description | Complexity |
---|---|---|
bn256Groth16Verify(ByteVector, ByteVector, ByteVector): Boolean | Range of functions. Check zk-SNARK by groth16 protocol on the bn254 curve | 800–1650 |
checkMerkleProof(ByteVector, ByteVector, ByteVector): Boolean | Checks that the data is part of the Merkle tree | 30 |
createMerkleRoot(List[ByteVector], ByteVector, Int) : ByteVector | Calculates the Merkle root hash for transactions of block | 30 |
ecrecover(messageHash: ByteVector, signature: ByteVector) | Recovers public key from the message hash and the ECDSA digital signature | 70 |
groth16Verify(ByteVector, ByteVector, ByteVector): Boolean | Range of functions. Check zk-SNARK by groth16 protocol on the bls12-381 curve | 1200–2700 |
rsaVerify(digestAlgorithmType, ByteVector, ByteVector, ByteVector): Boolean | Range of functions. Check that the RSA digital signature is valid, i.e. it was created by the owner of the public key | 300 for Standard Library version 3 500–1000 for Standard Library version 4 |
sigVerify(ByteVector, ByteVector, ByteVector): Boolean | Range of functions. Check that the Curve25519 digital signature is valid, i.e. it was created by the owner of the public key | 100 for Standard library version 3 47–200 for Standard Library version 4 |