Contract-Development
使用批准和 transferFrom 發送代幣與僅傳輸
我們可以使用以下 ERC20 合約方法發送代幣
- 批准()和轉移()
- 轉移()
在這裡,如果我使用第二個選項,則直接轉移令牌,而如果我使用第一個選項,則需要兩步過程
我是新手,我想了解這兩種方式之間的區別?
轉移方式
轉移方法適用於 2 方轉移,發送方希望將一些代幣轉移給接收方。
- 發件人➜
transfer(receiver, amount)
Approve 和 transferFrom 方法
批准 + transferFrom 用於 3 方轉移,通常但不一定是交易所,發送方希望授權第二方代表他們轉移一些代幣。
- 發件人➜
approve(exchange, amount)
- 買方➜在交易所執行交易
- 交流➜
transferFrom(sender, buyer, amount)
transfer(address to, uint tokens) public returns (bool success)
將餘額從所有者帳戶轉移到另一個帳戶
transferFrom(address from, address to, uint tokens) public returns (bool success)
tokens
從地址from
向地址發送代幣數量to
transferFrom 方法用於提款工作流程,允許合約代表您發送代幣,例如“存款”到合約地址和/或以子貨幣收取費用;該命令應該失敗,除非 _from 帳戶通過某種機制故意授權消息的發送者;我們提出這些標準化的 API 以供批准。approve(address spender, uint tokens) public returns (bool success)
允許
spender
多次從您的帳戶中提款,最高限額為該tokens
金額。如果再次呼叫此函式,它會用 _value 覆蓋目前容差。