Deposit GenerationΒΆ
Users will usually first interact with a plasma chain by depositing their assets into a plasma deposit contract. Deposits usually consist of a single Ethereum transaction that locks some assets into the depoist contract. This page describes how a client can make a deposit and start using a plasma chain.
Plasma chain transactions transform the state of a range of state objects. The state of each range at a moment in time is described by a state object. Each state object specifies the address of a predicate contract and some additional arbitrary data which are used in tandem to manage ownership of an asset.
Users submit deposit transactions to a plasma deposit contract. Each deposit contract exposes a method deposit
:
function deposit(uint256 _amount, StateObject _state) public payable
Where StateObject
is the following struct:
struct StateObject {
address predicate;
bytes data;
}
deposit
requires that users specify the _amount
the asset being deposited and an initial state object, _state
, that controls ownership of the asset. For example, users might use the SimpleOwnership predicate to control their asset.