DODO 文档中心

⚡ 闪电贷款

什么是闪电贷款?#

闪电贷款是一种机制,允许用户在进行交易或其他付款时立即借款。换句话说,这意味着您可以信用购买,并以后偿还债务。当您使用闪电贷款购买代币时,闪电贷款允许您先收到代币,然后再付款。

闪电贷款机制#

上图展示了DODO V2闪电贷款交换的四个步骤。

  1. 在资金池合约中调用 flashLoan 函数。
  2. 资金池向申请者发送基础和引用代币(其中的 baseAmount 或 quoteAmount 可以被借为0)。
  3. 如果 flashLoan 函数以非空的 data 被调用,合约将调用申请者传入 assetTo 合约地址的 DVMFlashLoanCallDPPFlashLoanCall 方法(对应于公共和私有资金池)。
  4. 在执行 DVMFlashLoanCallDPPFlashLoanCall 后,代币将被退回,合约将计算资金池是否亏损。如果亏损,交易将立即失败。
function flashLoan(
     uint256 baseAmount,
     uint256 quoteAmount,
     address assetTo,
     bytes calldata data
) external;

注意:DODO V2 的 flashLoan() 函数将预览将基础和引用代币平衡为初始状态的交易。它将使用预览交易费作为闪电贷款费用,在其他情况下不收取其他费用。

使用 DODO 闪电贷款 API 需要用户实现 IDODOCallee 接口。

interface IDODOCallee {
    function DVMFlashLoanCall(
        address sender,
        uint256 baseAmount,
        uint256 quoteAmount,
        bytes calldata data
    ) external;

    function DPPFlashLoanCall(
        address sender,
        uint256 baseAmount,
        uint256 quoteAmount,
        bytes calldata data
    ) external;

    function DSPFlashLoanCall(
        address sender,
        uint256 baseAmount,
        uint256 quoteAmount,
        bytes calldata data
    ) external;
}

如何使用#

示例代码:DODOFlashloan.sol

一些想法

一旦开始使用闪电贷款,您将会理解去中心化金融与中心化金融的优势所在。通过结合智能合约,我们可以将使用资金在去中心化金融的利用率提高到前所未有的水平,因为去中心化金融世界中的信任成本非常低。DODO团队希望通过引入闪电贷款,让 DeFi 从业者开始接触去中心化金融世界。

注意:DODO的闪电贷款功能受到了dYdX和Uniswap的启发。DODO团队感谢这些去中心化金融世界的先驱者的创新工作。👍