diff --git a/buidler.config.ts b/buidler.config.ts index df75b143..5088f9d3 100644 --- a/buidler.config.ts +++ b/buidler.config.ts @@ -12,7 +12,7 @@ usePlugin('@nomiclabs/buidler-waffle'); usePlugin('@nomiclabs/buidler-etherscan'); -['misc', 'deployments', 'migrations'].forEach((folder) => { +['misc'].forEach((folder) => { const tasksPath = path.join(__dirname, 'tasks', folder); fs.readdirSync(tasksPath).forEach((task) => require(`${tasksPath}/${task}`)); }); diff --git a/contracts/lendingpool/LendingPool.sol b/contracts/lendingpool/LendingPool.sol index 86bc3d7f..0223cf74 100644 --- a/contracts/lendingpool/LendingPool.sol +++ b/contracts/lendingpool/LendingPool.sol @@ -1,1108 +1,1097 @@ // SPDX-License-Identifier: agpl-3.0 pragma solidity ^0.6.8; -import "@openzeppelin/contracts/math/SafeMath.sol"; -import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; -import "@openzeppelin/contracts/utils/Address.sol"; -import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; -import "../libraries/openzeppelin-upgradeability/VersionedInitializable.sol"; +import '@openzeppelin/contracts/math/SafeMath.sol'; +import '@openzeppelin/contracts/utils/ReentrancyGuard.sol'; +import '@openzeppelin/contracts/utils/Address.sol'; +import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; +import '../libraries/openzeppelin-upgradeability/VersionedInitializable.sol'; -import "../configuration/LendingPoolAddressesProvider.sol"; -import "../tokenization/AToken.sol"; -import "../libraries/WadRayMath.sol"; -import "../libraries/CoreLibrary.sol"; -import "../libraries/ReserveLogic.sol"; -import "../libraries/UserLogic.sol"; -import "../libraries/GenericLogic.sol"; -import "../libraries/ValidationLogic.sol"; -import "../libraries/UniversalERC20.sol"; -import "../tokenization/interfaces/IStableDebtToken.sol"; -import "../tokenization/interfaces/IVariableDebtToken.sol"; +import '../configuration/LendingPoolAddressesProvider.sol'; +import '../tokenization/AToken.sol'; +import '../libraries/WadRayMath.sol'; +import '../libraries/CoreLibrary.sol'; +import '../libraries/ReserveLogic.sol'; +import '../libraries/UserLogic.sol'; +import '../libraries/GenericLogic.sol'; +import '../libraries/ValidationLogic.sol'; +import '../libraries/UniversalERC20.sol'; +import '../tokenization/interfaces/IStableDebtToken.sol'; +import '../tokenization/interfaces/IVariableDebtToken.sol'; -import "../interfaces/IFeeProvider.sol"; -import "../flashloan/interfaces/IFlashLoanReceiver.sol"; -import "./LendingPoolLiquidationManager.sol"; -import "../interfaces/IPriceOracleGetter.sol"; -import "@nomiclabs/buidler/console.sol"; +import '../interfaces/IFeeProvider.sol'; +import '../flashloan/interfaces/IFlashLoanReceiver.sol'; +import './LendingPoolLiquidationManager.sol'; +import '../interfaces/IPriceOracleGetter.sol'; +import '@nomiclabs/buidler/console.sol'; /** -* @title LendingPool contract -* @notice Implements the actions of the LendingPool, and exposes accessory methods to fetch the users and reserve data -* @author Aave + * @title LendingPool contract + * @notice Implements the actions of the LendingPool, and exposes accessory methods to fetch the users and reserve data + * @author Aave **/ contract LendingPool is ReentrancyGuard, VersionedInitializable { - using SafeMath for uint256; - using WadRayMath for uint256; - using Address for address payable; - using ReserveLogic for CoreLibrary.ReserveData; - using UserLogic for CoreLibrary.UserReserveData; - using CoreLibrary for CoreLibrary.ReserveData; + using SafeMath for uint256; + using WadRayMath for uint256; + using Address for address payable; + using ReserveLogic for CoreLibrary.ReserveData; + using UserLogic for CoreLibrary.UserReserveData; + using CoreLibrary for CoreLibrary.ReserveData; - //main configuration parameters - uint256 private constant REBALANCE_DOWN_RATE_DELTA = (1e27) / 5; - uint256 private constant MAX_STABLE_RATE_BORROW_SIZE_PERCENT = 25; - uint256 private constant FLASHLOAN_FEE_TOTAL = 9; - uint256 private constant FLASHLOAN_FEE_PROTOCOL = 3000; + //main configuration parameters + uint256 private constant REBALANCE_DOWN_RATE_DELTA = (1e27) / 5; + uint256 private constant MAX_STABLE_RATE_BORROW_SIZE_PERCENT = 25; + uint256 private constant FLASHLOAN_FEE_TOTAL = 9; + uint256 private constant FLASHLOAN_FEE_PROTOCOL = 3000; - LendingPoolAddressesProvider public addressesProvider; - IFeeProvider feeProvider; - using UniversalERC20 for IERC20; + LendingPoolAddressesProvider public addressesProvider; + IFeeProvider feeProvider; + using UniversalERC20 for IERC20; - mapping(address => CoreLibrary.ReserveData) internal reserves; - mapping(address => mapping(address => CoreLibrary.UserReserveData)) internal usersReserveData; + mapping(address => CoreLibrary.ReserveData) internal reserves; + mapping(address => mapping(address => CoreLibrary.UserReserveData)) internal usersReserveData; - address[] public reservesList; + address[] public reservesList; - /** - * @dev emitted on deposit - * @param _reserve the address of the reserve - * @param _user the address of the user - * @param _amount the amount to be deposited - * @param _referral the referral number of the action - * @param _timestamp the timestamp of the action - **/ - event Deposit( - address indexed _reserve, - address indexed _user, - uint256 _amount, - uint16 indexed _referral, - uint256 _timestamp + /** + * @dev emitted on deposit + * @param _reserve the address of the reserve + * @param _user the address of the user + * @param _amount the amount to be deposited + * @param _referral the referral number of the action + * @param _timestamp the timestamp of the action + **/ + event Deposit( + address indexed _reserve, + address indexed _user, + uint256 _amount, + uint16 indexed _referral, + uint256 _timestamp + ); + + /** + * @dev emitted during a redeem action. + * @param _reserve the address of the reserve + * @param _user the address of the user + * @param _amount the amount to be deposited + * @param _timestamp the timestamp of the action + **/ + event RedeemUnderlying( + address indexed _reserve, + address indexed _user, + uint256 _amount, + uint256 _timestamp + ); + + /** + * @dev emitted on borrow + * @param _reserve the address of the reserve + * @param _user the address of the user + * @param _amount the amount to be deposited + * @param _borrowRateMode the rate mode, can be either 1-stable or 2-variable + * @param _borrowRate the rate at which the user has borrowed + * @param _referral the referral number of the action + * @param _timestamp the timestamp of the action + **/ + event Borrow( + address indexed _reserve, + address indexed _user, + uint256 _amount, + uint256 _borrowRateMode, + uint256 _borrowRate, + uint16 indexed _referral, + uint256 _timestamp + ); + + /** + * @dev emitted on repay + * @param _reserve the address of the reserve + * @param _user the address of the user for which the repay has been executed + * @param _repayer the address of the user that has performed the repay action + * @param _amount the amount repaid + * @param _timestamp the timestamp of the action + **/ + event Repay( + address indexed _reserve, + address indexed _user, + address indexed _repayer, + uint256 _amount, + uint256 _timestamp + ); + + /** + * @dev emitted when a user performs a rate swap + * @param _reserve the address of the reserve + * @param _user the address of the user executing the swap + * @param _timestamp the timestamp of the action + **/ + event Swap( + address indexed _reserve, + address indexed _user, + uint256 _timestamp + ); + + /** + * @dev emitted when a user enables a reserve as collateral + * @param _reserve the address of the reserve + * @param _user the address of the user + **/ + event ReserveUsedAsCollateralEnabled(address indexed _reserve, address indexed _user); + + /** + * @dev emitted when a user disables a reserve as collateral + * @param _reserve the address of the reserve + * @param _user the address of the user + **/ + event ReserveUsedAsCollateralDisabled(address indexed _reserve, address indexed _user); + + /** + * @dev emitted when the stable rate of a user gets rebalanced + * @param _reserve the address of the reserve + * @param _user the address of the user for which the rebalance has been executed + * @param _timestamp the timestamp of the action + **/ + event RebalanceStableBorrowRate( + address indexed _reserve, + address indexed _user, + uint256 _timestamp + ); + + /** + * @dev emitted when a flashloan is executed + * @param _target the address of the flashLoanReceiver + * @param _reserve the address of the reserve + * @param _amount the amount requested + * @param _totalFee the total fee on the amount + * @param _protocolFee the part of the fee for the protocol + * @param _timestamp the timestamp of the action + **/ + event FlashLoan( + address indexed _target, + address indexed _reserve, + uint256 _amount, + uint256 _totalFee, + uint256 _protocolFee, + uint256 _timestamp + ); + + /** + * @dev these events are not emitted directly by the LendingPool + * but they are declared here as the LendingPoolLiquidationManager + * is executed using a delegateCall(). + * This allows to have the events in the generated ABI for LendingPool. + **/ + + /** + * @dev emitted when a borrow fee is liquidated + * @param _collateral the address of the collateral being liquidated + * @param _reserve the address of the reserve + * @param _user the address of the user being liquidated + * @param _feeLiquidated the total fee liquidated + * @param _liquidatedCollateralForFee the amount of collateral received by the protocol in exchange for the fee + * @param _timestamp the timestamp of the action + **/ + event OriginationFeeLiquidated( + address indexed _collateral, + address indexed _reserve, + address indexed _user, + uint256 _feeLiquidated, + uint256 _liquidatedCollateralForFee, + uint256 _timestamp + ); + + /** + * @dev emitted when a borrower is liquidated + * @param _collateral the address of the collateral being liquidated + * @param _reserve the address of the reserve + * @param _user the address of the user being liquidated + * @param _purchaseAmount the total amount liquidated + * @param _liquidatedCollateralAmount the amount of collateral being liquidated + * @param _accruedBorrowInterest the amount of interest accrued by the borrower since the last action + * @param _liquidator the address of the liquidator + * @param _receiveAToken true if the liquidator wants to receive aTokens, false otherwise + * @param _timestamp the timestamp of the action + **/ + event LiquidationCall( + address indexed _collateral, + address indexed _reserve, + address indexed _user, + uint256 _purchaseAmount, + uint256 _liquidatedCollateralAmount, + uint256 _accruedBorrowInterest, + address _liquidator, + bool _receiveAToken, + uint256 _timestamp + ); + + /** + * @dev only lending pools configurator can use functions affected by this modifier + **/ + modifier onlyLendingPoolConfigurator { + require(addressesProvider.getLendingPoolConfigurator() == msg.sender, '30'); + _; + } + + uint256 public constant UINT_MAX_VALUE = uint256(-1); + + uint256 public constant LENDINGPOOL_REVISION = 0x2; + + function getRevision() internal override pure returns (uint256) { + return LENDINGPOOL_REVISION; + } + + /** + * @dev this function is invoked by the proxy contract when the LendingPool contract is added to the + * AddressesProvider. + * @param _addressesProvider the address of the LendingPoolAddressesProvider registry + **/ + function initialize(LendingPoolAddressesProvider _addressesProvider) public initializer { + addressesProvider = _addressesProvider; + feeProvider = IFeeProvider(addressesProvider.getFeeProvider()); + } + + /** + * @dev deposits The underlying asset into the reserve. A corresponding amount of the overlying asset (aTokens) + * is minted. + * @param _reserve the address of the reserve + * @param _amount the amount to be deposited + * @param _referralCode integrators are assigned a referral code and can potentially receive rewards. + **/ + function deposit( + address _reserve, + uint256 _amount, + uint16 _referralCode + ) external payable nonReentrant { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; + + ValidationLogic.validateDeposit(reserve, _amount); + + AToken aToken = AToken(reserve.aTokenAddress); + + bool isFirstDeposit = aToken.balanceOf(msg.sender) == 0; + + reserve.updateCumulativeIndexesAndTimestamp(); + reserve.updateInterestRates(_reserve, _amount, 0); + + if (isFirstDeposit) { + user.useAsCollateral = true; + } + + //minting AToken to user 1:1 with the specific exchange rate + aToken.mintOnDeposit(msg.sender, _amount); + + //transfer to the core contract + IERC20(_reserve).universalTransferFromSenderToThis(_amount, true); + + //solium-disable-next-line + emit Deposit(_reserve, msg.sender, _amount, _referralCode, block.timestamp); + } + + /** + * @dev Redeems the underlying amount of assets requested by _user. + * This function is executed by the overlying aToken contract in response to a redeem action. + * @param _reserve the address of the reserve + * @param _user the address of the user performing the action + * @param _amount the underlying amount to be redeemed + **/ + function redeemUnderlying( + address _reserve, + address payable _user, + uint256 _amount, + uint256 _aTokenBalanceAfterRedeem + ) external nonReentrant { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + CoreLibrary.UserReserveData storage user = usersReserveData[_user][_reserve]; + + ValidationLogic.validateRedeem(reserve, _reserve, _amount); + + if (_aTokenBalanceAfterRedeem == 0) { + user.useAsCollateral = false; + } + + reserve.updateCumulativeIndexesAndTimestamp(); + reserve.updateInterestRates(_reserve, 0, _amount); + + IERC20(_reserve).universalTransfer(_user, _amount); + + //solium-disable-next-line + emit RedeemUnderlying(_reserve, _user, _amount, block.timestamp); + } + + /** + * @dev Allows users to borrow a specific amount of the reserve currency, provided that the borrower + * already deposited enough collateral. + * @param _reserve the address of the reserve + * @param _amount the amount to be borrowed + * @param _interestRateMode the interest rate mode at which the user wants to borrow. Can be 0 (STABLE) or 1 (VARIABLE) + **/ + function borrow( + address _reserve, + uint256 _amount, + uint256 _interestRateMode, + uint16 _referralCode + ) external nonReentrant { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; + + uint256 amountInETH = IPriceOracleGetter(addressesProvider.getPriceOracle()) + .getAssetPrice(_reserve) + .mul(_amount) + .div(10**reserve.decimals); //price is in ether + + ValidationLogic.validateBorrow( + reserve, + user, + _reserve, + _amount, + amountInETH, + _interestRateMode, + MAX_STABLE_RATE_BORROW_SIZE_PERCENT, + reserves, + usersReserveData, + reservesList, + addressesProvider.getPriceOracle() ); - /** - * @dev emitted during a redeem action. - * @param _reserve the address of the reserve - * @param _user the address of the user - * @param _amount the amount to be deposited - * @param _timestamp the timestamp of the action - **/ - event RedeemUnderlying( - address indexed _reserve, - address indexed _user, - uint256 _amount, - uint256 _timestamp + //borrow passed + reserve.updateCumulativeIndexesAndTimestamp(); + + //solium-disable-next-line + reserve.lastUpdateTimestamp = uint40(block.timestamp); + + uint256 userStableRate = reserve.currentStableBorrowRate; + + if (CoreLibrary.InterestRateMode(_interestRateMode) == CoreLibrary.InterestRateMode.STABLE) { + IStableDebtToken(reserve.stableDebtTokenAddress).mint(msg.sender, _amount, userStableRate); + uint40 stableRateLastUpdated = IStableDebtToken(reserve.stableDebtTokenAddress) + .getUserLastUpdated(msg.sender); + } else { + IVariableDebtToken(reserve.variableDebtTokenAddress).mint(msg.sender, _amount); + } + + reserve.updateInterestRates(_reserve, 0, _amount); + + //if we reached this point, we can transfer + IERC20(_reserve).universalTransfer(msg.sender, _amount); + + (uint256 stableBalance, uint256 variableBalance) = UserLogic.getUserBorrowBalances( + msg.sender, + reserve ); - /** - * @dev emitted on borrow - * @param _reserve the address of the reserve - * @param _user the address of the user - * @param _amount the amount to be deposited - * @param _borrowRateMode the rate mode, can be either 1-stable or 2-variable - * @param _borrowRate the rate at which the user has borrowed - * @param _referral the referral number of the action - * @param _timestamp the timestamp of the action - **/ - event Borrow( - address indexed _reserve, - address indexed _user, - uint256 _amount, - uint256 _borrowRateMode, - uint256 _borrowRate, - uint16 indexed _referral, - uint256 _timestamp + emit Borrow( + _reserve, + msg.sender, + _amount, + _interestRateMode, + CoreLibrary.InterestRateMode(_interestRateMode) == CoreLibrary.InterestRateMode.STABLE + ? userStableRate + : reserve.currentVariableBorrowRate, + _referralCode, + //solium-disable-next-line + block.timestamp + ); + } + + /** + * @notice repays a borrow on the specific reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified). + * @dev the target user is defined by _onBehalfOf. If there is no repayment on behalf of another account, + * _onBehalfOf must be equal to msg.sender. + * @param _reserve the address of the reserve on which the user borrowed + * @param _amount the amount to repay, or uint256(-1) if the user wants to repay everything + * @param _onBehalfOf the address for which msg.sender is repaying. + **/ + + struct RepayLocalVars { + uint256 stableBorrowBalance; + uint256 variableBorrowBalance; + uint256 borrowBalanceIncrease; + uint256 paybackAmount; + uint256 paybackAmountMinusFees; + uint256 currentStableRate; + uint256 originationFee; + } + + function repay( + address _reserve, + uint256 _amount, + uint256 _rateMode, + address payable _onBehalfOf + ) external payable nonReentrant { + RepayLocalVars memory vars; + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + CoreLibrary.UserReserveData storage user = usersReserveData[_onBehalfOf][_reserve]; + + (vars.stableBorrowBalance, vars.variableBorrowBalance) = UserLogic.getUserBorrowBalances( + _onBehalfOf, + reserve ); - /** - * @dev emitted on repay - * @param _reserve the address of the reserve - * @param _user the address of the user for which the repay has been executed - * @param _repayer the address of the user that has performed the repay action - * @param _amount the amount repaid - * @param _timestamp the timestamp of the action - **/ - event Repay( - address indexed _reserve, - address indexed _user, - address indexed _repayer, - uint256 _amount, - uint256 _timestamp + CoreLibrary.InterestRateMode rateMode = CoreLibrary.InterestRateMode(_rateMode); + + //default to max amount + vars.paybackAmount = rateMode == CoreLibrary.InterestRateMode.STABLE + ? vars.stableBorrowBalance + : vars.variableBorrowBalance; + + if (_amount != UINT_MAX_VALUE && _amount < vars.paybackAmount) { + vars.paybackAmount = _amount; + } + + ValidationLogic.validateRepay( + reserve, + _reserve, + _amount, + rateMode, + _onBehalfOf, + vars.stableBorrowBalance, + vars.variableBorrowBalance, + vars.paybackAmount, + msg.value ); - /** - * @dev emitted when a user performs a rate swap - * @param _reserve the address of the reserve - * @param _user the address of the user executing the swap - * @param _newRateMode the new interest rate mode - * @param _newRate the new borrow rate - * @param _timestamp the timestamp of the action - **/ - event Swap( - address indexed _reserve, - address indexed _user, - uint256 _newRateMode, - uint256 _newRate, - uint256 _timestamp + reserve.updateCumulativeIndexesAndTimestamp(); + + //burns an equivalent amount of debt tokens + if (rateMode == CoreLibrary.InterestRateMode.STABLE) { + IStableDebtToken(reserve.stableDebtTokenAddress).burn(_onBehalfOf, vars.paybackAmount); + } else { + IVariableDebtToken(reserve.variableDebtTokenAddress).burn(_onBehalfOf, vars.paybackAmount); + } + + reserve.updateInterestRates(_reserve, vars.paybackAmount, 0); + + IERC20(_reserve).universalTransferFromSenderToThis(vars.paybackAmount, false); + + if (IERC20(_reserve).isETH()) { + //send excess ETH back to the caller if needed + uint256 exceedAmount = msg.value.sub(vars.paybackAmount); + + if (exceedAmount > 0) { + IERC20(_reserve).universalTransfer(msg.sender, exceedAmount); + } + } + + emit Repay( + _reserve, + _onBehalfOf, + msg.sender, + vars.paybackAmount, + //solium-disable-next-line + block.timestamp + ); + } + + /** + * @dev borrowers can user this function to swap between stable and variable borrow rate modes. + * @param _reserve the address of the reserve on which the user borrowed + * @param _rateMode the rate mode that the user wants to swap + **/ + function swapBorrowRateMode(address _reserve, uint256 _rateMode) external nonReentrant { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; + + (uint256 stableBorrowBalance, uint256 variableBorrowBalance) = UserLogic.getUserBorrowBalances( + msg.sender, + reserve ); - /** - * @dev emitted when a user enables a reserve as collateral - * @param _reserve the address of the reserve - * @param _user the address of the user - **/ - event ReserveUsedAsCollateralEnabled(address indexed _reserve, address indexed _user); + CoreLibrary.InterestRateMode rateMode = CoreLibrary.InterestRateMode(_rateMode); - /** - * @dev emitted when a user disables a reserve as collateral - * @param _reserve the address of the reserve - * @param _user the address of the user - **/ - event ReserveUsedAsCollateralDisabled(address indexed _reserve, address indexed _user); - - /** - * @dev emitted when the stable rate of a user gets rebalanced - * @param _reserve the address of the reserve - * @param _user the address of the user for which the rebalance has been executed - * @param _newStableRate the new stable borrow rate after the rebalance - * @param _borrowBalanceIncrease the balance increase since the last action - * @param _timestamp the timestamp of the action - **/ - event RebalanceStableBorrowRate( - address indexed _reserve, - address indexed _user, - uint256 _newStableRate, - uint256 _borrowBalanceIncrease, - uint256 _timestamp + ValidationLogic.validateSwapRateMode( + reserve, + user, + stableBorrowBalance, + variableBorrowBalance, + rateMode ); - /** - * @dev emitted when a flashloan is executed - * @param _target the address of the flashLoanReceiver - * @param _reserve the address of the reserve - * @param _amount the amount requested - * @param _totalFee the total fee on the amount - * @param _protocolFee the part of the fee for the protocol - * @param _timestamp the timestamp of the action - **/ - event FlashLoan( - address indexed _target, - address indexed _reserve, - uint256 _amount, - uint256 _totalFee, - uint256 _protocolFee, - uint256 _timestamp + reserve.updateCumulativeIndexesAndTimestamp(); + + if (rateMode == CoreLibrary.InterestRateMode.STABLE) { + //burn stable rate tokens, mint variable rate tokens + IStableDebtToken(reserve.stableDebtTokenAddress).burn(msg.sender,stableBorrowBalance); + IVariableDebtToken(reserve.variableDebtTokenAddress).mint(msg.sender, stableBorrowBalance); + } else { + //do the opposite + IVariableDebtToken(reserve.variableDebtTokenAddress).burn(msg.sender, variableBorrowBalance); + IStableDebtToken(reserve.stableDebtTokenAddress).mint( + msg.sender, + variableBorrowBalance, + reserve.currentStableBorrowRate + ); + } + + reserve.updateInterestRates(_reserve, 0, 0); + + emit Swap( + _reserve, + msg.sender, + //solium-disable-next-line + block.timestamp + ); + } + + /** + * @dev rebalances the stable interest rate of a user if current liquidity rate > user stable rate. + * this is regulated by Aave to ensure that the protocol is not abused, and the user is paying a fair + * rate. Anyone can call this function. + * @param _reserve the address of the reserve + * @param _user the address of the user to be rebalanced + **/ + function rebalanceStableBorrowRate(address _reserve, address _user) external nonReentrant { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + + IStableDebtToken stableDebtToken = IStableDebtToken(reserve.stableDebtTokenAddress); + + uint256 stableBorrowBalance = IERC20(address(stableDebtToken)).balanceOf(_user); + + // user must be borrowing on _reserve at a stable rate + require(stableBorrowBalance > 0, 'User does not have any stable rate loan for this reserve'); + + uint256 rebalanceDownRateThreshold = reserve.currentStableBorrowRate.rayMul( + WadRayMath.ray().add(REBALANCE_DOWN_RATE_DELTA) ); - /** - * @dev these events are not emitted directly by the LendingPool - * but they are declared here as the LendingPoolLiquidationManager - * is executed using a delegateCall(). - * This allows to have the events in the generated ABI for LendingPool. - **/ + //1. user stable borrow rate is below the current liquidity rate. The loan needs to be rebalanced, + //as this situation can be abused (user putting back the borrowed liquidity in the same reserve to earn on it) + //2. user stable rate is above the market avg borrow rate of a certain delta, and utilization rate is low. + //In this case, the user is paying an interest that is too high, and needs to be rescaled down. - /** - * @dev emitted when a borrow fee is liquidated - * @param _collateral the address of the collateral being liquidated - * @param _reserve the address of the reserve - * @param _user the address of the user being liquidated - * @param _feeLiquidated the total fee liquidated - * @param _liquidatedCollateralForFee the amount of collateral received by the protocol in exchange for the fee - * @param _timestamp the timestamp of the action - **/ - event OriginationFeeLiquidated( - address indexed _collateral, - address indexed _reserve, - address indexed _user, - uint256 _feeLiquidated, - uint256 _liquidatedCollateralForFee, - uint256 _timestamp + uint256 userStableRate = stableDebtToken.getUserStableRate(_user); + + require( + userStableRate < reserve.currentLiquidityRate || userStableRate > rebalanceDownRateThreshold, + 'Interest rate rebalance conditions were not met' ); - /** - * @dev emitted when a borrower is liquidated - * @param _collateral the address of the collateral being liquidated - * @param _reserve the address of the reserve - * @param _user the address of the user being liquidated - * @param _purchaseAmount the total amount liquidated - * @param _liquidatedCollateralAmount the amount of collateral being liquidated - * @param _accruedBorrowInterest the amount of interest accrued by the borrower since the last action - * @param _liquidator the address of the liquidator - * @param _receiveAToken true if the liquidator wants to receive aTokens, false otherwise - * @param _timestamp the timestamp of the action - **/ - event LiquidationCall( - address indexed _collateral, - address indexed _reserve, - address indexed _user, - uint256 _purchaseAmount, - uint256 _liquidatedCollateralAmount, - uint256 _accruedBorrowInterest, - address _liquidator, - bool _receiveAToken, - uint256 _timestamp + //burn old debt tokens, mint new ones + + reserve.updateCumulativeIndexesAndTimestamp(); + + stableDebtToken.burn(_user, stableBorrowBalance); + stableDebtToken.mint(_user, stableBorrowBalance, reserve.currentStableBorrowRate); + + reserve.updateInterestRates(_reserve, 0, 0); + + emit RebalanceStableBorrowRate( + _reserve, + _user, + //solium-disable-next-line + block.timestamp ); - /** - * @dev only lending pools configurator can use functions affected by this modifier - **/ - modifier onlyLendingPoolConfigurator { - require(addressesProvider.getLendingPoolConfigurator() == msg.sender, "30"); - _; + return; + } + + /** + * @dev allows depositors to enable or disable a specific deposit as collateral. + * @param _reserve the address of the reserve + * @param _useAsCollateral true if the user wants to user the deposit as collateral, false otherwise. + **/ + function setUserUseReserveAsCollateral(address _reserve, bool _useAsCollateral) + external + nonReentrant + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; + + ValidationLogic.validateSetUseReserveAsCollateral( + reserve, + _reserve, + reserves, + usersReserveData, + reservesList, + addressesProvider.getPriceOracle() + ); + + user.useAsCollateral = _useAsCollateral; + + if (_useAsCollateral) { + emit ReserveUsedAsCollateralEnabled(_reserve, msg.sender); + } else { + emit ReserveUsedAsCollateralDisabled(_reserve, msg.sender); } + } - uint256 public constant UINT_MAX_VALUE = uint256(-1); + /** + * @dev users can invoke this function to liquidate an undercollateralized position. + * @param _reserve the address of the collateral to liquidated + * @param _reserve the address of the principal reserve + * @param _user the address of the borrower + * @param _purchaseAmount the amount of principal that the liquidator wants to repay + * @param _receiveAToken true if the liquidators wants to receive the aTokens, false if + * he wants to receive the underlying asset directly + **/ + function liquidationCall( + address _collateral, + address _reserve, + address _user, + uint256 _purchaseAmount, + bool _receiveAToken + ) external payable nonReentrant { + address liquidationManager = addressesProvider.getLendingPoolLiquidationManager(); - uint256 public constant LENDINGPOOL_REVISION = 0x2; + //solium-disable-next-line + (bool success, bytes memory result) = liquidationManager.delegatecall( + abi.encodeWithSignature( + 'liquidationCall(address,address,address,uint256,bool)', + _collateral, + _reserve, + _user, + _purchaseAmount, + _receiveAToken + ) + ); + require(success, '24'); - function getRevision() internal override pure returns (uint256) { - return LENDINGPOOL_REVISION; + (uint256 returnCode, string memory returnMessage) = abi.decode(result, (uint256, string)); + + if (returnCode != 0) { + //error found + revert(string(abi.encodePacked(returnMessage))); } + } - /** - * @dev this function is invoked by the proxy contract when the LendingPool contract is added to the - * AddressesProvider. - * @param _addressesProvider the address of the LendingPoolAddressesProvider registry - **/ - function initialize(LendingPoolAddressesProvider _addressesProvider) public initializer { - addressesProvider = _addressesProvider; - feeProvider = IFeeProvider(addressesProvider.getFeeProvider()); + struct FlashLoanLocalVars { + uint256 availableLiquidityBefore; + uint256 totalFeeBips; + uint256 protocolFeeBips; + uint256 amountFee; + uint256 protocolFee; + } + + /** + * @dev allows smartcontracts to access the liquidity of the pool within one transaction, + * as long as the amount taken plus a fee is returned. NOTE There are security concerns for developers of flashloan receiver contracts + * that must be kept into consideration. For further details please visit https://developers.aave.com + * @param _receiver The address of the contract receiving the funds. The receiver should implement the IFlashLoanReceiver interface. + * @param _reserve the address of the principal reserve + * @param _amount the amount requested for this flashloan + **/ + function flashLoan( + address _receiver, + address _reserve, + uint256 _amount, + bytes memory _params + ) public nonReentrant { + FlashLoanLocalVars memory vars; + + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + + //check that the reserve has enough available liquidity + vars.availableLiquidityBefore = IERC20(_reserve).universalBalanceOf(address(this)); + + //calculate amount fee + vars.amountFee = _amount.mul(FLASHLOAN_FEE_TOTAL).div(10000); + + //protocol fee is the part of the amountFee reserved for the protocol - the rest goes to depositors + vars.protocolFee = vars.amountFee.mul(FLASHLOAN_FEE_PROTOCOL).div(10000); + + require( + vars.availableLiquidityBefore >= _amount, + 'There is not enough liquidity available to borrow' + ); + require( + vars.amountFee > 0 && vars.protocolFee > 0, + 'The requested amount is too small for a FlashLoan.' + ); + + //get the FlashLoanReceiver instance + IFlashLoanReceiver receiver = IFlashLoanReceiver(_receiver); + + address payable userPayable = address(uint160(_receiver)); + + //transfer funds to the receiver + IERC20(_reserve).universalTransfer(userPayable, _amount); + + //execute action of the receiver + receiver.executeOperation(_reserve, _amount, vars.amountFee, _params); + + //check that the actual balance of the core contract includes the returned amount + uint256 availableLiquidityAfter = IERC20(_reserve).universalBalanceOf(address(this)); + + require( + availableLiquidityAfter == vars.availableLiquidityBefore.add(vars.amountFee), + 'The actual balance of the protocol is inconsistent' + ); + + reserve.updateStateOnFlashLoan( + _reserve, + vars.availableLiquidityBefore, + vars.amountFee.sub(vars.protocolFee), + vars.protocolFee + ); + + IERC20(_reserve).universalTransfer(addressesProvider.getTokenDistributor(), vars.protocolFee); + + //solium-disable-next-line + emit FlashLoan(_receiver, _reserve, _amount, vars.amountFee, vars.protocolFee, block.timestamp); + } + + /** + * @dev accessory functions to fetch data from the core contract + **/ + + function getReserveConfigurationData(address _reserve) + external + view + returns ( + uint256 ltv, + uint256 liquidationThreshold, + uint256 liquidationBonus, + address interestRateStrategyAddress, + address aTokenAddress, + bool usageAsCollateralEnabled, + bool borrowingEnabled, + bool stableBorrowRateEnabled, + bool isActive, + bool isFreezed + ) + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + + return ( + reserve.baseLTVasCollateral, + reserve.liquidationThreshold, + reserve.liquidationBonus, + reserve.interestRateStrategyAddress, + reserve.aTokenAddress, + reserve.usageAsCollateralEnabled, + reserve.borrowingEnabled, + reserve.isStableBorrowRateEnabled, + reserve.isActive, + reserve.isFreezed + ); + } + + function getReserveData(address _reserve) + external + view + returns ( + uint256 availableLiquidity, + uint256 totalBorrowsStable, + uint256 totalBorrowsVariable, + uint256 liquidityRate, + uint256 variableBorrowRate, + uint256 stableBorrowRate, + uint256 averageStableBorrowRate, + uint256 liquidityIndex, + uint256 variableBorrowIndex, + uint40 lastUpdateTimestamp + ) + { + CoreLibrary.ReserveData memory reserve = reserves[_reserve]; + return ( + IERC20(_reserve).universalBalanceOf(address(this)), + IERC20(reserve.stableDebtTokenAddress).totalSupply(), + IERC20(reserve.variableDebtTokenAddress).totalSupply(), + reserve.currentLiquidityRate, + reserve.currentVariableBorrowRate, + reserve.currentStableBorrowRate, + IStableDebtToken(reserve.stableDebtTokenAddress).getAverageStableRate(), + reserve.lastLiquidityCumulativeIndex, + reserve.lastVariableBorrowCumulativeIndex, + reserve.lastUpdateTimestamp + ); + } + + function getUserAccountData(address _user) + external + view + returns ( + uint256 totalCollateralETH, + uint256 totalBorrowsETH, + uint256 totalFeesETH, + uint256 availableBorrowsETH, + uint256 currentLiquidationThreshold, + uint256 ltv, + uint256 healthFactor + ) + { + ( + totalCollateralETH, + totalBorrowsETH, + totalFeesETH, + ltv, + currentLiquidationThreshold, + healthFactor + ) = GenericLogic.calculateUserAccountData( + _user, + reserves, + usersReserveData, + reservesList, + addressesProvider.getPriceOracle() + ); + + availableBorrowsETH = GenericLogic.calculateAvailableBorrowsETH( + totalCollateralETH, + totalBorrowsETH, + totalFeesETH, + ltv, + address(feeProvider) + ); + } + + function getUserReserveData(address _reserve, address _user) + external + view + returns ( + uint256 currentATokenBalance, + uint256 currentStableBorrowBalance, + uint256 currentVariableBorrowBalance, + uint256 principalStableBorrowBalance, + uint256 principalVariableBorrowBalance, + uint256 stableBorrowRate, + uint256 liquidityRate, + uint256 variableBorrowIndex, + uint40 stableRateLastUpdated, + bool usageAsCollateralEnabled + ) + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + + currentATokenBalance = IERC20(reserve.aTokenAddress).balanceOf(_user); + (currentStableBorrowBalance, currentVariableBorrowBalance) = UserLogic.getUserBorrowBalances( + _user, + reserve + ); + (principalStableBorrowBalance, principalVariableBorrowBalance) = UserLogic + .getUserPrincipalBorrowBalances(_user, reserve); + liquidityRate = reserve.currentLiquidityRate; + stableBorrowRate = IStableDebtToken(reserve.stableDebtTokenAddress).getUserStableRate(_user); + stableRateLastUpdated = IStableDebtToken(reserve.stableDebtTokenAddress).getUserLastUpdated( + _user + ); + usageAsCollateralEnabled = usersReserveData[_user][_reserve].useAsCollateral; + variableBorrowIndex = IVariableDebtToken(reserve.variableDebtTokenAddress).getUserIndex(_user); + } + + function getReserves() external view returns (address[] memory) { + return reservesList; + } + + receive() external payable { + //only contracts can send ETH to the core + require(msg.sender.isContract(), '22'); + } + + /** + * @dev initializes a reserve + * @param _reserve the address of the reserve + * @param _aTokenAddress the address of the overlying aToken contract + * @param _decimals the decimals of the reserve currency + * @param _interestRateStrategyAddress the address of the interest rate strategy contract + **/ + function initReserve( + address _reserve, + address _aTokenAddress, + address _stableDebtAddress, + address _variableDebtAddress, + uint256 _decimals, + address _interestRateStrategyAddress + ) external onlyLendingPoolConfigurator { + reserves[_reserve].init( + _aTokenAddress, + _stableDebtAddress, + _variableDebtAddress, + _decimals, + _interestRateStrategyAddress + ); + addReserveToListInternal(_reserve); + } + + /** + * @dev updates the address of the interest rate strategy contract + * @param _reserve the address of the reserve + * @param _rateStrategyAddress the address of the interest rate strategy contract + **/ + + function setReserveInterestRateStrategyAddress(address _reserve, address _rateStrategyAddress) + external + onlyLendingPoolConfigurator + { + reserves[_reserve].interestRateStrategyAddress = _rateStrategyAddress; + } + + /** + * @dev enables borrowing on a reserve. Also sets the stable rate borrowing + * @param _reserve the address of the reserve + * @param _stableBorrowRateEnabled true if the stable rate needs to be enabled, false otherwise + **/ + + function setReserveBorrowingEnabled( + address _reserve, + bool _borrowingEnabled, + bool _stableBorrowRateEnabled + ) external onlyLendingPoolConfigurator { + if (_borrowingEnabled) { + reserves[_reserve].enableBorrowing(_stableBorrowRateEnabled); + } else { + reserves[_reserve].disableBorrowing(); } + } - /** - * @dev deposits The underlying asset into the reserve. A corresponding amount of the overlying asset (aTokens) - * is minted. - * @param _reserve the address of the reserve - * @param _amount the amount to be deposited - * @param _referralCode integrators are assigned a referral code and can potentially receive rewards. - **/ - function deposit(address _reserve, uint256 _amount, uint16 _referralCode) - external - payable - nonReentrant - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; + /** + * @dev enables a reserve to be used as collateral + * @param _reserve the address of the reserve + **/ + function enableReserveAsCollateral( + address _reserve, + uint256 _baseLTVasCollateral, + uint256 _liquidationThreshold, + uint256 _liquidationBonus + ) external onlyLendingPoolConfigurator { + reserves[_reserve].enableAsCollateral( + _baseLTVasCollateral, + _liquidationThreshold, + _liquidationBonus + ); + } - ValidationLogic.validateDeposit(reserve, _amount); + /** + * @dev disables a reserve to be used as collateral + * @param _reserve the address of the reserve + **/ + function disableReserveAsCollateral(address _reserve) external onlyLendingPoolConfigurator { + reserves[_reserve].disableAsCollateral(); + } - AToken aToken = AToken(reserve.aTokenAddress); + /** + * @dev enable the stable borrow rate mode on a reserve + * @param _reserve the address of the reserve + **/ + function setReserveStableBorrowRateEnabled(address _reserve, bool _enabled) + external + onlyLendingPoolConfigurator + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + reserve.isStableBorrowRateEnabled = _enabled; + } - bool isFirstDeposit = aToken.balanceOf(msg.sender) == 0; - - reserve.updateCumulativeIndexesAndTimestamp(); - reserve.updateInterestRates(_reserve, _amount, 0); - - if (isFirstDeposit) { - user.useAsCollateral = true; - } - - //minting AToken to user 1:1 with the specific exchange rate - aToken.mintOnDeposit(msg.sender, _amount); - - //transfer to the core contract - IERC20(_reserve).universalTransferFromSenderToThis(_amount, true); - - //solium-disable-next-line - emit Deposit(_reserve, msg.sender, _amount, _referralCode, block.timestamp); + /** + * @dev activates a reserve + * @param _reserve the address of the reserve + **/ + function setReserveActive(address _reserve, bool _active) external onlyLendingPoolConfigurator { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + if (!_active) { + reserve.isActive = false; + } else { + require( + reserve.lastLiquidityCumulativeIndex > 0 && reserve.lastVariableBorrowCumulativeIndex > 0, + 'Reserve has not been initialized yet' + ); + reserve.isActive = true; } - - /** - * @dev Redeems the underlying amount of assets requested by _user. - * This function is executed by the overlying aToken contract in response to a redeem action. - * @param _reserve the address of the reserve - * @param _user the address of the user performing the action - * @param _amount the underlying amount to be redeemed - **/ - function redeemUnderlying( - address _reserve, - address payable _user, - uint256 _amount, - uint256 _aTokenBalanceAfterRedeem - ) external nonReentrant { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[_user][_reserve]; - - ValidationLogic.validateRedeem(reserve, _reserve, _amount); - - if (_aTokenBalanceAfterRedeem == 0) { - user.useAsCollateral = false; - } - - reserve.updateCumulativeIndexesAndTimestamp(); - reserve.updateInterestRates(_reserve, 0, _amount); - - IERC20(_reserve).universalTransfer(_user, _amount); - - //solium-disable-next-line - emit RedeemUnderlying(_reserve, _user, _amount, block.timestamp); - - } - - /** - * @dev Allows users to borrow a specific amount of the reserve currency, provided that the borrower - * already deposited enough collateral. - * @param _reserve the address of the reserve - * @param _amount the amount to be borrowed - * @param _interestRateMode the interest rate mode at which the user wants to borrow. Can be 0 (STABLE) or 1 (VARIABLE) - **/ - function borrow( - address _reserve, - uint256 _amount, - uint256 _interestRateMode, - uint16 _referralCode - ) external nonReentrant { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; - - uint256 amountInETH = IPriceOracleGetter(addressesProvider.getPriceOracle()) - .getAssetPrice(_reserve) - .mul(_amount) - .div(10 ** reserve.decimals); //price is in ether - - ValidationLogic.validateBorrow( - reserve, - user, - _reserve, - _amount, - amountInETH, - _interestRateMode, - MAX_STABLE_RATE_BORROW_SIZE_PERCENT, - reserves, - usersReserveData, - reservesList, - addressesProvider.getPriceOracle() - ); - - //borrow passed - reserve.updateCumulativeIndexesAndTimestamp(); - - //solium-disable-next-line - reserve.lastUpdateTimestamp = uint40(block.timestamp); - - uint256 userStableRate = reserve.currentStableBorrowRate; - - if(CoreLibrary.InterestRateMode(_interestRateMode) == CoreLibrary.InterestRateMode.STABLE) { - IStableDebtToken(reserve.stableDebtTokenAddress).mint(msg.sender, _amount, userStableRate); - uint40 stableRateLastUpdated = IStableDebtToken(reserve.stableDebtTokenAddress).getUserLastUpdated(msg.sender); - } - else { - IVariableDebtToken(reserve.variableDebtTokenAddress).mint(msg.sender, _amount); - } - - reserve.updateInterestRates(_reserve, 0, _amount); - - - //if we reached this point, we can transfer - IERC20(_reserve).universalTransfer(msg.sender, _amount); - - (uint256 stableBalance, uint256 variableBalance) = UserLogic.getUserBorrowBalances(msg.sender, reserve); - - emit Borrow( - _reserve, - msg.sender, - _amount, - _interestRateMode, - CoreLibrary.InterestRateMode(_interestRateMode) == CoreLibrary.InterestRateMode.STABLE - ? userStableRate - : reserve.currentVariableBorrowRate, - _referralCode, - //solium-disable-next-line - block.timestamp - ); - } - - /** - * @notice repays a borrow on the specific reserve, for the specified amount (or for the whole amount, if uint256(-1) is specified). - * @dev the target user is defined by _onBehalfOf. If there is no repayment on behalf of another account, - * _onBehalfOf must be equal to msg.sender. - * @param _reserve the address of the reserve on which the user borrowed - * @param _amount the amount to repay, or uint256(-1) if the user wants to repay everything - * @param _onBehalfOf the address for which msg.sender is repaying. - **/ - - struct RepayLocalVars { - uint256 stableBorrowBalance; - uint256 variableBorrowBalance; - uint256 borrowBalanceIncrease; - uint256 paybackAmount; - uint256 paybackAmountMinusFees; - uint256 currentStableRate; - uint256 originationFee; - } - - function repay(address _reserve, uint256 _amount, uint256 _rateMode, address payable _onBehalfOf) - external - payable - nonReentrant - { - RepayLocalVars memory vars; - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[_onBehalfOf][_reserve]; - - - ( - vars.stableBorrowBalance, - vars.variableBorrowBalance - ) = UserLogic.getUserBorrowBalances(_onBehalfOf, reserve); - - CoreLibrary.InterestRateMode rateMode = CoreLibrary.InterestRateMode(_rateMode); - - //default to max amount - vars.paybackAmount = rateMode == CoreLibrary.InterestRateMode.STABLE ? vars.stableBorrowBalance : vars.variableBorrowBalance; - - if (_amount != UINT_MAX_VALUE && _amount < vars.paybackAmount) { - vars.paybackAmount = _amount; - } - - ValidationLogic.validateRepay( - reserve, - _reserve, - _amount, - rateMode, - _onBehalfOf, - vars.stableBorrowBalance, - vars.variableBorrowBalance, - vars.paybackAmount, - msg.value - ); - - reserve.updateCumulativeIndexesAndTimestamp(); - - //burns an equivalent amount of debt tokens - if(rateMode == CoreLibrary.InterestRateMode.STABLE) { - IStableDebtToken(reserve.stableDebtTokenAddress).burn(_onBehalfOf, vars.paybackAmount); - } - else { - IVariableDebtToken(reserve.variableDebtTokenAddress).burn(_onBehalfOf, vars.paybackAmount); - } - - reserve.updateInterestRates(_reserve, vars.paybackAmount, 0); - - IERC20(_reserve).universalTransferFromSenderToThis(vars.paybackAmount, false); - - if (IERC20(_reserve).isETH()) { - //send excess ETH back to the caller if needed - uint256 exceedAmount = msg.value.sub(vars.paybackAmount); - - if (exceedAmount > 0) { - IERC20(_reserve).universalTransfer(msg.sender, exceedAmount); - } - } - - emit Repay( - _reserve, - _onBehalfOf, - msg.sender, - vars.paybackAmount, - //solium-disable-next-line - block.timestamp - ); - } - - /** - * @dev borrowers can user this function to swap between stable and variable borrow rate modes. - * @param _reserve the address of the reserve on which the user borrowed - **/ - function swapBorrowRateMode(address _reserve) external nonReentrant { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; - - (uint256 principalBorrowBalance, uint256 compoundedBorrowBalance) = UserLogic. - getUserBorrowBalances(msg.sender,reserve); - - -/* - CoreLibrary.InterestRateMode currentRateMode = user.getCurrentBorrowRateMode(); - ValidationLogic.validateSwapRateMode( - reserve, - user, - compoundedBorrowBalance, - currentRateMode - ); - - /** - TODO: Burn old tokens and mint new ones - **/ - - reserve.updateInterestRates(_reserve, 0, 0); -/* - CoreLibrary.InterestRateMode newRateMode = user.getCurrentBorrowRateMode(); - emit Swap( - _reserve, - msg.sender, - uint256(newRateMode), - newRateMode == CoreLibrary.InterestRateMode.STABLE - ? user.stableBorrowRate - : reserve.currentVariableBorrowRate, - //solium-disable-next-line - block.timestamp - ); - */ - } - - /** - * @dev rebalances the stable interest rate of a user if current liquidity rate > user stable rate. - * this is regulated by Aave to ensure that the protocol is not abused, and the user is paying a fair - * rate. Anyone can call this function though. - * @param _reserve the address of the reserve - * @param _user the address of the user to be rebalanced - **/ - function rebalanceStableBorrowRate(address _reserve, address _user) external nonReentrant { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[_user][_reserve]; - - - //TODO: Burn tokens at old rate, mint new ones at new rate -/* - (, uint256 compoundedBalance, uint256 borrowBalanceIncrease) = user.getBorrowBalances( - reserve - ); - - //step 1: user must be borrowing on _reserve at a stable rate - require(compoundedBalance > 0, "User does not have any borrow for this reserve"); - - require( - user.getCurrentBorrowRateMode() == CoreLibrary.InterestRateMode.STABLE, - "The user borrow is variable and cannot be rebalanced" - ); - - uint256 rebalanceDownRateThreshold = reserve.currentStableBorrowRate.rayMul( - WadRayMath.ray().add(REBALANCE_DOWN_RATE_DELTA) - ); - - //step 2: we have two possible situations to rebalance: - - //1. user stable borrow rate is below the current liquidity rate. The loan needs to be rebalanced, - //as this situation can be abused (user putting back the borrowed liquidity in the same reserve to earn on it) - //2. user stable rate is above the market avg borrow rate of a certain delta, and utilization rate is low. - //In this case, the user is paying an interest that is too high, and needs to be rescaled down. - if ( - user.stableBorrowRate < reserve.currentLiquidityRate || - user.stableBorrowRate > rebalanceDownRateThreshold - ) { - uint256 newStableRate = reserve.updateStateOnRebalance( - user, - _reserve, - borrowBalanceIncrease - ); - - //update the user state - user.principalBorrowBalance = user.principalBorrowBalance.add(borrowBalanceIncrease); - user.stableBorrowRate = reserve.currentStableBorrowRate; - //solium-disable-next-line - user.lastUpdateTimestamp = uint40(block.timestamp); - - reserve.updateInterestRates(_reserve, 0, 0); - - emit RebalanceStableBorrowRate( - _reserve, - _user, - newStableRate, - borrowBalanceIncrease, - //solium-disable-next-line - block.timestamp - ); - - return; - - } -*/ - revert("Interest rate rebalance conditions were not met"); - } - - /** - * @dev allows depositors to enable or disable a specific deposit as collateral. - * @param _reserve the address of the reserve - * @param _useAsCollateral true if the user wants to user the deposit as collateral, false otherwise. - **/ - function setUserUseReserveAsCollateral(address _reserve, bool _useAsCollateral) - external - nonReentrant - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - CoreLibrary.UserReserveData storage user = usersReserveData[msg.sender][_reserve]; - - ValidationLogic.validateSetUseReserveAsCollateral( - reserve, - _reserve, - reserves, - usersReserveData, - reservesList, - addressesProvider.getPriceOracle() - ); - - user.useAsCollateral = _useAsCollateral; - - if (_useAsCollateral) { - emit ReserveUsedAsCollateralEnabled(_reserve, msg.sender); - } else { - emit ReserveUsedAsCollateralDisabled(_reserve, msg.sender); - } - } - - /** - * @dev users can invoke this function to liquidate an undercollateralized position. - * @param _reserve the address of the collateral to liquidated - * @param _reserve the address of the principal reserve - * @param _user the address of the borrower - * @param _purchaseAmount the amount of principal that the liquidator wants to repay - * @param _receiveAToken true if the liquidators wants to receive the aTokens, false if - * he wants to receive the underlying asset directly - **/ - function liquidationCall( - address _collateral, - address _reserve, - address _user, - uint256 _purchaseAmount, - bool _receiveAToken - ) external payable nonReentrant { - address liquidationManager = addressesProvider.getLendingPoolLiquidationManager(); - - //solium-disable-next-line - (bool success, bytes memory result) = liquidationManager.delegatecall( - abi.encodeWithSignature( - "liquidationCall(address,address,address,uint256,bool)", - _collateral, - _reserve, - _user, - _purchaseAmount, - _receiveAToken - ) - ); - require(success, "24"); - - (uint256 returnCode, string memory returnMessage) = abi.decode(result, (uint256, string)); - - if (returnCode != 0) { - //error found - revert(string(abi.encodePacked(returnMessage))); - } - } - - struct FlashLoanLocalVars { - uint256 availableLiquidityBefore; - uint256 totalFeeBips; - uint256 protocolFeeBips; - uint256 amountFee; - uint256 protocolFee; - } - /** - * @dev allows smartcontracts to access the liquidity of the pool within one transaction, - * as long as the amount taken plus a fee is returned. NOTE There are security concerns for developers of flashloan receiver contracts - * that must be kept into consideration. For further details please visit https://developers.aave.com - * @param _receiver The address of the contract receiving the funds. The receiver should implement the IFlashLoanReceiver interface. - * @param _reserve the address of the principal reserve - * @param _amount the amount requested for this flashloan - **/ - function flashLoan(address _receiver, address _reserve, uint256 _amount, bytes memory _params) - public - nonReentrant - { - FlashLoanLocalVars memory vars; - - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - - //check that the reserve has enough available liquidity - vars.availableLiquidityBefore = IERC20(_reserve).universalBalanceOf(address(this)); - - //calculate amount fee - vars.amountFee = _amount.mul(FLASHLOAN_FEE_TOTAL).div(10000); - - //protocol fee is the part of the amountFee reserved for the protocol - the rest goes to depositors - vars.protocolFee = vars.amountFee.mul(FLASHLOAN_FEE_PROTOCOL).div(10000); - - require(vars.availableLiquidityBefore >= _amount, "There is not enough liquidity available to borrow"); - require(vars.amountFee > 0 && vars.protocolFee > 0, "The requested amount is too small for a FlashLoan."); - - //get the FlashLoanReceiver instance - IFlashLoanReceiver receiver = IFlashLoanReceiver(_receiver); - - address payable userPayable = address(uint160(_receiver)); - - //transfer funds to the receiver - IERC20(_reserve).universalTransfer(userPayable, _amount); - - //execute action of the receiver - receiver.executeOperation(_reserve, _amount, vars.amountFee, _params); - - //check that the actual balance of the core contract includes the returned amount - uint256 availableLiquidityAfter = IERC20(_reserve).universalBalanceOf(address(this)); - - require(availableLiquidityAfter == vars.availableLiquidityBefore.add(vars.amountFee), "The actual balance of the protocol is inconsistent"); - - reserve.updateStateOnFlashLoan( - _reserve, - vars.availableLiquidityBefore, - vars.amountFee.sub(vars.protocolFee), - vars.protocolFee - ); - - IERC20(_reserve).universalTransfer( - addressesProvider.getTokenDistributor(), - vars.protocolFee - ); - - //solium-disable-next-line - emit FlashLoan( - _receiver, - _reserve, - _amount, - vars.amountFee, - vars.protocolFee, - block.timestamp - ); - } - - /** - * @dev accessory functions to fetch data from the core contract - **/ - - function getReserveConfigurationData(address _reserve) - external - view - returns ( - uint256 ltv, - uint256 liquidationThreshold, - uint256 liquidationBonus, - address interestRateStrategyAddress, - address aTokenAddress, - bool usageAsCollateralEnabled, - bool borrowingEnabled, - bool stableBorrowRateEnabled, - bool isActive, - bool isFreezed - ) - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - - return ( - reserve.baseLTVasCollateral, - reserve.liquidationThreshold, - reserve.liquidationBonus, - reserve.interestRateStrategyAddress, - reserve.aTokenAddress, - reserve.usageAsCollateralEnabled, - reserve.borrowingEnabled, - reserve.isStableBorrowRateEnabled, - reserve.isActive, - reserve.isFreezed - ); - } - - function getReserveData(address _reserve) - external - view - returns ( - uint256 availableLiquidity, - uint256 totalBorrowsStable, - uint256 totalBorrowsVariable, - uint256 liquidityRate, - uint256 variableBorrowRate, - uint256 stableBorrowRate, - uint256 averageStableBorrowRate, - uint256 liquidityIndex, - uint256 variableBorrowIndex, - uint40 lastUpdateTimestamp - ) - { - CoreLibrary.ReserveData memory reserve = reserves[_reserve]; - return ( - IERC20(_reserve).universalBalanceOf(address(this)), - IERC20(reserve.stableDebtTokenAddress).totalSupply(), - IERC20(reserve.variableDebtTokenAddress).totalSupply(), - reserve.currentLiquidityRate, - reserve.currentVariableBorrowRate, - reserve.currentStableBorrowRate, - IStableDebtToken(reserve.stableDebtTokenAddress).getAverageStableRate(), - reserve.lastLiquidityCumulativeIndex, - reserve.lastVariableBorrowCumulativeIndex, - reserve.lastUpdateTimestamp - ); - } - - function getUserAccountData(address _user) - external - view - returns ( - uint256 totalCollateralETH, - uint256 totalBorrowsETH, - uint256 totalFeesETH, - uint256 availableBorrowsETH, - uint256 currentLiquidationThreshold, - uint256 ltv, - uint256 healthFactor - ) - { - ( - totalCollateralETH, - totalBorrowsETH, - totalFeesETH, - ltv, - currentLiquidationThreshold, - healthFactor - ) = GenericLogic.calculateUserAccountData( - _user, - reserves, - usersReserveData, - reservesList, - addressesProvider.getPriceOracle() - ); - - - availableBorrowsETH = GenericLogic.calculateAvailableBorrowsETH( - totalCollateralETH, - totalBorrowsETH, - totalFeesETH, - ltv, - address(feeProvider) - ); - - } - - function getUserReserveData(address _reserve, address _user) - external - view - returns ( - uint256 currentATokenBalance, - uint256 currentStableBorrowBalance, - uint256 currentVariableBorrowBalance, - uint256 principalStableBorrowBalance, - uint256 principalVariableBorrowBalance, - uint256 stableBorrowRate, - uint256 liquidityRate, - uint256 variableBorrowIndex, - uint40 stableRateLastUpdated, - bool usageAsCollateralEnabled - ) - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - - currentATokenBalance = IERC20(reserve.aTokenAddress).balanceOf(_user); - (currentStableBorrowBalance, currentVariableBorrowBalance) = UserLogic.getUserBorrowBalances(_user,reserve); - (principalStableBorrowBalance, principalVariableBorrowBalance) = UserLogic.getUserPrincipalBorrowBalances(_user,reserve); - liquidityRate = reserve.currentLiquidityRate; - stableBorrowRate = IStableDebtToken(reserve.stableDebtTokenAddress).getUserStableRate(_user); - stableRateLastUpdated = IStableDebtToken(reserve.stableDebtTokenAddress).getUserLastUpdated(_user); - usageAsCollateralEnabled = usersReserveData[_user][_reserve].useAsCollateral; - variableBorrowIndex = IVariableDebtToken(reserve.variableDebtTokenAddress).getUserIndex(_user); - } - - function getReserves() external view returns (address[] memory) { - return reservesList; - } - - receive() external payable { - //only contracts can send ETH to the core - require(msg.sender.isContract(), "22"); - - } - - /** - * @dev initializes a reserve - * @param _reserve the address of the reserve - * @param _aTokenAddress the address of the overlying aToken contract - * @param _decimals the decimals of the reserve currency - * @param _interestRateStrategyAddress the address of the interest rate strategy contract - **/ - function initReserve( - address _reserve, - address _aTokenAddress, - address _stableDebtAddress, - address _variableDebtAddress, - uint256 _decimals, - address _interestRateStrategyAddress - ) external onlyLendingPoolConfigurator { - reserves[_reserve].init(_aTokenAddress, _stableDebtAddress, _variableDebtAddress, _decimals, _interestRateStrategyAddress); - addReserveToListInternal(_reserve); - - } - - /** - * @dev updates the address of the interest rate strategy contract - * @param _reserve the address of the reserve - * @param _rateStrategyAddress the address of the interest rate strategy contract - **/ - - function setReserveInterestRateStrategyAddress(address _reserve, address _rateStrategyAddress) - external - onlyLendingPoolConfigurator - { - reserves[_reserve].interestRateStrategyAddress = _rateStrategyAddress; - } - - /** - * @dev enables borrowing on a reserve. Also sets the stable rate borrowing - * @param _reserve the address of the reserve - * @param _stableBorrowRateEnabled true if the stable rate needs to be enabled, false otherwise - **/ - - function setReserveBorrowingEnabled( - address _reserve, - bool _borrowingEnabled, - bool _stableBorrowRateEnabled - ) external onlyLendingPoolConfigurator { - if (_borrowingEnabled) { - reserves[_reserve].enableBorrowing(_stableBorrowRateEnabled); - - } else { - reserves[_reserve].disableBorrowing(); - } - } - - /** - * @dev enables a reserve to be used as collateral - * @param _reserve the address of the reserve - **/ - function enableReserveAsCollateral( - address _reserve, - uint256 _baseLTVasCollateral, - uint256 _liquidationThreshold, - uint256 _liquidationBonus - ) external onlyLendingPoolConfigurator { - reserves[_reserve].enableAsCollateral( - _baseLTVasCollateral, - _liquidationThreshold, - _liquidationBonus - ); - } - - /** - * @dev disables a reserve to be used as collateral - * @param _reserve the address of the reserve - **/ - function disableReserveAsCollateral(address _reserve) external onlyLendingPoolConfigurator { - reserves[_reserve].disableAsCollateral(); - } - - /** - * @dev enable the stable borrow rate mode on a reserve - * @param _reserve the address of the reserve - **/ - function setReserveStableBorrowRateEnabled(address _reserve, bool _enabled) - external - onlyLendingPoolConfigurator - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - reserve.isStableBorrowRateEnabled = _enabled; - } - - /** - * @dev activates a reserve - * @param _reserve the address of the reserve - **/ - function setReserveActive(address _reserve, bool _active) external onlyLendingPoolConfigurator { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - - if(!_active){ - reserve.isActive = false; - } - else{ - require( - reserve.lastLiquidityCumulativeIndex > 0 && - reserve.lastVariableBorrowCumulativeIndex > 0, - "Reserve has not been initialized yet" - ); - reserve.isActive = true; - - } - } - - /** - * @notice allows the configurator to freeze the reserve. - * A freezed reserve does not allow any action apart from repay, redeem, liquidationCall, rebalance. - * @param _reserve the address of the reserve - **/ - function setReserveFreeze(address _reserve, bool _isFreezed) - external - onlyLendingPoolConfigurator - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - reserve.isFreezed = _isFreezed; - } - - /** - * @notice allows the configurator to update the loan to value of a reserve - * @param _reserve the address of the reserve - * @param _ltv the new loan to value - **/ - function setReserveBaseLTVasCollateral(address _reserve, uint256 _ltv) - external - onlyLendingPoolConfigurator - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - reserve.baseLTVasCollateral = _ltv; - } - - /** - * @notice allows the configurator to update the liquidation threshold of a reserve - * @param _reserve the address of the reserve - * @param _threshold the new liquidation threshold - **/ - function setReserveLiquidationThreshold(address _reserve, uint256 _threshold) - external - onlyLendingPoolConfigurator - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - reserve.liquidationThreshold = _threshold; - } - - /** - * @notice allows the configurator to update the liquidation bonus of a reserve - * @param _reserve the address of the reserve - * @param _bonus the new liquidation bonus - **/ - function setReserveLiquidationBonus(address _reserve, uint256 _bonus) - external - onlyLendingPoolConfigurator - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - reserve.liquidationBonus = _bonus; - } - - /** - * @notice allows the configurator to update the reserve decimals - * @param _reserve the address of the reserve - * @param _decimals the decimals of the reserve - **/ - function setReserveDecimals(address _reserve, uint256 _decimals) - external - onlyLendingPoolConfigurator - { - CoreLibrary.ReserveData storage reserve = reserves[_reserve]; - reserve.decimals = _decimals; - } - - /** - * @notice internal functions - **/ - - /** - * @dev adds a reserve to the array of the reserves address - **/ - function addReserveToListInternal(address _reserve) internal { - bool reserveAlreadyAdded = false; - for (uint256 i = 0; i < reservesList.length; i++) - if (reservesList[i] == _reserve) { - reserveAlreadyAdded = true; - } - if (!reserveAlreadyAdded) reservesList.push(_reserve); - } - - function getReserveNormalizedIncome(address _reserve) external view returns (uint256) { - return reserves[_reserve].getNormalizedIncome(); - } - - function getReserveNormalizedVariableDebt(address _reserve) external view returns (uint256) { - return reserves[_reserve].getNormalizedDebt(); - } - - - function balanceDecreaseAllowed(address _reserve, address _user, uint256 _amount) - external - view - returns (bool) - { - return - GenericLogic.balanceDecreaseAllowed( - _reserve, - _user, - _amount, - reserves, - usersReserveData, - reservesList, - addressesProvider.getPriceOracle() - ); - } + } + + /** + * @notice allows the configurator to freeze the reserve. + * A freezed reserve does not allow any action apart from repay, redeem, liquidationCall, rebalance. + * @param _reserve the address of the reserve + **/ + function setReserveFreeze(address _reserve, bool _isFreezed) + external + onlyLendingPoolConfigurator + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + reserve.isFreezed = _isFreezed; + } + + /** + * @notice allows the configurator to update the loan to value of a reserve + * @param _reserve the address of the reserve + * @param _ltv the new loan to value + **/ + function setReserveBaseLTVasCollateral(address _reserve, uint256 _ltv) + external + onlyLendingPoolConfigurator + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + reserve.baseLTVasCollateral = _ltv; + } + + /** + * @notice allows the configurator to update the liquidation threshold of a reserve + * @param _reserve the address of the reserve + * @param _threshold the new liquidation threshold + **/ + function setReserveLiquidationThreshold(address _reserve, uint256 _threshold) + external + onlyLendingPoolConfigurator + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + reserve.liquidationThreshold = _threshold; + } + + /** + * @notice allows the configurator to update the liquidation bonus of a reserve + * @param _reserve the address of the reserve + * @param _bonus the new liquidation bonus + **/ + function setReserveLiquidationBonus(address _reserve, uint256 _bonus) + external + onlyLendingPoolConfigurator + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + reserve.liquidationBonus = _bonus; + } + + /** + * @notice allows the configurator to update the reserve decimals + * @param _reserve the address of the reserve + * @param _decimals the decimals of the reserve + **/ + function setReserveDecimals(address _reserve, uint256 _decimals) + external + onlyLendingPoolConfigurator + { + CoreLibrary.ReserveData storage reserve = reserves[_reserve]; + reserve.decimals = _decimals; + } + + /** + * @notice internal functions + **/ + + /** + * @dev adds a reserve to the array of the reserves address + **/ + function addReserveToListInternal(address _reserve) internal { + bool reserveAlreadyAdded = false; + for (uint256 i = 0; i < reservesList.length; i++) + if (reservesList[i] == _reserve) { + reserveAlreadyAdded = true; + } + if (!reserveAlreadyAdded) reservesList.push(_reserve); + } + + function getReserveNormalizedIncome(address _reserve) external view returns (uint256) { + return reserves[_reserve].getNormalizedIncome(); + } + + function getReserveNormalizedVariableDebt(address _reserve) external view returns (uint256) { + return reserves[_reserve].getNormalizedDebt(); + } + + function balanceDecreaseAllowed( + address _reserve, + address _user, + uint256 _amount + ) external view returns (bool) { + return + GenericLogic.balanceDecreaseAllowed( + _reserve, + _user, + _amount, + reserves, + usersReserveData, + reservesList, + addressesProvider.getPriceOracle() + ); + } } diff --git a/contracts/libraries/ValidationLogic.sol b/contracts/libraries/ValidationLogic.sol index 2439e99e..c4031e41 100644 --- a/contracts/libraries/ValidationLogic.sol +++ b/contracts/libraries/ValidationLogic.sol @@ -232,18 +232,27 @@ library ValidationLogic { * @dev validates a swap of borrow rate mode. * @param _reserve the reserve state on which the user is swapping the rate * @param _user the user state for the reserve on which user is swapping the rate - * @param _borrowBalance the borrow balance of the user + * @param _stableBorrowBalance the stable borrow balance of the user + * @param _variableBorrowBalance the stable borrow balance of the user * @param _currentRateMode the rate mode of the borrow */ function validateSwapRateMode( CoreLibrary.ReserveData storage _reserve, CoreLibrary.UserReserveData storage _user, - uint256 _borrowBalance, + uint256 _stableBorrowBalance, + uint256 _variableBorrowBalance, CoreLibrary.InterestRateMode _currentRateMode ) external view { require(_reserve.isActive, 'Action requires an active reserve'); require(!_reserve.isFreezed, 'Action requires an unfreezed reserve'); - require(_borrowBalance > 0, 'User does not have a borrow in progress on this reserve'); + require( + _currentRateMode == CoreLibrary.InterestRateMode.STABLE && _stableBorrowBalance > 0, + 'User does not have a stable rate loan in progress on this reserve' + ); + require( + _currentRateMode == CoreLibrary.InterestRateMode.VARIABLE && _variableBorrowBalance > 0, + 'User does not have a variable rate loan in progress on this reserve' + ); if (_currentRateMode == CoreLibrary.InterestRateMode.VARIABLE) { /** @@ -258,7 +267,8 @@ library ValidationLogic { require( !_user.useAsCollateral || !_reserve.usageAsCollateralEnabled || - _borrowBalance > IERC20(_reserve.aTokenAddress).balanceOf(msg.sender), + _stableBorrowBalance.add(_variableBorrowBalance) > + IERC20(_reserve.aTokenAddress).balanceOf(msg.sender), '12' ); } diff --git a/contracts/tokenization/StableDebtToken.sol b/contracts/tokenization/StableDebtToken.sol index 7912b354..0ae41db8 100644 --- a/contracts/tokenization/StableDebtToken.sol +++ b/contracts/tokenization/StableDebtToken.sol @@ -78,33 +78,46 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase { * * - `to` cannot be the zero address. */ + + struct MintLocalVars { + uint256 newSupply; + uint256 amountInRay; + uint256 newStableRate; + } + function mint( address account, uint256 amount, uint256 rate ) public override onlyLendingPool { + + MintLocalVars memory vars; + ( uint256 previousBalance, uint256 currentBalance, uint256 balanceIncrease ) = internalCumulateBalance(account); - uint256 newSupply = totalSupply.add(amount); - uint256 amountInRay = amount.wadToRay(); + vars.newSupply = totalSupply.add(amount); - usersData[account].currentRate = usersData[account] + vars.amountInRay = amount.wadToRay(); + + vars.newStableRate = usersData[account] .currentRate .rayMul(currentBalance.wadToRay()) - .add(amountInRay.rayMul(rate)) + .add(vars.amountInRay.rayMul(rate)) .rayDiv(currentBalance.add(amount).wadToRay()); + usersData[account].currentRate = vars.newStableRate; + usersData[account].lastUpdateTimestamp = uint40(block.timestamp); avgStableRate = avgStableRate .rayMul(totalSupply.wadToRay()) - .add(rate.rayMul(amountInRay)) - .rayDiv(newSupply.wadToRay()); + .add(rate.rayMul(vars.amountInRay)) + .rayDiv(vars.newSupply.wadToRay()); internalMint(account, amount); @@ -114,7 +127,7 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase { previousBalance, currentBalance, balanceIncrease, - usersData[account].currentRate + vars.newStableRate ); } diff --git a/deployed-contracts.json b/deployed-contracts.json index d01584b2..6c7e3e4e 100644 --- a/deployed-contracts.json +++ b/deployed-contracts.json @@ -146,7 +146,7 @@ }, "TokenDistributor": { "buidlerevm": { - "address": "0xb840b4fe440b5E26e1840cd2D6320FAda1C0ca5d" + "address": "0x24E420B42971372F060a93129846761F354Bc50B" }, "localhost": { "address": "0xb840b4fe440b5E26e1840cd2D6320FAda1C0ca5d" @@ -154,7 +154,7 @@ }, "InitializableAdminUpgradeabilityProxy": { "buidlerevm": { - "address": "0xb840b4fe440b5E26e1840cd2D6320FAda1C0ca5d", + "address": "0x24E420B42971372F060a93129846761F354Bc50B", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -164,7 +164,7 @@ }, "MockFlashLoanReceiver": { "buidlerevm": { - "address": "0x5c98c9202b73d27A618662d34A6805c34AB041B8" + "address": "0x1a432D97211e8b2CD53DF262c8Da0EfeBa6b6b3D" }, "localhost": { "address": "0x5c98c9202b73d27A618662d34A6805c34AB041B8" @@ -172,7 +172,7 @@ }, "WalletBalanceProvider": { "buidlerevm": { - "address": "0x435250F99d9ec2D7956773c6768392caD183765e", + "address": "0xC91A0D5B404a66d0d66daF32DA23BB0c434F7F6b", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -412,7 +412,7 @@ }, "AaveProtocolTestHelpers": { "buidlerevm": { - "address": "0xBE7fFcC01164C890e59D298FD755FcBE6B7941a9" + "address": "0x5c98c9202b73d27A618662d34A6805c34AB041B8" }, "localhost": { "address": "0xBE7fFcC01164C890e59D298FD755FcBE6B7941a9" diff --git a/test/scenario.spec.ts b/test/scenario.spec.ts index 10db45fb..20b7affd 100644 --- a/test/scenario.spec.ts +++ b/test/scenario.spec.ts @@ -12,7 +12,7 @@ BigNumber.config({DECIMAL_PLACES: 0, ROUNDING_MODE: BigNumber.ROUND_DOWN}); const scenarioFolder = './test/helpers/scenarios/'; -const selectedScenarios: string[] = []; +const selectedScenarios: string[] = ['rebalance-stable-rate.json']; fs.readdirSync(scenarioFolder).forEach((file) => { if (selectedScenarios.length > 0 && !selectedScenarios.includes(file)) return; diff --git a/types/ATokenFactory.ts b/types/ATokenFactory.ts index 198d6465..0245ff4f 100644 --- a/types/ATokenFactory.ts +++ b/types/ATokenFactory.ts @@ -841,4 +841,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040523480156200001157600080fd5b506040516200255a3803806200255a833981810160405260a08110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82516401000000008111828201881017156200009c57600080fd5b82525081516020918201929091019080838360005b83811015620000cb578181015183820152602001620000b1565b50505050905090810190601f168015620000f95780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011d57600080fd5b9083019060208201858111156200013357600080fd5b82516401000000008111828201881017156200014e57600080fd5b82525081516020918201929091019080838360005b838110156200017d57818101518382015260200162000163565b50505050905090810190601f168015620001ab5780820380516001836020036101000a031916815260200191505b50604052505082518391508290620001cb906003906020850190620002eb565b508051620001e1906004906020840190620002eb565b50506005805460ff191660121790555062000205836001600160e01b03620002d516565b600a80546001600160a01b0319166001600160a01b03878116919091179182905560408051630261bf8b60e01b815290519290911691630261bf8b91600480820192602092909190829003018186803b1580156200026257600080fd5b505afa15801562000277573d6000803e3d6000fd5b505050506040513d60208110156200028e57600080fd5b5051600b80546001600160a01b0319166001600160a01b0392831617905560058054610100600160a81b031916610100969092169590950217909355506200039092505050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b6200038d91905b808211156200036c576000815560010162000377565b90565b6121ba80620003a06000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635eae177c116100de578063a9059cbb11610097578063db006a7511610071578063db006a75146104f3578063dd62ed3e14610510578063ee9907a41461053e578063f866c3191461056457610173565b8063a9059cbb14610499578063c634dfaa146104c5578063d0fc81d2146104eb57610173565b80635eae177c146103df57806370a082311461040b57806389d1a0fc1461043157806394362e8b1461043957806395d89b4114610465578063a457c2d71461046d57610173565b806323b872dd1161013057806323b872dd146102c3578063313ce567146102f9578063325a9b131461031757806339509351146103455780633edb7cb814610371578063445e80101461039d57610173565b806306fdde0314610178578063095ea7b3146101f55780630e49072d1461023557806312c87c2d1461025d57806318160ddd146102835780631d51e7cf1461029d575b600080fd5b61018061059a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610631565b604080519115158252519081900360200190f35b61025b6004803603602081101561024b57600080fd5b50356001600160a01b031661064f565b005b61025b6004803603602081101561027357600080fd5b50356001600160a01b031661065c565b61028b6106fb565b60408051918252519081900360200190f35b61028b600480360360208110156102b357600080fd5b50356001600160a01b03166107bd565b610221600480360360608110156102d957600080fd5b506001600160a01b038135811691602081013590911690604001356107dc565b610301610869565b6040805160ff9092168252519081900360200190f35b61025b6004803603604081101561032d57600080fd5b506001600160a01b0381358116916020013516610872565b6102216004803603604081101561035b57600080fd5b506001600160a01b0381351690602001356108d8565b61025b6004803603604081101561038757600080fd5b506001600160a01b03813516906020013561092c565b6103c3600480360360208110156103b357600080fd5b50356001600160a01b0316610a21565b604080516001600160a01b039092168252519081900360200190f35b610221600480360360408110156103f557600080fd5b506001600160a01b038135169060200135610a3f565b61028b6004803603602081101561042157600080fd5b50356001600160a01b0316610ada565b6103c3610b8d565b61025b6004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610ba1565b610180610c76565b6102216004803603604081101561048357600080fd5b506001600160a01b038135169060200135610cd7565b610221600480360360408110156104af57600080fd5b506001600160a01b038135169060200135610d45565b61028b600480360360208110156104db57600080fd5b50356001600160a01b0316610d59565b61028b610d64565b61025b6004803603602081101561050957600080fd5b5035610d6a565b61028b6004803603604081101561052657600080fd5b506001600160a01b0381358116916020013516610fa4565b61028b6004803603602081101561055457600080fd5b50356001600160a01b0316610fcf565b61025b6004803603606081101561057a57600080fd5b506001600160a01b03813581169160208101359091169060400135610fea565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b820191906000526020600020905b81548152906001019060200180831161060957829003601f168201915b505050505090505b90565b600061064561063e611043565b8484611047565b5060015b92915050565b6106593382611133565b50565b6001600160a01b0381163314156106a45760405162461bcd60e51b8152600401808060200182810382526025815260200180611f806025913960400191505060405180910390fd5b3360008181526009602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519092917fc2d6a42a9d5273283f73009a07aacfb043f2f91173a8d9d33b504afe898db08b91a350565b600080610706611322565b90508061071757600091505061062e565b600b546005546040805163d15e005360e01b81526001600160a01b036101009093048316600482015290516107b7936107b293169163d15e0053916024808301926020929190829003018186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d602081101561079b57600080fd5b50516107a684611328565b9063ffffffff61133e16565b611389565b91505090565b6001600160a01b0381166000908152600860205260409020545b919050565b60006107e98484846113a2565b61085f846107f5611043565b61085a85604051806060016040528060288152602001611fc6602891396001600160a01b038a16600090815260016020526040812090610833611043565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61141116565b611047565b5060019392505050565b60055460ff1690565b6001600160a01b038281166000908152600960205260409020541633146108ca5760405162461bcd60e51b815260040180806020018281038252603a81526020018061214b603a913960400191505060405180910390fd5b6108d48282611133565b5050565b60006106456108e5611043565b8461085a85600160006108f6611043565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6114a816565b600b546001600160a01b031633146109755760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080600061098385611502565b935093509350506109958583866115f3565b61099f858561172a565b60006109b1848663ffffffff61183216565b6109c1576109be86611874565b90505b856001600160a01b03167f90e5d3d68ec162d9c7de393037a3ede04dd44f68e051bf2ace4a73c299dbc4db8685846109f957856109fc565b60005b60408051938452602084019290925282820152519081900360600190a2505050505050565b6001600160a01b039081166000908152600760205260409020541690565b600b54600554604080516376e9d61560e01b81526101009092046001600160a01b039081166004840152858116602484015260448301859052905160009391909116916376e9d615916064808301926020929190829003018186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d6020811015610ad157600080fd5b50519392505050565b600080610ae683611926565b6001600160a01b03841660009081526008602052604090205490915081158015610b0e575080155b15610b1e576000925050506107d7565b6001600160a01b0384811660009081526007602052604090205416610b6f57610b6681610b5a86610b55868463ffffffff6114a816565b611941565b9063ffffffff61183216565b925050506107d7565b610b66610b8082610b5a8785611941565b839063ffffffff6114a816565b60055461010090046001600160a01b031681565b600b546001600160a01b03163314610bea5760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080610bf684611502565b935093505050610c1a84610c1385856114a890919063ffffffff16565b60006115f3565b610c2484846119f6565b604080518481526020810184905280820183905290516001600160a01b038616917fbe7799898ca2d813ff902b487c1b434ab45b47edd8f38b77ad5e99aae8341b7a919081900360600190a250505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b6000610645610ce4611043565b8461085a856040518060600160405280602581526020016121266025913960016000610d0e611043565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61141116565b6000610645610d52611043565b84846113a2565b600061064982611926565b60001981565b60008111610dbf576040805162461bcd60e51b815260206004820181905260248201527f416d6f756e7420746f2072656465656d206e6565647320746f206265203e2030604482015290519081900360640190fd5b6000806000610dcd33611502565b91955093509150849050600019811415610de45750825b83811115610e235760405162461bcd60e51b8152600401808060200182810382526032815260200180611f066032913960400191505060405180910390fd5b610e2d3382610a3f565b610e7e576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b610e893384836115f3565b610e93338261172a565b6000610ea5858363ffffffff61183216565b610eb557610eb233611874565b90505b600b546005546001600160a01b0391821691639895e3d8916101009004163385610ee58a8263ffffffff61183216565b6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050336001600160a01b03167fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a76468386846109f957866109fc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031633146110335760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b61103e838383611af2565b505050565b3390565b6001600160a01b03831661108c5760405162461bcd60e51b81526004018080602001828103825260248152602001806120d06024913960400191505060405180910390fd5b6001600160a01b0382166110d15760405162461bcd60e51b8152600401808060200182810382526022815260200180611f386022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0380831660009081526007602052604090205481169082168114156111905760405162461bcd60e51b815260040180806020018281038252602a815260200180611fee602a913960400191505060405180910390fd5b60008060008061119f87611502565b9350935093509350600083116111e65760405162461bcd60e51b81526004018080602001828103825260428152602001806120186042913960600191505060405180910390fd5b6001600160a01b0385161561120157611201876000866115f3565b866001600160a01b0316866001600160a01b0316141561128d576001600160a01b038716600081815260076020908152604080832080546001600160a01b03191690558051878152918201869052818101859052519192917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050506108d4565b6001600160a01b03878116600090815260076020526040812080546001600160a01b031916928916929092179091556112c990889085906115f3565b604080518481526020810184905280820183905290516001600160a01b0380891692908a16917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050505050565b60025490565b600061064982633b9aca0063ffffffff611c2116565b60006113826b033b2e3c9fd0803ce8000000611376611363868663ffffffff611c2116565b6b019d971e4fe8401e74000000906114a8565b9063ffffffff611c7a16565b9392505050565b6000631dcd6500611382633b9aca0061137683866114a8565b82816113ae8282610a3f565b6113ff576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b61140a858585611af2565b5050505050565b600081848411156114a05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561146557818101518382015260200161144d565b50505050905090810190601f1680156114925780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611382576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600061151386611926565b9050600061152482610b5a89610ada565b905061153087826119f6565b600b546005546040805163d15e005360e01b81526101009092046001600160a01b0390811660048401529051600093919091169163d15e0053916024808301926020929190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b50516001600160a01b03891660009081526006602052604090208190559050826115e3818463ffffffff6114a816565b9099909850919650945092505050565b6001600160a01b038084166000908152600760205260409020541680611619575061103e565b60008061162583611502565b6001600160a01b038716600090815260086020526040902054919550935061165b9250869150610b5a908863ffffffff6114a816565b6001600160a01b038085166000908152600860209081526040808320949094556007905291909120541680156116ce576001600160a01b0381166000908152600860205260409020546116b4908463ffffffff6114a816565b6001600160a01b0382166000908152600860205260409020555b60408051848152602081018490528082018890526060810187905290516001600160a01b038616917f70ff8cf632603e2bfd1afb7e4061acce53d95356b1be9726b99fa22ba733b01f919081900360800190a250505050505050565b6001600160a01b03821661176f5760405162461bcd60e51b815260040180806020018281038252602181526020018061208a6021913960400191505060405180910390fd5b61177b8260008361103e565b6117be81604051806060016040528060228152602001611ee4602291396001600160a01b038516600090815260208190526040902054919063ffffffff61141116565b6001600160a01b0383166000908152602081905260409020556002546117ea908263ffffffff61183216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061138283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611411565b6001600160a01b038116600081815260076020908152604080832080546001600160a01b03191690558051838152918201839052818101839052519192839290917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a7348735594919081900360600190a36001600160a01b03821660009081526008602052604090205461191e57506001600160a01b03811660009081526006602052604081205560016107d7565b5060006107d7565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b03808316600090815260066020908152604080832054600b54600554835163d15e005360e01b81526101009091048716600482015292519495611382956107b29593946119ea94939092169263d15e00539260248082019391829003018186803b1580156119b557600080fd5b505afa1580156119c9573d6000803e3d6000fd5b505050506040513d60208110156119df57600080fd5b50516107a687611328565b9063ffffffff611cbc16565b6001600160a01b038216611a51576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a5d6000838361103e565b600254611a70908263ffffffff6114a816565b6002556001600160a01b038216600090815260208190526040902054611a9c908263ffffffff6114a816565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008111611b315760405162461bcd60e51b815260040180806020018281038252603081526020018061205a6030913960400191505060405180910390fd5b6000806000611b3f86611502565b93509350935050600080611b5287611502565b935093505050611b638885886115f3565b611b7787610c13848963ffffffff6114a816565b611b82888888611cf4565b6000611b94868863ffffffff61183216565b611ba457611ba189611874565b90505b876001600160a01b0316896001600160a01b03167f89a178eaa27e0cd201bd795ca8ff716ac0df9618494510ca79771cfc66ffcde889888786611be75789611bea565b60005b60408051948552602085019390935283830191909152606083015260808201879052519081900360a00190a3505050505050505050565b600082611c3057506000610649565b82820282848281611c3d57fe5b04146113825760405162461bcd60e51b8152600401808060200182810382526021815260200180611fa56021913960400191505060405180910390fd5b600061138283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e5b565b600060028204611cec83611376611cdf876b033b2e3c9fd0803ce8000000611c21565b849063ffffffff6114a816565b949350505050565b6001600160a01b038316611d395760405162461bcd60e51b81526004018080602001828103825260258152602001806120ab6025913960400191505060405180910390fd5b6001600160a01b038216611d7e5760405162461bcd60e51b8152600401808060200182810382526023815260200180611ec16023913960400191505060405180910390fd5b611d8983838361103e565b611dcc81604051806060016040528060268152602001611f5a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61141116565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611e01908263ffffffff6114a816565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008183611eaa5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561146557818101518382015260200161144d565b506000838581611eb657fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f742072656465656d206d6f7265207468616e2074686520617661696c61626c652062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f74206769766520616c6c6f77616e636520746f2068696d73656c66536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365496e74657265737420697320616c7265616479207265646972656374656420746f207468652075736572496e7465726573742073747265616d2063616e206f6e6c79206265207265646972656374656420696620746865726520697320612076616c69642062616c616e63655472616e7366657272656420616d6f756e74206e6565647320746f2062652067726561746572207468616e207a65726f45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f43616c6c6572206973206e6f7420616c6c6f77656420746f2072656469726563742074686520696e746572657374206f66207468652075736572a2646970667358221220201915aed978df22aae3b77bb7cc0edce33b16d5661a00939351bdbf8dd2683564736f6c63430006080033"; + "0x60806040523480156200001157600080fd5b506040516200255a3803806200255a833981810160405260a08110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82516401000000008111828201881017156200009c57600080fd5b82525081516020918201929091019080838360005b83811015620000cb578181015183820152602001620000b1565b50505050905090810190601f168015620000f95780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011d57600080fd5b9083019060208201858111156200013357600080fd5b82516401000000008111828201881017156200014e57600080fd5b82525081516020918201929091019080838360005b838110156200017d57818101518382015260200162000163565b50505050905090810190601f168015620001ab5780820380516001836020036101000a031916815260200191505b50604052505082518391508290620001cb906003906020850190620002eb565b508051620001e1906004906020840190620002eb565b50506005805460ff191660121790555062000205836001600160e01b03620002d516565b600a80546001600160a01b0319166001600160a01b03878116919091179182905560408051630261bf8b60e01b815290519290911691630261bf8b91600480820192602092909190829003018186803b1580156200026257600080fd5b505afa15801562000277573d6000803e3d6000fd5b505050506040513d60208110156200028e57600080fd5b5051600b80546001600160a01b0319166001600160a01b0392831617905560058054610100600160a81b031916610100969092169590950217909355506200039092505050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b6200038d91905b808211156200036c576000815560010162000377565b90565b6121ba80620003a06000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635eae177c116100de578063a9059cbb11610097578063db006a7511610071578063db006a75146104f3578063dd62ed3e14610510578063ee9907a41461053e578063f866c3191461056457610173565b8063a9059cbb14610499578063c634dfaa146104c5578063d0fc81d2146104eb57610173565b80635eae177c146103df57806370a082311461040b57806389d1a0fc1461043157806394362e8b1461043957806395d89b4114610465578063a457c2d71461046d57610173565b806323b872dd1161013057806323b872dd146102c3578063313ce567146102f9578063325a9b131461031757806339509351146103455780633edb7cb814610371578063445e80101461039d57610173565b806306fdde0314610178578063095ea7b3146101f55780630e49072d1461023557806312c87c2d1461025d57806318160ddd146102835780631d51e7cf1461029d575b600080fd5b61018061059a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610631565b604080519115158252519081900360200190f35b61025b6004803603602081101561024b57600080fd5b50356001600160a01b031661064f565b005b61025b6004803603602081101561027357600080fd5b50356001600160a01b031661065c565b61028b6106fb565b60408051918252519081900360200190f35b61028b600480360360208110156102b357600080fd5b50356001600160a01b03166107bd565b610221600480360360608110156102d957600080fd5b506001600160a01b038135811691602081013590911690604001356107dc565b610301610869565b6040805160ff9092168252519081900360200190f35b61025b6004803603604081101561032d57600080fd5b506001600160a01b0381358116916020013516610872565b6102216004803603604081101561035b57600080fd5b506001600160a01b0381351690602001356108d8565b61025b6004803603604081101561038757600080fd5b506001600160a01b03813516906020013561092c565b6103c3600480360360208110156103b357600080fd5b50356001600160a01b0316610a21565b604080516001600160a01b039092168252519081900360200190f35b610221600480360360408110156103f557600080fd5b506001600160a01b038135169060200135610a3f565b61028b6004803603602081101561042157600080fd5b50356001600160a01b0316610ada565b6103c3610b8d565b61025b6004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610ba1565b610180610c76565b6102216004803603604081101561048357600080fd5b506001600160a01b038135169060200135610cd7565b610221600480360360408110156104af57600080fd5b506001600160a01b038135169060200135610d45565b61028b600480360360208110156104db57600080fd5b50356001600160a01b0316610d59565b61028b610d64565b61025b6004803603602081101561050957600080fd5b5035610d6a565b61028b6004803603604081101561052657600080fd5b506001600160a01b0381358116916020013516610fa4565b61028b6004803603602081101561055457600080fd5b50356001600160a01b0316610fcf565b61025b6004803603606081101561057a57600080fd5b506001600160a01b03813581169160208101359091169060400135610fea565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b820191906000526020600020905b81548152906001019060200180831161060957829003601f168201915b505050505090505b90565b600061064561063e611043565b8484611047565b5060015b92915050565b6106593382611133565b50565b6001600160a01b0381163314156106a45760405162461bcd60e51b8152600401808060200182810382526025815260200180611f806025913960400191505060405180910390fd5b3360008181526009602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519092917fc2d6a42a9d5273283f73009a07aacfb043f2f91173a8d9d33b504afe898db08b91a350565b600080610706611322565b90508061071757600091505061062e565b600b546005546040805163d15e005360e01b81526001600160a01b036101009093048316600482015290516107b7936107b293169163d15e0053916024808301926020929190829003018186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d602081101561079b57600080fd5b50516107a684611328565b9063ffffffff61133e16565b611389565b91505090565b6001600160a01b0381166000908152600860205260409020545b919050565b60006107e98484846113a2565b61085f846107f5611043565b61085a85604051806060016040528060288152602001611fc6602891396001600160a01b038a16600090815260016020526040812090610833611043565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61141116565b611047565b5060019392505050565b60055460ff1690565b6001600160a01b038281166000908152600960205260409020541633146108ca5760405162461bcd60e51b815260040180806020018281038252603a81526020018061214b603a913960400191505060405180910390fd5b6108d48282611133565b5050565b60006106456108e5611043565b8461085a85600160006108f6611043565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6114a816565b600b546001600160a01b031633146109755760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080600061098385611502565b935093509350506109958583866115f3565b61099f858561172a565b60006109b1848663ffffffff61183216565b6109c1576109be86611874565b90505b856001600160a01b03167f90e5d3d68ec162d9c7de393037a3ede04dd44f68e051bf2ace4a73c299dbc4db8685846109f957856109fc565b60005b60408051938452602084019290925282820152519081900360600190a2505050505050565b6001600160a01b039081166000908152600760205260409020541690565b600b54600554604080516376e9d61560e01b81526101009092046001600160a01b039081166004840152858116602484015260448301859052905160009391909116916376e9d615916064808301926020929190829003018186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d6020811015610ad157600080fd5b50519392505050565b600080610ae683611926565b6001600160a01b03841660009081526008602052604090205490915081158015610b0e575080155b15610b1e576000925050506107d7565b6001600160a01b0384811660009081526007602052604090205416610b6f57610b6681610b5a86610b55868463ffffffff6114a816565b611941565b9063ffffffff61183216565b925050506107d7565b610b66610b8082610b5a8785611941565b839063ffffffff6114a816565b60055461010090046001600160a01b031681565b600b546001600160a01b03163314610bea5760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080610bf684611502565b935093505050610c1a84610c1385856114a890919063ffffffff16565b60006115f3565b610c2484846119f6565b604080518481526020810184905280820183905290516001600160a01b038616917fbe7799898ca2d813ff902b487c1b434ab45b47edd8f38b77ad5e99aae8341b7a919081900360600190a250505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b6000610645610ce4611043565b8461085a856040518060600160405280602581526020016121266025913960016000610d0e611043565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61141116565b6000610645610d52611043565b84846113a2565b600061064982611926565b60001981565b60008111610dbf576040805162461bcd60e51b815260206004820181905260248201527f416d6f756e7420746f2072656465656d206e6565647320746f206265203e2030604482015290519081900360640190fd5b6000806000610dcd33611502565b91955093509150849050600019811415610de45750825b83811115610e235760405162461bcd60e51b8152600401808060200182810382526032815260200180611f066032913960400191505060405180910390fd5b610e2d3382610a3f565b610e7e576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b610e893384836115f3565b610e93338261172a565b6000610ea5858363ffffffff61183216565b610eb557610eb233611874565b90505b600b546005546001600160a01b0391821691639895e3d8916101009004163385610ee58a8263ffffffff61183216565b6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050336001600160a01b03167fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a76468386846109f957866109fc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031633146110335760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b61103e838383611af2565b505050565b3390565b6001600160a01b03831661108c5760405162461bcd60e51b81526004018080602001828103825260248152602001806120d06024913960400191505060405180910390fd5b6001600160a01b0382166110d15760405162461bcd60e51b8152600401808060200182810382526022815260200180611f386022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0380831660009081526007602052604090205481169082168114156111905760405162461bcd60e51b815260040180806020018281038252602a815260200180611fee602a913960400191505060405180910390fd5b60008060008061119f87611502565b9350935093509350600083116111e65760405162461bcd60e51b81526004018080602001828103825260428152602001806120186042913960600191505060405180910390fd5b6001600160a01b0385161561120157611201876000866115f3565b866001600160a01b0316866001600160a01b0316141561128d576001600160a01b038716600081815260076020908152604080832080546001600160a01b03191690558051878152918201869052818101859052519192917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050506108d4565b6001600160a01b03878116600090815260076020526040812080546001600160a01b031916928916929092179091556112c990889085906115f3565b604080518481526020810184905280820183905290516001600160a01b0380891692908a16917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050505050565b60025490565b600061064982633b9aca0063ffffffff611c2116565b60006113826b033b2e3c9fd0803ce8000000611376611363868663ffffffff611c2116565b6b019d971e4fe8401e74000000906114a8565b9063ffffffff611c7a16565b9392505050565b6000631dcd6500611382633b9aca0061137683866114a8565b82816113ae8282610a3f565b6113ff576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b61140a858585611af2565b5050505050565b600081848411156114a05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561146557818101518382015260200161144d565b50505050905090810190601f1680156114925780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611382576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600061151386611926565b9050600061152482610b5a89610ada565b905061153087826119f6565b600b546005546040805163d15e005360e01b81526101009092046001600160a01b0390811660048401529051600093919091169163d15e0053916024808301926020929190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b50516001600160a01b03891660009081526006602052604090208190559050826115e3818463ffffffff6114a816565b9099909850919650945092505050565b6001600160a01b038084166000908152600760205260409020541680611619575061103e565b60008061162583611502565b6001600160a01b038716600090815260086020526040902054919550935061165b9250869150610b5a908863ffffffff6114a816565b6001600160a01b038085166000908152600860209081526040808320949094556007905291909120541680156116ce576001600160a01b0381166000908152600860205260409020546116b4908463ffffffff6114a816565b6001600160a01b0382166000908152600860205260409020555b60408051848152602081018490528082018890526060810187905290516001600160a01b038616917f70ff8cf632603e2bfd1afb7e4061acce53d95356b1be9726b99fa22ba733b01f919081900360800190a250505050505050565b6001600160a01b03821661176f5760405162461bcd60e51b815260040180806020018281038252602181526020018061208a6021913960400191505060405180910390fd5b61177b8260008361103e565b6117be81604051806060016040528060228152602001611ee4602291396001600160a01b038516600090815260208190526040902054919063ffffffff61141116565b6001600160a01b0383166000908152602081905260409020556002546117ea908263ffffffff61183216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061138283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611411565b6001600160a01b038116600081815260076020908152604080832080546001600160a01b03191690558051838152918201839052818101839052519192839290917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a7348735594919081900360600190a36001600160a01b03821660009081526008602052604090205461191e57506001600160a01b03811660009081526006602052604081205560016107d7565b5060006107d7565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b03808316600090815260066020908152604080832054600b54600554835163d15e005360e01b81526101009091048716600482015292519495611382956107b29593946119ea94939092169263d15e00539260248082019391829003018186803b1580156119b557600080fd5b505afa1580156119c9573d6000803e3d6000fd5b505050506040513d60208110156119df57600080fd5b50516107a687611328565b9063ffffffff611cbc16565b6001600160a01b038216611a51576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a5d6000838361103e565b600254611a70908263ffffffff6114a816565b6002556001600160a01b038216600090815260208190526040902054611a9c908263ffffffff6114a816565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008111611b315760405162461bcd60e51b815260040180806020018281038252603081526020018061205a6030913960400191505060405180910390fd5b6000806000611b3f86611502565b93509350935050600080611b5287611502565b935093505050611b638885886115f3565b611b7787610c13848963ffffffff6114a816565b611b82888888611cf4565b6000611b94868863ffffffff61183216565b611ba457611ba189611874565b90505b876001600160a01b0316896001600160a01b03167f89a178eaa27e0cd201bd795ca8ff716ac0df9618494510ca79771cfc66ffcde889888786611be75789611bea565b60005b60408051948552602085019390935283830191909152606083015260808201879052519081900360a00190a3505050505050505050565b600082611c3057506000610649565b82820282848281611c3d57fe5b04146113825760405162461bcd60e51b8152600401808060200182810382526021815260200180611fa56021913960400191505060405180910390fd5b600061138283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e5b565b600060028204611cec83611376611cdf876b033b2e3c9fd0803ce8000000611c21565b849063ffffffff6114a816565b949350505050565b6001600160a01b038316611d395760405162461bcd60e51b81526004018080602001828103825260258152602001806120ab6025913960400191505060405180910390fd5b6001600160a01b038216611d7e5760405162461bcd60e51b8152600401808060200182810382526023815260200180611ec16023913960400191505060405180910390fd5b611d8983838361103e565b611dcc81604051806060016040528060268152602001611f5a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61141116565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611e01908263ffffffff6114a816565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008183611eaa5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561146557818101518382015260200161144d565b506000838581611eb657fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f742072656465656d206d6f7265207468616e2074686520617661696c61626c652062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f74206769766520616c6c6f77616e636520746f2068696d73656c66536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365496e74657265737420697320616c7265616479207265646972656374656420746f207468652075736572496e7465726573742073747265616d2063616e206f6e6c79206265207265646972656374656420696620746865726520697320612076616c69642062616c616e63655472616e7366657272656420616d6f756e74206e6565647320746f2062652067726561746572207468616e207a65726f45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f43616c6c6572206973206e6f7420616c6c6f77656420746f2072656469726563742074686520696e746572657374206f66207468652075736572a26469706673582212200671650e46839586c7bcac37f954eaae245ebc9947b1318c9a3efa141e385ddd64736f6c63430006080033"; diff --git a/types/AaveProtocolTestHelpersFactory.ts b/types/AaveProtocolTestHelpersFactory.ts index 687f04c3..dd2a3451 100644 --- a/types/AaveProtocolTestHelpersFactory.ts +++ b/types/AaveProtocolTestHelpersFactory.ts @@ -123,4 +123,4 @@ const _abi = [ ]; const _bytecode = - "0x60a060405234801561001057600080fd5b50604051610a4d380380610a4d83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6109b6610097600039806083528060ab528061035f52506109b66000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630542975c14610046578063b316ff8914610064578063f561ae4114610079575b600080fd5b61004e610081565b60405161005b919061086c565b60405180910390f35b61006c6100a5565b60405161005b9190610880565b61006c610359565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561010257600080fd5b505afa158015610116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013a9190610650565b90506060816001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160006040518083038186803b15801561017757600080fd5b505afa15801561018b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101b39190810190610672565b90506060815167ffffffffffffffff811180156101cf57600080fd5b5060405190808252806020026020018201604052801561020957816020015b6101f661061b565b8152602001906001900390816101ee5790505b50905060005b825181101561035157604051806040016040528084838151811061022f57fe5b60200260200101516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146102f05784838151811061026f57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156102af57600080fd5b505afa1580156102c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102eb919081019061071d565b61030d565b6040518060400160405280600381526020016208aa8960eb1b8152505b815260200184838151811061031e57fe5b60200260200101516001600160a01b031681525082828151811061033e57fe5b602090810291909101015260010161020f565b509250505090565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b657600080fd5b505afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee9190610650565b90506060816001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160006040518083038186803b15801561042b57600080fd5b505afa15801561043f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104679190810190610672565b90506060815167ffffffffffffffff8111801561048357600080fd5b506040519080825280602002602001820160405280156104bd57816020015b6104aa61061b565b8152602001906001900390816104a25790505b50905060005b8251811015610351576000846001600160a01b0316633e1501418584815181106104e957fe5b60200260200101516040518263ffffffff1660e01b815260040161050d919061086c565b6101406040518083038186803b15801561052657600080fd5b505afa15801561053a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055e91906107a9565b50505050509450505050506040518060400160405280826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156105ad57600080fd5b505afa1580156105c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e9919081019061071d565b8152602001826001600160a01b031681525083838151811061060757fe5b6020908102919091010152506001016104c3565b60408051808201909152606081526000602082015290565b80516001600160a01b038116811461064a57600080fd5b92915050565b600060208284031215610661578081fd5b61066b8383610633565b9392505050565b60006020808385031215610684578182fd5b825167ffffffffffffffff8082111561069b578384fd5b81850186601f8201126106ac578485fd5b80519250818311156106bc578485fd5b83830291506106cc848301610918565b8381528481019082860184840187018a10156106e6578788fd5b8794505b85851015610710576106fc8a82610633565b8352600194909401939186019186016106ea565b5098975050505050505050565b60006020828403121561072e578081fd5b815167ffffffffffffffff80821115610745578283fd5b81840185601f820112610756578384fd5b8051925081831115610766578384fd5b610779601f8401601f1916602001610918565b915082825285602084830101111561078f578384fd5b6107a083602084016020840161093f565b50949350505050565b6000806000806000806000806000806101408b8d0312156107c8578586fd5b8a51995060208b0151985060408b015197506107e78c60608d01610633565b96506107f68c60808d01610633565b955060a08b01516108068161096f565b60c08c01519095506108178161096f565b60e08c01519094506108288161096f565b6101008c015190935061083a8161096f565b6101208c015190925061084c8161096f565b809150509295989b9194979a5092959850565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b60208082528251828201819052600091906040908185019080840286018301878501865b8381101561090a57603f19898403018552815180518785528051808987015260606108d4828289018d860161093f565b8a84015192506108e68b88018461085f565b978a0197601f91909101601f191695909501909401935050908601906001016108a4565b509098975050505050505050565b60405181810167ffffffffffffffff8111828210171561093757600080fd5b604052919050565b60005b8381101561095a578181015183820152602001610942565b83811115610969576000848401525b50505050565b801515811461097d57600080fd5b5056fea2646970667358221220aff59e1edfd9ea45f770bdb4878666710db66844a06f4e0c34fd3a0aafb75ffc64736f6c63430006080033"; + "0x60a060405234801561001057600080fd5b50604051610a4a380380610a4a83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6109b3610097600039806083528060ab528061035f52506109b36000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630542975c14610046578063b316ff8914610064578063f561ae4114610079575b600080fd5b61004e610081565b60405161005b919061085f565b60405180910390f35b61006c6100a5565b60405161005b9190610873565b61006c610359565b7f000000000000000000000000000000000000000000000000000000000000000081565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561010257600080fd5b505afa158015610116573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013a9190610650565b90506060816001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160006040518083038186803b15801561017757600080fd5b505afa15801561018b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101b39190810190610672565b90506060815167ffffffffffffffff811180156101cf57600080fd5b5060405190808252806020026020018201604052801561020957816020015b6101f661061b565b8152602001906001900390816101ee5790505b50905060005b825181101561035157604051806040016040528084838151811061022f57fe5b60200260200101516001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146102f05784838151811061026f57fe5b60200260200101516001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156102af57600080fd5b505afa1580156102c3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102eb919081019061071d565b61030d565b6040518060400160405280600381526020016208aa8960eb1b8152505b815260200184838151811061031e57fe5b60200260200101516001600160a01b031681525082828151811061033e57fe5b602090810291909101015260010161020f565b509250505090565b606060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103b657600080fd5b505afa1580156103ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ee9190610650565b90506060816001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160006040518083038186803b15801561042b57600080fd5b505afa15801561043f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526104679190810190610672565b90506060815167ffffffffffffffff8111801561048357600080fd5b506040519080825280602002602001820160405280156104bd57816020015b6104aa61061b565b8152602001906001900390816104a25790505b50905060005b8251811015610351576000846001600160a01b0316633e1501418584815181106104e957fe5b60200260200101516040518263ffffffff1660e01b815260040161050d919061085f565b6101406040518083038186803b15801561052657600080fd5b505afa15801561053a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061055e91906107a9565b50505050509450505050506040518060400160405280826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156105ad57600080fd5b505afa1580156105c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e9919081019061071d565b8152602001826001600160a01b031681525083838151811061060757fe5b6020908102919091010152506001016104c3565b60408051808201909152606081526000602082015290565b80516001600160a01b038116811461064a57600080fd5b92915050565b600060208284031215610661578081fd5b61066b8383610633565b9392505050565b60006020808385031215610684578182fd5b825167ffffffffffffffff8082111561069b578384fd5b81850186601f8201126106ac578485fd5b80519250818311156106bc578485fd5b83830291506106cc84830161090c565b8381528481019082860184840187018a10156106e6578788fd5b8794505b85851015610710576106fc8a82610633565b8352600194909401939186019186016106ea565b5098975050505050505050565b60006020828403121561072e578081fd5b815167ffffffffffffffff80821115610745578283fd5b81840185601f820112610756578384fd5b8051925081831115610766578384fd5b610779601f8401601f191660200161090c565b915082825285602084830101111561078f578384fd5b6107a083602084016020840161093c565b50949350505050565b6000806000806000806000806000806101408b8d0312156107c8578586fd5b8a51995060208b0151985060408b015197506107e78c60608d01610633565b96506107f68c60808d01610633565b955060a08b01516108068161096c565b60c08c01519095506108178161096c565b60e08c01519094506108288161096c565b6101008c015190935061083a8161096c565b6101208c015190925061084c8161096c565b809150509295989b9194979a5092959850565b6001600160a01b0391909116815260200190565b60208082528251828201819052600091906040908185019080840286018301878501865b838110156108fe57888303603f190185528151805187855280516108bd818a8801610933565b6108ca82828d860161093c565b928a01516001600160a01b0316958a01959095525094870194601f93909301601f1916929092019190860190600101610897565b509098975050505050505050565b60405181810167ffffffffffffffff8111828210171561092b57600080fd5b604052919050565b90815260200190565b60005b8381101561095757818101518382015260200161093f565b83811115610966576000848401525b50505050565b801515811461097a57600080fd5b5056fea2646970667358221220d9b093d396da124cb8f40afbae7fe6099e44ee24ee9ca352f64cec175d22e95264736f6c63430006080033"; diff --git a/types/Example.d.ts b/types/Example.d.ts new file mode 100644 index 00000000..9ac05376 --- /dev/null +++ b/types/Example.d.ts @@ -0,0 +1,53 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface ExampleInterface extends Interface { + functions: { + _n: TypedFunctionDescription<{ encode([]: []): string }>; + + test: TypedFunctionDescription<{ encode([]: []): string }>; + }; + + events: {}; +} + +export class Example extends Contract { + connect(signerOrProvider: Signer | Provider | string): Example; + attach(addressOrName: string): Example; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): Example; + once(event: EventFilter | string, listener: Listener): Example; + addListener(eventName: EventFilter | string, listener: Listener): Example; + removeAllListeners(eventName: EventFilter | string): Example; + removeListener(eventName: any, listener: Listener): Example; + + interface: ExampleInterface; + + functions: { + _n(): Promise; + + test(): Promise; + }; + + _n(): Promise; + + test(): Promise; + + filters: {}; + + estimate: { + _n(): Promise; + + test(): Promise; + }; +} diff --git a/types/ExampleFactory.ts b/types/ExampleFactory.ts new file mode 100644 index 00000000..14abe647 --- /dev/null +++ b/types/ExampleFactory.ts @@ -0,0 +1,71 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { Example } from "./Example"; + +export class ExampleFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): Example { + return super.attach(address) as Example; + } + connect(signer: Signer): ExampleFactory { + return super.connect(signer) as ExampleFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): Example { + return new Contract(address, _abi, signerOrProvider) as Example; + } +} + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor" + }, + { + inputs: [], + name: "_n", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "test", + outputs: [ + { + internalType: "uint256", + name: "n", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + } +]; + +const _bytecode = + "0x6080604052348015600f57600080fd5b5060056000556097806100236000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80631aadff81146037578063f8a8fd6d14604f575b600080fd5b603d6055565b60408051918252519081900360200190f35b603d605b565b60005481565b6000549056fea2646970667358221220db729e656432d2a44942aae506cff90eea05978605f6847ecdf717665d7a04e664736f6c63430006080033"; diff --git a/types/GenericLogicFactory.ts b/types/GenericLogicFactory.ts index b93dc05e..36674c17 100644 --- a/types/GenericLogicFactory.ts +++ b/types/GenericLogicFactory.ts @@ -89,4 +89,4 @@ const _abi = [ ]; const _bytecode = - "0x610fc8610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634d9afd5e1461005b578063901d711414610114578063ab8bb39314610211578063c3525c2814610261575b600080fd5b610100600480360360e081101561007157600080fd5b6001600160a01b0382358116926020810135909116916040820135916060810135916080820135919081019060c0810160a08201356401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b9193509150356001600160a01b0316610269565b604080519115158252519081900360200190f35b6101de600480360360a081101561012a57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184602083028401116401000000008311171561019557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550505090356001600160a01b031691506104ca9050565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b61024f600480360360a081101561022757600080fd5b50803590602081013590604081013590606081013590608001356001600160a01b0316610ac6565b60408051918252519081900360200190f35b61024f610bb1565b6000610273610e74565b6001600160a01b038a166000908152602088905260409020600c0154600160d01b900460ff1615806102c957506001600160a01b03808a16600090815260208881526040808320938e168352929052205460ff16155b156102d85760019150506104be565b6103198988888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a92506104ca915050565b5060808601525060608401526040830181905260208301919091526103425760019150506104be565b61040e8760008c6001600160a01b03166001600160a01b0316815260200190815260200160002060080154600a0a6104028a866001600160a01b031663b3596f078f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50519063ffffffff610bbd16565b9063ffffffff610c1f16565b60c0820181905260208201516104299163ffffffff610c6116565b60e0820181905261043e5760009150506104be565b6104898160e001516104026104648460a001518560c00151610bbd90919063ffffffff16565b6080850151602086015161047d9163ffffffff610bbd16565b9063ffffffff610c6116565b610100820181905260e0820151604083015160608401516000936104af93929190610ca3565b670de0b6b3a764000010925050505b98975050505050505050565b6000806000806000806104db610ed0565b60006101008201525b885181610100015110156109fe57888161010001518151811061050357fe5b60200260200101518161020001906001600160a01b031690816001600160a01b03168152505060008b60008361020001516001600160a01b03166001600160a01b0316815260200190815260200160002090508060090160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156105c357600080fd5b505afa1580156105d7573d6000803e3d6000fd5b505050506040513d60208110156105ed57600080fd5b810190808051906020019092919050505082604001818152505080600a0160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561067457600080fd5b505afa158015610688573d6000803e3d6000fd5b505050506040513d602081101561069e57600080fd5b810190808051906020019092919050505082606001818152505061076581600b0160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d602081101561075257600080fd5b505160608401519063ffffffff610cf216565b6060830152604082015115801561077e57506060820151155b1561078957506109ed565b8060080154600a0a826020018181525050886001600160a01b031663b3596f078b846101000151815181106107ba57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561080857600080fd5b505afa15801561081c573d6000803e3d6000fd5b505050506040513d602081101561083257600080fd5b50518252604082015115610965576000610865836020015161040285604001518660000151610bbd90919063ffffffff16565b600c830154909150600160d01b900460ff1680156108dd57508b60008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008c856101000151815181106108b557fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff165b15610963576101408301516108f8908263ffffffff610cf216565b610140840152600582015461092a9061091890839063ffffffff610bbd16565b6101a08501519063ffffffff610cf216565b6101a0840152600682015461095c9061094a90839063ffffffff610bbd16565b6101c08501519063ffffffff610cf216565b6101c08401525b505b6060820151156109eb576109a7610995836020015161040285606001518660000151610bbd90919063ffffffff16565b6101608401519063ffffffff610cf216565b6101608301526020820151825160e08401516109e4926109d29290916104029163ffffffff610bbd16565b6101808401519063ffffffff610cf216565b6101808301525b505b6101008101805160010190526104e4565b600081610140015111610a12576000610a2d565b6101408101516101a0820151610a2d9163ffffffff610c1f16565b6101a0820152610140810151610a44576000610a5f565b6101408101516101c0820151610a5f9163ffffffff610c1f16565b6101c08201819052610140820151610160830151610180840151610a8293610ca3565b61012082018190526101408201516101608301516101808401516101a08501516101c090950151929a50909850965091945090925090509550955095509550955095565b600080610ade6064610402898763ffffffff610bbd16565b905085811015610af2576000915050610ba8565b610b12610b05878763ffffffff610cf216565b829063ffffffff610c6116565b60408051630e563a7d60e41b81523360048201526024810183905290519192506000916001600160a01b0386169163e563a7d0916044808301926020929190829003018186803b158015610b6557600080fd5b505afa158015610b79573d6000803e3d6000fd5b505050506040513d6020811015610b8f57600080fd5b50519050610ba3828263ffffffff610c6116565b925050505b95945050505050565b670de0b6b3a764000081565b600082610bcc57506000610c19565b82820282848281610bd957fe5b0414610c165760405162461bcd60e51b8152600401808060200182810382526021815260200180610f726021913960400191505060405180910390fd5b90505b92915050565b6000610c1683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d4c565b6000610c1683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dee565b600083610cb35750600019610cea565b610ce7610cc6858563ffffffff610cf216565b610cdb6064610402898763ffffffff610bbd16565b9063ffffffff610e4816565b90505b949350505050565b600082820183811015610c16576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183610dd85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d9d578181015183820152602001610d85565b50505050905090810190601f168015610dca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610de457fe5b0495945050505050565b60008184841115610e405760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d9d578181015183820152602001610d85565b505050900390565b600060028204610cea83610402610e6787670de0b6b3a7640000610bbd565b849063ffffffff610cf216565b604051806101600160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180610260016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b03168152602001600015158152602001600015158152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220edb5353247c15b20fd4c404a048c2311d00308da0b0367281ec230b7d558c1df64736f6c63430006080033"; + "0x610fc8610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634d9afd5e1461005b578063901d711414610114578063ab8bb39314610211578063c3525c2814610261575b600080fd5b610100600480360360e081101561007157600080fd5b6001600160a01b0382358116926020810135909116916040820135916060810135916080820135919081019060c0810160a08201356401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460208302840111640100000000831117156100ec57600080fd5b9193509150356001600160a01b0316610269565b604080519115158252519081900360200190f35b6101de600480360360a081101561012a57600080fd5b6001600160a01b03823516916020810135916040820135919081019060808101606082013564010000000081111561016157600080fd5b82018360208201111561017357600080fd5b8035906020019184602083028401116401000000008311171561019557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550505090356001600160a01b031691506104ca9050565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b61024f600480360360a081101561022757600080fd5b50803590602081013590604081013590606081013590608001356001600160a01b0316610ac6565b60408051918252519081900360200190f35b61024f610bb1565b6000610273610e74565b6001600160a01b038a166000908152602088905260409020600c0154600160d01b900460ff1615806102c957506001600160a01b03808a16600090815260208881526040808320938e168352929052205460ff16155b156102d85760019150506104be565b6103198988888888808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508a92506104ca915050565b5060808601525060608401526040830181905260208301919091526103425760019150506104be565b61040e8760008c6001600160a01b03166001600160a01b0316815260200190815260200160002060080154600a0a6104028a866001600160a01b031663b3596f078f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156103ca57600080fd5b505afa1580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50519063ffffffff610bbd16565b9063ffffffff610c1f16565b60c0820181905260208201516104299163ffffffff610c6116565b60e0820181905261043e5760009150506104be565b6104898160e001516104026104648460a001518560c00151610bbd90919063ffffffff16565b6080850151602086015161047d9163ffffffff610bbd16565b9063ffffffff610c6116565b610100820181905260e0820151604083015160608401516000936104af93929190610ca3565b670de0b6b3a764000010925050505b98975050505050505050565b6000806000806000806104db610ed0565b60006101008201525b885181610100015110156109fe57888161010001518151811061050357fe5b60200260200101518161020001906001600160a01b031690816001600160a01b03168152505060008b60008361020001516001600160a01b03166001600160a01b0316815260200190815260200160002090508060090160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156105c357600080fd5b505afa1580156105d7573d6000803e3d6000fd5b505050506040513d60208110156105ed57600080fd5b810190808051906020019092919050505082604001818152505080600a0160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561067457600080fd5b505afa158015610688573d6000803e3d6000fd5b505050506040513d602081101561069e57600080fd5b810190808051906020019092919050505082606001818152505061076581600b0160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561072857600080fd5b505afa15801561073c573d6000803e3d6000fd5b505050506040513d602081101561075257600080fd5b505160608401519063ffffffff610cf216565b6060830152604082015115801561077e57506060820151155b1561078957506109ed565b8060080154600a0a826020018181525050886001600160a01b031663b3596f078b846101000151815181106107ba57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561080857600080fd5b505afa15801561081c573d6000803e3d6000fd5b505050506040513d602081101561083257600080fd5b50518252604082015115610965576000610865836020015161040285604001518660000151610bbd90919063ffffffff16565b600c830154909150600160d01b900460ff1680156108dd57508b60008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008c856101000151815181106108b557fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff165b15610963576101408301516108f8908263ffffffff610cf216565b610140840152600582015461092a9061091890839063ffffffff610bbd16565b6101a08501519063ffffffff610cf216565b6101a0840152600682015461095c9061094a90839063ffffffff610bbd16565b6101c08501519063ffffffff610cf216565b6101c08401525b505b6060820151156109eb576109a7610995836020015161040285606001518660000151610bbd90919063ffffffff16565b6101608401519063ffffffff610cf216565b6101608301526020820151825160e08401516109e4926109d29290916104029163ffffffff610bbd16565b6101808401519063ffffffff610cf216565b6101808301525b505b6101008101805160010190526104e4565b600081610140015111610a12576000610a2d565b6101408101516101a0820151610a2d9163ffffffff610c1f16565b6101a0820152610140810151610a44576000610a5f565b6101408101516101c0820151610a5f9163ffffffff610c1f16565b6101c08201819052610140820151610160830151610180840151610a8293610ca3565b61012082018190526101408201516101608301516101808401516101a08501516101c090950151929a50909850965091945090925090509550955095509550955095565b600080610ade6064610402898763ffffffff610bbd16565b905085811015610af2576000915050610ba8565b610b12610b05878763ffffffff610cf216565b829063ffffffff610c6116565b60408051630e563a7d60e41b81523360048201526024810183905290519192506000916001600160a01b0386169163e563a7d0916044808301926020929190829003018186803b158015610b6557600080fd5b505afa158015610b79573d6000803e3d6000fd5b505050506040513d6020811015610b8f57600080fd5b50519050610ba3828263ffffffff610c6116565b925050505b95945050505050565b670de0b6b3a764000081565b600082610bcc57506000610c19565b82820282848281610bd957fe5b0414610c165760405162461bcd60e51b8152600401808060200182810382526021815260200180610f726021913960400191505060405180910390fd5b90505b92915050565b6000610c1683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610d4c565b6000610c1683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610dee565b600083610cb35750600019610cea565b610ce7610cc6858563ffffffff610cf216565b610cdb6064610402898763ffffffff610bbd16565b9063ffffffff610e4816565b90505b949350505050565b600082820183811015610c16576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008183610dd85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d9d578181015183820152602001610d85565b50505050905090810190601f168015610dca5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610de457fe5b0495945050505050565b60008184841115610e405760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610d9d578181015183820152602001610d85565b505050900390565b600060028204610cea83610402610e6787670de0b6b3a7640000610bbd565b849063ffffffff610cf216565b604051806101600160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180610260016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b03168152602001600015158152602001600015158152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220b71029549b16b43f04271ccdb037d43ca995607debabe1b3613ec3a5fbde8f2964736f6c63430006080033"; diff --git a/types/IKyberNetworkProxyInterface.d.ts b/types/IKyberNetworkProxyInterface.d.ts new file mode 100644 index 00000000..e149d2c1 --- /dev/null +++ b/types/IKyberNetworkProxyInterface.d.ts @@ -0,0 +1,186 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface IKyberNetworkProxyInterfaceInterface extends Interface { + functions: { + enabled: TypedFunctionDescription<{ encode([]: []): string }>; + + getExpectedRate: TypedFunctionDescription<{ + encode([src, dest, srcQty]: [string, string, BigNumberish]): string; + }>; + + getUserCapInTokenWei: TypedFunctionDescription<{ + encode([user, token]: [string, string]): string; + }>; + + getUserCapInWei: TypedFunctionDescription<{ + encode([user]: [string]): string; + }>; + + info: TypedFunctionDescription<{ encode([id]: [Arrayish]): string }>; + + maxGasPrice: TypedFunctionDescription<{ encode([]: []): string }>; + + tradeWithHint: TypedFunctionDescription<{ + encode([ + src, + srcAmount, + dest, + destAddress, + maxDestAmount, + minConversionRate, + walletId, + hint + ]: [ + string, + BigNumberish, + string, + string, + BigNumberish, + BigNumberish, + string, + Arrayish + ]): string; + }>; + }; + + events: {}; +} + +export class IKyberNetworkProxyInterface extends Contract { + connect( + signerOrProvider: Signer | Provider | string + ): IKyberNetworkProxyInterface; + attach(addressOrName: string): IKyberNetworkProxyInterface; + deployed(): Promise; + + on( + event: EventFilter | string, + listener: Listener + ): IKyberNetworkProxyInterface; + once( + event: EventFilter | string, + listener: Listener + ): IKyberNetworkProxyInterface; + addListener( + eventName: EventFilter | string, + listener: Listener + ): IKyberNetworkProxyInterface; + removeAllListeners( + eventName: EventFilter | string + ): IKyberNetworkProxyInterface; + removeListener( + eventName: any, + listener: Listener + ): IKyberNetworkProxyInterface; + + interface: IKyberNetworkProxyInterfaceInterface; + + functions: { + enabled(): Promise; + + getExpectedRate( + src: string, + dest: string, + srcQty: BigNumberish + ): Promise<{ + expectedRate: BigNumber; + slippageRate: BigNumber; + 0: BigNumber; + 1: BigNumber; + }>; + + getUserCapInTokenWei(user: string, token: string): Promise; + + getUserCapInWei(user: string): Promise; + + info(id: Arrayish): Promise; + + maxGasPrice(): Promise; + + tradeWithHint( + src: string, + srcAmount: BigNumberish, + dest: string, + destAddress: string, + maxDestAmount: BigNumberish, + minConversionRate: BigNumberish, + walletId: string, + hint: Arrayish, + overrides?: TransactionOverrides + ): Promise; + }; + + enabled(): Promise; + + getExpectedRate( + src: string, + dest: string, + srcQty: BigNumberish + ): Promise<{ + expectedRate: BigNumber; + slippageRate: BigNumber; + 0: BigNumber; + 1: BigNumber; + }>; + + getUserCapInTokenWei(user: string, token: string): Promise; + + getUserCapInWei(user: string): Promise; + + info(id: Arrayish): Promise; + + maxGasPrice(): Promise; + + tradeWithHint( + src: string, + srcAmount: BigNumberish, + dest: string, + destAddress: string, + maxDestAmount: BigNumberish, + minConversionRate: BigNumberish, + walletId: string, + hint: Arrayish, + overrides?: TransactionOverrides + ): Promise; + + filters: {}; + + estimate: { + enabled(): Promise; + + getExpectedRate( + src: string, + dest: string, + srcQty: BigNumberish + ): Promise; + + getUserCapInTokenWei(user: string, token: string): Promise; + + getUserCapInWei(user: string): Promise; + + info(id: Arrayish): Promise; + + maxGasPrice(): Promise; + + tradeWithHint( + src: string, + srcAmount: BigNumberish, + dest: string, + destAddress: string, + maxDestAmount: BigNumberish, + minConversionRate: BigNumberish, + walletId: string, + hint: Arrayish + ): Promise; + }; +} diff --git a/types/IKyberNetworkProxyInterfaceFactory.ts b/types/IKyberNetworkProxyInterfaceFactory.ts new file mode 100644 index 00000000..22d8d676 --- /dev/null +++ b/types/IKyberNetworkProxyInterfaceFactory.ts @@ -0,0 +1,199 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "ethers/providers"; + +import { IKyberNetworkProxyInterface } from "./IKyberNetworkProxyInterface"; + +export class IKyberNetworkProxyInterfaceFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IKyberNetworkProxyInterface { + return new Contract( + address, + _abi, + signerOrProvider + ) as IKyberNetworkProxyInterface; + } +} + +const _abi = [ + { + inputs: [], + name: "enabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "src", + type: "address" + }, + { + internalType: "contract IERC20", + name: "dest", + type: "address" + }, + { + internalType: "uint256", + name: "srcQty", + type: "uint256" + } + ], + name: "getExpectedRate", + outputs: [ + { + internalType: "uint256", + name: "expectedRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "slippageRate", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "user", + type: "address" + }, + { + internalType: "contract IERC20", + name: "token", + type: "address" + } + ], + name: "getUserCapInTokenWei", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "user", + type: "address" + } + ], + name: "getUserCapInWei", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "bytes32", + name: "id", + type: "bytes32" + } + ], + name: "info", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "maxGasPrice", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "src", + type: "address" + }, + { + internalType: "uint256", + name: "srcAmount", + type: "uint256" + }, + { + internalType: "contract IERC20", + name: "dest", + type: "address" + }, + { + internalType: "address", + name: "destAddress", + type: "address" + }, + { + internalType: "uint256", + name: "maxDestAmount", + type: "uint256" + }, + { + internalType: "uint256", + name: "minConversionRate", + type: "uint256" + }, + { + internalType: "address", + name: "walletId", + type: "address" + }, + { + internalType: "bytes", + name: "hint", + type: "bytes" + } + ], + name: "tradeWithHint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "payable", + type: "function" + } +]; diff --git a/types/IOneSplit.d.ts b/types/IOneSplit.d.ts new file mode 100644 index 00000000..093474e3 --- /dev/null +++ b/types/IOneSplit.d.ts @@ -0,0 +1,294 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface IOneSplitInterface extends Interface { + functions: { + FLAG_AAVE: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_BANCOR: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_BDAI: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_CHAI: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_COMPOUND: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_FULCRUM: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_IEARN: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_KYBER: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_KYBER_BANCOR_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_KYBER_OASIS_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_KYBER_UNISWAP_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_MULTI_PATH_ETH: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_OASIS: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_SMART_TOKEN: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_UNISWAP: TypedFunctionDescription<{ encode([]: []): string }>; + + getExpectedReturn: TypedFunctionDescription<{ + encode([fromToken, toToken, amount, parts, disableFlags]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + goodSwap: TypedFunctionDescription<{ + encode([fromToken, toToken, amount, minReturn, parts, disableFlags]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + swap: TypedFunctionDescription<{ + encode([ + fromToken, + toToken, + amount, + minReturn, + distribution, + disableFlags + ]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish[], + BigNumberish + ]): string; + }>; + }; + + events: {}; +} + +export class IOneSplit extends Contract { + connect(signerOrProvider: Signer | Provider | string): IOneSplit; + attach(addressOrName: string): IOneSplit; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): IOneSplit; + once(event: EventFilter | string, listener: Listener): IOneSplit; + addListener(eventName: EventFilter | string, listener: Listener): IOneSplit; + removeAllListeners(eventName: EventFilter | string): IOneSplit; + removeListener(eventName: any, listener: Listener): IOneSplit; + + interface: IOneSplitInterface; + + functions: { + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise<{ + returnAmount: BigNumber; + distribution: BigNumber[]; + 0: BigNumber; + 1: BigNumber[]; + }>; + + goodSwap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + swap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + distribution: BigNumberish[], + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise<{ + returnAmount: BigNumber; + distribution: BigNumber[]; + 0: BigNumber; + 1: BigNumber[]; + }>; + + goodSwap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + swap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + distribution: BigNumberish[], + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: {}; + + estimate: { + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise; + + goodSwap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise; + + swap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + distribution: BigNumberish[], + disableFlags: BigNumberish + ): Promise; + }; +} diff --git a/types/IOneSplitFactory.ts b/types/IOneSplitFactory.ts new file mode 100644 index 00000000..a8083faa --- /dev/null +++ b/types/IOneSplitFactory.ts @@ -0,0 +1,334 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "ethers/providers"; + +import { IOneSplit } from "./IOneSplit"; + +export class IOneSplitFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IOneSplit { + return new Contract(address, _abi, signerOrProvider) as IOneSplit; + } +} + +const _abi = [ + { + inputs: [], + name: "FLAG_AAVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_BANCOR", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_BDAI", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_CHAI", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_COMPOUND", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_FULCRUM", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_IEARN", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_BANCOR_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_OASIS_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_UNISWAP_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_MULTI_PATH_ETH", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_OASIS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_SMART_TOKEN", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_UNISWAP", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "parts", + type: "uint256" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "getExpectedReturn", + outputs: [ + { + internalType: "uint256", + name: "returnAmount", + type: "uint256" + }, + { + internalType: "uint256[]", + name: "distribution", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "minReturn", + type: "uint256" + }, + { + internalType: "uint256", + name: "parts", + type: "uint256" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "goodSwap", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "minReturn", + type: "uint256" + }, + { + internalType: "uint256[]", + name: "distribution", + type: "uint256[]" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "swap", + outputs: [], + stateMutability: "payable", + type: "function" + } +]; diff --git a/types/IOneSplitView.d.ts b/types/IOneSplitView.d.ts new file mode 100644 index 00000000..5c76003d --- /dev/null +++ b/types/IOneSplitView.d.ts @@ -0,0 +1,210 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface IOneSplitViewInterface extends Interface { + functions: { + FLAG_AAVE: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_BANCOR: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_BDAI: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_CHAI: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_COMPOUND: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_FULCRUM: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_IEARN: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_KYBER: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_KYBER_BANCOR_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_KYBER_OASIS_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_KYBER_UNISWAP_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_MULTI_PATH_ETH: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_OASIS: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_SMART_TOKEN: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_UNISWAP: TypedFunctionDescription<{ encode([]: []): string }>; + + getExpectedReturn: TypedFunctionDescription<{ + encode([fromToken, toToken, amount, parts, disableFlags]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + }; + + events: {}; +} + +export class IOneSplitView extends Contract { + connect(signerOrProvider: Signer | Provider | string): IOneSplitView; + attach(addressOrName: string): IOneSplitView; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): IOneSplitView; + once(event: EventFilter | string, listener: Listener): IOneSplitView; + addListener( + eventName: EventFilter | string, + listener: Listener + ): IOneSplitView; + removeAllListeners(eventName: EventFilter | string): IOneSplitView; + removeListener(eventName: any, listener: Listener): IOneSplitView; + + interface: IOneSplitViewInterface; + + functions: { + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise<{ + returnAmount: BigNumber; + distribution: BigNumber[]; + 0: BigNumber; + 1: BigNumber[]; + }>; + }; + + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise<{ + returnAmount: BigNumber; + distribution: BigNumber[]; + 0: BigNumber; + 1: BigNumber[]; + }>; + + filters: {}; + + estimate: { + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise; + }; +} diff --git a/types/IOneSplitViewFactory.ts b/types/IOneSplitViewFactory.ts new file mode 100644 index 00000000..addc32ce --- /dev/null +++ b/types/IOneSplitViewFactory.ts @@ -0,0 +1,258 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, Signer } from "ethers"; +import { Provider } from "ethers/providers"; + +import { IOneSplitView } from "./IOneSplitView"; + +export class IOneSplitViewFactory { + static connect( + address: string, + signerOrProvider: Signer | Provider + ): IOneSplitView { + return new Contract(address, _abi, signerOrProvider) as IOneSplitView; + } +} + +const _abi = [ + { + inputs: [], + name: "FLAG_AAVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_BANCOR", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_BDAI", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_CHAI", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_COMPOUND", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_FULCRUM", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_IEARN", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_BANCOR_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_OASIS_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_UNISWAP_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_MULTI_PATH_ETH", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_OASIS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_SMART_TOKEN", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_UNISWAP", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "parts", + type: "uint256" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "getExpectedReturn", + outputs: [ + { + internalType: "uint256", + name: "returnAmount", + type: "uint256" + }, + { + internalType: "uint256[]", + name: "distribution", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + } +]; diff --git a/types/LendingPoolConfiguratorFactory.ts b/types/LendingPoolConfiguratorFactory.ts index 827bc370..b857c86c 100644 --- a/types/LendingPoolConfiguratorFactory.ts +++ b/types/LendingPoolConfiguratorFactory.ts @@ -670,4 +670,4 @@ const _abi = [ ]; const _bytecode = - "0x60806040526000805534801561001457600080fd5b50615192806100246000396000f3fe60806040523480156200001157600080fd5b5060043610620001485760003560e01c8063a5bc826c11620000bd578063d466016f116200007b578063d466016f1462000530578063e8ae2f5b146200055f578063eede87c11462000588578063ef1f937314620005b9578063f53a251514620005e25762000148565b8063a5bc826c1462000451578063a8dc0f45146200048c578063b75d6f3414620004b5578063bf34418314620004de578063c4d66de814620005075762000148565b806366bbd928116200010b57806366bbd928146200038857806370fb84f414620003b75780637aca76eb14620003e65780637af635a6146200040f57806380e17d87146200042b5762000148565b80631133c0f7146200014d5780631d2118f914620002b35780633443a14b14620002e45780633e72a45414620003135780635dd9a189146200033c575b600080fd5b620002b1600480360360e08110156200016557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200019057600080fd5b820183602082011115620001a357600080fd5b803590602001918460018302840111600160201b83111715620001c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156200021857600080fd5b8201836020820111156200022b57600080fd5b803590602001918460018302840111600160201b831117156200024d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550506001600160a01b03833581169450602084013581169360ff6040820135169350606001351690506200060b565b005b620002b160048036036040811015620002cb57600080fd5b506001600160a01b038135811691602001351662000965565b620002b160048036036040811015620002fc57600080fd5b506001600160a01b03813516906020013562000b4d565b620002b1600480360360208110156200032b57600080fd5b50356001600160a01b031662000d33565b620002b1600480360360a08110156200035457600080fd5b506001600160a01b03813581169160ff60208201351691604082013581169160608101358216916080909101351662000ff3565b620002b160048036036040811015620003a057600080fd5b506001600160a01b03813516906020013562001426565b620002b160048036036040811015620003cf57600080fd5b506001600160a01b0381351690602001356200160c565b620002b160048036036020811015620003fe57600080fd5b50356001600160a01b0316620017f2565b62000419620019c7565b60408051918252519081900360200190f35b62000435620019cc565b604080516001600160a01b039092168252519081900360200190f35b620002b1600480360360808110156200046957600080fd5b506001600160a01b038135169060208101359060408101359060600135620019db565b620002b160048036036020811015620004a457600080fd5b50356001600160a01b031662001bd9565b620002b160048036036020811015620004cd57600080fd5b50356001600160a01b031662001db3565b620002b160048036036020811015620004f657600080fd5b50356001600160a01b031662001f88565b620002b1600480360360208110156200051f57600080fd5b50356001600160a01b03166200215d565b620002b1600480360360408110156200054857600080fd5b506001600160a01b0381351690602001356200221f565b620002b1600480360360208110156200057757600080fd5b50356001600160a01b031662002405565b620002b160048036036040811015620005a057600080fd5b506001600160a01b0381351690602001351515620025d3565b620002b160048036036020811015620005d157600080fd5b50356001600160a01b0316620027c2565b620002b160048036036020811015620005fa57600080fd5b50356001600160a01b031662002995565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200065057600080fd5b505afa15801562000665573d6000803e3d6000fd5b505050506040513d60208110156200067c57600080fd5b50516001600160a01b031614620006c55760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b6034546040516000916001600160a01b031690899085908a908a90620006eb9062002b73565b6001600160a01b038087168252851660208083019190915260ff8516604083015260a06060830181815285519184019190915284519091608084019160c085019187019080838360005b838110156200074f57818101518382015260200162000735565b50505050905090810190601f1680156200077d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015620007b257818101518382015260200162000798565b50505050905090810190601f168015620007e05780820380516001836020036101000a031916815260200191505b50975050505050505050604051809103906000f08015801562000807573d6000803e3d6000fd5b509050603460009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200085957600080fd5b505afa1580156200086e573d6000803e3d6000fd5b505050506040513d60208110156200088557600080fd5b5051604080516309eab60f60e01b81526001600160a01b038b8116600483015284811660248301528881166044830152878116606483015260ff8716608483015285811660a4830152915191909216916309eab60f9160c480830192600092919082900301818387803b158015620008fc57600080fd5b505af115801562000911573d6000803e3d6000fd5b5050604080516001600160a01b03868116825291518286169450918c1692507f1d9fcd0dc935b4778d5af97f55c4d7b2553257382f1ef25c412114c8eeebd88e919081900360200190a35050505050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b158015620009aa57600080fd5b505afa158015620009bf573d6000803e3d6000fd5b505050506040513d6020811015620009d657600080fd5b50516001600160a01b03161462000a1f5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562000a6557600080fd5b505afa15801562000a7a573d6000803e3d6000fd5b505050506040513d602081101562000a9157600080fd5b505160408051631d2118f960e01b81526001600160a01b0386811660048301528581166024830152915192935090831691631d2118f99160448082019260009290919082900301818387803b15801562000aea57600080fd5b505af115801562000aff573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015281517f5644b64ebb0ce18c4032248ca52f58355469092ff072866c3dcd8640e817d6a59450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562000b9257600080fd5b505afa15801562000ba7573d6000803e3d6000fd5b505050506040513d602081101562000bbe57600080fd5b50516001600160a01b03161462000c075760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562000c4d57600080fd5b505afa15801562000c62573d6000803e3d6000fd5b505050506040513d602081101562000c7957600080fd5b505160408051633443a14b60e01b81526001600160a01b03868116600483015260248201869052915192935090831691633443a14b9160448082019260009290919082900301818387803b15801562000cd157600080fd5b505af115801562000ce6573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517f437dd3b61b7c7eee7fc70515c8846482dfca92e2e1e02af5d638c5d4878d67149450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562000d7857600080fd5b505afa15801562000d8d573d6000803e3d6000fd5b505050506040513d602081101562000da457600080fd5b50516001600160a01b03161462000ded5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562000e3357600080fd5b505afa15801562000e48573d6000803e3d6000fd5b505050506040513d602081101562000e5f57600080fd5b5051604080516335ea6a7560e01b81526001600160a01b038581166004830152915192935060009283928392908616916335ea6a759160248082019261014092909190829003018186803b15801562000eb757600080fd5b505afa15801562000ecc573d6000803e3d6000fd5b505050506040513d61014081101562000ee457600080fd5b508051602082015160409092015190945090925090508215801562000f07575081155b801562000f12575080155b62000f4f5760405162461bcd60e51b815260040180806020018281038252602a81526020018062005133602a913960400191505060405180910390fd5b6040805163b736aaeb60e01b81526001600160a01b03878116600483015260006024830181905292519087169263b736aaeb926044808201939182900301818387803b15801562000f9f57600080fd5b505af115801562000fb4573d6000803e3d6000fd5b50506040516001600160a01b03881692507f6f60cf8bd0f218cabe1ea3150bd07b0b758c35c4cfdf7138017a283e65564d5e9150600090a25050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200103857600080fd5b505afa1580156200104d573d6000803e3d6000fd5b505050506040513d60208110156200106457600080fd5b50516001600160a01b031614620010ad5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b6060856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015620010e957600080fd5b505afa158015620010fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200112857600080fd5b8101908080516040519392919084600160201b8211156200114857600080fd5b9083019060208201858111156200115e57600080fd5b8251600160201b8111828201881017156200117857600080fd5b82525081516020918201929091019080838360005b83811015620011a75781810151838201526020016200118d565b50505050905090810190601f168015620011d55780820380516001836020036101000a031916815260200191505b50604052505050604051602001808075020b0bb329024b73a32b932b9ba103132b0b934b733960551b81525060160182805190602001908083835b60208310620012315780518252601f19909201916020918201910162001210565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405290506060866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620012a357600080fd5b505afa158015620012b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015620012e257600080fd5b8101908080516040519392919084600160201b8211156200130257600080fd5b9083019060208201858111156200131857600080fd5b8251600160201b8111828201881017156200133257600080fd5b82525081516020918201929091019080838360005b838110156200136157818101518382015260200162001347565b50505050905090810190601f1680156200138f5780820380516001836020036101000a031916815260200191505b506040525050506040516020018080606160f81b81525060010182805190602001908083835b60208310620013d65780518252601f199092019160209182019101620013b5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405290506200141d87838387878b8b6200060b565b50505050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200146b57600080fd5b505afa15801562001480573d6000803e3d6000fd5b505050506040513d60208110156200149757600080fd5b50516001600160a01b031614620014e05760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200152657600080fd5b505afa1580156200153b573d6000803e3d6000fd5b505050506040513d60208110156200155257600080fd5b505160408051630cd77b2560e31b81526001600160a01b038681166004830152602482018690529151929350908316916366bbd9289160448082019260009290919082900301818387803b158015620015aa57600080fd5b505af1158015620015bf573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517f2e73b7f1df792712003e6859f940c1e8711c3f1329474771fee71d2ec11631299450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200165157600080fd5b505afa15801562001666573d6000803e3d6000fd5b505050506040513d60208110156200167d57600080fd5b50516001600160a01b031614620016c65760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200170c57600080fd5b505afa15801562001721573d6000803e3d6000fd5b505050506040513d60208110156200173857600080fd5b505160408051631c3ee13d60e21b81526001600160a01b038681166004830152602482018690529151929350908316916370fb84f49160448082019260009290919082900301818387803b1580156200179057600080fd5b505af1158015620017a5573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517fe3ba662f7011e701056a43e8cf832242322eeff01453e7a72d01ec2af36d9aec9450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200183757600080fd5b505afa1580156200184c573d6000803e3d6000fd5b505050506040513d60208110156200186357600080fd5b50516001600160a01b031614620018ac5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b158015620018f257600080fd5b505afa15801562001907573d6000803e3d6000fd5b505050506040513d60208110156200191e57600080fd5b5051604080516325ba55f160e21b81526001600160a01b038581166004830152600160248301529151929350908316916396e957c49160448082019260009290919082900301818387803b1580156200197657600080fd5b505af11580156200198b573d6000803e3d6000fd5b50506040516001600160a01b03851692507fda5cdb66c77023db6abe5226a4d4a40c3b8e768012f4ff4e446f62f60127fc569150600090a25050565b600381565b6034546001600160a01b031681565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001a2057600080fd5b505afa15801562001a35573d6000803e3d6000fd5b505050506040513d602081101562001a4c57600080fd5b50516001600160a01b03161462001a955760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562001adb57600080fd5b505afa15801562001af0573d6000803e3d6000fd5b505050506040513d602081101562001b0757600080fd5b50516040805163296f209b60e21b81526001600160a01b03888116600483015260248201889052604482018790526064820186905291519293509083169163a5bc826c9160848082019260009290919082900301818387803b15801562001b6d57600080fd5b505af115801562001b82573d6000803e3d6000fd5b5050604080518781526020810187905280820186905290516001600160a01b03891693507fdfe62f53e7707d64f99bca15d2bdf3facc4074bc047e7dec2ea130300e99274492509081900360600190a25050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001c1e57600080fd5b505afa15801562001c33573d6000803e3d6000fd5b505050506040513d602081101562001c4a57600080fd5b50516001600160a01b03161462001c935760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562001cd957600080fd5b505afa15801562001cee573d6000803e3d6000fd5b505050506040513d602081101562001d0557600080fd5b505160408051636ee365f960e01b81526001600160a01b038581166004830152600060248301819052604483018190529251939450841692636ee365f99260648084019391929182900301818387803b15801562001d6257600080fd5b505af115801562001d77573d6000803e3d6000fd5b50506040516001600160a01b03851692507fe9a7e5fd4fc8ea18e602350324bf48e8f05d12434af0ce0be05743e6a5fdcb9e9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001df857600080fd5b505afa15801562001e0d573d6000803e3d6000fd5b505050506040513d602081101562001e2457600080fd5b50516001600160a01b03161462001e6d5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562001eb357600080fd5b505afa15801562001ec8573d6000803e3d6000fd5b505050506040513d602081101562001edf57600080fd5b50516040805163b736aaeb60e01b81526001600160a01b0385811660048301526001602483015291519293509083169163b736aaeb9160448082019260009290919082900301818387803b15801562001f3757600080fd5b505af115801562001f4c573d6000803e3d6000fd5b50506040516001600160a01b03851692507f35b80cd8ea3440e9a8454f116fa658b858da1b64c86c48451f4559cefcdfb56c9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001fcd57600080fd5b505afa15801562001fe2573d6000803e3d6000fd5b505050506040513d602081101562001ff957600080fd5b50516001600160a01b031614620020425760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200208857600080fd5b505afa1580156200209d573d6000803e3d6000fd5b505050506040513d6020811015620020b457600080fd5b5051604080516339d9797960e11b81526001600160a01b038581166004830152600160248301529151929350908316916373b2f2f29160448082019260009290919082900301818387803b1580156200210c57600080fd5b505af115801562002121573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8dee2b2f3e98319ae6347eda521788f73f4086c9be9a594942b370b137fb8cb19150600090a25050565b60006200216962002b68565b60015490915060ff16806200218357506200218362002b6d565b8062002190575060005481115b620021cd5760405162461bcd60e51b815260040180806020018281038252602e81526020018062005105602e913960400191505060405180910390fd5b60015460ff16158015620021ed576001805460ff19168117905560008290555b603480546001600160a01b0319166001600160a01b03851617905580156200221a576001805460ff191690555b505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200226457600080fd5b505afa15801562002279573d6000803e3d6000fd5b505050506040513d60208110156200229057600080fd5b50516001600160a01b031614620022d95760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200231f57600080fd5b505afa15801562002334573d6000803e3d6000fd5b505050506040513d60208110156200234b57600080fd5b50516040805163d466016f60e01b81526001600160a01b0386811660048301526024820186905291519293509083169163d466016f9160448082019260009290919082900301818387803b158015620023a357600080fd5b505af1158015620023b8573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517fda47540c7f7fd5a68c3285f3bb708f322424f948f41df6f51622fa24b39686649450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200244a57600080fd5b505afa1580156200245f573d6000803e3d6000fd5b505050506040513d60208110156200247657600080fd5b50516001600160a01b031614620024bf5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200250557600080fd5b505afa1580156200251a573d6000803e3d6000fd5b505050506040513d60208110156200253157600080fd5b50516040805163e8ae2f5b60e01b81526001600160a01b03858116600483015291519293509083169163e8ae2f5b9160248082019260009290919082900301818387803b1580156200258257600080fd5b505af115801562002597573d6000803e3d6000fd5b50506040516001600160a01b03851692507f9cc75e4cafc9a556a369bc53468649075680eb554d225d5918f199453824796d9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200261857600080fd5b505afa1580156200262d573d6000803e3d6000fd5b505050506040513d60208110156200264457600080fd5b50516001600160a01b0316146200268d5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b158015620026d357600080fd5b505afa158015620026e8573d6000803e3d6000fd5b505050506040513d6020811015620026ff57600080fd5b505160408051636ee365f960e01b81526001600160a01b038681166004830152851515602483015260016044830152915192935090831691636ee365f99160648082019260009290919082900301818387803b1580156200275f57600080fd5b505af115801562002774573d6000803e3d6000fd5b5050604080516001600160a01b0387168152851515602082015281517fab2f7f9e5ca2772fafa94f355c1842a80ae6b9e41f83083098d81f67d7a0b5089450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200280757600080fd5b505afa1580156200281c573d6000803e3d6000fd5b505050506040513d60208110156200283357600080fd5b50516001600160a01b0316146200287c5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b158015620028c257600080fd5b505afa158015620028d7573d6000803e3d6000fd5b505050506040513d6020811015620028ee57600080fd5b5051604080516325ba55f160e21b81526001600160a01b03858116600483015260006024830181905292519394508416926396e957c49260448084019391929182900301818387803b1580156200294457600080fd5b505af115801562002959573d6000803e3d6000fd5b50506040516001600160a01b03851692507f995959c2ceab6ce20e8cd89c904e449fd3e21918a0f420c9ec9340595585526b9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b158015620029da57600080fd5b505afa158015620029ef573d6000803e3d6000fd5b505050506040513d602081101562002a0657600080fd5b50516001600160a01b03161462002a4f5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562002a9557600080fd5b505afa15801562002aaa573d6000803e3d6000fd5b505050506040513d602081101562002ac157600080fd5b5051604080516339d9797960e11b81526001600160a01b03858116600483015260006024830181905292519394508416926373b2f2f29260448084019391929182900301818387803b15801562002b1757600080fd5b505af115801562002b2c573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8bbf35441ac2c607ddecadd3d8ee58636d32f217fad201fb2655581502dd84e39150600090a25050565b600390565b303b1590565b61255a8062002b828339019056fe60806040523480156200001157600080fd5b506040516200255a3803806200255a833981810160405260a08110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82516401000000008111828201881017156200009c57600080fd5b82525081516020918201929091019080838360005b83811015620000cb578181015183820152602001620000b1565b50505050905090810190601f168015620000f95780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011d57600080fd5b9083019060208201858111156200013357600080fd5b82516401000000008111828201881017156200014e57600080fd5b82525081516020918201929091019080838360005b838110156200017d57818101518382015260200162000163565b50505050905090810190601f168015620001ab5780820380516001836020036101000a031916815260200191505b50604052505082518391508290620001cb906003906020850190620002eb565b508051620001e1906004906020840190620002eb565b50506005805460ff191660121790555062000205836001600160e01b03620002d516565b600a80546001600160a01b0319166001600160a01b03878116919091179182905560408051630261bf8b60e01b815290519290911691630261bf8b91600480820192602092909190829003018186803b1580156200026257600080fd5b505afa15801562000277573d6000803e3d6000fd5b505050506040513d60208110156200028e57600080fd5b5051600b80546001600160a01b0319166001600160a01b0392831617905560058054610100600160a81b031916610100969092169590950217909355506200039092505050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b6200038d91905b808211156200036c576000815560010162000377565b90565b6121ba80620003a06000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635eae177c116100de578063a9059cbb11610097578063db006a7511610071578063db006a75146104f3578063dd62ed3e14610510578063ee9907a41461053e578063f866c3191461056457610173565b8063a9059cbb14610499578063c634dfaa146104c5578063d0fc81d2146104eb57610173565b80635eae177c146103df57806370a082311461040b57806389d1a0fc1461043157806394362e8b1461043957806395d89b4114610465578063a457c2d71461046d57610173565b806323b872dd1161013057806323b872dd146102c3578063313ce567146102f9578063325a9b131461031757806339509351146103455780633edb7cb814610371578063445e80101461039d57610173565b806306fdde0314610178578063095ea7b3146101f55780630e49072d1461023557806312c87c2d1461025d57806318160ddd146102835780631d51e7cf1461029d575b600080fd5b61018061059a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610631565b604080519115158252519081900360200190f35b61025b6004803603602081101561024b57600080fd5b50356001600160a01b031661064f565b005b61025b6004803603602081101561027357600080fd5b50356001600160a01b031661065c565b61028b6106fb565b60408051918252519081900360200190f35b61028b600480360360208110156102b357600080fd5b50356001600160a01b03166107bd565b610221600480360360608110156102d957600080fd5b506001600160a01b038135811691602081013590911690604001356107dc565b610301610869565b6040805160ff9092168252519081900360200190f35b61025b6004803603604081101561032d57600080fd5b506001600160a01b0381358116916020013516610872565b6102216004803603604081101561035b57600080fd5b506001600160a01b0381351690602001356108d8565b61025b6004803603604081101561038757600080fd5b506001600160a01b03813516906020013561092c565b6103c3600480360360208110156103b357600080fd5b50356001600160a01b0316610a21565b604080516001600160a01b039092168252519081900360200190f35b610221600480360360408110156103f557600080fd5b506001600160a01b038135169060200135610a3f565b61028b6004803603602081101561042157600080fd5b50356001600160a01b0316610ada565b6103c3610b8d565b61025b6004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610ba1565b610180610c76565b6102216004803603604081101561048357600080fd5b506001600160a01b038135169060200135610cd7565b610221600480360360408110156104af57600080fd5b506001600160a01b038135169060200135610d45565b61028b600480360360208110156104db57600080fd5b50356001600160a01b0316610d59565b61028b610d64565b61025b6004803603602081101561050957600080fd5b5035610d6a565b61028b6004803603604081101561052657600080fd5b506001600160a01b0381358116916020013516610fa4565b61028b6004803603602081101561055457600080fd5b50356001600160a01b0316610fcf565b61025b6004803603606081101561057a57600080fd5b506001600160a01b03813581169160208101359091169060400135610fea565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b820191906000526020600020905b81548152906001019060200180831161060957829003601f168201915b505050505090505b90565b600061064561063e611043565b8484611047565b5060015b92915050565b6106593382611133565b50565b6001600160a01b0381163314156106a45760405162461bcd60e51b8152600401808060200182810382526025815260200180611f806025913960400191505060405180910390fd5b3360008181526009602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519092917fc2d6a42a9d5273283f73009a07aacfb043f2f91173a8d9d33b504afe898db08b91a350565b600080610706611322565b90508061071757600091505061062e565b600b546005546040805163d15e005360e01b81526001600160a01b036101009093048316600482015290516107b7936107b293169163d15e0053916024808301926020929190829003018186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d602081101561079b57600080fd5b50516107a684611328565b9063ffffffff61133e16565b611389565b91505090565b6001600160a01b0381166000908152600860205260409020545b919050565b60006107e98484846113a2565b61085f846107f5611043565b61085a85604051806060016040528060288152602001611fc6602891396001600160a01b038a16600090815260016020526040812090610833611043565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61141116565b611047565b5060019392505050565b60055460ff1690565b6001600160a01b038281166000908152600960205260409020541633146108ca5760405162461bcd60e51b815260040180806020018281038252603a81526020018061214b603a913960400191505060405180910390fd5b6108d48282611133565b5050565b60006106456108e5611043565b8461085a85600160006108f6611043565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6114a816565b600b546001600160a01b031633146109755760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080600061098385611502565b935093509350506109958583866115f3565b61099f858561172a565b60006109b1848663ffffffff61183216565b6109c1576109be86611874565b90505b856001600160a01b03167f90e5d3d68ec162d9c7de393037a3ede04dd44f68e051bf2ace4a73c299dbc4db8685846109f957856109fc565b60005b60408051938452602084019290925282820152519081900360600190a2505050505050565b6001600160a01b039081166000908152600760205260409020541690565b600b54600554604080516376e9d61560e01b81526101009092046001600160a01b039081166004840152858116602484015260448301859052905160009391909116916376e9d615916064808301926020929190829003018186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d6020811015610ad157600080fd5b50519392505050565b600080610ae683611926565b6001600160a01b03841660009081526008602052604090205490915081158015610b0e575080155b15610b1e576000925050506107d7565b6001600160a01b0384811660009081526007602052604090205416610b6f57610b6681610b5a86610b55868463ffffffff6114a816565b611941565b9063ffffffff61183216565b925050506107d7565b610b66610b8082610b5a8785611941565b839063ffffffff6114a816565b60055461010090046001600160a01b031681565b600b546001600160a01b03163314610bea5760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080610bf684611502565b935093505050610c1a84610c1385856114a890919063ffffffff16565b60006115f3565b610c2484846119f6565b604080518481526020810184905280820183905290516001600160a01b038616917fbe7799898ca2d813ff902b487c1b434ab45b47edd8f38b77ad5e99aae8341b7a919081900360600190a250505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b6000610645610ce4611043565b8461085a856040518060600160405280602581526020016121266025913960016000610d0e611043565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61141116565b6000610645610d52611043565b84846113a2565b600061064982611926565b60001981565b60008111610dbf576040805162461bcd60e51b815260206004820181905260248201527f416d6f756e7420746f2072656465656d206e6565647320746f206265203e2030604482015290519081900360640190fd5b6000806000610dcd33611502565b91955093509150849050600019811415610de45750825b83811115610e235760405162461bcd60e51b8152600401808060200182810382526032815260200180611f066032913960400191505060405180910390fd5b610e2d3382610a3f565b610e7e576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b610e893384836115f3565b610e93338261172a565b6000610ea5858363ffffffff61183216565b610eb557610eb233611874565b90505b600b546005546001600160a01b0391821691639895e3d8916101009004163385610ee58a8263ffffffff61183216565b6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050336001600160a01b03167fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a76468386846109f957866109fc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031633146110335760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b61103e838383611af2565b505050565b3390565b6001600160a01b03831661108c5760405162461bcd60e51b81526004018080602001828103825260248152602001806120d06024913960400191505060405180910390fd5b6001600160a01b0382166110d15760405162461bcd60e51b8152600401808060200182810382526022815260200180611f386022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0380831660009081526007602052604090205481169082168114156111905760405162461bcd60e51b815260040180806020018281038252602a815260200180611fee602a913960400191505060405180910390fd5b60008060008061119f87611502565b9350935093509350600083116111e65760405162461bcd60e51b81526004018080602001828103825260428152602001806120186042913960600191505060405180910390fd5b6001600160a01b0385161561120157611201876000866115f3565b866001600160a01b0316866001600160a01b0316141561128d576001600160a01b038716600081815260076020908152604080832080546001600160a01b03191690558051878152918201869052818101859052519192917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050506108d4565b6001600160a01b03878116600090815260076020526040812080546001600160a01b031916928916929092179091556112c990889085906115f3565b604080518481526020810184905280820183905290516001600160a01b0380891692908a16917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050505050565b60025490565b600061064982633b9aca0063ffffffff611c2116565b60006113826b033b2e3c9fd0803ce8000000611376611363868663ffffffff611c2116565b6b019d971e4fe8401e74000000906114a8565b9063ffffffff611c7a16565b9392505050565b6000631dcd6500611382633b9aca0061137683866114a8565b82816113ae8282610a3f565b6113ff576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b61140a858585611af2565b5050505050565b600081848411156114a05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561146557818101518382015260200161144d565b50505050905090810190601f1680156114925780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611382576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600061151386611926565b9050600061152482610b5a89610ada565b905061153087826119f6565b600b546005546040805163d15e005360e01b81526101009092046001600160a01b0390811660048401529051600093919091169163d15e0053916024808301926020929190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b50516001600160a01b03891660009081526006602052604090208190559050826115e3818463ffffffff6114a816565b9099909850919650945092505050565b6001600160a01b038084166000908152600760205260409020541680611619575061103e565b60008061162583611502565b6001600160a01b038716600090815260086020526040902054919550935061165b9250869150610b5a908863ffffffff6114a816565b6001600160a01b038085166000908152600860209081526040808320949094556007905291909120541680156116ce576001600160a01b0381166000908152600860205260409020546116b4908463ffffffff6114a816565b6001600160a01b0382166000908152600860205260409020555b60408051848152602081018490528082018890526060810187905290516001600160a01b038616917f70ff8cf632603e2bfd1afb7e4061acce53d95356b1be9726b99fa22ba733b01f919081900360800190a250505050505050565b6001600160a01b03821661176f5760405162461bcd60e51b815260040180806020018281038252602181526020018061208a6021913960400191505060405180910390fd5b61177b8260008361103e565b6117be81604051806060016040528060228152602001611ee4602291396001600160a01b038516600090815260208190526040902054919063ffffffff61141116565b6001600160a01b0383166000908152602081905260409020556002546117ea908263ffffffff61183216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061138283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611411565b6001600160a01b038116600081815260076020908152604080832080546001600160a01b03191690558051838152918201839052818101839052519192839290917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a7348735594919081900360600190a36001600160a01b03821660009081526008602052604090205461191e57506001600160a01b03811660009081526006602052604081205560016107d7565b5060006107d7565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b03808316600090815260066020908152604080832054600b54600554835163d15e005360e01b81526101009091048716600482015292519495611382956107b29593946119ea94939092169263d15e00539260248082019391829003018186803b1580156119b557600080fd5b505afa1580156119c9573d6000803e3d6000fd5b505050506040513d60208110156119df57600080fd5b50516107a687611328565b9063ffffffff611cbc16565b6001600160a01b038216611a51576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a5d6000838361103e565b600254611a70908263ffffffff6114a816565b6002556001600160a01b038216600090815260208190526040902054611a9c908263ffffffff6114a816565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008111611b315760405162461bcd60e51b815260040180806020018281038252603081526020018061205a6030913960400191505060405180910390fd5b6000806000611b3f86611502565b93509350935050600080611b5287611502565b935093505050611b638885886115f3565b611b7787610c13848963ffffffff6114a816565b611b82888888611cf4565b6000611b94868863ffffffff61183216565b611ba457611ba189611874565b90505b876001600160a01b0316896001600160a01b03167f89a178eaa27e0cd201bd795ca8ff716ac0df9618494510ca79771cfc66ffcde889888786611be75789611bea565b60005b60408051948552602085019390935283830191909152606083015260808201879052519081900360a00190a3505050505050505050565b600082611c3057506000610649565b82820282848281611c3d57fe5b04146113825760405162461bcd60e51b8152600401808060200182810382526021815260200180611fa56021913960400191505060405180910390fd5b600061138283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e5b565b600060028204611cec83611376611cdf876b033b2e3c9fd0803ce8000000611c21565b849063ffffffff6114a816565b949350505050565b6001600160a01b038316611d395760405162461bcd60e51b81526004018080602001828103825260258152602001806120ab6025913960400191505060405180910390fd5b6001600160a01b038216611d7e5760405162461bcd60e51b8152600401808060200182810382526023815260200180611ec16023913960400191505060405180910390fd5b611d8983838361103e565b611dcc81604051806060016040528060268152602001611f5a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61141116565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611e01908263ffffffff6114a816565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008183611eaa5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561146557818101518382015260200161144d565b506000838581611eb657fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f742072656465656d206d6f7265207468616e2074686520617661696c61626c652062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f74206769766520616c6c6f77616e636520746f2068696d73656c66536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365496e74657265737420697320616c7265616479207265646972656374656420746f207468652075736572496e7465726573742073747265616d2063616e206f6e6c79206265207265646972656374656420696620746865726520697320612076616c69642062616c616e63655472616e7366657272656420616d6f756e74206e6565647320746f2062652067726561746572207468616e207a65726f45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f43616c6c6572206973206e6f7420616c6c6f77656420746f2072656469726563742074686520696e746572657374206f66207468652075736572a2646970667358221220201915aed978df22aae3b77bb7cc0edce33b16d5661a00939351bdbf8dd2683564736f6c634300060800335468652063616c6c6572206d7573742062652061206c656e64696e6720706f6f6c206d616e61676572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564546865206c6971756964697479206f66207468652072657365727665206e6565647320746f2062652030a26469706673582212204dab0280c87c05ad41a249b2d8d737735b23111fcd68d1ed2e5a1cf5dfdafd4664736f6c63430006080033"; + "0x60806040526000805534801561001457600080fd5b50615192806100246000396000f3fe60806040523480156200001157600080fd5b5060043610620001485760003560e01c8063a5bc826c11620000bd578063d466016f116200007b578063d466016f1462000530578063e8ae2f5b146200055f578063eede87c11462000588578063ef1f937314620005b9578063f53a251514620005e25762000148565b8063a5bc826c1462000451578063a8dc0f45146200048c578063b75d6f3414620004b5578063bf34418314620004de578063c4d66de814620005075762000148565b806366bbd928116200010b57806366bbd928146200038857806370fb84f414620003b75780637aca76eb14620003e65780637af635a6146200040f57806380e17d87146200042b5762000148565b80631133c0f7146200014d5780631d2118f914620002b35780633443a14b14620002e45780633e72a45414620003135780635dd9a189146200033c575b600080fd5b620002b1600480360360e08110156200016557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b8111156200019057600080fd5b820183602082011115620001a357600080fd5b803590602001918460018302840111600160201b83111715620001c557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b8111156200021857600080fd5b8201836020820111156200022b57600080fd5b803590602001918460018302840111600160201b831117156200024d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550506001600160a01b03833581169450602084013581169360ff6040820135169350606001351690506200060b565b005b620002b160048036036040811015620002cb57600080fd5b506001600160a01b038135811691602001351662000965565b620002b160048036036040811015620002fc57600080fd5b506001600160a01b03813516906020013562000b4d565b620002b1600480360360208110156200032b57600080fd5b50356001600160a01b031662000d33565b620002b1600480360360a08110156200035457600080fd5b506001600160a01b03813581169160ff60208201351691604082013581169160608101358216916080909101351662000ff3565b620002b160048036036040811015620003a057600080fd5b506001600160a01b03813516906020013562001426565b620002b160048036036040811015620003cf57600080fd5b506001600160a01b0381351690602001356200160c565b620002b160048036036020811015620003fe57600080fd5b50356001600160a01b0316620017f2565b62000419620019c7565b60408051918252519081900360200190f35b62000435620019cc565b604080516001600160a01b039092168252519081900360200190f35b620002b1600480360360808110156200046957600080fd5b506001600160a01b038135169060208101359060408101359060600135620019db565b620002b160048036036020811015620004a457600080fd5b50356001600160a01b031662001bd9565b620002b160048036036020811015620004cd57600080fd5b50356001600160a01b031662001db3565b620002b160048036036020811015620004f657600080fd5b50356001600160a01b031662001f88565b620002b1600480360360208110156200051f57600080fd5b50356001600160a01b03166200215d565b620002b1600480360360408110156200054857600080fd5b506001600160a01b0381351690602001356200221f565b620002b1600480360360208110156200057757600080fd5b50356001600160a01b031662002405565b620002b160048036036040811015620005a057600080fd5b506001600160a01b0381351690602001351515620025d3565b620002b160048036036020811015620005d157600080fd5b50356001600160a01b0316620027c2565b620002b160048036036020811015620005fa57600080fd5b50356001600160a01b031662002995565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200065057600080fd5b505afa15801562000665573d6000803e3d6000fd5b505050506040513d60208110156200067c57600080fd5b50516001600160a01b031614620006c55760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b6034546040516000916001600160a01b031690899085908a908a90620006eb9062002b73565b6001600160a01b038087168252851660208083019190915260ff8516604083015260a06060830181815285519184019190915284519091608084019160c085019187019080838360005b838110156200074f57818101518382015260200162000735565b50505050905090810190601f1680156200077d5780820380516001836020036101000a031916815260200191505b50838103825284518152845160209182019186019080838360005b83811015620007b257818101518382015260200162000798565b50505050905090810190601f168015620007e05780820380516001836020036101000a031916815260200191505b50975050505050505050604051809103906000f08015801562000807573d6000803e3d6000fd5b509050603460009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200085957600080fd5b505afa1580156200086e573d6000803e3d6000fd5b505050506040513d60208110156200088557600080fd5b5051604080516309eab60f60e01b81526001600160a01b038b8116600483015284811660248301528881166044830152878116606483015260ff8716608483015285811660a4830152915191909216916309eab60f9160c480830192600092919082900301818387803b158015620008fc57600080fd5b505af115801562000911573d6000803e3d6000fd5b5050604080516001600160a01b03868116825291518286169450918c1692507f1d9fcd0dc935b4778d5af97f55c4d7b2553257382f1ef25c412114c8eeebd88e919081900360200190a35050505050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b158015620009aa57600080fd5b505afa158015620009bf573d6000803e3d6000fd5b505050506040513d6020811015620009d657600080fd5b50516001600160a01b03161462000a1f5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562000a6557600080fd5b505afa15801562000a7a573d6000803e3d6000fd5b505050506040513d602081101562000a9157600080fd5b505160408051631d2118f960e01b81526001600160a01b0386811660048301528581166024830152915192935090831691631d2118f99160448082019260009290919082900301818387803b15801562000aea57600080fd5b505af115801562000aff573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015281517f5644b64ebb0ce18c4032248ca52f58355469092ff072866c3dcd8640e817d6a59450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562000b9257600080fd5b505afa15801562000ba7573d6000803e3d6000fd5b505050506040513d602081101562000bbe57600080fd5b50516001600160a01b03161462000c075760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562000c4d57600080fd5b505afa15801562000c62573d6000803e3d6000fd5b505050506040513d602081101562000c7957600080fd5b505160408051633443a14b60e01b81526001600160a01b03868116600483015260248201869052915192935090831691633443a14b9160448082019260009290919082900301818387803b15801562000cd157600080fd5b505af115801562000ce6573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517f437dd3b61b7c7eee7fc70515c8846482dfca92e2e1e02af5d638c5d4878d67149450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562000d7857600080fd5b505afa15801562000d8d573d6000803e3d6000fd5b505050506040513d602081101562000da457600080fd5b50516001600160a01b03161462000ded5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562000e3357600080fd5b505afa15801562000e48573d6000803e3d6000fd5b505050506040513d602081101562000e5f57600080fd5b5051604080516335ea6a7560e01b81526001600160a01b038581166004830152915192935060009283928392908616916335ea6a759160248082019261014092909190829003018186803b15801562000eb757600080fd5b505afa15801562000ecc573d6000803e3d6000fd5b505050506040513d61014081101562000ee457600080fd5b508051602082015160409092015190945090925090508215801562000f07575081155b801562000f12575080155b62000f4f5760405162461bcd60e51b815260040180806020018281038252602a81526020018062005133602a913960400191505060405180910390fd5b6040805163b736aaeb60e01b81526001600160a01b03878116600483015260006024830181905292519087169263b736aaeb926044808201939182900301818387803b15801562000f9f57600080fd5b505af115801562000fb4573d6000803e3d6000fd5b50506040516001600160a01b03881692507f6f60cf8bd0f218cabe1ea3150bd07b0b758c35c4cfdf7138017a283e65564d5e9150600090a25050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200103857600080fd5b505afa1580156200104d573d6000803e3d6000fd5b505050506040513d60208110156200106457600080fd5b50516001600160a01b031614620010ad5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b6060856001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b158015620010e957600080fd5b505afa158015620010fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156200112857600080fd5b8101908080516040519392919084600160201b8211156200114857600080fd5b9083019060208201858111156200115e57600080fd5b8251600160201b8111828201881017156200117857600080fd5b82525081516020918201929091019080838360005b83811015620011a75781810151838201526020016200118d565b50505050905090810190601f168015620011d55780820380516001836020036101000a031916815260200191505b50604052505050604051602001808075020b0bb329024b73a32b932b9ba103132b0b934b733960551b81525060160182805190602001908083835b60208310620012315780518252601f19909201916020918201910162001210565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405290506060866001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620012a357600080fd5b505afa158015620012b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015620012e257600080fd5b8101908080516040519392919084600160201b8211156200130257600080fd5b9083019060208201858111156200131857600080fd5b8251600160201b8111828201881017156200133257600080fd5b82525081516020918201929091019080838360005b838110156200136157818101518382015260200162001347565b50505050905090810190601f1680156200138f5780820380516001836020036101000a031916815260200191505b506040525050506040516020018080606160f81b81525060010182805190602001908083835b60208310620013d65780518252601f199092019160209182019101620013b5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405290506200141d87838387878b8b6200060b565b50505050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200146b57600080fd5b505afa15801562001480573d6000803e3d6000fd5b505050506040513d60208110156200149757600080fd5b50516001600160a01b031614620014e05760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200152657600080fd5b505afa1580156200153b573d6000803e3d6000fd5b505050506040513d60208110156200155257600080fd5b505160408051630cd77b2560e31b81526001600160a01b038681166004830152602482018690529151929350908316916366bbd9289160448082019260009290919082900301818387803b158015620015aa57600080fd5b505af1158015620015bf573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517f2e73b7f1df792712003e6859f940c1e8711c3f1329474771fee71d2ec11631299450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200165157600080fd5b505afa15801562001666573d6000803e3d6000fd5b505050506040513d60208110156200167d57600080fd5b50516001600160a01b031614620016c65760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200170c57600080fd5b505afa15801562001721573d6000803e3d6000fd5b505050506040513d60208110156200173857600080fd5b505160408051631c3ee13d60e21b81526001600160a01b038681166004830152602482018690529151929350908316916370fb84f49160448082019260009290919082900301818387803b1580156200179057600080fd5b505af1158015620017a5573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517fe3ba662f7011e701056a43e8cf832242322eeff01453e7a72d01ec2af36d9aec9450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200183757600080fd5b505afa1580156200184c573d6000803e3d6000fd5b505050506040513d60208110156200186357600080fd5b50516001600160a01b031614620018ac5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b158015620018f257600080fd5b505afa15801562001907573d6000803e3d6000fd5b505050506040513d60208110156200191e57600080fd5b5051604080516325ba55f160e21b81526001600160a01b038581166004830152600160248301529151929350908316916396e957c49160448082019260009290919082900301818387803b1580156200197657600080fd5b505af11580156200198b573d6000803e3d6000fd5b50506040516001600160a01b03851692507fda5cdb66c77023db6abe5226a4d4a40c3b8e768012f4ff4e446f62f60127fc569150600090a25050565b600381565b6034546001600160a01b031681565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001a2057600080fd5b505afa15801562001a35573d6000803e3d6000fd5b505050506040513d602081101562001a4c57600080fd5b50516001600160a01b03161462001a955760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562001adb57600080fd5b505afa15801562001af0573d6000803e3d6000fd5b505050506040513d602081101562001b0757600080fd5b50516040805163296f209b60e21b81526001600160a01b03888116600483015260248201889052604482018790526064820186905291519293509083169163a5bc826c9160848082019260009290919082900301818387803b15801562001b6d57600080fd5b505af115801562001b82573d6000803e3d6000fd5b5050604080518781526020810187905280820186905290516001600160a01b03891693507fdfe62f53e7707d64f99bca15d2bdf3facc4074bc047e7dec2ea130300e99274492509081900360600190a25050505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001c1e57600080fd5b505afa15801562001c33573d6000803e3d6000fd5b505050506040513d602081101562001c4a57600080fd5b50516001600160a01b03161462001c935760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562001cd957600080fd5b505afa15801562001cee573d6000803e3d6000fd5b505050506040513d602081101562001d0557600080fd5b505160408051636ee365f960e01b81526001600160a01b038581166004830152600060248301819052604483018190529251939450841692636ee365f99260648084019391929182900301818387803b15801562001d6257600080fd5b505af115801562001d77573d6000803e3d6000fd5b50506040516001600160a01b03851692507fe9a7e5fd4fc8ea18e602350324bf48e8f05d12434af0ce0be05743e6a5fdcb9e9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001df857600080fd5b505afa15801562001e0d573d6000803e3d6000fd5b505050506040513d602081101562001e2457600080fd5b50516001600160a01b03161462001e6d5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562001eb357600080fd5b505afa15801562001ec8573d6000803e3d6000fd5b505050506040513d602081101562001edf57600080fd5b50516040805163b736aaeb60e01b81526001600160a01b0385811660048301526001602483015291519293509083169163b736aaeb9160448082019260009290919082900301818387803b15801562001f3757600080fd5b505af115801562001f4c573d6000803e3d6000fd5b50506040516001600160a01b03851692507f35b80cd8ea3440e9a8454f116fa658b858da1b64c86c48451f4559cefcdfb56c9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b15801562001fcd57600080fd5b505afa15801562001fe2573d6000803e3d6000fd5b505050506040513d602081101562001ff957600080fd5b50516001600160a01b031614620020425760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200208857600080fd5b505afa1580156200209d573d6000803e3d6000fd5b505050506040513d6020811015620020b457600080fd5b5051604080516339d9797960e11b81526001600160a01b038581166004830152600160248301529151929350908316916373b2f2f29160448082019260009290919082900301818387803b1580156200210c57600080fd5b505af115801562002121573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8dee2b2f3e98319ae6347eda521788f73f4086c9be9a594942b370b137fb8cb19150600090a25050565b60006200216962002b68565b60015490915060ff16806200218357506200218362002b6d565b8062002190575060005481115b620021cd5760405162461bcd60e51b815260040180806020018281038252602e81526020018062005105602e913960400191505060405180910390fd5b60015460ff16158015620021ed576001805460ff19168117905560008290555b603480546001600160a01b0319166001600160a01b03851617905580156200221a576001805460ff191690555b505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200226457600080fd5b505afa15801562002279573d6000803e3d6000fd5b505050506040513d60208110156200229057600080fd5b50516001600160a01b031614620022d95760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200231f57600080fd5b505afa15801562002334573d6000803e3d6000fd5b505050506040513d60208110156200234b57600080fd5b50516040805163d466016f60e01b81526001600160a01b0386811660048301526024820186905291519293509083169163d466016f9160448082019260009290919082900301818387803b158015620023a357600080fd5b505af1158015620023b8573d6000803e3d6000fd5b5050604080516001600160a01b03871681526020810186905281517fda47540c7f7fd5a68c3285f3bb708f322424f948f41df6f51622fa24b39686649450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200244a57600080fd5b505afa1580156200245f573d6000803e3d6000fd5b505050506040513d60208110156200247657600080fd5b50516001600160a01b031614620024bf5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b1580156200250557600080fd5b505afa1580156200251a573d6000803e3d6000fd5b505050506040513d60208110156200253157600080fd5b50516040805163e8ae2f5b60e01b81526001600160a01b03858116600483015291519293509083169163e8ae2f5b9160248082019260009290919082900301818387803b1580156200258257600080fd5b505af115801562002597573d6000803e3d6000fd5b50506040516001600160a01b03851692507f9cc75e4cafc9a556a369bc53468649075680eb554d225d5918f199453824796d9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200261857600080fd5b505afa1580156200262d573d6000803e3d6000fd5b505050506040513d60208110156200264457600080fd5b50516001600160a01b0316146200268d5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b158015620026d357600080fd5b505afa158015620026e8573d6000803e3d6000fd5b505050506040513d6020811015620026ff57600080fd5b505160408051636ee365f960e01b81526001600160a01b038681166004830152851515602483015260016044830152915192935090831691636ee365f99160648082019260009290919082900301818387803b1580156200275f57600080fd5b505af115801562002774573d6000803e3d6000fd5b5050604080516001600160a01b0387168152851515602082015281517fab2f7f9e5ca2772fafa94f355c1842a80ae6b9e41f83083098d81f67d7a0b5089450908190039091019150a1505050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b1580156200280757600080fd5b505afa1580156200281c573d6000803e3d6000fd5b505050506040513d60208110156200283357600080fd5b50516001600160a01b0316146200287c5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b158015620028c257600080fd5b505afa158015620028d7573d6000803e3d6000fd5b505050506040513d6020811015620028ee57600080fd5b5051604080516325ba55f160e21b81526001600160a01b03858116600483015260006024830181905292519394508416926396e957c49260448084019391929182900301818387803b1580156200294457600080fd5b505af115801562002959573d6000803e3d6000fd5b50506040516001600160a01b03851692507f995959c2ceab6ce20e8cd89c904e449fd3e21918a0f420c9ec9340595585526b9150600090a25050565b603454604080516333128d5960e01b8152905133926001600160a01b0316916333128d59916004808301926020929190829003018186803b158015620029da57600080fd5b505afa158015620029ef573d6000803e3d6000fd5b505050506040513d602081101562002a0657600080fd5b50516001600160a01b03161462002a4f5760405162461bcd60e51b8152600401808060200182810382526029815260200180620050dc6029913960400191505060405180910390fd5b60345460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b916004808301926020929190829003018186803b15801562002a9557600080fd5b505afa15801562002aaa573d6000803e3d6000fd5b505050506040513d602081101562002ac157600080fd5b5051604080516339d9797960e11b81526001600160a01b03858116600483015260006024830181905292519394508416926373b2f2f29260448084019391929182900301818387803b15801562002b1757600080fd5b505af115801562002b2c573d6000803e3d6000fd5b50506040516001600160a01b03851692507f8bbf35441ac2c607ddecadd3d8ee58636d32f217fad201fb2655581502dd84e39150600090a25050565b600390565b303b1590565b61255a8062002b828339019056fe60806040523480156200001157600080fd5b506040516200255a3803806200255a833981810160405260a08110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82516401000000008111828201881017156200009c57600080fd5b82525081516020918201929091019080838360005b83811015620000cb578181015183820152602001620000b1565b50505050905090810190601f168015620000f95780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011d57600080fd5b9083019060208201858111156200013357600080fd5b82516401000000008111828201881017156200014e57600080fd5b82525081516020918201929091019080838360005b838110156200017d57818101518382015260200162000163565b50505050905090810190601f168015620001ab5780820380516001836020036101000a031916815260200191505b50604052505082518391508290620001cb906003906020850190620002eb565b508051620001e1906004906020840190620002eb565b50506005805460ff191660121790555062000205836001600160e01b03620002d516565b600a80546001600160a01b0319166001600160a01b03878116919091179182905560408051630261bf8b60e01b815290519290911691630261bf8b91600480820192602092909190829003018186803b1580156200026257600080fd5b505afa15801562000277573d6000803e3d6000fd5b505050506040513d60208110156200028e57600080fd5b5051600b80546001600160a01b0319166001600160a01b0392831617905560058054610100600160a81b031916610100969092169590950217909355506200039092505050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b6200038d91905b808211156200036c576000815560010162000377565b90565b6121ba80620003a06000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80635eae177c116100de578063a9059cbb11610097578063db006a7511610071578063db006a75146104f3578063dd62ed3e14610510578063ee9907a41461053e578063f866c3191461056457610173565b8063a9059cbb14610499578063c634dfaa146104c5578063d0fc81d2146104eb57610173565b80635eae177c146103df57806370a082311461040b57806389d1a0fc1461043157806394362e8b1461043957806395d89b4114610465578063a457c2d71461046d57610173565b806323b872dd1161013057806323b872dd146102c3578063313ce567146102f9578063325a9b131461031757806339509351146103455780633edb7cb814610371578063445e80101461039d57610173565b806306fdde0314610178578063095ea7b3146101f55780630e49072d1461023557806312c87c2d1461025d57806318160ddd146102835780631d51e7cf1461029d575b600080fd5b61018061059a565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b038135169060200135610631565b604080519115158252519081900360200190f35b61025b6004803603602081101561024b57600080fd5b50356001600160a01b031661064f565b005b61025b6004803603602081101561027357600080fd5b50356001600160a01b031661065c565b61028b6106fb565b60408051918252519081900360200190f35b61028b600480360360208110156102b357600080fd5b50356001600160a01b03166107bd565b610221600480360360608110156102d957600080fd5b506001600160a01b038135811691602081013590911690604001356107dc565b610301610869565b6040805160ff9092168252519081900360200190f35b61025b6004803603604081101561032d57600080fd5b506001600160a01b0381358116916020013516610872565b6102216004803603604081101561035b57600080fd5b506001600160a01b0381351690602001356108d8565b61025b6004803603604081101561038757600080fd5b506001600160a01b03813516906020013561092c565b6103c3600480360360208110156103b357600080fd5b50356001600160a01b0316610a21565b604080516001600160a01b039092168252519081900360200190f35b610221600480360360408110156103f557600080fd5b506001600160a01b038135169060200135610a3f565b61028b6004803603602081101561042157600080fd5b50356001600160a01b0316610ada565b6103c3610b8d565b61025b6004803603604081101561044f57600080fd5b506001600160a01b038135169060200135610ba1565b610180610c76565b6102216004803603604081101561048357600080fd5b506001600160a01b038135169060200135610cd7565b610221600480360360408110156104af57600080fd5b506001600160a01b038135169060200135610d45565b61028b600480360360208110156104db57600080fd5b50356001600160a01b0316610d59565b61028b610d64565b61025b6004803603602081101561050957600080fd5b5035610d6a565b61028b6004803603604081101561052657600080fd5b506001600160a01b0381358116916020013516610fa4565b61028b6004803603602081101561055457600080fd5b50356001600160a01b0316610fcf565b61025b6004803603606081101561057a57600080fd5b506001600160a01b03813581169160208101359091169060400135610fea565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b820191906000526020600020905b81548152906001019060200180831161060957829003601f168201915b505050505090505b90565b600061064561063e611043565b8484611047565b5060015b92915050565b6106593382611133565b50565b6001600160a01b0381163314156106a45760405162461bcd60e51b8152600401808060200182810382526025815260200180611f806025913960400191505060405180910390fd5b3360008181526009602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519092917fc2d6a42a9d5273283f73009a07aacfb043f2f91173a8d9d33b504afe898db08b91a350565b600080610706611322565b90508061071757600091505061062e565b600b546005546040805163d15e005360e01b81526001600160a01b036101009093048316600482015290516107b7936107b293169163d15e0053916024808301926020929190829003018186803b15801561077157600080fd5b505afa158015610785573d6000803e3d6000fd5b505050506040513d602081101561079b57600080fd5b50516107a684611328565b9063ffffffff61133e16565b611389565b91505090565b6001600160a01b0381166000908152600860205260409020545b919050565b60006107e98484846113a2565b61085f846107f5611043565b61085a85604051806060016040528060288152602001611fc6602891396001600160a01b038a16600090815260016020526040812090610833611043565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61141116565b611047565b5060019392505050565b60055460ff1690565b6001600160a01b038281166000908152600960205260409020541633146108ca5760405162461bcd60e51b815260040180806020018281038252603a81526020018061214b603a913960400191505060405180910390fd5b6108d48282611133565b5050565b60006106456108e5611043565b8461085a85600160006108f6611043565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6114a816565b600b546001600160a01b031633146109755760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080600061098385611502565b935093509350506109958583866115f3565b61099f858561172a565b60006109b1848663ffffffff61183216565b6109c1576109be86611874565b90505b856001600160a01b03167f90e5d3d68ec162d9c7de393037a3ede04dd44f68e051bf2ace4a73c299dbc4db8685846109f957856109fc565b60005b60408051938452602084019290925282820152519081900360600190a2505050505050565b6001600160a01b039081166000908152600760205260409020541690565b600b54600554604080516376e9d61560e01b81526101009092046001600160a01b039081166004840152858116602484015260448301859052905160009391909116916376e9d615916064808301926020929190829003018186803b158015610aa757600080fd5b505afa158015610abb573d6000803e3d6000fd5b505050506040513d6020811015610ad157600080fd5b50519392505050565b600080610ae683611926565b6001600160a01b03841660009081526008602052604090205490915081158015610b0e575080155b15610b1e576000925050506107d7565b6001600160a01b0384811660009081526007602052604090205416610b6f57610b6681610b5a86610b55868463ffffffff6114a816565b611941565b9063ffffffff61183216565b925050506107d7565b610b66610b8082610b5a8785611941565b839063ffffffff6114a816565b60055461010090046001600160a01b031681565b600b546001600160a01b03163314610bea5760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b600080610bf684611502565b935093505050610c1a84610c1385856114a890919063ffffffff16565b60006115f3565b610c2484846119f6565b604080518481526020810184905280820183905290516001600160a01b038616917fbe7799898ca2d813ff902b487c1b434ab45b47edd8f38b77ad5e99aae8341b7a919081900360600190a250505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b6000610645610ce4611043565b8461085a856040518060600160405280602581526020016121266025913960016000610d0e611043565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61141116565b6000610645610d52611043565b84846113a2565b600061064982611926565b60001981565b60008111610dbf576040805162461bcd60e51b815260206004820181905260248201527f416d6f756e7420746f2072656465656d206e6565647320746f206265203e2030604482015290519081900360640190fd5b6000806000610dcd33611502565b91955093509150849050600019811415610de45750825b83811115610e235760405162461bcd60e51b8152600401808060200182810382526032815260200180611f066032913960400191505060405180910390fd5b610e2d3382610a3f565b610e7e576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b610e893384836115f3565b610e93338261172a565b6000610ea5858363ffffffff61183216565b610eb557610eb233611874565b90505b600b546005546001600160a01b0391821691639895e3d8916101009004163385610ee58a8263ffffffff61183216565b6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b158015610f5457600080fd5b505af1158015610f68573d6000803e3d6000fd5b50505050336001600160a01b03167fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a76468386846109f957866109fc565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031633146110335760405162461bcd60e51b81526004018080602001828103825260328152602001806120f46032913960400191505060405180910390fd5b61103e838383611af2565b505050565b3390565b6001600160a01b03831661108c5760405162461bcd60e51b81526004018080602001828103825260248152602001806120d06024913960400191505060405180910390fd5b6001600160a01b0382166110d15760405162461bcd60e51b8152600401808060200182810382526022815260200180611f386022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0380831660009081526007602052604090205481169082168114156111905760405162461bcd60e51b815260040180806020018281038252602a815260200180611fee602a913960400191505060405180910390fd5b60008060008061119f87611502565b9350935093509350600083116111e65760405162461bcd60e51b81526004018080602001828103825260428152602001806120186042913960600191505060405180910390fd5b6001600160a01b0385161561120157611201876000866115f3565b866001600160a01b0316866001600160a01b0316141561128d576001600160a01b038716600081815260076020908152604080832080546001600160a01b03191690558051878152918201869052818101859052519192917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050506108d4565b6001600160a01b03878116600090815260076020526040812080546001600160a01b031916928916929092179091556112c990889085906115f3565b604080518481526020810184905280820183905290516001600160a01b0380891692908a16917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050505050565b60025490565b600061064982633b9aca0063ffffffff611c2116565b60006113826b033b2e3c9fd0803ce8000000611376611363868663ffffffff611c2116565b6b019d971e4fe8401e74000000906114a8565b9063ffffffff611c7a16565b9392505050565b6000631dcd6500611382633b9aca0061137683866114a8565b82816113ae8282610a3f565b6113ff576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b61140a858585611af2565b5050505050565b600081848411156114a05760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561146557818101518382015260200161144d565b50505050905090810190601f1680156114925780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611382576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600061151386611926565b9050600061152482610b5a89610ada565b905061153087826119f6565b600b546005546040805163d15e005360e01b81526101009092046001600160a01b0390811660048401529051600093919091169163d15e0053916024808301926020929190829003018186803b15801561158957600080fd5b505afa15801561159d573d6000803e3d6000fd5b505050506040513d60208110156115b357600080fd5b50516001600160a01b03891660009081526006602052604090208190559050826115e3818463ffffffff6114a816565b9099909850919650945092505050565b6001600160a01b038084166000908152600760205260409020541680611619575061103e565b60008061162583611502565b6001600160a01b038716600090815260086020526040902054919550935061165b9250869150610b5a908863ffffffff6114a816565b6001600160a01b038085166000908152600860209081526040808320949094556007905291909120541680156116ce576001600160a01b0381166000908152600860205260409020546116b4908463ffffffff6114a816565b6001600160a01b0382166000908152600860205260409020555b60408051848152602081018490528082018890526060810187905290516001600160a01b038616917f70ff8cf632603e2bfd1afb7e4061acce53d95356b1be9726b99fa22ba733b01f919081900360800190a250505050505050565b6001600160a01b03821661176f5760405162461bcd60e51b815260040180806020018281038252602181526020018061208a6021913960400191505060405180910390fd5b61177b8260008361103e565b6117be81604051806060016040528060228152602001611ee4602291396001600160a01b038516600090815260208190526040902054919063ffffffff61141116565b6001600160a01b0383166000908152602081905260409020556002546117ea908263ffffffff61183216565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600061138283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611411565b6001600160a01b038116600081815260076020908152604080832080546001600160a01b03191690558051838152918201839052818101839052519192839290917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a7348735594919081900360600190a36001600160a01b03821660009081526008602052604090205461191e57506001600160a01b03811660009081526006602052604081205560016107d7565b5060006107d7565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b03808316600090815260066020908152604080832054600b54600554835163d15e005360e01b81526101009091048716600482015292519495611382956107b29593946119ea94939092169263d15e00539260248082019391829003018186803b1580156119b557600080fd5b505afa1580156119c9573d6000803e3d6000fd5b505050506040513d60208110156119df57600080fd5b50516107a687611328565b9063ffffffff611cbc16565b6001600160a01b038216611a51576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611a5d6000838361103e565b600254611a70908263ffffffff6114a816565b6002556001600160a01b038216600090815260208190526040902054611a9c908263ffffffff6114a816565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008111611b315760405162461bcd60e51b815260040180806020018281038252603081526020018061205a6030913960400191505060405180910390fd5b6000806000611b3f86611502565b93509350935050600080611b5287611502565b935093505050611b638885886115f3565b611b7787610c13848963ffffffff6114a816565b611b82888888611cf4565b6000611b94868863ffffffff61183216565b611ba457611ba189611874565b90505b876001600160a01b0316896001600160a01b03167f89a178eaa27e0cd201bd795ca8ff716ac0df9618494510ca79771cfc66ffcde889888786611be75789611bea565b60005b60408051948552602085019390935283830191909152606083015260808201879052519081900360a00190a3505050505050505050565b600082611c3057506000610649565b82820282848281611c3d57fe5b04146113825760405162461bcd60e51b8152600401808060200182810382526021815260200180611fa56021913960400191505060405180910390fd5b600061138283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e5b565b600060028204611cec83611376611cdf876b033b2e3c9fd0803ce8000000611c21565b849063ffffffff6114a816565b949350505050565b6001600160a01b038316611d395760405162461bcd60e51b81526004018080602001828103825260258152602001806120ab6025913960400191505060405180910390fd5b6001600160a01b038216611d7e5760405162461bcd60e51b8152600401808060200182810382526023815260200180611ec16023913960400191505060405180910390fd5b611d8983838361103e565b611dcc81604051806060016040528060268152602001611f5a602691396001600160a01b038616600090815260208190526040902054919063ffffffff61141116565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611e01908263ffffffff6114a816565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008183611eaa5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561146557818101518382015260200161144d565b506000838581611eb657fe5b049594505050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f742072656465656d206d6f7265207468616e2074686520617661696c61626c652062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f74206769766520616c6c6f77616e636520746f2068696d73656c66536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365496e74657265737420697320616c7265616479207265646972656374656420746f207468652075736572496e7465726573742073747265616d2063616e206f6e6c79206265207265646972656374656420696620746865726520697320612076616c69642062616c616e63655472616e7366657272656420616d6f756e74206e6565647320746f2062652067726561746572207468616e207a65726f45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f43616c6c6572206973206e6f7420616c6c6f77656420746f2072656469726563742074686520696e746572657374206f66207468652075736572a26469706673582212200671650e46839586c7bcac37f954eaae245ebc9947b1318c9a3efa141e385ddd64736f6c634300060800335468652063616c6c6572206d7573742062652061206c656e64696e6720706f6f6c206d616e61676572436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564546865206c6971756964697479206f66207468652072657365727665206e6565647320746f2062652030a2646970667358221220d15e2789722fa4753518f916a63abff59689930ffb11d0958679d5fbc62dc3a564736f6c63430006080033"; diff --git a/types/LendingPoolCore.d.ts b/types/LendingPoolCore.d.ts new file mode 100644 index 00000000..74f2637e --- /dev/null +++ b/types/LendingPoolCore.d.ts @@ -0,0 +1,1408 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface LendingPoolCoreInterface extends Interface { + functions: { + activateReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + addressesProvider: TypedFunctionDescription<{ encode([]: []): string }>; + + deactivateReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + disableBorrowingOnReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + disableReserveAsCollateral: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + disableReserveStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + enableBorrowingOnReserve: TypedFunctionDescription<{ + encode([_reserve, _stableBorrowRateEnabled]: [string, boolean]): string; + }>; + + enableReserveAsCollateral: TypedFunctionDescription<{ + encode([ + _reserve, + _baseLTVasCollateral, + _liquidationThreshold, + _liquidationBonus + ]: [string, BigNumberish, BigNumberish, BigNumberish]): string; + }>; + + enableReserveStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + freezeReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveATokenAddress: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveAvailableLiquidity: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveConfiguration: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentAverageStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentLiquidityRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentVariableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveDecimals: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveInterestRateStrategyAddress: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveIsActive: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveIsFreezed: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveIsStableBorrowRateEnabled: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLastUpdate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLiquidationBonus: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLiquidationThreshold: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLiquidityCumulativeIndex: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveNormalizedIncome: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalBorrows: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalBorrowsStable: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalBorrowsVariable: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalLiquidity: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveUtilizationRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveVariableBorrowsCumulativeIndex: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserves: TypedFunctionDescription<{ encode([]: []): string }>; + + getUserBasicReserveData: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserBorrowBalances: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserCurrentBorrowRateMode: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserCurrentStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserLastUpdate: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserOriginationFee: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserUnderlyingAssetBalance: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserVariableBorrowCumulativeIndex: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + initReserve: TypedFunctionDescription<{ + encode([ + _reserve, + _aTokenAddress, + _decimals, + _interestRateStrategyAddress + ]: [string, string, BigNumberish, string]): string; + }>; + + initialize: TypedFunctionDescription<{ + encode([_addressesProvider]: [string]): string; + }>; + + isReserveBorrowingEnabled: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + isReserveUsageAsCollateralEnabled: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + isUserAllowedToBorrowAtStable: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + isUserUseReserveAsCollateralEnabled: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + lendingPoolAddress: TypedFunctionDescription<{ encode([]: []): string }>; + + liquidateFee: TypedFunctionDescription<{ + encode([_token, _amount, _destination]: [ + string, + BigNumberish, + string + ]): string; + }>; + + refreshConfiguration: TypedFunctionDescription<{ encode([]: []): string }>; + + removeLastAddedReserve: TypedFunctionDescription<{ + encode([_reserveToRemove]: [string]): string; + }>; + + reservesList: TypedFunctionDescription<{ + encode([]: [BigNumberish]): string; + }>; + + setReserveBaseLTVasCollateral: TypedFunctionDescription<{ + encode([_reserve, _ltv]: [string, BigNumberish]): string; + }>; + + setReserveDecimals: TypedFunctionDescription<{ + encode([_reserve, _decimals]: [string, BigNumberish]): string; + }>; + + setReserveInterestRateStrategyAddress: TypedFunctionDescription<{ + encode([_reserve, _rateStrategyAddress]: [string, string]): string; + }>; + + setReserveLiquidationBonus: TypedFunctionDescription<{ + encode([_reserve, _bonus]: [string, BigNumberish]): string; + }>; + + setReserveLiquidationThreshold: TypedFunctionDescription<{ + encode([_reserve, _threshold]: [string, BigNumberish]): string; + }>; + + setUserUseReserveAsCollateral: TypedFunctionDescription<{ + encode([_reserve, _user, _useAsCollateral]: [ + string, + string, + boolean + ]): string; + }>; + + transferToFeeCollectionAddress: TypedFunctionDescription<{ + encode([_token, _user, _amount, _destination]: [ + string, + string, + BigNumberish, + string + ]): string; + }>; + + transferToReserve: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + transferToUser: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + unfreezeReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + updateStateOnBorrow: TypedFunctionDescription<{ + encode([_reserve, _user, _amountBorrowed, _borrowFee, _rateMode]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + updateStateOnDeposit: TypedFunctionDescription<{ + encode([_reserve, _user, _amount, _isFirstDeposit]: [ + string, + string, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnFlashLoan: TypedFunctionDescription<{ + encode([_reserve, _availableLiquidityBefore, _income, _protocolFee]: [ + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + updateStateOnLiquidation: TypedFunctionDescription<{ + encode([ + _principalReserve, + _collateralReserve, + _user, + _amountToLiquidate, + _collateralToLiquidate, + _feeLiquidated, + _liquidatedCollateralForFee, + _balanceIncrease, + _liquidatorReceivesAToken + ]: [ + string, + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnRebalance: TypedFunctionDescription<{ + encode([_reserve, _user, _balanceIncrease]: [ + string, + string, + BigNumberish + ]): string; + }>; + + updateStateOnRedeem: TypedFunctionDescription<{ + encode([_reserve, _user, _amountRedeemed, _userRedeemedEverything]: [ + string, + string, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnRepay: TypedFunctionDescription<{ + encode([ + _reserve, + _user, + _paybackAmountMinusFees, + _originationFeeRepaid, + _balanceIncrease, + _repaidWholeLoan + ]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnSwapRate: TypedFunctionDescription<{ + encode([ + _reserve, + _user, + _principalBorrowBalance, + _compoundedBorrowBalance, + _balanceIncrease, + _currentRateMode + ]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + }; + + events: { + ReserveDataUpdated: TypedEventDescription<{ + encodeTopics([ + reserve, + liquidityRate, + stableBorrowRate, + averageStableBorrowRate, + variableBorrowRate, + liquidityIndex, + variableBorrowIndex + ]: [string | null, null, null, null, null, null, null]): string[]; + }>; + + ReserveUpdated: TypedEventDescription<{ + encodeTopics([ + reserve, + liquidityRate, + stableBorrowRate, + variableBorrowRate, + liquidityIndex, + variableBorrowIndex + ]: [string | null, null, null, null, null, null]): string[]; + }>; + }; +} + +export class LendingPoolCore extends Contract { + connect(signerOrProvider: Signer | Provider | string): LendingPoolCore; + attach(addressOrName: string): LendingPoolCore; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): LendingPoolCore; + once(event: EventFilter | string, listener: Listener): LendingPoolCore; + addListener( + eventName: EventFilter | string, + listener: Listener + ): LendingPoolCore; + removeAllListeners(eventName: EventFilter | string): LendingPoolCore; + removeListener(eventName: any, listener: Listener): LendingPoolCore; + + interface: LendingPoolCoreInterface; + + functions: { + activateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + addressesProvider(): Promise; + + deactivateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableBorrowingOnReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveAsCollateral( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + enableBorrowingOnReserve( + _reserve: string, + _stableBorrowRateEnabled: boolean, + overrides?: TransactionOverrides + ): Promise; + + enableReserveAsCollateral( + _reserve: string, + _baseLTVasCollateral: BigNumberish, + _liquidationThreshold: BigNumberish, + _liquidationBonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + enableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + freezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + getReserveATokenAddress(_reserve: string): Promise; + + getReserveAvailableLiquidity(_reserve: string): Promise; + + getReserveConfiguration( + _reserve: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getReserveCurrentAverageStableBorrowRate( + _reserve: string + ): Promise; + + getReserveCurrentLiquidityRate(_reserve: string): Promise; + + getReserveCurrentStableBorrowRate(_reserve: string): Promise; + + getReserveCurrentVariableBorrowRate(_reserve: string): Promise; + + getReserveDecimals(_reserve: string): Promise; + + getReserveInterestRateStrategyAddress(_reserve: string): Promise; + + getReserveIsActive(_reserve: string): Promise; + + getReserveIsFreezed(_reserve: string): Promise; + + getReserveIsStableBorrowRateEnabled(_reserve: string): Promise; + + getReserveLastUpdate(_reserve: string): Promise; + + getReserveLiquidationBonus(_reserve: string): Promise; + + getReserveLiquidationThreshold(_reserve: string): Promise; + + getReserveLiquidityCumulativeIndex(_reserve: string): Promise; + + getReserveNormalizedIncome(_reserve: string): Promise; + + getReserveTotalBorrows(_reserve: string): Promise; + + getReserveTotalBorrowsStable(_reserve: string): Promise; + + getReserveTotalBorrowsVariable(_reserve: string): Promise; + + getReserveTotalLiquidity(_reserve: string): Promise; + + getReserveUtilizationRate(_reserve: string): Promise; + + getReserveVariableBorrowsCumulativeIndex( + _reserve: string + ): Promise; + + getReserves(): Promise; + + getUserBasicReserveData( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getUserBorrowBalances( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + }>; + + getUserCurrentBorrowRateMode( + _reserve: string, + _user: string + ): Promise; + + getUserCurrentStableBorrowRate( + _reserve: string, + _user: string + ): Promise; + + getUserLastUpdate(_reserve: string, _user: string): Promise; + + getUserOriginationFee(_reserve: string, _user: string): Promise; + + getUserUnderlyingAssetBalance( + _reserve: string, + _user: string + ): Promise; + + getUserVariableBorrowCumulativeIndex( + _reserve: string, + _user: string + ): Promise; + + initReserve( + _reserve: string, + _aTokenAddress: string, + _decimals: BigNumberish, + _interestRateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + + isReserveBorrowingEnabled(_reserve: string): Promise; + + isReserveUsageAsCollateralEnabled(_reserve: string): Promise; + + isUserAllowedToBorrowAtStable( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + isUserUseReserveAsCollateralEnabled( + _reserve: string, + _user: string + ): Promise; + + lendingPoolAddress(): Promise; + + liquidateFee( + _token: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + refreshConfiguration( + overrides?: TransactionOverrides + ): Promise; + + removeLastAddedReserve( + _reserveToRemove: string, + overrides?: TransactionOverrides + ): Promise; + + reservesList(arg0: BigNumberish): Promise; + + setReserveBaseLTVasCollateral( + _reserve: string, + _ltv: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveDecimals( + _reserve: string, + _decimals: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveInterestRateStrategyAddress( + _reserve: string, + _rateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationBonus( + _reserve: string, + _bonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationThreshold( + _reserve: string, + _threshold: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setUserUseReserveAsCollateral( + _reserve: string, + _user: string, + _useAsCollateral: boolean, + overrides?: TransactionOverrides + ): Promise; + + transferToFeeCollectionAddress( + _token: string, + _user: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + transferToReserve( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferToUser( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + unfreezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnBorrow( + _reserve: string, + _user: string, + _amountBorrowed: BigNumberish, + _borrowFee: BigNumberish, + _rateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnDeposit( + _reserve: string, + _user: string, + _amount: BigNumberish, + _isFirstDeposit: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnFlashLoan( + _reserve: string, + _availableLiquidityBefore: BigNumberish, + _income: BigNumberish, + _protocolFee: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnLiquidation( + _principalReserve: string, + _collateralReserve: string, + _user: string, + _amountToLiquidate: BigNumberish, + _collateralToLiquidate: BigNumberish, + _feeLiquidated: BigNumberish, + _liquidatedCollateralForFee: BigNumberish, + _balanceIncrease: BigNumberish, + _liquidatorReceivesAToken: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRebalance( + _reserve: string, + _user: string, + _balanceIncrease: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRedeem( + _reserve: string, + _user: string, + _amountRedeemed: BigNumberish, + _userRedeemedEverything: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRepay( + _reserve: string, + _user: string, + _paybackAmountMinusFees: BigNumberish, + _originationFeeRepaid: BigNumberish, + _balanceIncrease: BigNumberish, + _repaidWholeLoan: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnSwapRate( + _reserve: string, + _user: string, + _principalBorrowBalance: BigNumberish, + _compoundedBorrowBalance: BigNumberish, + _balanceIncrease: BigNumberish, + _currentRateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + activateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + addressesProvider(): Promise; + + deactivateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableBorrowingOnReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveAsCollateral( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + enableBorrowingOnReserve( + _reserve: string, + _stableBorrowRateEnabled: boolean, + overrides?: TransactionOverrides + ): Promise; + + enableReserveAsCollateral( + _reserve: string, + _baseLTVasCollateral: BigNumberish, + _liquidationThreshold: BigNumberish, + _liquidationBonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + enableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + freezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + getReserveATokenAddress(_reserve: string): Promise; + + getReserveAvailableLiquidity(_reserve: string): Promise; + + getReserveConfiguration( + _reserve: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getReserveCurrentAverageStableBorrowRate( + _reserve: string + ): Promise; + + getReserveCurrentLiquidityRate(_reserve: string): Promise; + + getReserveCurrentStableBorrowRate(_reserve: string): Promise; + + getReserveCurrentVariableBorrowRate(_reserve: string): Promise; + + getReserveDecimals(_reserve: string): Promise; + + getReserveInterestRateStrategyAddress(_reserve: string): Promise; + + getReserveIsActive(_reserve: string): Promise; + + getReserveIsFreezed(_reserve: string): Promise; + + getReserveIsStableBorrowRateEnabled(_reserve: string): Promise; + + getReserveLastUpdate(_reserve: string): Promise; + + getReserveLiquidationBonus(_reserve: string): Promise; + + getReserveLiquidationThreshold(_reserve: string): Promise; + + getReserveLiquidityCumulativeIndex(_reserve: string): Promise; + + getReserveNormalizedIncome(_reserve: string): Promise; + + getReserveTotalBorrows(_reserve: string): Promise; + + getReserveTotalBorrowsStable(_reserve: string): Promise; + + getReserveTotalBorrowsVariable(_reserve: string): Promise; + + getReserveTotalLiquidity(_reserve: string): Promise; + + getReserveUtilizationRate(_reserve: string): Promise; + + getReserveVariableBorrowsCumulativeIndex( + _reserve: string + ): Promise; + + getReserves(): Promise; + + getUserBasicReserveData( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getUserBorrowBalances( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + }>; + + getUserCurrentBorrowRateMode( + _reserve: string, + _user: string + ): Promise; + + getUserCurrentStableBorrowRate( + _reserve: string, + _user: string + ): Promise; + + getUserLastUpdate(_reserve: string, _user: string): Promise; + + getUserOriginationFee(_reserve: string, _user: string): Promise; + + getUserUnderlyingAssetBalance( + _reserve: string, + _user: string + ): Promise; + + getUserVariableBorrowCumulativeIndex( + _reserve: string, + _user: string + ): Promise; + + initReserve( + _reserve: string, + _aTokenAddress: string, + _decimals: BigNumberish, + _interestRateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + + isReserveBorrowingEnabled(_reserve: string): Promise; + + isReserveUsageAsCollateralEnabled(_reserve: string): Promise; + + isUserAllowedToBorrowAtStable( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + isUserUseReserveAsCollateralEnabled( + _reserve: string, + _user: string + ): Promise; + + lendingPoolAddress(): Promise; + + liquidateFee( + _token: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + refreshConfiguration( + overrides?: TransactionOverrides + ): Promise; + + removeLastAddedReserve( + _reserveToRemove: string, + overrides?: TransactionOverrides + ): Promise; + + reservesList(arg0: BigNumberish): Promise; + + setReserveBaseLTVasCollateral( + _reserve: string, + _ltv: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveDecimals( + _reserve: string, + _decimals: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveInterestRateStrategyAddress( + _reserve: string, + _rateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationBonus( + _reserve: string, + _bonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationThreshold( + _reserve: string, + _threshold: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setUserUseReserveAsCollateral( + _reserve: string, + _user: string, + _useAsCollateral: boolean, + overrides?: TransactionOverrides + ): Promise; + + transferToFeeCollectionAddress( + _token: string, + _user: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + transferToReserve( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferToUser( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + unfreezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnBorrow( + _reserve: string, + _user: string, + _amountBorrowed: BigNumberish, + _borrowFee: BigNumberish, + _rateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnDeposit( + _reserve: string, + _user: string, + _amount: BigNumberish, + _isFirstDeposit: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnFlashLoan( + _reserve: string, + _availableLiquidityBefore: BigNumberish, + _income: BigNumberish, + _protocolFee: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnLiquidation( + _principalReserve: string, + _collateralReserve: string, + _user: string, + _amountToLiquidate: BigNumberish, + _collateralToLiquidate: BigNumberish, + _feeLiquidated: BigNumberish, + _liquidatedCollateralForFee: BigNumberish, + _balanceIncrease: BigNumberish, + _liquidatorReceivesAToken: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRebalance( + _reserve: string, + _user: string, + _balanceIncrease: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRedeem( + _reserve: string, + _user: string, + _amountRedeemed: BigNumberish, + _userRedeemedEverything: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRepay( + _reserve: string, + _user: string, + _paybackAmountMinusFees: BigNumberish, + _originationFeeRepaid: BigNumberish, + _balanceIncrease: BigNumberish, + _repaidWholeLoan: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnSwapRate( + _reserve: string, + _user: string, + _principalBorrowBalance: BigNumberish, + _compoundedBorrowBalance: BigNumberish, + _balanceIncrease: BigNumberish, + _currentRateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + ReserveDataUpdated( + reserve: string | null, + liquidityRate: null, + stableBorrowRate: null, + averageStableBorrowRate: null, + variableBorrowRate: null, + liquidityIndex: null, + variableBorrowIndex: null + ): EventFilter; + + ReserveUpdated( + reserve: string | null, + liquidityRate: null, + stableBorrowRate: null, + variableBorrowRate: null, + liquidityIndex: null, + variableBorrowIndex: null + ): EventFilter; + }; + + estimate: { + activateReserve(_reserve: string): Promise; + + addressesProvider(): Promise; + + deactivateReserve(_reserve: string): Promise; + + disableBorrowingOnReserve(_reserve: string): Promise; + + disableReserveAsCollateral(_reserve: string): Promise; + + disableReserveStableBorrowRate(_reserve: string): Promise; + + enableBorrowingOnReserve( + _reserve: string, + _stableBorrowRateEnabled: boolean + ): Promise; + + enableReserveAsCollateral( + _reserve: string, + _baseLTVasCollateral: BigNumberish, + _liquidationThreshold: BigNumberish, + _liquidationBonus: BigNumberish + ): Promise; + + enableReserveStableBorrowRate(_reserve: string): Promise; + + freezeReserve(_reserve: string): Promise; + + getReserveATokenAddress(_reserve: string): Promise; + + getReserveAvailableLiquidity(_reserve: string): Promise; + + getReserveConfiguration(_reserve: string): Promise; + + getReserveCurrentAverageStableBorrowRate( + _reserve: string + ): Promise; + + getReserveCurrentLiquidityRate(_reserve: string): Promise; + + getReserveCurrentStableBorrowRate(_reserve: string): Promise; + + getReserveCurrentVariableBorrowRate(_reserve: string): Promise; + + getReserveDecimals(_reserve: string): Promise; + + getReserveInterestRateStrategyAddress(_reserve: string): Promise; + + getReserveIsActive(_reserve: string): Promise; + + getReserveIsFreezed(_reserve: string): Promise; + + getReserveIsStableBorrowRateEnabled(_reserve: string): Promise; + + getReserveLastUpdate(_reserve: string): Promise; + + getReserveLiquidationBonus(_reserve: string): Promise; + + getReserveLiquidationThreshold(_reserve: string): Promise; + + getReserveLiquidityCumulativeIndex(_reserve: string): Promise; + + getReserveNormalizedIncome(_reserve: string): Promise; + + getReserveTotalBorrows(_reserve: string): Promise; + + getReserveTotalBorrowsStable(_reserve: string): Promise; + + getReserveTotalBorrowsVariable(_reserve: string): Promise; + + getReserveTotalLiquidity(_reserve: string): Promise; + + getReserveUtilizationRate(_reserve: string): Promise; + + getReserveVariableBorrowsCumulativeIndex( + _reserve: string + ): Promise; + + getReserves(): Promise; + + getUserBasicReserveData( + _reserve: string, + _user: string + ): Promise; + + getUserBorrowBalances(_reserve: string, _user: string): Promise; + + getUserCurrentBorrowRateMode( + _reserve: string, + _user: string + ): Promise; + + getUserCurrentStableBorrowRate( + _reserve: string, + _user: string + ): Promise; + + getUserLastUpdate(_reserve: string, _user: string): Promise; + + getUserOriginationFee(_reserve: string, _user: string): Promise; + + getUserUnderlyingAssetBalance( + _reserve: string, + _user: string + ): Promise; + + getUserVariableBorrowCumulativeIndex( + _reserve: string, + _user: string + ): Promise; + + initReserve( + _reserve: string, + _aTokenAddress: string, + _decimals: BigNumberish, + _interestRateStrategyAddress: string + ): Promise; + + initialize(_addressesProvider: string): Promise; + + isReserveBorrowingEnabled(_reserve: string): Promise; + + isReserveUsageAsCollateralEnabled(_reserve: string): Promise; + + isUserAllowedToBorrowAtStable( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + isUserUseReserveAsCollateralEnabled( + _reserve: string, + _user: string + ): Promise; + + lendingPoolAddress(): Promise; + + liquidateFee( + _token: string, + _amount: BigNumberish, + _destination: string + ): Promise; + + refreshConfiguration(): Promise; + + removeLastAddedReserve(_reserveToRemove: string): Promise; + + reservesList(arg0: BigNumberish): Promise; + + setReserveBaseLTVasCollateral( + _reserve: string, + _ltv: BigNumberish + ): Promise; + + setReserveDecimals( + _reserve: string, + _decimals: BigNumberish + ): Promise; + + setReserveInterestRateStrategyAddress( + _reserve: string, + _rateStrategyAddress: string + ): Promise; + + setReserveLiquidationBonus( + _reserve: string, + _bonus: BigNumberish + ): Promise; + + setReserveLiquidationThreshold( + _reserve: string, + _threshold: BigNumberish + ): Promise; + + setUserUseReserveAsCollateral( + _reserve: string, + _user: string, + _useAsCollateral: boolean + ): Promise; + + transferToFeeCollectionAddress( + _token: string, + _user: string, + _amount: BigNumberish, + _destination: string + ): Promise; + + transferToReserve( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + transferToUser( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + unfreezeReserve(_reserve: string): Promise; + + updateStateOnBorrow( + _reserve: string, + _user: string, + _amountBorrowed: BigNumberish, + _borrowFee: BigNumberish, + _rateMode: BigNumberish + ): Promise; + + updateStateOnDeposit( + _reserve: string, + _user: string, + _amount: BigNumberish, + _isFirstDeposit: boolean + ): Promise; + + updateStateOnFlashLoan( + _reserve: string, + _availableLiquidityBefore: BigNumberish, + _income: BigNumberish, + _protocolFee: BigNumberish + ): Promise; + + updateStateOnLiquidation( + _principalReserve: string, + _collateralReserve: string, + _user: string, + _amountToLiquidate: BigNumberish, + _collateralToLiquidate: BigNumberish, + _feeLiquidated: BigNumberish, + _liquidatedCollateralForFee: BigNumberish, + _balanceIncrease: BigNumberish, + _liquidatorReceivesAToken: boolean + ): Promise; + + updateStateOnRebalance( + _reserve: string, + _user: string, + _balanceIncrease: BigNumberish + ): Promise; + + updateStateOnRedeem( + _reserve: string, + _user: string, + _amountRedeemed: BigNumberish, + _userRedeemedEverything: boolean + ): Promise; + + updateStateOnRepay( + _reserve: string, + _user: string, + _paybackAmountMinusFees: BigNumberish, + _originationFeeRepaid: BigNumberish, + _balanceIncrease: BigNumberish, + _repaidWholeLoan: boolean + ): Promise; + + updateStateOnSwapRate( + _reserve: string, + _user: string, + _principalBorrowBalance: BigNumberish, + _compoundedBorrowBalance: BigNumberish, + _balanceIncrease: BigNumberish, + _currentRateMode: BigNumberish + ): Promise; + }; +} diff --git a/types/LendingPoolCoreFactory.ts b/types/LendingPoolCoreFactory.ts new file mode 100644 index 00000000..bfa06307 --- /dev/null +++ b/types/LendingPoolCoreFactory.ts @@ -0,0 +1,1698 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { LendingPoolCore } from "./LendingPoolCore"; + +export class LendingPoolCoreFactory extends ContractFactory { + constructor( + linkLibraryAddresses: LendingPoolCoreLibraryAddresses, + signer?: Signer + ) { + super( + _abi, + LendingPoolCoreFactory.linkBytecode(linkLibraryAddresses), + signer + ); + } + + static linkBytecode( + linkLibraryAddresses: LendingPoolCoreLibraryAddresses + ): string { + let linkedBytecode = _bytecode; + + linkedBytecode = linkedBytecode.replace( + new RegExp("__\\$2ec35834968386f54fa313129cf94664e4\\$__", "g"), + linkLibraryAddresses["__$2ec35834968386f54fa313129cf94664e4$__"] + .replace(/^0x/, "") + .toLowerCase() + ); + + return linkedBytecode; + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): LendingPoolCore { + return super.attach(address) as LendingPoolCore; + } + connect(signer: Signer): LendingPoolCoreFactory { + return super.connect(signer) as LendingPoolCoreFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): LendingPoolCore { + return new Contract(address, _abi, signerOrProvider) as LendingPoolCore; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "reserve", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "stableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "averageStableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityIndex", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowIndex", + type: "uint256" + } + ], + name: "ReserveDataUpdated", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "reserve", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "stableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityIndex", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowIndex", + type: "uint256" + } + ], + name: "ReserveUpdated", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "activateReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "addressesProvider", + outputs: [ + { + internalType: "contract LendingPoolAddressesProvider", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "deactivateReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "disableBorrowingOnReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "disableReserveAsCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "disableReserveStableBorrowRate", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "bool", + name: "_stableBorrowRateEnabled", + type: "bool" + } + ], + name: "enableBorrowingOnReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_baseLTVasCollateral", + type: "uint256" + }, + { + internalType: "uint256", + name: "_liquidationThreshold", + type: "uint256" + }, + { + internalType: "uint256", + name: "_liquidationBonus", + type: "uint256" + } + ], + name: "enableReserveAsCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "enableReserveStableBorrowRate", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "freezeReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveATokenAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveAvailableLiquidity", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveConfiguration", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentAverageStableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentLiquidityRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentStableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentVariableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveDecimals", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveInterestRateStrategyAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveIsActive", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveIsFreezed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveIsStableBorrowRateEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLastUpdate", + outputs: [ + { + internalType: "uint40", + name: "timestamp", + type: "uint40" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLiquidationBonus", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLiquidationThreshold", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLiquidityCumulativeIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveNormalizedIncome", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalBorrows", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalBorrowsStable", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalBorrowsVariable", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalLiquidity", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveUtilizationRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveVariableBorrowsCumulativeIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "getReserves", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserBasicReserveData", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserBorrowBalances", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserCurrentBorrowRateMode", + outputs: [ + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserCurrentStableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserLastUpdate", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserOriginationFee", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserUnderlyingAssetBalance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserVariableBorrowCumulativeIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_aTokenAddress", + type: "address" + }, + { + internalType: "uint256", + name: "_decimals", + type: "uint256" + }, + { + internalType: "address", + name: "_interestRateStrategyAddress", + type: "address" + } + ], + name: "initReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "contract LendingPoolAddressesProvider", + name: "_addressesProvider", + type: "address" + } + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "isReserveBorrowingEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "isReserveUsageAsCollateralEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "isUserAllowedToBorrowAtStable", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "isUserUseReserveAsCollateralEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "lendingPoolAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_token", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "address", + name: "_destination", + type: "address" + } + ], + name: "liquidateFee", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [], + name: "refreshConfiguration", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserveToRemove", + type: "address" + } + ], + name: "removeLastAddedReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + name: "reservesList", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_ltv", + type: "uint256" + } + ], + name: "setReserveBaseLTVasCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_decimals", + type: "uint256" + } + ], + name: "setReserveDecimals", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_rateStrategyAddress", + type: "address" + } + ], + name: "setReserveInterestRateStrategyAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_bonus", + type: "uint256" + } + ], + name: "setReserveLiquidationBonus", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_threshold", + type: "uint256" + } + ], + name: "setReserveLiquidationThreshold", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "bool", + name: "_useAsCollateral", + type: "bool" + } + ], + name: "setUserUseReserveAsCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_token", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "address", + name: "_destination", + type: "address" + } + ], + name: "transferToFeeCollectionAddress", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address payable", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "transferToReserve", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address payable", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "transferToUser", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "unfreezeReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amountBorrowed", + type: "uint256" + }, + { + internalType: "uint256", + name: "_borrowFee", + type: "uint256" + }, + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "_rateMode", + type: "uint8" + } + ], + name: "updateStateOnBorrow", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "bool", + name: "_isFirstDeposit", + type: "bool" + } + ], + name: "updateStateOnDeposit", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_availableLiquidityBefore", + type: "uint256" + }, + { + internalType: "uint256", + name: "_income", + type: "uint256" + }, + { + internalType: "uint256", + name: "_protocolFee", + type: "uint256" + } + ], + name: "updateStateOnFlashLoan", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_principalReserve", + type: "address" + }, + { + internalType: "address", + name: "_collateralReserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amountToLiquidate", + type: "uint256" + }, + { + internalType: "uint256", + name: "_collateralToLiquidate", + type: "uint256" + }, + { + internalType: "uint256", + name: "_feeLiquidated", + type: "uint256" + }, + { + internalType: "uint256", + name: "_liquidatedCollateralForFee", + type: "uint256" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + }, + { + internalType: "bool", + name: "_liquidatorReceivesAToken", + type: "bool" + } + ], + name: "updateStateOnLiquidation", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + } + ], + name: "updateStateOnRebalance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amountRedeemed", + type: "uint256" + }, + { + internalType: "bool", + name: "_userRedeemedEverything", + type: "bool" + } + ], + name: "updateStateOnRedeem", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_paybackAmountMinusFees", + type: "uint256" + }, + { + internalType: "uint256", + name: "_originationFeeRepaid", + type: "uint256" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + }, + { + internalType: "bool", + name: "_repaidWholeLoan", + type: "bool" + } + ], + name: "updateStateOnRepay", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_principalBorrowBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "_compoundedBorrowBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + }, + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "_currentRateMode", + type: "uint8" + } + ], + name: "updateStateOnSwapRate", + outputs: [ + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "", + type: "uint8" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + stateMutability: "payable", + type: "receive" + } +]; + +const _bytecode = + "0x60806040526000805534801561001457600080fd5b506158c180620000256000396000f3fe6080604052600436106104145760003560e01c8063a2353fdc1161021e578063d15e005311610123578063e8ae2f5b116100ab578063f61483111161007a578063f6148311146113ad578063f6ea8d7614611431578063fa51854c1461146c578063fa93b2a5146114b1578063feab31ac146114f45761045f565b8063e8ae2f5b146112d9578063eede87c11461130c578063ef1f937314611347578063f054ab461461137a5761045f565b8063dae4c4e7116100f2578063dae4c4e7146111c2578063e10076ad146111f5578063e2174d8614611230578063e240301914611273578063e6d18190146112a65761045f565b8063d15e0053146110ea578063d3ae26b31461111d578063d466016f14611132578063da12d96f1461116b5761045f565b8063bd7fd79a116101a6578063c540148e11610175578063c540148e14611000578063c72c4d1014611033578063c76a6c9c14611048578063c7d142371461107b578063d06e2ec1146110b75761045f565b8063bd7fd79a14610f34578063bfacad8414610f67578063c33cfd9014610f9a578063c4d66de814610fcd5761045f565b8063afcdbea3116101ed578063afcdbea314610e05578063b701d09314610e50578063b75d6f3414610e83578063b8c0f74514610eb6578063bcd6ffa414610ee95761045f565b8063a2353fdc14610d17578063a5bc826c14610d4a578063a8dc0f4514610d8f578063af825b0714610dc25761045f565b80635cf2e656116103245780637aca76eb116102ac578063906c0a411161027b578063906c0a4114610bea57806398bd473714610c1d5780639e3c4f3b14610c505780639e67484814610c8b5780639fb8afcd14610cbe5761045f565b80637aca76eb14610b1b5780637f90fec514610b4e57806388079d8814610b815780638f385c2214610bb45761045f565b806366d103f3116102f357806366d103f3146109ce57806368beb4d614610a095780636ae1441614610a745780636fffab0c14610aa757806370fb84f414610ae25761045f565b80635cf2e656146108f25780635fc526ff14610925578063646810831461098057806366bbd928146109955761045f565b80633443a14b116103a757806345330a401161037657806345330a40146107cc57806346bc0f28146108155780634a08accb146108485780634f1446091461087b5780634fe7a6e5146108c85761045f565b80633443a14b146106a557806334b3beee146106de57806337ac6fe41461072d5780633e72a454146107995761045f565b806318f9bbae116103e357806318f9bbae146105a25780631ca19f19146105d55780631d2118f91461063457806328fcf4d31461066f5761045f565b806305075d6e146104645780630902f1ac146104ab57806309ac29531461051057806318a4dbca146105555761045f565b3661045f576104223361152f565b61045d5760405162461bcd60e51b81526004018080602001828103825260368152602001806155f06036913960400191505060405180910390fd5b005b600080fd5b34801561047057600080fd5b506104976004803603602081101561048757600080fd5b50356001600160a01b031661156d565b604080519115158252519081900360200190f35b3480156104b757600080fd5b506104c0611595565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104fc5781810151838201526020016104e4565b505050509050019250505060405180910390f35b34801561051c57600080fd5b5061045d6004803603608081101561053357600080fd5b506001600160a01b0381351690602081013590604081013590606001356115f7565b34801561056157600080fd5b506105906004803603604081101561057857600080fd5b506001600160a01b03813581169160200135166116c5565b60408051918252519081900360200190f35b3480156105ae57600080fd5b50610497600480360360208110156105c557600080fd5b50356001600160a01b0316611758565b3480156105e157600080fd5b50610610600480360360408110156105f857600080fd5b506001600160a01b0381358116916020013516611780565b6040518082600281111561062057fe5b60ff16815260200191505060405180910390f35b34801561064057600080fd5b5061045d6004803603604081101561065757600080fd5b506001600160a01b03813581169160200135166117d5565b61045d6004803603606081101561068557600080fd5b506001600160a01b038135811691602081013590911690604001356118bb565b3480156106b157600080fd5b5061045d600480360360408110156106c857600080fd5b506001600160a01b038135169060200135611a86565b3480156106ea57600080fd5b506107116004803603602081101561070157600080fd5b50356001600160a01b0316611b5a565b604080516001600160a01b039092168252519081900360200190f35b34801561073957600080fd5b50610780600480360360a081101561075057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060810135906080013560ff16611b7b565b6040805192835260208301919091528051918290030190f35b3480156107a557600080fd5b5061045d600480360360208110156107bc57600080fd5b50356001600160a01b0316611c1b565b3480156107d857600080fd5b5061045d600480360360808110156107ef57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611cf7565b34801561082157600080fd5b506105906004803603602081101561083857600080fd5b50356001600160a01b0316611e51565b34801561085457600080fd5b506104976004803603602081101561086b57600080fd5b50356001600160a01b0316611e6f565b34801561088757600080fd5b506108ae6004803603602081101561089e57600080fd5b50356001600160a01b0316611e97565b6040805164ffffffffff9092168252519081900360200190f35b3480156108d457600080fd5b50610711600480360360208110156108eb57600080fd5b5035611ec3565b3480156108fe57600080fd5b506104976004803603602081101561091557600080fd5b50356001600160a01b0316611eea565b34801561093157600080fd5b506109586004803603602081101561094857600080fd5b50356001600160a01b0316611f12565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b34801561098c57600080fd5b5061045d611f50565b3480156109a157600080fd5b5061045d600480360360408110156109b857600080fd5b506001600160a01b03813516906020013561200f565b3480156109da57600080fd5b50610590600480360360408110156109f157600080fd5b506001600160a01b03813581169160200135166120e3565b348015610a1557600080fd5b5061045d6004803603610120811015610a2d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a08101359060c08101359060e08101359061010001351515612119565b348015610a8057600080fd5b5061071160048036036020811015610a9757600080fd5b50356001600160a01b03166121bb565b348015610ab357600080fd5b5061059060048036036040811015610aca57600080fd5b506001600160a01b03813581169160200135166121dc565b348015610aee57600080fd5b5061045d60048036036040811015610b0557600080fd5b506001600160a01b03813516906020013561220b565b348015610b2757600080fd5b5061045d60048036036020811015610b3e57600080fd5b50356001600160a01b03166122df565b348015610b5a57600080fd5b5061059060048036036020811015610b7157600080fd5b50356001600160a01b03166123c1565b348015610b8d57600080fd5b5061059060048036036020811015610ba457600080fd5b50356001600160a01b03166123df565b61045d60048036036060811015610bca57600080fd5b506001600160a01b03813581169160208101359160409091013516612507565b348015610bf657600080fd5b5061059060048036036020811015610c0d57600080fd5b50356001600160a01b031661261d565b348015610c2957600080fd5b5061059060048036036020811015610c4057600080fd5b50356001600160a01b03166126cd565b348015610c5c57600080fd5b5061049760048036036040811015610c7357600080fd5b506001600160a01b03813581169160200135166126eb565b348015610c9757600080fd5b5061049760048036036020811015610cae57600080fd5b50356001600160a01b0316612724565b348015610cca57600080fd5b50610cf960048036036040811015610ce157600080fd5b506001600160a01b038135811691602001351661274c565b60408051938452602084019290925282820152519081900360600190f35b348015610d2357600080fd5b5061059060048036036020811015610d3a57600080fd5b50356001600160a01b03166127d7565b348015610d5657600080fd5b5061045d60048036036080811015610d6d57600080fd5b506001600160a01b0381351690602081013590604081013590606001356127f5565b348015610d9b57600080fd5b5061045d60048036036020811015610db257600080fd5b50356001600160a01b0316612943565b348015610dce57600080fd5b5061059060048036036060811015610de557600080fd5b506001600160a01b03813581169160208101359091169060400135612a72565b348015610e1157600080fd5b5061045d60048036036080811015610e2857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612b12565b348015610e5c57600080fd5b5061059060048036036020811015610e7357600080fd5b50356001600160a01b0316612b9a565b348015610e8f57600080fd5b5061045d60048036036020811015610ea657600080fd5b50356001600160a01b0316612bb8565b348015610ec257600080fd5b5061045d60048036036020811015610ed957600080fd5b50356001600160a01b0316612ceb565b348015610ef557600080fd5b5061045d60048036036080811015610f0c57600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612dc7565b348015610f4057600080fd5b5061059060048036036020811015610f5757600080fd5b50356001600160a01b0316612e4f565b348015610f7357600080fd5b5061059060048036036020811015610f8a57600080fd5b50356001600160a01b0316612e6a565b348015610fa657600080fd5b5061059060048036036020811015610fbd57600080fd5b50356001600160a01b0316612ed4565b348015610fd957600080fd5b5061045d60048036036020811015610ff057600080fd5b50356001600160a01b0316612f0d565b34801561100c57600080fd5b506105906004803603602081101561102357600080fd5b50356001600160a01b0316612fcc565b34801561103f57600080fd5b50610711612fea565b34801561105457600080fd5b506105906004803603602081101561106b57600080fd5b50356001600160a01b0316612ff9565b61045d6004803603608081101561109157600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516613017565b3480156110c357600080fd5b5061045d600480360360208110156110da57600080fd5b50356001600160a01b03166131c9565b3480156110f657600080fd5b506105906004803603602081101561110d57600080fd5b50356001600160a01b03166133ce565b34801561112957600080fd5b506107116133ef565b34801561113e57600080fd5b5061045d6004803603604081101561115557600080fd5b506001600160a01b0381351690602001356133fe565b34801561117757600080fd5b5061045d600480360360c081101561118e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a0013515156134d2565b3480156111ce57600080fd5b5061045d600480360360208110156111e557600080fd5b50356001600160a01b0316613541565b34801561120157600080fd5b506109586004803603604081101561121857600080fd5b506001600160a01b0381358116916020013516613623565b34801561123c57600080fd5b506104976004803603606081101561125357600080fd5b506001600160a01b038135811691602081013590911690604001356136d0565b34801561127f57600080fd5b506105906004803603602081101561129657600080fd5b50356001600160a01b0316613766565b3480156112b257600080fd5b50610590600480360360208110156112c957600080fd5b50356001600160a01b031661380a565b3480156112e557600080fd5b5061045d600480360360208110156112fc57600080fd5b50356001600160a01b031661382b565b34801561131857600080fd5b5061045d6004803603604081101561132f57600080fd5b506001600160a01b0381351690602001351515613946565b34801561135357600080fd5b5061045d6004803603602081101561136a57600080fd5b50356001600160a01b0316613a7d565b34801561138657600080fd5b506105906004803603602081101561139d57600080fd5b50356001600160a01b0316613b59565b3480156113b957600080fd5b50611406600480360360c08110156113d057600080fd5b5080356001600160a01b039081169160208101359091169060408101359060608101359060808101359060a0013560ff16613b77565b6040518083600281111561141657fe5b60ff1681526020018281526020019250505060405180910390f35b34801561143d57600080fd5b506105906004803603604081101561145457600080fd5b506001600160a01b0381358116916020013516613c09565b34801561147857600080fd5b5061045d6004803603606081101561148f57600080fd5b506001600160a01b038135811691602081013590911690604001351515613c38565b3480156114bd57600080fd5b5061045d600480360360608110156114d457600080fd5b506001600160a01b03813581169160208101359091169060400135613cca565b34801561150057600080fd5b506105906004803603604081101561151757600080fd5b506001600160a01b0381358116916020013516613df1565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061156357508115155b925050505b919050565b6001600160a01b03166000908152603660205260409020600d0154600160e01b900460ff1690565b606060388054806020026020016040519081016040528092919081815260200182805480156115ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115cf575b5050505050905090565b6034546001600160a01b031633146116405760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b61164a8482613e20565b6001600160a01b038416600090815260366020526040902061166b90613f5d565b60006116866116798661380a565b859063ffffffff613ff516565b6001600160a01b03861660009081526036602052604090209091506116b290828563ffffffff61404f16565b6116be858460006140ad565b5050505050565b6001600160a01b038083166000908152603660209081526040808320600c015481516370a0823160e01b8152868616600482015291519394169283926370a082319260248082019391829003018186803b15801561172257600080fd5b505afa158015611736573d6000803e3d6000fd5b505050506040513d602081101561174c57600080fd5b50519150505b92915050565b6001600160a01b03166000908152603660205260409020600d0154600160d01b900460ff1690565b6001600160a01b038082166000908152603760209081526040808320938616835292905290812080546117b7576000915050611752565b60008160030154116117ca5760026117cd565b60015b949350505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561181957600080fd5b505afa15801561182d573d6000803e3d6000fd5b505050506040513d602081101561184357600080fd5b50516001600160a01b03161461188a5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b039182166000908152603660205260409020600d0180546001600160a01b03191691909216179055565b6034546001600160a01b031633146119045760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b61190c614252565b6001600160a01b0316836001600160a01b0316146119815734156119615760405162461bcd60e51b81526004018080602001828103825260328152602001806156866032913960400191505060405180910390fd5b61197c6001600160a01b03841683308463ffffffff61426a16565b611a81565b803410156119c05760405162461bcd60e51b81526004018080602001828103825260358152602001806155bb6035913960400191505060405180910390fd5b80341115611a815760006119da348363ffffffff6142c416565b6040519091506000906001600160a01b0385169061c35090859084818181858888f193505050503d8060008114611a2d576040519150601f19603f3d011682016040523d82523d6000602084013e611a32565b606091505b50509050806116be576040805162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c881bd9881155120819985a5b195960521b604482015290519081900360640190fd5b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611aca57600080fd5b505afa158015611ade573d6000803e3d6000fd5b505050506040513d6020811015611af457600080fd5b50516001600160a01b031614611b3b5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03909116600090815260366020526040902060090155565b6001600160a01b039081166000908152603660205260409020600c01541690565b60345460009081906001600160a01b03163314611bc95760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b600080611bd6898961274c565b9250509150611be9898984848b8a614306565b611bf7898989848a8a614335565b611c03896000896140ad565b611c0d898961445a565b999098509650505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611c5f57600080fd5b505afa158015611c73573d6000803e3d6000fd5b505050506040513d6020811015611c8957600080fd5b50516001600160a01b031614611cd05760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60e01b19169055565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611d3b57600080fd5b505afa158015611d4f573d6000803e3d6000fd5b505050506040513d6020811015611d6557600080fd5b50516001600160a01b031614611dac5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b0380851660009081526036602052604080822081516304dda73560e21b8152600481019190915286841660248201526044810186905292841660648401525173__$2ec35834968386f54fa313129cf94664e4$__926313769cd4926084808301939192829003018186803b158015611e2a57600080fd5b505af4158015611e3e573d6000803e3d6000fd5b50505050611e4b846144ec565b50505050565b6001600160a01b031660009081526036602052604090206006015490565b6001600160a01b03166000908152603660205260409020600d0154600160e81b900460ff1690565b6001600160a01b03166000908152603660205260409020600d0154600160a01b900464ffffffffff1690565b60388181548110611ed057fe5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03166000908152603660205260409020600d0154600160c81b900460ff1690565b6001600160a01b03166000908152603660205260409020600b81015460088201546009830154600d909301549193909291600160d01b900460ff1690565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611f9457600080fd5b505afa158015611fa8573d6000803e3d6000fd5b505050506040513d6020811015611fbe57600080fd5b50516001600160a01b0316146120055760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b61200d614590565b565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561205357600080fd5b505afa158015612067573d6000803e3d6000fd5b505050506040513d602081101561207d57600080fd5b50516001600160a01b0316146120c45760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b039091166000908152603660205260409020600b0155565b6001600160a01b0390811660009081526037602090815260408083209490931682529290925290206004015464ffffffffff1690565b6034546001600160a01b031633146121625760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b61216e8988888561462b565b612177886146e4565b6121848988888786614708565b612190898760006140ad565b806121b0576121b08860006121ab888763ffffffff613ff516565b6140ad565b505050505050505050565b6001600160a01b039081166000908152603660205260409020600d01541690565b6001600160a01b0380821660009081526037602090815260408083209386168352929052206003015492915050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561224f57600080fd5b505afa158015612263573d6000803e3d6000fd5b505050506040513d602081101561227957600080fd5b50516001600160a01b0316146122c05760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b039091166000908152603660205260409020600a0155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561232357600080fd5b505afa158015612337573d6000803e3d6000fd5b505050506040513d602081101561234d57600080fd5b50516001600160a01b0316146123945760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60e81b1916600160e81b179055565b6001600160a01b031660009081526036602052604090206002015490565b6001600160a01b0380821660009081526036602090815260408083206035548251631b0c55dd60e11b815292519495919486949190921692633618abba9260048083019392829003018186803b15801561243857600080fd5b505afa15801561244c573d6000803e3d6000fd5b505050506040513d602081101561246257600080fd5b505160058301549091506124fc57806001600160a01b031663bb85c0bb856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156124c657600080fd5b505afa1580156124da573d6000803e3d6000fd5b505050506040513d60208110156124f057600080fd5b50519250611568915050565b506005015492915050565b6034546001600160a01b031633146125505760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b80341561258e5760405162461bcd60e51b81526004018080602001828103825260368152602001806155356036913960400191505060405180910390fd5b612596614252565b6001600160a01b0316846001600160a01b0316146125cd576125c86001600160a01b038516828563ffffffff6147ba16565b611e4b565b6040516000906001600160a01b0383169061c35090869084818181858888f193505050503d8060008114611a2d576040519150601f19603f3d011682016040523d82523d6000602084013e611a32565b6001600160a01b038116600090815260366020526040812060048101546126c35780600d0160009054906101000a90046001600160a01b03166001600160a01b03166334762ca56040518163ffffffff1660e01b815260040160206040518083038186803b15801561268e57600080fd5b505afa1580156126a2573d6000803e3d6000fd5b505050506040513d60208110156126b857600080fd5b505191506115689050565b6004015492915050565b6001600160a01b031660009081526036602052604090206003015490565b6001600160a01b03908116600090815260376020908152604080832094909316825292909252902060040154600160281b900460ff1690565b6001600160a01b03166000908152603660205260409020600d0154600160d81b900460ff1690565b6001600160a01b038082166000908152603760209081526040808320938616835292905290812080548291829161278d5750600092508291508190506127d0565b80546001600160a01b03871660009081526036602052604081206127b290849061480c565b905081816127c6818363ffffffff6142c416565b9550955095505050505b9250925092565b6001600160a01b03166000908152603660205260409020600b015490565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561283957600080fd5b505afa15801561284d573d6000803e3d6000fd5b505050506040513d602081101561286357600080fd5b50516001600160a01b0316146128aa5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b038416600090815260366020526040808220815163126ee27360e11b81526004810191909152602481018690526044810185905260648101849052905173__$2ec35834968386f54fa313129cf94664e4$__926324ddc4e69260848082019391829003018186803b15801561292557600080fd5b505af4158015612939573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561298757600080fd5b505afa15801561299b573d6000803e3d6000fd5b505050506040513d60208110156129b157600080fd5b50516001600160a01b0316146129f85760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03811660009081526036602052604080822081516372efab5360e11b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__9263e5df56a69260248082019391829003018186803b158015612a5e57600080fd5b505af41580156116be573d6000803e3d6000fd5b6034546000906001600160a01b03163314612abe5760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b612ac98484846148fe565b612ad484848461494e565b612ae0846000806140ad565b506001600160a01b038083166000908152603760209081526040808320938716835292905220600301545b9392505050565b6034546001600160a01b03163314612b5b5760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b6001600160a01b0384166000908152603660205260409020612b7c90613f5d565b612b88846000846140ad565b8015611e4b57611e4b84846000613c38565b6001600160a01b031660009081526036602052604090206007015490565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612bfc57600080fd5b505afa158015612c10573d6000803e3d6000fd5b505050506040513d6020811015612c2657600080fd5b50516001600160a01b031614612c6d5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b0381166000908152603660205260409020805415801590612c99575060008160070154115b612cd45760405162461bcd60e51b815260040180806020018281038252602481526020018061577e6024913960400191505060405180910390fd5b600d01805460ff60e01b1916600160e01b17905550565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612d2f57600080fd5b505afa158015612d43573d6000803e3d6000fd5b505050506040513d6020811015612d5957600080fd5b50516001600160a01b031614612da05760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60d81b19169055565b6034546001600160a01b03163314612e105760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b6001600160a01b0384166000908152603660205260409020612e3190613f5d565b612e3d848360006140ad565b8015611e4b57611e4b84846001613c38565b6001600160a01b031660009081526036602052604090205490565b6001600160a01b038116600090815260366020526040812081612e8c826149b7565b905080612e9e57600092505050611568565b6000612ea985613766565b9050612ecb612ebe828463ffffffff613ff516565b839063ffffffff6149d416565b95945050505050565b6001600160a01b0381166000908152603660205260408120612b0b612ef8826149b7565b612f0185613766565b9063ffffffff613ff516565b6000612f17614a10565b60015490915060ff1680612f2e5750612f2e614a15565b80612f3a575060005481115b612f755760405162461bcd60e51b815260040180806020018281038252602e8152602001806157e7602e913960400191505060405180910390fd5b60015460ff16158015612f94576001805460ff19168117905560008290555b603580546001600160a01b0319166001600160a01b038516179055612fb7614590565b8015611a81576001805460ff19169055505050565b6001600160a01b031660009081526036602052604090206001015490565b6035546001600160a01b031681565b6001600160a01b03166000908152603660205260409020600a015490565b6034546001600160a01b031633146130605760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b80613069614252565b6001600160a01b0316856001600160a01b0316146130de5734156130be5760405162461bcd60e51b815260040180806020018281038252605f8152602001806156b8605f913960600191505060405180910390fd5b6130d96001600160a01b03861685838663ffffffff61426a16565b6116be565b8234101561311d5760405162461bcd60e51b81526004018080602001828103825260358152602001806155bb6035913960400191505060405180910390fd5b6040516000906001600160a01b0383169061c35090869084818181858888f193505050503d806000811461316d576040519150601f19603f3d011682016040523d82523d6000602084013e613172565b606091505b50509050806131c1576040805162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c881bd9881155120819985a5b195960521b604482015290519081900360640190fd5b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561320d57600080fd5b505afa158015613221573d6000803e3d6000fd5b505050506040513d602081101561323757600080fd5b50516001600160a01b03161461327e5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6038805460009190600019810190811061329457fe5b6000918252602090912001546001600160a01b039081169150821681146132ec5760405162461bcd60e51b815260040180806020018281038252603d815260200180615649603d913960400191505060405180910390fd5b6132f58161380a565b156133315760405162461bcd60e51b81526004018080602001828103825260308152602001806157176030913960400191505060405180910390fd5b6001600160a01b0381166000908152603660205260408120600d81018054600c830180546001600160a01b0319169055600b8301849055838355600783018490556008830184905560098301849055600a90920192909255600168ff00ffff000000000160a01b031916905560388054806133a857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6001600160a01b0381166000908152603660205260408120612b0b81614a1b565b6034546001600160a01b031681565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561344257600080fd5b505afa158015613456573d6000803e3d6000fd5b505050506040513d602081101561346c57600080fd5b50516001600160a01b0316146134b35760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03909116600090815260366020526040902060080155565b6034546001600160a01b0316331461351b5760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b61352786868685614a49565b613535868686868686614ab0565b6131c1868560006140ad565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561358557600080fd5b505afa158015613599573d6000803e3d6000fd5b505050506040513d60208110156135af57600080fd5b50516001600160a01b0316146135f65760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60d81b1916600160d81b179055565b6001600160a01b03808316600081815260366020908152604080832094861683526037825280832093835292905290812090918291829182918261366789896116c5565b8254909150613694576004909101549095506000945084935060ff600160281b9091041691506136c79050565b806136a5838563ffffffff61480c16565b6002840154600490940154919850965091945050600160281b900460ff169150505b92959194509250565b6001600160a01b038381166000818152603660209081526040808320948716835260378252808320938352929052908120600d830154919291600160d81b900460ff1661372257600092505050612b0b565b6004810154600160281b900460ff1615806137495750600d820154600160d01b900460ff16155b8061375c575061375986866116c5565b84115b9695505050505050565b600080613771614252565b6001600160a01b0316836001600160a01b03161415613791575047611752565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156137d757600080fd5b505afa1580156137eb573d6000803e3d6000fd5b505050506040513d602081101561380157600080fd5b50519392505050565b6001600160a01b0381166000908152603660205260408120611752906149b7565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561386f57600080fd5b505afa158015613883573d6000803e3d6000fd5b505050506040513d602081101561389957600080fd5b50516001600160a01b0316146138e05760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b038116600090815260366020526040808220815163041e0b2d60e51b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__926383c165a09260248082019391829003018186803b158015612a5e57600080fd5b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561398a57600080fd5b505afa15801561399e573d6000803e3d6000fd5b505050506040513d60208110156139b457600080fd5b50516001600160a01b0316146139fb5760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b0382166000908152603660205260408082208151637b1dd5df60e11b815260048101919091528315156024820152905173__$2ec35834968386f54fa313129cf94664e4$__9263f63babbe9260448082019391829003018186803b158015613a6957600080fd5b505af41580156131c1573d6000803e3d6000fd5b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015613ac157600080fd5b505afa158015613ad5573d6000803e3d6000fd5b505050506040513d6020811015613aeb57600080fd5b50516001600160a01b031614613b325760405162461bcd60e51b81526004018080602001828103825260378152602001806157476037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60e81b19169055565b6001600160a01b031660009081526036602052604090206009015490565b60345460009081906001600160a01b03163314613bc55760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b613bd28888888887614b2d565b6000613be089898787614c2c565b9050613bee896000806140ad565b80613bf98a8a61445a565b9250925050965096945050505050565b6001600160a01b0380821660009081526037602090815260408083209386168352929052206001015492915050565b6034546001600160a01b03163314613c815760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b6001600160a01b0391821660009081526037602090815260408083209590941682529390935291206004018054911515600160281b0265ff000000000019909216919091179055565b6034546001600160a01b03163314613d135760405162461bcd60e51b815260040180806020018281038252602a815260200180615815602a913960400191505060405180910390fd5b613d1b614252565b6001600160a01b0316836001600160a01b031614613d4d5761197c6001600160a01b038416838363ffffffff6147ba16565b6040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114613d9d576040519150601f19603f3d011682016040523d82523d6000602084013e613da2565b606091505b5050905080611e4b576040805162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c881bd9881155120819985a5b195960521b604482015290519081900360640190fd5b6001600160a01b0380821660009081526037602090815260408083209386168352929052206002015492915050565b60355460408051637744894b60e11b815290516000926001600160a01b03169163ee891296916004808301926020929190829003018186803b158015613e6557600080fd5b505afa158015613e79573d6000803e3d6000fd5b505050506040513d6020811015613e8f57600080fd5b50519050613e9b614252565b6001600160a01b0316836001600160a01b031614613ecd5761197c6001600160a01b038416828463ffffffff6147ba16565b6040516000906001600160a01b0383169084908381818185875af1925050503d8060008114613f18576040519150601f19603f3d011682016040523d82523d6000602084013e613f1d565b606091505b5050905080611e4b5760405162461bcd60e51b81526004018080602001828103825260248152602001806157c36024913960400191505060405180910390fd5b6000613f68826149b7565b90508015613ff1576001820154600d830154600091613f9491600160a01b900464ffffffffff16614d2a565b8354909150613faa90829063ffffffff614d7516565b83556004830154600d840154600091613fd091600160a01b900464ffffffffff16614dad565b9050613fe9846007015482614d7590919063ffffffff16565b600785015550505b5050565b600082820183811015612b0b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061407261405d84614dfc565b61406684614dfc565b9063ffffffff6149d416565b9050600061408e614081614e12565b839063ffffffff613ff516565b85549091506140a490829063ffffffff614d7516565b90945550505050565b6001600160a01b0380841660009081526036602052604081206006810154600d820154919390929182918291166357e37af0896140fd896140f18c612f0185613766565b9063ffffffff6142c416565b88600201548960030154896040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b15801561416a57600080fd5b505afa15801561417e573d6000803e3d6000fd5b505050506040513d606081101561419457600080fd5b50805160208083015160409384015160018a0184905560058a0182905560048a01819055600d8a01805464ffffffffff4216600160a01b0264ffffffffff60a01b19909116179055895460078b015486518681529485018490528487018b905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a25050505050505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611e4b908590614e22565b6000612b0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614fda565b6001600160a01b038616600090815260366020526040902061432790613f5d565b6131c1868686868686615071565b6001600160a01b038087166000818152603660209081526040808320948a1683526037825280832093835292905220600183600281111561437257fe5b141561438e576005820154600382015560006001820155614405565b600283600281111561439c57fe5b14156143b8576000600382015560078201546001820155614405565b6040805162461bcd60e51b815260206004820152601860248201527f496e76616c696420626f72726f772072617465206d6f64650000000000000000604482015290519081900360640190fd5b805461441d908690612f01908963ffffffff613ff516565b81556002810154614434908563ffffffff613ff516565b6002820155600401805464ffffffffff19164264ffffffffff1617905550505050505050565b6000806144678484611780565b9050600081600281111561447757fe5b1415614487576000915050611752565b600181600281111561449557fe5b146144bb576001600160a01b0384166000908152603660205260409020600401546117cd565b50506001600160a01b0390811660009081526037602090815260408083209490931682529290925290206003015490565b6000805b60385481101561453957826001600160a01b03166038828154811061451157fe5b6000918252602090912001546001600160a01b0316141561453157600191505b6001016144f0565b5080613ff157603880546001810182556000919091527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f4561990180546001600160a01b0384166001600160a01b03199091161790555050565b603560009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156145de57600080fd5b505afa1580156145f2573d6000803e3d6000fd5b505050506040513d602081101561460857600080fd5b5051603480546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b0380851660008181526036602090815260408083209488168352603782528083209383529290522061466382613f5d565b600061466f8787611780565b905060015b81600281111561468057fe5b14156146bb57600382015461469e908490869063ffffffff6151cd16565b60038201546146b6908490879063ffffffff61523d16565b6146db565b6146cb838563ffffffff61534816565b6146db838663ffffffff61536916565b50505050505050565b6001600160a01b038116600090815260366020526040902061470590613f5d565b50565b6001600160a01b03808516600090815260376020908152604080832093891683529281528282206036909152919020815461474f9086906140f1908663ffffffff613ff516565b8255600261475d8888611780565b600281111561476857fe5b141561477957600781015460018301555b831561479a576002820154614794908563ffffffff6142c416565b60028301555b50600401805464ffffffffff19164264ffffffffff161790555050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611a81908490614e22565b815460009061481d57506000611752565b600061482c8460000154614dfc565b60038501549091506000908190156148605760038601546004870154614859919064ffffffffff16614dad565b90506148a2565b61489f8660010154614066876007015461489389600401548a600d0160149054906101000a900464ffffffffff16614dad565b9063ffffffff614d7516565b90505b6148ba6148b5848363ffffffff614d7516565b6153c1565b86549092508214156148f557600486015464ffffffffff1642146148f55785546148eb90600163ffffffff613ff516565b9350505050611752565b50949350505050565b6001600160a01b0380841660008181526036602090815260408083209487168352603782528083209383529290522061493682613f5d565b60038101546116be908390859063ffffffff6151cd16565b6001600160a01b03808316600090815260376020908152604080832093871683529281528282206036909152919020815461498f908463ffffffff613ff516565b8255600501546003820155600401805464ffffffffff19164264ffffffffff16179055505050565b600061175282600301548360020154613ff590919063ffffffff16565b6000600282046117cd83614a046149f7876b033b2e3c9fd0803ce80000006153da565b849063ffffffff613ff516565b9063ffffffff61543316565b600790565b303b1590565b600080612b0b8360000154614893856001015486600d0160149054906101000a900464ffffffffff16614d2a565b6001600160a01b03808516600081815260366020908152604080832094881683526037825280832093835292905290812090614a858787611780565b6001600160a01b0388166000908152603660205260409020909150614aa990613f5d565b6001614674565b6001600160a01b038087166000818152603660209081526040808320948a16835260378252808320938352929052208054614af79087906140f1908763ffffffff613ff516565b8155600782015460018201558215614b185760006003820181905560018201555b6002810154614434908663ffffffff6142c416565b6001600160a01b03808616600081815260366020908152604080832094891683526037825280832093835292905220614b6582613f5d565b6001836002811115614b7357fe5b1415614ba5576003810154614b8f83878363ffffffff61523d16565b614b9f838663ffffffff61534816565b506146db565b6002836002811115614bb357fe5b1415614bdf576005820154614bce838763ffffffff61536916565b614b9f83868363ffffffff6151cd16565b6040805162461bcd60e51b815260206004820152601a60248201527f496e76616c69642072617465206d6f6465207265636569766564000000000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260376020908152604080832093881683529281528282206036909152918120909190826002856002811115614c6d57fe5b1415614c8e5750600581015460038301556000600183810191909155614cf2565b6001856002811115614c9c57fe5b1415614cbb575060006003830155600781015460018301556002614cf2565b60405162461bcd60e51b815260040180806020018281038252602381526020018061583f6023913960400191505060405180910390fd5b8254614d04908763ffffffff613ff516565b83556004909201805464ffffffffff19164264ffffffffff161790555095945050505050565b600080614d444264ffffffffff851663ffffffff6142c416565b90506000614d5861405d6301e13380614dfc565b9050612ecb614d65614e12565b612f01878463ffffffff614d7516565b6000612b0b6b033b2e3c9fd0803ce8000000614a04614d9a868663ffffffff6153da16565b6b019d971e4fe8401e7400000090613ff5565b600080614dc74264ffffffffff851663ffffffff6142c416565b90506000614ddf856301e1338063ffffffff61543316565b9050612ecb82614df06149f7614e12565b9063ffffffff61547516565b600061175282633b9aca0063ffffffff6153da16565b6b033b2e3c9fd0803ce800000090565b614e34826001600160a01b031661152f565b614e85576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310614ec35780518252601f199092019160209182019101614ea4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614f25576040519150601f19603f3d011682016040523d82523d6000602084013e614f2a565b606091505b509150915081614f81576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611e4b57808060200190516020811015614f9d57600080fd5b5051611e4b5760405162461bcd60e51b815260040180806020018281038252602a815260200180615862602a913960400191505060405180910390fd5b600081848411156150695760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561502e578181015183820152602001615016565b50505050905090810190601f16801561505b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600061507d8787611780565b6001600160a01b038816600090815260366020526040902090915060018260028111156150a657fe5b14156150ef576001600160a01b038088166000908152603760209081526040808320938c1683529290522060038101546150e9908390899063ffffffff61523d16565b50615113565b60028260028111156150fd57fe5b141561511357615113818763ffffffff61536916565b600061512985612f01898963ffffffff613ff516565b9050600184600281111561513957fe5b141561515c576005820154615157908390839063ffffffff6151cd16565b6121b0565b600284600281111561516a57fe5b141561518057615157828263ffffffff61534816565b6040805162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206e657720626f72726f772072617465206d6f646500000000604482015290519081900360640190fd5b60028301546151e2818463ffffffff613ff516565b600285015560006151f68361489386614dfc565b9050600061520b866006015461489385614dfc565b905061522d61521d8760020154614dfc565b614066848463ffffffff613ff516565b8660060181905550505050505050565b8183600201541015615296576040805162461bcd60e51b815260206004820152601a60248201527f496e76616c696420616d6f756e7420746f206465637265617365000000000000604482015290519081900360640190fd5b60028301546152ab818463ffffffff6142c416565b600285018190556152c3575060006006840155611a81565b60006152d28361489386614dfc565b905060006152e7866006015461489385614dfc565b9050818110156153285760405162461bcd60e51b81526004018080602001828103825260238152602001806156266023913960400191505060405180910390fd5b61522d6153388760020154614dfc565b614066838563ffffffff6142c416565b600382015461535d908263ffffffff613ff516565b82600301819055505050565b80826003015410156153ac5760405162461bcd60e51b815260040180806020018281038252605081526020018061556b6050913960600191505060405180910390fd5b600382015461535d908263ffffffff6142c416565b6000631dcd6500612b0b633b9aca00614a048386613ff5565b6000826153e957506000611752565b828202828482816153f657fe5b0414612b0b5760405162461bcd60e51b81526004018080602001828103825260218152602001806157a26021913960400191505060405180910390fd5b6000612b0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506154cf565b600060028206615491576b033b2e3c9fd0803ce8000000615493565b825b90506002820491505b8115611752576154ac8384614d75565b925060028206156154c4576154c18184614d75565b90505b60028204915061549c565b6000818361551e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561502e578181015183820152602001615016565b50600083858161552a57fe5b049594505050505056fe466565206c69717569646174696f6e20646f6573206e6f74207265717569726520616e79207472616e73666572206f662076616c756554686520616d6f756e742074686174206973206265696e6720737562747261637465642066726f6d20746865207661726961626c6520746f74616c20626f72726f777320697320696e636f727265637454686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d617463684f6e6c7920636f6e7472616374732063616e2073656e6420657468657220746f20746865204c656e64696e6720706f6f6c20636f726554686520616d6f756e747320746f20737562747261637420646f6e2774206d6174636852657365727665206265696e672072656d6f76656420697320646966666572656e74207468616e20746865207265736572766520726571756573746564557365722069732073656e64696e672045544820616c6f6e67207769746820746865204552433230207472616e736665722e557365722069732073656e64696e672045544820616c6f6e67207769746820746865204552433230207472616e736665722e20436865636b207468652076616c756520617474726962757465206f6620746865207472616e73616374696f6e43616e6e6f742072656d6f7665206120726573657276652077697468206c6971756964697479206465706f73697465645468652063616c6c6572206d7573742062652061206c656e64696e6720706f6f6c20636f6e666967757261746f7220636f6e74726163745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220746f20746f6b656e206469737472696275746f72206661696c6564436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652063616c6c6572206d7573742062652061206c656e64696e6720706f6f6c20636f6e7472616374496e76616c696420696e7465726573742072617465206d6f64652072656365697665645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122085ecebc0b6ea7654d4fd399b74f9b075839bf5fe9c23bda63907b987cbec1fe264736f6c63430006080033"; + +export interface LendingPoolCoreLibraryAddresses { + ["__$2ec35834968386f54fa313129cf94664e4$__"]: string; +} diff --git a/types/LendingPoolDataProvider.d.ts b/types/LendingPoolDataProvider.d.ts new file mode 100644 index 00000000..234e254b --- /dev/null +++ b/types/LendingPoolDataProvider.d.ts @@ -0,0 +1,448 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface LendingPoolDataProviderInterface extends Interface { + functions: { + DATA_PROVIDER_REVISION: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + HEALTH_FACTOR_LIQUIDATION_THRESHOLD: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + addressesProvider: TypedFunctionDescription<{ encode([]: []): string }>; + + balanceDecreaseAllowed: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + calculateCollateralNeededInETH: TypedFunctionDescription<{ + encode([ + _reserve, + _amount, + _fee, + _userCurrentBorrowBalanceTH, + _userCurrentFeesETH, + _userCurrentLtv + ]: [ + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + calculateUserGlobalData: TypedFunctionDescription<{ + encode([_user]: [string]): string; + }>; + + core: TypedFunctionDescription<{ encode([]: []): string }>; + + getHealthFactorLiquidationThreshold: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + getReserveConfigurationData: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveData: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getUserAccountData: TypedFunctionDescription<{ + encode([_user]: [string]): string; + }>; + + getUserReserveData: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + initialize: TypedFunctionDescription<{ + encode([_addressesProvider]: [string]): string; + }>; + }; + + events: {}; +} + +export class LendingPoolDataProvider extends Contract { + connect( + signerOrProvider: Signer | Provider | string + ): LendingPoolDataProvider; + attach(addressOrName: string): LendingPoolDataProvider; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): LendingPoolDataProvider; + once( + event: EventFilter | string, + listener: Listener + ): LendingPoolDataProvider; + addListener( + eventName: EventFilter | string, + listener: Listener + ): LendingPoolDataProvider; + removeAllListeners(eventName: EventFilter | string): LendingPoolDataProvider; + removeListener(eventName: any, listener: Listener): LendingPoolDataProvider; + + interface: LendingPoolDataProviderInterface; + + functions: { + DATA_PROVIDER_REVISION(): Promise; + + HEALTH_FACTOR_LIQUIDATION_THRESHOLD(): Promise; + + addressesProvider(): Promise; + + balanceDecreaseAllowed( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + calculateCollateralNeededInETH( + _reserve: string, + _amount: BigNumberish, + _fee: BigNumberish, + _userCurrentBorrowBalanceTH: BigNumberish, + _userCurrentFeesETH: BigNumberish, + _userCurrentLtv: BigNumberish + ): Promise; + + calculateUserGlobalData( + _user: string + ): Promise<{ + totalLiquidityBalanceETH: BigNumber; + totalCollateralBalanceETH: BigNumber; + totalBorrowBalanceETH: BigNumber; + totalFeesETH: BigNumber; + currentLtv: BigNumber; + currentLiquidationThreshold: BigNumber; + healthFactor: BigNumber; + healthFactorBelowThreshold: boolean; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: boolean; + }>; + + core(): Promise; + + getHealthFactorLiquidationThreshold(): Promise; + + getReserveConfigurationData( + _reserve: string + ): Promise<{ + ltv: BigNumber; + liquidationThreshold: BigNumber; + liquidationBonus: BigNumber; + rateStrategyAddress: string; + usageAsCollateralEnabled: boolean; + borrowingEnabled: boolean; + stableBorrowRateEnabled: boolean; + isActive: boolean; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: string; + 4: boolean; + 5: boolean; + 6: boolean; + 7: boolean; + }>; + + getReserveData( + _reserve: string + ): Promise<{ + totalLiquidity: BigNumber; + availableLiquidity: BigNumber; + totalBorrowsStable: BigNumber; + totalBorrowsVariable: BigNumber; + liquidityRate: BigNumber; + variableBorrowRate: BigNumber; + stableBorrowRate: BigNumber; + averageStableBorrowRate: BigNumber; + utilizationRate: BigNumber; + liquidityIndex: BigNumber; + variableBorrowIndex: BigNumber; + aTokenAddress: string; + lastUpdateTimestamp: number; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: BigNumber; + 8: BigNumber; + 9: BigNumber; + 10: BigNumber; + 11: string; + 12: number; + }>; + + getUserAccountData( + _user: string + ): Promise<{ + totalLiquidityETH: BigNumber; + totalCollateralETH: BigNumber; + totalBorrowsETH: BigNumber; + totalFeesETH: BigNumber; + availableBorrowsETH: BigNumber; + currentLiquidationThreshold: BigNumber; + ltv: BigNumber; + healthFactor: BigNumber; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: BigNumber; + }>; + + getUserReserveData( + _reserve: string, + _user: string + ): Promise<{ + currentATokenBalance: BigNumber; + currentBorrowBalance: BigNumber; + principalBorrowBalance: BigNumber; + borrowRateMode: BigNumber; + borrowRate: BigNumber; + liquidityRate: BigNumber; + originationFee: BigNumber; + variableBorrowIndex: BigNumber; + lastUpdateTimestamp: BigNumber; + usageAsCollateralEnabled: boolean; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: BigNumber; + 8: BigNumber; + 9: boolean; + }>; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + }; + + DATA_PROVIDER_REVISION(): Promise; + + HEALTH_FACTOR_LIQUIDATION_THRESHOLD(): Promise; + + addressesProvider(): Promise; + + balanceDecreaseAllowed( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + calculateCollateralNeededInETH( + _reserve: string, + _amount: BigNumberish, + _fee: BigNumberish, + _userCurrentBorrowBalanceTH: BigNumberish, + _userCurrentFeesETH: BigNumberish, + _userCurrentLtv: BigNumberish + ): Promise; + + calculateUserGlobalData( + _user: string + ): Promise<{ + totalLiquidityBalanceETH: BigNumber; + totalCollateralBalanceETH: BigNumber; + totalBorrowBalanceETH: BigNumber; + totalFeesETH: BigNumber; + currentLtv: BigNumber; + currentLiquidationThreshold: BigNumber; + healthFactor: BigNumber; + healthFactorBelowThreshold: boolean; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: boolean; + }>; + + core(): Promise; + + getHealthFactorLiquidationThreshold(): Promise; + + getReserveConfigurationData( + _reserve: string + ): Promise<{ + ltv: BigNumber; + liquidationThreshold: BigNumber; + liquidationBonus: BigNumber; + rateStrategyAddress: string; + usageAsCollateralEnabled: boolean; + borrowingEnabled: boolean; + stableBorrowRateEnabled: boolean; + isActive: boolean; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: string; + 4: boolean; + 5: boolean; + 6: boolean; + 7: boolean; + }>; + + getReserveData( + _reserve: string + ): Promise<{ + totalLiquidity: BigNumber; + availableLiquidity: BigNumber; + totalBorrowsStable: BigNumber; + totalBorrowsVariable: BigNumber; + liquidityRate: BigNumber; + variableBorrowRate: BigNumber; + stableBorrowRate: BigNumber; + averageStableBorrowRate: BigNumber; + utilizationRate: BigNumber; + liquidityIndex: BigNumber; + variableBorrowIndex: BigNumber; + aTokenAddress: string; + lastUpdateTimestamp: number; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: BigNumber; + 8: BigNumber; + 9: BigNumber; + 10: BigNumber; + 11: string; + 12: number; + }>; + + getUserAccountData( + _user: string + ): Promise<{ + totalLiquidityETH: BigNumber; + totalCollateralETH: BigNumber; + totalBorrowsETH: BigNumber; + totalFeesETH: BigNumber; + availableBorrowsETH: BigNumber; + currentLiquidationThreshold: BigNumber; + ltv: BigNumber; + healthFactor: BigNumber; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: BigNumber; + }>; + + getUserReserveData( + _reserve: string, + _user: string + ): Promise<{ + currentATokenBalance: BigNumber; + currentBorrowBalance: BigNumber; + principalBorrowBalance: BigNumber; + borrowRateMode: BigNumber; + borrowRate: BigNumber; + liquidityRate: BigNumber; + originationFee: BigNumber; + variableBorrowIndex: BigNumber; + lastUpdateTimestamp: BigNumber; + usageAsCollateralEnabled: boolean; + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: BigNumber; + 4: BigNumber; + 5: BigNumber; + 6: BigNumber; + 7: BigNumber; + 8: BigNumber; + 9: boolean; + }>; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + + filters: {}; + + estimate: { + DATA_PROVIDER_REVISION(): Promise; + + HEALTH_FACTOR_LIQUIDATION_THRESHOLD(): Promise; + + addressesProvider(): Promise; + + balanceDecreaseAllowed( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + calculateCollateralNeededInETH( + _reserve: string, + _amount: BigNumberish, + _fee: BigNumberish, + _userCurrentBorrowBalanceTH: BigNumberish, + _userCurrentFeesETH: BigNumberish, + _userCurrentLtv: BigNumberish + ): Promise; + + calculateUserGlobalData(_user: string): Promise; + + core(): Promise; + + getHealthFactorLiquidationThreshold(): Promise; + + getReserveConfigurationData(_reserve: string): Promise; + + getReserveData(_reserve: string): Promise; + + getUserAccountData(_user: string): Promise; + + getUserReserveData(_reserve: string, _user: string): Promise; + + initialize(_addressesProvider: string): Promise; + }; +} diff --git a/types/LendingPoolDataProviderFactory.ts b/types/LendingPoolDataProviderFactory.ts new file mode 100644 index 00000000..ac967199 --- /dev/null +++ b/types/LendingPoolDataProviderFactory.ts @@ -0,0 +1,505 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { LendingPoolDataProvider } from "./LendingPoolDataProvider"; + +export class LendingPoolDataProviderFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): LendingPoolDataProvider { + return super.attach(address) as LendingPoolDataProvider; + } + connect(signer: Signer): LendingPoolDataProviderFactory { + return super.connect(signer) as LendingPoolDataProviderFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): LendingPoolDataProvider { + return new Contract( + address, + _abi, + signerOrProvider + ) as LendingPoolDataProvider; + } +} + +const _abi = [ + { + inputs: [], + name: "DATA_PROVIDER_REVISION", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "HEALTH_FACTOR_LIQUIDATION_THRESHOLD", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "addressesProvider", + outputs: [ + { + internalType: "contract LendingPoolAddressesProvider", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "balanceDecreaseAllowed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "_fee", + type: "uint256" + }, + { + internalType: "uint256", + name: "_userCurrentBorrowBalanceTH", + type: "uint256" + }, + { + internalType: "uint256", + name: "_userCurrentFeesETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "_userCurrentLtv", + type: "uint256" + } + ], + name: "calculateCollateralNeededInETH", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "calculateUserGlobalData", + outputs: [ + { + internalType: "uint256", + name: "totalLiquidityBalanceETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalCollateralBalanceETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalBorrowBalanceETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalFeesETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "currentLtv", + type: "uint256" + }, + { + internalType: "uint256", + name: "currentLiquidationThreshold", + type: "uint256" + }, + { + internalType: "uint256", + name: "healthFactor", + type: "uint256" + }, + { + internalType: "bool", + name: "healthFactorBelowThreshold", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "core", + outputs: [ + { + internalType: "contract LendingPoolCore", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "getHealthFactorLiquidationThreshold", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "pure", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveConfigurationData", + outputs: [ + { + internalType: "uint256", + name: "ltv", + type: "uint256" + }, + { + internalType: "uint256", + name: "liquidationThreshold", + type: "uint256" + }, + { + internalType: "uint256", + name: "liquidationBonus", + type: "uint256" + }, + { + internalType: "address", + name: "rateStrategyAddress", + type: "address" + }, + { + internalType: "bool", + name: "usageAsCollateralEnabled", + type: "bool" + }, + { + internalType: "bool", + name: "borrowingEnabled", + type: "bool" + }, + { + internalType: "bool", + name: "stableBorrowRateEnabled", + type: "bool" + }, + { + internalType: "bool", + name: "isActive", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveData", + outputs: [ + { + internalType: "uint256", + name: "totalLiquidity", + type: "uint256" + }, + { + internalType: "uint256", + name: "availableLiquidity", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalBorrowsStable", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalBorrowsVariable", + type: "uint256" + }, + { + internalType: "uint256", + name: "liquidityRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "variableBorrowRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "stableBorrowRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "averageStableBorrowRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "utilizationRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "liquidityIndex", + type: "uint256" + }, + { + internalType: "uint256", + name: "variableBorrowIndex", + type: "uint256" + }, + { + internalType: "address", + name: "aTokenAddress", + type: "address" + }, + { + internalType: "uint40", + name: "lastUpdateTimestamp", + type: "uint40" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserAccountData", + outputs: [ + { + internalType: "uint256", + name: "totalLiquidityETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalCollateralETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalBorrowsETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "totalFeesETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "availableBorrowsETH", + type: "uint256" + }, + { + internalType: "uint256", + name: "currentLiquidationThreshold", + type: "uint256" + }, + { + internalType: "uint256", + name: "ltv", + type: "uint256" + }, + { + internalType: "uint256", + name: "healthFactor", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserReserveData", + outputs: [ + { + internalType: "uint256", + name: "currentATokenBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "currentBorrowBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "principalBorrowBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "borrowRateMode", + type: "uint256" + }, + { + internalType: "uint256", + name: "borrowRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "liquidityRate", + type: "uint256" + }, + { + internalType: "uint256", + name: "originationFee", + type: "uint256" + }, + { + internalType: "uint256", + name: "variableBorrowIndex", + type: "uint256" + }, + { + internalType: "uint256", + name: "lastUpdateTimestamp", + type: "uint256" + }, + { + internalType: "bool", + name: "usageAsCollateralEnabled", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract LendingPoolAddressesProvider", + name: "_addressesProvider", + type: "address" + } + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x60806040526000805534801561001457600080fd5b50612a01806100246000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806376e9d6151161008c578063c3525c2811610066578063c3525c28146103e4578063c4d66de8146103ec578063c72c4d1014610414578063f2f4eb2614610438576100cf565b806376e9d6151461032b5780638daf609f14610375578063bf92857c1461037d576100cf565b806312737c33146100d457806328dd2d011461012a5780632c6d0e9b146101aa57806335ea6a75146102135780633e150141146102ae5780633e44bee814610323575b600080fd5b610118600480360360c08110156100ea57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a00135610440565b60408051918252519081900360200190f35b6101586004803603604081101561014057600080fd5b506001600160a01b0381358116916020013516610633565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e0850152610100840152151561012083015251908190036101400190f35b6101d0600480360360208110156101c057600080fd5b50356001600160a01b0316610e1e565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c0840152151560e083015251908190036101000190f35b6102396004803603602081101561022957600080fd5b50356001600160a01b03166113c8565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e08801526101008701526101208601526101408501526001600160a01b031661016084015264ffffffffff1661018083015251908190036101a00190f35b6102d4600480360360208110156102c457600080fd5b50356001600160a01b0316611c6f565b604080519889526020890197909752878701959095526001600160a01b0390931660608701529015156080860152151560a0850152151560c0840152151560e083015251908190036101000190f35b610118611fe2565b6103616004803603606081101561034157600080fd5b506001600160a01b03813581169160208101359091169060400135611fee565b604080519115158252519081900360200190f35b6101186122e9565b6103a36004803603602081101561039357600080fd5b50356001600160a01b03166122ee565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b61011861232f565b6104126004803603602081101561040257600080fd5b50356001600160a01b031661233b565b005b61041c612477565b604080516001600160a01b039092168252519081900360200190f35b61041c612486565b6034546040805163288d4ff760e21b81526001600160a01b03898116600483015291516000938493169163a2353fdc916024808301926020929190829003018186803b15801561048f57600080fd5b505afa1580156104a3573d6000803e3d6000fd5b505050506040513d60208110156104b957600080fd5b505160355460408051631f94a27560e31b815290519293506000926001600160a01b039092169163fca513a891600480820192602092909190829003018186803b15801561050657600080fd5b505afa15801561051a573d6000803e3d6000fd5b505050506040513d602081101561053057600080fd5b5051905060006105eb600a84900a6105df6105518c8c63ffffffff61249516565b856001600160a01b031663b3596f078f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156105a757600080fd5b505afa1580156105bb573d6000803e3d6000fd5b505050506040513d60208110156105d157600080fd5b50519063ffffffff6124f816565b9063ffffffff61255116565b90506000610624866105df60646106188661060c8e8e63ffffffff61249516565b9063ffffffff61249516565b9063ffffffff6124f816565b9b9a5050505050505050505050565b600080600080600080600080600080603460009054906101000a90046001600160a01b03166001600160a01b03166334b3beee8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156106ad57600080fd5b505afa1580156106c1573d6000803e3d6000fd5b505050506040513d60208110156106d757600080fd5b5051604080516370a0823160e01b81526001600160a01b038e81166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561072357600080fd5b505afa158015610737573d6000803e3d6000fd5b505050506040513d602081101561074d57600080fd5b810190808051906020019092919050505099506000603460009054906101000a90046001600160a01b03166001600160a01b0316631ca19f198e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b1580156107e757600080fd5b505afa1580156107fb573d6000803e3d6000fd5b505050506040513d602081101561081157600080fd5b81019080805190602001909291905050509050603460009054906101000a90046001600160a01b03166001600160a01b0316639fb8afcd8e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060606040518083038186803b1580156108a957600080fd5b505afa1580156108bd573d6000803e3d6000fd5b505050506040513d60608110156108d357600080fd5b5080516020909101519a50985060018160028111156108ee57fe5b14156109ac57603460009054906101000a90046001600160a01b03166001600160a01b0316636fffab0c8e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b15801561097957600080fd5b505afa15801561098d573d6000803e3d6000fd5b505050506040513d60208110156109a357600080fd5b50519650610a5a565b60028160028111156109ba57fe5b1415610a5a57603460009054906101000a90046001600160a01b03166001600160a01b031663906c0a418e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610a2b57600080fd5b505afa158015610a3f573d6000803e3d6000fd5b505050506040513d6020811015610a5557600080fd5b505196505b806002811115610a6657fe5b9750603460009054906101000a90046001600160a01b03166001600160a01b031663c540148e8e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610ad357600080fd5b505afa158015610ae7573d6000803e3d6000fd5b505050506040513d6020811015610afd57600080fd5b81019080805190602001909291905050509550603460009054906101000a90046001600160a01b03166001600160a01b031663feab31ac8e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015610b9557600080fd5b505afa158015610ba9573d6000803e3d6000fd5b505050506040513d6020811015610bbf57600080fd5b81019080805190602001909291905050509450603460009054906101000a90046001600160a01b03166001600160a01b031663f6ea8d768e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015610c5757600080fd5b505afa158015610c6b573d6000803e3d6000fd5b505050506040513d6020811015610c8157600080fd5b81019080805190602001909291905050509350603460009054906101000a90046001600160a01b03166001600160a01b03166366d103f38e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015610d1957600080fd5b505afa158015610d2d573d6000803e3d6000fd5b505050506040513d6020811015610d4357600080fd5b81019080805190602001909291905050509250603460009054906101000a90046001600160a01b03166001600160a01b0316639e3c4f3b8e8e6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015610ddb57600080fd5b505afa158015610def573d6000803e3d6000fd5b505050506040513d6020811015610e0557600080fd5b50519a9d999c50979a5095989497939650919450929091565b6000806000806000806000806000603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015610e7a57600080fd5b505afa158015610e8e573d6000803e3d6000fd5b505050506040513d6020811015610ea457600080fd5b50519050610eb06128b9565b60345460408051630240bc6b60e21b815290516060926001600160a01b031691630902f1ac916004808301926000929190829003018186803b158015610ef557600080fd5b505afa158015610f09573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610f3257600080fd5b8101908080516040519392919084640100000000821115610f5257600080fd5b908301906020820185811115610f6757600080fd5b8251866020820283011164010000000082111715610f8457600080fd5b82525081516020918201928201910280838360005b83811015610fb1578181015183820152602001610f99565b50505050905001604052505050905060008090505b815181101561135c57818181518110610fdb57fe5b60200260200101518361014001906001600160a01b031690816001600160a01b031681525050603460009054906101000a90046001600160a01b03166001600160a01b031663e10076ad8461014001518f6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b03168152602001826001600160a01b03166001600160a01b031681526020019250505060806040518083038186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60808110156110b557600080fd5b5080516020820151604080840151606094850151151561012089015260e0880152928601529084018190521580156110ef57506060830151155b156110f957611354565b60345461014084015160408051635fc526ff60e01b81526001600160a01b03928316600482015290519190921691635fc526ff916024808301926080929190829003018186803b15801561114c57600080fd5b505afa158015611160573d6000803e3d6000fd5b505050506040513d608081101561117657600080fd5b508051602080830151604080850151606090950151151561010089015260c088019490945260a087015260808601829052600a9190910a85820152610140850151825163b3596f0760e01b81526001600160a01b03918216600482015292519087169263b3596f07926024808301939192829003018186803b1580156111fb57600080fd5b505afa15801561120f573d6000803e3d6000fd5b505050506040513d602081101561122557600080fd5b505183526040830151156112ec57600061125884602001516105df866040015187600001516124f890919063ffffffff16565b905061126a8d8263ffffffff61249516565b9c50836101000151801561128057508361012001515b156112ea576112958c8263ffffffff61249516565b9b506112be6112b18560a00151836124f890919063ffffffff16565b8a9063ffffffff61249516565b98506112e76112da8560c00151836124f890919063ffffffff16565b899063ffffffff61249516565b97505b505b6060830151156113545761132961131c84602001516105df866060015187600001516124f890919063ffffffff16565b8b9063ffffffff61249516565b99506113516112b184602001516105df86600001518760e001516124f890919063ffffffff16565b98505b600101610fc6565b5060008a1161136c57600061137c565b61137c878b63ffffffff61255116565b965060008a1161138d57600061139d565b61139d868b63ffffffff61255116565b95506113ab8a8a8a89612593565b9450670de0b6b3a764000085109350505050919395975091939597565b6000806000806000806000806000806000806000603460009054906101000a90046001600160a01b03166001600160a01b031663c33cfd908f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561144757600080fd5b505afa15801561145b573d6000803e3d6000fd5b505050506040513d602081101561147157600080fd5b81019080805190602001909291905050509c50603460009054906101000a90046001600160a01b03166001600160a01b031663e24030198f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156114ef57600080fd5b505afa158015611503573d6000803e3d6000fd5b505050506040513d602081101561151957600080fd5b81019080805190602001909291905050509b50603460009054906101000a90046001600160a01b03166001600160a01b0316637f90fec58f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561159757600080fd5b505afa1580156115ab573d6000803e3d6000fd5b505050506040513d60208110156115c157600080fd5b81019080805190602001909291905050509a50603460009054906101000a90046001600160a01b03166001600160a01b03166398bd47378f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561163f57600080fd5b505afa158015611653573d6000803e3d6000fd5b505050506040513d602081101561166957600080fd5b81019080805190602001909291905050509950603460009054906101000a90046001600160a01b03166001600160a01b031663c540148e8f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156116e757600080fd5b505afa1580156116fb573d6000803e3d6000fd5b505050506040513d602081101561171157600080fd5b81019080805190602001909291905050509850603460009054906101000a90046001600160a01b03166001600160a01b031663906c0a418f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561178f57600080fd5b505afa1580156117a3573d6000803e3d6000fd5b505050506040513d60208110156117b957600080fd5b81019080805190602001909291905050509750603460009054906101000a90046001600160a01b03166001600160a01b03166388079d888f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561183757600080fd5b505afa15801561184b573d6000803e3d6000fd5b505050506040513d602081101561186157600080fd5b81019080805190602001909291905050509650603460009054906101000a90046001600160a01b03166001600160a01b03166346bc0f288f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156118df57600080fd5b505afa1580156118f3573d6000803e3d6000fd5b505050506040513d602081101561190957600080fd5b81019080805190602001909291905050509550603460009054906101000a90046001600160a01b03166001600160a01b031663bfacad848f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561198757600080fd5b505afa15801561199b573d6000803e3d6000fd5b505050506040513d60208110156119b157600080fd5b81019080805190602001909291905050509450603460009054906101000a90046001600160a01b03166001600160a01b031663bd7fd79a8f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611a2f57600080fd5b505afa158015611a43573d6000803e3d6000fd5b505050506040513d6020811015611a5957600080fd5b81019080805190602001909291905050509350603460009054906101000a90046001600160a01b03166001600160a01b031663b701d0938f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611ad757600080fd5b505afa158015611aeb573d6000803e3d6000fd5b505050506040513d6020811015611b0157600080fd5b81019080805190602001909291905050509250603460009054906101000a90046001600160a01b03166001600160a01b03166334b3beee8f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611b7f57600080fd5b505afa158015611b93573d6000803e3d6000fd5b505050506040513d6020811015611ba957600080fd5b81019080805190602001909291905050509150603460009054906101000a90046001600160a01b03166001600160a01b0316634f1446098f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611c2757600080fd5b505afa158015611c3b573d6000803e3d6000fd5b505050506040513d6020811015611c5157600080fd5b50519c9e9b9d50999b989a9799509597949693959294919390929190565b600080600080600080600080603460009054906101000a90046001600160a01b03166001600160a01b0316635fc526ff8a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060806040518083038186803b158015611ce657600080fd5b505afa158015611cfa573d6000803e3d6000fd5b505050506040513d6080811015611d1057600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505090919250809650819950829a50505050603460009054906101000a90046001600160a01b03166001600160a01b0316639e6748488a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611dba57600080fd5b505afa158015611dce573d6000803e3d6000fd5b505050506040513d6020811015611de457600080fd5b505160345460408051632e79732b60e11b81526001600160a01b038d811660048301529151939550911691635cf2e65691602480820192602092909190829003018186803b158015611e3557600080fd5b505afa158015611e49573d6000803e3d6000fd5b505050506040513d6020811015611e5f57600080fd5b505160345460408051630283aeb760e11b81526001600160a01b038d8116600483015291519396509116916305075d6e91602480820192602092909190829003018186803b158015611eb057600080fd5b505afa158015611ec4573d6000803e3d6000fd5b505050506040513d6020811015611eda57600080fd5b5051603454604080516331da9b2760e21b81526001600160a01b038d81166004830152915193945091169163c76a6c9c91602480820192602092909190829003018186803b158015611f2b57600080fd5b505afa158015611f3f573d6000803e3d6000fd5b505050506040513d6020811015611f5557600080fd5b505160345460408051633570a20b60e11b81526001600160a01b038d811660048301529151939950911691636ae1441691602480820192602092909190829003018186803b158015611fa657600080fd5b505afa158015611fba573d6000803e3d6000fd5b505050506040513d6020811015611fd057600080fd5b50519799969850949695929491935091565b670de0b6b3a764000090565b6000611ff8612920565b60345460408051635fc526ff60e01b81526001600160a01b03888116600483015291519190921691635fc526ff916024808301926080929190829003018186803b15801561204557600080fd5b505afa158015612059573d6000803e3d6000fd5b505050506040513d608081101561206f57600080fd5b508051604082015160609092015115801561014085015260a0840192909252825280612119575060345460408051639e3c4f3b60e01b81526001600160a01b038881166004830152878116602483015291519190921691639e3c4f3b916044808301926020929190829003018186803b1580156120eb57600080fd5b505afa1580156120ff573d6000803e3d6000fd5b505050506040513d602081101561211557600080fd5b5051155b156121285760019150506122e2565b61213184610e1e565b505060808701525060608501526040840181905260208401919091521515905061215f5760019150506122e2565b60355460408051631f94a27560e31b815290516000926001600160a01b03169163fca513a8916004808301926020929190829003018186803b1580156121a457600080fd5b505afa1580156121b8573d6000803e3d6000fd5b505050506040513d60208110156121ce57600080fd5b505182516040805163b3596f0760e01b81526001600160a01b038a81166004830152915193945061223093600a9390930a926105df9289929087169163b3596f0791602480820192602092909190829003018186803b1580156105a757600080fd5b60c08301819052602083015161224b9163ffffffff6125e216565b60e08301819052612261576000925050506122e2565b6122ac8260e001516105df6122878560a001518660c001516124f890919063ffffffff16565b608086015160208701516122a09163ffffffff6124f816565b9063ffffffff6125e216565b610100830181905260e0830151604084015160608501516000936122d293929190612593565b670de0b6b3a76400001093505050505b9392505050565b600181565b60008060008060008060008061230389610e1e565b50959d50939b5091995097509094509250905061232287878785612624565b9350919395975091939597565b670de0b6b3a764000081565b6000612345612786565b60015490915060ff168061235c575061235c61278b565b80612368575060005481115b6123a35760405162461bcd60e51b815260040180806020018281038252602e81526020018061299e602e913960400191505060405180910390fd5b60015460ff161580156123c2576001805460ff19168117905560008290555b603580546001600160a01b0319166001600160a01b0385169081179091556040805163076b7fbb60e51b8152905163ed6ff76091600480820192602092909190829003018186803b15801561241657600080fd5b505afa15801561242a573d6000803e3d6000fd5b505050506040513d602081101561244057600080fd5b5051603480546001600160a01b0319166001600160a01b039092169190911790558015612472576001805460ff191690555b505050565b6035546001600160a01b031681565b6034546001600160a01b031681565b6000828201838110156124ef576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600082612507575060006124f2565b8282028284828161251457fe5b04146124ef5760405162461bcd60e51b815260040180806020018281038252602181526020018061297d6021913960400191505060405180910390fd5b60006124ef83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612791565b6000836125a357506000196125da565b6125d76125b6858563ffffffff61249516565b6125cb60646105df898763ffffffff6124f816565b9063ffffffff61283316565b90505b949350505050565b60006124ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061285f565b60008061263c60646105df888663ffffffff6124f816565b9050848110156126505760009150506125da565b612670612663868663ffffffff61249516565b829063ffffffff6125e216565b90506000603560009054906101000a90046001600160a01b03166001600160a01b031663fbeefc3c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156126c257600080fd5b505afa1580156126d6573d6000803e3d6000fd5b505050506040513d60208110156126ec57600080fd5b505160408051630e563a7d60e41b81523360048201526024810185905290516001600160a01b039092169163e563a7d091604480820192602092909190829003018186803b15801561273d57600080fd5b505afa158015612751573d6000803e3d6000fd5b505050506040513d602081101561276757600080fd5b5051905061277b828263ffffffff6125e216565b979650505050505050565b600190565b303b1590565b6000818361281d5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127e25781810151838201526020016127ca565b50505050905090810190601f16801561280f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161282957fe5b0495945050505050565b6000600282046125da836105df61285287670de0b6b3a76400006124f8565b849063ffffffff61249516565b600081848411156128b15760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156127e25781810151838201526020016127ca565b505050900390565b604051806101600160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160001515815260200160006001600160a01b031681525090565b60405180610160016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152509056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212204dec32370fdb6050034257123313969d8273ba205eaa127c7c6c9e207905a59564736f6c63430006080033"; diff --git a/types/LendingPoolFactory.ts b/types/LendingPoolFactory.ts index 1be46dbb..745ab8fc 100644 --- a/types/LendingPoolFactory.ts +++ b/types/LendingPoolFactory.ts @@ -1353,7 +1353,7 @@ const _abi = [ ]; const _bytecode = - "0x6080604052600060015534801561001557600080fd5b506001600055615a14806200002b6000396000f3fe6080604052600436106101fc5760003560e01c806373b2f2f21161010d578063c4d66de8116100a0578063d0fc81d21161006f578063d0fc81d214610b0d578063d15e005314610b22578063d2d0e06614610b55578063d466016f14610b8b578063e8ae2f5b14610bc457610242565b8063c4d66de814610a41578063c72c4d1014610a74578063c858f5f914610a89578063cd11238214610ad257610242565b80639895e3d8116100dc5780639895e3d81461090d578063a5bc826c14610956578063b736aaeb1461099b578063bf92857c146109d657610242565b806373b2f2f21461082b57806376e9d615146108665780638afaff02146108bd57806396e957c4146108d257610242565b80633e150141116101905780635a3b74b91161015f5780635a3b74b9146106685780635cffe9de146106a357806366bbd928146107765780636ee365f9146107af57806370fb84f4146107f257610242565b80633e1501411461052057806348ca1300146105b55780634fe7a6e5146105e8578063573ade811461062e57610242565b806328dd2d01116101cc57806328dd2d01146103845780633443a14b1461041857806335ea6a7514610451578063386497fd146104db57610242565b8062a718a9146102475780630902f1ac1461028b57806309eab60f146102f05780631d2118f91461034957610242565b366102425761020a33610bf7565b610240576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b610240600480360360a081101561025d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610c33565b34801561029757600080fd5b506102a0610ffa565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dc5781810151838201526020016102c4565b505050509050019250505060405180910390f35b3480156102fc57600080fd5b50610240600480360360c081101561031357600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160808201359160a001351661105c565b34801561035557600080fd5b506102406004803603604081101561036c57600080fd5b506001600160a01b03813581169160200135166111c3565b34801561039057600080fd5b506103bf600480360360408110156103a757600080fd5b506001600160a01b03813581169160200135166112a4565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015264ffffffffff16610100840152151561012083015251908190036101400190f35b34801561042457600080fd5b506102406004803603604081101561043b57600080fd5b506001600160a01b0381351690602001356115cb565b34801561045d57600080fd5b506104846004803603602081101561047457600080fd5b50356001600160a01b031661169a565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b3480156104e757600080fd5b5061050e600480360360208110156104fe57600080fd5b50356001600160a01b0316611986565b60408051918252519081900360200190f35b34801561052c57600080fd5b506105536004803603602081101561054357600080fd5b50356001600160a01b03166119ad565b604080519a8b5260208b0199909952898901979097526001600160a01b0395861660608a015293909416608088015290151560a0870152151560c086015290151560e08501521515610100840152151561012083015251908190036101400190f35b3480156105c157600080fd5b50610240600480360360208110156105d857600080fd5b50356001600160a01b0316611a23565b3480156105f457600080fd5b506106126004803603602081101561060b57600080fd5b5035611ad1565b604080516001600160a01b039092168252519081900360200190f35b6102406004803603608081101561064457600080fd5b506001600160a01b0381358116916020810135916040820135916060013516611af8565b34801561067457600080fd5b506102406004803603604081101561068b57600080fd5b506001600160a01b03813516906020013515156120ce565b3480156106af57600080fd5b50610240600480360360808110156106c657600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561070157600080fd5b82018360208201111561071357600080fd5b8035906020019184600183028401116401000000008311171561073557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612334945050505050565b34801561078257600080fd5b506102406004803603604081101561079957600080fd5b506001600160a01b0381351690602001356127dd565b3480156107bb57600080fd5b50610240600480360360608110156107d257600080fd5b506001600160a01b038135169060208101351515906040013515156128ac565b3480156107fe57600080fd5b506102406004803603604081101561081557600080fd5b506001600160a01b038135169060200135612a71565b34801561083757600080fd5b506102406004803603604081101561084e57600080fd5b506001600160a01b0381351690602001351515612b40565b34801561087257600080fd5b506108a96004803603606081101561088957600080fd5b506001600160a01b03813581169160208101359091169060400135612c28565b604080519115158252519081900360200190f35b3480156108c957600080fd5b5061050e612db8565b3480156108de57600080fd5b50610240600480360360408110156108f557600080fd5b506001600160a01b0381351690602001351515612dbd565b34801561091957600080fd5b506102406004803603608081101561093057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612ea5565b34801561096257600080fd5b506102406004803603608081101561097957600080fd5b506001600160a01b038135169060208101359060408101359060600135613041565b3480156109a757600080fd5b50610240600480360360408110156109be57600080fd5b506001600160a01b038135169060200135151561318a565b3480156109e257600080fd5b50610a09600480360360208110156109f957600080fd5b50356001600160a01b03166132d4565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a4d57600080fd5b5061024060048036036020811015610a6457600080fd5b50356001600160a01b0316613535565b348015610a8057600080fd5b5061061261367a565b348015610a9557600080fd5b5061024060048036036080811015610aac57600080fd5b5080356001600160a01b0316906020810135906040810135906060013561ffff16613689565b348015610ade57600080fd5b5061024060048036036040811015610af557600080fd5b506001600160a01b0381358116916020013516613d24565b348015610b1957600080fd5b5061050e613dda565b348015610b2e57600080fd5b5061050e60048036036020811015610b4557600080fd5b50356001600160a01b0316613de0565b61024060048036036060811015610b6b57600080fd5b5080356001600160a01b0316906020810135906040013561ffff16613e01565b348015610b9757600080fd5b5061024060048036036040811015610bae57600080fd5b506001600160a01b038135169060200135614070565b348015610bd057600080fd5b5061024060048036036020811015610be757600080fd5b50356001600160a01b031661413f565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c2b57508115155b949350505050565b60026000541415610c79576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d6020811015610cef57600080fd5b5051604080516001600160a01b038981166024830152888116604483015287811660648301526084820187905285151560a4808401919091528351808403909101815260c490920183526020820180516001600160e01b031662a718a960e01b17815292518251949550600094606094928716939282918083835b60208310610d895780518252601f199092019160209182019101610d6a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610de9576040519150601f19603f3d011682016040523d82523d6000602084013e610dee565b606091505b509150915081610e2a576040805162461bcd60e51b81526020600482015260026024820152610c8d60f21b604482015290519081900360640190fd5b60006060828060200190516040811015610e4357600080fd5b815160208301805160405192949293830192919084640100000000821115610e6a57600080fd5b908301906020820185811115610e7f57600080fd5b8251640100000000811182820188101715610e9957600080fd5b82525081516020918201929091019080838360005b83811015610ec6578181015183820152602001610eae565b50505050905090810190601f168015610ef35780820380516001836020036101000a031916815260200191505b506040525050509150915081600014610fe957806040516020018082805190602001908083835b60208310610f395780518252601f199092019160209182019101610f1a565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183529384905262461bcd60e51b84526004840181815282516024860152825192965094508493604401925085019080838360005b83811015610fae578181015183820152602001610f96565b50505050905090810190601f168015610fdb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505060016000555050505050505050565b6060603980548060200260200160405190810160405280929190818152602001828054801561105257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611034575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156110a057600080fd5b505afa1580156110b4573d6000803e3d6000fd5b505050506040513d60208110156110ca57600080fd5b50516001600160a01b03161461110c576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038087166000908152603760205260408082208151630b25f31560e01b815260048101919091528884166024820152878416604482015286841660648201526084810186905292841660a48401525173__$2ec35834968386f54fa313129cf94664e4$__92630b25f3159260c4808301939192829003018186803b15801561119a57600080fd5b505af41580156111ae573d6000803e3d6000fd5b505050506111bb86614270565b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b50516001600160a01b031614611273576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039182166000908152603760205260409020600c0180546001600160a01b03191691909216179055565b6001600160a01b038083166000908152603760209081526040808320600981015482516370a0823160e01b815287871660048201529251949586958695869586958695869586958695869593909216926370a08231926024808301939192829003018186803b15801561131657600080fd5b505afa15801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b50519a5061134e8c82614313565b909a50985061135d8c82614416565b80985081995050508060010154945080600a0160009054906101000a90046001600160a01b03166001600160a01b031663e78c9b3b8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d602081101561140357600080fd5b8101908080519060200190929190505050955080600a0160009054906101000a90046001600160a01b03166001600160a01b03166379ce6b8c8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d60208110156114ad57600080fd5b81019080805190602001909291905050509250603860008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a900460ff16915080600b0160009054906101000a90046001600160a01b03166001600160a01b031663ee9907a48d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561158857600080fd5b505afa15801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b50519a9d999c50979a5095989497939650919491929050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561160f57600080fd5b505afa158015611623573d6000803e3d6000fd5b505050506040513d602081101561163957600080fd5b50516001600160a01b03161461167b576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060060155565b6000806000806000806000806000806116b16156f2565b506001600160a01b03808c16600081815260376020908152604091829020825161026081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201548416610120820152600a8201548416610140820152600b8201548416610160820152600c9091015492831661018082015264ffffffffff600160a01b8404166101a082015260ff600160c81b8404811615156101c0830152600160d01b8404811615156101e0830152600160d81b840481161515610200830152600160e01b840481161515610220830152600160e81b90930490921615156102408301526117e4903063ffffffff6144e216565b8161014001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561182257600080fd5b505afa158015611836573d6000803e3d6000fd5b505050506040513d602081101561184c57600080fd5b5051610160830151604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561189657600080fd5b505afa1580156118aa573d6000803e3d6000fd5b505050506040513d60208110156118c057600080fd5b50516020848101516040808701516060880151610140890151835163487b7e7960e11b815293519495929491936001600160a01b03909116926390f6fcf292600480840193829003018186803b15801561191957600080fd5b505afa15801561192d573d6000803e3d6000fd5b505050506040513d602081101561194357600080fd5b810190808051906020019092919050505087600001518860800151896101a001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b03811660009081526037602052604081206119a79061458c565b92915050565b6001600160a01b039081166000908152603760205260409020600581015460068201546007830154600c840154600990940154929591949093808216939091169160ff600160d01b8304811692600160c81b8104821692600160d81b8204831692600160e01b8304811692600160e81b90041690565b60026000541415611a69576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0382168082526037602090815260408084203380865260388452828620948652939092528320909290918190611aad9085614313565b9092509050611ac5848660008063ffffffff6145cd16565b50506001600055505050565b60398181548110611ade57fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415611b3e576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b6002600055611b4b61578e565b6001600160a01b038086166000818152603760209081526040808320948716835260388252808320938352928152908290208251808401909352601383527223b2ba3a34b733903130b630b731b2b997171760691b9183019190915290611bb1906148d9565b611bbb8483614313565b602080860191825291855260408051808201909152601a81527f42616c616e6365732063616c63756c617465642c2025732025730000000000009281019290925284519051611c0b929190614a0f565b611c4260405180604001604052806015815260200174496e7465726573742072617465206d6f646520257360581b81525086614b60565b6000856002811115611c5057fe5b9050611c8960405180604001604052806015815260200174496e7465726573742072617465206d6f646520257360581b81525087614b60565b6001816002811115611c9757fe5b14611ca6578360200151611ca9565b83515b6060850190815260408051808201825260208082527f5061796261636b20616d6f756e7420257320737461626c652072617465202573818301529251600a870154835163e78c9b3b60e01b81526001600160a01b038b811660048301529451611d669694959394939092169263e78c9b3b92602480840193829003018186803b158015611d3557600080fd5b505afa158015611d49573d6000803e3d6000fd5b505050506040513d6020811015611d5f57600080fd5b5051614a0f565b6000198714158015611d7b5750836060015187105b15611d8857606084018790525b611dbc604051806040016040528060138152602001722b30b634b230ba34b733903932b830bc97171760691b8152506148d9565b73__$69254465eb8f179ea24caa73cf68b23524$__63d454c1cc848a8a858a8a600001518b602001518c60600151346040518a63ffffffff1660e01b8152600401808a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876002811115611e2e57fe5b60ff168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001838152602001828152602001995050505050505050505060006040518083038186803b158015611e8957600080fd5b505af4158015611e9d573d6000803e3d6000fd5b50505050611eaa83614ca8565b611edc60405180604001604052806011815260200170213ab93734b733903a37b5b2b73997171760791b8152506148d9565b6001816002811115611eea57fe5b1415611f6a57600a830154606085015160408051632770a7eb60e21b81526001600160a01b038981166004830152602482019390935290519190921691639dc29fac91604480830192600092919082900301818387803b158015611f4d57600080fd5b505af1158015611f61573d6000803e3d6000fd5b50505050611fe0565b600b830154606085015160408051632770a7eb60e21b81526001600160a01b038981166004830152602482019390935290519190921691639dc29fac91604480830192600092919082900301818387803b158015611fc757600080fd5b505af1158015611fdb573d6000803e3d6000fd5b505050505b6060840151611ffa9084908a90600063ffffffff6145cd16565b606084015161201b906001600160a01b038a1690600063ffffffff614d6016565b61202d886001600160a01b0316614e85565b1561206f57600061204b856060015134614ebb90919063ffffffff16565b9050801561206d5761206d6001600160a01b038a16338363ffffffff614efd16565b505b606084015160408051918252426020830152805133926001600160a01b0389811693908d16927f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc9281900390910190a450506001600055505050505050565b60026000541415612114576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663d73dac72968a968d9691959294603994169263fca513a8926004808201939291829003018186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b50516040516001600160e01b031960e089901b168152600481018781526001600160a01b0380881660248401526044830187905260648301869052831660a483015260c060848301908152845460c484018190529192909160e4909101908590801561226757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612249575b505097505050505050505060006040518083038186803b15801561228a57600080fd5b505af415801561229e573d6000803e3d6000fd5b5050825460ff19168515801591909117845591506122f290505760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a3612329565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b6002600054141561237a576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b60026000556123876157cb565b6001600160a01b0384166000818152603760205260409020906123b0903063ffffffff6144e216565b82526123d56127106123c986600963ffffffff614f7f16565b9063ffffffff614fd816565b606083018190526123f690612710906123c990610bb863ffffffff614f7f16565b6080830152815184111561243b5760405162461bcd60e51b815260040180806020018281038252603181526020018061581b6031913960400191505060405180910390fd5b60008260600151118015612453575060008260800151115b61248e5760405162461bcd60e51b81526004018080602001828103825260328152602001806159836032913960400191505060405180910390fd5b85806124aa6001600160a01b038816828863ffffffff614efd16565b816001600160a01b031663ee87255888888760600151896040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612531578181015183820152602001612519565b50505050905090810190601f16801561255e5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561258057600080fd5b505af1158015612594573d6000803e3d6000fd5b50600092506125b59150506001600160a01b0389163063ffffffff6144e216565b606086015186519192506125cf919063ffffffff61501a16565b811461260c5760405162461bcd60e51b81526004018080602001828103825260328152602001806158b06032913960400191505060405180910390fd5b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__63a023726490918a886000015161264a8a608001518b60600151614ebb90919063ffffffff16565b8a608001516040518663ffffffff1660e01b815260040180868152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060006040518083038186803b1580156126b157600080fd5b505af41580156126c5573d6000803e3d6000fd5b50505050612762603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561271a57600080fd5b505afa15801561272e573d6000803e3d6000fd5b505050506040513d602081101561274457600080fd5b505160808701516001600160a01b038b16919063ffffffff614efd16565b876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600160005550505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561282157600080fd5b505afa158015612835573d6000803e3d6000fd5b505050506040513d602081101561284b57600080fd5b50516001600160a01b03161461288d576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060080155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156128f057600080fd5b505afa158015612904573d6000803e3d6000fd5b505050506040513d602081101561291a57600080fd5b50516001600160a01b03161461295c576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b81156129ed576001600160a01b0383166000908152603760205260408082208151637b1dd5df60e11b815260048101919091528315156024820152905173__$2ec35834968386f54fa313129cf94664e4$__9263f63babbe9260448082019391829003018186803b1580156129d057600080fd5b505af41580156129e4573d6000803e3d6000fd5b50505050612a6c565b6001600160a01b03831660009081526037602052604080822081516372efab5360e11b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__9263e5df56a69260248082019391829003018186803b158015612a5357600080fd5b505af4158015612a67573d6000803e3d6000fd5b505050505b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612ab557600080fd5b505afa158015612ac9573d6000803e3d6000fd5b505050506040513d6020811015612adf57600080fd5b50516001600160a01b031614612b21576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060070155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612b8457600080fd5b505afa158015612b98573d6000803e3d6000fd5b505050506040513d6020811015612bae57600080fd5b50516001600160a01b031614612bf0576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160d81b0260ff60d81b19909216919091179055565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__634d9afd5e858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015612c9b57600080fd5b505afa158015612caf573d6000803e3d6000fd5b505050506040513d6020811015612cc557600080fd5b505160405160e089811b6001600160e01b03191682526001600160a01b0389811660048401908152898216602485015260448401899052606484018890526084840187905290841660c484015260a48301918252845460e484018190529092610104019085908015612d6057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612d42575b50509850505050505050505060206040518083038186803b158015612d8457600080fd5b505af4158015612d98573d6000803e3d6000fd5b505050506040513d6020811015612dae57600080fd5b5051949350505050565b600281565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612e0157600080fd5b505afa158015612e15573d6000803e3d6000fd5b505050506040513d6020811015612e2b57600080fd5b50516001600160a01b031614612e6d576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160e81b0260ff60e81b19909216919091179055565b60026000541415612eeb576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085209388168552603882528085208386529091528084208151630d9e1f7160e11b81526004810185905260248101939093526044830187905290519293909273__$69254465eb8f179ea24caa73cf68b23524$__92631b3c3ee2926064808301939192829003018186803b158015612f8157600080fd5b505af4158015612f95573d6000803e3d6000fd5b505050508260001415612fab57805460ff191681555b612fb482614ca8565b612fc7828760008763ffffffff6145cd16565b612fe16001600160a01b038716868663ffffffff614efd16565b846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051808381526020018281526020019250505060405180910390a35050600160005550505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561308557600080fd5b505afa158015613099573d6000803e3d6000fd5b505050506040513d60208110156130af57600080fd5b50516001600160a01b0316146130f1576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038416600090815260376020526040808220815163126ee27360e11b81526004810191909152602481018690526044810185905260648101849052905173__$2ec35834968386f54fa313129cf94664e4$__926324ddc4e69260848082019391829003018186803b15801561316c57600080fd5b505af4158015613180573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156131ce57600080fd5b505afa1580156131e2573d6000803e3d6000fd5b505050506040513d60208110156131f857600080fd5b50516001600160a01b03161461323a576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03821660009081526037602052604090208161326b57600c8101805460ff60e01b19169055612a6c565b80541580159061327f575060008160040154115b6132ba5760405162461bcd60e51b81526004018080602001828103825260248152602001806158e26024913960400191505060405180910390fd5b600c8101805460ff60e01b1916600160e01b179055505050565b600080600080600080600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63901d711489603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561334e57600080fd5b505afa158015613362573d6000803e3d6000fd5b505050506040513d602081101561337857600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c4909101908590801561340957602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116133eb575b5050965050505050505060c06040518083038186803b15801561342b57600080fd5b505af415801561343f573d6000803e3d6000fd5b505050506040513d60c081101561345557600080fd5b5080516020808301516040808501516060860151608087015160a090970151603654845163ab8bb39360e01b8152600481018990526024810187905260448101859052606481018490526001600160a01b0390911660848201529351969e50939c50909a50949750939550935073__$7347ff53b2b46c21e26a37164ae7f6739f$__9263ab8bb3939260a48083019392829003018186803b1580156134f957600080fd5b505af415801561350d573d6000803e3d6000fd5b505050506040513d602081101561352357600080fd5b50519698959750939594919390925090565b600061353f615074565b60025490915060ff16806135565750613556615079565b80613562575060015481115b61359d5760405162461bcd60e51b815260040180806020018281038252602e815260200180615955602e913960400191505060405180910390fd5b60025460ff161580156135be576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561361a57600080fd5b505afa15801561362e573d6000803e3d6000fd5b505050506040513d602081101561364457600080fd5b5051603680546001600160a01b0319166001600160a01b039092169190911790558015612a6c576002805460ff19169055505050565b6035546001600160a01b031681565b600260005414156136cf576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085203386526038835281862093865292825280852060088401546035548351631f94a27560e31b8152935195979296929561380195600a9390930a946123c9948d9493169263fca513a892600480840193829003018186803b15801561375357600080fd5b505afa158015613767573d6000803e3d6000fd5b505050506040513d602081101561377d57600080fd5b50516040805163b3596f0760e01b81526001600160a01b038e811660048301529151919092169163b3596f07916024808301926020929190829003018186803b1580156137c957600080fd5b505afa1580156137dd573d6000803e3d6000fd5b505050506040513d60208110156137f357600080fd5b50519063ffffffff614f7f16565b905073__$69254465eb8f179ea24caa73cf68b23524$__6305011d4884848a8a868b6019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561387957600080fd5b505afa15801561388d573d6000803e3d6000fd5b505050506040513d60208110156138a357600080fd5b50516040516001600160e01b031960e08e901b168152600481018c8152602482018c90526001600160a01b03808c166044840152606483018b9052608483018a905260a4830189905260c4830188905260e483018790526101048301869052831661014483015261016061012483019081528454610164840181905291929091610184909101908590801561396157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613943575b50509c5050505050505050505050505060006040518083038186803b15801561398957600080fd5b505af415801561399d573d6000803e3d6000fd5b505050506139aa83614ca8565b600c8301805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055600383015460018660028111156139df57fe5b60028111156139ea57fe5b1415613a6957600a84015460408051630ab714fb60e11b8152336004820152602481018a90526044810184905290516001600160a01b039092169163156e29f69160648082019260009290919082900301818387803b158015613a4c57600080fd5b505af1158015613a60573d6000803e3d6000fd5b50505050613ad7565b600b840154604080516340c10f1960e01b8152336004820152602481018a905290516001600160a01b03909216916340c10f199160448082019260009290919082900301818387803b158015613abe57600080fd5b505af1158015613ad2573d6000803e3d6000fd5b505050505b613aea848960008a63ffffffff6145cd16565b613b046001600160a01b038916338963ffffffff614efd16565b600080613b113387614313565b91509150613b4c60405180604001604052806014815260200173446562742062616c616e6365733a20257320257360601b8152508383614a0f565b613beb6040518060600160405280602e8152602001615927602e9139600b88015460408051633ba641e960e21b815233600482015290516001600160a01b039092169163ee9907a491602480820192602092909190829003018186803b158015613bb557600080fd5b505afa158015613bc9573d6000803e3d6000fd5b505050506040513d6020811015613bdf57600080fd5b50516004890154614a0f565b60408051808201825260138152725573657220737461626c65207261746520257360681b602080830191909152600a890154835163e78c9b3b60e01b81523360048201529351613c93946001600160a01b039092169263e78c9b3b9260248082019391829003018186803b158015613c6257600080fd5b505afa158015613c76573d6000803e3d6000fd5b505050506040513d6020811015613c8c57600080fd5b5051614b60565b61ffff8716336001600160a01b038c167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808c8c60018e6002811115613cd457fe5b6002811115613cdf57fe5b14613cee578b60020154613cf0565b885b60408051938452602084019290925282820152426060830152519081900360800190a4505060016000555050505050505050565b60026000541415613d6a576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0380841680835260376020908152604080852093861685526038825280852092855291815292819020905162461bcd60e51b815260048101938452602f6024820181905292939192829160440190615881823960400191505060405180910390fd5b60001981565b6001600160a01b03811660009081526037602052604081206119a79061507f565b60026000541415613e47576040805162461bcd60e51b815260206004820152601f60248201526000805160206157fb833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0384168082526037602090815260408084203385526038835281852093855292909152808320815163664f158360e01b8152600481018490526024810187905291519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263664f1583926044808301939192829003018186803b158015613ed357600080fd5b505af4158015613ee7573d6000803e3d6000fd5b5050506009830154604080516370a0823160e01b815233600482015290516001600160a01b03909216925060009183916370a08231916024808301926020929190829003018186803b158015613f3c57600080fd5b505afa158015613f50573d6000803e3d6000fd5b505050506040513d6020811015613f6657600080fd5b5051159050613f7484614ca8565b613f87848888600063ffffffff6145cd16565b8015613f9957825460ff191660011783555b604080516394362e8b60e01b81523360048201526024810188905290516001600160a01b038416916394362e8b91604480830192600092919082900301818387803b158015613fe757600080fd5b505af1158015613ffb573d6000803e3d6000fd5b50614015925050506001600160a01b038816876001614d60565b60408051878152426020820152815161ffff88169233926001600160a01b038c16927fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82929181900390910190a4505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156140b457600080fd5b505afa1580156140c8573d6000803e3d6000fd5b505050506040513d60208110156140de57600080fd5b50516001600160a01b031614614120576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060050155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561418357600080fd5b505afa158015614197573d6000803e3d6000fd5b505050506040513d60208110156141ad57600080fd5b50516001600160a01b0316146141ef576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038116600090815260376020526040808220815163041e0b2d60e51b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__926383c165a09260248082019391829003018186803b15801561425557600080fd5b505af4158015614269573d6000803e3d6000fd5b5050505050565b6000805b6039548110156142bd57826001600160a01b03166039828154811061429557fe5b6000918252602090912001546001600160a01b031614156142b557600191505b600101614274565b508061430f57603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b15801561436457600080fd5b505afa158015614378573d6000803e3d6000fd5b505050506040513d602081101561438e57600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156143df57600080fd5b505afa1580156143f3573d6000803e3d6000fd5b505050506040513d602081101561440957600080fd5b5051909590945092505050565b600a8101546040805163631a6fd560e11b81526001600160a01b03858116600483015291516000938493169163c634dfaa916024808301926020929190829003018186803b15801561446757600080fd5b505afa15801561447b573d6000803e3d6000fd5b505050506040513d602081101561449157600080fd5b5051600b8401546040805163631a6fd560e11b81526001600160a01b0388811660048301529151919092169163c634dfaa916024808301926020929190829003018186803b1580156143df57600080fd5b60006144ed83614e85565b1561450357506001600160a01b038116316119a7565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561455957600080fd5b505afa15801561456d573d6000803e3d6000fd5b505050506040513d602081101561458357600080fd5b50519392505050565b6000806145c683600401546145ba856002015486600c0160149054906101000a900464ffffffffff166150ad565b9063ffffffff61511216565b9392505050565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b15801561461457600080fd5b505afa158015614628573d6000803e3d6000fd5b505050506040513d602081101561463e57600080fd5b50519050600061465d6001600160a01b0386163063ffffffff6144e216565b9050614671856001600160a01b0316614e85565b1561468957614686813463ffffffff614ebb16565b90505b600c860154600090819081906001600160a01b03166357e37af0896146c4896146b8898d63ffffffff61501a16565b9063ffffffff614ebb16565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561471457600080fd5b505afa158015614728573d6000803e3d6000fd5b505050506040513d602081101561473e57600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561478757600080fd5b505afa15801561479b573d6000803e3d6000fd5b505050506040513d60208110156147b157600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b15801561481457600080fd5b505afa158015614828573d6000803e3d6000fd5b505050506040513d606081101561483e57600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b6040516020602482018181528351604484015283516000936a636f6e736f6c652e6c6f67938693928392606401918501908083838a5b8381101561492757818101518382015260200161490f565b50505050905090810190601f1680156149545780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663104c13eb60e21b178152905182519295509350839250908083835b602083106149af5780518252601f199092019160209182019101614990565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114614269576040519150601f19603f3d011682016040523d82523d6000602084013e614269565b60006a636f6e736f6c652e6c6f676001600160a01b03168484846040516024018080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b83811015614a75578181015183820152602001614a5d565b50505050905090810190601f168015614aa25780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663969cdd0360e01b178152905182519297509550859450925090508083835b60208310614b005780518252601f199092019160209182019101614ae1565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612a67576040519150601f19603f3d011682016040523d82523d6000602084013e612a67565b60006a636f6e736f6c652e6c6f676001600160a01b031683836040516024018080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015614bbf578181015183820152602001614ba7565b50505050905090810190601f168015614bec5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166309710a9d60e41b17815290518251929650945084935091508083835b60208310614c485780518252601f199092019160209182019101614c29565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146111bb576040519150601f19603f3d011682016040523d82523d6000602084013e6111bb565b6000614cb38261514a565b90508015614d3c576001820154600c830154600091614cdf91600160a01b900464ffffffffff1661524a565b8354909150614cf590829063ffffffff61511216565b83556002830154600c840154600091614d1b91600160a01b900464ffffffffff166150ad565b9050614d3484600401548261511290919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b81614d6a57612a6c565b614d7383614e85565b15614e6a5781341015614db75760405162461bcd60e51b815260040180806020018281038252603581526020018061584c6035913960400191505060405180910390fd5b8015614e6557600033614dd0348563ffffffff614ebb16565b60405161c35091906000818181858888f193505050503d8060008114614e12576040519150601f19603f3d011682016040523d82523d6000602084013e614e17565b606091505b5050905080614e63576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b612a6c565b612a6c6001600160a01b03841633308563ffffffff6152b616565b60006001600160a01b03821615806119a75750506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b60006145c683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615316565b80614f0757612a6c565b614f1083614e85565b15614f65576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114614e12576040519150601f19603f3d011682016040523d82523d6000602084013e614e17565b612a6c6001600160a01b038416838363ffffffff61537016565b600082614f8e575060006119a7565b82820282848281614f9b57fe5b04146145c65760405162461bcd60e51b81526004018080602001828103825260218152602001806159066021913960400191505060405180910390fd5b60006145c683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506153c2565b6000828201838110156145c6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600290565b303b1590565b6000806145c683600001546145ba856001015486600c0160149054906101000a900464ffffffffff1661524a565b6000806150c74264ffffffffff851663ffffffff614ebb16565b905060006150df856301e1338063ffffffff614fd816565b9050615109826150fd6150f0615427565b849063ffffffff61501a16565b9063ffffffff61543716565b95945050505050565b60006145c66b033b2e3c9fd0803ce80000006123c9615137868663ffffffff614f7f16565b6b019d971e4fe8401e740000009061501a565b60006119a782600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561519f57600080fd5b505afa1580156151b3573d6000803e3d6000fd5b505050506040513d60208110156151c957600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561521257600080fd5b505afa158015615226573d6000803e3d6000fd5b505050506040513d602081101561523c57600080fd5b50519063ffffffff61501a16565b6000806152644264ffffffffff851663ffffffff614ebb16565b9050600061528d6152786301e13380615491565b61528184615491565b9063ffffffff6154a716565b905061510961529a615427565b6152aa878463ffffffff61511216565b9063ffffffff61501a16565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526153109085906154ca565b50505050565b600081848411156153685760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fae578181015183820152602001610f96565b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612a6c9084906154ca565b600081836154115760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fae578181015183820152602001610f96565b50600083858161541d57fe5b0495945050505050565b6b033b2e3c9fd0803ce800000090565b600060028206615453576b033b2e3c9fd0803ce8000000615455565b825b90506002820491505b81156119a75761546e8384615112565b92506002820615615486576154838184615112565b90505b60028204915061545e565b60006119a782633b9aca0063ffffffff614f7f16565b600060028204610c2b836123c96150f0876b033b2e3c9fd0803ce8000000614f7f565b606061551f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661557b9092919063ffffffff16565b805190915015612a6c5780806020019051602081101561553e57600080fd5b5051612a6c5760405162461bcd60e51b815260040180806020018281038252602a8152602001806159b5602a913960400191505060405180910390fd5b6060610c2b8484600085606061559085610bf7565b6155e1576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106156205780518252601f199092019160209182019101615601565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615682576040519150601f19603f3d011682016040523d82523d6000602084013e615687565b606091505b5091509150811561569b579150610c2b9050565b8051156156ab5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610fae578181015183820152602001610f96565b6040805161026081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081019190915290565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005468657265206973206e6f7420656e6f756768206c697175696469747920617661696c61626c6520746f20626f72726f7754686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368496e746572657374207261746520726562616c616e636520636f6e646974696f6e732077657265206e6f74206d65745468652061637475616c2062616c616e6365206f66207468652070726f746f636f6c20697320696e636f6e73697374656e745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7755736572207661726961626c6520626f72726f7720696e646578202573207265736572766520696e646578202573436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652072657175657374656420616d6f756e7420697320746f6f20736d616c6c20666f72206120466c6173684c6f616e2e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220a2d03ef5d202ffa661388bc7d0010bd20213170222ad0eb0dbd313a91226573d64736f6c63430006080033"; + "0x6080604052600060015534801561001557600080fd5b5060016000556153098061002a6000396000f3fe6080604052600436106101fc5760003560e01c806373b2f2f21161010d578063c4d66de8116100a0578063d0fc81d21161006f578063d0fc81d214610b0d578063d15e005314610b22578063d2d0e06614610b55578063d466016f14610b8b578063e8ae2f5b14610bc457610242565b8063c4d66de814610a41578063c72c4d1014610a74578063c858f5f914610a89578063cd11238214610ad257610242565b80639895e3d8116100dc5780639895e3d81461090d578063a5bc826c14610956578063b736aaeb1461099b578063bf92857c146109d657610242565b806373b2f2f21461082b57806376e9d615146108665780638afaff02146108bd57806396e957c4146108d257610242565b80633e150141116101905780635a3b74b91161015f5780635a3b74b9146106685780635cffe9de146106a357806366bbd928146107765780636ee365f9146107af57806370fb84f4146107f257610242565b80633e1501411461052057806348ca1300146105b55780634fe7a6e5146105e8578063573ade811461062e57610242565b806328dd2d01116101cc57806328dd2d01146103845780633443a14b1461041857806335ea6a7514610451578063386497fd146104db57610242565b8062a718a9146102475780630902f1ac1461028b57806309eab60f146102f05780631d2118f91461034957610242565b366102425761020a33610bf7565b610240576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b610240600480360360a081101561025d57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610c33565b34801561029757600080fd5b506102a0610ffa565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102dc5781810151838201526020016102c4565b505050509050019250505060405180910390f35b3480156102fc57600080fd5b50610240600480360360c081101561031357600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160808201359160a001351661105c565b34801561035557600080fd5b506102406004803603604081101561036c57600080fd5b506001600160a01b03813581169160200135166111c3565b34801561039057600080fd5b506103bf600480360360408110156103a757600080fd5b506001600160a01b03813581169160200135166112a4565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015264ffffffffff16610100840152151561012083015251908190036101400190f35b34801561042457600080fd5b506102406004803603604081101561043b57600080fd5b506001600160a01b0381351690602001356115cb565b34801561045d57600080fd5b506104846004803603602081101561047457600080fd5b50356001600160a01b031661169a565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b3480156104e757600080fd5b5061050e600480360360208110156104fe57600080fd5b50356001600160a01b0316611986565b60408051918252519081900360200190f35b34801561052c57600080fd5b506105536004803603602081101561054357600080fd5b50356001600160a01b03166119ad565b604080519a8b5260208b0199909952898901979097526001600160a01b0395861660608a015293909416608088015290151560a0870152151560c086015290151560e08501521515610100840152151561012083015251908190036101400190f35b3480156105c157600080fd5b50610240600480360360208110156105d857600080fd5b50356001600160a01b0316611a23565b3480156105f457600080fd5b506106126004803603602081101561060b57600080fd5b5035611ad1565b604080516001600160a01b039092168252519081900360200190f35b6102406004803603608081101561064457600080fd5b506001600160a01b0381358116916020810135916040820135916060013516611af8565b34801561067457600080fd5b506102406004803603604081101561068b57600080fd5b506001600160a01b0381351690602001351515611ec2565b3480156106af57600080fd5b50610240600480360360808110156106c657600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561070157600080fd5b82018360208201111561071357600080fd5b8035906020019184600183028401116401000000008311171561073557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612128945050505050565b34801561078257600080fd5b506102406004803603604081101561079957600080fd5b506001600160a01b0381351690602001356125d1565b3480156107bb57600080fd5b50610240600480360360608110156107d257600080fd5b506001600160a01b038135169060208101351515906040013515156126a0565b3480156107fe57600080fd5b506102406004803603604081101561081557600080fd5b506001600160a01b038135169060200135612865565b34801561083757600080fd5b506102406004803603604081101561084e57600080fd5b506001600160a01b0381351690602001351515612934565b34801561087257600080fd5b506108a96004803603606081101561088957600080fd5b506001600160a01b03813581169160208101359091169060400135612a1c565b604080519115158252519081900360200190f35b3480156108c957600080fd5b5061050e612bac565b3480156108de57600080fd5b50610240600480360360408110156108f557600080fd5b506001600160a01b0381351690602001351515612bb1565b34801561091957600080fd5b506102406004803603608081101561093057600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612c99565b34801561096257600080fd5b506102406004803603608081101561097957600080fd5b506001600160a01b038135169060208101359060408101359060600135612e35565b3480156109a757600080fd5b50610240600480360360408110156109be57600080fd5b506001600160a01b0381351690602001351515612f7e565b3480156109e257600080fd5b50610a09600480360360208110156109f957600080fd5b50356001600160a01b03166130c8565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a4d57600080fd5b5061024060048036036020811015610a6457600080fd5b50356001600160a01b0316613329565b348015610a8057600080fd5b5061061261346e565b348015610a9557600080fd5b5061024060048036036080811015610aac57600080fd5b5080356001600160a01b0316906020810135906040810135906060013561ffff1661347d565b348015610ade57600080fd5b5061024060048036036040811015610af557600080fd5b506001600160a01b0381358116916020013516613a16565b348015610b1957600080fd5b5061050e613acc565b348015610b2e57600080fd5b5061050e60048036036020811015610b4557600080fd5b50356001600160a01b0316613ad2565b61024060048036036060811015610b6b57600080fd5b5080356001600160a01b0316906020810135906040013561ffff16613af3565b348015610b9757600080fd5b5061024060048036036040811015610bae57600080fd5b506001600160a01b038135169060200135613d62565b348015610bd057600080fd5b5061024060048036036020811015610be757600080fd5b50356001600160a01b0316613e31565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c2b57508115155b949350505050565b60026000541415610c79576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b158015610cc557600080fd5b505afa158015610cd9573d6000803e3d6000fd5b505050506040513d6020811015610cef57600080fd5b5051604080516001600160a01b038981166024830152888116604483015287811660648301526084820187905285151560a4808401919091528351808403909101815260c490920183526020820180516001600160e01b031662a718a960e01b17815292518251949550600094606094928716939282918083835b60208310610d895780518252601f199092019160209182019101610d6a565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610de9576040519150601f19603f3d011682016040523d82523d6000602084013e610dee565b606091505b509150915081610e2a576040805162461bcd60e51b81526020600482015260026024820152610c8d60f21b604482015290519081900360640190fd5b60006060828060200190516040811015610e4357600080fd5b815160208301805160405192949293830192919084640100000000821115610e6a57600080fd5b908301906020820185811115610e7f57600080fd5b8251640100000000811182820188101715610e9957600080fd5b82525081516020918201929091019080838360005b83811015610ec6578181015183820152602001610eae565b50505050905090810190601f168015610ef35780820380516001836020036101000a031916815260200191505b506040525050509150915081600014610fe957806040516020018082805190602001908083835b60208310610f395780518252601f199092019160209182019101610f1a565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183529384905262461bcd60e51b84526004840181815282516024860152825192965094508493604401925085019080838360005b83811015610fae578181015183820152602001610f96565b50505050905090810190601f168015610fdb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505060016000555050505050505050565b6060603980548060200260200160405190810160405280929190818152602001828054801561105257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611034575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156110a057600080fd5b505afa1580156110b4573d6000803e3d6000fd5b505050506040513d60208110156110ca57600080fd5b50516001600160a01b03161461110c576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038087166000908152603760205260408082208151630b25f31560e01b815260048101919091528884166024820152878416604482015286841660648201526084810186905292841660a48401525173__$2ec35834968386f54fa313129cf94664e4$__92630b25f3159260c4808301939192829003018186803b15801561119a57600080fd5b505af41580156111ae573d6000803e3d6000fd5b505050506111bb86613f62565b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561120757600080fd5b505afa15801561121b573d6000803e3d6000fd5b505050506040513d602081101561123157600080fd5b50516001600160a01b031614611273576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039182166000908152603760205260409020600c0180546001600160a01b03191691909216179055565b6001600160a01b038083166000908152603760209081526040808320600981015482516370a0823160e01b815287871660048201529251949586958695869586958695869586958695869593909216926370a08231926024808301939192829003018186803b15801561131657600080fd5b505afa15801561132a573d6000803e3d6000fd5b505050506040513d602081101561134057600080fd5b50519a5061134e8c82614005565b909a50985061135d8c82614108565b80985081995050508060010154945080600a0160009054906101000a90046001600160a01b03166001600160a01b031663e78c9b3b8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156113d957600080fd5b505afa1580156113ed573d6000803e3d6000fd5b505050506040513d602081101561140357600080fd5b8101908080519060200190929190505050955080600a0160009054906101000a90046001600160a01b03166001600160a01b03166379ce6b8c8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561148357600080fd5b505afa158015611497573d6000803e3d6000fd5b505050506040513d60208110156114ad57600080fd5b81019080805190602001909291905050509250603860008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a900460ff16915080600b0160009054906101000a90046001600160a01b03166001600160a01b031663ee9907a48d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561158857600080fd5b505afa15801561159c573d6000803e3d6000fd5b505050506040513d60208110156115b257600080fd5b50519a9d999c50979a5095989497939650919491929050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561160f57600080fd5b505afa158015611623573d6000803e3d6000fd5b505050506040513d602081101561163957600080fd5b50516001600160a01b03161461167b576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060060155565b6000806000806000806000806000806116b1615015565b506001600160a01b03808c16600081815260376020908152604091829020825161026081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201548416610120820152600a8201548416610140820152600b8201548416610160820152600c9091015492831661018082015264ffffffffff600160a01b8404166101a082015260ff600160c81b8404811615156101c0830152600160d01b8404811615156101e0830152600160d81b840481161515610200830152600160e01b840481161515610220830152600160e81b90930490921615156102408301526117e4903063ffffffff6141d416565b8161014001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561182257600080fd5b505afa158015611836573d6000803e3d6000fd5b505050506040513d602081101561184c57600080fd5b5051610160830151604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561189657600080fd5b505afa1580156118aa573d6000803e3d6000fd5b505050506040513d60208110156118c057600080fd5b50516020848101516040808701516060880151610140890151835163487b7e7960e11b815293519495929491936001600160a01b03909116926390f6fcf292600480840193829003018186803b15801561191957600080fd5b505afa15801561192d573d6000803e3d6000fd5b505050506040513d602081101561194357600080fd5b810190808051906020019092919050505087600001518860800151896101a001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b03811660009081526037602052604081206119a79061427e565b92915050565b6001600160a01b039081166000908152603760205260409020600581015460068201546007830154600c840154600990940154929591949093808216939091169160ff600160d01b8304811692600160c81b8104821692600160d81b8204831692600160e01b8304811692600160e81b90041690565b60026000541415611a69576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0382168082526037602090815260408084203380865260388452828620948652939092528320909290918190611aad9085614005565b9092509050611ac5848660008063ffffffff6142bf16565b50506001600055505050565b60398181548110611ade57fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415611b3e576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b6002600055611b4b6150b1565b6001600160a01b03808616600081815260376020908152604080832094871683526038825280832093835292905220611b848483614005565b602085015283526000856002811115611b9957fe5b90506001816002811115611ba957fe5b14611bb8578360200151611bbb565b83515b60608501526000198714801590611bd55750836060015187105b15611be257606084018790525b73__$69254465eb8f179ea24caa73cf68b23524$__63d454c1cc848a8a858a8a600001518b602001518c60600151346040518a63ffffffff1660e01b8152600401808a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876002811115611c5457fe5b60ff168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001838152602001828152602001995050505050505050505060006040518083038186803b158015611caf57600080fd5b505af4158015611cc3573d6000803e3d6000fd5b50505050611cd0836145cb565b6001816002811115611cde57fe5b1415611d5e57600a830154606085015160408051632770a7eb60e21b81526001600160a01b038981166004830152602482019390935290519190921691639dc29fac91604480830192600092919082900301818387803b158015611d4157600080fd5b505af1158015611d55573d6000803e3d6000fd5b50505050611dd4565b600b830154606085015160408051632770a7eb60e21b81526001600160a01b038981166004830152602482019390935290519190921691639dc29fac91604480830192600092919082900301818387803b158015611dbb57600080fd5b505af1158015611dcf573d6000803e3d6000fd5b505050505b6060840151611dee9084908a90600063ffffffff6142bf16565b6060840151611e0f906001600160a01b038a1690600063ffffffff61468316565b611e21886001600160a01b03166147a8565b15611e63576000611e3f8560600151346147de90919063ffffffff16565b90508015611e6157611e616001600160a01b038a16338363ffffffff61482016565b505b606084015160408051918252426020830152805133926001600160a01b0389811693908d16927f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc9281900390910190a450506001600055505050505050565b60026000541415611f08576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663d73dac72968a968d9691959294603994169263fca513a8926004808201939291829003018186803b158015611f9c57600080fd5b505afa158015611fb0573d6000803e3d6000fd5b505050506040513d6020811015611fc657600080fd5b50516040516001600160e01b031960e089901b168152600481018781526001600160a01b0380881660248401526044830187905260648301869052831660a483015260c060848301908152845460c484018190529192909160e4909101908590801561205b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161203d575b505097505050505050505060006040518083038186803b15801561207e57600080fd5b505af4158015612092573d6000803e3d6000fd5b5050825460ff19168515801591909117845591506120e690505760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a361211d565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b6002600054141561216e576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260005561217b6150ee565b6001600160a01b0384166000818152603760205260409020906121a4903063ffffffff6141d416565b82526121c96127106121bd86600963ffffffff6148a216565b9063ffffffff6148fb16565b606083018190526121ea90612710906121bd90610bb863ffffffff6148a216565b6080830152815184111561222f5760405162461bcd60e51b815260040180806020018281038252603181526020018061513e6031913960400191505060405180910390fd5b60008260600151118015612247575060008260800151115b6122825760405162461bcd60e51b81526004018080602001828103825260328152602001806152786032913960400191505060405180910390fd5b858061229e6001600160a01b038816828863ffffffff61482016565b816001600160a01b031663ee87255888888760600151896040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561232557818101518382015260200161230d565b50505050905090810190601f1680156123525780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561237457600080fd5b505af1158015612388573d6000803e3d6000fd5b50600092506123a99150506001600160a01b0389163063ffffffff6141d416565b606086015186519192506123c3919063ffffffff61493d16565b81146124005760405162461bcd60e51b81526004018080602001828103825260328152602001806151d36032913960400191505060405180910390fd5b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__63a023726490918a886000015161243e8a608001518b606001516147de90919063ffffffff16565b8a608001516040518663ffffffff1660e01b815260040180868152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060006040518083038186803b1580156124a557600080fd5b505af41580156124b9573d6000803e3d6000fd5b50505050612556603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561250e57600080fd5b505afa158015612522573d6000803e3d6000fd5b505050506040513d602081101561253857600080fd5b505160808701516001600160a01b038b16919063ffffffff61482016565b876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600160005550505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561261557600080fd5b505afa158015612629573d6000803e3d6000fd5b505050506040513d602081101561263f57600080fd5b50516001600160a01b031614612681576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060080155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156126e457600080fd5b505afa1580156126f8573d6000803e3d6000fd5b505050506040513d602081101561270e57600080fd5b50516001600160a01b031614612750576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b81156127e1576001600160a01b0383166000908152603760205260408082208151637b1dd5df60e11b815260048101919091528315156024820152905173__$2ec35834968386f54fa313129cf94664e4$__9263f63babbe9260448082019391829003018186803b1580156127c457600080fd5b505af41580156127d8573d6000803e3d6000fd5b50505050612860565b6001600160a01b03831660009081526037602052604080822081516372efab5360e11b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__9263e5df56a69260248082019391829003018186803b15801561284757600080fd5b505af415801561285b573d6000803e3d6000fd5b505050505b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156128a957600080fd5b505afa1580156128bd573d6000803e3d6000fd5b505050506040513d60208110156128d357600080fd5b50516001600160a01b031614612915576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060070155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561297857600080fd5b505afa15801561298c573d6000803e3d6000fd5b505050506040513d60208110156129a257600080fd5b50516001600160a01b0316146129e4576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160d81b0260ff60d81b19909216919091179055565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__634d9afd5e858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015612a8f57600080fd5b505afa158015612aa3573d6000803e3d6000fd5b505050506040513d6020811015612ab957600080fd5b505160405160e089811b6001600160e01b03191682526001600160a01b0389811660048401908152898216602485015260448401899052606484018890526084840187905290841660c484015260a48301918252845460e484018190529092610104019085908015612b5457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b36575b50509850505050505050505060206040518083038186803b158015612b7857600080fd5b505af4158015612b8c573d6000803e3d6000fd5b505050506040513d6020811015612ba257600080fd5b5051949350505050565b600281565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612bf557600080fd5b505afa158015612c09573d6000803e3d6000fd5b505050506040513d6020811015612c1f57600080fd5b50516001600160a01b031614612c61576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160e81b0260ff60e81b19909216919091179055565b60026000541415612cdf576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085209388168552603882528085208386529091528084208151630d9e1f7160e11b81526004810185905260248101939093526044830187905290519293909273__$69254465eb8f179ea24caa73cf68b23524$__92631b3c3ee2926064808301939192829003018186803b158015612d7557600080fd5b505af4158015612d89573d6000803e3d6000fd5b505050508260001415612d9f57805460ff191681555b612da8826145cb565b612dbb828760008763ffffffff6142bf16565b612dd56001600160a01b038716868663ffffffff61482016565b846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051808381526020018281526020019250505060405180910390a35050600160005550505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612e7957600080fd5b505afa158015612e8d573d6000803e3d6000fd5b505050506040513d6020811015612ea357600080fd5b50516001600160a01b031614612ee5576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038416600090815260376020526040808220815163126ee27360e11b81526004810191909152602481018690526044810185905260648101849052905173__$2ec35834968386f54fa313129cf94664e4$__926324ddc4e69260848082019391829003018186803b158015612f6057600080fd5b505af4158015612f74573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612fc257600080fd5b505afa158015612fd6573d6000803e3d6000fd5b505050506040513d6020811015612fec57600080fd5b50516001600160a01b03161461302e576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03821660009081526037602052604090208161305f57600c8101805460ff60e01b19169055612860565b805415801590613073575060008160040154115b6130ae5760405162461bcd60e51b81526004018080602001828103825260248152602001806152056024913960400191505060405180910390fd5b600c8101805460ff60e01b1916600160e01b179055505050565b600080600080600080600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63901d711489603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561314257600080fd5b505afa158015613156573d6000803e3d6000fd5b505050506040513d602081101561316c57600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c490910190859080156131fd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116131df575b5050965050505050505060c06040518083038186803b15801561321f57600080fd5b505af4158015613233573d6000803e3d6000fd5b505050506040513d60c081101561324957600080fd5b5080516020808301516040808501516060860151608087015160a090970151603654845163ab8bb39360e01b8152600481018990526024810187905260448101859052606481018490526001600160a01b0390911660848201529351969e50939c50909a50949750939550935073__$7347ff53b2b46c21e26a37164ae7f6739f$__9263ab8bb3939260a48083019392829003018186803b1580156132ed57600080fd5b505af4158015613301573d6000803e3d6000fd5b505050506040513d602081101561331757600080fd5b50519698959750939594919390925090565b6000613333614997565b60025490915060ff168061334a575061334a61499c565b80613356575060015481115b6133915760405162461bcd60e51b815260040180806020018281038252602e81526020018061524a602e913960400191505060405180910390fd5b60025460ff161580156133b2576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561340e57600080fd5b505afa158015613422573d6000803e3d6000fd5b505050506040513d602081101561343857600080fd5b5051603680546001600160a01b0319166001600160a01b039092169190911790558015612860576002805460ff19169055505050565b6035546001600160a01b031681565b600260005414156134c3576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085203386526038835281862093865292825280852060088401546035548351631f94a27560e31b815293519597929692956135f595600a9390930a946121bd948d9493169263fca513a892600480840193829003018186803b15801561354757600080fd5b505afa15801561355b573d6000803e3d6000fd5b505050506040513d602081101561357157600080fd5b50516040805163b3596f0760e01b81526001600160a01b038e811660048301529151919092169163b3596f07916024808301926020929190829003018186803b1580156135bd57600080fd5b505afa1580156135d1573d6000803e3d6000fd5b505050506040513d60208110156135e757600080fd5b50519063ffffffff6148a216565b905073__$69254465eb8f179ea24caa73cf68b23524$__6305011d4884848a8a868b6019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561366d57600080fd5b505afa158015613681573d6000803e3d6000fd5b505050506040513d602081101561369757600080fd5b50516040516001600160e01b031960e08e901b168152600481018c8152602482018c90526001600160a01b03808c166044840152606483018b9052608483018a905260a4830189905260c4830188905260e483018790526101048301869052831661014483015261016061012483019081528454610164840181905291929091610184909101908590801561375557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613737575b50509c5050505050505050505050505060006040518083038186803b15801561377d57600080fd5b505af4158015613791573d6000803e3d6000fd5b5050505061379e836145cb565b600c8301805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055600383015460018660028111156137d357fe5b60028111156137de57fe5b14156138d857600a84015460408051630ab714fb60e11b8152336004820152602481018a90526044810184905290516001600160a01b039092169163156e29f69160648082019260009290919082900301818387803b15801561384057600080fd5b505af1158015613854573d6000803e3d6000fd5b50505050600a84015460408051631e739ae360e21b815233600482015290516000926001600160a01b0316916379ce6b8c916024808301926020929190829003018186803b1580156138a557600080fd5b505afa1580156138b9573d6000803e3d6000fd5b505050506040513d60208110156138cf57600080fd5b50613946915050565b600b840154604080516340c10f1960e01b8152336004820152602481018a905290516001600160a01b03909216916340c10f199160448082019260009290919082900301818387803b15801561392d57600080fd5b505af1158015613941573d6000803e3d6000fd5b505050505b613959848960008a63ffffffff6142bf16565b6139736001600160a01b038916338963ffffffff61482016565b6000806139803387614005565b909250905061ffff8716336001600160a01b038c167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808c8c60018e60028111156139c657fe5b60028111156139d157fe5b146139e0578b600201546139e2565b885b60408051938452602084019290925282820152426060830152519081900360800190a4505060016000555050505050505050565b60026000541415613a5c576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0380841680835260376020908152604080852093861685526038825280852092855291815292819020905162461bcd60e51b815260048101938452602f60248201819052929391928291604401906151a4823960400191505060405180910390fd5b60001981565b6001600160a01b03811660009081526037602052604081206119a7906149a2565b60026000541415613b39576040805162461bcd60e51b815260206004820152601f602482015260008051602061511e833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0384168082526037602090815260408084203385526038835281852093855292909152808320815163664f158360e01b8152600481018490526024810187905291519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263664f1583926044808301939192829003018186803b158015613bc557600080fd5b505af4158015613bd9573d6000803e3d6000fd5b5050506009830154604080516370a0823160e01b815233600482015290516001600160a01b03909216925060009183916370a08231916024808301926020929190829003018186803b158015613c2e57600080fd5b505afa158015613c42573d6000803e3d6000fd5b505050506040513d6020811015613c5857600080fd5b5051159050613c66846145cb565b613c79848888600063ffffffff6142bf16565b8015613c8b57825460ff191660011783555b604080516394362e8b60e01b81523360048201526024810188905290516001600160a01b038416916394362e8b91604480830192600092919082900301818387803b158015613cd957600080fd5b505af1158015613ced573d6000803e3d6000fd5b50613d07925050506001600160a01b038816876001614683565b60408051878152426020820152815161ffff88169233926001600160a01b038c16927fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82929181900390910190a4505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015613da657600080fd5b505afa158015613dba573d6000803e3d6000fd5b505050506040513d6020811015613dd057600080fd5b50516001600160a01b031614613e12576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060050155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015613e7557600080fd5b505afa158015613e89573d6000803e3d6000fd5b505050506040513d6020811015613e9f57600080fd5b50516001600160a01b031614613ee1576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038116600090815260376020526040808220815163041e0b2d60e51b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__926383c165a09260248082019391829003018186803b158015613f4757600080fd5b505af4158015613f5b573d6000803e3d6000fd5b5050505050565b6000805b603954811015613faf57826001600160a01b031660398281548110613f8757fe5b6000918252602090912001546001600160a01b03161415613fa757600191505b600101613f66565b508061400157603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b15801561405657600080fd5b505afa15801561406a573d6000803e3d6000fd5b505050506040513d602081101561408057600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156140d157600080fd5b505afa1580156140e5573d6000803e3d6000fd5b505050506040513d60208110156140fb57600080fd5b5051909590945092505050565b600a8101546040805163631a6fd560e11b81526001600160a01b03858116600483015291516000938493169163c634dfaa916024808301926020929190829003018186803b15801561415957600080fd5b505afa15801561416d573d6000803e3d6000fd5b505050506040513d602081101561418357600080fd5b5051600b8401546040805163631a6fd560e11b81526001600160a01b0388811660048301529151919092169163c634dfaa916024808301926020929190829003018186803b1580156140d157600080fd5b60006141df836147a8565b156141f557506001600160a01b038116316119a7565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561424b57600080fd5b505afa15801561425f573d6000803e3d6000fd5b505050506040513d602081101561427557600080fd5b50519392505050565b6000806142b883600401546142ac856002015486600c0160149054906101000a900464ffffffffff166149d0565b9063ffffffff614a3516565b9392505050565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b15801561430657600080fd5b505afa15801561431a573d6000803e3d6000fd5b505050506040513d602081101561433057600080fd5b50519050600061434f6001600160a01b0386163063ffffffff6141d416565b9050614363856001600160a01b03166147a8565b1561437b57614378813463ffffffff6147de16565b90505b600c860154600090819081906001600160a01b03166357e37af0896143b6896143aa898d63ffffffff61493d16565b9063ffffffff6147de16565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561440657600080fd5b505afa15801561441a573d6000803e3d6000fd5b505050506040513d602081101561443057600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561447957600080fd5b505afa15801561448d573d6000803e3d6000fd5b505050506040513d60208110156144a357600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b15801561450657600080fd5b505afa15801561451a573d6000803e3d6000fd5b505050506040513d606081101561453057600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b60006145d682614a6d565b9050801561465f576001820154600c83015460009161460291600160a01b900464ffffffffff16614b6d565b835490915061461890829063ffffffff614a3516565b83556002830154600c84015460009161463e91600160a01b900464ffffffffff166149d0565b9050614657846004015482614a3590919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b8161468d57612860565b614696836147a8565b1561478d57813410156146da5760405162461bcd60e51b815260040180806020018281038252603581526020018061516f6035913960400191505060405180910390fd5b8015614788576000336146f3348563ffffffff6147de16565b60405161c35091906000818181858888f193505050503d8060008114614735576040519150601f19603f3d011682016040523d82523d6000602084013e61473a565b606091505b5050905080614786576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b612860565b6128606001600160a01b03841633308563ffffffff614bd916565b60006001600160a01b03821615806119a75750506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b60006142b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614c39565b8061482a57612860565b614833836147a8565b15614888576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114614735576040519150601f19603f3d011682016040523d82523d6000602084013e61473a565b6128606001600160a01b038416838363ffffffff614c9316565b6000826148b1575060006119a7565b828202828482816148be57fe5b04146142b85760405162461bcd60e51b81526004018080602001828103825260218152602001806152296021913960400191505060405180910390fd5b60006142b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614ce5565b6000828201838110156142b8576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600290565b303b1590565b6000806142b883600001546142ac856001015486600c0160149054906101000a900464ffffffffff16614b6d565b6000806149ea4264ffffffffff851663ffffffff6147de16565b90506000614a02856301e1338063ffffffff6148fb16565b9050614a2c82614a20614a13614d4a565b849063ffffffff61493d16565b9063ffffffff614d5a16565b95945050505050565b60006142b86b033b2e3c9fd0803ce80000006121bd614a5a868663ffffffff6148a216565b6b019d971e4fe8401e740000009061493d565b60006119a782600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015614ac257600080fd5b505afa158015614ad6573d6000803e3d6000fd5b505050506040513d6020811015614aec57600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b158015614b3557600080fd5b505afa158015614b49573d6000803e3d6000fd5b505050506040513d6020811015614b5f57600080fd5b50519063ffffffff61493d16565b600080614b874264ffffffffff851663ffffffff6147de16565b90506000614bb0614b9b6301e13380614db4565b614ba484614db4565b9063ffffffff614dca16565b9050614a2c614bbd614d4a565b614bcd878463ffffffff614a3516565b9063ffffffff61493d16565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052614c33908590614ded565b50505050565b60008184841115614c8b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fae578181015183820152602001610f96565b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612860908490614ded565b60008183614d345760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610fae578181015183820152602001610f96565b506000838581614d4057fe5b0495945050505050565b6b033b2e3c9fd0803ce800000090565b600060028206614d76576b033b2e3c9fd0803ce8000000614d78565b825b90506002820491505b81156119a757614d918384614a35565b92506002820615614da957614da68184614a35565b90505b600282049150614d81565b60006119a782633b9aca0063ffffffff6148a216565b600060028204610c2b836121bd614a13876b033b2e3c9fd0803ce80000006148a2565b6060614e42826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e9e9092919063ffffffff16565b80519091501561286057808060200190516020811015614e6157600080fd5b50516128605760405162461bcd60e51b815260040180806020018281038252602a8152602001806152aa602a913960400191505060405180910390fd5b6060610c2b84846000856060614eb385610bf7565b614f04576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614f435780518252601f199092019160209182019101614f24565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614fa5576040519150601f19603f3d011682016040523d82523d6000602084013e614faa565b606091505b50915091508115614fbe579150610c2b9050565b805115614fce5780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610fae578181015183820152602001610f96565b6040805161026081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081019190915290565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005468657265206973206e6f7420656e6f756768206c697175696469747920617661696c61626c6520746f20626f72726f7754686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368496e746572657374207261746520726562616c616e636520636f6e646974696f6e732077657265206e6f74206d65745468652061637475616c2062616c616e6365206f66207468652070726f746f636f6c20697320696e636f6e73697374656e745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652072657175657374656420616d6f756e7420697320746f6f20736d616c6c20666f72206120466c6173684c6f616e2e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220580176a9ea4865827dba2b23abc7ad0f6c66d195b53c976970e593490f9356ae64736f6c63430006080033"; export interface LendingPoolLibraryAddresses { ["__$2ec35834968386f54fa313129cf94664e4$__"]: string; diff --git a/types/LendingPoolLiquidationManagerFactory.ts b/types/LendingPoolLiquidationManagerFactory.ts index 83031d0b..e489ffa0 100644 --- a/types/LendingPoolLiquidationManagerFactory.ts +++ b/types/LendingPoolLiquidationManagerFactory.ts @@ -252,7 +252,7 @@ const _abi = [ ]; const _bytecode = - "0x6080604052600060015534801561001557600080fd5b50600160005561178d8061002a6000396000f3fe6080604052600436106100335760003560e01c8062a718a9146100385780634fe7a6e5146100fb578063c72c4d1014610141575b600080fd5b61007c600480360360a081101561004e57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610156565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156100bf5781810151838201526020016100a7565b50505050905090810190601f1680156100ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561010757600080fd5b506101256004803603602081101561011e57600080fd5b5035610a06565b604080516001600160a01b039092168252519081900360200190f35b34801561014d57600080fd5b50610125610a2d565b6001600160a01b038481166000818152603760209081526040808320948a1680845281842033855260388452828520958552949092528083209183528220919360609390929091906101a6611551565b73__$7347ff53b2b46c21e26a37164ae7f6739f$__63901d711433603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561021557600080fd5b505afa158015610229573d6000803e3d6000fd5b505050506040513d602081101561023f57600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c490910190859080156102d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102b2575b5050965050505050505060c06040518083038186803b1580156102f257600080fd5b505af4158015610306573d6000803e3d6000fd5b505050506040513d60c081101561031c57600080fd5b5060a001516101c08201819052670de0b6b3a764000011610360576004604051806060016040528060288152602001611706602891399650965050505050506109fc565b8b6001600160a01b03166370a082318b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156103b657600080fd5b505afa1580156103ca573d6000803e3d6000fd5b505050506040513d60208110156103e057600080fd5b505180825261042f5760016040518060400160405280601f81526020017f496e76616c696420636f6c6c61746572616c20746f206c6971756964617465008152509650965050505050506109fc565b600c840154600160d01b900460ff16801561044b5750815460ff165b151561020082018190526104825760026040518060600160405280602a81526020016116b2602a91399650965050505050506109fc565b61048c8a86610a3c565b60208301819052151590506104c45760036040518060600160405280602a815260200161172e602a91399650965050505050506109fc565b6104ed60646104e160328460200151610b3f90919063ffffffff16565b9063ffffffff610ba116565b6060820181905289116105005788610506565b80606001515b81608001818152505061052584868e8e85608001518660000151610be3565b6101a083018190526101808301919091526080820151111561054d576101a081015160808201525b876105a857600061056d6001600160a01b038e163063ffffffff610e6016565b90508161018001518110156105a657600560405180606001604052806033815260200161167f60339139975097505050505050506109fc565b505b6101808101516040805163f15e3b2160e01b8152600481018790526001600160a01b038f166024820152604481019290925289151560648301525173__$5e6137a1b5a0a366e2874209b5abf71c10$__9163f15e3b21916084808301926000929190829003018186803b15801561061e57600080fd5b505af4158015610632573d6000803e3d6000fd5b50505060098501546001600160a01b03166101e08301525087156106d2576101e08101516101808201516040805163f866c31960e01b81526001600160a01b038e8116600483015233602483015260448201939093529051919092169163f866c31991606480830192600092919082900301818387803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b50505050610776565b806101e001516001600160a01b0316633edb7cb88b8361018001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561073c57600080fd5b505af1158015610750573d6000803e3d6000fd5b50505061018082015161077691506001600160a01b038e1690339063ffffffff610f0a16565b6080810151610797906001600160a01b038d1690600163ffffffff610fe816565b6101008101511561092e57806101e001516001600160a01b0316633edb7cb88b8361012001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050506108be603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561087557600080fd5b505afa158015610889573d6000803e3d6000fd5b505050506040513d602081101561089f57600080fd5b50516101208301516001600160a01b038f16919063ffffffff610f0a16565b896001600160a01b03168b6001600160a01b03168d6001600160a01b03167f36ca8b16d61dc13b1062adff83e3778ab92d14f9e35bfe9fd1283e02b13fb0a18461010001518561012001514260405180848152602001838152602001828152602001935050505060405180910390a45b896001600160a01b03168b6001600160a01b03168d6001600160a01b03167f56864757fd5b1fc9f38f5f3a981cd8ae512ce41b902cf73fc506ee369c6bc23784608001518561018001518660400151338f4260405180878152602001868152602001858152602001846001600160a01b03166001600160a01b0316815260200183151515158152602001828152602001965050505050505060405180910390a46000604051806040016040528060098152602001684e6f206572726f727360b81b8152509650965050505050505b9550959350505050565b60398181548110610a1357fe5b6000918252602090912001546001600160a01b0316905081565b6035546001600160a01b031681565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b158015610a8d57600080fd5b505afa158015610aa1573d6000803e3d6000fd5b505050506040513d6020811015610ab757600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610b0857600080fd5b505afa158015610b1c573d6000803e3d6000fd5b505050506040513d6020811015610b3257600080fd5b5051909590945092505050565b600082610b4e57506000610b9b565b82820282848281610b5b57fe5b0414610b985760405162461bcd60e51b815260040180806020018281038252602181526020018061165e6021913960400191505060405180910390fd5b90505b92915050565b6000610b9883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110ba565b60355460408051631f94a27560e31b81529051600092839283926001600160a01b039092169163fca513a891600480820192602092909190829003018186803b158015610c2f57600080fd5b505afa158015610c43573d6000803e3d6000fd5b505050506040513d6020811015610c5957600080fd5b50519050610c656115eb565b816001600160a01b031663b3596f07896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b505050506040513d6020811015610ce557600080fd5b5051604080830191909152805163b3596f0760e01b81526001600160a01b03898116600483015291519184169163b3596f0791602480820192602092909190829003018186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b505050506040513d6020811015610d6257600080fd5b5051606082015260078a0154602082018190526008808b015460a08401819052908c015460c08401526040830151610de0926064926104e192610dd491610db29190600a0a63ffffffff610b3f16565b6104e18760c00151600a0a610dd48e8a60600151610b3f90919063ffffffff16565b9063ffffffff610b3f16565b60808201819052851015610e4857849350610e4181602001516104e16064610dd4610e1f8660c00151600a0a8760600151610b3f90919063ffffffff16565b6104e18760a00151600a0a610dd48c8a60400151610b3f90919063ffffffff16565b9250610e53565b806080015193508592505b5050965096945050505050565b6000610e6b8361115c565b15610e8157506001600160a01b03811631610b9b565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610ed757600080fd5b505afa158015610eeb573d6000803e3d6000fd5b505050506040513d6020811015610f0157600080fd5b50519050610b9b565b80610f1457610fe3565b610f1d8361115c565b15610fc9576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114610f72576040519150601f19603f3d011682016040523d82523d6000602084013e610f77565b606091505b5050905080610fc3576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b50610fe3565b610fe36001600160a01b038416838363ffffffff61119516565b505050565b81610ff257610fe3565b610ffb8361115c565b1561109f578134101561103f5760405162461bcd60e51b81526004018080602001828103825260358152602001806116296035913960400191505060405180910390fd5b801561109a57600033611058348563ffffffff6111e716565b60405161c35091906000818181858888f193505050503d8060008114610f72576040519150601f19603f3d011682016040523d82523d6000602084013e610f77565b610fe3565b610fe36001600160a01b03841633308563ffffffff61122916565b600081836111465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561110b5781810151838201526020016110f3565b50505050905090810190601f1680156111385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161115257fe5b0495945050505050565b60006001600160a01b0382161580610b9b57506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1492915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610fe3908490611289565b6000610b9883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061133a565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611283908590611289565b50505050565b60606112de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113949092919063ffffffff16565b805190915015610fe3578080602001905160208110156112fd57600080fd5b5051610fe35760405162461bcd60e51b815260040180806020018281038252602a8152602001806116dc602a913960400191505060405180910390fd5b6000818484111561138c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561110b5781810151838201526020016110f3565b505050900390565b60606113a384846000856113ab565b949350505050565b60606113b685611518565b611407576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106114465780518252601f199092019160209182019101611427565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146114a8576040519150601f19603f3d011682016040523d82523d6000602084013e6114ad565b606091505b509150915081156114c15791506113a39050565b8051156114d15780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561110b5781810151838201526020016110f3565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906113a3575050151592915050565b60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060028111156115b057fe5b81526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe54686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7754686572652069736e277420656e6f756768206c697175696469747920617661696c61626c6520746f206c697175696461746554686520636f6c6c61746572616c2063686f73656e2063616e6e6f74206265206c6971756964617465645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565644865616c746820666163746f72206973206e6f742062656c6f7720746865207468726573686f6c645573657220646964206e6f7420626f72726f7720746865207370656369666965642063757272656e6379a26469706673582212205931c29aaccd96d5b0fd81916e14cb5699bfb8845180b6da9fa02217491d57af64736f6c63430006080033"; + "0x6080604052600060015534801561001557600080fd5b50600160005561178d8061002a6000396000f3fe6080604052600436106100335760003560e01c8062a718a9146100385780634fe7a6e5146100fb578063c72c4d1014610141575b600080fd5b61007c600480360360a081101561004e57600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610156565b6040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156100bf5781810151838201526020016100a7565b50505050905090810190601f1680156100ec5780820380516001836020036101000a031916815260200191505b50935050505060405180910390f35b34801561010757600080fd5b506101256004803603602081101561011e57600080fd5b5035610a06565b604080516001600160a01b039092168252519081900360200190f35b34801561014d57600080fd5b50610125610a2d565b6001600160a01b038481166000818152603760209081526040808320948a1680845281842033855260388452828520958552949092528083209183528220919360609390929091906101a6611551565b73__$7347ff53b2b46c21e26a37164ae7f6739f$__63901d711433603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561021557600080fd5b505afa158015610229573d6000803e3d6000fd5b505050506040513d602081101561023f57600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c490910190859080156102d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102b2575b5050965050505050505060c06040518083038186803b1580156102f257600080fd5b505af4158015610306573d6000803e3d6000fd5b505050506040513d60c081101561031c57600080fd5b5060a001516101c08201819052670de0b6b3a764000011610360576004604051806060016040528060288152602001611706602891399650965050505050506109fc565b8b6001600160a01b03166370a082318b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156103b657600080fd5b505afa1580156103ca573d6000803e3d6000fd5b505050506040513d60208110156103e057600080fd5b505180825261042f5760016040518060400160405280601f81526020017f496e76616c696420636f6c6c61746572616c20746f206c6971756964617465008152509650965050505050506109fc565b600c840154600160d01b900460ff16801561044b5750815460ff165b151561020082018190526104825760026040518060600160405280602a81526020016116b2602a91399650965050505050506109fc565b61048c8a86610a3c565b60208301819052151590506104c45760036040518060600160405280602a815260200161172e602a91399650965050505050506109fc565b6104ed60646104e160328460200151610b3f90919063ffffffff16565b9063ffffffff610ba116565b6060820181905289116105005788610506565b80606001515b81608001818152505061052584868e8e85608001518660000151610be3565b6101a083018190526101808301919091526080820151111561054d576101a081015160808201525b876105a857600061056d6001600160a01b038e163063ffffffff610e6016565b90508161018001518110156105a657600560405180606001604052806033815260200161167f60339139975097505050505050506109fc565b505b6101808101516040805163f15e3b2160e01b8152600481018790526001600160a01b038f166024820152604481019290925289151560648301525173__$5e6137a1b5a0a366e2874209b5abf71c10$__9163f15e3b21916084808301926000929190829003018186803b15801561061e57600080fd5b505af4158015610632573d6000803e3d6000fd5b50505060098501546001600160a01b03166101e08301525087156106d2576101e08101516101808201516040805163f866c31960e01b81526001600160a01b038e8116600483015233602483015260448201939093529051919092169163f866c31991606480830192600092919082900301818387803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b50505050610776565b806101e001516001600160a01b0316633edb7cb88b8361018001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561073c57600080fd5b505af1158015610750573d6000803e3d6000fd5b50505061018082015161077691506001600160a01b038e1690339063ffffffff610f0a16565b6080810151610797906001600160a01b038d1690600163ffffffff610fe816565b6101008101511561092e57806101e001516001600160a01b0316633edb7cb88b8361012001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561080c57600080fd5b505af1158015610820573d6000803e3d6000fd5b505050506108be603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561087557600080fd5b505afa158015610889573d6000803e3d6000fd5b505050506040513d602081101561089f57600080fd5b50516101208301516001600160a01b038f16919063ffffffff610f0a16565b896001600160a01b03168b6001600160a01b03168d6001600160a01b03167f36ca8b16d61dc13b1062adff83e3778ab92d14f9e35bfe9fd1283e02b13fb0a18461010001518561012001514260405180848152602001838152602001828152602001935050505060405180910390a45b896001600160a01b03168b6001600160a01b03168d6001600160a01b03167f56864757fd5b1fc9f38f5f3a981cd8ae512ce41b902cf73fc506ee369c6bc23784608001518561018001518660400151338f4260405180878152602001868152602001858152602001846001600160a01b03166001600160a01b0316815260200183151515158152602001828152602001965050505050505060405180910390a46000604051806040016040528060098152602001684e6f206572726f727360b81b8152509650965050505050505b9550959350505050565b60398181548110610a1357fe5b6000918252602090912001546001600160a01b0316905081565b6035546001600160a01b031681565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b158015610a8d57600080fd5b505afa158015610aa1573d6000803e3d6000fd5b505050506040513d6020811015610ab757600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b158015610b0857600080fd5b505afa158015610b1c573d6000803e3d6000fd5b505050506040513d6020811015610b3257600080fd5b5051909590945092505050565b600082610b4e57506000610b9b565b82820282848281610b5b57fe5b0414610b985760405162461bcd60e51b815260040180806020018281038252602181526020018061165e6021913960400191505060405180910390fd5b90505b92915050565b6000610b9883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110ba565b60355460408051631f94a27560e31b81529051600092839283926001600160a01b039092169163fca513a891600480820192602092909190829003018186803b158015610c2f57600080fd5b505afa158015610c43573d6000803e3d6000fd5b505050506040513d6020811015610c5957600080fd5b50519050610c656115eb565b816001600160a01b031663b3596f07896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610cbb57600080fd5b505afa158015610ccf573d6000803e3d6000fd5b505050506040513d6020811015610ce557600080fd5b5051604080830191909152805163b3596f0760e01b81526001600160a01b03898116600483015291519184169163b3596f0791602480820192602092909190829003018186803b158015610d3857600080fd5b505afa158015610d4c573d6000803e3d6000fd5b505050506040513d6020811015610d6257600080fd5b5051606082015260078a0154602082018190526008808b015460a08401819052908c015460c08401526040830151610de0926064926104e192610dd491610db29190600a0a63ffffffff610b3f16565b6104e18760c00151600a0a610dd48e8a60600151610b3f90919063ffffffff16565b9063ffffffff610b3f16565b60808201819052851015610e4857849350610e4181602001516104e16064610dd4610e1f8660c00151600a0a8760600151610b3f90919063ffffffff16565b6104e18760a00151600a0a610dd48c8a60400151610b3f90919063ffffffff16565b9250610e53565b806080015193508592505b5050965096945050505050565b6000610e6b8361115c565b15610e8157506001600160a01b03811631610b9b565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610ed757600080fd5b505afa158015610eeb573d6000803e3d6000fd5b505050506040513d6020811015610f0157600080fd5b50519050610b9b565b80610f1457610fe3565b610f1d8361115c565b15610fc9576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114610f72576040519150601f19603f3d011682016040523d82523d6000602084013e610f77565b606091505b5050905080610fc3576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b50610fe3565b610fe36001600160a01b038416838363ffffffff61119516565b505050565b81610ff257610fe3565b610ffb8361115c565b1561109f578134101561103f5760405162461bcd60e51b81526004018080602001828103825260358152602001806116296035913960400191505060405180910390fd5b801561109a57600033611058348563ffffffff6111e716565b60405161c35091906000818181858888f193505050503d8060008114610f72576040519150601f19603f3d011682016040523d82523d6000602084013e610f77565b610fe3565b610fe36001600160a01b03841633308563ffffffff61122916565b600081836111465760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561110b5781810151838201526020016110f3565b50505050905090810190601f1680156111385780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161115257fe5b0495945050505050565b60006001600160a01b0382161580610b9b57506001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1492915050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610fe3908490611289565b6000610b9883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061133a565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611283908590611289565b50505050565b60606112de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166113949092919063ffffffff16565b805190915015610fe3578080602001905160208110156112fd57600080fd5b5051610fe35760405162461bcd60e51b815260040180806020018281038252602a8152602001806116dc602a913960400191505060405180910390fd5b6000818484111561138c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561110b5781810151838201526020016110f3565b505050900390565b60606113a384846000856113ab565b949350505050565b60606113b685611518565b611407576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106114465780518252601f199092019160209182019101611427565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146114a8576040519150601f19603f3d011682016040523d82523d6000602084013e6114ad565b606091505b509150915081156114c15791506113a39050565b8051156114d15780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561110b5781810151838201526020016110f3565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906113a3575050151592915050565b60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600060028111156115b057fe5b81526020016000815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000151581525090565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152509056fe54686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7754686572652069736e277420656e6f756768206c697175696469747920617661696c61626c6520746f206c697175696461746554686520636f6c6c61746572616c2063686f73656e2063616e6e6f74206265206c6971756964617465645361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565644865616c746820666163746f72206973206e6f742062656c6f7720746865207468726573686f6c645573657220646964206e6f7420626f72726f7720746865207370656369666965642063757272656e6379a26469706673582212205bdb7eeb7af0514ee8426e686277c645e15497c196627efda0b71adc98f2b2f764736f6c63430006080033"; export interface LendingPoolLiquidationManagerLibraryAddresses { ["__$7347ff53b2b46c21e26a37164ae7f6739f$__"]: string; diff --git a/types/LendingPoolParametersProvider.d.ts b/types/LendingPoolParametersProvider.d.ts new file mode 100644 index 00000000..39f69167 --- /dev/null +++ b/types/LendingPoolParametersProvider.d.ts @@ -0,0 +1,105 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface LendingPoolParametersProviderInterface extends Interface { + functions: { + getFlashLoanFeesInBips: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + getMaxStableRateBorrowSizePercent: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + getRebalanceDownRateDelta: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + initialize: TypedFunctionDescription<{ + encode([_addressesProvider]: [string]): string; + }>; + }; + + events: {}; +} + +export class LendingPoolParametersProvider extends Contract { + connect( + signerOrProvider: Signer | Provider | string + ): LendingPoolParametersProvider; + attach(addressOrName: string): LendingPoolParametersProvider; + deployed(): Promise; + + on( + event: EventFilter | string, + listener: Listener + ): LendingPoolParametersProvider; + once( + event: EventFilter | string, + listener: Listener + ): LendingPoolParametersProvider; + addListener( + eventName: EventFilter | string, + listener: Listener + ): LendingPoolParametersProvider; + removeAllListeners( + eventName: EventFilter | string + ): LendingPoolParametersProvider; + removeListener( + eventName: any, + listener: Listener + ): LendingPoolParametersProvider; + + interface: LendingPoolParametersProviderInterface; + + functions: { + getFlashLoanFeesInBips(): Promise<{ + 0: BigNumber; + 1: BigNumber; + }>; + + getMaxStableRateBorrowSizePercent(): Promise; + + getRebalanceDownRateDelta(): Promise; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + }; + + getFlashLoanFeesInBips(): Promise<{ + 0: BigNumber; + 1: BigNumber; + }>; + + getMaxStableRateBorrowSizePercent(): Promise; + + getRebalanceDownRateDelta(): Promise; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + + filters: {}; + + estimate: { + getFlashLoanFeesInBips(): Promise; + + getMaxStableRateBorrowSizePercent(): Promise; + + getRebalanceDownRateDelta(): Promise; + + initialize(_addressesProvider: string): Promise; + }; +} diff --git a/types/LendingPoolParametersProviderFactory.ts b/types/LendingPoolParametersProviderFactory.ts new file mode 100644 index 00000000..5076787a --- /dev/null +++ b/types/LendingPoolParametersProviderFactory.ts @@ -0,0 +1,103 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { LendingPoolParametersProvider } from "./LendingPoolParametersProvider"; + +export class LendingPoolParametersProviderFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + overrides?: TransactionOverrides + ): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): LendingPoolParametersProvider { + return super.attach(address) as LendingPoolParametersProvider; + } + connect(signer: Signer): LendingPoolParametersProviderFactory { + return super.connect(signer) as LendingPoolParametersProviderFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): LendingPoolParametersProvider { + return new Contract( + address, + _abi, + signerOrProvider + ) as LendingPoolParametersProvider; + } +} + +const _abi = [ + { + inputs: [], + name: "getFlashLoanFeesInBips", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "pure", + type: "function" + }, + { + inputs: [], + name: "getMaxStableRateBorrowSizePercent", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "pure", + type: "function" + }, + { + inputs: [], + name: "getRebalanceDownRateDelta", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "pure", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_addressesProvider", + type: "address" + } + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x60806040526000805534801561001457600080fd5b506101e5806100246000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806346f4f8d114610051578063586feb401461006b578063c4d66de81461008c578063d6b725ac146100b4575b600080fd5b6100596100bc565b60408051918252519081900360200190f35b6100736100cb565b6040805192835260208301919091528051918290030190f35b6100b2600480360360208110156100a257600080fd5b50356001600160a01b03166100d4565b005b610059610171565b6aa56fa5b99019a5c800000090565b6009610bb89091565b60006100de610176565b60015490915060ff16806100f557506100f561017b565b80610101575060005481115b61013c5760405162461bcd60e51b815260040180806020018281038252602e815260200180610182602e913960400191505060405180910390fd5b60015460ff1615801561015b576001805460ff19168117905560008290555b801561016c576001805460ff191690555b505050565b601990565b600290565b303b159056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122063901128b8eb0844da98c6440cfb4a178fa19b719b954c9bf24df1d1abd1811064736f6c63430006080033"; diff --git a/types/MockBat.d.ts b/types/MockBat.d.ts new file mode 100644 index 00000000..e4a32da3 --- /dev/null +++ b/types/MockBat.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockBatInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockBat extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockBat; + attach(addressOrName: string): MockBat; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockBat; + once(event: EventFilter | string, listener: Listener): MockBat; + addListener(eventName: EventFilter | string, listener: Listener): MockBat; + removeAllListeners(eventName: EventFilter | string): MockBat; + removeListener(eventName: any, listener: Listener): MockBat; + + interface: MockBatInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockBatFactory.ts b/types/MockBatFactory.ts new file mode 100644 index 00000000..bb87d53b --- /dev/null +++ b/types/MockBatFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockBat } from "./MockBat"; + +export class MockBatFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockBat { + return super.attach(address) as MockBat; + } + connect(signer: Signer): MockBatFactory { + return super.connect(signer) as MockBatFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockBat { + return new Contract(address, _abi, signerOrProvider) as MockBat; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600381526020016210905560ea1b8152506040518060400160405280601581526020017f426173696320417474656e74696f6e20546f6b656e000000000000000000000081525060128282816003908051906020019061007d9291906100d1565b5080516100919060049060208401906100d1565b50506005805460ff19166012179055506100b3816001600160e01b036100bb16565b50505061016c565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011257805160ff191683800117855561013f565b8280016001018555821561013f579182015b8281111561013f578251825591602001919060010190610124565b5061014b92915061014f565b5090565b61016991905b8082111561014b5760008155600101610155565b90565b610b488061017b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122058088e6b0bfc820b3ea55c0eb21e66293ba88009a4f22dec2fd53857c7b1fd4864736f6c63430006080033"; diff --git a/types/MockBusd.d.ts b/types/MockBusd.d.ts new file mode 100644 index 00000000..7fd0893d --- /dev/null +++ b/types/MockBusd.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockBusdInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockBusd extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockBusd; + attach(addressOrName: string): MockBusd; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockBusd; + once(event: EventFilter | string, listener: Listener): MockBusd; + addListener(eventName: EventFilter | string, listener: Listener): MockBusd; + removeAllListeners(eventName: EventFilter | string): MockBusd; + removeListener(eventName: any, listener: Listener): MockBusd; + + interface: MockBusdInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockBusdFactory.ts b/types/MockBusdFactory.ts new file mode 100644 index 00000000..6fa64642 --- /dev/null +++ b/types/MockBusdFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockBusd } from "./MockBusd"; + +export class MockBusdFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockBusd { + return super.attach(address) as MockBusd; + } + connect(signer: Signer): MockBusdFactory { + return super.connect(signer) as MockBusdFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockBusd { + return new Contract(address, _abi, signerOrProvider) as MockBusd; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060405180604001604052806004815260200163109554d160e21b8152506040518060400160405280600b81526020016a109a5b985b98d9481554d160aa1b81525060128282816003908051906020019061006c9291906100c0565b5080516100809060049060208401906100c0565b50506005805460ff19166012179055506100a2816001600160e01b036100aa16565b50505061015b565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010157805160ff191683800117855561012e565b8280016001018555821561012e579182015b8281111561012e578251825591602001919060010190610113565b5061013a92915061013e565b5090565b61015891905b8082111561013a5760008155600101610144565b90565b610b488061016a6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122024d80e3caaf1ca2556e34d848da29075805a6272f5971d08288f57a00ca4a3ab64736f6c63430006080033"; diff --git a/types/MockDai.d.ts b/types/MockDai.d.ts new file mode 100644 index 00000000..859f5f3d --- /dev/null +++ b/types/MockDai.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockDaiInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockDai extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockDai; + attach(addressOrName: string): MockDai; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockDai; + once(event: EventFilter | string, listener: Listener): MockDai; + addListener(eventName: EventFilter | string, listener: Listener): MockDai; + removeAllListeners(eventName: EventFilter | string): MockDai; + removeListener(eventName: any, listener: Listener): MockDai; + + interface: MockDaiInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockDaiFactory.ts b/types/MockDaiFactory.ts new file mode 100644 index 00000000..e83f1d83 --- /dev/null +++ b/types/MockDaiFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockDai } from "./MockDai"; + +export class MockDaiFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockDai { + return super.attach(address) as MockDai; + } + connect(signer: Signer): MockDaiFactory { + return super.connect(signer) as MockDaiFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockDai { + return new Contract(address, _abi, signerOrProvider) as MockDai; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600381526020016244414960e81b8152506040518060400160405280600381526020016244414960e81b8152506012828281600390805190602001906100639291906100b7565b5080516100779060049060208401906100b7565b50506005805460ff1916601217905550610099816001600160e01b036100a116565b505050610152565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f857805160ff1916838001178555610125565b82800160010185558215610125579182015b8281111561012557825182559160200191906001019061010a565b50610131929150610135565b5090565b61014f91905b80821115610131576000815560010161013b565b90565b610b48806101616000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208dc8b7355217fa70a49c3dcd2a7ff32cc29730917b14ff706bc7b77624c48d4664736f6c63430006080033"; diff --git a/types/MockKnc.d.ts b/types/MockKnc.d.ts new file mode 100644 index 00000000..0c9fd4da --- /dev/null +++ b/types/MockKnc.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockKncInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockKnc extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockKnc; + attach(addressOrName: string): MockKnc; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockKnc; + once(event: EventFilter | string, listener: Listener): MockKnc; + addListener(eventName: EventFilter | string, listener: Listener): MockKnc; + removeAllListeners(eventName: EventFilter | string): MockKnc; + removeListener(eventName: any, listener: Listener): MockKnc; + + interface: MockKncInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockKncFactory.ts b/types/MockKncFactory.ts new file mode 100644 index 00000000..aa6df198 --- /dev/null +++ b/types/MockKncFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockKnc } from "./MockKnc"; + +export class MockKncFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockKnc { + return super.attach(address) as MockKnc; + } + connect(signer: Signer): MockKncFactory { + return super.connect(signer) as MockKncFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockKnc { + return new Contract(address, _abi, signerOrProvider) as MockKnc; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060038152602001624b4e4360e81b8152506040518060400160405280600d81526020016c4b79626572204e6574776f726b60981b81525060128282816003908051906020019061006d9291906100c1565b5080516100819060049060208401906100c1565b50506005805460ff19166012179055506100a3816001600160e01b036100ab16565b50505061015c565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010257805160ff191683800117855561012f565b8280016001018555821561012f579182015b8281111561012f578251825591602001919060010190610114565b5061013b92915061013f565b5090565b61015991905b8082111561013b5760008155600101610145565b90565b610b488061016b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122074bb0be046fe5e7631223f0a741b2c125024cf422d454fea02c598f654c755e664736f6c63430006080033"; diff --git a/types/MockKyberProxy.d.ts b/types/MockKyberProxy.d.ts new file mode 100644 index 00000000..2b8d762f --- /dev/null +++ b/types/MockKyberProxy.d.ts @@ -0,0 +1,105 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockKyberProxyInterface extends Interface { + functions: { + tokenToBurn: TypedFunctionDescription<{ encode([]: []): string }>; + + tradeWithHint: TypedFunctionDescription<{ + encode([ + _fromToken, + _amount, + _toToken, + _receiver, + _maxAmount, + minConversionRate, + _referral, + _filtering + ]: [ + string, + BigNumberish, + string, + string, + BigNumberish, + BigNumberish, + string, + Arrayish + ]): string; + }>; + }; + + events: {}; +} + +export class MockKyberProxy extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockKyberProxy; + attach(addressOrName: string): MockKyberProxy; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockKyberProxy; + once(event: EventFilter | string, listener: Listener): MockKyberProxy; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockKyberProxy; + removeAllListeners(eventName: EventFilter | string): MockKyberProxy; + removeListener(eventName: any, listener: Listener): MockKyberProxy; + + interface: MockKyberProxyInterface; + + functions: { + tokenToBurn(): Promise; + + tradeWithHint( + _fromToken: string, + _amount: BigNumberish, + _toToken: string, + _receiver: string, + _maxAmount: BigNumberish, + minConversionRate: BigNumberish, + _referral: string, + _filtering: Arrayish, + overrides?: TransactionOverrides + ): Promise; + }; + + tokenToBurn(): Promise; + + tradeWithHint( + _fromToken: string, + _amount: BigNumberish, + _toToken: string, + _receiver: string, + _maxAmount: BigNumberish, + minConversionRate: BigNumberish, + _referral: string, + _filtering: Arrayish, + overrides?: TransactionOverrides + ): Promise; + + filters: {}; + + estimate: { + tokenToBurn(): Promise; + + tradeWithHint( + _fromToken: string, + _amount: BigNumberish, + _toToken: string, + _receiver: string, + _maxAmount: BigNumberish, + minConversionRate: BigNumberish, + _referral: string, + _filtering: Arrayish + ): Promise; + }; +} diff --git a/types/MockKyberProxyFactory.ts b/types/MockKyberProxyFactory.ts new file mode 100644 index 00000000..f40dea97 --- /dev/null +++ b/types/MockKyberProxyFactory.ts @@ -0,0 +1,124 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockKyberProxy } from "./MockKyberProxy"; + +export class MockKyberProxyFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _tokenToBurn: string, + overrides?: TransactionOverrides + ): Promise { + return super.deploy(_tokenToBurn, overrides) as Promise; + } + getDeployTransaction( + _tokenToBurn: string, + overrides?: TransactionOverrides + ): UnsignedTransaction { + return super.getDeployTransaction(_tokenToBurn, overrides); + } + attach(address: string): MockKyberProxy { + return super.attach(address) as MockKyberProxy; + } + connect(signer: Signer): MockKyberProxyFactory { + return super.connect(signer) as MockKyberProxyFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockKyberProxy { + return new Contract(address, _abi, signerOrProvider) as MockKyberProxy; + } +} + +const _abi = [ + { + inputs: [ + { + internalType: "contract MintableERC20", + name: "_tokenToBurn", + type: "address" + } + ], + stateMutability: "nonpayable", + type: "constructor" + }, + { + inputs: [], + name: "tokenToBurn", + outputs: [ + { + internalType: "contract MintableERC20", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "_fromToken", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "contract IERC20", + name: "_toToken", + type: "address" + }, + { + internalType: "address", + name: "_receiver", + type: "address" + }, + { + internalType: "uint256", + name: "_maxAmount", + type: "uint256" + }, + { + internalType: "uint256", + name: "minConversionRate", + type: "uint256" + }, + { + internalType: "address", + name: "_referral", + type: "address" + }, + { + internalType: "bytes", + name: "_filtering", + type: "bytes" + } + ], + name: "tradeWithHint", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "payable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040516106b53803806106b58339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610650806100656000396000f3fe6080604052600436106100295760003560e01c806329589f611461002e5780634f1b86eb146100ec575b600080fd5b6100da600480360361010081101561004557600080fd5b6001600160a01b0382358116926020810135926040820135831692606083013581169260808101359260a08201359260c0830135169190810190610100810160e082013564010000000081111561009b57600080fd5b8201836020820111156100ad57600080fd5b803590602001918460018302840111640100000000831117156100cf57600080fd5b50909250905061011d565b60408051918252519081900360200190f35b3480156100f857600080fd5b50610101610266565b604080516001600160a01b039092168252519081900360200190f35b600080546040805163140e25ad60e31b8152670de0b6b3a7640000600482015290516001600160a01b039092169163a0712d689160248082019260209290919082900301818787803b15801561017257600080fd5b505af1158015610186573d6000803e3d6000fd5b505050506040513d602081101561019c57600080fd5b50516101ef576040805162461bcd60e51b815260206004820181905260248201527f54524144455f574954485f48494e542e205265766572746564206d696e742829604482015290519081900360640190fd5b6101f7610275565b6001600160a01b03168a6001600160a01b03161461022a5761022a6001600160a01b038b1633308c63ffffffff61028d16565b60005461024f906001600160a01b031633670de0b6b3a764000063ffffffff6102ed16565b50670de0b6b3a76400009998505050505050505050565b6000546001600160a01b031681565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526102e7908590610344565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261033f908490610344565b505050565b6060610399826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103f59092919063ffffffff16565b80519091501561033f578080602001905160208110156103b857600080fd5b505161033f5760405162461bcd60e51b815260040180806020018281038252602a8152602001806105f1602a913960400191505060405180910390fd5b6060610404848460008561040c565b949350505050565b6060610417856105b7565b610468576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106104a75780518252601f199092019160209182019101610488565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610509576040519150601f19603f3d011682016040523d82523d6000602084013e61050e565b606091505b509150915081156105225791506104049050565b8051156105325780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561057c578181015183820152602001610564565b50505050905090810190601f1680156105a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061040457505015159291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122099f447de7dc340bb9fad6029140c928c6fde2d7c3b3f7bb83714a93e38cb1f2f64736f6c63430006080033"; diff --git a/types/MockLend.d.ts b/types/MockLend.d.ts new file mode 100644 index 00000000..1c0f6008 --- /dev/null +++ b/types/MockLend.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockLendInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockLend extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockLend; + attach(addressOrName: string): MockLend; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockLend; + once(event: EventFilter | string, listener: Listener): MockLend; + addListener(eventName: EventFilter | string, listener: Listener): MockLend; + removeAllListeners(eventName: EventFilter | string): MockLend; + removeListener(eventName: any, listener: Listener): MockLend; + + interface: MockLendInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockLendFactory.ts b/types/MockLendFactory.ts new file mode 100644 index 00000000..8b9ee0fe --- /dev/null +++ b/types/MockLendFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockLend } from "./MockLend"; + +export class MockLendFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockLend { + return super.attach(address) as MockLend; + } + connect(signer: Signer): MockLendFactory { + return super.connect(signer) as MockLendFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockLend { + return new Contract(address, _abi, signerOrProvider) as MockLend; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001631311539160e21b815250604051806040016040528060048152602001631311539160e21b8152506012828281600390805190602001906100659291906100b9565b5080516100799060049060208401906100b9565b50506005805460ff191660121790555061009b816001600160e01b036100a316565b505050610154565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fa57805160ff1916838001178555610127565b82800160010185558215610127579182015b8281111561012757825182559160200191906001019061010c565b50610133929150610137565b5090565b61015191905b80821115610133576000815560010161013d565b90565b610b48806101636000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220545b74b04d903fa7e5eb0ab303757e8abe9b5d8818e080de5fa7183b5b8ad71c64736f6c63430006080033"; diff --git a/types/MockLendingPoolCore.d.ts b/types/MockLendingPoolCore.d.ts new file mode 100644 index 00000000..5907f44a --- /dev/null +++ b/types/MockLendingPoolCore.d.ts @@ -0,0 +1,1414 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockLendingPoolCoreInterface extends Interface { + functions: { + activateReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + addressesProvider: TypedFunctionDescription<{ encode([]: []): string }>; + + deactivateReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + disableBorrowingOnReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + disableReserveAsCollateral: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + disableReserveStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + enableBorrowingOnReserve: TypedFunctionDescription<{ + encode([_reserve, _stableBorrowRateEnabled]: [string, boolean]): string; + }>; + + enableReserveAsCollateral: TypedFunctionDescription<{ + encode([ + _reserve, + _baseLTVasCollateral, + _liquidationThreshold, + _liquidationBonus + ]: [string, BigNumberish, BigNumberish, BigNumberish]): string; + }>; + + enableReserveStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + freezeReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveATokenAddress: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveAvailableLiquidity: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveConfiguration: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentAverageStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentLiquidityRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveCurrentVariableBorrowRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveDecimals: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveInterestRateStrategyAddress: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveIsActive: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveIsFreezed: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveIsStableBorrowRateEnabled: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLastUpdate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLiquidationBonus: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLiquidationThreshold: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveLiquidityCumulativeIndex: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveNormalizedIncome: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalBorrows: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalBorrowsStable: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalBorrowsVariable: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveTotalLiquidity: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveUtilizationRate: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserveVariableBorrowsCumulativeIndex: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + getReserves: TypedFunctionDescription<{ encode([]: []): string }>; + + getUserBasicReserveData: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserBorrowBalances: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserCurrentBorrowRateMode: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserCurrentStableBorrowRate: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserLastUpdate: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserOriginationFee: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserUnderlyingAssetBalance: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + getUserVariableBorrowCumulativeIndex: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + initReserve: TypedFunctionDescription<{ + encode([ + _reserve, + _aTokenAddress, + _decimals, + _interestRateStrategyAddress + ]: [string, string, BigNumberish, string]): string; + }>; + + initialize: TypedFunctionDescription<{ + encode([_addressesProvider]: [string]): string; + }>; + + isReserveBorrowingEnabled: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + isReserveUsageAsCollateralEnabled: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + isUserAllowedToBorrowAtStable: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + isUserUseReserveAsCollateralEnabled: TypedFunctionDescription<{ + encode([_reserve, _user]: [string, string]): string; + }>; + + lendingPoolAddress: TypedFunctionDescription<{ encode([]: []): string }>; + + liquidateFee: TypedFunctionDescription<{ + encode([_token, _amount, _destination]: [ + string, + BigNumberish, + string + ]): string; + }>; + + refreshConfiguration: TypedFunctionDescription<{ encode([]: []): string }>; + + removeLastAddedReserve: TypedFunctionDescription<{ + encode([_reserveToRemove]: [string]): string; + }>; + + reservesList: TypedFunctionDescription<{ + encode([]: [BigNumberish]): string; + }>; + + setReserveBaseLTVasCollateral: TypedFunctionDescription<{ + encode([_reserve, _ltv]: [string, BigNumberish]): string; + }>; + + setReserveDecimals: TypedFunctionDescription<{ + encode([_reserve, _decimals]: [string, BigNumberish]): string; + }>; + + setReserveInterestRateStrategyAddress: TypedFunctionDescription<{ + encode([_reserve, _rateStrategyAddress]: [string, string]): string; + }>; + + setReserveLiquidationBonus: TypedFunctionDescription<{ + encode([_reserve, _bonus]: [string, BigNumberish]): string; + }>; + + setReserveLiquidationThreshold: TypedFunctionDescription<{ + encode([_reserve, _threshold]: [string, BigNumberish]): string; + }>; + + setUserUseReserveAsCollateral: TypedFunctionDescription<{ + encode([_reserve, _user, _useAsCollateral]: [ + string, + string, + boolean + ]): string; + }>; + + transferToFeeCollectionAddress: TypedFunctionDescription<{ + encode([_token, _user, _amount, _destination]: [ + string, + string, + BigNumberish, + string + ]): string; + }>; + + transferToReserve: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + transferToUser: TypedFunctionDescription<{ + encode([_reserve, _user, _amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + + unfreezeReserve: TypedFunctionDescription<{ + encode([_reserve]: [string]): string; + }>; + + updateStateOnBorrow: TypedFunctionDescription<{ + encode([_reserve, _user, _amountBorrowed, _borrowFee, _rateMode]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + updateStateOnDeposit: TypedFunctionDescription<{ + encode([_reserve, _user, _amount, _isFirstDeposit]: [ + string, + string, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnFlashLoan: TypedFunctionDescription<{ + encode([_reserve, _availableLiquidityBefore, _income, _protocolFee]: [ + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + updateStateOnLiquidation: TypedFunctionDescription<{ + encode([ + _principalReserve, + _collateralReserve, + _user, + _amountToLiquidate, + _collateralToLiquidate, + _feeLiquidated, + _liquidatedCollateralForFee, + _balanceIncrease, + _liquidatorReceivesAToken + ]: [ + string, + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnRebalance: TypedFunctionDescription<{ + encode([_reserve, _user, _balanceIncrease]: [ + string, + string, + BigNumberish + ]): string; + }>; + + updateStateOnRedeem: TypedFunctionDescription<{ + encode([_reserve, _user, _amountRedeemed, _userRedeemedEverything]: [ + string, + string, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnRepay: TypedFunctionDescription<{ + encode([ + _reserve, + _user, + _paybackAmountMinusFees, + _originationFeeRepaid, + _balanceIncrease, + _repaidWholeLoan + ]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + boolean + ]): string; + }>; + + updateStateOnSwapRate: TypedFunctionDescription<{ + encode([ + _reserve, + _user, + _principalBorrowBalance, + _compoundedBorrowBalance, + _balanceIncrease, + _currentRateMode + ]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + }; + + events: { + ReserveDataUpdated: TypedEventDescription<{ + encodeTopics([ + reserve, + liquidityRate, + stableBorrowRate, + averageStableBorrowRate, + variableBorrowRate, + liquidityIndex, + variableBorrowIndex + ]: [string | null, null, null, null, null, null, null]): string[]; + }>; + + ReserveUpdated: TypedEventDescription<{ + encodeTopics([ + reserve, + liquidityRate, + stableBorrowRate, + variableBorrowRate, + liquidityIndex, + variableBorrowIndex + ]: [string | null, null, null, null, null, null]): string[]; + }>; + + ReserveUpdatedFromMock: TypedEventDescription<{ + encodeTopics([revision]: [BigNumberish | null]): string[]; + }>; + }; +} + +export class MockLendingPoolCore extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockLendingPoolCore; + attach(addressOrName: string): MockLendingPoolCore; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockLendingPoolCore; + once(event: EventFilter | string, listener: Listener): MockLendingPoolCore; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockLendingPoolCore; + removeAllListeners(eventName: EventFilter | string): MockLendingPoolCore; + removeListener(eventName: any, listener: Listener): MockLendingPoolCore; + + interface: MockLendingPoolCoreInterface; + + functions: { + activateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + addressesProvider(): Promise; + + deactivateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableBorrowingOnReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveAsCollateral( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + enableBorrowingOnReserve( + _reserve: string, + _stableBorrowRateEnabled: boolean, + overrides?: TransactionOverrides + ): Promise; + + enableReserveAsCollateral( + _reserve: string, + _baseLTVasCollateral: BigNumberish, + _liquidationThreshold: BigNumberish, + _liquidationBonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + enableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + freezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + getReserveATokenAddress(_reserve: string): Promise; + + getReserveAvailableLiquidity(_reserve: string): Promise; + + getReserveConfiguration( + _reserve: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getReserveCurrentAverageStableBorrowRate( + _reserve: string + ): Promise; + + getReserveCurrentLiquidityRate(_reserve: string): Promise; + + getReserveCurrentStableBorrowRate(_reserve: string): Promise; + + getReserveCurrentVariableBorrowRate(_reserve: string): Promise; + + getReserveDecimals(_reserve: string): Promise; + + getReserveInterestRateStrategyAddress(_reserve: string): Promise; + + getReserveIsActive(_reserve: string): Promise; + + getReserveIsFreezed(_reserve: string): Promise; + + getReserveIsStableBorrowRateEnabled(_reserve: string): Promise; + + getReserveLastUpdate(_reserve: string): Promise; + + getReserveLiquidationBonus(_reserve: string): Promise; + + getReserveLiquidationThreshold(_reserve: string): Promise; + + getReserveLiquidityCumulativeIndex(_reserve: string): Promise; + + getReserveNormalizedIncome(_reserve: string): Promise; + + getReserveTotalBorrows(_reserve: string): Promise; + + getReserveTotalBorrowsStable(_reserve: string): Promise; + + getReserveTotalBorrowsVariable(_reserve: string): Promise; + + getReserveTotalLiquidity(_reserve: string): Promise; + + getReserveUtilizationRate(_reserve: string): Promise; + + getReserveVariableBorrowsCumulativeIndex( + _reserve: string + ): Promise; + + getReserves(): Promise; + + getUserBasicReserveData( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getUserBorrowBalances( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + }>; + + getUserCurrentBorrowRateMode( + _reserve: string, + _user: string + ): Promise; + + getUserCurrentStableBorrowRate( + _reserve: string, + _user: string + ): Promise; + + getUserLastUpdate(_reserve: string, _user: string): Promise; + + getUserOriginationFee(_reserve: string, _user: string): Promise; + + getUserUnderlyingAssetBalance( + _reserve: string, + _user: string + ): Promise; + + getUserVariableBorrowCumulativeIndex( + _reserve: string, + _user: string + ): Promise; + + initReserve( + _reserve: string, + _aTokenAddress: string, + _decimals: BigNumberish, + _interestRateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + + isReserveBorrowingEnabled(_reserve: string): Promise; + + isReserveUsageAsCollateralEnabled(_reserve: string): Promise; + + isUserAllowedToBorrowAtStable( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + isUserUseReserveAsCollateralEnabled( + _reserve: string, + _user: string + ): Promise; + + lendingPoolAddress(): Promise; + + liquidateFee( + _token: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + refreshConfiguration( + overrides?: TransactionOverrides + ): Promise; + + removeLastAddedReserve( + _reserveToRemove: string, + overrides?: TransactionOverrides + ): Promise; + + reservesList(arg0: BigNumberish): Promise; + + setReserveBaseLTVasCollateral( + _reserve: string, + _ltv: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveDecimals( + _reserve: string, + _decimals: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveInterestRateStrategyAddress( + _reserve: string, + _rateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationBonus( + _reserve: string, + _bonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationThreshold( + _reserve: string, + _threshold: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setUserUseReserveAsCollateral( + _reserve: string, + _user: string, + _useAsCollateral: boolean, + overrides?: TransactionOverrides + ): Promise; + + transferToFeeCollectionAddress( + _token: string, + _user: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + transferToReserve( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferToUser( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + unfreezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnBorrow( + _reserve: string, + _user: string, + _amountBorrowed: BigNumberish, + _borrowFee: BigNumberish, + _rateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnDeposit( + _reserve: string, + _user: string, + _amount: BigNumberish, + _isFirstDeposit: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnFlashLoan( + _reserve: string, + _availableLiquidityBefore: BigNumberish, + _income: BigNumberish, + _protocolFee: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnLiquidation( + _principalReserve: string, + _collateralReserve: string, + _user: string, + _amountToLiquidate: BigNumberish, + _collateralToLiquidate: BigNumberish, + _feeLiquidated: BigNumberish, + _liquidatedCollateralForFee: BigNumberish, + _balanceIncrease: BigNumberish, + _liquidatorReceivesAToken: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRebalance( + _reserve: string, + _user: string, + _balanceIncrease: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRedeem( + _reserve: string, + _user: string, + _amountRedeemed: BigNumberish, + _userRedeemedEverything: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRepay( + _reserve: string, + _user: string, + _paybackAmountMinusFees: BigNumberish, + _originationFeeRepaid: BigNumberish, + _balanceIncrease: BigNumberish, + _repaidWholeLoan: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnSwapRate( + _reserve: string, + _user: string, + _principalBorrowBalance: BigNumberish, + _compoundedBorrowBalance: BigNumberish, + _balanceIncrease: BigNumberish, + _currentRateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + activateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + addressesProvider(): Promise; + + deactivateReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableBorrowingOnReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveAsCollateral( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + disableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + enableBorrowingOnReserve( + _reserve: string, + _stableBorrowRateEnabled: boolean, + overrides?: TransactionOverrides + ): Promise; + + enableReserveAsCollateral( + _reserve: string, + _baseLTVasCollateral: BigNumberish, + _liquidationThreshold: BigNumberish, + _liquidationBonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + enableReserveStableBorrowRate( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + freezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + getReserveATokenAddress(_reserve: string): Promise; + + getReserveAvailableLiquidity(_reserve: string): Promise; + + getReserveConfiguration( + _reserve: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getReserveCurrentAverageStableBorrowRate( + _reserve: string + ): Promise; + + getReserveCurrentLiquidityRate(_reserve: string): Promise; + + getReserveCurrentStableBorrowRate(_reserve: string): Promise; + + getReserveCurrentVariableBorrowRate(_reserve: string): Promise; + + getReserveDecimals(_reserve: string): Promise; + + getReserveInterestRateStrategyAddress(_reserve: string): Promise; + + getReserveIsActive(_reserve: string): Promise; + + getReserveIsFreezed(_reserve: string): Promise; + + getReserveIsStableBorrowRateEnabled(_reserve: string): Promise; + + getReserveLastUpdate(_reserve: string): Promise; + + getReserveLiquidationBonus(_reserve: string): Promise; + + getReserveLiquidationThreshold(_reserve: string): Promise; + + getReserveLiquidityCumulativeIndex(_reserve: string): Promise; + + getReserveNormalizedIncome(_reserve: string): Promise; + + getReserveTotalBorrows(_reserve: string): Promise; + + getReserveTotalBorrowsStable(_reserve: string): Promise; + + getReserveTotalBorrowsVariable(_reserve: string): Promise; + + getReserveTotalLiquidity(_reserve: string): Promise; + + getReserveUtilizationRate(_reserve: string): Promise; + + getReserveVariableBorrowsCumulativeIndex( + _reserve: string + ): Promise; + + getReserves(): Promise; + + getUserBasicReserveData( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + 3: boolean; + }>; + + getUserBorrowBalances( + _reserve: string, + _user: string + ): Promise<{ + 0: BigNumber; + 1: BigNumber; + 2: BigNumber; + }>; + + getUserCurrentBorrowRateMode( + _reserve: string, + _user: string + ): Promise; + + getUserCurrentStableBorrowRate( + _reserve: string, + _user: string + ): Promise; + + getUserLastUpdate(_reserve: string, _user: string): Promise; + + getUserOriginationFee(_reserve: string, _user: string): Promise; + + getUserUnderlyingAssetBalance( + _reserve: string, + _user: string + ): Promise; + + getUserVariableBorrowCumulativeIndex( + _reserve: string, + _user: string + ): Promise; + + initReserve( + _reserve: string, + _aTokenAddress: string, + _decimals: BigNumberish, + _interestRateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + initialize( + _addressesProvider: string, + overrides?: TransactionOverrides + ): Promise; + + isReserveBorrowingEnabled(_reserve: string): Promise; + + isReserveUsageAsCollateralEnabled(_reserve: string): Promise; + + isUserAllowedToBorrowAtStable( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + isUserUseReserveAsCollateralEnabled( + _reserve: string, + _user: string + ): Promise; + + lendingPoolAddress(): Promise; + + liquidateFee( + _token: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + refreshConfiguration( + overrides?: TransactionOverrides + ): Promise; + + removeLastAddedReserve( + _reserveToRemove: string, + overrides?: TransactionOverrides + ): Promise; + + reservesList(arg0: BigNumberish): Promise; + + setReserveBaseLTVasCollateral( + _reserve: string, + _ltv: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveDecimals( + _reserve: string, + _decimals: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveInterestRateStrategyAddress( + _reserve: string, + _rateStrategyAddress: string, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationBonus( + _reserve: string, + _bonus: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setReserveLiquidationThreshold( + _reserve: string, + _threshold: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + setUserUseReserveAsCollateral( + _reserve: string, + _user: string, + _useAsCollateral: boolean, + overrides?: TransactionOverrides + ): Promise; + + transferToFeeCollectionAddress( + _token: string, + _user: string, + _amount: BigNumberish, + _destination: string, + overrides?: TransactionOverrides + ): Promise; + + transferToReserve( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferToUser( + _reserve: string, + _user: string, + _amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + unfreezeReserve( + _reserve: string, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnBorrow( + _reserve: string, + _user: string, + _amountBorrowed: BigNumberish, + _borrowFee: BigNumberish, + _rateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnDeposit( + _reserve: string, + _user: string, + _amount: BigNumberish, + _isFirstDeposit: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnFlashLoan( + _reserve: string, + _availableLiquidityBefore: BigNumberish, + _income: BigNumberish, + _protocolFee: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnLiquidation( + _principalReserve: string, + _collateralReserve: string, + _user: string, + _amountToLiquidate: BigNumberish, + _collateralToLiquidate: BigNumberish, + _feeLiquidated: BigNumberish, + _liquidatedCollateralForFee: BigNumberish, + _balanceIncrease: BigNumberish, + _liquidatorReceivesAToken: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRebalance( + _reserve: string, + _user: string, + _balanceIncrease: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRedeem( + _reserve: string, + _user: string, + _amountRedeemed: BigNumberish, + _userRedeemedEverything: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnRepay( + _reserve: string, + _user: string, + _paybackAmountMinusFees: BigNumberish, + _originationFeeRepaid: BigNumberish, + _balanceIncrease: BigNumberish, + _repaidWholeLoan: boolean, + overrides?: TransactionOverrides + ): Promise; + + updateStateOnSwapRate( + _reserve: string, + _user: string, + _principalBorrowBalance: BigNumberish, + _compoundedBorrowBalance: BigNumberish, + _balanceIncrease: BigNumberish, + _currentRateMode: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + ReserveDataUpdated( + reserve: string | null, + liquidityRate: null, + stableBorrowRate: null, + averageStableBorrowRate: null, + variableBorrowRate: null, + liquidityIndex: null, + variableBorrowIndex: null + ): EventFilter; + + ReserveUpdated( + reserve: string | null, + liquidityRate: null, + stableBorrowRate: null, + variableBorrowRate: null, + liquidityIndex: null, + variableBorrowIndex: null + ): EventFilter; + + ReserveUpdatedFromMock(revision: BigNumberish | null): EventFilter; + }; + + estimate: { + activateReserve(_reserve: string): Promise; + + addressesProvider(): Promise; + + deactivateReserve(_reserve: string): Promise; + + disableBorrowingOnReserve(_reserve: string): Promise; + + disableReserveAsCollateral(_reserve: string): Promise; + + disableReserveStableBorrowRate(_reserve: string): Promise; + + enableBorrowingOnReserve( + _reserve: string, + _stableBorrowRateEnabled: boolean + ): Promise; + + enableReserveAsCollateral( + _reserve: string, + _baseLTVasCollateral: BigNumberish, + _liquidationThreshold: BigNumberish, + _liquidationBonus: BigNumberish + ): Promise; + + enableReserveStableBorrowRate(_reserve: string): Promise; + + freezeReserve(_reserve: string): Promise; + + getReserveATokenAddress(_reserve: string): Promise; + + getReserveAvailableLiquidity(_reserve: string): Promise; + + getReserveConfiguration(_reserve: string): Promise; + + getReserveCurrentAverageStableBorrowRate( + _reserve: string + ): Promise; + + getReserveCurrentLiquidityRate(_reserve: string): Promise; + + getReserveCurrentStableBorrowRate(_reserve: string): Promise; + + getReserveCurrentVariableBorrowRate(_reserve: string): Promise; + + getReserveDecimals(_reserve: string): Promise; + + getReserveInterestRateStrategyAddress(_reserve: string): Promise; + + getReserveIsActive(_reserve: string): Promise; + + getReserveIsFreezed(_reserve: string): Promise; + + getReserveIsStableBorrowRateEnabled(_reserve: string): Promise; + + getReserveLastUpdate(_reserve: string): Promise; + + getReserveLiquidationBonus(_reserve: string): Promise; + + getReserveLiquidationThreshold(_reserve: string): Promise; + + getReserveLiquidityCumulativeIndex(_reserve: string): Promise; + + getReserveNormalizedIncome(_reserve: string): Promise; + + getReserveTotalBorrows(_reserve: string): Promise; + + getReserveTotalBorrowsStable(_reserve: string): Promise; + + getReserveTotalBorrowsVariable(_reserve: string): Promise; + + getReserveTotalLiquidity(_reserve: string): Promise; + + getReserveUtilizationRate(_reserve: string): Promise; + + getReserveVariableBorrowsCumulativeIndex( + _reserve: string + ): Promise; + + getReserves(): Promise; + + getUserBasicReserveData( + _reserve: string, + _user: string + ): Promise; + + getUserBorrowBalances(_reserve: string, _user: string): Promise; + + getUserCurrentBorrowRateMode( + _reserve: string, + _user: string + ): Promise; + + getUserCurrentStableBorrowRate( + _reserve: string, + _user: string + ): Promise; + + getUserLastUpdate(_reserve: string, _user: string): Promise; + + getUserOriginationFee(_reserve: string, _user: string): Promise; + + getUserUnderlyingAssetBalance( + _reserve: string, + _user: string + ): Promise; + + getUserVariableBorrowCumulativeIndex( + _reserve: string, + _user: string + ): Promise; + + initReserve( + _reserve: string, + _aTokenAddress: string, + _decimals: BigNumberish, + _interestRateStrategyAddress: string + ): Promise; + + initialize(_addressesProvider: string): Promise; + + isReserveBorrowingEnabled(_reserve: string): Promise; + + isReserveUsageAsCollateralEnabled(_reserve: string): Promise; + + isUserAllowedToBorrowAtStable( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + isUserUseReserveAsCollateralEnabled( + _reserve: string, + _user: string + ): Promise; + + lendingPoolAddress(): Promise; + + liquidateFee( + _token: string, + _amount: BigNumberish, + _destination: string + ): Promise; + + refreshConfiguration(): Promise; + + removeLastAddedReserve(_reserveToRemove: string): Promise; + + reservesList(arg0: BigNumberish): Promise; + + setReserveBaseLTVasCollateral( + _reserve: string, + _ltv: BigNumberish + ): Promise; + + setReserveDecimals( + _reserve: string, + _decimals: BigNumberish + ): Promise; + + setReserveInterestRateStrategyAddress( + _reserve: string, + _rateStrategyAddress: string + ): Promise; + + setReserveLiquidationBonus( + _reserve: string, + _bonus: BigNumberish + ): Promise; + + setReserveLiquidationThreshold( + _reserve: string, + _threshold: BigNumberish + ): Promise; + + setUserUseReserveAsCollateral( + _reserve: string, + _user: string, + _useAsCollateral: boolean + ): Promise; + + transferToFeeCollectionAddress( + _token: string, + _user: string, + _amount: BigNumberish, + _destination: string + ): Promise; + + transferToReserve( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + transferToUser( + _reserve: string, + _user: string, + _amount: BigNumberish + ): Promise; + + unfreezeReserve(_reserve: string): Promise; + + updateStateOnBorrow( + _reserve: string, + _user: string, + _amountBorrowed: BigNumberish, + _borrowFee: BigNumberish, + _rateMode: BigNumberish + ): Promise; + + updateStateOnDeposit( + _reserve: string, + _user: string, + _amount: BigNumberish, + _isFirstDeposit: boolean + ): Promise; + + updateStateOnFlashLoan( + _reserve: string, + _availableLiquidityBefore: BigNumberish, + _income: BigNumberish, + _protocolFee: BigNumberish + ): Promise; + + updateStateOnLiquidation( + _principalReserve: string, + _collateralReserve: string, + _user: string, + _amountToLiquidate: BigNumberish, + _collateralToLiquidate: BigNumberish, + _feeLiquidated: BigNumberish, + _liquidatedCollateralForFee: BigNumberish, + _balanceIncrease: BigNumberish, + _liquidatorReceivesAToken: boolean + ): Promise; + + updateStateOnRebalance( + _reserve: string, + _user: string, + _balanceIncrease: BigNumberish + ): Promise; + + updateStateOnRedeem( + _reserve: string, + _user: string, + _amountRedeemed: BigNumberish, + _userRedeemedEverything: boolean + ): Promise; + + updateStateOnRepay( + _reserve: string, + _user: string, + _paybackAmountMinusFees: BigNumberish, + _originationFeeRepaid: BigNumberish, + _balanceIncrease: BigNumberish, + _repaidWholeLoan: boolean + ): Promise; + + updateStateOnSwapRate( + _reserve: string, + _user: string, + _principalBorrowBalance: BigNumberish, + _compoundedBorrowBalance: BigNumberish, + _balanceIncrease: BigNumberish, + _currentRateMode: BigNumberish + ): Promise; + }; +} diff --git a/types/MockLendingPoolCoreFactory.ts b/types/MockLendingPoolCoreFactory.ts new file mode 100644 index 00000000..21f83388 --- /dev/null +++ b/types/MockLendingPoolCoreFactory.ts @@ -0,0 +1,1711 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockLendingPoolCore } from "./MockLendingPoolCore"; + +export class MockLendingPoolCoreFactory extends ContractFactory { + constructor( + linkLibraryAddresses: MockLendingPoolCoreLibraryAddresses, + signer?: Signer + ) { + super( + _abi, + MockLendingPoolCoreFactory.linkBytecode(linkLibraryAddresses), + signer + ); + } + + static linkBytecode( + linkLibraryAddresses: MockLendingPoolCoreLibraryAddresses + ): string { + let linkedBytecode = _bytecode; + + linkedBytecode = linkedBytecode.replace( + new RegExp("__\\$2ec35834968386f54fa313129cf94664e4\\$__", "g"), + linkLibraryAddresses["__$2ec35834968386f54fa313129cf94664e4$__"] + .replace(/^0x/, "") + .toLowerCase() + ); + + return linkedBytecode; + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockLendingPoolCore { + return super.attach(address) as MockLendingPoolCore; + } + connect(signer: Signer): MockLendingPoolCoreFactory { + return super.connect(signer) as MockLendingPoolCoreFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockLendingPoolCore { + return new Contract(address, _abi, signerOrProvider) as MockLendingPoolCore; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "reserve", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "stableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "averageStableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityIndex", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowIndex", + type: "uint256" + } + ], + name: "ReserveDataUpdated", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "reserve", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "stableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowRate", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "liquidityIndex", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "variableBorrowIndex", + type: "uint256" + } + ], + name: "ReserveUpdated", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "uint256", + name: "revision", + type: "uint256" + } + ], + name: "ReserveUpdatedFromMock", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "activateReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "addressesProvider", + outputs: [ + { + internalType: "contract LendingPoolAddressesProvider", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "deactivateReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "disableBorrowingOnReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "disableReserveAsCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "disableReserveStableBorrowRate", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "bool", + name: "_stableBorrowRateEnabled", + type: "bool" + } + ], + name: "enableBorrowingOnReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_baseLTVasCollateral", + type: "uint256" + }, + { + internalType: "uint256", + name: "_liquidationThreshold", + type: "uint256" + }, + { + internalType: "uint256", + name: "_liquidationBonus", + type: "uint256" + } + ], + name: "enableReserveAsCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "enableReserveStableBorrowRate", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "freezeReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveATokenAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveAvailableLiquidity", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveConfiguration", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentAverageStableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentLiquidityRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentStableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveCurrentVariableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveDecimals", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveInterestRateStrategyAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveIsActive", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveIsFreezed", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveIsStableBorrowRateEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLastUpdate", + outputs: [ + { + internalType: "uint40", + name: "timestamp", + type: "uint40" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLiquidationBonus", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLiquidationThreshold", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveLiquidityCumulativeIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveNormalizedIncome", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalBorrows", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalBorrowsStable", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalBorrowsVariable", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveTotalLiquidity", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveUtilizationRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "getReserveVariableBorrowsCumulativeIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "getReserves", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserBasicReserveData", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserBorrowBalances", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserCurrentBorrowRateMode", + outputs: [ + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserCurrentStableBorrowRate", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserLastUpdate", + outputs: [ + { + internalType: "uint256", + name: "timestamp", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserOriginationFee", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserUnderlyingAssetBalance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "getUserVariableBorrowCumulativeIndex", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_aTokenAddress", + type: "address" + }, + { + internalType: "uint256", + name: "_decimals", + type: "uint256" + }, + { + internalType: "address", + name: "_interestRateStrategyAddress", + type: "address" + } + ], + name: "initReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "contract LendingPoolAddressesProvider", + name: "_addressesProvider", + type: "address" + } + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "isReserveBorrowingEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "isReserveUsageAsCollateralEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "isUserAllowedToBorrowAtStable", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + } + ], + name: "isUserUseReserveAsCollateralEnabled", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "lendingPoolAddress", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_token", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "address", + name: "_destination", + type: "address" + } + ], + name: "liquidateFee", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [], + name: "refreshConfiguration", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserveToRemove", + type: "address" + } + ], + name: "removeLastAddedReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + name: "reservesList", + outputs: [ + { + internalType: "address", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_ltv", + type: "uint256" + } + ], + name: "setReserveBaseLTVasCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_decimals", + type: "uint256" + } + ], + name: "setReserveDecimals", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_rateStrategyAddress", + type: "address" + } + ], + name: "setReserveInterestRateStrategyAddress", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_bonus", + type: "uint256" + } + ], + name: "setReserveLiquidationBonus", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_threshold", + type: "uint256" + } + ], + name: "setReserveLiquidationThreshold", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "bool", + name: "_useAsCollateral", + type: "bool" + } + ], + name: "setUserUseReserveAsCollateral", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_token", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "address", + name: "_destination", + type: "address" + } + ], + name: "transferToFeeCollectionAddress", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address payable", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "transferToReserve", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address payable", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + } + ], + name: "transferToUser", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + } + ], + name: "unfreezeReserve", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amountBorrowed", + type: "uint256" + }, + { + internalType: "uint256", + name: "_borrowFee", + type: "uint256" + }, + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "_rateMode", + type: "uint8" + } + ], + name: "updateStateOnBorrow", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "bool", + name: "_isFirstDeposit", + type: "bool" + } + ], + name: "updateStateOnDeposit", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "uint256", + name: "_availableLiquidityBefore", + type: "uint256" + }, + { + internalType: "uint256", + name: "_income", + type: "uint256" + }, + { + internalType: "uint256", + name: "_protocolFee", + type: "uint256" + } + ], + name: "updateStateOnFlashLoan", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_principalReserve", + type: "address" + }, + { + internalType: "address", + name: "_collateralReserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amountToLiquidate", + type: "uint256" + }, + { + internalType: "uint256", + name: "_collateralToLiquidate", + type: "uint256" + }, + { + internalType: "uint256", + name: "_feeLiquidated", + type: "uint256" + }, + { + internalType: "uint256", + name: "_liquidatedCollateralForFee", + type: "uint256" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + }, + { + internalType: "bool", + name: "_liquidatorReceivesAToken", + type: "bool" + } + ], + name: "updateStateOnLiquidation", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + } + ], + name: "updateStateOnRebalance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_amountRedeemed", + type: "uint256" + }, + { + internalType: "bool", + name: "_userRedeemedEverything", + type: "bool" + } + ], + name: "updateStateOnRedeem", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_paybackAmountMinusFees", + type: "uint256" + }, + { + internalType: "uint256", + name: "_originationFeeRepaid", + type: "uint256" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + }, + { + internalType: "bool", + name: "_repaidWholeLoan", + type: "bool" + } + ], + name: "updateStateOnRepay", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_reserve", + type: "address" + }, + { + internalType: "address", + name: "_user", + type: "address" + }, + { + internalType: "uint256", + name: "_principalBorrowBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "_compoundedBorrowBalance", + type: "uint256" + }, + { + internalType: "uint256", + name: "_balanceIncrease", + type: "uint256" + }, + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "_currentRateMode", + type: "uint8" + } + ], + name: "updateStateOnSwapRate", + outputs: [ + { + internalType: "enum CoreLibrary.InterestRateMode", + name: "", + type: "uint8" + }, + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + stateMutability: "payable", + type: "receive" + } +]; + +const _bytecode = + "0x60806040526000805534801561001457600080fd5b5061590280620000256000396000f3fe6080604052600436106104145760003560e01c8063a2353fdc1161021e578063d15e005311610123578063e8ae2f5b116100ab578063f61483111161007a578063f6148311146113ad578063f6ea8d7614611431578063fa51854c1461146c578063fa93b2a5146114b1578063feab31ac146114f45761045f565b8063e8ae2f5b146112d9578063eede87c11461130c578063ef1f937314611347578063f054ab461461137a5761045f565b8063dae4c4e7116100f2578063dae4c4e7146111c2578063e10076ad146111f5578063e2174d8614611230578063e240301914611273578063e6d18190146112a65761045f565b8063d15e0053146110ea578063d3ae26b31461111d578063d466016f14611132578063da12d96f1461116b5761045f565b8063bd7fd79a116101a6578063c540148e11610175578063c540148e14611000578063c72c4d1014611033578063c76a6c9c14611048578063c7d142371461107b578063d06e2ec1146110b75761045f565b8063bd7fd79a14610f34578063bfacad8414610f67578063c33cfd9014610f9a578063c4d66de814610fcd5761045f565b8063afcdbea3116101ed578063afcdbea314610e05578063b701d09314610e50578063b75d6f3414610e83578063b8c0f74514610eb6578063bcd6ffa414610ee95761045f565b8063a2353fdc14610d17578063a5bc826c14610d4a578063a8dc0f4514610d8f578063af825b0714610dc25761045f565b80635cf2e656116103245780637aca76eb116102ac578063906c0a411161027b578063906c0a4114610bea57806398bd473714610c1d5780639e3c4f3b14610c505780639e67484814610c8b5780639fb8afcd14610cbe5761045f565b80637aca76eb14610b1b5780637f90fec514610b4e57806388079d8814610b815780638f385c2214610bb45761045f565b806366d103f3116102f357806366d103f3146109ce57806368beb4d614610a095780636ae1441614610a745780636fffab0c14610aa757806370fb84f414610ae25761045f565b80635cf2e656146108f25780635fc526ff14610925578063646810831461098057806366bbd928146109955761045f565b80633443a14b116103a757806345330a401161037657806345330a40146107cc57806346bc0f28146108155780634a08accb146108485780634f1446091461087b5780634fe7a6e5146108c85761045f565b80633443a14b146106a557806334b3beee146106de57806337ac6fe41461072d5780633e72a454146107995761045f565b806318f9bbae116103e357806318f9bbae146105a25780631ca19f19146105d55780631d2118f91461063457806328fcf4d31461066f5761045f565b806305075d6e146104645780630902f1ac146104ab57806309ac29531461051057806318a4dbca146105555761045f565b3661045f576104223361152f565b61045d5760405162461bcd60e51b81526004018080602001828103825260368152602001806156316036913960400191505060405180910390fd5b005b600080fd5b34801561047057600080fd5b506104976004803603602081101561048757600080fd5b50356001600160a01b031661156d565b604080519115158252519081900360200190f35b3480156104b757600080fd5b506104c0611595565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104fc5781810151838201526020016104e4565b505050509050019250505060405180910390f35b34801561051c57600080fd5b5061045d6004803603608081101561053357600080fd5b506001600160a01b0381351690602081013590604081013590606001356115f7565b34801561056157600080fd5b506105906004803603604081101561057857600080fd5b506001600160a01b03813581169160200135166116c5565b60408051918252519081900360200190f35b3480156105ae57600080fd5b50610497600480360360208110156105c557600080fd5b50356001600160a01b0316611758565b3480156105e157600080fd5b50610610600480360360408110156105f857600080fd5b506001600160a01b0381358116916020013516611780565b6040518082600281111561062057fe5b60ff16815260200191505060405180910390f35b34801561064057600080fd5b5061045d6004803603604081101561065757600080fd5b506001600160a01b03813581169160200135166117d5565b61045d6004803603606081101561068557600080fd5b506001600160a01b038135811691602081013590911690604001356118bb565b3480156106b157600080fd5b5061045d600480360360408110156106c857600080fd5b506001600160a01b038135169060200135611a86565b3480156106ea57600080fd5b506107116004803603602081101561070157600080fd5b50356001600160a01b0316611b5a565b604080516001600160a01b039092168252519081900360200190f35b34801561073957600080fd5b50610780600480360360a081101561075057600080fd5b5080356001600160a01b03908116916020810135909116906040810135906060810135906080013560ff16611b7b565b6040805192835260208301919091528051918290030190f35b3480156107a557600080fd5b5061045d600480360360208110156107bc57600080fd5b50356001600160a01b0316611c1b565b3480156107d857600080fd5b5061045d600480360360808110156107ef57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516611cf7565b34801561082157600080fd5b506105906004803603602081101561083857600080fd5b50356001600160a01b0316611e51565b34801561085457600080fd5b506104976004803603602081101561086b57600080fd5b50356001600160a01b0316611e6f565b34801561088757600080fd5b506108ae6004803603602081101561089e57600080fd5b50356001600160a01b0316611e97565b6040805164ffffffffff9092168252519081900360200190f35b3480156108d457600080fd5b50610711600480360360208110156108eb57600080fd5b5035611ec3565b3480156108fe57600080fd5b506104976004803603602081101561091557600080fd5b50356001600160a01b0316611eea565b34801561093157600080fd5b506109586004803603602081101561094857600080fd5b50356001600160a01b0316611f12565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b34801561098c57600080fd5b5061045d611f50565b3480156109a157600080fd5b5061045d600480360360408110156109b857600080fd5b506001600160a01b03813516906020013561200f565b3480156109da57600080fd5b50610590600480360360408110156109f157600080fd5b506001600160a01b03813581169160200135166120e3565b348015610a1557600080fd5b5061045d6004803603610120811015610a2d57600080fd5b506001600160a01b03813581169160208101358216916040820135169060608101359060808101359060a08101359060c08101359060e08101359061010001351515612119565b348015610a8057600080fd5b5061071160048036036020811015610a9757600080fd5b50356001600160a01b03166121bb565b348015610ab357600080fd5b5061059060048036036040811015610aca57600080fd5b506001600160a01b03813581169160200135166121dc565b348015610aee57600080fd5b5061045d60048036036040811015610b0557600080fd5b506001600160a01b03813516906020013561220b565b348015610b2757600080fd5b5061045d60048036036020811015610b3e57600080fd5b50356001600160a01b03166122df565b348015610b5a57600080fd5b5061059060048036036020811015610b7157600080fd5b50356001600160a01b03166123c1565b348015610b8d57600080fd5b5061059060048036036020811015610ba457600080fd5b50356001600160a01b03166123df565b61045d60048036036060811015610bca57600080fd5b506001600160a01b03813581169160208101359160409091013516612507565b348015610bf657600080fd5b5061059060048036036020811015610c0d57600080fd5b50356001600160a01b031661261d565b348015610c2957600080fd5b5061059060048036036020811015610c4057600080fd5b50356001600160a01b03166126cd565b348015610c5c57600080fd5b5061049760048036036040811015610c7357600080fd5b506001600160a01b03813581169160200135166126eb565b348015610c9757600080fd5b5061049760048036036020811015610cae57600080fd5b50356001600160a01b0316612724565b348015610cca57600080fd5b50610cf960048036036040811015610ce157600080fd5b506001600160a01b038135811691602001351661274c565b60408051938452602084019290925282820152519081900360600190f35b348015610d2357600080fd5b5061059060048036036020811015610d3a57600080fd5b50356001600160a01b03166127d7565b348015610d5657600080fd5b5061045d60048036036080811015610d6d57600080fd5b506001600160a01b0381351690602081013590604081013590606001356127f5565b348015610d9b57600080fd5b5061045d60048036036020811015610db257600080fd5b50356001600160a01b0316612943565b348015610dce57600080fd5b5061059060048036036060811015610de557600080fd5b506001600160a01b03813581169160208101359091169060400135612a72565b348015610e1157600080fd5b5061045d60048036036080811015610e2857600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612b12565b348015610e5c57600080fd5b5061059060048036036020811015610e7357600080fd5b50356001600160a01b0316612b9a565b348015610e8f57600080fd5b5061045d60048036036020811015610ea657600080fd5b50356001600160a01b0316612bb8565b348015610ec257600080fd5b5061045d60048036036020811015610ed957600080fd5b50356001600160a01b0316612ceb565b348015610ef557600080fd5b5061045d60048036036080811015610f0c57600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515612dc7565b348015610f4057600080fd5b5061059060048036036020811015610f5757600080fd5b50356001600160a01b0316612e4f565b348015610f7357600080fd5b5061059060048036036020811015610f8a57600080fd5b50356001600160a01b0316612e6a565b348015610fa657600080fd5b5061059060048036036020811015610fbd57600080fd5b50356001600160a01b0316612ed4565b348015610fd957600080fd5b5061045d60048036036020811015610ff057600080fd5b50356001600160a01b0316612f0d565b34801561100c57600080fd5b506105906004803603602081101561102357600080fd5b50356001600160a01b0316612fcc565b34801561103f57600080fd5b50610711612fea565b34801561105457600080fd5b506105906004803603602081101561106b57600080fd5b50356001600160a01b0316612ff9565b61045d6004803603608081101561109157600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516613017565b3480156110c357600080fd5b5061045d600480360360208110156110da57600080fd5b50356001600160a01b03166131c9565b3480156110f657600080fd5b506105906004803603602081101561110d57600080fd5b50356001600160a01b03166133ce565b34801561112957600080fd5b506107116133ef565b34801561113e57600080fd5b5061045d6004803603604081101561115557600080fd5b506001600160a01b0381351690602001356133fe565b34801561117757600080fd5b5061045d600480360360c081101561118e57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a0013515156134d2565b3480156111ce57600080fd5b5061045d600480360360208110156111e557600080fd5b50356001600160a01b0316613541565b34801561120157600080fd5b506109586004803603604081101561121857600080fd5b506001600160a01b0381358116916020013516613623565b34801561123c57600080fd5b506104976004803603606081101561125357600080fd5b506001600160a01b038135811691602081013590911690604001356136d0565b34801561127f57600080fd5b506105906004803603602081101561129657600080fd5b50356001600160a01b0316613766565b3480156112b257600080fd5b50610590600480360360208110156112c957600080fd5b50356001600160a01b031661380a565b3480156112e557600080fd5b5061045d600480360360208110156112fc57600080fd5b50356001600160a01b031661382b565b34801561131857600080fd5b5061045d6004803603604081101561132f57600080fd5b506001600160a01b0381351690602001351515613946565b34801561135357600080fd5b5061045d6004803603602081101561136a57600080fd5b50356001600160a01b0316613a7d565b34801561138657600080fd5b506105906004803603602081101561139d57600080fd5b50356001600160a01b0316613b59565b3480156113b957600080fd5b50611406600480360360c08110156113d057600080fd5b5080356001600160a01b039081169160208101359091169060408101359060608101359060808101359060a0013560ff16613b77565b6040518083600281111561141657fe5b60ff1681526020018281526020019250505060405180910390f35b34801561143d57600080fd5b506105906004803603604081101561145457600080fd5b506001600160a01b0381358116916020013516613c09565b34801561147857600080fd5b5061045d6004803603606081101561148f57600080fd5b506001600160a01b038135811691602081013590911690604001351515613c38565b3480156114bd57600080fd5b5061045d600480360360608110156114d457600080fd5b506001600160a01b03813581169160208101359091169060400135613cca565b34801561150057600080fd5b506105906004803603604081101561151757600080fd5b506001600160a01b0381358116916020013516613df1565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061156357508115155b925050505b919050565b6001600160a01b03166000908152603660205260409020600d0154600160e01b900460ff1690565b606060388054806020026020016040519081016040528092919081815260200182805480156115ed57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116115cf575b5050505050905090565b6034546001600160a01b031633146116405760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b61164a8482613e20565b6001600160a01b038416600090815260366020526040902061166b90613f5d565b60006116866116798661380a565b859063ffffffff613ff516565b6001600160a01b03861660009081526036602052604090209091506116b290828563ffffffff61404f16565b6116be858460006140ad565b5050505050565b6001600160a01b038083166000908152603660209081526040808320600c015481516370a0823160e01b8152868616600482015291519394169283926370a082319260248082019391829003018186803b15801561172257600080fd5b505afa158015611736573d6000803e3d6000fd5b505050506040513d602081101561174c57600080fd5b50519150505b92915050565b6001600160a01b03166000908152603660205260409020600d0154600160d01b900460ff1690565b6001600160a01b038082166000908152603760209081526040808320938616835292905290812080546117b7576000915050611752565b60008160030154116117ca5760026117cd565b60015b949350505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561181957600080fd5b505afa15801561182d573d6000803e3d6000fd5b505050506040513d602081101561184357600080fd5b50516001600160a01b03161461188a5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b039182166000908152603660205260409020600d0180546001600160a01b03191691909216179055565b6034546001600160a01b031633146119045760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b61190c6140ee565b6001600160a01b0316836001600160a01b0316146119815734156119615760405162461bcd60e51b81526004018080602001828103825260328152602001806156c76032913960400191505060405180910390fd5b61197c6001600160a01b03841683308463ffffffff61410616565b611a81565b803410156119c05760405162461bcd60e51b81526004018080602001828103825260358152602001806155fc6035913960400191505060405180910390fd5b80341115611a815760006119da348363ffffffff61416016565b6040519091506000906001600160a01b0385169061c35090859084818181858888f193505050503d8060008114611a2d576040519150601f19603f3d011682016040523d82523d6000602084013e611a32565b606091505b50509050806116be576040805162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c881bd9881155120819985a5b195960521b604482015290519081900360640190fd5b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611aca57600080fd5b505afa158015611ade573d6000803e3d6000fd5b505050506040513d6020811015611af457600080fd5b50516001600160a01b031614611b3b5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03909116600090815260366020526040902060090155565b6001600160a01b039081166000908152603660205260409020600c01541690565b60345460009081906001600160a01b03163314611bc95760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b600080611bd6898961274c565b9250509150611be9898984848b8a6141a2565b611bf7898989848a8a6141d1565b611c03896000896140ad565b611c0d89896142f6565b999098509650505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611c5f57600080fd5b505afa158015611c73573d6000803e3d6000fd5b505050506040513d6020811015611c8957600080fd5b50516001600160a01b031614611cd05760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60e01b19169055565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611d3b57600080fd5b505afa158015611d4f573d6000803e3d6000fd5b505050506040513d6020811015611d6557600080fd5b50516001600160a01b031614611dac5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b0380851660009081526036602052604080822081516304dda73560e21b8152600481019190915286841660248201526044810186905292841660648401525173__$2ec35834968386f54fa313129cf94664e4$__926313769cd4926084808301939192829003018186803b158015611e2a57600080fd5b505af4158015611e3e573d6000803e3d6000fd5b50505050611e4b84614388565b50505050565b6001600160a01b031660009081526036602052604090206006015490565b6001600160a01b03166000908152603660205260409020600d0154600160e81b900460ff1690565b6001600160a01b03166000908152603660205260409020600d0154600160a01b900464ffffffffff1690565b60388181548110611ed057fe5b6000918252602090912001546001600160a01b0316905081565b6001600160a01b03166000908152603660205260409020600d0154600160c81b900460ff1690565b6001600160a01b03166000908152603660205260409020600b81015460088201546009830154600d909301549193909291600160d01b900460ff1690565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015611f9457600080fd5b505afa158015611fa8573d6000803e3d6000fd5b505050506040513d6020811015611fbe57600080fd5b50516001600160a01b0316146120055760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b61200d61442c565b565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561205357600080fd5b505afa158015612067573d6000803e3d6000fd5b505050506040513d602081101561207d57600080fd5b50516001600160a01b0316146120c45760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b039091166000908152603660205260409020600b0155565b6001600160a01b0390811660009081526037602090815260408083209490931682529290925290206004015464ffffffffff1690565b6034546001600160a01b031633146121625760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b61216e898888856144c7565b61217788614580565b61218489888887866145a4565b612190898760006140ad565b806121b0576121b08860006121ab888763ffffffff613ff516565b6140ad565b505050505050505050565b6001600160a01b039081166000908152603660205260409020600d01541690565b6001600160a01b0380821660009081526037602090815260408083209386168352929052206003015492915050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561224f57600080fd5b505afa158015612263573d6000803e3d6000fd5b505050506040513d602081101561227957600080fd5b50516001600160a01b0316146122c05760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b039091166000908152603660205260409020600a0155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561232357600080fd5b505afa158015612337573d6000803e3d6000fd5b505050506040513d602081101561234d57600080fd5b50516001600160a01b0316146123945760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60e81b1916600160e81b179055565b6001600160a01b031660009081526036602052604090206002015490565b6001600160a01b0380821660009081526036602090815260408083206035548251631b0c55dd60e11b815292519495919486949190921692633618abba9260048083019392829003018186803b15801561243857600080fd5b505afa15801561244c573d6000803e3d6000fd5b505050506040513d602081101561246257600080fd5b505160058301549091506124fc57806001600160a01b031663bb85c0bb856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156124c657600080fd5b505afa1580156124da573d6000803e3d6000fd5b505050506040513d60208110156124f057600080fd5b50519250611568915050565b506005015492915050565b6034546001600160a01b031633146125505760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b80341561258e5760405162461bcd60e51b81526004018080602001828103825260368152602001806155766036913960400191505060405180910390fd5b6125966140ee565b6001600160a01b0316846001600160a01b0316146125cd576125c86001600160a01b038516828563ffffffff61466216565b611e4b565b6040516000906001600160a01b0383169061c35090869084818181858888f193505050503d8060008114611a2d576040519150601f19603f3d011682016040523d82523d6000602084013e611a32565b6001600160a01b038116600090815260366020526040812060048101546126c35780600d0160009054906101000a90046001600160a01b03166001600160a01b03166334762ca56040518163ffffffff1660e01b815260040160206040518083038186803b15801561268e57600080fd5b505afa1580156126a2573d6000803e3d6000fd5b505050506040513d60208110156126b857600080fd5b505191506115689050565b6004015492915050565b6001600160a01b031660009081526036602052604090206003015490565b6001600160a01b03908116600090815260376020908152604080832094909316825292909252902060040154600160281b900460ff1690565b6001600160a01b03166000908152603660205260409020600d0154600160d81b900460ff1690565b6001600160a01b038082166000908152603760209081526040808320938616835292905290812080548291829161278d5750600092508291508190506127d0565b80546001600160a01b03871660009081526036602052604081206127b29084906146b4565b905081816127c6818363ffffffff61416016565b9550955095505050505b9250925092565b6001600160a01b03166000908152603660205260409020600b015490565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561283957600080fd5b505afa15801561284d573d6000803e3d6000fd5b505050506040513d602081101561286357600080fd5b50516001600160a01b0316146128aa5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b038416600090815260366020526040808220815163126ee27360e11b81526004810191909152602481018690526044810185905260648101849052905173__$2ec35834968386f54fa313129cf94664e4$__926324ddc4e69260848082019391829003018186803b15801561292557600080fd5b505af4158015612939573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561298757600080fd5b505afa15801561299b573d6000803e3d6000fd5b505050506040513d60208110156129b157600080fd5b50516001600160a01b0316146129f85760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03811660009081526036602052604080822081516372efab5360e11b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__9263e5df56a69260248082019391829003018186803b158015612a5e57600080fd5b505af41580156116be573d6000803e3d6000fd5b6034546000906001600160a01b03163314612abe5760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b612ac98484846147a6565b612ad48484846147f6565b612ae0846000806140ad565b506001600160a01b038083166000908152603760209081526040808320938716835292905220600301545b9392505050565b6034546001600160a01b03163314612b5b5760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b6001600160a01b0384166000908152603660205260409020612b7c90613f5d565b612b88846000846140ad565b8015611e4b57611e4b84846000613c38565b6001600160a01b031660009081526036602052604090206007015490565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612bfc57600080fd5b505afa158015612c10573d6000803e3d6000fd5b505050506040513d6020811015612c2657600080fd5b50516001600160a01b031614612c6d5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b0381166000908152603660205260409020805415801590612c99575060008160070154115b612cd45760405162461bcd60e51b81526004018080602001828103825260248152602001806157bf6024913960400191505060405180910390fd5b600d01805460ff60e01b1916600160e01b17905550565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612d2f57600080fd5b505afa158015612d43573d6000803e3d6000fd5b505050506040513d6020811015612d5957600080fd5b50516001600160a01b031614612da05760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60d81b19169055565b6034546001600160a01b03163314612e105760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b6001600160a01b0384166000908152603660205260409020612e3190613f5d565b612e3d848360006140ad565b8015611e4b57611e4b84846001613c38565b6001600160a01b031660009081526036602052604090205490565b6001600160a01b038116600090815260366020526040812081612e8c8261485f565b905080612e9e57600092505050611568565b6000612ea985613766565b9050612ecb612ebe828463ffffffff613ff516565b839063ffffffff61487c16565b95945050505050565b6001600160a01b0381166000908152603660205260408120612b0b612ef88261485f565b612f0185613766565b9063ffffffff613ff516565b6000612f176148b8565b60015490915060ff1680612f2e5750612f2e6148bd565b80612f3a575060005481115b612f755760405162461bcd60e51b815260040180806020018281038252602e815260200180615828602e913960400191505060405180910390fd5b60015460ff16158015612f94576001805460ff19168117905560008290555b603580546001600160a01b0319166001600160a01b038516179055612fb761442c565b8015611a81576001805460ff19169055505050565b6001600160a01b031660009081526036602052604090206001015490565b6035546001600160a01b031681565b6001600160a01b03166000908152603660205260409020600a015490565b6034546001600160a01b031633146130605760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b806130696140ee565b6001600160a01b0316856001600160a01b0316146130de5734156130be5760405162461bcd60e51b815260040180806020018281038252605f8152602001806156f9605f913960600191505060405180910390fd5b6130d96001600160a01b03861685838663ffffffff61410616565b6116be565b8234101561311d5760405162461bcd60e51b81526004018080602001828103825260358152602001806155fc6035913960400191505060405180910390fd5b6040516000906001600160a01b0383169061c35090869084818181858888f193505050503d806000811461316d576040519150601f19603f3d011682016040523d82523d6000602084013e613172565b606091505b50509050806131c1576040805162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c881bd9881155120819985a5b195960521b604482015290519081900360640190fd5b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561320d57600080fd5b505afa158015613221573d6000803e3d6000fd5b505050506040513d602081101561323757600080fd5b50516001600160a01b03161461327e5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6038805460009190600019810190811061329457fe5b6000918252602090912001546001600160a01b039081169150821681146132ec5760405162461bcd60e51b815260040180806020018281038252603d81526020018061568a603d913960400191505060405180910390fd5b6132f58161380a565b156133315760405162461bcd60e51b81526004018080602001828103825260308152602001806157586030913960400191505060405180910390fd5b6001600160a01b0381166000908152603660205260408120600d81018054600c830180546001600160a01b0319169055600b8301849055838355600783018490556008830184905560098301849055600a90920192909255600168ff00ffff000000000160a01b031916905560388054806133a857fe5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6001600160a01b0381166000908152603660205260408120612b0b816148c3565b6034546001600160a01b031681565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561344257600080fd5b505afa158015613456573d6000803e3d6000fd5b505050506040513d602081101561346c57600080fd5b50516001600160a01b0316146134b35760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03909116600090815260366020526040902060080155565b6034546001600160a01b0316331461351b5760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b613527868686856148f1565b613535868686868686614958565b6131c1868560006140ad565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561358557600080fd5b505afa158015613599573d6000803e3d6000fd5b505050506040513d60208110156135af57600080fd5b50516001600160a01b0316146135f65760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60d81b1916600160d81b179055565b6001600160a01b03808316600081815260366020908152604080832094861683526037825280832093835292905290812090918291829182918261366789896116c5565b8254909150613694576004909101549095506000945084935060ff600160281b9091041691506136c79050565b806136a5838563ffffffff6146b416565b6002840154600490940154919850965091945050600160281b900460ff169150505b92959194509250565b6001600160a01b038381166000818152603660209081526040808320948716835260378252808320938352929052908120600d830154919291600160d81b900460ff1661372257600092505050612b0b565b6004810154600160281b900460ff1615806137495750600d820154600160d01b900460ff16155b8061375c575061375986866116c5565b84115b9695505050505050565b6000806137716140ee565b6001600160a01b0316836001600160a01b03161415613791575047611752565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156137d757600080fd5b505afa1580156137eb573d6000803e3d6000fd5b505050506040513d602081101561380157600080fd5b50519392505050565b6001600160a01b03811660009081526036602052604081206117529061485f565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561386f57600080fd5b505afa158015613883573d6000803e3d6000fd5b505050506040513d602081101561389957600080fd5b50516001600160a01b0316146138e05760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b038116600090815260366020526040808220815163041e0b2d60e51b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__926383c165a09260248082019391829003018186803b158015612a5e57600080fd5b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561398a57600080fd5b505afa15801561399e573d6000803e3d6000fd5b505050506040513d60208110156139b457600080fd5b50516001600160a01b0316146139fb5760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b0382166000908152603660205260408082208151637b1dd5df60e11b815260048101919091528315156024820152905173__$2ec35834968386f54fa313129cf94664e4$__9263f63babbe9260448082019391829003018186803b158015613a6957600080fd5b505af41580156131c1573d6000803e3d6000fd5b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015613ac157600080fd5b505afa158015613ad5573d6000803e3d6000fd5b505050506040513d6020811015613aeb57600080fd5b50516001600160a01b031614613b325760405162461bcd60e51b81526004018080602001828103825260378152602001806157886037913960400191505060405180910390fd5b6001600160a01b03166000908152603660205260409020600d01805460ff60e81b19169055565b6001600160a01b031660009081526036602052604090206009015490565b60345460009081906001600160a01b03163314613bc55760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b613bd288888888876149d5565b6000613be089898787614ad4565b9050613bee896000806140ad565b80613bf98a8a6142f6565b9250925050965096945050505050565b6001600160a01b0380821660009081526037602090815260408083209386168352929052206001015492915050565b6034546001600160a01b03163314613c815760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b6001600160a01b0391821660009081526037602090815260408083209590941682529390935291206004018054911515600160281b0265ff000000000019909216919091179055565b6034546001600160a01b03163314613d135760405162461bcd60e51b815260040180806020018281038252602a815260200180615856602a913960400191505060405180910390fd5b613d1b6140ee565b6001600160a01b0316836001600160a01b031614613d4d5761197c6001600160a01b038416838363ffffffff61466216565b6040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114613d9d576040519150601f19603f3d011682016040523d82523d6000602084013e613da2565b606091505b5050905080611e4b576040805162461bcd60e51b8152602060048201526016602482015275151c985b9cd9995c881bd9881155120819985a5b195960521b604482015290519081900360640190fd5b6001600160a01b0380821660009081526037602090815260408083209386168352929052206002015492915050565b60355460408051637744894b60e11b815290516000926001600160a01b03169163ee891296916004808301926020929190829003018186803b158015613e6557600080fd5b505afa158015613e79573d6000803e3d6000fd5b505050506040513d6020811015613e8f57600080fd5b50519050613e9b6140ee565b6001600160a01b0316836001600160a01b031614613ecd5761197c6001600160a01b038416828463ffffffff61466216565b6040516000906001600160a01b0383169084908381818185875af1925050503d8060008114613f18576040519150601f19603f3d011682016040523d82523d6000602084013e613f1d565b606091505b5050905080611e4b5760405162461bcd60e51b81526004018080602001828103825260248152602001806158046024913960400191505060405180910390fd5b6000613f688261485f565b90508015613ff1576001820154600d830154600091613f9491600160a01b900464ffffffffff16614bd2565b8354909150613faa90829063ffffffff614c1d16565b83556004830154600d840154600091613fd091600160a01b900464ffffffffff16614c55565b9050613fe9846007015482614c1d90919063ffffffff16565b600785015550505b5050565b600082820183811015612b0b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061407261405d84614ca4565b61406684614ca4565b9063ffffffff61487c16565b9050600061408e614081614cba565b839063ffffffff613ff516565b85549091506140a490829063ffffffff614c1d16565b90945550505050565b6140b8838383614cca565b6140c06148b8565b6040517fb362f715591e6551ba78917a287fa286eed1ded21d619b267911b67f595af1c990600090a2505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052611e4b908590614e63565b6000612b0b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061501b565b6001600160a01b03861660009081526036602052604090206141c390613f5d565b6131c18686868686866150b2565b6001600160a01b038087166000818152603660209081526040808320948a1683526037825280832093835292905220600183600281111561420e57fe5b141561422a5760058201546003820155600060018201556142a1565b600283600281111561423857fe5b14156142545760006003820155600782015460018201556142a1565b6040805162461bcd60e51b815260206004820152601860248201527f496e76616c696420626f72726f772072617465206d6f64650000000000000000604482015290519081900360640190fd5b80546142b9908690612f01908963ffffffff613ff516565b815560028101546142d0908563ffffffff613ff516565b6002820155600401805464ffffffffff19164264ffffffffff1617905550505050505050565b6000806143038484611780565b9050600081600281111561431357fe5b1415614323576000915050611752565b600181600281111561433157fe5b14614357576001600160a01b0384166000908152603660205260409020600401546117cd565b50506001600160a01b0390811660009081526037602090815260408083209490931682529290925290206003015490565b6000805b6038548110156143d557826001600160a01b0316603882815481106143ad57fe5b6000918252602090912001546001600160a01b031614156143cd57600191505b60010161438c565b5080613ff157603880546001810182556000919091527f38395c5dceade9603479b177b68959049485df8aa97b39f3533039af5f4561990180546001600160a01b0384166001600160a01b03199091161790555050565b603560009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561447a57600080fd5b505afa15801561448e573d6000803e3d6000fd5b505050506040513d60208110156144a457600080fd5b5051603480546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b038085166000818152603660209081526040808320948816835260378252808320938352929052206144ff82613f5d565b600061450b8787611780565b905060015b81600281111561451c57fe5b141561455757600382015461453a908490869063ffffffff61520e16565b6003820154614552908490879063ffffffff61527e16565b614577565b614567838563ffffffff61538916565b614577838663ffffffff6153aa16565b50505050505050565b6001600160a01b03811660009081526036602052604090206145a190613f5d565b50565b6001600160a01b0380851660009081526037602090815260408083209389168352928152828220603690915291902081546145f79086906145eb908663ffffffff613ff516565b9063ffffffff61416016565b825560026146058888611780565b600281111561461057fe5b141561462157600781015460018301555b831561464257600282015461463c908563ffffffff61416016565b60028301555b50600401805464ffffffffff19164264ffffffffff161790555050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611a81908490614e63565b81546000906146c557506000611752565b60006146d48460000154614ca4565b60038501549091506000908190156147085760038601546004870154614701919064ffffffffff16614c55565b905061474a565b6147478660010154614066876007015461473b89600401548a600d0160149054906101000a900464ffffffffff16614c55565b9063ffffffff614c1d16565b90505b61476261475d848363ffffffff614c1d16565b615402565b865490925082141561479d57600486015464ffffffffff16421461479d57855461479390600163ffffffff613ff516565b9350505050611752565b50949350505050565b6001600160a01b038084166000818152603660209081526040808320948716835260378252808320938352929052206147de82613f5d565b60038101546116be908390859063ffffffff61520e16565b6001600160a01b038083166000908152603760209081526040808320938716835292815282822060369091529190208154614837908463ffffffff613ff516565b8255600501546003820155600401805464ffffffffff19164264ffffffffff16179055505050565b600061175282600301548360020154613ff590919063ffffffff16565b6000600282046117cd836148ac61489f876b033b2e3c9fd0803ce800000061541b565b849063ffffffff613ff516565b9063ffffffff61547416565b600890565b303b1590565b600080612b0b836000015461473b856001015486600d0160149054906101000a900464ffffffffff16614bd2565b6001600160a01b0380851660008181526036602090815260408083209488168352603782528083209383529290529081209061492d8787611780565b6001600160a01b038816600090815260366020526040902090915061495190613f5d565b6001614510565b6001600160a01b038087166000818152603660209081526040808320948a1683526037825280832093835292905220805461499f9087906145eb908763ffffffff613ff516565b81556007820154600182015582156149c05760006003820181905560018201555b60028101546142d0908663ffffffff61416016565b6001600160a01b03808616600081815260366020908152604080832094891683526037825280832093835292905220614a0d82613f5d565b6001836002811115614a1b57fe5b1415614a4d576003810154614a3783878363ffffffff61527e16565b614a47838663ffffffff61538916565b50614577565b6002836002811115614a5b57fe5b1415614a87576005820154614a76838763ffffffff6153aa16565b614a4783868363ffffffff61520e16565b6040805162461bcd60e51b815260206004820152601a60248201527f496e76616c69642072617465206d6f6465207265636569766564000000000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260376020908152604080832093881683529281528282206036909152918120909190826002856002811115614b1557fe5b1415614b365750600581015460038301556000600183810191909155614b9a565b6001856002811115614b4457fe5b1415614b63575060006003830155600781015460018301556002614b9a565b60405162461bcd60e51b81526004018080602001828103825260238152602001806158806023913960400191505060405180910390fd5b8254614bac908763ffffffff613ff516565b83556004909201805464ffffffffff19164264ffffffffff161790555095945050505050565b600080614bec4264ffffffffff851663ffffffff61416016565b90506000614c0061405d6301e13380614ca4565b9050612ecb614c0d614cba565b612f01878463ffffffff614c1d16565b6000612b0b6b033b2e3c9fd0803ce80000006148ac614c42868663ffffffff61541b16565b6b019d971e4fe8401e7400000090613ff5565b600080614c6f4264ffffffffff851663ffffffff61416016565b90506000614c87856301e1338063ffffffff61547416565b9050612ecb82614c9861489f614cba565b9063ffffffff6154b616565b600061175282633b9aca0063ffffffff61541b16565b6b033b2e3c9fd0803ce800000090565b6001600160a01b0380841660009081526036602052604081206006810154600d820154919390929182918291166357e37af089614d0e896145eb8c612f0185613766565b88600201548960030154896040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b158015614d7b57600080fd5b505afa158015614d8f573d6000803e3d6000fd5b505050506040513d6060811015614da557600080fd5b50805160208083015160409384015160018a0184905560058a0182905560048a01819055600d8a01805464ffffffffff4216600160a01b0264ffffffffff60a01b19909116179055895460078b015486518681529485018490528487018b905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a25050505050505050565b614e75826001600160a01b031661152f565b614ec6576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310614f045780518252601f199092019160209182019101614ee5565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614f66576040519150601f19603f3d011682016040523d82523d6000602084013e614f6b565b606091505b509150915081614fc2576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611e4b57808060200190516020811015614fde57600080fd5b5051611e4b5760405162461bcd60e51b815260040180806020018281038252602a8152602001806158a3602a913960400191505060405180910390fd5b600081848411156150aa5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561506f578181015183820152602001615057565b50505050905090810190601f16801561509c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006150be8787611780565b6001600160a01b038816600090815260366020526040902090915060018260028111156150e757fe5b1415615130576001600160a01b038088166000908152603760209081526040808320938c16835292905220600381015461512a908390899063ffffffff61527e16565b50615154565b600282600281111561513e57fe5b141561515457615154818763ffffffff6153aa16565b600061516a85612f01898963ffffffff613ff516565b9050600184600281111561517a57fe5b141561519d576005820154615198908390839063ffffffff61520e16565b6121b0565b60028460028111156151ab57fe5b14156151c157615198828263ffffffff61538916565b6040805162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206e657720626f72726f772072617465206d6f646500000000604482015290519081900360640190fd5b6002830154615223818463ffffffff613ff516565b600285015560006152378361473b86614ca4565b9050600061524c866006015461473b85614ca4565b905061526e61525e8760020154614ca4565b614066848463ffffffff613ff516565b8660060181905550505050505050565b81836002015410156152d7576040805162461bcd60e51b815260206004820152601a60248201527f496e76616c696420616d6f756e7420746f206465637265617365000000000000604482015290519081900360640190fd5b60028301546152ec818463ffffffff61416016565b60028501819055615304575060006006840155611a81565b60006153138361473b86614ca4565b90506000615328866006015461473b85614ca4565b9050818110156153695760405162461bcd60e51b81526004018080602001828103825260238152602001806156676023913960400191505060405180910390fd5b61526e6153798760020154614ca4565b614066838563ffffffff61416016565b600382015461539e908263ffffffff613ff516565b82600301819055505050565b80826003015410156153ed5760405162461bcd60e51b81526004018080602001828103825260508152602001806155ac6050913960600191505060405180910390fd5b600382015461539e908263ffffffff61416016565b6000631dcd6500612b0b633b9aca006148ac8386613ff5565b60008261542a57506000611752565b8282028284828161543757fe5b0414612b0b5760405162461bcd60e51b81526004018080602001828103825260218152602001806157e36021913960400191505060405180910390fd5b6000612b0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615510565b6000600282066154d2576b033b2e3c9fd0803ce80000006154d4565b825b90506002820491505b8115611752576154ed8384614c1d565b92506002820615615505576155028184614c1d565b90505b6002820491506154dd565b6000818361555f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561506f578181015183820152602001615057565b50600083858161556b57fe5b049594505050505056fe466565206c69717569646174696f6e20646f6573206e6f74207265717569726520616e79207472616e73666572206f662076616c756554686520616d6f756e742074686174206973206265696e6720737562747261637465642066726f6d20746865207661726961626c6520746f74616c20626f72726f777320697320696e636f727265637454686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d617463684f6e6c7920636f6e7472616374732063616e2073656e6420657468657220746f20746865204c656e64696e6720706f6f6c20636f726554686520616d6f756e747320746f20737562747261637420646f6e2774206d6174636852657365727665206265696e672072656d6f76656420697320646966666572656e74207468616e20746865207265736572766520726571756573746564557365722069732073656e64696e672045544820616c6f6e67207769746820746865204552433230207472616e736665722e557365722069732073656e64696e672045544820616c6f6e67207769746820746865204552433230207472616e736665722e20436865636b207468652076616c756520617474726962757465206f6620746865207472616e73616374696f6e43616e6e6f742072656d6f7665206120726573657276652077697468206c6971756964697479206465706f73697465645468652063616c6c6572206d7573742062652061206c656e64696e6720706f6f6c20636f6e666967757261746f7220636f6e74726163745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220746f20746f6b656e206469737472696275746f72206661696c6564436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652063616c6c6572206d7573742062652061206c656e64696e6720706f6f6c20636f6e7472616374496e76616c696420696e7465726573742072617465206d6f64652072656365697665645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122061087e8417c9de55b31ff397b5e6c643ead8ef7d55813c166da8501d4f1d57b464736f6c63430006080033"; + +export interface MockLendingPoolCoreLibraryAddresses { + ["__$2ec35834968386f54fa313129cf94664e4$__"]: string; +} diff --git a/types/MockLink.d.ts b/types/MockLink.d.ts new file mode 100644 index 00000000..0319fc42 --- /dev/null +++ b/types/MockLink.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockLinkInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockLink extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockLink; + attach(addressOrName: string): MockLink; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockLink; + once(event: EventFilter | string, listener: Listener): MockLink; + addListener(eventName: EventFilter | string, listener: Listener): MockLink; + removeAllListeners(eventName: EventFilter | string): MockLink; + removeListener(eventName: any, listener: Listener): MockLink; + + interface: MockLinkInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockLinkFactory.ts b/types/MockLinkFactory.ts new file mode 100644 index 00000000..1e6dcf4e --- /dev/null +++ b/types/MockLinkFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockLink } from "./MockLink"; + +export class MockLinkFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockLink { + return super.attach(address) as MockLink; + } + connect(signer: Signer): MockLinkFactory { + return super.connect(signer) as MockLinkFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockLink { + return new Contract(address, _abi, signerOrProvider) as MockLink; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001634c494e4b60e01b81525060405180604001604052806009815260200168436861696e4c696e6b60b81b81525060128282816003908051906020019061006a9291906100be565b50805161007e9060049060208401906100be565b50506005805460ff19166012179055506100a0816001600160e01b036100a816565b505050610159565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100ff57805160ff191683800117855561012c565b8280016001018555821561012c579182015b8281111561012c578251825591602001919060010190610111565b5061013892915061013c565b5090565b61015691905b808211156101385760008155600101610142565b90565b610b48806101686000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206dd7a8b3f09fbae395ba1de91774c69ce83a21bc9865cf5daa39d13e586172ba64736f6c63430006080033"; diff --git a/types/MockMana.d.ts b/types/MockMana.d.ts new file mode 100644 index 00000000..7d35d9fc --- /dev/null +++ b/types/MockMana.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockManaInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockMana extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockMana; + attach(addressOrName: string): MockMana; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockMana; + once(event: EventFilter | string, listener: Listener): MockMana; + addListener(eventName: EventFilter | string, listener: Listener): MockMana; + removeAllListeners(eventName: EventFilter | string): MockMana; + removeListener(eventName: any, listener: Listener): MockMana; + + interface: MockManaInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockManaFactory.ts b/types/MockManaFactory.ts new file mode 100644 index 00000000..a24d585b --- /dev/null +++ b/types/MockManaFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockMana } from "./MockMana"; + +export class MockManaFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockMana { + return super.attach(address) as MockMana; + } + connect(signer: Signer): MockManaFactory { + return super.connect(signer) as MockManaFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockMana { + return new Contract(address, _abi, signerOrProvider) as MockMana; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001634d414e4160e01b8152506040518060400160405280600c81526020016b111958d95b9d1c985b185b9960a21b81525060128282816003908051906020019061006d9291906100c1565b5080516100819060049060208401906100c1565b50506005805460ff19166012179055506100a3816001600160e01b036100ab16565b50505061015c565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010257805160ff191683800117855561012f565b8280016001018555821561012f579182015b8281111561012f578251825591602001919060010190610114565b5061013b92915061013f565b5090565b61015991905b8082111561013b5760008155600101610145565b90565b610b488061016b6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220e1bbcc111aa7bc9123721a96c69d245adb1a77fef6de6403a270e48e6bb375ec64736f6c63430006080033"; diff --git a/types/MockMkr.d.ts b/types/MockMkr.d.ts new file mode 100644 index 00000000..af0af084 --- /dev/null +++ b/types/MockMkr.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockMkrInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockMkr extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockMkr; + attach(addressOrName: string): MockMkr; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockMkr; + once(event: EventFilter | string, listener: Listener): MockMkr; + addListener(eventName: EventFilter | string, listener: Listener): MockMkr; + removeAllListeners(eventName: EventFilter | string): MockMkr; + removeListener(eventName: any, listener: Listener): MockMkr; + + interface: MockMkrInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockMkrFactory.ts b/types/MockMkrFactory.ts new file mode 100644 index 00000000..c1cc520a --- /dev/null +++ b/types/MockMkrFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockMkr } from "./MockMkr"; + +export class MockMkrFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockMkr { + return super.attach(address) as MockMkr; + } + connect(signer: Signer): MockMkrFactory { + return super.connect(signer) as MockMkrFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockMkr { + return new Contract(address, _abi, signerOrProvider) as MockMkr; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600381526020016226a5a960e91b8152506040518060400160405280600581526020016426b0b5b2b960d91b8152506012828281600390805190602001906100659291906100b9565b5080516100799060049060208401906100b9565b50506005805460ff191660121790555061009b816001600160e01b036100a316565b505050610154565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fa57805160ff1916838001178555610127565b82800160010185558215610127579182015b8281111561012757825182559160200191906001019061010c565b50610133929150610137565b5090565b61015191905b80821115610133576000815560010161013d565b90565b610b48806101636000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220811ddf04b005f383509182446dee15d73ea182bbef7758060fd4f77ae781170764736f6c63430006080033"; diff --git a/types/MockOneSplit.d.ts b/types/MockOneSplit.d.ts new file mode 100644 index 00000000..bc77a2bd --- /dev/null +++ b/types/MockOneSplit.d.ts @@ -0,0 +1,305 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockOneSplitInterface extends Interface { + functions: { + FLAG_AAVE: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_BANCOR: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_BDAI: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_CHAI: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_COMPOUND: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_FULCRUM: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_IEARN: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_KYBER: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_KYBER_BANCOR_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_KYBER_OASIS_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_KYBER_UNISWAP_RESERVE: TypedFunctionDescription<{ + encode([]: []): string; + }>; + + FLAG_MULTI_PATH_ETH: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_OASIS: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_SMART_TOKEN: TypedFunctionDescription<{ encode([]: []): string }>; + + FLAG_UNISWAP: TypedFunctionDescription<{ encode([]: []): string }>; + + getExpectedReturn: TypedFunctionDescription<{ + encode([fromToken, toToken, amount, parts, disableFlags]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + goodSwap: TypedFunctionDescription<{ + encode([fromToken, toToken, amount, minReturn, parts, disableFlags]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish, + BigNumberish + ]): string; + }>; + + swap: TypedFunctionDescription<{ + encode([ + fromToken, + toToken, + amount, + minReturn, + distribution, + disableFlags + ]: [ + string, + string, + BigNumberish, + BigNumberish, + BigNumberish[], + BigNumberish + ]): string; + }>; + + tokenToBurn: TypedFunctionDescription<{ encode([]: []): string }>; + }; + + events: {}; +} + +export class MockOneSplit extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockOneSplit; + attach(addressOrName: string): MockOneSplit; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockOneSplit; + once(event: EventFilter | string, listener: Listener): MockOneSplit; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockOneSplit; + removeAllListeners(eventName: EventFilter | string): MockOneSplit; + removeListener(eventName: any, listener: Listener): MockOneSplit; + + interface: MockOneSplitInterface; + + functions: { + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise<{ + returnAmount: BigNumber; + distribution: BigNumber[]; + 0: BigNumber; + 1: BigNumber[]; + }>; + + goodSwap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + swap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + distribution: BigNumberish[], + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + tokenToBurn(): Promise; + }; + + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise<{ + returnAmount: BigNumber; + distribution: BigNumber[]; + 0: BigNumber; + 1: BigNumber[]; + }>; + + goodSwap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + swap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + distribution: BigNumberish[], + disableFlags: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + tokenToBurn(): Promise; + + filters: {}; + + estimate: { + FLAG_AAVE(): Promise; + + FLAG_BANCOR(): Promise; + + FLAG_BDAI(): Promise; + + FLAG_CHAI(): Promise; + + FLAG_COMPOUND(): Promise; + + FLAG_FULCRUM(): Promise; + + FLAG_IEARN(): Promise; + + FLAG_KYBER(): Promise; + + FLAG_KYBER_BANCOR_RESERVE(): Promise; + + FLAG_KYBER_OASIS_RESERVE(): Promise; + + FLAG_KYBER_UNISWAP_RESERVE(): Promise; + + FLAG_MULTI_PATH_ETH(): Promise; + + FLAG_OASIS(): Promise; + + FLAG_SMART_TOKEN(): Promise; + + FLAG_UNISWAP(): Promise; + + getExpectedReturn( + fromToken: string, + toToken: string, + amount: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise; + + goodSwap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + parts: BigNumberish, + disableFlags: BigNumberish + ): Promise; + + swap( + fromToken: string, + toToken: string, + amount: BigNumberish, + minReturn: BigNumberish, + distribution: BigNumberish[], + disableFlags: BigNumberish + ): Promise; + + tokenToBurn(): Promise; + }; +} diff --git a/types/MockOneSplitFactory.ts b/types/MockOneSplitFactory.ts new file mode 100644 index 00000000..168d5411 --- /dev/null +++ b/types/MockOneSplitFactory.ts @@ -0,0 +1,385 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockOneSplit } from "./MockOneSplit"; + +export class MockOneSplitFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy( + _tokenToBurn: string, + overrides?: TransactionOverrides + ): Promise { + return super.deploy(_tokenToBurn, overrides) as Promise; + } + getDeployTransaction( + _tokenToBurn: string, + overrides?: TransactionOverrides + ): UnsignedTransaction { + return super.getDeployTransaction(_tokenToBurn, overrides); + } + attach(address: string): MockOneSplit { + return super.attach(address) as MockOneSplit; + } + connect(signer: Signer): MockOneSplitFactory { + return super.connect(signer) as MockOneSplitFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockOneSplit { + return new Contract(address, _abi, signerOrProvider) as MockOneSplit; + } +} + +const _abi = [ + { + inputs: [ + { + internalType: "contract MintableERC20", + name: "_tokenToBurn", + type: "address" + } + ], + stateMutability: "nonpayable", + type: "constructor" + }, + { + inputs: [], + name: "FLAG_AAVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_BANCOR", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_BDAI", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_CHAI", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_COMPOUND", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_FULCRUM", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_IEARN", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_BANCOR_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_OASIS_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_KYBER_UNISWAP_RESERVE", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_MULTI_PATH_ETH", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_OASIS", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_SMART_TOKEN", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "FLAG_UNISWAP", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "parts", + type: "uint256" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "getExpectedReturn", + outputs: [ + { + internalType: "uint256", + name: "returnAmount", + type: "uint256" + }, + { + internalType: "uint256[]", + name: "distribution", + type: "uint256[]" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "minReturn", + type: "uint256" + }, + { + internalType: "uint256", + name: "parts", + type: "uint256" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "goodSwap", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [ + { + internalType: "contract IERC20", + name: "fromToken", + type: "address" + }, + { + internalType: "contract IERC20", + name: "toToken", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "minReturn", + type: "uint256" + }, + { + internalType: "uint256[]", + name: "distribution", + type: "uint256[]" + }, + { + internalType: "uint256", + name: "disableFlags", + type: "uint256" + } + ], + name: "swap", + outputs: [], + stateMutability: "payable", + type: "function" + }, + { + inputs: [], + name: "tokenToBurn", + outputs: [ + { + internalType: "contract MintableERC20", + name: "", + type: "address" + } + ], + stateMutability: "view", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051610a5a380380610a5a8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556109f5806100656000396000f3fe6080604052600436106101145760003560e01c806373eb69d4116100a0578063ceb5411511610064578063ceb5411514610337578063df9116631461034c578063e2a7515e14610361578063eb16df2a1461042b578063f64a9a491461044057610114565b806373eb69d4146102ce57806383366577146102e357806383a0118f146102f85780638c6c11f21461030d578063a9d3589f1461032257610114565b80634f1b86eb116100e75780634f1b86eb1461021457806358886253146102455780635cfcee281461025a5780636b9589aa1461026f578063702bf8fa146102b957610114565b8063085e2c5b1461011957806311c0c0f7146101c35780633c1a62dc146101ea5780634c914a4e146101ff575b600080fd5b34801561012557600080fd5b50610168600480360360a081101561013c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135610455565b6040518083815260200180602001828103825283818151815260200191508051906020019060200280838360005b838110156101ae578181015183820152602001610196565b50505050905001935050505060405180910390f35b3480156101cf57600080fd5b506101d8610471565b60408051918252519081900360200190f35b3480156101f657600080fd5b506101d8610477565b34801561020b57600080fd5b506101d861047c565b34801561022057600080fd5b50610229610481565b604080516001600160a01b039092168252519081900360200190f35b34801561025157600080fd5b506101d8610490565b34801561026657600080fd5b506101d8610496565b6102b7600480360360c081101561028557600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a0013561049b565b005b3480156102c557600080fd5b506101d86105da565b3480156102da57600080fd5b506101d86105e3565b3480156102ef57600080fd5b506101d86105e9565b34801561030457600080fd5b506101d86105ee565b34801561031957600080fd5b506101d86105f4565b34801561032e57600080fd5b506101d86105f9565b34801561034357600080fd5b506101d8610602565b34801561035857600080fd5b506101d8610607565b6102b7600480360360c081101561037757600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156103b757600080fd5b8201836020820111156103c957600080fd5b803590602001918460208302840111640100000000831117156103eb57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955050913592506105d2915050565b34801561043757600080fd5b506101d8610610565b34801561044c57600080fd5b506101d8610615565b5050604080516000808252602082019092529094909350915050565b61010081565b602081565b604081565b6000546001600160a01b031681565b61020081565b601081565b600080546040805163140e25ad60e31b815269021e19e0c9bab2400000600482015290516001600160a01b039092169263a0712d68926024808401936020939083900390910190829087803b1580156104f357600080fd5b505af1158015610507573d6000803e3d6000fd5b505050506040513d602081101561051d57600080fd5b5051610570576040805162461bcd60e51b815260206004820181905260248201527f54524144455f574954485f48494e542e205265766572746564206d696e742829604482015290519081900360640190fd5b61057861061a565b6001600160a01b0316866001600160a01b0316146105ab576105ab6001600160a01b03871633308763ffffffff61063216565b6000546105d2906001600160a01b03163369021e19e0c9bab240000063ffffffff61069216565b505050505050565b64010000000081565b61080081565b608081565b61040081565b600881565b64040000000081565b600281565b64020000000081565b600181565b600481565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261068c9085906106e9565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526106e49084906106e9565b505050565b606061073e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661079a9092919063ffffffff16565b8051909150156106e45780806020019051602081101561075d57600080fd5b50516106e45760405162461bcd60e51b815260040180806020018281038252602a815260200180610996602a913960400191505060405180910390fd5b60606107a984846000856107b1565b949350505050565b60606107bc8561095c565b61080d576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061084c5780518252601f19909201916020918201910161082d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146108ae576040519150601f19603f3d011682016040523d82523d6000602084013e6108b3565b606091505b509150915081156108c75791506107a99050565b8051156108d75780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610921578181015183820152602001610909565b50505050905090810190601f16801561094e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906107a957505015159291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122062ea6b3c5f1672aa383ca4ed52aaf9a3f7d0c8b99d1b5928b39bdf248c5474e964736f6c63430006080033"; diff --git a/types/MockRep.d.ts b/types/MockRep.d.ts new file mode 100644 index 00000000..09e5beba --- /dev/null +++ b/types/MockRep.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockRepInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockRep extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockRep; + attach(addressOrName: string): MockRep; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockRep; + once(event: EventFilter | string, listener: Listener): MockRep; + addListener(eventName: EventFilter | string, listener: Listener): MockRep; + removeAllListeners(eventName: EventFilter | string): MockRep; + removeListener(eventName: any, listener: Listener): MockRep; + + interface: MockRepInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockRepFactory.ts b/types/MockRepFactory.ts new file mode 100644 index 00000000..a1e84cf9 --- /dev/null +++ b/types/MockRepFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockRep } from "./MockRep"; + +export class MockRepFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockRep { + return super.attach(address) as MockRep; + } + connect(signer: Signer): MockRepFactory { + return super.connect(signer) as MockRepFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockRep { + return new Contract(address, _abi, signerOrProvider) as MockRep; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600381526020016205245560ec1b8152506040518060400160405280600581526020016420bab3bab960d91b8152506012828281600390805190602001906100659291906100b9565b5080516100799060049060208401906100b9565b50506005805460ff191660121790555061009b816001600160e01b036100a316565b505050610154565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fa57805160ff1916838001178555610127565b82800160010185558215610127579182015b8281111561012757825182559160200191906001019061010c565b50610133929150610137565b5090565b61015191905b80821115610133576000815560010161013d565b90565b610b48806101636000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200afa55a2b247b77ca913048713e6ef107ad13fb45ca5c406442a99ddbf8409fc64736f6c63430006080033"; diff --git a/types/MockSnx.d.ts b/types/MockSnx.d.ts new file mode 100644 index 00000000..4aaedacf --- /dev/null +++ b/types/MockSnx.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockSnxInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockSnx extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockSnx; + attach(addressOrName: string): MockSnx; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockSnx; + once(event: EventFilter | string, listener: Listener): MockSnx; + addListener(eventName: EventFilter | string, listener: Listener): MockSnx; + removeAllListeners(eventName: EventFilter | string): MockSnx; + removeListener(eventName: any, listener: Listener): MockSnx; + + interface: MockSnxInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockSnxFactory.ts b/types/MockSnxFactory.ts new file mode 100644 index 00000000..c80cd0e4 --- /dev/null +++ b/types/MockSnxFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockSnx } from "./MockSnx"; + +export class MockSnxFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockSnx { + return super.attach(address) as MockSnx; + } + connect(signer: Signer): MockSnxFactory { + return super.connect(signer) as MockSnxFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockSnx { + return new Contract(address, _abi, signerOrProvider) as MockSnx; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060038152602001620a69cb60eb1b815250604051806040016040528060038152602001620a69cb60eb1b8152506012828281600390805190602001906100639291906100b7565b5080516100779060049060208401906100b7565b50506005805460ff1916601217905550610099816001600160e01b036100a116565b505050610152565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f857805160ff1916838001178555610125565b82800160010185558215610125579182015b8281111561012557825182559160200191906001019061010a565b50610131929150610135565b5090565b61014f91905b80821115610131576000815560010161013b565b90565b610b48806101616000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206b5a772b92d404a5eee02b1a7a5a349368e2286123429493173382009b86ad4964736f6c63430006080033"; diff --git a/types/MockSusd.d.ts b/types/MockSusd.d.ts new file mode 100644 index 00000000..59bcc42e --- /dev/null +++ b/types/MockSusd.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockSusdInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockSusd extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockSusd; + attach(addressOrName: string): MockSusd; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockSusd; + once(event: EventFilter | string, listener: Listener): MockSusd; + addListener(eventName: EventFilter | string, listener: Listener): MockSusd; + removeAllListeners(eventName: EventFilter | string): MockSusd; + removeListener(eventName: any, listener: Listener): MockSusd; + + interface: MockSusdInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockSusdFactory.ts b/types/MockSusdFactory.ts new file mode 100644 index 00000000..2f9d0f7a --- /dev/null +++ b/types/MockSusdFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockSusd } from "./MockSusd"; + +export class MockSusdFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockSusd { + return super.attach(address) as MockSusd; + } + connect(signer: Signer): MockSusdFactory { + return super.connect(signer) as MockSusdFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockSusd { + return new Contract(address, _abi, signerOrProvider) as MockSusd; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600481526020016314d554d160e21b8152506040518060400160405280600d81526020016c14de5b9d1a195d1a5e081554d1609a1b81525060068282816003908051906020019061006e9291906100c2565b5080516100829060049060208401906100c2565b50506005805460ff19166012179055506100a4816001600160e01b036100ac16565b50505061015d565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010357805160ff1916838001178555610130565b82800160010185558215610130579182015b82811115610130578251825591602001919060010190610115565b5061013c929150610140565b5090565b61015a91905b8082111561013c5760008155600101610146565b90565b610b488061016c6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201294b6b8230849df7afff618470548765ae7c8b27bdc6346099024a643a63ae264736f6c63430006080033"; diff --git a/types/MockTusd.d.ts b/types/MockTusd.d.ts new file mode 100644 index 00000000..1fd3c8ba --- /dev/null +++ b/types/MockTusd.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockTusdInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockTusd extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockTusd; + attach(addressOrName: string): MockTusd; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockTusd; + once(event: EventFilter | string, listener: Listener): MockTusd; + addListener(eventName: EventFilter | string, listener: Listener): MockTusd; + removeAllListeners(eventName: EventFilter | string): MockTusd; + removeListener(eventName: any, listener: Listener): MockTusd; + + interface: MockTusdInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockTusdFactory.ts b/types/MockTusdFactory.ts new file mode 100644 index 00000000..f08537b5 --- /dev/null +++ b/types/MockTusdFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockTusd } from "./MockTusd"; + +export class MockTusdFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockTusd { + return super.attach(address) as MockTusd; + } + connect(signer: Signer): MockTusdFactory { + return super.connect(signer) as MockTusdFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockTusd { + return new Contract(address, _abi, signerOrProvider) as MockTusd; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060405180604001604052806004815260200163151554d160e21b81525060405180604001604052806007815260200166151c9d595554d160ca1b8152506012828281600390805190602001906100689291906100bc565b50805161007c9060049060208401906100bc565b50506005805460ff191660121790555061009e816001600160e01b036100a616565b505050610157565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fd57805160ff191683800117855561012a565b8280016001018555821561012a579182015b8281111561012a57825182559160200191906001019061010f565b5061013692915061013a565b5090565b61015491905b808211156101365760008155600101610140565b90565b610b48806101666000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122023be4a26ffef0669c2efce89dceacd370989ca1747f1e302aadb7a0607534cc564736f6c63430006080033"; diff --git a/types/MockUniDaiEth.d.ts b/types/MockUniDaiEth.d.ts new file mode 100644 index 00000000..3a4afcac --- /dev/null +++ b/types/MockUniDaiEth.d.ts @@ -0,0 +1,236 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUniDaiEthInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUniDaiEth extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUniDaiEth; + attach(addressOrName: string): MockUniDaiEth; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUniDaiEth; + once(event: EventFilter | string, listener: Listener): MockUniDaiEth; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockUniDaiEth; + removeAllListeners(eventName: EventFilter | string): MockUniDaiEth; + removeListener(eventName: any, listener: Listener): MockUniDaiEth; + + interface: MockUniDaiEthInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUniDaiEthFactory.ts b/types/MockUniDaiEthFactory.ts new file mode 100644 index 00000000..1ba24f4c --- /dev/null +++ b/types/MockUniDaiEthFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUniDaiEth } from "./MockUniDaiEth"; + +export class MockUniDaiEthFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUniDaiEth { + return super.attach(address) as MockUniDaiEth; + } + connect(signer: Signer): MockUniDaiEthFactory { + return super.connect(signer) as MockUniDaiEthFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUniDaiEth { + return new Contract(address, _abi, signerOrProvider) as MockUniDaiEth; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600b81526020016a0aa9c92be888292be8aa8960ab1b8152506040518060400160405280600b81526020016a0aa9c92be888292be8aa8960ab1b8152506012828281600390805190602001906100739291906100c7565b5080516100879060049060208401906100c7565b50506005805460ff19166012179055506100a9816001600160e01b036100b116565b505050610162565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010857805160ff1916838001178555610135565b82800160010185558215610135579182015b8281111561013557825182559160200191906001019061011a565b50610141929150610145565b5090565b61015f91905b80821115610141576000815560010161014b565b90565b610b48806101716000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202143d7a4ad1625fc4e7e31685bc912fd1ddde6d009d79f8b6f3d29e72636ffe564736f6c63430006080033"; diff --git a/types/MockUniLendEth.d.ts b/types/MockUniLendEth.d.ts new file mode 100644 index 00000000..6a534425 --- /dev/null +++ b/types/MockUniLendEth.d.ts @@ -0,0 +1,236 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUniLendEthInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUniLendEth extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUniLendEth; + attach(addressOrName: string): MockUniLendEth; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUniLendEth; + once(event: EventFilter | string, listener: Listener): MockUniLendEth; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockUniLendEth; + removeAllListeners(eventName: EventFilter | string): MockUniLendEth; + removeListener(eventName: any, listener: Listener): MockUniLendEth; + + interface: MockUniLendEthInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUniLendEthFactory.ts b/types/MockUniLendEthFactory.ts new file mode 100644 index 00000000..98c749ac --- /dev/null +++ b/types/MockUniLendEthFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUniLendEth } from "./MockUniLendEth"; + +export class MockUniLendEthFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUniLendEth { + return super.attach(address) as MockUniLendEth; + } + connect(signer: Signer): MockUniLendEthFactory { + return super.connect(signer) as MockUniLendEthFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUniLendEth { + return new Contract(address, _abi, signerOrProvider) as MockUniLendEth; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600c81526020016b0aa9c92be988a9c88be8aa8960a31b8152506040518060400160405280600c81526020016b0aa9c92be988a9c88be8aa8960a31b8152506012828281600390805190602001906100759291906100c9565b5080516100899060049060208401906100c9565b50506005805460ff19166012179055506100ab816001600160e01b036100b316565b505050610164565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010a57805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013757825182559160200191906001019061011c565b50610143929150610147565b5090565b61016191905b80821115610143576000815560010161014d565b90565b610b48806101736000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212204ecc3534f4b4d96c6c5c8d9f174fc8ed1c3ca8640cf1772349665707d06f013464736f6c63430006080033"; diff --git a/types/MockUniLinkEth.d.ts b/types/MockUniLinkEth.d.ts new file mode 100644 index 00000000..db40fc24 --- /dev/null +++ b/types/MockUniLinkEth.d.ts @@ -0,0 +1,236 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUniLinkEthInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUniLinkEth extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUniLinkEth; + attach(addressOrName: string): MockUniLinkEth; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUniLinkEth; + once(event: EventFilter | string, listener: Listener): MockUniLinkEth; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockUniLinkEth; + removeAllListeners(eventName: EventFilter | string): MockUniLinkEth; + removeListener(eventName: any, listener: Listener): MockUniLinkEth; + + interface: MockUniLinkEthInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUniLinkEthFactory.ts b/types/MockUniLinkEthFactory.ts new file mode 100644 index 00000000..90f45ec6 --- /dev/null +++ b/types/MockUniLinkEthFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUniLinkEth } from "./MockUniLinkEth"; + +export class MockUniLinkEthFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUniLinkEth { + return super.attach(address) as MockUniLinkEth; + } + connect(signer: Signer): MockUniLinkEthFactory { + return super.connect(signer) as MockUniLinkEthFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUniLinkEth { + return new Contract(address, _abi, signerOrProvider) as MockUniLinkEth; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600c81526020016b0aa9c92be98929c96be8aa8960a31b8152506040518060400160405280600c81526020016b0aa9c92be98929c96be8aa8960a31b8152506012828281600390805190602001906100759291906100c9565b5080516100899060049060208401906100c9565b50506005805460ff19166012179055506100ab816001600160e01b036100b316565b505050610164565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010a57805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013757825182559160200191906001019061011c565b50610143929150610147565b5090565b61016191905b80821115610143576000815560010161014d565b90565b610b48806101736000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122076834433044fd4e58c92e6724404c01251bf4aa79725b108619fb98f8ed8273e64736f6c63430006080033"; diff --git a/types/MockUniMkrEth.d.ts b/types/MockUniMkrEth.d.ts new file mode 100644 index 00000000..e2ed440e --- /dev/null +++ b/types/MockUniMkrEth.d.ts @@ -0,0 +1,236 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUniMkrEthInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUniMkrEth extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUniMkrEth; + attach(addressOrName: string): MockUniMkrEth; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUniMkrEth; + once(event: EventFilter | string, listener: Listener): MockUniMkrEth; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockUniMkrEth; + removeAllListeners(eventName: EventFilter | string): MockUniMkrEth; + removeListener(eventName: any, listener: Listener): MockUniMkrEth; + + interface: MockUniMkrEthInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUniMkrEthFactory.ts b/types/MockUniMkrEthFactory.ts new file mode 100644 index 00000000..4a01fe26 --- /dev/null +++ b/types/MockUniMkrEthFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUniMkrEth } from "./MockUniMkrEth"; + +export class MockUniMkrEthFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUniMkrEth { + return super.attach(address) as MockUniMkrEth; + } + connect(signer: Signer): MockUniMkrEthFactory { + return super.connect(signer) as MockUniMkrEthFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUniMkrEth { + return new Contract(address, _abi, signerOrProvider) as MockUniMkrEth; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600b81526020016a0aa9c92be9a96a4be8aa8960ab1b8152506040518060400160405280600b81526020016a0aa9c92be9a96a4be8aa8960ab1b8152506012828281600390805190602001906100739291906100c7565b5080516100879060049060208401906100c7565b50506005805460ff19166012179055506100a9816001600160e01b036100b116565b505050610162565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010857805160ff1916838001178555610135565b82800160010185558215610135579182015b8281111561013557825182559160200191906001019061011a565b50610141929150610145565b5090565b61015f91905b80821115610141576000815560010161014b565b90565b610b48806101716000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220d74e9be787aa8f46ee15734f687a8167856521ca7a9e46a20bc17bd9a88d4a2c64736f6c63430006080033"; diff --git a/types/MockUniSethEth.d.ts b/types/MockUniSethEth.d.ts new file mode 100644 index 00000000..11004e1c --- /dev/null +++ b/types/MockUniSethEth.d.ts @@ -0,0 +1,236 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUniSethEthInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUniSethEth extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUniSethEth; + attach(addressOrName: string): MockUniSethEth; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUniSethEth; + once(event: EventFilter | string, listener: Listener): MockUniSethEth; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockUniSethEth; + removeAllListeners(eventName: EventFilter | string): MockUniSethEth; + removeListener(eventName: any, listener: Listener): MockUniSethEth; + + interface: MockUniSethEthInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUniSethEthFactory.ts b/types/MockUniSethEthFactory.ts new file mode 100644 index 00000000..438a15d7 --- /dev/null +++ b/types/MockUniSethEthFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUniSethEth } from "./MockUniSethEth"; + +export class MockUniSethEthFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUniSethEth { + return super.attach(address) as MockUniSethEth; + } + connect(signer: Signer): MockUniSethEthFactory { + return super.connect(signer) as MockUniSethEthFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUniSethEth { + return new Contract(address, _abi, signerOrProvider) as MockUniSethEth; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600c81526020016b0aa9c92bea68aa890be8aa8960a31b8152506040518060400160405280600c81526020016b0aa9c92bea68aa890be8aa8960a31b8152506012828281600390805190602001906100759291906100c9565b5080516100899060049060208401906100c9565b50506005805460ff19166012179055506100ab816001600160e01b036100b316565b505050610164565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010a57805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013757825182559160200191906001019061011c565b50610143929150610147565b5090565b61016191905b80821115610143576000815560010161014d565b90565b610b48806101736000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c9efe695aa90a3f94a7df7e0136e61b13e849092972adb58623b79ff9efde0464736f6c63430006080033"; diff --git a/types/MockUniUsdcEth.d.ts b/types/MockUniUsdcEth.d.ts new file mode 100644 index 00000000..a1e57914 --- /dev/null +++ b/types/MockUniUsdcEth.d.ts @@ -0,0 +1,236 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUniUsdcEthInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUniUsdcEth extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUniUsdcEth; + attach(addressOrName: string): MockUniUsdcEth; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUniUsdcEth; + once(event: EventFilter | string, listener: Listener): MockUniUsdcEth; + addListener( + eventName: EventFilter | string, + listener: Listener + ): MockUniUsdcEth; + removeAllListeners(eventName: EventFilter | string): MockUniUsdcEth; + removeListener(eventName: any, listener: Listener): MockUniUsdcEth; + + interface: MockUniUsdcEthInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUniUsdcEthFactory.ts b/types/MockUniUsdcEthFactory.ts new file mode 100644 index 00000000..fad6ce6a --- /dev/null +++ b/types/MockUniUsdcEthFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUniUsdcEth } from "./MockUniUsdcEth"; + +export class MockUniUsdcEthFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUniUsdcEth { + return super.attach(address) as MockUniUsdcEth; + } + connect(signer: Signer): MockUniUsdcEthFactory { + return super.connect(signer) as MockUniUsdcEthFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUniUsdcEth { + return new Contract(address, _abi, signerOrProvider) as MockUniUsdcEth; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040518060400160405280600c81526020016b0aa9c92beaaa68886be8aa8960a31b8152506040518060400160405280600c81526020016b0aa9c92beaaa68886be8aa8960a31b8152506012828281600390805190602001906100759291906100c9565b5080516100899060049060208401906100c9565b50506005805460ff19166012179055506100ab816001600160e01b036100b316565b505050610164565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010a57805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013757825182559160200191906001019061011c565b50610143929150610147565b5090565b61016191905b80821115610143576000815560010161014d565b90565b610b48806101736000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122029e386a1293ee397ed9a47aebc6db6249e67292fe00203654c627e65c5ff9cf264736f6c63430006080033"; diff --git a/types/MockUsd.d.ts b/types/MockUsd.d.ts new file mode 100644 index 00000000..e5852074 --- /dev/null +++ b/types/MockUsd.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUsdInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUsd extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUsd; + attach(addressOrName: string): MockUsd; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUsd; + once(event: EventFilter | string, listener: Listener): MockUsd; + addListener(eventName: EventFilter | string, listener: Listener): MockUsd; + removeAllListeners(eventName: EventFilter | string): MockUsd; + removeListener(eventName: any, listener: Listener): MockUsd; + + interface: MockUsdInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUsdFactory.ts b/types/MockUsdFactory.ts new file mode 100644 index 00000000..92b31634 --- /dev/null +++ b/types/MockUsdFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUsd } from "./MockUsd"; + +export class MockUsdFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUsd { + return super.attach(address) as MockUsd; + } + connect(signer: Signer): MockUsdFactory { + return super.connect(signer) as MockUsdFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUsd { + return new Contract(address, _abi, signerOrProvider) as MockUsd; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060038152602001621554d160ea1b815250604051806040016040528060038152602001621554d160ea1b8152506012828281600390805190602001906100639291906100b7565b5080516100779060049060208401906100b7565b50506005805460ff1916601217905550610099816001600160e01b036100a116565b505050610152565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f857805160ff1916838001178555610125565b82800160010185558215610125579182015b8281111561012557825182559160200191906001019061010a565b50610131929150610135565b5090565b61014f91905b80821115610131576000815560010161013b565b90565b610b48806101616000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a0de2869d88f9e5c9f44a1d51059643e3ccd0a59d4d46ce4d2f5554ddfbd5bfc64736f6c63430006080033"; diff --git a/types/MockUsdc.d.ts b/types/MockUsdc.d.ts new file mode 100644 index 00000000..d3696d8e --- /dev/null +++ b/types/MockUsdc.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUsdcInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUsdc extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUsdc; + attach(addressOrName: string): MockUsdc; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUsdc; + once(event: EventFilter | string, listener: Listener): MockUsdc; + addListener(eventName: EventFilter | string, listener: Listener): MockUsdc; + removeAllListeners(eventName: EventFilter | string): MockUsdc; + removeListener(eventName: any, listener: Listener): MockUsdc; + + interface: MockUsdcInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUsdcFactory.ts b/types/MockUsdcFactory.ts new file mode 100644 index 00000000..a2c34441 --- /dev/null +++ b/types/MockUsdcFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUsdc } from "./MockUsdc"; + +export class MockUsdcFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUsdc { + return super.attach(address) as MockUsdc; + } + connect(signer: Signer): MockUsdcFactory { + return super.connect(signer) as MockUsdcFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUsdc { + return new Contract(address, _abi, signerOrProvider) as MockUsdc; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001635553444360e01b815250604051806040016040528060088152602001672aa9a21021b7b4b760c11b8152506006828281600390805190602001906100699291906100bd565b50805161007d9060049060208401906100bd565b50506005805460ff191660121790555061009f816001600160e01b036100a716565b505050610158565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fe57805160ff191683800117855561012b565b8280016001018555821561012b579182015b8281111561012b578251825591602001919060010190610110565b5061013792915061013b565b5090565b61015591905b808211156101375760008155600101610141565b90565b610b48806101676000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220978aad16b0662b2de8146d390c47b15e11b2905ed2d2e8b3d93e5288583f734f64736f6c63430006080033"; diff --git a/types/MockUsdt.d.ts b/types/MockUsdt.d.ts new file mode 100644 index 00000000..48620e86 --- /dev/null +++ b/types/MockUsdt.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockUsdtInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockUsdt extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockUsdt; + attach(addressOrName: string): MockUsdt; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockUsdt; + once(event: EventFilter | string, listener: Listener): MockUsdt; + addListener(eventName: EventFilter | string, listener: Listener): MockUsdt; + removeAllListeners(eventName: EventFilter | string): MockUsdt; + removeListener(eventName: any, listener: Listener): MockUsdt; + + interface: MockUsdtInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockUsdtFactory.ts b/types/MockUsdtFactory.ts new file mode 100644 index 00000000..b0803c48 --- /dev/null +++ b/types/MockUsdtFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockUsdt } from "./MockUsdt"; + +export class MockUsdtFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockUsdt { + return super.attach(address) as MockUsdt; + } + connect(signer: Signer): MockUsdtFactory { + return super.connect(signer) as MockUsdtFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockUsdt { + return new Contract(address, _abi, signerOrProvider) as MockUsdt; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001631554d11560e21b815250604051806040016040528060098152602001682aa9a22a1021b7b4b760b91b81525060068282816003908051906020019061006a9291906100be565b50805161007e9060049060208401906100be565b50506005805460ff19166012179055506100a0816001600160e01b036100a816565b505050610159565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100ff57805160ff191683800117855561012c565b8280016001018555821561012c579182015b8281111561012c578251825591602001919060010190610111565b5061013892915061013c565b5090565b61015691905b808211156101385760008155600101610142565b90565b610b48806101686000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f44842a74d61e3d8af36d0db2adb44c66786d2bc414d056b043ec574447b012a64736f6c63430006080033"; diff --git a/types/MockWbtc.d.ts b/types/MockWbtc.d.ts new file mode 100644 index 00000000..d755bdf0 --- /dev/null +++ b/types/MockWbtc.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockWbtcInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockWbtc extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockWbtc; + attach(addressOrName: string): MockWbtc; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockWbtc; + once(event: EventFilter | string, listener: Listener): MockWbtc; + addListener(eventName: EventFilter | string, listener: Listener): MockWbtc; + removeAllListeners(eventName: EventFilter | string): MockWbtc; + removeListener(eventName: any, listener: Listener): MockWbtc; + + interface: MockWbtcInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockWbtcFactory.ts b/types/MockWbtcFactory.ts new file mode 100644 index 00000000..f23d023d --- /dev/null +++ b/types/MockWbtcFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockWbtc } from "./MockWbtc"; + +export class MockWbtcFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockWbtc { + return super.attach(address) as MockWbtc; + } + connect(signer: Signer): MockWbtcFactory { + return super.connect(signer) as MockWbtcFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockWbtc { + return new Contract(address, _abi, signerOrProvider) as MockWbtc; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060048152602001635742544360e01b815250604051806040016040528060098152602001682ba12a219021b7b4b760b91b81525060128282816003908051906020019061006a9291906100be565b50805161007e9060049060208401906100be565b50506005805460ff19166012179055506100a0816001600160e01b036100a816565b505050610159565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100ff57805160ff191683800117855561012c565b8280016001018555821561012c579182015b8281111561012c578251825591602001919060010190610111565b5061013892915061013c565b5090565b61015691905b808211156101385760008155600101610142565b90565b610b48806101686000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a21cbda9a530789a8dff8e4d2d1d56a2bfdfe1a07adb80d2141a588c1f9db51d64736f6c63430006080033"; diff --git a/types/MockZrx.d.ts b/types/MockZrx.d.ts new file mode 100644 index 00000000..2d82a687 --- /dev/null +++ b/types/MockZrx.d.ts @@ -0,0 +1,233 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface MockZrxInterface extends Interface { + functions: { + allowance: TypedFunctionDescription<{ + encode([owner, spender]: [string, string]): string; + }>; + + approve: TypedFunctionDescription<{ + encode([spender, amount]: [string, BigNumberish]): string; + }>; + + balanceOf: TypedFunctionDescription<{ + encode([account]: [string]): string; + }>; + + decimals: TypedFunctionDescription<{ encode([]: []): string }>; + + decreaseAllowance: TypedFunctionDescription<{ + encode([spender, subtractedValue]: [string, BigNumberish]): string; + }>; + + increaseAllowance: TypedFunctionDescription<{ + encode([spender, addedValue]: [string, BigNumberish]): string; + }>; + + mint: TypedFunctionDescription<{ encode([value]: [BigNumberish]): string }>; + + name: TypedFunctionDescription<{ encode([]: []): string }>; + + symbol: TypedFunctionDescription<{ encode([]: []): string }>; + + totalSupply: TypedFunctionDescription<{ encode([]: []): string }>; + + transfer: TypedFunctionDescription<{ + encode([recipient, amount]: [string, BigNumberish]): string; + }>; + + transferFrom: TypedFunctionDescription<{ + encode([sender, recipient, amount]: [ + string, + string, + BigNumberish + ]): string; + }>; + }; + + events: { + Approval: TypedEventDescription<{ + encodeTopics([owner, spender, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + + Transfer: TypedEventDescription<{ + encodeTopics([from, to, value]: [ + string | null, + string | null, + null + ]): string[]; + }>; + }; +} + +export class MockZrx extends Contract { + connect(signerOrProvider: Signer | Provider | string): MockZrx; + attach(addressOrName: string): MockZrx; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): MockZrx; + once(event: EventFilter | string, listener: Listener): MockZrx; + addListener(eventName: EventFilter | string, listener: Listener): MockZrx; + removeAllListeners(eventName: EventFilter | string): MockZrx; + removeListener(eventName: any, listener: Listener): MockZrx; + + interface: MockZrxInterface; + + functions: { + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + allowance(owner: string, spender: string): Promise; + + approve( + spender: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + mint( + value: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer( + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Approval( + owner: string | null, + spender: string | null, + value: null + ): EventFilter; + + Transfer(from: string | null, to: string | null, value: null): EventFilter; + }; + + estimate: { + allowance(owner: string, spender: string): Promise; + + approve(spender: string, amount: BigNumberish): Promise; + + balanceOf(account: string): Promise; + + decimals(): Promise; + + decreaseAllowance( + spender: string, + subtractedValue: BigNumberish + ): Promise; + + increaseAllowance( + spender: string, + addedValue: BigNumberish + ): Promise; + + mint(value: BigNumberish): Promise; + + name(): Promise; + + symbol(): Promise; + + totalSupply(): Promise; + + transfer(recipient: string, amount: BigNumberish): Promise; + + transferFrom( + sender: string, + recipient: string, + amount: BigNumberish + ): Promise; + }; +} diff --git a/types/MockZrxFactory.ts b/types/MockZrxFactory.ts new file mode 100644 index 00000000..b53406a4 --- /dev/null +++ b/types/MockZrxFactory.ts @@ -0,0 +1,329 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { MockZrx } from "./MockZrx"; + +export class MockZrxFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): MockZrx { + return super.attach(address) as MockZrx; + } + connect(signer: Signer): MockZrxFactory { + return super.connect(signer) as MockZrxFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): MockZrx { + return new Contract(address, _abi, signerOrProvider) as MockZrx; + } +} + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Approval", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "Transfer", + type: "event" + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address" + }, + { + internalType: "address", + name: "spender", + type: "address" + } + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address" + } + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "subtractedValue", + type: "uint256" + } + ], + name: "decreaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address" + }, + { + internalType: "uint256", + name: "addedValue", + type: "uint256" + } + ], + name: "increaseAllowance", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256" + } + ], + name: "mint", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "view", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address" + }, + { + internalType: "address", + name: "recipient", + type: "address" + }, + { + internalType: "uint256", + name: "amount", + type: "uint256" + } + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b50604051806040016040528060038152602001620b4a4b60eb1b81525060405180604001604052806007815260200166183c1021b7b4b760c91b8152506012828281600390805190602001906100679291906100bb565b50805161007b9060049060208401906100bb565b50506005805460ff191660121790555061009d816001600160e01b036100a516565b505050610156565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100fc57805160ff1916838001178555610129565b82800160010185558215610129579182015b8281111561012957825182559160200191906001019061010e565b50610135929150610139565b5090565b61015391905b80821115610135576000815560010161013f565b90565b610b48806101656000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806370a082311161007157806370a082311461021057806395d89b4114610236578063a0712d681461023e578063a457c2d71461025b578063a9059cbb14610287578063dd62ed3e146102b3576100b4565b806306fdde03146100b9578063095ea7b31461013657806318160ddd1461017657806323b872dd14610190578063313ce567146101c657806339509351146101e4575b600080fd5b6100c16102e1565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100fb5781810151838201526020016100e3565b50505050905090810190601f1680156101285780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101626004803603604081101561014c57600080fd5b506001600160a01b038135169060200135610377565b604080519115158252519081900360200190f35b61017e610394565b60408051918252519081900360200190f35b610162600480360360608110156101a657600080fd5b506001600160a01b0381358116916020810135909116906040013561039a565b6101ce610427565b6040805160ff9092168252519081900360200190f35b610162600480360360408110156101fa57600080fd5b506001600160a01b038135169060200135610430565b61017e6004803603602081101561022657600080fd5b50356001600160a01b0316610484565b6100c161049f565b6101626004803603602081101561025457600080fd5b5035610500565b6101626004803603604081101561027157600080fd5b506001600160a01b038135169060200135610514565b6101626004803603604081101561029d57600080fd5b506001600160a01b038135169060200135610582565b61017e600480360360408110156102c957600080fd5b506001600160a01b0381358116916020013516610596565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b820191906000526020600020905b81548152906001019060200180831161035057829003601f168201915b5050505050905090565b600061038b6103846105c1565b84846105c5565b50600192915050565b60025490565b60006103a78484846106b1565b61041d846103b36105c1565b61041885604051806060016040528060288152602001610a7d602891396001600160a01b038a166000908152600160205260408120906103f16105c1565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61081816565b6105c5565b5060019392505050565b60055460ff1690565b600061038b61043d6105c1565b84610418856001600061044e6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6108af16565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561036d5780601f106103425761010080835404028352916020019161036d565b600061050c3383610910565b506001919050565b600061038b6105216105c1565b8461041885604051806060016040528060258152602001610aee602591396001600061054b6105c1565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61081816565b600061038b61058f6105c1565b84846106b1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3390565b6001600160a01b03831661060a5760405162461bcd60e51b8152600401808060200182810382526024815260200180610aca6024913960400191505060405180910390fd5b6001600160a01b03821661064f5760405162461bcd60e51b8152600401808060200182810382526022815260200180610a356022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166106f65760405162461bcd60e51b8152600401808060200182810382526025815260200180610aa56025913960400191505060405180910390fd5b6001600160a01b03821661073b5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a126023913960400191505060405180910390fd5b610746838383610a0c565b61078981604051806060016040528060268152602001610a57602691396001600160a01b038616600090815260208190526040902054919063ffffffff61081816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546107be908263ffffffff6108af16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156108a75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086c578181015183820152602001610854565b50505050905090810190601f1680156108995780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610909576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b03821661096b576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61097760008383610a0c565b60025461098a908263ffffffff6108af16565b6002556001600160a01b0382166000908152602081905260409020546109b6908263ffffffff6108af16565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa264697066735822122078756f81a2e1b2f18a8597bfa5a8df537a906a0b1c3e2d3037e43154e4a05a0a64736f6c63430006080033"; diff --git a/types/OneSplitAdapter.d.ts b/types/OneSplitAdapter.d.ts new file mode 100644 index 00000000..444d6e0f --- /dev/null +++ b/types/OneSplitAdapter.d.ts @@ -0,0 +1,120 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractTransaction, EventFilter, Signer } from "ethers"; +import { Listener, Provider } from "ethers/providers"; +import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils"; +import { + TransactionOverrides, + TypedEventDescription, + TypedFunctionDescription +} from "."; + +interface OneSplitAdapterInterface extends Interface { + functions: { + approveExchange: TypedFunctionDescription<{ + encode([_tokens]: [string[]]): string; + }>; + + exchange: TypedFunctionDescription<{ + encode([_from, _to, _amount, _maxSlippage]: [ + string, + string, + BigNumberish, + BigNumberish + ]): string; + }>; + }; + + events: { + Exchange: TypedEventDescription<{ + encodeTopics([from, to, platform, fromAmount, toAmount]: [ + string | null, + string | null, + string | null, + null, + null + ]): string[]; + }>; + + OneSplitAdapterSetup: TypedEventDescription<{ + encodeTopics([oneSplit, priceOracle, splitParts]: [ + null, + null, + null + ]): string[]; + }>; + }; +} + +export class OneSplitAdapter extends Contract { + connect(signerOrProvider: Signer | Provider | string): OneSplitAdapter; + attach(addressOrName: string): OneSplitAdapter; + deployed(): Promise; + + on(event: EventFilter | string, listener: Listener): OneSplitAdapter; + once(event: EventFilter | string, listener: Listener): OneSplitAdapter; + addListener( + eventName: EventFilter | string, + listener: Listener + ): OneSplitAdapter; + removeAllListeners(eventName: EventFilter | string): OneSplitAdapter; + removeListener(eventName: any, listener: Listener): OneSplitAdapter; + + interface: OneSplitAdapterInterface; + + functions: { + approveExchange( + _tokens: string[], + overrides?: TransactionOverrides + ): Promise; + + exchange( + _from: string, + _to: string, + _amount: BigNumberish, + _maxSlippage: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + }; + + approveExchange( + _tokens: string[], + overrides?: TransactionOverrides + ): Promise; + + exchange( + _from: string, + _to: string, + _amount: BigNumberish, + _maxSlippage: BigNumberish, + overrides?: TransactionOverrides + ): Promise; + + filters: { + Exchange( + from: string | null, + to: string | null, + platform: string | null, + fromAmount: null, + toAmount: null + ): EventFilter; + + OneSplitAdapterSetup( + oneSplit: null, + priceOracle: null, + splitParts: null + ): EventFilter; + }; + + estimate: { + approveExchange(_tokens: string[]): Promise; + + exchange( + _from: string, + _to: string, + _amount: BigNumberish, + _maxSlippage: BigNumberish + ): Promise; + }; +} diff --git a/types/OneSplitAdapterFactory.ts b/types/OneSplitAdapterFactory.ts new file mode 100644 index 00000000..27c208d2 --- /dev/null +++ b/types/OneSplitAdapterFactory.ts @@ -0,0 +1,154 @@ +/* Generated by ts-generator ver. 0.0.8 */ +/* tslint:disable */ + +import { Contract, ContractFactory, Signer } from "ethers"; +import { Provider } from "ethers/providers"; +import { UnsignedTransaction } from "ethers/utils/transaction"; + +import { TransactionOverrides } from "."; +import { OneSplitAdapter } from "./OneSplitAdapter"; + +export class OneSplitAdapterFactory extends ContractFactory { + constructor(signer?: Signer) { + super(_abi, _bytecode, signer); + } + + deploy(overrides?: TransactionOverrides): Promise { + return super.deploy(overrides) as Promise; + } + getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction { + return super.getDeployTransaction(overrides); + } + attach(address: string): OneSplitAdapter { + return super.attach(address) as OneSplitAdapter; + } + connect(signer: Signer): OneSplitAdapterFactory { + return super.connect(signer) as OneSplitAdapterFactory; + } + static connect( + address: string, + signerOrProvider: Signer | Provider + ): OneSplitAdapter { + return new Contract(address, _abi, signerOrProvider) as OneSplitAdapter; + } +} + +const _abi = [ + { + inputs: [], + stateMutability: "nonpayable", + type: "constructor" + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address" + }, + { + indexed: true, + internalType: "address", + name: "platform", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "fromAmount", + type: "uint256" + }, + { + indexed: false, + internalType: "uint256", + name: "toAmount", + type: "uint256" + } + ], + name: "Exchange", + type: "event" + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "oneSplit", + type: "address" + }, + { + indexed: false, + internalType: "address", + name: "priceOracle", + type: "address" + }, + { + indexed: false, + internalType: "uint256", + name: "splitParts", + type: "uint256" + } + ], + name: "OneSplitAdapterSetup", + type: "event" + }, + { + inputs: [ + { + internalType: "contract IERC20[]", + name: "_tokens", + type: "address[]" + } + ], + name: "approveExchange", + outputs: [], + stateMutability: "nonpayable", + type: "function" + }, + { + inputs: [ + { + internalType: "address", + name: "_from", + type: "address" + }, + { + internalType: "address", + name: "_to", + type: "address" + }, + { + internalType: "uint256", + name: "_amount", + type: "uint256" + }, + { + internalType: "uint256", + name: "_maxSlippage", + type: "uint256" + } + ], + name: "exchange", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256" + } + ], + stateMutability: "nonpayable", + type: "function" + } +]; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060408051731814222fa8c8c1c1bf380e3bbfbd9de8657da47681527376b47460d7f7c5222cfb6b6a75615ab10895dde46020820152600a8183015290517f8d2e03fe8af77d72ac9d334b8bc58153f47fc0c0ec0c926c1686754201cfdc5d9181900360600190a1610bc6806100876000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80630ed2fc951461003b57806393ed430914610089575b600080fd5b6100776004803603608081101561005157600080fd5b506001600160a01b038135811691602081013590911690604081013590606001356100fb565b60408051918252519081900360200190f35b6100f96004803603602081101561009f57600080fd5b8101906020810181356401000000008111156100ba57600080fd5b8201836020820111156100cc57600080fd5b803590602001918460208302840111640100000000831117156100ee57600080fd5b5090925090506104f4565b005b60008061010661059b565b6001600160a01b0316866001600160a01b031614610125576000610127565b835b6040805163b3596f0760e01b81526001600160a01b038916600482015290519192506000917376b47460d7f7c5222cfb6b6a75615ab10895dde49163b3596f07916024808301926020929190829003018186803b15801561018757600080fd5b505afa15801561019b573d6000803e3d6000fd5b505050506040513d60208110156101b157600080fd5b50516040805163b3596f0760e01b81526001600160a01b038916600482015290519192506000917376b47460d7f7c5222cfb6b6a75615ab10895dde49163b3596f07916024808301926020929190829003018186803b15801561021357600080fd5b505afa158015610227573d6000803e3d6000fd5b505050506040513d602081101561023d57600080fd5b5051604080516370a0823160e01b815230600482015290519192506000916001600160a01b038a16916370a08231916024808301926020929190829003018186803b15801561028b57600080fd5b505afa15801561029f573d6000803e3d6000fd5b505050506040513d60208110156102b557600080fd5b5051604080516335cac4d560e11b81526001600160a01b038c811660048301528b166024820152604481018a9052600060648201819052600a608483015261020060a48301529151929350731814222fa8c8c1c1bf380e3bbfbd9de8657da47692636b9589aa92889260c4808201939182900301818588803b15801561033a57600080fd5b505af115801561034e573d6000803e3d6000fd5b505050505060006103e7828a6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156103af57600080fd5b505afa1580156103c3573d6000803e3d6000fd5b505050506040513d60208110156103d957600080fd5b50519063ffffffff6105b316565b9050606487900361042e610401868b63ffffffff6105fe16565b6104226064610416888763ffffffff6105fe16565b9063ffffffff6105fe16565b9063ffffffff61065716565b1015610474576040805162461bcd60e51b815260206004820152601060248201526f494e56414c49445f534c49505041474560801b604482015290519081900360640190fd5b731814222fa8c8c1c1bf380e3bbfbd9de8657da4766001600160a01b0316896001600160a01b03168b6001600160a01b03167fa6fee24309b1d83d9ec7b9e4dbb73c6f882746efbfb26db7b7d9e9f2fb6dc95a8b85604051808381526020018281526020019250505060405180910390a49450505050505b949350505050565b60005b818110156105965761050761059b565b6001600160a01b031683838381811061051c57fe5b905060200201356001600160a01b03166001600160a01b03161461058e5761058e731814222fa8c8c1c1bf380e3bbfbd9de8657da47661055a610699565b85858581811061056657fe5b905060200201356001600160a01b03166001600160a01b031661069f9092919063ffffffff16565b6001016104f7565b505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b60006105f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506107b2565b90505b92915050565b60008261060d575060006105f8565b8282028284828161061a57fe5b04146105f55760405162461bcd60e51b8152600401808060200182810382526021815260200180610b106021913960400191505060405180910390fd5b60006105f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610849565b60011990565b801580610725575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b1580156106f757600080fd5b505afa15801561070b573d6000803e3d6000fd5b505050506040513d602081101561072157600080fd5b5051155b6107605760405162461bcd60e51b8152600401808060200182810382526036815260200180610b5b6036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526105969084906108ae565b600081848411156108415760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156108065781810151838201526020016107ee565b50505050905090810190601f1680156108335780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836108985760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156108065781810151838201526020016107ee565b5060008385816108a457fe5b0495945050505050565b6060610903826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661095f9092919063ffffffff16565b8051909150156105965780806020019051602081101561092257600080fd5b50516105965760405162461bcd60e51b815260040180806020018281038252602a815260200180610b31602a913960400191505060405180910390fd5b60606104ec8484600085606061097485610ad6565b6109c5576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310610a045780518252601f1990920191602091820191016109e5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610a66576040519150601f19603f3d011682016040523d82523d6000602084013e610a6b565b606091505b50915091508115610a7f5791506104ec9050565b805115610a8f5780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156108065781810151838201526020016107ee565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906104ec57505015159291505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a26469706673582212208feab8b8969fcadba8a22d5b8ed1cc59039f86ba2611f214a3dec442aac4f39b64736f6c63430006080033"; diff --git a/types/ReserveLogicFactory.ts b/types/ReserveLogicFactory.ts index 671f5e27..167df3c6 100644 --- a/types/ReserveLogicFactory.ts +++ b/types/ReserveLogicFactory.ts @@ -86,4 +86,4 @@ const _abi = [ ]; const _bytecode = - "0x610d99610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80639ada2ceb14610071578063a0237264146100af578063d9c477cc146100fc578063e1219abf14610119578063f15e3b2114610145578063f77efa6e1461018c575b600080fd5b61009d6004803603604081101561008757600080fd5b50803590602001356001600160a01b03166101af565b60408051918252519081900360200190f35b8180156100bb57600080fd5b506100fa600480360360a08110156100d257600080fd5b508035906001600160a01b036020820135169060408101359060608101359060800135610214565b005b61009d6004803603602081101561011257600080fd5b5035610260565b61009d6004803603604081101561012f57600080fd5b50803590602001356001600160a01b03166102fe565b81801561015157600080fd5b506100fa6004803603608081101561016857600080fd5b508035906001600160a01b0360208201351690604081013590606001351515610338565b61009d600480360360408110156101a257600080fd5b5080359060200135610359565b6000806101bb84610377565b9050806101cc57600091505061020e565b60006101e76001600160a01b0385163063ffffffff61047716565b90506102096101fc828463ffffffff61052116565b839063ffffffff61057b16565b925050505b92915050565b61021d856105bf565b600061023861022b87610377565b859063ffffffff61052116565b905061024b86828563ffffffff61067716565b61025886868560006106d5565b505050505050565b60008160020154600014156102f25781600c0160009054906101000a90046001600160a01b03166001600160a01b03166334762ca56040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d60208110156102e957600080fd5b505190506102f9565b5060028101545b919050565b600061033161030c84610377565b6103256001600160a01b0385163063ffffffff61047716565b9063ffffffff61052116565b9392505050565b610341846105bf565b806103535761035384846000856106d5565b50505050565b60008260030154600014610371578260030154610331565b50919050565b600061020e82600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103cc57600080fd5b505afa1580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561043f57600080fd5b505afa158015610453573d6000803e3d6000fd5b505050506040513d602081101561046957600080fd5b50519063ffffffff61052116565b6000610482836109e1565b1561049857506001600160a01b0381163161020e565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156104ee57600080fd5b505afa158015610502573d6000803e3d6000fd5b505050506040513d602081101561051857600080fd5b5051905061020e565b600082820183811015610331576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000600282046105b7836105ab61059e876b033b2e3c9fd0803ce8000000610a17565b849063ffffffff61052116565b9063ffffffff610a7016565b949350505050565b60006105ca82610377565b90508015610653576001820154600c8301546000916105f691600160a01b900464ffffffffff16610ab2565b835490915061060c90829063ffffffff610afd16565b83556002830154600c84015460009161063291600160a01b900464ffffffffff16610b35565b905061064b846004015482610afd90919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b600061069a61068584610b84565b61068e84610b84565b9063ffffffff61057b16565b905060006106b66106a9610b9a565b839063ffffffff61052116565b85549091506106cc90829063ffffffff610afd16565b90945550505050565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d602081101561074657600080fd5b5051905060006107656001600160a01b0386163063ffffffff61047716565b9050610779856001600160a01b03166109e1565b156107915761078e813463ffffffff610baa16565b90505b600c860154600090819081906001600160a01b03166357e37af0896107cc896107c0898d63ffffffff61052116565b9063ffffffff610baa16565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081c57600080fd5b505afa158015610830573d6000803e3d6000fd5b505050506040513d602081101561084657600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561088f57600080fd5b505afa1580156108a3573d6000803e3d6000fd5b505050506040513d60208110156108b957600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d606081101561094657600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b60006001600160a01b038216158061020e5750506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b600082610a265750600061020e565b82820282848281610a3357fe5b04146103315760405162461bcd60e51b8152600401808060200182810382526021815260200180610d436021913960400191505060405180910390fd5b600061033183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610bec565b600080610acc4264ffffffffff851663ffffffff610baa16565b90506000610ae06106856301e13380610b84565b9050610209610aed610b9a565b610325878463ffffffff610afd16565b60006103316b033b2e3c9fd0803ce80000006105ab610b22868663ffffffff610a1716565b6b019d971e4fe8401e7400000090610521565b600080610b4f4264ffffffffff851663ffffffff610baa16565b90506000610b67856301e1338063ffffffff610a7016565b905061020982610b7861059e610b9a565b9063ffffffff610c8e16565b600061020e82633b9aca0063ffffffff610a1716565b6b033b2e3c9fd0803ce800000090565b600061033183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce8565b60008183610c785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c3d578181015183820152602001610c25565b50505050905090810190601f168015610c6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610c8457fe5b0495945050505050565b600060028206610caa576b033b2e3c9fd0803ce8000000610cac565b825b90506002820491505b811561020e57610cc58384610afd565b92506002820615610cdd57610cda8184610afd565b90505b600282049150610cb5565b60008184841115610d3a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c3d578181015183820152602001610c25565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122026a0ebe6b26d1bf45fd30cc3d53371c8e53c9653039103bd353ad548bb52ec1c64736f6c63430006080033"; + "0x610d99610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061006c5760003560e01c80639ada2ceb14610071578063a0237264146100af578063d9c477cc146100fc578063e1219abf14610119578063f15e3b2114610145578063f77efa6e1461018c575b600080fd5b61009d6004803603604081101561008757600080fd5b50803590602001356001600160a01b03166101af565b60408051918252519081900360200190f35b8180156100bb57600080fd5b506100fa600480360360a08110156100d257600080fd5b508035906001600160a01b036020820135169060408101359060608101359060800135610214565b005b61009d6004803603602081101561011257600080fd5b5035610260565b61009d6004803603604081101561012f57600080fd5b50803590602001356001600160a01b03166102fe565b81801561015157600080fd5b506100fa6004803603608081101561016857600080fd5b508035906001600160a01b0360208201351690604081013590606001351515610338565b61009d600480360360408110156101a257600080fd5b5080359060200135610359565b6000806101bb84610377565b9050806101cc57600091505061020e565b60006101e76001600160a01b0385163063ffffffff61047716565b90506102096101fc828463ffffffff61052116565b839063ffffffff61057b16565b925050505b92915050565b61021d856105bf565b600061023861022b87610377565b859063ffffffff61052116565b905061024b86828563ffffffff61067716565b61025886868560006106d5565b505050505050565b60008160020154600014156102f25781600c0160009054906101000a90046001600160a01b03166001600160a01b03166334762ca56040518163ffffffff1660e01b815260040160206040518083038186803b1580156102bf57600080fd5b505afa1580156102d3573d6000803e3d6000fd5b505050506040513d60208110156102e957600080fd5b505190506102f9565b5060028101545b919050565b600061033161030c84610377565b6103256001600160a01b0385163063ffffffff61047716565b9063ffffffff61052116565b9392505050565b610341846105bf565b806103535761035384846000856106d5565b50505050565b60008260030154600014610371578260030154610331565b50919050565b600061020e82600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103cc57600080fd5b505afa1580156103e0573d6000803e3d6000fd5b505050506040513d60208110156103f657600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561043f57600080fd5b505afa158015610453573d6000803e3d6000fd5b505050506040513d602081101561046957600080fd5b50519063ffffffff61052116565b6000610482836109e1565b1561049857506001600160a01b0381163161020e565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156104ee57600080fd5b505afa158015610502573d6000803e3d6000fd5b505050506040513d602081101561051857600080fd5b5051905061020e565b600082820183811015610331576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000600282046105b7836105ab61059e876b033b2e3c9fd0803ce8000000610a17565b849063ffffffff61052116565b9063ffffffff610a7016565b949350505050565b60006105ca82610377565b90508015610653576001820154600c8301546000916105f691600160a01b900464ffffffffff16610ab2565b835490915061060c90829063ffffffff610afd16565b83556002830154600c84015460009161063291600160a01b900464ffffffffff16610b35565b905061064b846004015482610afd90919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b600061069a61068584610b84565b61068e84610b84565b9063ffffffff61057b16565b905060006106b66106a9610b9a565b839063ffffffff61052116565b85549091506106cc90829063ffffffff610afd16565b90945550505050565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b15801561071c57600080fd5b505afa158015610730573d6000803e3d6000fd5b505050506040513d602081101561074657600080fd5b5051905060006107656001600160a01b0386163063ffffffff61047716565b9050610779856001600160a01b03166109e1565b156107915761078e813463ffffffff610baa16565b90505b600c860154600090819081906001600160a01b03166357e37af0896107cc896107c0898d63ffffffff61052116565b9063ffffffff610baa16565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561081c57600080fd5b505afa158015610830573d6000803e3d6000fd5b505050506040513d602081101561084657600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561088f57600080fd5b505afa1580156108a3573d6000803e3d6000fd5b505050506040513d60208110156108b957600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b15801561091c57600080fd5b505afa158015610930573d6000803e3d6000fd5b505050506040513d606081101561094657600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b60006001600160a01b038216158061020e5750506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b600082610a265750600061020e565b82820282848281610a3357fe5b04146103315760405162461bcd60e51b8152600401808060200182810382526021815260200180610d436021913960400191505060405180910390fd5b600061033183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610bec565b600080610acc4264ffffffffff851663ffffffff610baa16565b90506000610ae06106856301e13380610b84565b9050610209610aed610b9a565b610325878463ffffffff610afd16565b60006103316b033b2e3c9fd0803ce80000006105ab610b22868663ffffffff610a1716565b6b019d971e4fe8401e7400000090610521565b600080610b4f4264ffffffffff851663ffffffff610baa16565b90506000610b67856301e1338063ffffffff610a7016565b905061020982610b7861059e610b9a565b9063ffffffff610c8e16565b600061020e82633b9aca0063ffffffff610a1716565b6b033b2e3c9fd0803ce800000090565b600061033183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce8565b60008183610c785760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c3d578181015183820152602001610c25565b50505050905090810190601f168015610c6a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610c8457fe5b0495945050505050565b600060028206610caa576b033b2e3c9fd0803ce8000000610cac565b825b90506002820491505b811561020e57610cc58384610afd565b92506002820615610cdd57610cda8184610afd565b90505b600282049150610cb5565b60008184841115610d3a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c3d578181015183820152602001610c25565b50505090039056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220d0d4d66b524e37bf1c533e41d03dacad525c0f6b816370abbd6a06dd9820654464736f6c63430006080033"; diff --git a/types/StableDebtTokenFactory.ts b/types/StableDebtTokenFactory.ts index ddee61e7..b7b0b557 100644 --- a/types/StableDebtTokenFactory.ts +++ b/types/StableDebtTokenFactory.ts @@ -544,4 +544,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50611278806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806381e75277116100ad578063a457c2d711610071578063a457c2d714610285578063a9059cbb146104be578063c634dfaa146104ea578063dd62ed3e14610510578063e78c9b3b1461053e57610121565b806381e752771461031757806389d1a0fc1461045e57806390f6fcf21461048257806395d89b411461048a5780639dc29fac1461049257610121565b806323b872dd116100f457806323b872dd14610231578063313ce56714610267578063395093511461028557806370a08231146102b157806379ce6b8c146102d757610121565b806306fdde0314610126578063095ea7b3146101a3578063156e29f6146101e357806318160ddd14610217575b600080fd5b61012e610564565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101cf600480360360408110156101b957600080fd5b506001600160a01b0381351690602001356105f1565b604080519115158252519081900360200190f35b610215600480360360608110156101f957600080fd5b506001600160a01b038135169060208101359060400135610639565b005b61021f610825565b60408051918252519081900360200190f35b6101cf6004803603606081101561024757600080fd5b506001600160a01b0381358116916020810135909116906040013561082b565b61026f610873565b6040805160ff9092168252519081900360200190f35b6101cf6004803603604081101561029b57600080fd5b506001600160a01b03813516906020013561087c565b61021f600480360360208110156102c757600080fd5b50356001600160a01b03166108cb565b6102fd600480360360208110156102ed57600080fd5b50356001600160a01b0316610975565b6040805164ffffffffff9092168252519081900360200190f35b610215600480360360a081101561032d57600080fd5b81019060208101813564010000000081111561034857600080fd5b82018360208201111561035a57600080fd5b8035906020019184600183028401116401000000008311171561037c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103cf57600080fd5b8201836020820111156103e157600080fd5b8035906020019184600183028401116401000000008311171561040357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350506001600160a01b0360208301358116926040013516905061099a565b610466610a7f565b604080516001600160a01b039092168252519081900360200190f35b61021f610a93565b61012e610a9a565b610215600480360360408110156104a857600080fd5b506001600160a01b038135169060200135610af2565b6101cf600480360360408110156104d457600080fd5b506001600160a01b03813516906020013561082b565b61021f6004803603602081101561050057600080fd5b50356001600160a01b0316610c67565b61021f6004803603604081101561052657600080fd5b506001600160a01b038135811691602001351661087c565b61021f6004803603602081101561055457600080fd5b50356001600160a01b0316610c82565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b6004546001600160a01b031633146106825760405162461bcd60e51b81526004018080602001828103825260328152602001806112116032913960400191505060405180910390fd5b600080600061069086610c9d565b92509250925060006106ad86600054610d0b90919063ffffffff16565b905060006106ba87610d6e565b90506107336106d76106d2868a63ffffffff610d0b16565b610d6e565b6107276106ea848a63ffffffff610d8416565b61071b6106f689610d6e565b6001600160a01b038e166000908152600760205260409020549063ffffffff610d8416565b9063ffffffff610d0b16565b9063ffffffff610dc816565b6001600160a01b0389166000908152600760205260409020908155600101805464ffffffffff19164264ffffffffff161790556107a261077283610d6e565b610727610785898563ffffffff610d8416565b61071b610793600054610d6e565b6006549063ffffffff610d8416565b6006556107af8888610e00565b6001600160a01b0388166000818152600760209081526040918290205482519384529083018a9052828201889052606083018790526080830186905260a0830152517f94ba3ac5ed6fee7b49ed817c5ee964eed9bd5da6860344f95fc56997e920381d9181900360c00190a15050505050505050565b60005481565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60035460ff1681565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b0381166000908152600560205260408120546108f057506000610970565b6001600160a01b038216600090815260076020526040812080546001820154919291610923919064ffffffffff16610e5e565b905061096b6109668261095a60056000896001600160a01b03166001600160a01b0316815260200190815260200160002054610d6e565b9063ffffffff610d8416565b610eb6565b925050505b919050565b6001600160a01b031660009081526007602052604090206001015464ffffffffff1690565b84516109ad906001906020880190611157565b5083516109c1906002906020870190611157565b506003805460ff191660ff851617610100600160a81b0319166101006001600160a01b03858116919091029190911790915560408051630261bf8b60e01b8152905191831691630261bf8b91600480820192602092909190829003018186803b158015610a2d57600080fd5b505afa158015610a41573d6000803e3d6000fd5b505050506040513d6020811015610a5757600080fd5b5051600480546001600160a01b0319166001600160a01b039092169190911790555050505050565b60035461010090046001600160a01b031681565b6006545b90565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105e95780601f106105be576101008083540402835291602001916105e9565b6004546001600160a01b03163314610b3b5760405162461bcd60e51b81526004018080602001828103825260328152602001806112116032913960400191505060405180910390fd5b6000806000610b4985610c9d565b9250925092506000610b6685600054610ed690919063ffffffff16565b90506000610b7386610d6e565b905081610b84576000600655610bdb565b610bd7610b9083610d6e565b6001600160a01b03891660009081526007602052604090205461072790610bbd908563ffffffff610d8416565b610bcb610793600054610d6e565b9063ffffffff610ed616565b6006555b83861415610bfd576001600160a01b0387166000908152600760205260408120555b610c078787610f18565b604080516001600160a01b038916815260208101889052808201879052606081018690526080810185905290517fecde08620c30706a4d7ba53e9163327f2e12a6cea2709dd6a9226fed28c2bb729181900360a00190a150505050505050565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b031660009081526007602052604090205490565b6001600160a01b0381166000908152600560205260408120548190819080610ccf575060009250829150819050610d04565b6000610cde82610bcb886108cb565b9050610cea8682610e00565b81610cfb818363ffffffff610d0b16565b90955093509150505b9193909250565b600082820183811015610d65576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6000610d6882633b9aca0063ffffffff610f5616565b6000610d656b033b2e3c9fd0803ce8000000610dbc610da9868663ffffffff610f5616565b6b019d971e4fe8401e7400000090610d0b565b9063ffffffff610faf16565b600060028204610df883610dbc610deb876b033b2e3c9fd0803ce8000000610f56565b849063ffffffff610d0b16565b949350505050565b600054610e13908263ffffffff610d0b16565b60009081556001600160a01b038316815260056020526040902054610e3e908263ffffffff610d0b16565b6001600160a01b0390921660009081526005602052604090209190915550565b600080610e784264ffffffffff851663ffffffff610ed616565b90506000610e90856301e1338063ffffffff610faf16565b9050610ead82610ea1610deb610ff1565b9063ffffffff61100116565b95945050505050565b6000631dcd6500610ecf633b9aca00610dbc8386610d0b565b9392505050565b6000610d6583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061105b565b600054610f2b908263ffffffff610ed616565b60009081556001600160a01b038316815260056020526040902054610e3e908263ffffffff610ed616565b600082610f6557506000610d68565b82820282848281610f7257fe5b0414610d655760405162461bcd60e51b81526004018080602001828103825260218152602001806111f06021913960400191505060405180910390fd5b6000610d6583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110f2565b6b033b2e3c9fd0803ce800000090565b60006002820661101d576b033b2e3c9fd0803ce800000061101f565b825b90506002820491505b8115610d68576110388384610d84565b925060028206156110505761104d8184610d84565b90505b600282049150611028565b600081848411156110ea5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110af578181015183820152602001611097565b50505050905090810190601f1680156110dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836111415760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156110af578181015183820152602001611097565b50600083858161114d57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061119857805160ff19168380011785556111c5565b828001600101855582156111c5579182015b828111156111c55782518255916020019190600101906111aa565b506111d19291506111d5565b5090565b610a9791905b808211156111d157600081556001016111db56fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6ca264697066735822122037001880c09492f82ed6b600e67543cbe9c07a8fc5c63de3eca25a77ecaf868464736f6c63430006080033"; + "0x608060405234801561001057600080fd5b50611289806100206000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806381e75277116100ad578063a457c2d711610071578063a457c2d714610285578063a9059cbb146104be578063c634dfaa146104ea578063dd62ed3e14610510578063e78c9b3b1461053e57610121565b806381e752771461031757806389d1a0fc1461045e57806390f6fcf21461048257806395d89b411461048a5780639dc29fac1461049257610121565b806323b872dd116100f457806323b872dd14610231578063313ce56714610267578063395093511461028557806370a08231146102b157806379ce6b8c146102d757610121565b806306fdde0314610126578063095ea7b3146101a3578063156e29f6146101e357806318160ddd14610217575b600080fd5b61012e610564565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101cf600480360360408110156101b957600080fd5b506001600160a01b0381351690602001356105f1565b604080519115158252519081900360200190f35b610215600480360360608110156101f957600080fd5b506001600160a01b038135169060208101359060400135610639565b005b61021f610825565b60408051918252519081900360200190f35b6101cf6004803603606081101561024757600080fd5b506001600160a01b0381358116916020810135909116906040013561082b565b61026f610873565b6040805160ff9092168252519081900360200190f35b6101cf6004803603604081101561029b57600080fd5b506001600160a01b03813516906020013561087c565b61021f600480360360208110156102c757600080fd5b50356001600160a01b03166108cb565b6102fd600480360360208110156102ed57600080fd5b50356001600160a01b0316610975565b6040805164ffffffffff9092168252519081900360200190f35b610215600480360360a081101561032d57600080fd5b81019060208101813564010000000081111561034857600080fd5b82018360208201111561035a57600080fd5b8035906020019184600183028401116401000000008311171561037c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156103cf57600080fd5b8201836020820111156103e157600080fd5b8035906020019184600183028401116401000000008311171561040357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350506001600160a01b0360208301358116926040013516905061099a565b610466610a7f565b604080516001600160a01b039092168252519081900360200190f35b61021f610a93565b61012e610a9a565b610215600480360360408110156104a857600080fd5b506001600160a01b038135169060200135610af2565b6101cf600480360360408110156104d457600080fd5b506001600160a01b03813516906020013561082b565b61021f6004803603602081101561050057600080fd5b50356001600160a01b0316610c78565b61021f6004803603604081101561052657600080fd5b506001600160a01b038135811691602001351661087c565b61021f6004803603602081101561055457600080fd5b50356001600160a01b0316610c93565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b6004546001600160a01b031633146106825760405162461bcd60e51b81526004018080602001828103825260328152602001806112226032913960400191505060405180910390fd5b600080600061069086610cae565b92509250925060006106ad86600054610d1c90919063ffffffff16565b905060006106ba87610d7f565b90506107336106d76106d2868a63ffffffff610d1c16565b610d7f565b6107276106ea848a63ffffffff610d9516565b61071b6106f689610d7f565b6001600160a01b038e166000908152600760205260409020549063ffffffff610d9516565b9063ffffffff610d1c16565b9063ffffffff610dd916565b6001600160a01b0389166000908152600760205260409020908155600101805464ffffffffff19164264ffffffffff161790556107a261077283610d7f565b610727610785898563ffffffff610d9516565b61071b610793600054610d7f565b6006549063ffffffff610d9516565b6006556107af8888610e11565b6001600160a01b0388166000818152600760209081526040918290205482519384529083018a9052828201889052606083018790526080830186905260a0830152517f94ba3ac5ed6fee7b49ed817c5ee964eed9bd5da6860344f95fc56997e920381d9181900360c00190a15050505050505050565b60005481565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60035460ff1681565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6001600160a01b0381166000908152600560205260408120546108f057506000610970565b6001600160a01b038216600090815260076020526040812080546001820154919291610923919064ffffffffff16610e6f565b905061096b6109668261095a60056000896001600160a01b03166001600160a01b0316815260200190815260200160002054610d7f565b9063ffffffff610d9516565b610ec7565b925050505b919050565b6001600160a01b031660009081526007602052604090206001015464ffffffffff1690565b84516109ad906001906020880190611168565b5083516109c1906002906020870190611168565b506003805460ff191660ff851617610100600160a81b0319166101006001600160a01b03858116919091029190911790915560408051630261bf8b60e01b8152905191831691630261bf8b91600480820192602092909190829003018186803b158015610a2d57600080fd5b505afa158015610a41573d6000803e3d6000fd5b505050506040513d6020811015610a5757600080fd5b5051600480546001600160a01b0319166001600160a01b039092169190911790555050505050565b60035461010090046001600160a01b031681565b6006545b90565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105e95780601f106105be576101008083540402835291602001916105e9565b6004546001600160a01b03163314610b3b5760405162461bcd60e51b81526004018080602001828103825260328152602001806112226032913960400191505060405180910390fd5b6000806000610b4985610cae565b9250925092506000610b6685600054610ee790919063ffffffff16565b90506000610b7386610d7f565b905081610b84576000600655610bdb565b610bd7610b9083610d7f565b6001600160a01b03891660009081526007602052604090205461072790610bbd908563ffffffff610d9516565b610bcb610793600054610d7f565b9063ffffffff610ee716565b6006555b83861415610c0e576001600160a01b0387166000908152600760205260408120908155600101805464ffffffffff191690555b610c188787610f29565b604080516001600160a01b038916815260208101889052808201879052606081018690526080810185905290517fecde08620c30706a4d7ba53e9163327f2e12a6cea2709dd6a9226fed28c2bb729181900360a00190a150505050505050565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b031660009081526007602052604090205490565b6001600160a01b0381166000908152600560205260408120548190819080610ce0575060009250829150819050610d15565b6000610cef82610bcb886108cb565b9050610cfb8682610e11565b81610d0c818363ffffffff610d1c16565b90955093509150505b9193909250565b600082820183811015610d76576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6000610d7982633b9aca0063ffffffff610f6716565b6000610d766b033b2e3c9fd0803ce8000000610dcd610dba868663ffffffff610f6716565b6b019d971e4fe8401e7400000090610d1c565b9063ffffffff610fc016565b600060028204610e0983610dcd610dfc876b033b2e3c9fd0803ce8000000610f67565b849063ffffffff610d1c16565b949350505050565b600054610e24908263ffffffff610d1c16565b60009081556001600160a01b038316815260056020526040902054610e4f908263ffffffff610d1c16565b6001600160a01b0390921660009081526005602052604090209190915550565b600080610e894264ffffffffff851663ffffffff610ee716565b90506000610ea1856301e1338063ffffffff610fc016565b9050610ebe82610eb2610dfc611002565b9063ffffffff61101216565b95945050505050565b6000631dcd6500610ee0633b9aca00610dcd8386610d1c565b9392505050565b6000610d7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061106c565b600054610f3c908263ffffffff610ee716565b60009081556001600160a01b038316815260056020526040902054610e4f908263ffffffff610ee716565b600082610f7657506000610d79565b82820282848281610f8357fe5b0414610d765760405162461bcd60e51b81526004018080602001828103825260218152602001806112016021913960400191505060405180910390fd5b6000610d7683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611103565b6b033b2e3c9fd0803ce800000090565b60006002820661102e576b033b2e3c9fd0803ce8000000611030565b825b90506002820491505b8115610d79576110498384610d95565b925060028206156110615761105e8184610d95565b90505b600282049150611039565b600081848411156110fb5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110c05781810151838201526020016110a8565b50505050905090810190601f1680156110ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836111525760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156110c05781810151838201526020016110a8565b50600083858161115e57fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111a957805160ff19168380011785556111d6565b828001600101855582156111d6579182015b828111156111d65782518255916020019190600101906111bb565b506111e29291506111e6565b5090565b610a9791905b808211156111e257600081556001016111ec56fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6ca2646970667358221220cbeea18ae8766b0a183f4545f904d2727b7e3b4ae680ca5cd98a84c9398830fe64736f6c63430006080033"; diff --git a/types/VariableDebtTokenFactory.ts b/types/VariableDebtTokenFactory.ts index 2de13c29..852b4609 100644 --- a/types/VariableDebtTokenFactory.ts +++ b/types/VariableDebtTokenFactory.ts @@ -513,4 +513,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b50611132806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806381e75277116100a2578063a457c2d711610071578063a457c2d71461023b578063a9059cbb1461045a578063c634dfaa14610486578063dd62ed3e146104ac578063ee9907a4146104da5761010b565b806381e75277146102bb57806389d1a0fc1461040257806395d89b41146104265780639dc29fac1461042e5761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b57806340c10f191461026757806370a08231146102955761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b610118610500565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b03813516906020013561058d565b604080519115158252519081900360200190f35b6101d56105d5565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356105db565b610225610623565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b03813516906020013561062c565b6102936004803603604081101561027d57600080fd5b506001600160a01b03813516906020013561067b565b005b6101d5600480360360208110156102ab57600080fd5b50356001600160a01b03166107db565b610293600480360360a08110156102d157600080fd5b8101906020810181356401000000008111156102ec57600080fd5b8201836020820111156102fe57600080fd5b8035906020019184600183028401116401000000008311171561032057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561037357600080fd5b82018360208201111561038557600080fd5b803590602001918460018302840111640100000000831117156103a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350506001600160a01b036020830135811692604001351690506108e8565b61040a6109cd565b604080516001600160a01b039092168252519081900360200190f35b6101186109e1565b6102936004803603604081101561044457600080fd5b506001600160a01b038135169060200135610a39565b6101b96004803603604081101561047057600080fd5b506001600160a01b0381351690602001356105db565b6101d56004803603602081101561049c57600080fd5b50356001600160a01b0316610bd4565b6101d5600480360360408110156104c257600080fd5b506001600160a01b038135811691602001351661062c565b6101d5600480360360208110156104f057600080fd5b50356001600160a01b0316610bef565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105855780601f1061055a57610100808354040283529160200191610585565b820191906000526020600020905b81548152906001019060200180831161056857829003601f168201915b505050505081565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60005481565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60035460ff1681565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6004546001600160a01b031633146106c45760405162461bcd60e51b81526004018080602001828103825260328152602001806110cb6032913960400191505060405180910390fd5b60008060006106d285610c0a565b9250925092506106e28585610c84565b600480546003546040805163386497fd60e01b81526001600160a01b036101009093048316948101949094525191169163386497fd916024808301926020929190829003018186803b15801561073757600080fd5b505afa15801561074b573d6000803e3d6000fd5b505050506040513d602081101561076157600080fd5b50516001600160a01b03861660008181526006602090815260409182902084905581519283528201879052818101869052606082018590526080820184905260a082019290925290517f94ba3ac5ed6fee7b49ed817c5ee964eed9bd5da6860344f95fc56997e920381d9181900360c00190a15050505050565b6001600160a01b038116600090815260056020526040812054610800575060006108e3565b6001600160a01b038083166000908152600660209081526040918290205460048054600354855163386497fd60e01b815261010090910487169281019290925293516108e0956108db9593946108cf949091169263386497fd9260248083019392829003018186803b15801561087557600080fd5b505afa158015610889573d6000803e3d6000fd5b505050506040513d602081101561089f57600080fd5b50516001600160a01b0387166000908152600560205260409020546108c390610ce2565b9063ffffffff610cf816565b9063ffffffff610d4516565b610d7d565b90505b919050565b84516108fb90600190602088019061100e565b50835161090f90600290602087019061100e565b506003805460ff191660ff851617610100600160a81b0319166101006001600160a01b03858116919091029190911790915560408051630261bf8b60e01b8152905191831691630261bf8b91600480820192602092909190829003018186803b15801561097b57600080fd5b505afa15801561098f573d6000803e3d6000fd5b505050506040513d60208110156109a557600080fd5b5051600480546001600160a01b0319166001600160a01b039092169190911790555050505050565b60035461010090046001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105855780601f1061055a57610100808354040283529160200191610585565b6004546001600160a01b03163314610a825760405162461bcd60e51b81526004018080602001828103825260328152602001806110cb6032913960400191505060405180910390fd5b6000806000610a9085610c0a565b925092509250610aa08585610d9d565b83821415610ac6576001600160a01b038516600090815260066020526040812055610b61565b600480546003546040805163386497fd60e01b81526001600160a01b036101009093048316948101949094525191169163386497fd916024808301926020929190829003018186803b158015610b1b57600080fd5b505afa158015610b2f573d6000803e3d6000fd5b505050506040513d6020811015610b4557600080fd5b50516001600160a01b0386166000908152600660205260409020555b6001600160a01b038516600081815260066020908152604091829020548251938452908301879052828201869052606083018590526080830184905260a0830152517fc57f977ee00c44453a91f798753002bf12fca5f5ca2ee8db560720f51d4b0f629181900360c00190a15050505050565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b031660009081526006602052604090205490565b6001600160a01b0381166000908152600560205260408120548190819080610c3c575060009250829150819050610c7d565b6000610c5782610c4b886107db565b9063ffffffff610ddb16565b9050610c638682610c84565b81610c74818363ffffffff610e1d16565b90955093509150505b9193909250565b600054610c97908263ffffffff610e1d16565b60009081556001600160a01b038316815260056020526040902054610cc2908263ffffffff610e1d16565b6001600160a01b0390921660009081526005602052604090209190915550565b60006108e082633b9aca0063ffffffff610e7716565b6000610d3c6b033b2e3c9fd0803ce8000000610d30610d1d868663ffffffff610e7716565b6b019d971e4fe8401e7400000090610e1d565b9063ffffffff610ed016565b90505b92915050565b600060028204610d7583610d30610d68876b033b2e3c9fd0803ce8000000610e77565b849063ffffffff610e1d16565b949350505050565b6000631dcd6500610d96633b9aca00610d308386610e1d565b9392505050565b600054610db0908263ffffffff610ddb16565b60009081556001600160a01b038316815260056020526040902054610cc2908263ffffffff610ddb16565b6000610d3c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f12565b600082820183811015610d3c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610e8657506000610d3f565b82820282848281610e9357fe5b0414610d3c5760405162461bcd60e51b81526004018080602001828103825260218152602001806110aa6021913960400191505060405180910390fd5b6000610d3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fa9565b60008184841115610fa15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f66578181015183820152602001610f4e565b50505050905090810190601f168015610f935780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ff85760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610f66578181015183820152602001610f4e565b50600083858161100457fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061104f57805160ff191683800117855561107c565b8280016001018555821561107c579182015b8281111561107c578251825591602001919060010190611061565b5061108892915061108c565b5090565b6110a691905b808211156110885760008155600101611092565b9056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6ca264697066735822122027c301ea80bd5f7019d7249e9b9c62752d89bc0613683c0b9f9e42416d7e37ca64736f6c63430006080033"; + "0x608060405234801561001057600080fd5b50611132806100206000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806381e75277116100a2578063a457c2d711610071578063a457c2d71461023b578063a9059cbb1461045a578063c634dfaa14610486578063dd62ed3e146104ac578063ee9907a4146104da5761010b565b806381e75277146102bb57806389d1a0fc1461040257806395d89b41146104265780639dc29fac1461042e5761010b565b8063313ce567116100de578063313ce5671461021d578063395093511461023b57806340c10f191461026757806370a08231146102955761010b565b806306fdde0314610110578063095ea7b31461018d57806318160ddd146101cd57806323b872dd146101e7575b600080fd5b610118610500565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015257818101518382015260200161013a565b50505050905090810190601f16801561017f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101b9600480360360408110156101a357600080fd5b506001600160a01b03813516906020013561058d565b604080519115158252519081900360200190f35b6101d56105d5565b60408051918252519081900360200190f35b6101b9600480360360608110156101fd57600080fd5b506001600160a01b038135811691602081013590911690604001356105db565b610225610623565b6040805160ff9092168252519081900360200190f35b6101b96004803603604081101561025157600080fd5b506001600160a01b03813516906020013561062c565b6102936004803603604081101561027d57600080fd5b506001600160a01b03813516906020013561067b565b005b6101d5600480360360208110156102ab57600080fd5b50356001600160a01b03166107db565b610293600480360360a08110156102d157600080fd5b8101906020810181356401000000008111156102ec57600080fd5b8201836020820111156102fe57600080fd5b8035906020019184600183028401116401000000008311171561032057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929594936020810193503591505064010000000081111561037357600080fd5b82018360208201111561038557600080fd5b803590602001918460018302840111640100000000831117156103a757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505060ff8335169350506001600160a01b036020830135811692604001351690506108e8565b61040a6109cd565b604080516001600160a01b039092168252519081900360200190f35b6101186109e1565b6102936004803603604081101561044457600080fd5b506001600160a01b038135169060200135610a39565b6101b96004803603604081101561047057600080fd5b506001600160a01b0381351690602001356105db565b6101d56004803603602081101561049c57600080fd5b50356001600160a01b0316610bd4565b6101d5600480360360408110156104c257600080fd5b506001600160a01b038135811691602001351661062c565b6101d5600480360360208110156104f057600080fd5b50356001600160a01b0316610bef565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105855780601f1061055a57610100808354040283529160200191610585565b820191906000526020600020905b81548152906001019060200180831161056857829003601f168201915b505050505081565b6040805162461bcd60e51b81526020600482015260166024820152751054141493d5905317d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60005481565b6040805162461bcd60e51b81526020600482015260166024820152751514905394d1915497d393d517d4d5541413d495115160521b6044820152905160009181900360640190fd5b60035460ff1681565b6040805162461bcd60e51b815260206004820152601760248201527f414c4c4f57414e43455f4e4f545f535550504f525445440000000000000000006044820152905160009181900360640190fd5b6004546001600160a01b031633146106c45760405162461bcd60e51b81526004018080602001828103825260328152602001806110cb6032913960400191505060405180910390fd5b60008060006106d285610c0a565b9250925092506106e28585610c84565b600480546003546040805163386497fd60e01b81526001600160a01b036101009093048316948101949094525191169163386497fd916024808301926020929190829003018186803b15801561073757600080fd5b505afa15801561074b573d6000803e3d6000fd5b505050506040513d602081101561076157600080fd5b50516001600160a01b03861660008181526006602090815260409182902084905581519283528201879052818101869052606082018590526080820184905260a082019290925290517f94ba3ac5ed6fee7b49ed817c5ee964eed9bd5da6860344f95fc56997e920381d9181900360c00190a15050505050565b6001600160a01b038116600090815260056020526040812054610800575060006108e3565b6001600160a01b038083166000908152600660209081526040918290205460048054600354855163386497fd60e01b815261010090910487169281019290925293516108e0956108db9593946108cf949091169263386497fd9260248083019392829003018186803b15801561087557600080fd5b505afa158015610889573d6000803e3d6000fd5b505050506040513d602081101561089f57600080fd5b50516001600160a01b0387166000908152600560205260409020546108c390610ce2565b9063ffffffff610cf816565b9063ffffffff610d4516565b610d7d565b90505b919050565b84516108fb90600190602088019061100e565b50835161090f90600290602087019061100e565b506003805460ff191660ff851617610100600160a81b0319166101006001600160a01b03858116919091029190911790915560408051630261bf8b60e01b8152905191831691630261bf8b91600480820192602092909190829003018186803b15801561097b57600080fd5b505afa15801561098f573d6000803e3d6000fd5b505050506040513d60208110156109a557600080fd5b5051600480546001600160a01b0319166001600160a01b039092169190911790555050505050565b60035461010090046001600160a01b031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156105855780601f1061055a57610100808354040283529160200191610585565b6004546001600160a01b03163314610a825760405162461bcd60e51b81526004018080602001828103825260328152602001806110cb6032913960400191505060405180910390fd5b6000806000610a9085610c0a565b925092509250610aa08585610d9d565b83821415610ac6576001600160a01b038516600090815260066020526040812055610b61565b600480546003546040805163386497fd60e01b81526001600160a01b036101009093048316948101949094525191169163386497fd916024808301926020929190829003018186803b158015610b1b57600080fd5b505afa158015610b2f573d6000803e3d6000fd5b505050506040513d6020811015610b4557600080fd5b50516001600160a01b0386166000908152600660205260409020555b6001600160a01b038516600081815260066020908152604091829020548251938452908301879052828201869052606083018590526080830184905260a0830152517fc57f977ee00c44453a91f798753002bf12fca5f5ca2ee8db560720f51d4b0f629181900360c00190a15050505050565b6001600160a01b031660009081526005602052604090205490565b6001600160a01b031660009081526006602052604090205490565b6001600160a01b0381166000908152600560205260408120548190819080610c3c575060009250829150819050610c7d565b6000610c5782610c4b886107db565b9063ffffffff610ddb16565b9050610c638682610c84565b81610c74818363ffffffff610e1d16565b90955093509150505b9193909250565b600054610c97908263ffffffff610e1d16565b60009081556001600160a01b038316815260056020526040902054610cc2908263ffffffff610e1d16565b6001600160a01b0390921660009081526005602052604090209190915550565b60006108e082633b9aca0063ffffffff610e7716565b6000610d3c6b033b2e3c9fd0803ce8000000610d30610d1d868663ffffffff610e7716565b6b019d971e4fe8401e7400000090610e1d565b9063ffffffff610ed016565b90505b92915050565b600060028204610d7583610d30610d68876b033b2e3c9fd0803ce8000000610e77565b849063ffffffff610e1d16565b949350505050565b6000631dcd6500610d96633b9aca00610d308386610e1d565b9392505050565b600054610db0908263ffffffff610ddb16565b60009081556001600160a01b038316815260056020526040902054610cc2908263ffffffff610ddb16565b6000610d3c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f12565b600082820183811015610d3c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610e8657506000610d3f565b82820282848281610e9357fe5b0414610d3c5760405162461bcd60e51b81526004018080602001828103825260218152602001806110aa6021913960400191505060405180910390fd5b6000610d3c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fa9565b60008184841115610fa15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f66578181015183820152602001610f4e565b50505050905090810190601f168015610f935780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ff85760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610f66578181015183820152602001610f4e565b50600083858161100457fe5b0495945050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061104f57805160ff191683800117855561107c565b8280016001018555821561107c579182015b8281111561107c578251825591602001919060010190611061565b5061108892915061108c565b5090565b6110a691905b808211156110885760008155600101611092565b9056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6ca26469706673582212201ab93070839d4552554734028f8d01281061dbd1510296cc91c3eaf348f7bdf564736f6c63430006080033"; diff --git a/types/WalletBalanceProviderFactory.ts b/types/WalletBalanceProviderFactory.ts index 5c7d7b5c..0cf77d86 100644 --- a/types/WalletBalanceProviderFactory.ts +++ b/types/WalletBalanceProviderFactory.ts @@ -134,4 +134,4 @@ const _abi = [ ]; const _bytecode = - "0x608060405234801561001057600080fd5b5060405161099e38038061099e8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610939806100656000396000f3fe6080604052600436106100385760003560e01c80639e3c930914610083578063b59b28ef1461014f578063f7888aec146102d35761007e565b3661007e5761004633610320565b61007c576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b34801561008f57600080fd5b506100b6600480360360208110156100a657600080fd5b50356001600160a01b031661035c565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100fa5781810151838201526020016100e2565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610139578181015183820152602001610121565b5050505090500194505050505060405180910390f35b34801561015b57600080fd5b506102836004803603604081101561017257600080fd5b81019060208101813564010000000081111561018d57600080fd5b82018360208201111561019f57600080fd5b803590602001918460208302840111640100000000831117156101c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561021157600080fd5b82018360208201111561022357600080fd5b8035906020019184602083028401116401000000008311171561024557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106a9945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102bf5781810151838201526020016102a7565b505050509050019250505060405180910390f35b3480156102df57600080fd5b5061030e600480360360408110156102f657600080fd5b506001600160a01b0381358116916020013516610841565b60408051918252519081900360200190f35b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061035457508115155b949350505050565b60608060008060009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ae57600080fd5b505afa1580156103c2573d6000803e3d6000fd5b505050506040513d60208110156103d857600080fd5b505160408051630240bc6b60e21b815290519192506060916001600160a01b03841691630902f1ac916004808301926000929190829003018186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561045d57600080fd5b810190808051604051939291908464010000000082111561047d57600080fd5b90830190602082018581111561049257600080fd5b82518660208202830111640100000000821117156104af57600080fd5b82525081516020918201928201910280838360005b838110156104dc5781810151838201526020016104c4565b5050505090500160405250505090506060815167ffffffffffffffff8111801561050557600080fd5b5060405190808252806020026020018201604052801561052f578160200160208202803683370190505b50905060005b825181101561069d576000846001600160a01b0316633e15014185848151811061055b57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b031681526020019150506101406040518083038186803b1580156105aa57600080fd5b505afa1580156105be573d6000803e3d6000fd5b505050506040513d6101408110156105d557600080fd5b5061010001519050806106025760008383815181106105f057fe5b60200260200101818152505050610695565b61060a6108eb565b6001600160a01b031684838151811061061f57fe5b60200260200101516001600160a01b03161461066f576106528885848151811061064557fe5b6020026020010151610841565b83838151811061065e57fe5b602002602001018181525050610693565b876001600160a01b03163183838151811061068657fe5b6020026020010181815250505b505b600101610535565b50909350915050915091565b606080825184510267ffffffffffffffff811180156106c757600080fd5b506040519080825280602002602001820160405280156106f1578160200160208202803683370190505b50905060005b84518110156108375760005b845181101561082e57845182026107186108eb565b6001600160a01b031686838151811061072d57fe5b60200260200101516001600160a01b031614156107815786838151811061075057fe5b60200260200101516001600160a01b031631848383018151811061077057fe5b602002602001018181525050610825565b6107a686838151811061079057fe5b60200260200101516001600160a01b0316610320565b6107e7576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22faa27a5a2a760991b604482015290519081900360640190fd5b61080a8784815181106107f657fe5b602002602001015187848151811061064557fe5b848383018151811061081857fe5b6020026020010181815250505b50600101610703565b506001016106f7565b5090505b92915050565b6000610855826001600160a01b0316610320565b156108e357816001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108b057600080fd5b505afa1580156108c4573d6000803e3d6000fd5b505050506040513d60208110156108da57600080fd5b5051905061083b565b50600061083b565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9056fea26469706673582212201c3d00b6898c7cba8e1984b191e380cdb722e5f2a344c682d01a8f97133fa70e64736f6c63430006080033"; + "0x608060405234801561001057600080fd5b5060405161099e38038061099e8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610939806100656000396000f3fe6080604052600436106100385760003560e01c80639e3c930914610083578063b59b28ef1461014f578063f7888aec146102d35761007e565b3661007e5761004633610320565b61007c576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b34801561008f57600080fd5b506100b6600480360360208110156100a657600080fd5b50356001600160a01b031661035c565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100fa5781810151838201526020016100e2565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610139578181015183820152602001610121565b5050505090500194505050505060405180910390f35b34801561015b57600080fd5b506102836004803603604081101561017257600080fd5b81019060208101813564010000000081111561018d57600080fd5b82018360208201111561019f57600080fd5b803590602001918460208302840111640100000000831117156101c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561021157600080fd5b82018360208201111561022357600080fd5b8035906020019184602083028401116401000000008311171561024557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106a9945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102bf5781810151838201526020016102a7565b505050509050019250505060405180910390f35b3480156102df57600080fd5b5061030e600480360360408110156102f657600080fd5b506001600160a01b0381358116916020013516610841565b60408051918252519081900360200190f35b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061035457508115155b949350505050565b60608060008060009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ae57600080fd5b505afa1580156103c2573d6000803e3d6000fd5b505050506040513d60208110156103d857600080fd5b505160408051630240bc6b60e21b815290519192506060916001600160a01b03841691630902f1ac916004808301926000929190829003018186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561045d57600080fd5b810190808051604051939291908464010000000082111561047d57600080fd5b90830190602082018581111561049257600080fd5b82518660208202830111640100000000821117156104af57600080fd5b82525081516020918201928201910280838360005b838110156104dc5781810151838201526020016104c4565b5050505090500160405250505090506060815167ffffffffffffffff8111801561050557600080fd5b5060405190808252806020026020018201604052801561052f578160200160208202803683370190505b50905060005b825181101561069d576000846001600160a01b0316633e15014185848151811061055b57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b031681526020019150506101406040518083038186803b1580156105aa57600080fd5b505afa1580156105be573d6000803e3d6000fd5b505050506040513d6101408110156105d557600080fd5b5061010001519050806106025760008383815181106105f057fe5b60200260200101818152505050610695565b61060a6108eb565b6001600160a01b031684838151811061061f57fe5b60200260200101516001600160a01b03161461066f576106528885848151811061064557fe5b6020026020010151610841565b83838151811061065e57fe5b602002602001018181525050610693565b876001600160a01b03163183838151811061068657fe5b6020026020010181815250505b505b600101610535565b50909350915050915091565b606080825184510267ffffffffffffffff811180156106c757600080fd5b506040519080825280602002602001820160405280156106f1578160200160208202803683370190505b50905060005b84518110156108375760005b845181101561082e57845182026107186108eb565b6001600160a01b031686838151811061072d57fe5b60200260200101516001600160a01b031614156107815786838151811061075057fe5b60200260200101516001600160a01b031631848383018151811061077057fe5b602002602001018181525050610825565b6107a686838151811061079057fe5b60200260200101516001600160a01b0316610320565b6107e7576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22faa27a5a2a760991b604482015290519081900360640190fd5b61080a8784815181106107f657fe5b602002602001015187848151811061064557fe5b848383018151811061081857fe5b6020026020010181815250505b50600101610703565b506001016106f7565b5090505b92915050565b6000610855826001600160a01b0316610320565b156108e357816001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108b057600080fd5b505afa1580156108c4573d6000803e3d6000fd5b505050506040513d60208110156108da57600080fd5b5051905061083b565b50600061083b565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee9056fea2646970667358221220a16f16f49f57c03b454cd00ccd40b73de3ab4b7744715128843b1ab47bc4873664736f6c63430006080033";