If the token is a smart asset, the asset script verifies the
ScriptTransfer action as if it were TransferTransaction with the fee of 0 and the version of 0. If the asset script denies the action, then the transaction that invoked the dApp script is either denied or saved on the blockchain as failed, see the Transaction Validation.
ScriptTransfer(recipient: Address|Alias, amount: Int, asset: ByteVector|Unit)
|Address or alias of a recipient
|Token amount to transfer: an integer value specified in the atomic units of the token
unit means WAVES
Limitations on the total number of script actions are given in the Limitations article.