directDeposit 是使用调用方指定金额为 flow 提供资金的默认方式。在编译时,它会将输入金额解析为你传入的确切 amount(以基本单位表示的十进制字符串)。在执行时,VM 会将该金额转入自身 —— 原生代币输入通过 msg.value,ERC-20 输入则通过 transferFrom(sender)(调用方必须已预先向执行代理授权)。传入 allowNonExact: true 可将 amount 视为上限而非确切值,或者省略 amount(同时设置 allowNonExact: true)以扫走代理已获授权的全部余额;参见下方 schema。
当 UI 已经知道用户想要花费的确切金额时,使用 directDeposit。对于「花光我的全部余额」这类交互体验,请改用 balanceOf。

