Ether

閃電貸貸方如何知道您無法償還?

  • May 30, 2021

基本上我想知道它怎麼知道貸款什麼時候沒有還清。我知道這很容易檢查,但它如何恢復交易?

例如,假設我借了 1M USDT,然後我將在 uniswap 上將其兌換為 ETH,然後在 sushiswap 上將其兌換回 USDT。最後我做空了10K USDT,那麼交易會恢復,對吧?

但這意味著我在 uniswap 和 sushiswap 上的交易也會恢復嗎?

因為不執行我的掉期怎麼能證明我無法償還呢?有很多因素會影響這一點,比如有人在我之前做套利,我不再有相同的利潤,那麼它如何在不執行任何交易的情況下驗證這些。

這真的讓我很困惑。

通常貸方合約在藉出請求的資產後會執行回調。支付貸款和費用是回調責任。

如果回調沒有歸還貸款也沒有支付貸方費用,那麼貸方合約將撤銷呼叫,撤消回調所做的任何操作。

interface IBorrower {
   function callback() external;
}

contract Lender {
   function flashLoan(IBorrower borrower, uint256 amount) {
       // Send tokens to borrower
       uint balance = weth.balanceOf(address(this));
       weth.transfer(address(borrower), amount);

       // Execute callback
       borrower.callback();

       // Check loan was returned
       uint returned = weth.balanceOf(address(this));
       require(returned >= balance + FEES, "Callback failed");
   }
}

引用自:https://ethereum.stackexchange.com/questions/99938