Also uses numbered lists for function descriptions.
1.3 KiB
Ethereum
Addresses
Ethereum addresses are 20-byte hashes.
In Instructions
Ethereum In Instructions are present via being appended to the calldata
transferring funds to Serai. origin
is automatically set to the party from
which funds are being transferred. For an ERC20, this is from
. For ETH, this
is the caller. data
is limited to 255 bytes.
Out Instructions
data
is limited to 255 bytes.
If data
is provided, the Ethereum Router will call a contract-calling child
contract in order to sandbox it. The first byte of data
designates which child
child contract to call. After this byte is read, data
is solely considered as
data
, post its first byte. The child contract is sent the funds before this
call is performed.
Child Contract 0
This contract is intended to enable connecting with other protocols, and should be used to convert withdrawn assets to other assets on Ethereum.
- Transfers the asset to
destination
. - Calls
destination
withdata
.
Child Contract 1
This contract is intended to enable authenticated calls from Serai.
- Transfers the asset to
destination
. - Calls
destination
withdata[.. 4], serai_address, data[4 ..]
, whereserai_address
is the address which triggered this Out Instruction.