# Built-in functions
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 | 10 |
getBinary(String): ByteVector|Unit | Gets an array of bytes by key from dApp's own data storage | 10 |
getBinaryValue(Address|Alias, String): ByteVector | Gets an array of bytes by key. Fails if there is no data | 10 |
getBinaryValue(String): ByteVector | Gets an array of bytes by key from dApp's own data storage. Fails if there is no data | 10 |
getBoolean(Address|Alias, String): Boolean|Unit | Gets a boolean value by key | 10 |
getBoolean(String): Boolean|Unit | Gets a boolean value by key from dApp's own data storage | 10 |
getBooleanValue(Address|Alias, String): Boolean | Gets a boolean value by key. Fails if there is no data | 10 |
getBooleanValue(String): Boolean | Gets a boolean value by key from dApp's own data storage. Fails if there is no data | 10 |
getInteger(Address|Alias, String): Int|Unit | Gets an integer by key | 10 |
getInteger(String): Int|Unit | Gets an integer by key from dApp's own data storage | 10 |
getIntegerValue(Address|Alias, String): Int | Gets an integer by key. Fails if there is no data | 10 |
getIntegerValue(String): Int | Gets an integer by key from dApp's own data storage. Fails if there is no data | 10 |
getString(Address|Alias, String): String|Unit | Gets a string by key | 10 |
getString(String): String|Unit | Gets a string by key from dApp's own data storage | 10 |
getStringValue(Address|Alias, String): String | Gets a string by key. Fails if there is no data | 10 |
getStringValue(String): String | Gets a string by key from dApp's own data storage. Fails if there is no data | 10 |
isDataStorageUntouched(Address|Alias): Boolean | Checks if the data storage of a given account never contained any entries | 10 |
# Blockchain functions
Name | Description | Complexity |
---|---|---|
addressFromRecipient(Address|Alias): Address | Gets the corresponding address of the alias | 5 |
assetBalance(Address|Alias, ByteVector): Int | Gets account balance by an asset ID | 10 |
assetInfo(ByteVector): Asset|Unit | Gets asset parameters by its ID | 15 |
blockInfoByHeight(Int): BlockInfo |Unit | Gets the information about a block by the block height | 5 |
calculateAssetId(Issue): ByteVector | Calculates ID of the token formed by the Issue structure when executing the callable function | 10 |
calculateDelay(ByteVector, Int, Address, Int): Int | Calculates the time delay before generating a block | 1 |
calculateLeaseId(Lease): ByteVector | Calculates ID of the lease formed by the Lease structure when executing the callable function | 1 |
scriptHash(Address|Alias): ByteVector|Unit | Returns BLAKE2b-256 hash of the script assigned to a given account | 200 |
transactionHeightById(ByteVector): Int|Unit | Gets the block height of a transaction | 20 |
transferTransactionById(ByteVector): TransferTransaction|Unit | Gets the data of a transfer transaction | 60 |
wavesBalance(Address|Alias): BalanceDetails | Gets account balance in WAVES | 10 |
# Byte array functions
Name | Description | Complexity |
---|---|---|
drop(ByteVector, Int): ByteVector | Returns a given byte array without the first N bytes | 6 |
dropRight(ByteVector, Int): ByteVector | Returns a given byte array without the last N bytes | 6 |
size(ByteVector): Int | Returns the number of bytes in a byte array | 1 |
take(ByteVector, Int): ByteVector | Returns the first N bytes of the byte array | 6 |
takeRight(ByteVector, Int): ByteVector | Returns the last N bytes of the byte array | 6 |
# Converting functions
Name | Description | Complexity |
---|---|---|
addressFromPublicKey(ByteVector): Address | Converts account public key to address | 1 |
parseBigInt(String): BigInt|Unit | Converts the string representation of a number to its big integer equivalent | 1 for Standard library version 8 65 for Standard library version 7 or 6 |
parseBigIntValue(String): BigInt | Converts the string representation of a number to its big integer equivalent. Fails if the string cannot be parsed | 1 for Standard library version 8 65 for Standard library version 7 or 6 |
parseInt(String): Int|Unit | Converts the string representation of a number to its integer equivalent | 2 |
parseIntValue(String): Int | Converts the string representation of a number to its integer equivalent. Fails if the string cannot be parsed | 2 |
toBigInt(ByteVector): BigInt | Converts an array of bytes to a big integer | 1 for Standard library version 8 65 for Standard library version 7 or 6 |
toBigInt(ByteVector, Int, Int): BigInt | Converts an array of bytes starting from a certain index to a big integer | 1 for Standard library version 8 65 for Standard library version 7 or 6 |
toBigInt(Int): BigInt | Converts an integer to a big integer | 1 |
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 | 8 |
toBytes(BigInt): ByteVector | Converts a big integer to an array of bytes | 1 for Standard library version 8 65 for Standard library version 7 or 6 |
toInt(BigInt): Int | Converts a big integer to an integer. Fails if the number cannot be converted | 1 |
toInt(ByteVector): Int | Converts an array of bytes to an integer | 1 |
toInt(ByteVector, Int): Int | Converts an array of bytes to an integer starting from a certain index | 1 |
toString(Address): String | Converts an address to a string | 1 |
toString(BigInt): String | Converts a big integer to a string | 1 |
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 | 7 |
transferTransactionFromProto(ByteVector): TransferTransaction|Unit | Deserializes transfer transaction | 5 |
# dApp-to-dApp invocation functions
Name | Description | Complexity |
---|---|---|
invoke(Address|Alias, String, List[Any], List[AttachedPayments]): Any | Invokes a dApp callable function, with reentrancy restriction | 75 |
reentrantInvoke(Address|Alias, String, List[Any], List[AttachedPayments]): Any | Invokes a dApp callable function, without reentrancy restriction | 75 |
# Data transaction functions
Name | Description | Complexity |
---|---|---|
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 | 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 | 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 | 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 | 4 |
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 | 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 | 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 | 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 | 4 |
# Decoding functions
Name | Description | Complexity |
---|---|---|
addressFromString(String): Address|Unit | Decodes address from base58 string | 1 |
addressFromStringValue(String): Address | Decodes address from base58 string. Fails if the address cannot be decoded | 1 |
fromBase16String(String): ByteVector | Decodes base16 string to an array of bytes | 10 |
fromBase58String(String): ByteVector | Decodes base58 string to an array of bytes | 1 |
fromBase64String(String): ByteVector | Decodes base64 string to an array of bytes | 40 |
# 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 | 3 |
toBase64String(ByteVector): String | Encodes array of bytes to base64 string | 35 |
# 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 | 13–136 |
keccak256(ByteVector): ByteVector | Range of functions. Hash an array of bytes using Keccak-256 | 20–195 |
sha256(ByteVector): ByteVector | Range of functions. Hash an array of bytes using SHA-256 | 12–118 |
# List functions
Name | Description | Complexity |
---|---|---|
cons(A, List[B]): List[A|B] | Inserts element to the beginning of the list | 1 |
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[T], T): Int|Unit | Returns the index of the first occurrence of the element in the list | 5 |
lastIndexOf(List[T], 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 of integers | 3 |
max(List[BigInt]): BigInt | Returns the largest element in the list of big integers | 6 for Standard library version 8 192 for Standard library version 7 or 6 |
min(List[Int]): Int | Returns the smallest element in the list of integers | 3 |
min(List[BigInt]): BigInt | Returns the smallest element in the list of big integers | 6 for Standard library version 8 192 for Standard library version 7 or 6 |
removeByIndex(List[T], Int): List[T] | Removes an element from a list at the given index | 4 for Standard library version 8 7 for Standard library version 7 or 6 |
replaceByIndex(List[T], Int, T): List[T] | Replaces an element in the list at a given index | 4 |
size(List[T]): Int | Returns the size of the list | 2 |
A
, B
, T
means any valid type.
# Math functions
Name | Description | Complexity |
---|---|---|
fraction(Int, Int, Int): Int | Multiplies and divides integers to avoid overflow | 1 |
fraction(Int, Int, Int, Union): Int | Multiplies and divides integers to avoid overflow, applying the specified rounding method | 1 |
fraction(BigInt, BigInt, BigInt): BigInt | Multiplies and divides big integers to avoid overflow | 1 |
fraction(BigInt, BigInt, BigInt, Union): BigInt | Multiplies and divides big integers to avoid overflow, applying the specified rounding method | 1 |
log(Int, Int, Int, Int, Int, Union): Int | Calculates logarithm of a number with a base | 100 |
log(BigInt, Int, BigInt, Int, Int, Union): BigInt | Calculates logarithm of a number to a given base with high accuracy | 200 |
median(List[Int]): Int | Returns the median of a list of integers | 20 |
median(List[BigInt]): BigInt | Returns the median of a list of big integers | 35 for Standard library version 8 160 for Standard library version 7 or 6 |
pow(Int, Int, Int, Int, Int, Union): Int | Raises a number to a given power | 28 |
pow(BigInt, Int, BigInt, Int, Int, Union): BigInt | Raises a number to a given power with high accuracy | 270 |
sqrt(Int, Int, Int, Union): Int | Returns the square root of a number | 2 |
sqrt(BigInt, Int, Int, Union): BigInt | Returns the square root of a number with high accuracy | 5 |
# String functions
Name | Description | Complexity |
---|---|---|
contains(String, String): Boolean | Checks whether the string contains substring | 3 |
drop(String, Int): String | Returns a given string without the first N characters | 20 |
dropRight(String, Int): String | Returns a given string without the last N characters | 20 |
indexOf(String, String): Int|Unit | Returns the index of the first occurrence of a substring | 3 |
indexOf(String, String, Int): Int|Unit | Returns the index of the first occurrence of a substring after a certain index | 3 |
lastIndexOf(String, String): Int|Unit | Returns the index of the last occurrence of a substring | 3 |
lastindexOf(String, String, Int): Int|Unit | Returns the index of the last occurrence of a substring before a certain index | 3 |
makeString(List[String], String): String | Range of functions. Concatenate list strings adding a separator | 1–11 |
size(String): Int | Returns the size of a string | 1 |
split(String, String): List[String] | Range of functions. Split a string delimited by a separator into a list of substrings | 1–51 |
take(String, Int): String | Takes the first N characters from a string | 20 |
takeRight(String, Int): String | Takes the last N characters from a string | 20 |
# Union functions
Name | Description | Complexity |
---|---|---|
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 | 2 |
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 | 2 |
# 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 |
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 | 500–1000 |
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 | 43–180 |