API Reference
This page is used to describe all the additional APIs which exists as part of the Contract SDK.
Env
To use the Env
package, you need to import it:
It provides the following functions:
GetBlockHeight
Used to get the block height which will be the one this transaction be a part of
It returns the block height in decimal values:
GetBlockTimestamp
Used to get the block timestamp (creation time) which will be the one this transaction be a part of:
It returns the block timestamp representing the Unix epoch in nanoseconds.
GetVirtualChainId
Used to get the virtual chain id this contract is executing on.
It returns the virtual chain id in decimal values.
Safemath
To use the Safemath
package, you need to import it:
It gives the ability to work with 32, 64, and 256 bit unsigned integers in a 'safe' way meaning there is an overflow/underflow and illegal operation protection around the arithmetic operation done.
The API is uniform between the different variants and consist of the following functions:
Add
Adds two numbers and returns the result. The numbers are validated so that they do not overflow after the addition.
Sub
Subtract y
from x
. The result is validated, so if it becomes negative, an error is returned.
Mul
Multiplies the values and returns the new number. The result is validated so that it does not overflow.
Div
Performs an integer division of x
by y
. The remainder is discarded as it should in integer arithmetic, and the input (y
) is validated not to be zero.
Mod
Performs the modulo operation of x
by y
. The input is validated to be valid (meaning y
is not zero). The resulting number is the reminder.
Validate
Only relevant for safeuint256
The function validates that the number is not negative, and did not overflow. If the validation fails, the code panics with the appropriate message.
Note that validate
is called automatically on each operation, meaning after using Add
or Sub
or any operation of the safemath library, so there is no need to call it manually.
Last updated