Updated initReserve() with proxies

This commit is contained in:
emilio 2020-08-17 21:28:50 +02:00
parent 45d12fd43d
commit 674b885b31
59 changed files with 2655 additions and 2418 deletions

View File

@ -32,6 +32,8 @@ contract LendingPoolConfigurator is VersionedInitializable {
event ReserveInitialized( event ReserveInitialized(
address indexed _reserve, address indexed _reserve,
address indexed _aToken, address indexed _aToken,
address _stableDebtToken,
address _variableDebtToken,
address _interestRateStrategyAddress address _interestRateStrategyAddress
); );
@ -168,36 +170,45 @@ contract LendingPoolConfigurator is VersionedInitializable {
* @dev initializes a reserve * @dev initializes a reserve
* @param _reserve the address of the reserve to be initialized * @param _reserve the address of the reserve to be initialized
* @param _aTokenImpl the address of the aToken contract implementation * @param _aTokenImpl the address of the aToken contract implementation
* @param _stableDebtTokenAddress the address of the stable debt token contract * @param _stableDebtTokenImpl the address of the stable debt token contract
* @param _variableDebtTokenAddress the address of the variable debt token contract * @param _variableDebtTokenImpl the address of the variable debt token contract
* @param _underlyingAssetDecimals the decimals of the reserve underlying asset * @param _underlyingAssetDecimals the decimals of the reserve underlying asset
* @param _interestRateStrategyAddress the address of the interest rate strategy contract for this reserve * @param _interestRateStrategyAddress the address of the interest rate strategy contract for this reserve
**/ **/
function initReserve( function initReserve(
address _reserve, address _reserve,
address _aTokenImpl, address _aTokenImpl,
address _stableDebtTokenAddress, address _stableDebtTokenImpl,
address _variableDebtTokenAddress, address _variableDebtTokenImpl,
uint8 _underlyingAssetDecimals, uint8 _underlyingAssetDecimals,
address _interestRateStrategyAddress address _interestRateStrategyAddress
) public onlyLendingPoolManager { ) public onlyLendingPoolManager {
address aTokenProxyAddress = _initWithProxy(
InitializableAdminUpgradeabilityProxy aTokenProxy = new InitializableAdminUpgradeabilityProxy(); _aTokenImpl,
bytes memory params = abi.encodeWithSignature(
'initialize(uint8,string,string)',
_underlyingAssetDecimals, _underlyingAssetDecimals,
IERC20Detailed(_aTokenImpl).name(), IERC20Detailed(_aTokenImpl).name(),
IERC20Detailed(_aTokenImpl).symbol() IERC20Detailed(_aTokenImpl).symbol()
); );
aTokenProxy.initialize(_aTokenImpl, address(this), params); address stableDebtTokenProxyAddress = _initWithProxy(
_stableDebtTokenImpl,
_underlyingAssetDecimals,
IERC20Detailed(_stableDebtTokenImpl).name(),
IERC20Detailed(_stableDebtTokenImpl).symbol()
);
address variableDebtTokenProxyAddress = _initWithProxy(
_variableDebtTokenImpl,
_underlyingAssetDecimals,
IERC20Detailed(_variableDebtTokenImpl).name(),
IERC20Detailed(_variableDebtTokenImpl).symbol()
);
pool.initReserve( pool.initReserve(
_reserve, _reserve,
address(aTokenProxy), aTokenProxyAddress,
_stableDebtTokenAddress, stableDebtTokenProxyAddress,
_variableDebtTokenAddress, variableDebtTokenProxyAddress,
_interestRateStrategyAddress _interestRateStrategyAddress
); );
@ -210,7 +221,13 @@ contract LendingPoolConfigurator is VersionedInitializable {
pool.setConfiguration(_reserve, currentConfig.data); pool.setConfiguration(_reserve, currentConfig.data);
emit ReserveInitialized(_reserve, address(aTokenProxy), _interestRateStrategyAddress); emit ReserveInitialized(
_reserve,
aTokenProxyAddress,
stableDebtTokenProxyAddress,
variableDebtTokenProxyAddress,
_interestRateStrategyAddress
);
} }
/** /**
@ -488,4 +505,28 @@ contract LendingPoolConfigurator is VersionedInitializable {
pool.setReserveInterestRateStrategyAddress(_reserve, _rateStrategyAddress); pool.setReserveInterestRateStrategyAddress(_reserve, _rateStrategyAddress);
emit ReserveInterestRateStrategyChanged(_reserve, _rateStrategyAddress); emit ReserveInterestRateStrategyChanged(_reserve, _rateStrategyAddress);
} }
/**
*
*
**/
function _initWithProxy(
address _implementation,
uint8 _decimals,
string memory _name,
string memory _symbol
) internal returns (address) {
InitializableAdminUpgradeabilityProxy proxy = new InitializableAdminUpgradeabilityProxy();
bytes memory params = abi.encodeWithSignature(
'initialize(uint8,string,string)',
_decimals,
_name,
_symbol
);
proxy.initialize(_implementation, address(this), params);
return address(proxy);
}
} }

View File

@ -24,6 +24,7 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase {
using WadRayMath for uint256; using WadRayMath for uint256;
using Address for address; using Address for address;
uint256 public constant DEBT_TOKEN_REVISION = 0x1;
struct UserData { struct UserData {
uint256 currentRate; uint256 currentRate;
uint40 lastUpdateTimestamp; uint40 lastUpdateTimestamp;
@ -72,6 +73,14 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase {
DebtTokenBase(_pool, _underlyingAsset) DebtTokenBase(_pool, _underlyingAsset)
{} {}
/**
* @dev gets the revision of the stable debt token implementation
* @return the debt token implementation revision
**/
function getRevision() internal override pure returns(uint256) {
return DEBT_TOKEN_REVISION;
}
/** /**
* @dev returns the average stable rate across all the stable rate debt * @dev returns the average stable rate across all the stable rate debt
* @return the average stable rate * @return the average stable rate

View File

@ -20,6 +20,8 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken {
using WadRayMath for uint256; using WadRayMath for uint256;
using Address for address; using Address for address;
uint256 public constant DEBT_TOKEN_REVISION = 0x1;
mapping(address => uint256) private userIndexes; mapping(address => uint256) private userIndexes;
/** /**
@ -63,6 +65,15 @@ contract VariableDebtToken is DebtTokenBase, IVariableDebtToken {
DebtTokenBase(_pool, _underlyingAsset) DebtTokenBase(_pool, _underlyingAsset)
{} {}
/**
* @dev gets the revision of the stable debt token implementation
* @return the debt token implementation revision
**/
function getRevision() internal virtual override pure returns(uint256) {
return DEBT_TOKEN_REVISION;
}
/** /**
* @dev calculates the accumulated debt balance of the user * @dev calculates the accumulated debt balance of the user
* @return the debt balance of the user * @return the debt balance of the user

View File

@ -6,6 +6,7 @@ import {SafeMath} from '@openzeppelin/contracts/math/SafeMath.sol';
import {Address} from '@openzeppelin/contracts/utils/Address.sol'; import {Address} from '@openzeppelin/contracts/utils/Address.sol';
import {ILendingPoolAddressesProvider} from '../../interfaces/ILendingPoolAddressesProvider.sol'; import {ILendingPoolAddressesProvider} from '../../interfaces/ILendingPoolAddressesProvider.sol';
import {LendingPool} from '../../lendingpool/LendingPool.sol'; import {LendingPool} from '../../lendingpool/LendingPool.sol';
import {VersionedInitializable} from '../../libraries/openzeppelin-upgradeability/VersionedInitializable.sol';
/** /**
* @title contract DebtTokenBase * @title contract DebtTokenBase
@ -13,7 +14,7 @@ import {LendingPool} from '../../lendingpool/LendingPool.sol';
* @notice base contract for StableDebtToken and VariableDebtToken * @notice base contract for StableDebtToken and VariableDebtToken
*/ */
abstract contract DebtTokenBase is IERC20 { abstract contract DebtTokenBase is IERC20, VersionedInitializable {
using SafeMath for uint256; using SafeMath for uint256;
using Address for address; using Address for address;
@ -45,11 +46,11 @@ abstract contract DebtTokenBase is IERC20 {
* @param _symbol the symbol of the token * @param _symbol the symbol of the token
* @param _decimals the decimals of the token * @param _decimals the decimals of the token
*/ */
function init( function initialize(
uint8 _decimals,
string memory _name, string memory _name,
string memory _symbol, string memory _symbol
uint8 _decimals ) public initializer {
) public {
name = _name; name = _name;
symbol = _symbol; symbol = _symbol;
decimals = _decimals; decimals = _decimals;

View File

@ -5,7 +5,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x4da11393102f7c324f7Bfd07B58773264986e211", "address": "0x666D47050E77ADB0B04076fB35DDcb74e95D1d7C",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -15,7 +15,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x479182FBD6270898bf472583876527667dE6aC04", "address": "0x1FB61ED838A993b8885Ceb08936524F742F525cf",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -25,7 +25,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x4cC8D5649e9d91a4bD054667691aebeC69B69FfB", "address": "0xcBf7A8f676Bf5fa60339ba8dFab867D4a074c604",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -34,7 +34,7 @@
"address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e" "address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e"
}, },
"localhost": { "localhost": {
"address": "0x0f2cE53B3410a2007d6C4ad8940Ffa5AdCC2916C" "address": "0x26aBe949b24C10cc9b1d33100Cd7fF3Aa5e4C698"
} }
}, },
"LendingPoolParametersProvider": { "LendingPoolParametersProvider": {
@ -52,7 +52,7 @@
"address": "0x9EC0480CF106d6dc1c7849BA141a56F874170F97" "address": "0x9EC0480CF106d6dc1c7849BA141a56F874170F97"
}, },
"localhost": { "localhost": {
"address": "0x0ca5E5B6F09C97f30Ed6e5E99be65A38eE7edfaB" "address": "0xaD0FdA3C2D467DEE48DFc3b4C123240F6e90D3c2"
} }
}, },
"LendingPoolDataProvider": { "LendingPoolDataProvider": {
@ -65,7 +65,7 @@
"address": "0x6642B57e4265BAD868C17Fc1d1F4F88DBBA04Aa8" "address": "0x6642B57e4265BAD868C17Fc1d1F4F88DBBA04Aa8"
}, },
"localhost": { "localhost": {
"address": "0x7FE8419fACf45dFa93d471644e87122923EC9D94" "address": "0x29c1e17Ac4aAf9fEE3091A8DdAAf5B7798bcC4b9"
} }
}, },
"PriceOracle": { "PriceOracle": {
@ -74,7 +74,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xEDf104A35B3293F4BdB987be9D57EFe3b69C19c7", "address": "0xfdAF4f6e47e854c05bE158993d32872e784F0502",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -84,7 +84,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x4CAf641bceba759b352e07B2aE3A079B5F409dA6", "address": "0x8d0FF86F21174b33f86A2673E96e8D7a472659A3",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -94,7 +94,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xCb9cdF2CfeE567b43FD654f8b831528c2d54D901", "address": "0xf6fFAbB561D5b265127459cB7e43c89f58b7cAbe",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -104,17 +104,17 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xeB3E3b080821399daF535D0C52f642b8f14993AC", "address": "0x5DAe571bb5B70f9851eeef12E3a43f548dCF923c",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
"DefaultReserveInterestRateStrategy": { "DefaultReserveInterestRateStrategy": {
"buidlerevm": { "buidlerevm": {
"address": "0x09d7cb7a0606a7f10DC8a37b3e0E420F39f0FAF1", "address": "0x830bceA96E56DBC1F8578f75fBaC0AF16B32A07d",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x3888B5ac0089C12cDF21DD8B0234029f80645324", "address": "0x5a3343A0CF72dC6933362676Bb5831784CaA0014",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -146,37 +146,37 @@
}, },
"TokenDistributor": { "TokenDistributor": {
"buidlerevm": { "buidlerevm": {
"address": "0x22B37db37e9992728245A7dD0536892AF9bA1baB" "address": "0x2cfcA5785261fbC88EFFDd46fCFc04c22525F9e4"
}, },
"localhost": { "localhost": {
"address": "0x39f713653d31a8e0D7a51061F1159861290e65Fd" "address": "0x61751f72Fa303F3bB256707dD3cD368c89E82f1b"
} }
}, },
"InitializableAdminUpgradeabilityProxy": { "InitializableAdminUpgradeabilityProxy": {
"buidlerevm": { "buidlerevm": {
"address": "0x22B37db37e9992728245A7dD0536892AF9bA1baB", "address": "0x2cfcA5785261fbC88EFFDd46fCFc04c22525F9e4",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x39f713653d31a8e0D7a51061F1159861290e65Fd", "address": "0x61751f72Fa303F3bB256707dD3cD368c89E82f1b",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
"MockFlashLoanReceiver": { "MockFlashLoanReceiver": {
"buidlerevm": { "buidlerevm": {
"address": "0x850Fae11E1313e6C23Db7c2410Ec0985d9Ea325A" "address": "0x3bDA11B584dDff7F66E0cFe1da1562c92B45db60"
}, },
"localhost": { "localhost": {
"address": "0xC4e948241c7A63d1f21fD98D652aE4B59180e07F" "address": "0xdF19a9539Fdd701D8334299C6Dd04931e4022303"
} }
}, },
"WalletBalanceProvider": { "WalletBalanceProvider": {
"buidlerevm": { "buidlerevm": {
"address": "0x22058276Dd278bD037591805E62E797012d666f6", "address": "0x392E5355a0e88Bd394F717227c752670fb3a8020",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x5361A119A2b3daFB88585b24997aAB2232C655a3", "address": "0xBe6d8642382C241c9B4B50c89574DbF3f4181E7D",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -186,7 +186,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xeb544bEfD42128e6b08A821aCCc5562c395E8c9d", "address": "0x8733AfE8174BA7c04c6CD694bD673294079b7E10",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -196,7 +196,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xe3353ddEc0cf8aA6761a3C21D896D04ebd59bDe2", "address": "0xA8083d78B6ABC328b4d3B714F76F384eCC7147e1",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -206,7 +206,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xa7B8e0F888D416d7e08bD12029c6ec8b8Ed18373", "address": "0xa497f1Ed4edeA8151fECe457aa26e1D6A4318B6A",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -216,7 +216,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x7dF045e4721203EBEDD3436b15391f32A375Cbc4", "address": "0xB7b9568073C9e745acD84eEb30F1c32F74Ba4946",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -226,7 +226,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xbcd58cEF3F429f99CA32Dc06F28Ca7F7ea6aC5bB", "address": "0x64999a4272342C910FB8f6a71C2Ca50b878a8658",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -236,7 +236,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xb528f2371502B38d87af537292e88721F4728915", "address": "0xFB6800f1BB30e235587b574F8Ce6c7bba2242276",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -246,7 +246,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xC2CC8DD97D4680FCfE2338117D23fa7E4858E09B", "address": "0x832D8fDeeE7Df842796582bC7F804802c2c666fd",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -256,7 +256,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xfC6d9227413D021f7a50EF3AAdF9545aA4ebb439", "address": "0x8628E920E86DA923A79A57Ab4282CC9f89E12CEf",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -266,7 +266,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xdc006C4186148C29B57f52A8ad7694542ad4E675", "address": "0x04C90bD686E03782737C3f4C6bDC88dc3C92bDec",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -276,7 +276,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x77488a02Baf7a80a5E7D1Da37921D0554C112c7F", "address": "0x002164e9C8425D2F0c7dcde98E63317D305302C5",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -286,7 +286,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x107Aa2cc3FE981E78140424C3d4DD55aF00Ab24C", "address": "0xAe407A0bD891d02E495D3E79cE577C17BB61f366",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -296,7 +296,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x512555303417D50E8E2a3BE333896f5f8c54205c", "address": "0x96cf3831338c19F309121D48C12C3aB489FE7D5A",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -306,7 +306,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x8cD1B99Ff499438BC9B5A41F558E41e3Df10ff08", "address": "0xfd1346a9ee71839D6103C76Bb63d1592971C23aE",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -316,7 +316,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x66F7097B8204A7a93850D5D29eAcdA6E2AA09A06", "address": "0x9884cF2d612CdD7031cCaa12dd3Bc69D754fc701",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -326,7 +326,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xAfD2Ac057dA78019436cbc59E08a4567E1FDCB02", "address": "0x48fc85A6fcD880e2421586f4F9116f14e854E109",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -336,7 +336,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xc989A9cB29D1e65F5fD1f5e54306D81EC2aae2d4", "address": "0x1bfF9DBd010EF644863918f77aCF79BD35721c13",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -346,7 +346,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x5D5492e4659e8c26A86a4cB2122b59d3fC8afA23", "address": "0xB42D37cB0E78aaCC5980eC6B2EcB98CBeCeB9df7",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -356,7 +356,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x67863e08EBA141fe927605A9A4C614751d550416", "address": "0x8051CFC72E5c27fD752834a854eDD306c254D3b1",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -366,7 +366,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x83eDd07E49dFaBc288AF2215C9dC534C52AB549f", "address": "0x2F16C47532625acE7C652FC5EE7E9a9080B352f5",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -376,7 +376,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x02D4086e063Ef6cc8d8e6e811bFc596Ed4aa7F0f", "address": "0x7483ADEC5d3dA2203CCB2Fc5F837c6F8a1A92099",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -386,7 +386,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x1865BF8d8F8392a823D9063f55beC6D450c6756A", "address": "0xe6688b6Cc79268D2e39f799C08673034a5350F13",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -396,7 +396,7 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x2f2abb208a543B0A076aF58cc806a899dE9EFfAC", "address": "0xFa58524E6B3E432fb10B41A9fea95BAD32A608eF",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -406,51 +406,55 @@
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x4da11393102f7c324f7Bfd07B58773264986e211", "address": "0x666D47050E77ADB0B04076fB35DDcb74e95D1d7C",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
"AaveProtocolTestHelpers": { "AaveProtocolTestHelpers": {
"buidlerevm": { "buidlerevm": {
"address": "0x6D3540a9F1a769bfd91A4A33169a8361aa82dC0F" "address": "0x3b050AFb4ac4ACE646b31fF3639C1CD43aC31460"
}, },
"localhost": { "localhost": {
"address": "0x26af54A97F214dB563711B0670c4FbA2Eb935E37" "address": "0x02BB514187B830d6A2111197cd7D8cb60650B970"
} }
}, },
"StableDebtToken": { "StableDebtToken": {
"buidlerevm": { "buidlerevm": {
"address": "0x5Ea694f66BD0CBd08FC7967af01b67Dcef68cC5c", "address": "0xA0AB1cB92A4AF81f84dCd258155B5c25D247b54E",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0xB76Ea4df0263F99daf33765541b1933AD5bB4410", "address": "0xbC15a5eEA769cfB4BA6d7574c9942f0b8C40Ae03",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
"VariableDebtToken": { "VariableDebtToken": {
"buidlerevm": { "buidlerevm": {
"address": "0xd4e934C2749CA8C1618659D02E7B28B074bf4df7", "address": "0x5f7134cd38C826a7649f9Cc47dda24d834DD2967",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"localhost": { "localhost": {
"address": "0x7376e7b11aCE5dDa9068f770a27796826e66E305", "address": "0x3c3AB51fF33032159e82E1FDEe6503dEd082F1d9",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
"AToken": { "AToken": {
"localhost": { "localhost": {
"address": "0x2abb2787B4C39a5667E95f11E8a44c034a58aaac", "address": "0x2d17b3E44e413F1fDa30E569895863EeD139CE6B",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
}, },
"buidlerevm": { "buidlerevm": {
"address": "0x8280D40C9E9F04229D2435EAad6e0011309ce81B", "address": "0xE91bBe8ee03560E3dda2786f95335F5399813Ca0",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
"MockAToken": { "MockAToken": {
"buidlerevm": { "buidlerevm": {
"address": "0x7f23223A2FAf869962B38f5eC4aAB7f37454A45e", "address": "0xD4B5A49d5bA242572ec3f4A8E52B97a10AF2543a",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
},
"localhost": {
"address": "0xc2517909aE3cFacC0283EB8FB917EAe273a3aE9e",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
}, },
@ -458,6 +462,10 @@
"buidlerevm": { "buidlerevm": {
"address": "0xf784709d2317D872237C4bC22f867d1BAe2913AB", "address": "0xf784709d2317D872237C4bC22f867d1BAe2913AB",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
},
"localhost": {
"address": "0x501A498e8FDA589038d6526C2153a9fdc9d8eDD2",
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
} }
} }
} }

View File

@ -265,8 +265,6 @@ export const deployStableDebtToken = async ([
underlyingAsset, underlyingAsset,
]); ]);
await token.init(name, symbol, decimals);
return token; return token;
}; };
@ -282,8 +280,6 @@ export const deployVariableDebtToken = async ([
underlyingAsset, underlyingAsset,
]); ]);
await token.init(name, symbol, decimals);
return token; return token;
}; };

8
types/AToken.d.ts vendored
View File

@ -69,7 +69,7 @@ interface ATokenInterface extends Interface {
}>; }>;
mintOnDeposit: TypedFunctionDescription<{ mintOnDeposit: TypedFunctionDescription<{
encode([_account, _amount]: [string, BigNumberish]): string; encode([_user, _amount]: [string, BigNumberish]): string;
}>; }>;
name: TypedFunctionDescription<{ encode([]: []): string }>; name: TypedFunctionDescription<{ encode([]: []): string }>;
@ -278,7 +278,7 @@ export class AToken extends Contract {
isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>; isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>;
mintOnDeposit( mintOnDeposit(
_account: string, _user: string,
_amount: BigNumberish, _amount: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -391,7 +391,7 @@ export class AToken extends Contract {
isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>; isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>;
mintOnDeposit( mintOnDeposit(
_account: string, _user: string,
_amount: BigNumberish, _amount: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -554,7 +554,7 @@ export class AToken extends Contract {
isTransferAllowed(_user: string, _amount: BigNumberish): Promise<BigNumber>; isTransferAllowed(_user: string, _amount: BigNumberish): Promise<BigNumber>;
mintOnDeposit(_account: string, _amount: BigNumberish): Promise<BigNumber>; mintOnDeposit(_user: string, _amount: BigNumberish): Promise<BigNumber>;
name(): Promise<BigNumber>; name(): Promise<BigNumber>;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -32,11 +32,11 @@ interface DebtTokenBaseInterface extends Interface {
encode([spender, addedValue]: [string, BigNumberish]): string; encode([spender, addedValue]: [string, BigNumberish]): string;
}>; }>;
init: TypedFunctionDescription<{ initialize: TypedFunctionDescription<{
encode([_name, _symbol, _decimals]: [ encode([_decimals, _name, _symbol]: [
BigNumberish,
string, string,
string, string
BigNumberish
]): string; ]): string;
}>; }>;
@ -127,10 +127,10 @@ export class DebtTokenBase extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string,
_decimals: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -182,10 +182,10 @@ export class DebtTokenBase extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string,
_decimals: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -241,10 +241,10 @@ export class DebtTokenBase extends Contract {
addedValue: BigNumberish addedValue: BigNumberish
): Promise<BigNumber>; ): Promise<BigNumber>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string
_decimals: BigNumberish
): Promise<BigNumber>; ): Promise<BigNumber>;
name(): Promise<BigNumber>; name(): Promise<BigNumber>;

View File

@ -212,6 +212,11 @@ const _abi = [
}, },
{ {
inputs: [ inputs: [
{
internalType: "uint8",
name: "_decimals",
type: "uint8"
},
{ {
internalType: "string", internalType: "string",
name: "_name", name: "_name",
@ -221,14 +226,9 @@ const _abi = [
internalType: "string", internalType: "string",
name: "_symbol", name: "_symbol",
type: "string" type: "string"
},
{
internalType: "uint8",
name: "_decimals",
type: "uint8"
} }
], ],
name: "init", name: "initialize",
outputs: [], outputs: [],
stateMutability: "nonpayable", stateMutability: "nonpayable",
type: "function" type: "function"

File diff suppressed because one or more lines are too long

View File

@ -1,12 +1,12 @@
/* Generated by ts-generator ver. 0.0.8 */ /* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */ /* tslint:disable */
import {Contract, ContractFactory, Signer} from 'ethers'; import { Contract, ContractFactory, Signer } from "ethers";
import {Provider} from 'ethers/providers'; import { Provider } from "ethers/providers";
import {UnsignedTransaction} from 'ethers/utils/transaction'; import { UnsignedTransaction } from "ethers/utils/transaction";
import {TransactionOverrides} from '.'; import { TransactionOverrides } from ".";
import {FeeProvider} from './FeeProvider'; import { FeeProvider } from "./FeeProvider";
export class FeeProviderFactory extends ContractFactory { export class FeeProviderFactory extends ContractFactory {
constructor(signer?: Signer) { constructor(signer?: Signer) {
@ -25,7 +25,10 @@ export class FeeProviderFactory extends ContractFactory {
connect(signer: Signer): FeeProviderFactory { connect(signer: Signer): FeeProviderFactory {
return super.connect(signer) as FeeProviderFactory; return super.connect(signer) as FeeProviderFactory;
} }
static connect(address: string, signerOrProvider: Signer | Provider): FeeProvider { static connect(
address: string,
signerOrProvider: Signer | Provider
): FeeProvider {
return new Contract(address, _abi, signerOrProvider) as FeeProvider; return new Contract(address, _abi, signerOrProvider) as FeeProvider;
} }
} }
@ -33,81 +36,81 @@ export class FeeProviderFactory extends ContractFactory {
const _abi = [ const _abi = [
{ {
inputs: [], inputs: [],
name: 'FEE_PROVIDER_REVISION', name: "FEE_PROVIDER_REVISION",
outputs: [ outputs: [
{ {
internalType: 'uint256', internalType: "uint256",
name: '', name: "",
type: 'uint256', type: "uint256"
}, }
], ],
stateMutability: 'view', stateMutability: "view",
type: 'function', type: "function"
}, },
{ {
inputs: [ inputs: [
{ {
internalType: 'address', internalType: "address",
name: '_user', name: "_user",
type: 'address', type: "address"
}, },
{ {
internalType: 'uint256', internalType: "uint256",
name: '_amount', name: "_amount",
type: 'uint256', type: "uint256"
}, }
], ],
name: 'calculateLoanOriginationFee', name: "calculateLoanOriginationFee",
outputs: [ outputs: [
{ {
internalType: 'uint256', internalType: "uint256",
name: '', name: "",
type: 'uint256', type: "uint256"
}, }
], ],
stateMutability: 'view', stateMutability: "view",
type: 'function', type: "function"
}, },
{ {
inputs: [], inputs: [],
name: 'getLoanOriginationFeePercentage', name: "getLoanOriginationFeePercentage",
outputs: [ outputs: [
{ {
internalType: 'uint256', internalType: "uint256",
name: '', name: "",
type: 'uint256', type: "uint256"
}, }
], ],
stateMutability: 'view', stateMutability: "view",
type: 'function', type: "function"
}, },
{ {
inputs: [ inputs: [
{ {
internalType: 'address', internalType: "address",
name: '_addressesProvider', name: "_addressesProvider",
type: 'address', type: "address"
}, }
], ],
name: 'initialize', name: "initialize",
outputs: [], outputs: [],
stateMutability: 'nonpayable', stateMutability: "nonpayable",
type: 'function', type: "function"
}, },
{ {
inputs: [], inputs: [],
name: 'originationFeePercentage', name: "originationFeePercentage",
outputs: [ outputs: [
{ {
internalType: 'uint256', internalType: "uint256",
name: '', name: "",
type: 'uint256', type: "uint256"
}, }
], ],
stateMutability: 'view', stateMutability: "view",
type: 'function', type: "function"
}, }
]; ];
const _bytecode = const _bytecode =
'0x60806040526000805534801561001457600080fd5b5061082d806100246000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80639403ed3a1461005c578063b0d73d4e14610076578063c211f9a41461007e578063c4d66de814610086578063e563a7d0146100ae575b600080fd5b6100646100da565b60408051918252519081900360200190f35b6100646100e0565b6100646100e5565b6100ac6004803603602081101561009c57600080fd5b50356001600160a01b03166100eb565b005b610064600480360360408110156100c457600080fd5b506001600160a01b03813516906020013561021f565b60345481565b600181565b60345490565b61011e6040518060400160405280601281526020017124b739b4b2329034b734ba34b0b634bd32b960711b81525061023f565b6000610128610381565b905061015a6040518060400160405280600e81526020016d5265766973696f6e20697320257360901b81525082610386565b61018460405180604001604052806008815260200167546869733a20257360c01b815250306104db565b60015460ff168061019857506101986105d4565b806101a4575060005481115b6101df5760405162461bcd60e51b815260040180806020018281038252602e8152602001806107ca602e913960400191505060405180910390fd5b60015460ff161580156101fe576001805460ff19168117905560008290555b6608e1bc9bf04000603455801561021a576001805460ff191690555b505050565b6000610236603454836105da90919063ffffffff16565b90505b92915050565b6040516020602482018181528351604484015283516000936a636f6e736f6c652e6c6f67938693928392606401918501908083838a5b8381101561028d578181015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663104c13eb60e21b178152905182519295509350839250908083835b602083106103155780518252601f1990920191602091820191016102f6565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114610375576040519150601f19603f3d011682016040523d82523d6000602084013e61037a565b606091505b5050505050565b600190565b60006a636f6e736f6c652e6c6f676001600160a01b031683836040516024018080602001838152602001828103825284818151815260200191508051906020019080838360005b838110156103e55781810151838201526020016103cd565b50505050905090810190601f1680156104125780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b03166309710a9d60e41b17815290518251929650945084935091508083835b6020831061046e5780518252601f19909201916020918201910161044f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146104ce576040519150601f19603f3d011682016040523d82523d6000602084013e6104d3565b606091505b505050505050565b60006a636f6e736f6c652e6c6f676001600160a01b031683836040516024018080602001836001600160a01b03166001600160a01b03168152602001828103825284818151815260200191508051906020019080838360005b8381101561054c578181015183820152602001610534565b50505050905090810190601f1680156105795780820380516001836020036101000a031916815260200191505b5060408051601f198184030181529181526020820180516001600160e01b031663319af33360e01b17815290518251929650945084935091508083836020831061046e5780518252601f19909201916020918201910161044f565b303b1590565b6000610236670de0b6b3a764000061060a6105fb868663ffffffff61061616565b6706f05b59d3b200009061066f565b9063ffffffff6106c916565b60008261062557506000610239565b8282028284828161063257fe5b04146102365760405162461bcd60e51b81526004018080602001828103825260218152602001806107a96021913960400191505060405180910390fd5b600082820183811015610236576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061023683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836107925760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561075757818101518382015260200161073f565b50505050905090810190601f1680156107845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161079e57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a264697066735822122096e37c04d1727fcae260159451045b2fd3d49634fccba582da71becd432f644f64736f6c63430006080033'; "0x60806040526000805534801561001457600080fd5b50610411806100246000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80639403ed3a1461005c578063b0d73d4e14610076578063c211f9a41461007e578063c4d66de814610086578063e563a7d0146100ae575b600080fd5b6100646100da565b60408051918252519081900360200190f35b6100646100e0565b6100646100e5565b6100ac6004803603602081101561009c57600080fd5b50356001600160a01b03166100eb565b005b610064600480360360408110156100c457600080fd5b506001600160a01b038135169060200135610193565b60345481565b600181565b60345490565b60006100f56101b3565b60015490915060ff168061010c575061010c6101b8565b80610118575060005481115b6101535760405162461bcd60e51b815260040180806020018281038252602e8152602001806103ae602e913960400191505060405180910390fd5b60015460ff16158015610172576001805460ff19168117905560008290555b6608e1bc9bf04000603455801561018e576001805460ff191690555b505050565b60006101aa603454836101be90919063ffffffff16565b90505b92915050565b600190565b303b1590565b60006101aa670de0b6b3a76400006101ee6101df868663ffffffff6101fa16565b6706f05b59d3b2000090610253565b9063ffffffff6102ad16565b600082610209575060006101ad565b8282028284828161021657fe5b04146101aa5760405162461bcd60e51b815260040180806020018281038252602181526020018061038d6021913960400191505060405180910390fd5b6000828201838110156101aa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60006101aa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836103765760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561033b578181015183820152602001610323565b50505050905090810190601f1680156103685780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161038257fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a26469706673582212204d77e8d34c5af357117493d51adeef06b96bfc607557f6e85a417e94e7bb28fe64736f6c63430006080033";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,14 +1,18 @@
/* Generated by ts-generator ver. 0.0.8 */ /* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */ /* tslint:disable */
import {Contract, ContractTransaction, EventFilter, Signer} from 'ethers'; import { Contract, ContractTransaction, EventFilter, Signer } from "ethers";
import {Listener, Provider} from 'ethers/providers'; import { Listener, Provider } from "ethers/providers";
import {Arrayish, BigNumber, BigNumberish, Interface} from 'ethers/utils'; import { Arrayish, BigNumber, BigNumberish, Interface } from "ethers/utils";
import {TransactionOverrides, TypedEventDescription, TypedFunctionDescription} from '.'; import {
TransactionOverrides,
TypedEventDescription,
TypedFunctionDescription
} from ".";
interface LendingPoolConfiguratorInterface extends Interface { interface LendingPoolConfiguratorInterface extends Interface {
functions: { functions: {
CONFIGURATOR_REVISION: TypedFunctionDescription<{encode([]: []): string}>; CONFIGURATOR_REVISION: TypedFunctionDescription<{ encode([]: []): string }>;
activateReserve: TypedFunctionDescription<{ activateReserve: TypedFunctionDescription<{
encode([_reserve]: [string]): string; encode([_reserve]: [string]): string;
@ -35,12 +39,12 @@ interface LendingPoolConfiguratorInterface extends Interface {
}>; }>;
enableReserveAsCollateral: TypedFunctionDescription<{ enableReserveAsCollateral: TypedFunctionDescription<{
encode([_reserve, _baseLTVasCollateral, _liquidationThreshold, _liquidationBonus]: [ encode([
string, _reserve,
BigNumberish, _baseLTVasCollateral,
BigNumberish, _liquidationThreshold,
BigNumberish _liquidationBonus
]): string; ]: [string, BigNumberish, BigNumberish, BigNumberish]): string;
}>; }>;
enableReserveStableRate: TypedFunctionDescription<{ enableReserveStableRate: TypedFunctionDescription<{
@ -54,11 +58,11 @@ interface LendingPoolConfiguratorInterface extends Interface {
initReserve: TypedFunctionDescription<{ initReserve: TypedFunctionDescription<{
encode([ encode([
_reserve, _reserve,
_aTokenInstance, _aTokenImpl,
_stableDebtTokenAddress, _stableDebtTokenImpl,
_variableDebtTokenAddress, _variableDebtTokenImpl,
_underlyingAssetDecimals, _underlyingAssetDecimals,
_interestRateStrategyAddress, _interestRateStrategyAddress
]: [string, string, string, string, BigNumberish, string]): string; ]: [string, string, string, string, BigNumberish, string]): string;
}>; }>;
@ -66,9 +70,9 @@ interface LendingPoolConfiguratorInterface extends Interface {
encode([_poolAddressesProvider]: [string]): string; encode([_poolAddressesProvider]: [string]): string;
}>; }>;
pool: TypedFunctionDescription<{encode([]: []): string}>; pool: TypedFunctionDescription<{ encode([]: []): string }>;
poolAddressesProvider: TypedFunctionDescription<{encode([]: []): string}>; poolAddressesProvider: TypedFunctionDescription<{ encode([]: []): string }>;
setLiquidationBonus: TypedFunctionDescription<{ setLiquidationBonus: TypedFunctionDescription<{
encode([_reserve, _bonus]: [string, BigNumberish]): string; encode([_reserve, _bonus]: [string, BigNumberish]): string;
@ -142,11 +146,13 @@ interface LendingPoolConfiguratorInterface extends Interface {
}>; }>;
ReserveInitialized: TypedEventDescription<{ ReserveInitialized: TypedEventDescription<{
encodeTopics([_reserve, _aToken, _interestRateStrategyAddress]: [ encodeTopics([
string | null, _reserve,
string | null, _aToken,
null _stableDebtToken,
]): string[]; _variableDebtToken,
_interestRateStrategyAddress
]: [string | null, string | null, null, null, null]): string[];
}>; }>;
ReserveInterestRateStrategyChanged: TypedEventDescription<{ ReserveInterestRateStrategyChanged: TypedEventDescription<{
@ -176,13 +182,21 @@ interface LendingPoolConfiguratorInterface extends Interface {
} }
export class LendingPoolConfigurator extends Contract { export class LendingPoolConfigurator extends Contract {
connect(signerOrProvider: Signer | Provider | string): LendingPoolConfigurator; connect(
signerOrProvider: Signer | Provider | string
): LendingPoolConfigurator;
attach(addressOrName: string): LendingPoolConfigurator; attach(addressOrName: string): LendingPoolConfigurator;
deployed(): Promise<LendingPoolConfigurator>; deployed(): Promise<LendingPoolConfigurator>;
on(event: EventFilter | string, listener: Listener): LendingPoolConfigurator; on(event: EventFilter | string, listener: Listener): LendingPoolConfigurator;
once(event: EventFilter | string, listener: Listener): LendingPoolConfigurator; once(
addListener(eventName: EventFilter | string, listener: Listener): LendingPoolConfigurator; event: EventFilter | string,
listener: Listener
): LendingPoolConfigurator;
addListener(
eventName: EventFilter | string,
listener: Listener
): LendingPoolConfigurator;
removeAllListeners(eventName: EventFilter | string): LendingPoolConfigurator; removeAllListeners(eventName: EventFilter | string): LendingPoolConfigurator;
removeListener(eventName: any, listener: Listener): LendingPoolConfigurator; removeListener(eventName: any, listener: Listener): LendingPoolConfigurator;
@ -235,13 +249,16 @@ export class LendingPoolConfigurator extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
freezeReserve(_reserve: string, overrides?: TransactionOverrides): Promise<ContractTransaction>; freezeReserve(
_reserve: string,
overrides?: TransactionOverrides
): Promise<ContractTransaction>;
initReserve( initReserve(
_reserve: string, _reserve: string,
_aTokenInstance: string, _aTokenImpl: string,
_stableDebtTokenAddress: string, _stableDebtTokenImpl: string,
_variableDebtTokenAddress: string, _variableDebtTokenImpl: string,
_underlyingAssetDecimals: BigNumberish, _underlyingAssetDecimals: BigNumberish,
_interestRateStrategyAddress: string, _interestRateStrategyAddress: string,
overrides?: TransactionOverrides overrides?: TransactionOverrides
@ -300,7 +317,10 @@ export class LendingPoolConfigurator extends Contract {
CONFIGURATOR_REVISION(): Promise<BigNumber>; CONFIGURATOR_REVISION(): Promise<BigNumber>;
activateReserve(_reserve: string, overrides?: TransactionOverrides): Promise<ContractTransaction>; activateReserve(
_reserve: string,
overrides?: TransactionOverrides
): Promise<ContractTransaction>;
deactivateReserve( deactivateReserve(
_reserve: string, _reserve: string,
@ -341,13 +361,16 @@ export class LendingPoolConfigurator extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
freezeReserve(_reserve: string, overrides?: TransactionOverrides): Promise<ContractTransaction>; freezeReserve(
_reserve: string,
overrides?: TransactionOverrides
): Promise<ContractTransaction>;
initReserve( initReserve(
_reserve: string, _reserve: string,
_aTokenInstance: string, _aTokenImpl: string,
_stableDebtTokenAddress: string, _stableDebtTokenImpl: string,
_variableDebtTokenAddress: string, _variableDebtTokenImpl: string,
_underlyingAssetDecimals: BigNumberish, _underlyingAssetDecimals: BigNumberish,
_interestRateStrategyAddress: string, _interestRateStrategyAddress: string,
overrides?: TransactionOverrides overrides?: TransactionOverrides
@ -392,7 +415,10 @@ export class LendingPoolConfigurator extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
unfreezeReserve(_reserve: string, overrides?: TransactionOverrides): Promise<ContractTransaction>; unfreezeReserve(
_reserve: string,
overrides?: TransactionOverrides
): Promise<ContractTransaction>;
updateAToken( updateAToken(
_reserve: string, _reserve: string,
@ -403,7 +429,10 @@ export class LendingPoolConfigurator extends Contract {
filters: { filters: {
BorrowingDisabledOnReserve(_reserve: string | null): EventFilter; BorrowingDisabledOnReserve(_reserve: string | null): EventFilter;
BorrowingEnabledOnReserve(_reserve: null, _stableRateEnabled: null): EventFilter; BorrowingEnabledOnReserve(
_reserve: null,
_stableRateEnabled: null
): EventFilter;
ReserveActivated(_reserve: string | null): EventFilter; ReserveActivated(_reserve: string | null): EventFilter;
@ -427,14 +456,22 @@ export class LendingPoolConfigurator extends Contract {
ReserveInitialized( ReserveInitialized(
_reserve: string | null, _reserve: string | null,
_aToken: string | null, _aToken: string | null,
_stableDebtToken: null,
_variableDebtToken: null,
_interestRateStrategyAddress: null _interestRateStrategyAddress: null
): EventFilter; ): EventFilter;
ReserveInterestRateStrategyChanged(_reserve: null, _strategy: null): EventFilter; ReserveInterestRateStrategyChanged(
_reserve: null,
_strategy: null
): EventFilter;
ReserveLiquidationBonusChanged(_reserve: null, _bonus: null): EventFilter; ReserveLiquidationBonusChanged(_reserve: null, _bonus: null): EventFilter;
ReserveLiquidationThresholdChanged(_reserve: null, _threshold: null): EventFilter; ReserveLiquidationThresholdChanged(
_reserve: null,
_threshold: null
): EventFilter;
ReserveUnfreezed(_reserve: string | null): EventFilter; ReserveUnfreezed(_reserve: string | null): EventFilter;
@ -474,9 +511,9 @@ export class LendingPoolConfigurator extends Contract {
initReserve( initReserve(
_reserve: string, _reserve: string,
_aTokenInstance: string, _aTokenImpl: string,
_stableDebtTokenAddress: string, _stableDebtTokenImpl: string,
_variableDebtTokenAddress: string, _variableDebtTokenImpl: string,
_underlyingAssetDecimals: BigNumberish, _underlyingAssetDecimals: BigNumberish,
_interestRateStrategyAddress: string _interestRateStrategyAddress: string
): Promise<BigNumber>; ): Promise<BigNumber>;
@ -487,13 +524,22 @@ export class LendingPoolConfigurator extends Contract {
poolAddressesProvider(): Promise<BigNumber>; poolAddressesProvider(): Promise<BigNumber>;
setLiquidationBonus(_reserve: string, _bonus: BigNumberish): Promise<BigNumber>; setLiquidationBonus(
_reserve: string,
_bonus: BigNumberish
): Promise<BigNumber>;
setLiquidationThreshold(_reserve: string, _threshold: BigNumberish): Promise<BigNumber>; setLiquidationThreshold(
_reserve: string,
_threshold: BigNumberish
): Promise<BigNumber>;
setLtv(_reserve: string, _ltv: BigNumberish): Promise<BigNumber>; setLtv(_reserve: string, _ltv: BigNumberish): Promise<BigNumber>;
setReserveDecimals(_reserve: string, _decimals: BigNumberish): Promise<BigNumber>; setReserveDecimals(
_reserve: string,
_decimals: BigNumberish
): Promise<BigNumber>;
setReserveInterestRateStrategyAddress( setReserveInterestRateStrategyAddress(
_reserve: string, _reserve: string,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -69,7 +69,7 @@ interface MockATokenInterface extends Interface {
}>; }>;
mintOnDeposit: TypedFunctionDescription<{ mintOnDeposit: TypedFunctionDescription<{
encode([_account, _amount]: [string, BigNumberish]): string; encode([_user, _amount]: [string, BigNumberish]): string;
}>; }>;
name: TypedFunctionDescription<{ encode([]: []): string }>; name: TypedFunctionDescription<{ encode([]: []): string }>;
@ -278,7 +278,7 @@ export class MockAToken extends Contract {
isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>; isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>;
mintOnDeposit( mintOnDeposit(
_account: string, _user: string,
_amount: BigNumberish, _amount: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -391,7 +391,7 @@ export class MockAToken extends Contract {
isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>; isTransferAllowed(_user: string, _amount: BigNumberish): Promise<boolean>;
mintOnDeposit( mintOnDeposit(
_account: string, _user: string,
_amount: BigNumberish, _amount: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -554,7 +554,7 @@ export class MockAToken extends Contract {
isTransferAllowed(_user: string, _amount: BigNumberish): Promise<BigNumber>; isTransferAllowed(_user: string, _amount: BigNumberish): Promise<BigNumber>;
mintOnDeposit(_account: string, _amount: BigNumberish): Promise<BigNumber>; mintOnDeposit(_user: string, _amount: BigNumberish): Promise<BigNumber>;
name(): Promise<BigNumber>; name(): Promise<BigNumber>;

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -171,4 +171,4 @@ const _abi = [
]; ];
const _bytecode = const _bytecode =
"0x60806040526000805460ff60a01b1916905534801561001d57600080fd5b506040516109663803806109668339818101604052602081101561004057600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556108f4806100726000396000f3fe6080604052600436106100385760003560e01c8063388f70f114610044578063405b019d14610072578063c72c4d101461014a5761003f565b3661003f57005b600080fd5b34801561005057600080fd5b506100706004803603602081101561006757600080fd5b5035151561017b565b005b34801561007e57600080fd5b50610070600480360360a081101561009557600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610199945050505050565b34801561015657600080fd5b5061015f61034e565b604080516001600160a01b039092168252519081900360200190f35b60008054911515600160a01b0260ff60a01b19909216919091179055565b846101a4308261035d565b8411156101f8576040805162461bcd60e51b815260206004820181905260248201527f496e76616c69642062616c616e636520666f722074686520636f6e7472616374604482015290519081900360640190fd5b600054600160a01b900460ff161561025957604080516001600160a01b03881681526020810186905280820185905290517f816f6a6bc084e1996be1a831afa1af30763d0501b6b43b9e1922a11f347366d79181900360600190a150610347565b61026b866001600160a01b0316610412565b6102e257806001600160a01b031663a0712d68846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156102b557600080fd5b505af11580156102c9573d6000803e3d6000fd5b505050506040513d60208110156102df57600080fd5b50505b6102fc86866102f7878763ffffffff61043716565b610498565b604080516001600160a01b03881681526020810186905280820185905290517f7d94e9d0c906b8d7b2b52a581b9e9ba728aa6f8cd8532bd87243d193f47401be9181900360600190a1505b5050505050565b6000546001600160a01b031681565b6000610371826001600160a01b0316610412565b1561038757506001600160a01b0382163161040c565b816001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156103dd57600080fd5b505afa1580156103f1573d6000803e3d6000fd5b505050506040513d602081101561040757600080fd5b505190505b92915050565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14919050565b600082820183811015610491576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6104a38284836104a8565b505050565b6104a36001600160a01b038316848363ffffffff6104c216565b806104cc576104a3565b6104d583610412565b15610581576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d806000811461052a576040519150601f19603f3d011682016040523d82523d6000602084013e61052f565b606091505b505090508061057b576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b506104a3565b6104a36001600160a01b038416838363ffffffff61059b16565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526104a3908490606061063d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166106999092919063ffffffff16565b8051909150156104a35780806020019051602081101561065c57600080fd5b50516104a35760405162461bcd60e51b815260040180806020018281038252602a815260200180610895602a913960400191505060405180910390fd5b60606106a884846000856106b0565b949350505050565b60606106bb8561085b565b61070c576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061074b5780518252601f19909201916020918201910161072c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146107ad576040519150601f19603f3d011682016040523d82523d6000602084013e6107b2565b606091505b509150915081156107c65791506106a89050565b8051156107d65780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610820578181015183820152602001610808565b50505050905090810190601f16801561084d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906106a857505015159291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220516cc8692ecd6324970df77ee93fb747bff000502ddb41784874b25d58bf1f1764736f6c63430006080033"; "0x60806040526000805460ff60a01b1916905534801561001d57600080fd5b506040516108073803806108078339818101604052602081101561004057600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610795806100726000396000f3fe6080604052600436106100385760003560e01c8063388f70f114610044578063405b019d14610072578063c72c4d101461014a5761003f565b3661003f57005b600080fd5b34801561005057600080fd5b506100706004803603602081101561006757600080fd5b5035151561017b565b005b34801561007e57600080fd5b50610070600480360360a081101561009557600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a0810160808201356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610199945050505050565b34801561015657600080fd5b5061015f6103a2565b604080516001600160a01b039092168252519081900360200190f35b60008054911515600160a01b0260ff60a01b19909216919091179055565b604080516370a0823160e01b8152306004820152905186916001600160a01b038316916370a0823191602480820192602092909190829003018186803b1580156101e257600080fd5b505afa1580156101f6573d6000803e3d6000fd5b505050506040513d602081101561020c57600080fd5b5051841115610262576040805162461bcd60e51b815260206004820181905260248201527f496e76616c69642062616c616e636520666f722074686520636f6e7472616374604482015290519081900360640190fd5b600054600160a01b900460ff16156102c357604080516001600160a01b03881681526020810186905280820185905290517f816f6a6bc084e1996be1a831afa1af30763d0501b6b43b9e1922a11f347366d79181900360600190a15061039b565b806001600160a01b031663a0712d68846040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b15801561030957600080fd5b505af115801561031d573d6000803e3d6000fd5b505050506040513d602081101561033357600080fd5b506103509050868661034b878763ffffffff6103b116565b610412565b604080516001600160a01b03881681526020810186905280820185905290517f7d94e9d0c906b8d7b2b52a581b9e9ba728aa6f8cd8532bd87243d193f47401be9181900360600190a1505b5050505050565b6000546001600160a01b031681565b60008282018381101561040b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61041d828483610422565b505050565b61041d6001600160a01b038316848363ffffffff61043c16565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261041d90849060606104de826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661053a9092919063ffffffff16565b80519091501561041d578080602001905160208110156104fd57600080fd5b505161041d5760405162461bcd60e51b815260040180806020018281038252602a815260200180610736602a913960400191505060405180910390fd5b60606105498484600085610551565b949350505050565b606061055c856106fc565b6105ad576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106105ec5780518252601f1990920191602091820191016105cd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461064e576040519150601f19603f3d011682016040523d82523d6000602084013e610653565b606091505b509150915081156106675791506105499050565b8051156106775780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156106c15781810151838201526020016106a9565b50505050905090810190601f1680156106ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061054957505015159291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220a2ae2dcf10cb7c76a949954c150b9f788279726674dc38c1c4d33c369af7ea6864736f6c63430006080033";

File diff suppressed because one or more lines are too long

View File

@ -121,4 +121,4 @@ const _abi = [
]; ];
const _bytecode = const _bytecode =
"0x608060405234801561001057600080fd5b506040516106b53803806106b58339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610650806100656000396000f3fe6080604052600436106100295760003560e01c806329589f611461002e5780634f1b86eb146100ec575b600080fd5b6100da600480360361010081101561004557600080fd5b6001600160a01b0382358116926020810135926040820135831692606083013581169260808101359260a08201359260c0830135169190810190610100810160e082013564010000000081111561009b57600080fd5b8201836020820111156100ad57600080fd5b803590602001918460018302840111640100000000831117156100cf57600080fd5b50909250905061011d565b60408051918252519081900360200190f35b3480156100f857600080fd5b50610101610266565b604080516001600160a01b039092168252519081900360200190f35b600080546040805163140e25ad60e31b8152670de0b6b3a7640000600482015290516001600160a01b039092169163a0712d689160248082019260209290919082900301818787803b15801561017257600080fd5b505af1158015610186573d6000803e3d6000fd5b505050506040513d602081101561019c57600080fd5b50516101ef576040805162461bcd60e51b815260206004820181905260248201527f54524144455f574954485f48494e542e205265766572746564206d696e742829604482015290519081900360640190fd5b6101f7610275565b6001600160a01b03168a6001600160a01b03161461022a5761022a6001600160a01b038b1633308c63ffffffff61028d16565b60005461024f906001600160a01b031633670de0b6b3a764000063ffffffff6102ed16565b50670de0b6b3a76400009998505050505050505050565b6000546001600160a01b031681565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526102e7908590610344565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261033f908490610344565b505050565b6060610399826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166103f59092919063ffffffff16565b80519091501561033f578080602001905160208110156103b857600080fd5b505161033f5760405162461bcd60e51b815260040180806020018281038252602a8152602001806105f1602a913960400191505060405180910390fd5b6060610404848460008561040c565b949350505050565b6060610417856105b7565b610468576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106104a75780518252601f199092019160209182019101610488565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114610509576040519150601f19603f3d011682016040523d82523d6000602084013e61050e565b606091505b509150915081156105225791506104049050565b8051156105325780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561057c578181015183820152602001610564565b50505050905090810190601f1680156105a95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061040457505015159291505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a264697066735822122099f447de7dc340bb9fad6029140c928c6fde2d7c3b3f7bb83714a93e38cb1f2f64736f6c63430006080033"; "0x608060405234801561001057600080fd5b506040516105fd3803806105fd8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610598806100656000396000f3fe6080604052600436106100295760003560e01c806329589f611461002e5780634f1b86eb146100ec575b600080fd5b6100da600480360361010081101561004557600080fd5b6001600160a01b0382358116926020810135926040820135831692606083013581169260808101359260a08201359260c0830135169190810190610100810160e082013564010000000081111561009b57600080fd5b8201836020820111156100ad57600080fd5b803590602001918460018302840111640100000000831117156100cf57600080fd5b50909250905061011d565b60408051918252519081900360200190f35b3480156100f857600080fd5b50610101610266565b604080516001600160a01b039092168252519081900360200190f35b600080546040805163140e25ad60e31b8152670de0b6b3a7640000600482015290516001600160a01b039092169163a0712d689160248082019260209290919082900301818787803b15801561017257600080fd5b505af1158015610186573d6000803e3d6000fd5b505050506040513d602081101561019c57600080fd5b50516101ef576040805162461bcd60e51b815260206004820181905260248201527f54524144455f574954485f48494e542e205265766572746564206d696e742829604482015290519081900360640190fd5b6101f7610275565b6001600160a01b03168a6001600160a01b03161461022a5761022a6001600160a01b038b1633308c63ffffffff61028d16565b60005461024f906001600160a01b031633670de0b6b3a764000063ffffffff6102ed16565b50670de0b6b3a76400009998505050505050505050565b6000546001600160a01b031681565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526102e7908590610344565b50505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261033f908490610344565b505050565b610356826001600160a01b03166104fc565b6103a7576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106103e55780518252601f1990920191602091820191016103c6565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610447576040519150601f19603f3d011682016040523d82523d6000602084013e61044c565b606091505b5091509150816104a3576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156102e7578080602001905160208110156104bf57600080fd5b50516102e75760405162461bcd60e51b815260040180806020018281038252602a815260200180610539602a913960400191505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061053057508115155b94935050505056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212204217cd7d546f66051c30fdaa4e283314470f9c5edda974b8ca382dab7b05781364736f6c63430006080033";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -12,6 +12,8 @@ import {
interface StableDebtTokenInterface extends Interface { interface StableDebtTokenInterface extends Interface {
functions: { functions: {
DEBT_TOKEN_REVISION: TypedFunctionDescription<{ encode([]: []): string }>;
allowance: TypedFunctionDescription<{ allowance: TypedFunctionDescription<{
encode([owner, spender]: [string, string]): string; encode([owner, spender]: [string, string]): string;
}>; }>;
@ -48,11 +50,11 @@ interface StableDebtTokenInterface extends Interface {
encode([spender, addedValue]: [string, BigNumberish]): string; encode([spender, addedValue]: [string, BigNumberish]): string;
}>; }>;
init: TypedFunctionDescription<{ initialize: TypedFunctionDescription<{
encode([_name, _symbol, _decimals]: [ encode([_decimals, _name, _symbol]: [
BigNumberish,
string, string,
string, string
BigNumberish
]): string; ]): string;
}>; }>;
@ -148,6 +150,8 @@ export class StableDebtToken extends Contract {
interface: StableDebtTokenInterface; interface: StableDebtTokenInterface;
functions: { functions: {
DEBT_TOKEN_REVISION(): Promise<BigNumber>;
allowance(owner: string, spender: string): Promise<BigNumber>; allowance(owner: string, spender: string): Promise<BigNumber>;
approve( approve(
@ -184,10 +188,10 @@ export class StableDebtToken extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string,
_decimals: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -222,6 +226,8 @@ export class StableDebtToken extends Contract {
underlyingAssetAddress(): Promise<string>; underlyingAssetAddress(): Promise<string>;
}; };
DEBT_TOKEN_REVISION(): Promise<BigNumber>;
allowance(owner: string, spender: string): Promise<BigNumber>; allowance(owner: string, spender: string): Promise<BigNumber>;
approve( approve(
@ -258,10 +264,10 @@ export class StableDebtToken extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string,
_decimals: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -323,6 +329,8 @@ export class StableDebtToken extends Contract {
}; };
estimate: { estimate: {
DEBT_TOKEN_REVISION(): Promise<BigNumber>;
allowance(owner: string, spender: string): Promise<BigNumber>; allowance(owner: string, spender: string): Promise<BigNumber>;
approve(spender: string, _amount: BigNumberish): Promise<BigNumber>; approve(spender: string, _amount: BigNumberish): Promise<BigNumber>;
@ -349,10 +357,10 @@ export class StableDebtToken extends Contract {
addedValue: BigNumberish addedValue: BigNumberish
): Promise<BigNumber>; ): Promise<BigNumber>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string
_decimals: BigNumberish
): Promise<BigNumber>; ): Promise<BigNumber>;
mint( mint(

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -12,6 +12,8 @@ import {
interface VariableDebtTokenInterface extends Interface { interface VariableDebtTokenInterface extends Interface {
functions: { functions: {
DEBT_TOKEN_REVISION: TypedFunctionDescription<{ encode([]: []): string }>;
allowance: TypedFunctionDescription<{ allowance: TypedFunctionDescription<{
encode([owner, spender]: [string, string]): string; encode([owner, spender]: [string, string]): string;
}>; }>;
@ -40,11 +42,11 @@ interface VariableDebtTokenInterface extends Interface {
encode([spender, addedValue]: [string, BigNumberish]): string; encode([spender, addedValue]: [string, BigNumberish]): string;
}>; }>;
init: TypedFunctionDescription<{ initialize: TypedFunctionDescription<{
encode([_name, _symbol, _decimals]: [ encode([_decimals, _name, _symbol]: [
BigNumberish,
string, string,
string, string
BigNumberish
]): string; ]): string;
}>; }>;
@ -137,6 +139,8 @@ export class VariableDebtToken extends Contract {
interface: VariableDebtTokenInterface; interface: VariableDebtTokenInterface;
functions: { functions: {
DEBT_TOKEN_REVISION(): Promise<BigNumber>;
allowance(owner: string, spender: string): Promise<BigNumber>; allowance(owner: string, spender: string): Promise<BigNumber>;
approve( approve(
@ -169,10 +173,10 @@ export class VariableDebtToken extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string,
_decimals: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -206,6 +210,8 @@ export class VariableDebtToken extends Contract {
underlyingAssetAddress(): Promise<string>; underlyingAssetAddress(): Promise<string>;
}; };
DEBT_TOKEN_REVISION(): Promise<BigNumber>;
allowance(owner: string, spender: string): Promise<BigNumber>; allowance(owner: string, spender: string): Promise<BigNumber>;
approve( approve(
@ -238,10 +244,10 @@ export class VariableDebtToken extends Contract {
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string,
_decimals: BigNumberish,
overrides?: TransactionOverrides overrides?: TransactionOverrides
): Promise<ContractTransaction>; ): Promise<ContractTransaction>;
@ -303,6 +309,8 @@ export class VariableDebtToken extends Contract {
}; };
estimate: { estimate: {
DEBT_TOKEN_REVISION(): Promise<BigNumber>;
allowance(owner: string, spender: string): Promise<BigNumber>; allowance(owner: string, spender: string): Promise<BigNumber>;
approve(spender: string, _amount: BigNumberish): Promise<BigNumber>; approve(spender: string, _amount: BigNumberish): Promise<BigNumber>;
@ -325,10 +333,10 @@ export class VariableDebtToken extends Contract {
addedValue: BigNumberish addedValue: BigNumberish
): Promise<BigNumber>; ): Promise<BigNumber>;
init( initialize(
_decimals: BigNumberish,
_name: string, _name: string,
_symbol: string, _symbol: string
_decimals: BigNumberish
): Promise<BigNumber>; ): Promise<BigNumber>;
mint(_user: string, _amount: BigNumberish): Promise<BigNumber>; mint(_user: string, _amount: BigNumberish): Promise<BigNumber>;

File diff suppressed because one or more lines are too long

View File

@ -134,4 +134,4 @@ const _abi = [
]; ];
const _bytecode = const _bytecode =
"0x608060405234801561001057600080fd5b506040516109863803806109868339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610921806100656000396000f3fe6080604052600436106100385760003560e01c80639e3c930914610083578063b59b28ef1461014f578063f7888aec146102d35761007e565b3661007e5761004633610320565b61007c576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b34801561008f57600080fd5b506100b6600480360360208110156100a657600080fd5b50356001600160a01b031661035c565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100fa5781810151838201526020016100e2565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610139578181015183820152602001610121565b5050505090500194505050505060405180910390f35b34801561015b57600080fd5b506102836004803603604081101561017257600080fd5b81019060208101813564010000000081111561018d57600080fd5b82018360208201111561019f57600080fd5b803590602001918460208302840111640100000000831117156101c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561021157600080fd5b82018360208201111561022357600080fd5b8035906020019184602083028401116401000000008311171561024557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506106a0945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102bf5781810151838201526020016102a7565b505050509050019250505060405180910390f35b3480156102df57600080fd5b5061030e600480360360408110156102f657600080fd5b506001600160a01b038135811691602001351661081c565b60408051918252519081900360200190f35b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061035457508115155b949350505050565b60608060008060009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ae57600080fd5b505afa1580156103c2573d6000803e3d6000fd5b505050506040513d60208110156103d857600080fd5b505160408051630240bc6b60e21b815290519192506060916001600160a01b03841691630902f1ac916004808301926000929190829003018186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561045d57600080fd5b810190808051604051939291908464010000000082111561047d57600080fd5b90830190602082018581111561049257600080fd5b82518660208202830111640100000000821117156104af57600080fd5b82525081516020918201928201910280838360005b838110156104dc5781810151838201526020016104c4565b5050505090500160405250505090506060815167ffffffffffffffff8111801561050557600080fd5b5060405190808252806020026020018201604052801561052f578160200160208202803683370190505b50905060005b8251811015610694576000846001600160a01b0316633e15014185848151811061055b57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b031681526020019150506101406040518083038186803b1580156105aa57600080fd5b505afa1580156105be573d6000803e3d6000fd5b505050506040513d6101408110156105d557600080fd5b5061010001519050806106025760008383815181106105f057fe5b6020026020010181815250505061068c565b61062784838151811061061157fe5b60200260200101516001600160a01b03166108c6565b15610666576106498885848151811061063c57fe5b602002602001015161081c565b83838151811061065557fe5b60200260200101818152505061068a565b876001600160a01b03163183838151811061067d57fe5b6020026020010181815250505b505b600101610535565b50909350915050915091565b606080825184510267ffffffffffffffff811180156106be57600080fd5b506040519080825280602002602001820160405280156106e8578160200160208202803683370190505b50905060005b84518110156108125760005b845181101561080957600085518302905061071a86838151811061061157fe5b1561075c5786838151811061072b57fe5b60200260200101516001600160a01b031631848383018151811061074b57fe5b602002602001018181525050610800565b61078186838151811061076b57fe5b60200260200101516001600160a01b0316610320565b6107c2576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22faa27a5a2a760991b604482015290519081900360640190fd5b6107e58784815181106107d157fe5b602002602001015187848151811061063c57fe5b84838301815181106107f357fe5b6020026020010181815250505b506001016106fa565b506001016106ee565b5090505b92915050565b6000610830826001600160a01b0316610320565b156108be57816001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561088b57600080fd5b505afa15801561089f573d6000803e3d6000fd5b505050506040513d60208110156108b557600080fd5b50519050610816565b506000610816565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1491905056fea2646970667358221220ba894c2eba77f05be9d541a00a65fbec4e5924a19f513c8f596076cb70bd139c64736f6c63430006080033"; "0x608060405234801561001057600080fd5b506040516108bc3803806108bc8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055610857806100656000396000f3fe6080604052600436106100385760003560e01c80639e3c930914610083578063b59b28ef1461014f578063f7888aec146102d35761007e565b3661007e5761004633610320565b61007c576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b34801561008f57600080fd5b506100b6600480360360208110156100a657600080fd5b50356001600160a01b031661035c565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100fa5781810151838201526020016100e2565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610139578181015183820152602001610121565b5050505090500194505050505060405180910390f35b34801561015b57600080fd5b506102836004803603604081101561017257600080fd5b81019060208101813564010000000081111561018d57600080fd5b82018360208201111561019f57600080fd5b803590602001918460208302840111640100000000831117156101c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561021157600080fd5b82018360208201111561022357600080fd5b8035906020019184602083028401116401000000008311171561024557600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061064d945050505050565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102bf5781810151838201526020016102a7565b505050509050019250505060405180910390f35b3480156102df57600080fd5b5061030e600480360360408110156102f657600080fd5b506001600160a01b0381358116916020013516610777565b60408051918252519081900360200190f35b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061035457508115155b949350505050565b60608060008060009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156103ae57600080fd5b505afa1580156103c2573d6000803e3d6000fd5b505050506040513d60208110156103d857600080fd5b505160408051630240bc6b60e21b815290519192506060916001600160a01b03841691630902f1ac916004808301926000929190829003018186803b15801561042057600080fd5b505afa158015610434573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561045d57600080fd5b810190808051604051939291908464010000000082111561047d57600080fd5b90830190602082018581111561049257600080fd5b82518660208202830111640100000000821117156104af57600080fd5b82525081516020918201928201910280838360005b838110156104dc5781810151838201526020016104c4565b5050505090500160405250505090506060815167ffffffffffffffff8111801561050557600080fd5b5060405190808252806020026020018201604052801561052f578160200160208202803683370190505b50905060005b8251811015610641576000846001600160a01b0316633e15014185848151811061055b57fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b031681526020019150506101406040518083038186803b1580156105aa57600080fd5b505afa1580156105be573d6000803e3d6000fd5b505050506040513d6101408110156105d557600080fd5b5061010001519050806106025760008383815181106105f057fe5b60200260200101818152505050610639565b61061f8885848151811061061257fe5b6020026020010151610777565b83838151811061062b57fe5b602002602001018181525050505b600101610535565b50909350915050915091565b606080825184510267ffffffffffffffff8111801561066b57600080fd5b50604051908082528060200260200182016040528015610695578160200160208202803683370190505b50905060005b845181101561076d5760005b84518110156107645760008551830290506106dd8683815181106106c757fe5b60200260200101516001600160a01b0316610320565b61071e576040805162461bcd60e51b815260206004820152600d60248201526c24a72b20a624a22faa27a5a2a760991b604482015290519081900360640190fd5b61074187848151811061072d57fe5b602002602001015187848151811061061257fe5b848383018151811061074f57fe5b602002602001018181525050506001016106a7565b5060010161069b565b5090505b92915050565b600061078b826001600160a01b0316610320565b1561081957816001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156107e657600080fd5b505afa1580156107fa573d6000803e3d6000fd5b505050506040513d602081101561081057600080fd5b50519050610771565b50600061077156fea26469706673582212200c49fc45bf8d6aedaf3cd09ab09eb29f7e718ec1bbd6342feaa0ae4422f04e7464736f6c63430006080033";