Address Contract Partially Verified
Address
0x12d9fBC1dc633017192F0D9b513D38e6D0f99cE6
Balance
0.003406 ETH
Nonce
1
Code Size
5714 bytes
Creator
0x6438aa3a...f2f0 at tx 0xc6672404...404e39
Indexed Transactions
0
Contract Bytecode
5714 bytes
0x6080604052600436106100595760003560e01c80630542975c14610065578063524533eb14610090578063920f5c84146100b95780639e281a98146100f6578063b4dcfc771461011f578063d54ba9541461014a57610060565b3661006057005b600080fd5b34801561007157600080fd5b5061007a610173565b6040516100879190611211565b60405180910390f35b34801561009c57600080fd5b506100b760048036038101906100b29190610de6565b610197565b005b3480156100c557600080fd5b506100e060048036038101906100db9190610cfe565b610309565b6040516100ed91906111f6565b60405180910390f35b34801561010257600080fd5b5061011d60048036038101906101189190610cc2565b610598565b005b34801561012b57600080fd5b506101346106f5565b604051610141919061122c565b60405180910390f35b34801561015657600080fd5b50610171600480360381019061016c9190610cc2565b610719565b005b7f000000000000000000000000b53c1a33016b2dc2ff3653530bff1848a515c8c581565b80518251146101db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101d290611287565b60405180910390fd5b60003090506000835167ffffffffffffffff811115610223577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156102515781602001602082028036833780820191505090505b509050600060405180602001604052806000815250905060007f0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a973ffffffffffffffffffffffffffffffffffffffff1663ab9c4b5d858888873088886040518863ffffffff1660e01b81526004016102cf9796959493929190611142565b600060405180830381600087803b1580156102e957600080fd5b505af11580156102fd573d6000803e3d6000fd5b50505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610379576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161037090611247565b60405180910390fd5b60005b8a8a90508110156105865760008b8b838181106103c2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906103d79190610c99565b905060008a8a84818110610414577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013590506000898985818110610458577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013590506000818361046f91906113f8565b90508373ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a9836040518363ffffffff1660e01b81526004016104cc9291906111cd565b602060405180830381600087803b1580156104e657600080fd5b505af11580156104fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051e9190610e52565b508373ffffffffffffffffffffffffffffffffffffffff167f61268d74931c41c9775dffb6169a5208aab1d09cb2eb6aabe8b97162801e5dfa84846040516105679291906112a7565b60405180910390a250505050808061057e9061151f565b91505061037c565b50600190509998505050505050505050565b808273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105d29190611127565b60206040518083038186803b1580156105ea57600080fd5b505afa1580156105fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106229190610e7b565b1015610663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065a90611267565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b815260040161069e9291906111cd565b602060405180830381600087803b1580156106b857600080fd5b505af11580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190610e52565b505050565b7f0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a981565b60003090506000600167ffffffffffffffff811115610761577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561078f5781602001602082028036833780820191505090505b50905083816000815181106107cd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600167ffffffffffffffff81111561084a577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156108785781602001602082028036833780820191505090505b50905083816000815181106108b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250506000600167ffffffffffffffff811115610905577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156109335781602001602082028036833780820191505090505b509050600081600081518110610972577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250506000309050600060405180602001604052806000815250905060007f0000000000000000000000007d2768de32b0b80b7a3454c06bdac94a69ddc7a973ffffffffffffffffffffffffffffffffffffffff1663ab9c4b5d888888888888886040518863ffffffff1660e01b81526004016109fe9796959493929190611142565b600060405180830381600087803b158015610a1857600080fd5b505af1158015610a2c573d6000803e3d6000fd5b50505050505050505050505050565b6000610a4e610a4984611301565b6112d0565b90508083825260208201905082856020860282011115610a6d57600080fd5b60005b85811015610a9d5781610a838882610b13565b845260208401935060208301925050600181019050610a70565b5050509392505050565b6000610aba610ab58461132d565b6112d0565b90508083825260208201905082856020860282011115610ad957600080fd5b60005b85811015610b095781610aef8882610c6f565b845260208401935060208301925050600181019050610adc565b5050509392505050565b600081359050610b22816115d7565b92915050565b60008083601f840112610b3a57600080fd5b8235905067ffffffffffffffff811115610b5357600080fd5b602083019150836020820283011115610b6b57600080fd5b9250929050565b600082601f830112610b8357600080fd5b8135610b93848260208601610a3b565b91505092915050565b60008083601f840112610bae57600080fd5b8235905067ffffffffffffffff811115610bc757600080fd5b602083019150836020820283011115610bdf57600080fd5b9250929050565b600082601f830112610bf757600080fd5b8135610c07848260208601610aa7565b91505092915050565b600081519050610c1f816115ee565b92915050565b60008083601f840112610c3757600080fd5b8235905067ffffffffffffffff811115610c5057600080fd5b602083019150836001820283011115610c6857600080fd5b9250929050565b600081359050610c7e81611605565b92915050565b600081519050610c9381611605565b92915050565b600060208284031215610cab57600080fd5b6000610cb984828501610b13565b91505092915050565b60008060408385031215610cd557600080fd5b6000610ce385828601610b13565b9250506020610cf485828601610c6f565b9150509250929050565b600080600080600080600080600060a08a8c031215610d1c57600080fd5b60008a013567ffffffffffffffff811115610d3657600080fd5b610d428c828d01610b28565b995099505060208a013567ffffffffffffffff811115610d6157600080fd5b610d6d8c828d01610b9c565b975097505060408a013567ffffffffffffffff811115610d8c57600080fd5b610d988c828d01610b9c565b95509550506060610dab8c828d01610b13565b93505060808a013567ffffffffffffffff811115610dc857600080fd5b610dd48c828d01610c25565b92509250509295985092959850929598565b60008060408385031215610df957600080fd5b600083013567ffffffffffffffff811115610e1357600080fd5b610e1f85828601610b72565b925050602083013567ffffffffffffffff811115610e3c57600080fd5b610e4885828601610be6565b9150509250929050565b600060208284031215610e6457600080fd5b6000610e7284828501610c10565b91505092915050565b600060208284031215610e8d57600080fd5b6000610e9b84828501610c84565b91505092915050565b6000610eb08383610ed4565b60208301905092915050565b6000610ec88383611109565b60208301905092915050565b610edd8161144e565b82525050565b610eec8161144e565b82525050565b6000610efd82611379565b610f0781856113b4565b9350610f1283611359565b8060005b83811015610f43578151610f2a8882610ea4565b9750610f358361139a565b925050600181019050610f16565b5085935050505092915050565b6000610f5b82611384565b610f6581856113c5565b9350610f7083611369565b8060005b83811015610fa1578151610f888882610ebc565b9750610f93836113a7565b925050600181019050610f74565b5085935050505092915050565b610fb781611460565b82525050565b6000610fc88261138f565b610fd281856113d6565b9350610fe28185602086016114ec565b610feb816115c6565b840191505092915050565b610fff816114a4565b82525050565b61100e816114c8565b82525050565b60006110216011836113e7565b91507f496e76616c696420696e69746961746f720000000000000000000000000000006000830152602082019050919050565b60006110616014836113e7565b91507f496e73756666696369656e742062616c616e63650000000000000000000000006000830152602082019050919050565b60006110a16022836113e7565b91507f546f6b656e7320616e6420616d6f756e7473206c656e677468206d69736d617460008301527f63680000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6111038161146c565b82525050565b6111128161149a565b82525050565b6111218161149a565b82525050565b600060208201905061113c6000830184610ee3565b92915050565b600060e082019050611157600083018a610ee3565b81810360208301526111698189610ef2565b9050818103604083015261117d8188610f50565b905081810360608301526111918187610f50565b90506111a06080830186610ee3565b81810360a08301526111b28185610fbd565b90506111c160c08301846110fa565b98975050505050505050565b60006040820190506111e26000830185610ee3565b6111ef6020830184611118565b9392505050565b600060208201905061120b6000830184610fae565b92915050565b60006020820190506112266000830184610ff6565b92915050565b60006020820190506112416000830184611005565b92915050565b6000602082019050818103600083015261126081611014565b9050919050565b6000602082019050818103600083015261128081611054565b9050919050565b600060208201905081810360008301526112a081611094565b9050919050565b60006040820190506112bc6000830185611118565b6112c96020830184611118565b9392505050565b6000604051905081810181811067ffffffffffffffff821117156112f7576112f6611597565b5b8060405250919050565b600067ffffffffffffffff82111561131c5761131b611597565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561134857611347611597565b5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b60006114038261149a565b915061140e8361149a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561144357611442611568565b5b828201905092915050565b60006114598261147a565b9050919050565b60008115159050919050565b600061ffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006114af826114b6565b9050919050565b60006114c18261147a565b9050919050565b60006114d3826114da565b9050919050565b60006114e58261147a565b9050919050565b60005b8381101561150a5780820151818401526020810190506114ef565b83811115611519576000848401525b50505050565b600061152a8261149a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561155d5761155c611568565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6115e08161144e565b81146115eb57600080fd5b50565b6115f781611460565b811461160257600080fd5b50565b61160e8161149a565b811461161957600080fd5b5056fea2646970667358221220f70c148683ff562eed0e6bd0c9a13fe86249bcfbc9b302841743926eaea9986364736f6c63430008000033
Verified Source Code Partial Match
Compiler: v0.8.0+commit.c7dfd78e
EVM: istanbul
Optimization: No
WrapperUSDTFlash.sol 349 lines
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
pragma experimental ABIEncoderV2;
library DataTypes {
struct ReserveData {
ReserveConfigurationMap configuration;
uint128 liquidityIndex;
uint128 variableBorrowIndex;
uint128 currentLiquidityRate;
uint128 currentVariableBorrowRate;
uint128 currentStableBorrowRate;
uint40 lastUpdateTimestamp;
address aTokenAddress;
address stableDebtTokenAddress;
address variableDebtTokenAddress;
address interestRateStrategyAddress;
uint8 id;
}
struct ReserveConfigurationMap {
uint256 data;
}
struct UserConfigurationMap {
uint256 data;
}
enum InterestRateMode {NONE, STABLE, VARIABLE}
}
library Address {
function isContract(address account) internal view returns (bool) {
bytes32 codehash;
bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
assembly {
codehash := extcodehash(account)
}
return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, 'Address: insufficient balance');
(bool success, ) = recipient.call{value: amount}('');
require(success, 'Address: unable to send value, recipient may have reverted');
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, 'SafeMath: addition overflow');
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, 'SafeMath: subtraction overflow');
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, 'SafeMath: multiplication overflow');
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, 'SafeMath: division by zero');
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, 'SafeMath: modulo by zero');
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library SafeERC20 {
using SafeMath for uint256;
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
'SafeERC20: approve from non-zero to non-zero allowance'
);
callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function callOptionalReturn(IERC20 token, bytes memory data) private {
require(address(token).isContract(), 'SafeERC20: call to non-contract');
(bool success, bytes memory returndata) = address(token).call(data);
require(success, 'SafeERC20: low-level call failed');
if (returndata.length > 0) {
require(abi.decode(returndata, (bool)), 'SafeERC20: ERC20 operation did not succeed');
}
}
}
interface ILendingPoolAddressesProvider {
event MarketIdSet(string newMarketId);
event LendingPoolUpdated(address indexed newAddress);
event ConfigurationAdminUpdated(address indexed newAddress);
event EmergencyAdminUpdated(address indexed newAddress);
event LendingPoolConfiguratorUpdated(address indexed newAddress);
event LendingPoolCollateralManagerUpdated(address indexed newAddress);
event PriceOracleUpdated(address indexed newAddress);
event LendingRateOracleUpdated(address indexed newAddress);
event ProxyCreated(bytes32 id, address indexed newAddress);
event AddressSet(bytes32 id, address indexed newAddress, bool hasProxy);
function getMarketId() external view returns (string memory);
function setMarketId(string calldata marketId) external;
function setAddress(bytes32 id, address newAddress) external;
function setAddressAsProxy(bytes32 id, address impl) external;
function getAddress(bytes32 id) external view returns (address);
function getLendingPool() external view returns (address);
function setLendingPoolImpl(address pool) external;
function getLendingPoolConfigurator() external view returns (address);
function setLendingPoolConfiguratorImpl(address configurator) external;
function getLendingPoolCollateralManager() external view returns (address);
function setLendingPoolCollateralManager(address manager) external;
function getPoolAdmin() external view returns (address);
function setPoolAdmin(address admin) external;
function getEmergencyAdmin() external view returns (address);
function setEmergencyAdmin(address admin) external;
function getPriceOracle() external view returns (address);
function setPriceOracle(address priceOracle) external;
function getLendingRateOracle() external view returns (address);
function setLendingRateOracle(address lendingRateOracle) external;
}
interface ILendingPool {
event Deposit(address indexed reserve, address user, address indexed onBehalfOf, uint256 amount, uint16 indexed referral);
event Withdraw(address indexed reserve, address indexed user, address indexed to, uint256 amount);
event Borrow(address indexed reserve, address user, address indexed onBehalfOf, uint256 amount, uint256 borrowRateMode, uint256 borrowRate, uint16 indexed referral);
event Repay(address indexed reserve, address indexed user, address indexed repayer, uint256 amount);
event Swap(address indexed reserve, address indexed user, uint256 rateMode);
event ReserveUsedAsCollateralEnabled(address indexed reserve, address indexed user);
event ReserveUsedAsCollateralDisabled(address indexed reserve, address indexed user);
event RebalanceStableBorrowRate(address indexed reserve, address indexed user);
event FlashLoan(address indexed target, address indexed initiator, address indexed asset, uint256 amount, uint256 premium, uint16 referralCode);
event Paused();
event Unpaused();
event LiquidationCall(address indexed collateralAsset, address indexed debtAsset, address indexed user, uint256 debtToCover, uint256 liquidatedCollateralAmount, address liquidator, bool receiveAToken);
event ReserveDataUpdated(address indexed reserve, uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate, uint256 liquidityIndex, uint256 variableBorrowIndex);
function deposit(address asset, uint256 amount, address onBehalfOf, uint16 referralCode) external;
function withdraw(address asset, uint256 amount, address to) external returns (uint256);
function borrow(address asset, uint256 amount, uint256 interestRateMode, uint16 referralCode, address onBehalfOf) external;
function repay(address asset, uint256 amount, uint256 rateMode, address onBehalfOf) external returns (uint256);
function swapBorrowRateMode(address asset, uint256 rateMode) external;
function rebalanceStableBorrowRate(address asset, address user) external;
function setUserUseReserveAsCollateral(address asset, bool useAsCollateral) external;
function liquidationCall(address collateralAsset, address debtAsset, address user, uint256 debtToCover, bool receiveAToken) external;
function flashLoan(address receiverAddress, address[] calldata assets, uint256[] calldata amounts, uint256[] calldata modes, address onBehalfOf, bytes calldata params, uint16 referralCode) external;
function getUserAccountData(address user) external view returns (uint256 totalCollateralETH, uint256 totalDebtETH, uint256 availableBorrowsETH, uint256 currentLiquidationThreshold, uint256 ltv, uint256 healthFactor);
function initReserve(address reserve, address aTokenAddress, address stableDebtAddress, address variableDebtAddress, address interestRateStrategyAddress) external;
function setReserveInterestRateStrategyAddress(address reserve, address rateStrategyAddress) external;
function setConfiguration(address reserve, uint256 configuration) external;
function getConfiguration(address asset) external view returns (DataTypes.ReserveConfigurationMap memory);
function getUserConfiguration(address user) external view returns (DataTypes.UserConfigurationMap memory);
function getReserveNormalizedIncome(address asset) external view returns (uint256);
function getReserveNormalizedVariableDebt(address asset) external view returns (uint256);
function getReserveData(address asset) external view returns (DataTypes.ReserveData memory);
function finalizeTransfer(address asset, address from, address to, uint256 amount, uint256 balanceFromAfter, uint256 balanceToBefore) external;
function getReservesList() external view returns (address[] memory);
function getAddressesProvider() external view returns (ILendingPoolAddressesProvider);
function setPause(bool val) external;
function paused() external view returns (bool);
}
interface IFlashLoanReceiver {
function executeOperation(
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums,
address initiator,
bytes calldata params
) external returns (bool);
function ADDRESSES_PROVIDER() external view returns (ILendingPoolAddressesProvider);
function LENDING_POOL() external view returns (ILendingPool);
}
abstract contract FlashLoanReceiverBase is IFlashLoanReceiver {
using SafeERC20 for IERC20;
using SafeMath for uint256;
ILendingPoolAddressesProvider public immutable override ADDRESSES_PROVIDER;
ILendingPool public immutable override LENDING_POOL;
constructor(ILendingPoolAddressesProvider provider) {
ADDRESSES_PROVIDER = provider;
LENDING_POOL = ILendingPool(provider.getLendingPool());
}
}
contract WrapperUSDTFlash is FlashLoanReceiverBase {
event FlashLoanExecuted(address indexed token, uint256 amount, uint256 premium);
event FlashLoanFailed(address indexed token, uint256 amount, string reason);
constructor(ILendingPoolAddressesProvider _addressProvider)
FlashLoanReceiverBase(_addressProvider)
{}
function executeOperation(
address[] calldata assets,
uint256[] calldata amounts,
uint256[] calldata premiums,
address initiator,
bytes calldata params
) external override returns (bool) {
require(initiator == address(this), "Invalid initiator");
for (uint256 i = 0; i < assets.length; i++) {
address token = assets[i];
uint256 amount = amounts[i];
uint256 premium = premiums[i];
uint256 amountOwing = amount + premium;
IERC20(token).approve(address(LENDING_POOL), amountOwing);
emit FlashLoanExecuted(token, amount, premium);
}
return true;
}
function requestFlashLoan(address _token, uint256 _amount) public {
address receiverAddress = address(this);
address[] memory assets = new address[](1);
assets[0] = _token;
uint256[] memory amounts = new uint256[](1);
amounts[0] = _amount;
uint256[] memory modes = new uint256[](1);
modes[0] = 0;
address onBehalfOf = address(this);
bytes memory params = "";
uint16 referralCode = 0;
LENDING_POOL.flashLoan(
receiverAddress,
assets,
amounts,
modes,
onBehalfOf,
params,
referralCode
);
}
function requestMultiTokenFlashLoan(address[] memory _tokens, uint256[] memory _amounts) public {
require(_tokens.length == _amounts.length, "Tokens and amounts length mismatch");
address receiverAddress = address(this);
uint256[] memory modes = new uint256[](_tokens.length);
bytes memory params = "";
uint16 referralCode = 0;
LENDING_POOL.flashLoan(
receiverAddress,
_tokens,
_amounts,
modes,
address(this),
params,
referralCode
);
}
function withdrawToken(address _token, uint256 _amount) external {
require(IERC20(_token).balanceOf(address(this)) >= _amount, "Insufficient balance");
IERC20(_token).transfer(msg.sender, _amount);
}
receive() external payable {}
}
Read Contract
ADDRESSES_PROVIDER 0x0542975c → address
LENDING_POOL 0xb4dcfc77 → address
Write Contract 4 functions
These functions modify contract state and require a wallet transaction to execute.
executeOperation 0x920f5c84
address[] assets
uint256[] amounts
uint256[] premiums
address initiator
bytes params
returns: bool
requestFlashLoan 0xd54ba954
address _token
uint256 _amount
requestMultiTokenFlashLoan 0x524533eb
address[] _tokens
uint256[] _amounts
withdrawToken 0x9e281a98
address _token
uint256 _amount
Recent Transactions
No transactions found for this address