Built-in Functions

panic

cadenceā€¢fun panic(_ message: String): Never

Terminates the program unconditionally and reports a message which explains why the unrecoverable error occurred.

1
let optionalAccount: AuthAccount? = // ...
2
let account = optionalAccount ?? panic("missing account")

assert

cadenceā€¢fun assert(_ condition: Bool, message: String)

Terminates the program if the given condition is false, and reports a message which explains how the condition is false. Use this function for internal sanity checks.

The message argument is optional.

unsafeRandom

cadenceā€¢fun unsafeRandom(): UInt64

Returns a pseudo-random number.

NOTE: The use of this function is unsafe if not used correctly.

Follow best practices to prevent security issues when using this function.

RLP

RLP (Recursive Length Prefix) serialization allows the encoding of arbitrarily nested arrays of binary data.

Cadence provides RLP decoding functions in the built-in RLP contract, which does not need to be imported.

  • cadenceā€¢fun decodeString(_ input: [UInt8]): [UInt8]

    Decodes an RLP-encoded byte array (called string in the context of RLP). The byte array should only contain of a single encoded value for a string; if the encoded value type does not match, or it has trailing unnecessary bytes, the program aborts. If any error is encountered while decoding, the program aborts.

  • cadenceā€¢fun decodeList(_ input: [UInt8]): [[UInt8]]

    Decodes an RLP-encoded list into an array of RLP-encoded items. Note that this function does not recursively decode, so each element of the resulting array is RLP-encoded data. The byte array should only contain of a single encoded value for a list; if the encoded value type does not match, or it has trailing unnecessary bytes, the program aborts. If any error is encountered while decoding, the program aborts.