There are several options when it comes to deciding where should the money come from. The send statement makes it handy by providing the following possibilities:
The simplest way of sending a monetary value is from a single source. Here, we draw
COIN 100 from the
Using an ordered source block, you can defined several accounts to draw from sequentially until the desired monetary value is reached.
In example above, if the balance of
COIN on the account
users:001:wallet is 30, another 70 will be drawn from the
Ordered sources can also be maxed to a monetary, preventing them from being drawn more than the amount specified:
In addition to sequential accounts, source blocks can also use fractions to split the expense onto multiple accounts.
In any case, the summed total of fractions in a block needs to be equal to 1 and the
remaining keyword can be used to reach that total.
Out of convenience, percentage notation is also available:
Source blocks can be nested with a combination of recursive ordered / portioned specifications: