gpt4 book ai didi

python - 执行已恢复 : SafeERC20: low-level call failed

转载 作者:行者123 更新时间:2023-12-02 18:45:14 24 4
gpt4 key购买 nike

我正在尝试使用 web3.py 获得闪贷。我能够成功部署闪贷合约,但是当我调用闪贷函数时,它给了我

execution reverted: SafeERC20: low-level call failed' failed error. I have enough ether in my account.

我需要向我的闪贷合约发送一些以太币吗?但我不认为这个错误是因为缺乏以太币来支付汽油费。 (如果是这种情况请告诉我!)

下面是我的闪贷代码

pragma solidity ^0.6.6;

import "./aave/FlashLoanReceiverBaseV2.sol";
import "../../interfaces/v2/ILendingPoolAddressesProviderV2.sol";
import "../../interfaces/v2/ILendingPoolV2.sol";

contract FlashloanV2 is FlashLoanReceiverBaseV2, Withdrawable {
constructor(address _addressProvider) FlashLoanReceiverBaseV2(_addressProvider) public {}

function executeOperation(
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums,
address initiator,
bytes calldata params
)
external
override
returns (bool)
{

// Approve the LendingPool contract allowance to *pull* the owed amount
for (uint i = 0; i < assets.length; i++) {
uint amountOwing = amounts[i].add(premiums[i]);
IERC20(assets[i]).approve(address(LENDING_POOL), amountOwing);
}
return true;
}

function _flashloan(address[] memory assets, uint256[] memory amounts) internal {
address receiverAddress = address(this);

address onBehalfOf = address(this);
bytes memory params = "";
uint16 referralCode = 0;

uint256[] memory modes = new uint256[](assets.length);

// 0 = no debt (flash), 1 = stable, 2 = variable
for (uint256 i = 0; i < assets.length; i++) {
modes[i] = 0;
}

LENDING_POOL.flashLoan(
receiverAddress,
assets,
amounts,
modes,
onBehalfOf,
params,
referralCode
);
}


function flashloan(address[] memory assets, uint256[] memory amounts) public onlyOwner {
_flashloan(assets, amounts);
}


function flashloan(address _asset) public onlyOwner {
bytes memory data = "";
uint amount = 1 ether;

address[] memory assets = new address[](1);
assets[0] = _asset;

uint256[] memory amounts = new uint256[](1);
amounts[0] = amount;

_flashloan(assets, amounts);
}
}

最佳答案

我认为您收到的错误是因为您没有可用资金在(闪电)交易结束时偿还闪贷+保费。

你的逻辑不会产生任何额外的利润,并且你单独索要的资金不足以支付费用。

关于python - 执行已恢复 : SafeERC20: low-level call failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67543220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com