Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 16885261 | 542 days ago | IN | 0 ETH | 0.09765921 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ConnectV2AaveV2Import
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity ^0.8.17; import { TokenInterface } from "../common/interfaces.sol"; import { AaveInterface, ATokenInterface } from "./interfaces.sol"; import { Helpers } from "./helpers.sol"; import { Events } from "./events.sol"; abstract contract AaveResolver is Helpers, Events { function _TransferAtokens( uint _length, AaveInterface aave, ATokenInterface[] memory atokenContracts, uint[] memory amts, address[] memory tokens, address userAccount ) internal { for (uint i = 0; i < _length; i++) { if (amts[i] > 0) { uint256 _amt = amts[i]; require(atokenContracts[i].transferFrom(userAccount, address(this), _amt), "allowance?"); if (!getIsColl(tokens[i], address(this))) { aave.setUserUseReserveAsCollateral(tokens[i], true); } } } } function _borrowOne(AaveInterface aave, address token, uint amt, uint rateMode) private { aave.borrow(token, amt, rateMode, referalCode, address(this)); } function _paybackBehalfOne(AaveInterface aave, address token, uint amt, uint rateMode, address user) private { aave.repay(token, amt, rateMode, user); } function _BorrowStable( uint _length, AaveInterface aave, address[] memory tokens, uint256[] memory amts ) internal { for (uint i = 0; i < _length; i++) { if (amts[i] > 0) { _borrowOne(aave, tokens[i], amts[i], 1); } } } function _BorrowVariable( uint _length, AaveInterface aave, address[] memory tokens, uint256[] memory amts ) internal { for (uint i = 0; i < _length; i++) { if (amts[i] > 0) { _borrowOne(aave, tokens[i], amts[i], 2); } } } function _PaybackStable( uint _length, AaveInterface aave, address[] memory tokens, uint256[] memory amts, address user ) internal { for (uint i = 0; i < _length; i++) { if (amts[i] > 0) { _paybackBehalfOne(aave, tokens[i], amts[i], 1, user); } } } function _PaybackVariable( uint _length, AaveInterface aave, address[] memory tokens, uint256[] memory amts, address user ) internal { for (uint i = 0; i < _length; i++) { if (amts[i] > 0) { _paybackBehalfOne(aave, tokens[i], amts[i], 2, user); } } } function getBorrowAmount(address _token, address userAccount) internal view returns ( uint256 stableBorrow, uint256 variableBorrow ) { ( , address stableDebtTokenAddress, address variableDebtTokenAddress ) = aaveData.getReserveTokensAddresses(_token); stableBorrow = ATokenInterface(stableDebtTokenAddress).balanceOf(userAccount); variableBorrow = ATokenInterface(variableDebtTokenAddress).balanceOf(userAccount); } } contract AaveImportHelpers is AaveResolver { struct ImportData { address[] _supplyTokens; address[] _borrowTokens; ATokenInterface[] aTokens; uint[] supplyAmts; uint[] supplySplitAmts; uint[] supplyFinalAmts; uint[] variableBorrowAmts; uint[] variableBorrowFinalAmts; uint[] variableBorrowSplitAmts; uint[] variableBorrowAmtsWithFee; uint[] variableBorrowFinalAmtsWithFee; uint[] variableBorrowSplitAmtsWithFee; uint[] totalBorrowAmts; uint[] totalBorrowAmtsFinalAmts; uint[] totalBorrowAmtsSplitAmts; uint[] totalBorrowAmtsWithFee; uint[] totalBorrowAmtsFinalAmtsWithFee; uint[] totalBorrowAmtsSplitAmtsWithFee; uint[] stableBorrowAmts; uint[] stableBorrowSplitAmts; uint[] stableBorrowFinalAmts; uint[] stableBorrowAmtsWithFee; uint[] stableBorrowSplitAmtsWithFee; uint[] stableBorrowFinalAmtsWithFee; } struct ImportInputData { address[] supplyTokens; address[] borrowTokens; bool convertStable; uint256 times; bool isFlash; uint[] flashFees; } function getBorrowAmounts ( address userAccount, AaveInterface aave, ImportInputData memory inputData, ImportData memory data ) internal returns(ImportData memory) { if (inputData.borrowTokens.length > 0) { data._borrowTokens = new address[](inputData.borrowTokens.length); data.variableBorrowAmts = new uint[](inputData.borrowTokens.length); data.variableBorrowSplitAmts = new uint256[](inputData.borrowTokens.length); data.variableBorrowFinalAmts = new uint256[](inputData.borrowTokens.length); data.variableBorrowAmtsWithFee = new uint[](inputData.borrowTokens.length); data.variableBorrowFinalAmtsWithFee = new uint256[](inputData.borrowTokens.length); data.variableBorrowSplitAmtsWithFee = new uint256[](inputData.borrowTokens.length); data.stableBorrowAmts = new uint[](inputData.borrowTokens.length); data.stableBorrowSplitAmts = new uint256[](inputData.borrowTokens.length); data.stableBorrowFinalAmts = new uint256[](inputData.borrowTokens.length); data.stableBorrowAmtsWithFee = new uint[](inputData.borrowTokens.length); data.stableBorrowSplitAmtsWithFee = new uint256[](inputData.borrowTokens.length); data.stableBorrowFinalAmtsWithFee = new uint256[](inputData.borrowTokens.length); data.totalBorrowAmts = new uint[](inputData.borrowTokens.length); data.totalBorrowAmtsWithFee = new uint[](inputData.borrowTokens.length); data.totalBorrowAmtsSplitAmts = new uint256[](inputData.borrowTokens.length); data.totalBorrowAmtsFinalAmts = new uint256[](inputData.borrowTokens.length); data.totalBorrowAmtsFinalAmtsWithFee = new uint256[](inputData.borrowTokens.length); data.totalBorrowAmtsSplitAmtsWithFee = new uint256[](inputData.borrowTokens.length); if (inputData.times > 0) { for (uint i = 0; i < inputData.borrowTokens.length; i++) { for (uint j = i; j < inputData.borrowTokens.length; j++) { if (j != i) { require(inputData.borrowTokens[i] != inputData.borrowTokens[j], "token-repeated"); } } } for (uint256 i = 0; i < inputData.borrowTokens.length; i++) { address _token = inputData.borrowTokens[i] == ethAddr ? wethAddr : inputData.borrowTokens[i]; data._borrowTokens[i] = _token; ( data.stableBorrowAmts[i], data.variableBorrowAmts[i] ) = getBorrowAmount(_token, userAccount); if (data.variableBorrowAmts[i] != 0) { data.variableBorrowAmtsWithFee[i] = data.variableBorrowAmts[i] + inputData.flashFees[i]; } else { data.stableBorrowAmtsWithFee[i] = data.stableBorrowAmts[i] + inputData.flashFees[i]; } data.totalBorrowAmts[i] = data.stableBorrowAmts[i] + data.variableBorrowAmts[i]; data.totalBorrowAmtsWithFee[i] = data.stableBorrowAmtsWithFee[i] + data.variableBorrowAmtsWithFee[i]; if (data.totalBorrowAmts[i] > 0) { uint256 _amt = inputData.times == 1 ? data.totalBorrowAmts[i] : type(uint256).max; TokenInterface(_token).approve(address(aave), _amt); } } if (inputData.times == 1) { data.variableBorrowFinalAmts = data.variableBorrowAmts; data.stableBorrowFinalAmts = data.stableBorrowAmts; data.totalBorrowAmtsFinalAmts = data.totalBorrowAmts; data.variableBorrowFinalAmtsWithFee = data.variableBorrowAmtsWithFee; data.stableBorrowFinalAmtsWithFee = data.stableBorrowAmtsWithFee; data.totalBorrowAmtsFinalAmtsWithFee = data.totalBorrowAmtsWithFee; } else { for (uint i = 0; i < data.totalBorrowAmts.length; i++) { data.variableBorrowSplitAmts[i] = data.variableBorrowAmts[i] / inputData.times; data.variableBorrowFinalAmts[i] = data.variableBorrowAmts[i] - (data.variableBorrowSplitAmts[i] * (inputData.times - 1)); data.stableBorrowSplitAmts[i] = data.stableBorrowAmts[i] / inputData.times; data.stableBorrowFinalAmts[i] = data.stableBorrowAmts[i] - (data.stableBorrowSplitAmts[i] * (inputData.times - 1)); data.totalBorrowAmtsSplitAmts[i] = data.totalBorrowAmts[i] / inputData.times; data.totalBorrowAmtsFinalAmts[i] = data.totalBorrowAmts[i] - (data.totalBorrowAmtsSplitAmts[i] * (inputData.times - 1)); data.variableBorrowSplitAmtsWithFee[i] = data.variableBorrowAmtsWithFee[i] / inputData.times; data.variableBorrowFinalAmtsWithFee[i] = data.variableBorrowAmtsWithFee[i] - (data.variableBorrowSplitAmtsWithFee[i] * (inputData.times - 1)); data.stableBorrowSplitAmtsWithFee[i] = data.stableBorrowAmtsWithFee[i] / inputData.times; data.stableBorrowFinalAmtsWithFee[i] = data.stableBorrowAmtsWithFee[i] - (data.stableBorrowSplitAmtsWithFee[i] * (inputData.times - 1)); data.totalBorrowAmtsSplitAmtsWithFee[i] = data.totalBorrowAmtsWithFee[i] / inputData.times; data.totalBorrowAmtsFinalAmtsWithFee[i] = data.totalBorrowAmtsWithFee[i] - (data.totalBorrowAmtsSplitAmtsWithFee[i] * (inputData.times - 1)); } } } } return data; } function getBorrowFinalAmounts ( address userAccount, ImportInputData memory inputData, ImportData memory data ) internal view returns( uint[] memory variableBorrowFinalAmts, uint[] memory variableBorrowFinalAmtsWithFee, uint[] memory stableBorrowFinalAmts, uint[] memory stableBorrowFinalAmtsWithFee, uint[] memory totalBorrowAmtsFinalAmts, uint[] memory totalBorrowAmtsFinalAmtsWithFee ) { if (inputData.borrowTokens.length > 0) { variableBorrowFinalAmts = new uint256[](inputData.borrowTokens.length); variableBorrowFinalAmtsWithFee = new uint256[](inputData.borrowTokens.length); stableBorrowFinalAmts = new uint256[](inputData.borrowTokens.length); stableBorrowFinalAmtsWithFee = new uint256[](inputData.borrowTokens.length); totalBorrowAmtsFinalAmts = new uint[](inputData.borrowTokens.length); totalBorrowAmtsFinalAmtsWithFee = new uint[](inputData.borrowTokens.length); if (inputData.times > 0) { for (uint i = 0; i < data._borrowTokens.length; i++) { address _token = data._borrowTokens[i]; ( stableBorrowFinalAmts[i], variableBorrowFinalAmts[i] ) = getBorrowAmount(_token, userAccount); if (variableBorrowFinalAmts[i] != 0) { variableBorrowFinalAmtsWithFee[i] = variableBorrowFinalAmts[i] + inputData.flashFees[i]; } else { stableBorrowFinalAmtsWithFee[i] = stableBorrowFinalAmts[i] + inputData.flashFees[i]; } totalBorrowAmtsFinalAmtsWithFee[i] = stableBorrowFinalAmts[i] + variableBorrowFinalAmts[i]; } } } } function getSupplyAmounts ( address userAccount, ImportInputData memory inputData, ImportData memory data ) internal view returns(ImportData memory) { data.supplyAmts = new uint[](inputData.supplyTokens.length); data._supplyTokens = new address[](inputData.supplyTokens.length); data.aTokens = new ATokenInterface[](inputData.supplyTokens.length); data.supplySplitAmts = new uint[](inputData.supplyTokens.length); data.supplyFinalAmts = new uint[](inputData.supplyTokens.length); for (uint i = 0; i < inputData.supplyTokens.length; i++) { for (uint j = i; j < inputData.supplyTokens.length; j++) { if (j != i) { require(inputData.supplyTokens[i] != inputData.supplyTokens[j], "token-repeated"); } } } for (uint i = 0; i < inputData.supplyTokens.length; i++) { address _token = inputData.supplyTokens[i] == ethAddr ? wethAddr : inputData.supplyTokens[i]; (address _aToken, ,) = aaveData.getReserveTokensAddresses(_token); data._supplyTokens[i] = _token; data.aTokens[i] = ATokenInterface(_aToken); data.supplyAmts[i] = data.aTokens[i].balanceOf(userAccount); } if ((inputData.times == 1 && inputData.isFlash) || inputData.times == 0) { data.supplyFinalAmts = data.supplyAmts; } else { for (uint i = 0; i < data.supplyAmts.length; i++) { uint _times = inputData.isFlash ? inputData.times : inputData.times + 1; data.supplySplitAmts[i] = data.supplyAmts[i] / _times; data.supplyFinalAmts[i] = data.supplyAmts[i] - (data.supplySplitAmts[i] * (_times - 1)); } } return data; } function getSupplyFinalAmounts( address userAccount, ImportInputData memory inputData, ImportData memory data ) internal view returns(uint[] memory supplyFinalAmts) { supplyFinalAmts = new uint[](inputData.supplyTokens.length); for (uint i = 0; i < data.aTokens.length; i++) { supplyFinalAmts[i] = data.aTokens[i].balanceOf(userAccount); } } } contract AaveImportResolver is AaveImportHelpers { function _importAave( address userAccount, ImportInputData memory inputData ) internal returns (string memory _eventName, bytes memory _eventParam) { require(inputData.supplyTokens.length > 0, "0-length-not-allowed"); ImportData memory data; AaveInterface aave = AaveInterface(aaveProvider.getLendingPool()); data = getBorrowAmounts(userAccount, aave, inputData, data); data = getSupplyAmounts(userAccount, inputData, data); if (!inputData.isFlash && inputData.times > 0) { _TransferAtokens( inputData.supplyTokens.length, aave, data.aTokens, data.supplySplitAmts, data._supplyTokens, userAccount ); } else if (inputData.times == 0) { _TransferAtokens( inputData.supplyTokens.length, aave, data.aTokens, data.supplyFinalAmts, data._supplyTokens, userAccount ); } for (uint i = 0; i < inputData.times; i++) { if (i == (inputData.times - 1)) { if (!inputData.isFlash && inputData.times == 1) { data.supplyFinalAmts = getSupplyFinalAmounts(userAccount, inputData, data); } if (inputData.times > 1) { ( , data.variableBorrowFinalAmtsWithFee, , data.stableBorrowFinalAmtsWithFee, , data.totalBorrowAmtsFinalAmtsWithFee ) = getBorrowFinalAmounts(userAccount, inputData, data); data.supplyFinalAmts = getSupplyFinalAmounts(userAccount, inputData, data); } _PaybackStable(inputData.borrowTokens.length, aave, data._borrowTokens, data.stableBorrowFinalAmts, userAccount); _PaybackVariable(inputData.borrowTokens.length, aave, data._borrowTokens, data.variableBorrowFinalAmts, userAccount); _TransferAtokens(inputData.supplyTokens.length, aave, data.aTokens, data.supplyFinalAmts, data._supplyTokens, userAccount); if (inputData.convertStable) { _BorrowVariable(inputData.borrowTokens.length, aave, data._borrowTokens, data.totalBorrowAmtsFinalAmtsWithFee); } else { _BorrowStable(inputData.borrowTokens.length, aave, data._borrowTokens, data.stableBorrowFinalAmtsWithFee); _BorrowVariable(inputData.borrowTokens.length, aave, data._borrowTokens, data.variableBorrowFinalAmtsWithFee); } } else { _PaybackStable(inputData.borrowTokens.length, aave, data._borrowTokens, data.stableBorrowSplitAmts, userAccount); _PaybackVariable(inputData.borrowTokens.length, aave, data._borrowTokens, data.variableBorrowSplitAmts, userAccount); _TransferAtokens(inputData.supplyTokens.length, aave, data.aTokens, data.supplySplitAmts, data._supplyTokens, userAccount); if (inputData.convertStable) { _BorrowVariable(inputData.borrowTokens.length, aave, data._borrowTokens, data.totalBorrowAmtsSplitAmtsWithFee); } else { _BorrowStable(inputData.borrowTokens.length, aave, data._borrowTokens, data.stableBorrowSplitAmtsWithFee); _BorrowVariable(inputData.borrowTokens.length, aave, data._borrowTokens, data.variableBorrowSplitAmtsWithFee); } } } _eventName = "LogAaveV2Import(address,bool,address[],address[],uint256[],uint256[],uint256[])"; _eventParam = abi.encode( userAccount, inputData.convertStable, inputData.supplyTokens, inputData.borrowTokens, data.supplyAmts, data.stableBorrowAmts, data.variableBorrowAmts ); } function importAave( address userAccount, ImportInputData memory inputData ) external payable returns (string memory _eventName, bytes memory _eventParam) { (_eventName, _eventParam) = _importAave(userAccount, inputData); } function migrateAave( ImportInputData memory inputData ) external payable returns (string memory _eventName, bytes memory _eventParam) { (_eventName, _eventParam) = _importAave(msg.sender, inputData); } } contract ConnectV2AaveV2Import is AaveImportResolver { string public constant name = "AaveV2-Import-v2"; }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.17; contract Events { event LogAaveV2Import( address indexed user, bool convertStable, address[] supplyTokens, address[] borrowTokens, uint[] supplyAmts, uint[] stableBorrowAmts, uint[] variableBorrowAmts ); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.17; import { Stores } from "../common/stores.sol"; import { AaveLendingPoolProviderInterface, AaveDataProviderInterface } from "./interfaces.sol"; abstract contract Helpers is Stores { /** * @dev Aave referal code */ uint16 constant internal referalCode = 3228; /** * @dev Aave Provider */ AaveLendingPoolProviderInterface constant internal aaveProvider = AaveLendingPoolProviderInterface(0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5); /** * @dev Aave Data Provider */ AaveDataProviderInterface constant internal aaveData = AaveDataProviderInterface(0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d); function getIsColl(address token, address user) internal view returns (bool isCol) { (, , , , , , , , isCol) = aaveData.getUserReserveData(token, user); } }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.17; interface AaveInterface { function deposit(address _asset, uint256 _amount, address _onBehalfOf, uint16 _referralCode) external; function withdraw(address _asset, uint256 _amount, address _to) external; function borrow( address _asset, uint256 _amount, uint256 _interestRateMode, uint16 _referralCode, address _onBehalfOf ) external; function repay(address _asset, uint256 _amount, uint256 _rateMode, address _onBehalfOf) external; function setUserUseReserveAsCollateral(address _asset, bool _useAsCollateral) external; function getUserAccountData(address user) external view returns ( uint256 totalCollateralETH, uint256 totalDebtETH, uint256 availableBorrowsETH, uint256 currentLiquidationThreshold, uint256 ltv, uint256 healthFactor ); } interface AaveLendingPoolProviderInterface { function getLendingPool() external view returns (address); } // Aave Protocol Data Provider interface AaveDataProviderInterface { function getUserReserveData(address _asset, address _user) external view returns ( uint256 currentATokenBalance, uint256 currentStableDebt, uint256 currentVariableDebt, uint256 principalStableDebt, uint256 scaledVariableDebt, uint256 stableBorrowRate, uint256 liquidityRate, uint40 stableRateLastUpdated, bool usageAsCollateralEnabled ); function getReserveConfigurationData(address asset) external view returns ( uint256 decimals, uint256 ltv, uint256 liquidationThreshold, uint256 liquidationBonus, uint256 reserveFactor, bool usageAsCollateralEnabled, bool borrowingEnabled, bool stableBorrowRateEnabled, bool isActive, bool isFrozen ); function getReserveTokensAddresses(address asset) external view returns ( address aTokenAddress, address stableDebtTokenAddress, address variableDebtTokenAddress ); } interface AaveAddressProviderRegistryInterface { function getAddressesProvidersList() external view returns (address[] memory); } interface ATokenInterface { function scaledBalanceOf(address _user) external view returns (uint256); function isTransferAllowed(address _user, uint256 _amount) external view returns (bool); function balanceOf(address _user) external view returns(uint256); function transferFrom(address, address, uint) external returns (bool); function allowance(address, address) external returns (uint256); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.17; interface TokenInterface { function approve(address, uint256) external; function transfer(address, uint) external; function transferFrom(address, address, uint) external; function deposit() external payable; function withdraw(uint) external; function balanceOf(address) external view returns (uint); function decimals() external view returns (uint); function totalSupply() external view returns (uint); function allowance(address owner, address spender) external view returns (uint256); } interface MemoryInterface { function getUint(uint id) external returns (uint num); function setUint(uint id, uint val) external; } interface InstaMapping { function cTokenMapping(address) external view returns (address); function gemJoinMapping(bytes32) external view returns (address); }
//SPDX-License-Identifier: MIT pragma solidity ^0.8.17; import { MemoryInterface, InstaMapping } from "./interfaces.sol"; abstract contract Stores { /** * @dev Return ethereum address */ address constant internal ethAddr = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE; /** * @dev Return Wrapped ETH address */ address constant internal wethAddr = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; /** * @dev Return memory variable address */ MemoryInterface constant internal instaMemory = MemoryInterface(0x8a5419CfC711B2343c17a6ABf4B2bAFaBb06957F); /** * @dev Return InstaDApp Mapping Addresses */ InstaMapping constant internal instaMapping = InstaMapping(0xe81F70Cc7C0D46e12d70efc60607F16bbD617E88); /** * @dev Get Uint value from InstaMemory Contract. */ function getUint(uint getId, uint val) internal returns (uint returnVal) { returnVal = getId == 0 ? val : instaMemory.getUint(getId); } /** * @dev Set Uint value in InstaMemory Contract. */ function setUint(uint setId, uint val) virtual internal { if (setId != 0) instaMemory.setUint(setId, val); } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"convertStable","type":"bool"},{"indexed":false,"internalType":"address[]","name":"supplyTokens","type":"address[]"},{"indexed":false,"internalType":"address[]","name":"borrowTokens","type":"address[]"},{"indexed":false,"internalType":"uint256[]","name":"supplyAmts","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"stableBorrowAmts","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"variableBorrowAmts","type":"uint256[]"}],"name":"LogAaveV2Import","type":"event"},{"inputs":[{"internalType":"address","name":"userAccount","type":"address"},{"components":[{"internalType":"address[]","name":"supplyTokens","type":"address[]"},{"internalType":"address[]","name":"borrowTokens","type":"address[]"},{"internalType":"bool","name":"convertStable","type":"bool"},{"internalType":"uint256","name":"times","type":"uint256"},{"internalType":"bool","name":"isFlash","type":"bool"},{"internalType":"uint256[]","name":"flashFees","type":"uint256[]"}],"internalType":"struct AaveImportHelpers.ImportInputData","name":"inputData","type":"tuple"}],"name":"importAave","outputs":[{"internalType":"string","name":"_eventName","type":"string"},{"internalType":"bytes","name":"_eventParam","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address[]","name":"supplyTokens","type":"address[]"},{"internalType":"address[]","name":"borrowTokens","type":"address[]"},{"internalType":"bool","name":"convertStable","type":"bool"},{"internalType":"uint256","name":"times","type":"uint256"},{"internalType":"bool","name":"isFlash","type":"bool"},{"internalType":"uint256[]","name":"flashFees","type":"uint256[]"}],"internalType":"struct AaveImportHelpers.ImportInputData","name":"inputData","type":"tuple"}],"name":"migrateAave","outputs":[{"internalType":"string","name":"_eventName","type":"string"},{"internalType":"bytes","name":"_eventParam","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506139f7806100206000396000f3fe6080604052600436106100345760003560e01c806306fdde0314610039578063271d1e7b1461006457806375983f1d14610095575b600080fd5b34801561004557600080fd5b5061004e6100c6565b60405161005b9190612b65565b60405180910390f35b61007e60048036038101906100799190612f70565b6100ff565b60405161008c929190613021565b60405180910390f35b6100af60048036038101906100aa9190613058565b61011b565b6040516100bd929190613021565b60405180910390f35b6040518060400160405280601081526020017f4161766556322d496d706f72742d76320000000000000000000000000000000081525081565b60608061010c8484610135565b80925081935050509250929050565b6060806101283384610135565b8092508193505050915091565b606080600083600001515111610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906130ed565b60405180910390fd5b610188612a20565b600073b53c1a33016b2dc2ff3653530bff1848a515c8c573ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d9190613122565b905061021b86828785610528565b91506102288686846116b4565b91508460800151158015610240575060008560600151115b1561026957610264856000015151828460400151856080015186600001518b611d86565b610296565b6000856060015103610295576102948560000151518284604001518560a0015186600001518b611d86565b5b5b60005b85606001518110156104bc57600186606001516102b6919061317e565b81036103f55785608001511580156102d2575060018660600151145b156102eb576102e2878785611f7b565b8360a001819052505b60018660600151111561033e576103038787856120af565b9091929394509091925090508561014001866102e0018761020001839052839052839052505050610335878785611f7b565b8360a001819052505b6103598660200151518385602001518661028001518b61249e565b6103738660200151518385602001518660e001518b61252a565b6103928660000151518385604001518660a0015187600001518c611d86565b8560400151156103bb576103b68660200151518385602001518661020001516125b6565b6103f0565b6103d5866020015151838560200151866102e00151612640565b6103ef8660200151518385602001518661014001516125b6565b5b6104a9565b6104108660200151518385602001518661026001518b61249e565b61042b8660200151518385602001518661010001518b61252a565b61044a866000015151838560400151866080015187600001518c611d86565b8560400151156104735761046e8660200151518385602001518661022001516125b6565b6104a8565b61048d866020015151838560200151866102c00151612640565b6104a78660200151518385602001518661016001516125b6565b5b5b80806104b4906131b2565b915050610299565b506040518060800160405280604f8152602001613973604f913993508585604001518660000151876020015185606001518661024001518760c0015160405160200161050e9796959493929190613394565b604051602081830303815290604052925050509250929050565b610530612a20565b600083602001515111156116a95782602001515167ffffffffffffffff81111561055d5761055c612bfe565b5b60405190808252806020026020018201604052801561058b5781602001602082028036833780820191505090505b50826020018190525082602001515167ffffffffffffffff8111156105b3576105b2612bfe565b5b6040519080825280602002602001820160405280156105e15781602001602082028036833780820191505090505b508260c0018190525082602001515167ffffffffffffffff81111561060957610608612bfe565b5b6040519080825280602002602001820160405280156106375781602001602082028036833780820191505090505b5082610100018190525082602001515167ffffffffffffffff8111156106605761065f612bfe565b5b60405190808252806020026020018201604052801561068e5781602001602082028036833780820191505090505b508260e0018190525082602001515167ffffffffffffffff8111156106b6576106b5612bfe565b5b6040519080825280602002602001820160405280156106e45781602001602082028036833780820191505090505b5082610120018190525082602001515167ffffffffffffffff81111561070d5761070c612bfe565b5b60405190808252806020026020018201604052801561073b5781602001602082028036833780820191505090505b5082610140018190525082602001515167ffffffffffffffff81111561076457610763612bfe565b5b6040519080825280602002602001820160405280156107925781602001602082028036833780820191505090505b5082610160018190525082602001515167ffffffffffffffff8111156107bb576107ba612bfe565b5b6040519080825280602002602001820160405280156107e95781602001602082028036833780820191505090505b5082610240018190525082602001515167ffffffffffffffff81111561081257610811612bfe565b5b6040519080825280602002602001820160405280156108405781602001602082028036833780820191505090505b5082610260018190525082602001515167ffffffffffffffff81111561086957610868612bfe565b5b6040519080825280602002602001820160405280156108975781602001602082028036833780820191505090505b5082610280018190525082602001515167ffffffffffffffff8111156108c0576108bf612bfe565b5b6040519080825280602002602001820160405280156108ee5781602001602082028036833780820191505090505b50826102a0018190525082602001515167ffffffffffffffff81111561091757610916612bfe565b5b6040519080825280602002602001820160405280156109455781602001602082028036833780820191505090505b50826102c0018190525082602001515167ffffffffffffffff81111561096e5761096d612bfe565b5b60405190808252806020026020018201604052801561099c5781602001602082028036833780820191505090505b50826102e0018190525082602001515167ffffffffffffffff8111156109c5576109c4612bfe565b5b6040519080825280602002602001820160405280156109f35781602001602082028036833780820191505090505b5082610180018190525082602001515167ffffffffffffffff811115610a1c57610a1b612bfe565b5b604051908082528060200260200182016040528015610a4a5781602001602082028036833780820191505090505b50826101e0018190525082602001515167ffffffffffffffff811115610a7357610a72612bfe565b5b604051908082528060200260200182016040528015610aa15781602001602082028036833780820191505090505b50826101c0018190525082602001515167ffffffffffffffff811115610aca57610ac9612bfe565b5b604051908082528060200260200182016040528015610af85781602001602082028036833780820191505090505b50826101a0018190525082602001515167ffffffffffffffff811115610b2157610b20612bfe565b5b604051908082528060200260200182016040528015610b4f5781602001602082028036833780820191505090505b5082610200018190525082602001515167ffffffffffffffff811115610b7857610b77612bfe565b5b604051908082528060200260200182016040528015610ba65781602001602082028036833780820191505090505b508261022001819052506000836060015111156116a85760005b836020015151811015610cb95760008190505b846020015151811015610ca557818114610c925784602001518181518110610bfe57610bfd613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1685602001518381518110610c3357610c32613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c88906134a1565b60405180910390fd5b5b8080610c9d906131b2565b915050610bd3565b508080610cb1906131b2565b915050610bc0565b5060005b8360200151518110156110f257600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff1685602001518381518110610d0e57610d0d613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610d555784602001518281518110610d4857610d47613426565b5b6020026020010151610d6b565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b90508084602001518381518110610d8557610d84613426565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610dc981886126ca565b8561024001518481518110610de157610de0613426565b5b602002602001018660c001518581518110610dff57610dfe613426565b5b602002602001018281525082815250505060008460c001518381518110610e2957610e28613426565b5b602002602001015114610ea7578460a001518281518110610e4d57610e4c613426565b5b60200260200101518460c001518381518110610e6c57610e6b613426565b5b6020026020010151610e7e91906134c1565b8461012001518381518110610e9657610e95613426565b5b602002602001018181525050610f15565b8460a001518281518110610ebe57610ebd613426565b5b60200260200101518461024001518381518110610ede57610edd613426565b5b6020026020010151610ef091906134c1565b846102a001518381518110610f0857610f07613426565b5b6020026020010181815250505b8360c001518281518110610f2c57610f2b613426565b5b60200260200101518461024001518381518110610f4c57610f4b613426565b5b6020026020010151610f5e91906134c1565b8461018001518381518110610f7657610f75613426565b5b6020026020010181815250508361012001518281518110610f9a57610f99613426565b5b6020026020010151846102a001518381518110610fba57610fb9613426565b5b6020026020010151610fcc91906134c1565b846101e001518381518110610fe457610fe3613426565b5b6020026020010181815250506000846101800151838151811061100a57611009613426565b5b602002602001015111156110de576000600186606001511461104c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61106d565b846101800151838151811061106457611063613426565b5b60200260200101515b90508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b388836040518363ffffffff1660e01b81526004016110aa929190613504565b600060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b50505050505b5080806110ea906131b2565b915050610cbd565b50600183606001510361115c578160c001518260e00181905250816102400151826102800181905250816101800151826101a00181905250816101200151826101400181905250816102a00151826102e00181905250816101e001518261020001819052506116a7565b60005b826101800151518110156116a55783606001518360c00151828151811061118957611188613426565b5b602002602001015161119b919061355c565b83610100015182815181106111b3576111b2613426565b5b602002602001018181525050600184606001516111d0919061317e565b83610100015182815181106111e8576111e7613426565b5b60200260200101516111fa919061358d565b8360c00151828151811061121157611210613426565b5b6020026020010151611223919061317e565b8360e00151828151811061123a57611239613426565b5b6020026020010181815250508360600151836102400151828151811061126357611262613426565b5b6020026020010151611275919061355c565b836102600151828151811061128d5761128c613426565b5b602002602001018181525050600184606001516112aa919061317e565b83610260015182815181106112c2576112c1613426565b5b60200260200101516112d4919061358d565b83610240015182815181106112ec576112eb613426565b5b60200260200101516112fe919061317e565b836102800151828151811061131657611315613426565b5b6020026020010181815250508360600151836101800151828151811061133f5761133e613426565b5b6020026020010151611351919061355c565b836101c00151828151811061136957611368613426565b5b60200260200101818152505060018460600151611386919061317e565b836101c00151828151811061139e5761139d613426565b5b60200260200101516113b0919061358d565b83610180015182815181106113c8576113c7613426565b5b60200260200101516113da919061317e565b836101a0015182815181106113f2576113f1613426565b5b6020026020010181815250508360600151836101200151828151811061141b5761141a613426565b5b602002602001015161142d919061355c565b836101600151828151811061144557611444613426565b5b60200260200101818152505060018460600151611462919061317e565b836101600151828151811061147a57611479613426565b5b602002602001015161148c919061358d565b83610120015182815181106114a4576114a3613426565b5b60200260200101516114b6919061317e565b83610140015182815181106114ce576114cd613426565b5b6020026020010181815250508360600151836102a0015182815181106114f7576114f6613426565b5b6020026020010151611509919061355c565b836102c00151828151811061152157611520613426565b5b6020026020010181815250506001846060015161153e919061317e565b836102c00151828151811061155657611555613426565b5b6020026020010151611568919061358d565b836102a0015182815181106115805761157f613426565b5b6020026020010151611592919061317e565b836102e0015182815181106115aa576115a9613426565b5b6020026020010181815250508360600151836101e0015182815181106115d3576115d2613426565b5b60200260200101516115e5919061355c565b83610220015182815181106115fd576115fc613426565b5b6020026020010181815250506001846060015161161a919061317e565b836102200151828151811061163257611631613426565b5b6020026020010151611644919061358d565b836101e00151828151811061165c5761165b613426565b5b602002602001015161166e919061317e565b836102000151828151811061168657611685613426565b5b602002602001018181525050808061169d906131b2565b91505061115f565b505b5b5b819050949350505050565b6116bc612a20565b82600001515167ffffffffffffffff8111156116db576116da612bfe565b5b6040519080825280602002602001820160405280156117095781602001602082028036833780820191505090505b50826060018190525082600001515167ffffffffffffffff81111561173157611730612bfe565b5b60405190808252806020026020018201604052801561175f5781602001602082028036833780820191505090505b50826000018190525082600001515167ffffffffffffffff81111561178757611786612bfe565b5b6040519080825280602002602001820160405280156117b55781602001602082028036833780820191505090505b50826040018190525082600001515167ffffffffffffffff8111156117dd576117dc612bfe565b5b60405190808252806020026020018201604052801561180b5781602001602082028036833780820191505090505b50826080018190525082600001515167ffffffffffffffff81111561183357611832612bfe565b5b6040519080825280602002602001820160405280156118615781602001602082028036833780820191505090505b508260a0018190525060005b8360000151518110156119665760008190505b8460000151518110156119525781811461193f57846000015181815181106118ab576118aa613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16856000015183815181106118e0576118df613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361193e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611935906134a1565b60405180910390fd5b5b808061194a906131b2565b915050611880565b50808061195e906131b2565b91505061186d565b5060005b836000015151811015611c2257600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16856000015183815181106119bb576119ba613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614611a0257846000015182815181106119f5576119f4613426565b5b6020026020010151611a18565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b9050600073057835ad21a177dbdd3090bb1cae03eacf78fc6d73ffffffffffffffffffffffffffffffffffffffff1663d2493b6c836040518263ffffffff1660e01b8152600401611a6991906135cf565b606060405180830381865afa158015611a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaa91906135ea565b505090508185600001518481518110611ac657611ac5613426565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508085604001518481518110611b1857611b17613426565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505084604001518381518110611b6957611b68613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401611ba991906135cf565b602060405180830381865afa158015611bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bea9190613652565b85606001518481518110611c0157611c00613426565b5b60200260200101818152505050508080611c1a906131b2565b91505061196a565b5060018360600151148015611c38575082608001515b80611c47575060008360600151145b15611c5e5781606001518260a00181905250611d7c565b60005b826060015151811015611d7a5760008460800151611c8f5760018560600151611c8a91906134c1565b611c95565b84606001515b90508084606001518381518110611caf57611cae613426565b5b6020026020010151611cc1919061355c565b84608001518381518110611cd857611cd7613426565b5b602002602001018181525050600181611cf1919061317e565b84608001518381518110611d0857611d07613426565b5b6020026020010151611d1a919061358d565b84606001518381518110611d3157611d30613426565b5b6020026020010151611d43919061317e565b8460a001518381518110611d5a57611d59613426565b5b602002602001018181525050508080611d72906131b2565b915050611c61565b505b8190509392505050565b60005b86811015611f72576000848281518110611da657611da5613426565b5b60200260200101511115611f5f576000848281518110611dc957611dc8613426565b5b60200260200101519050858281518110611de657611de5613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166323b872dd8430846040518463ffffffff1660e01b8152600401611e2a9392919061367f565b6020604051808303816000875af1158015611e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6d91906136cb565b611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea390613744565b60405180910390fd5b611ed0848381518110611ec257611ec1613426565b5b602002602001015130612864565b611f5d578673ffffffffffffffffffffffffffffffffffffffff16635a3b74b9858481518110611f0357611f02613426565b5b602002602001015160016040518363ffffffff1660e01b8152600401611f2a929190613764565b600060405180830381600087803b158015611f4457600080fd5b505af1158015611f58573d6000803e3d6000fd5b505050505b505b8080611f6a906131b2565b915050611d89565b50505050505050565b606082600001515167ffffffffffffffff811115611f9c57611f9b612bfe565b5b604051908082528060200260200182016040528015611fca5781602001602082028036833780820191505090505b50905060005b8260400151518110156120a75782604001518181518110611ff457611ff3613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161203491906135cf565b602060405180830381865afa158015612051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120759190613652565b82828151811061208857612087613426565b5b602002602001018181525050808061209f906131b2565b915050611fd0565b509392505050565b606080606080606080600088602001515111156124925787602001515167ffffffffffffffff8111156120e5576120e4612bfe565b5b6040519080825280602002602001820160405280156121135781602001602082028036833780820191505090505b50955087602001515167ffffffffffffffff81111561213557612134612bfe565b5b6040519080825280602002602001820160405280156121635781602001602082028036833780820191505090505b50945087602001515167ffffffffffffffff81111561218557612184612bfe565b5b6040519080825280602002602001820160405280156121b35781602001602082028036833780820191505090505b50935087602001515167ffffffffffffffff8111156121d5576121d4612bfe565b5b6040519080825280602002602001820160405280156122035781602001602082028036833780820191505090505b50925087602001515167ffffffffffffffff81111561222557612224612bfe565b5b6040519080825280602002602001820160405280156122535781602001602082028036833780820191505090505b50915087602001515167ffffffffffffffff81111561227557612274612bfe565b5b6040519080825280602002602001820160405280156122a35781602001602082028036833780820191505090505b5090506000886060015111156124915760005b87602001515181101561248f576000886020015182815181106122dc576122db613426565b5b602002602001015190506122f0818c6126ca565b87848151811061230357612302613426565b5b602002602001018a858151811061231d5761231c613426565b5b6020026020010182815250828152505050600088838151811061234357612342613426565b5b6020026020010151146123b8578960a00151828151811061236757612366613426565b5b602002602001015188838151811061238257612381613426565b5b602002602001015161239491906134c1565b8783815181106123a7576123a6613426565b5b60200260200101818152505061241c565b8960a0015182815181106123cf576123ce613426565b5b60200260200101518683815181106123ea576123e9613426565b5b60200260200101516123fc91906134c1565b85838151811061240f5761240e613426565b5b6020026020010181815250505b87828151811061242f5761242e613426565b5b602002602001015186838151811061244a57612449613426565b5b602002602001015161245c91906134c1565b83838151811061246f5761246e613426565b5b602002602001018181525050508080612487906131b2565b9150506122b6565b505b5b93975093979195509350565b60005b858110156125225760008382815181106124be576124bd613426565b5b6020026020010151111561250f5761250e858583815181106124e3576124e2613426565b5b60200260200101518584815181106124fe576124fd613426565b5b602002602001015160018661292d565b5b808061251a906131b2565b9150506124a1565b505050505050565b60005b858110156125ae57600083828151811061254a57612549613426565b5b6020026020010151111561259b5761259a8585838151811061256f5761256e613426565b5b602002602001015185848151811061258a57612589613426565b5b602002602001015160028661292d565b5b80806125a6906131b2565b91505061252d565b505050505050565b60005b848110156126395760008282815181106125d6576125d5613426565b5b6020026020010151111561262657612625848483815181106125fb576125fa613426565b5b602002602001015184848151811061261657612615613426565b5b602002602001015160026129a5565b5b8080612631906131b2565b9150506125b9565b5050505050565b60005b848110156126c35760008282815181106126605761265f613426565b5b602002602001015111156126b0576126af8484838151811061268557612684613426565b5b60200260200101518484815181106126a05761269f613426565b5b602002602001015160016129a5565b5b80806126bb906131b2565b915050612643565b5050505050565b60008060008073057835ad21a177dbdd3090bb1cae03eacf78fc6d73ffffffffffffffffffffffffffffffffffffffff1663d2493b6c876040518263ffffffff1660e01b815260040161271d91906135cf565b606060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275e91906135ea565b92509250508173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161279c91906135cf565b602060405180830381865afa1580156127b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127dd9190613652565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161281891906135cf565b602060405180830381865afa158015612835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128599190613652565b925050509250929050565b600073057835ad21a177dbdd3090bb1cae03eacf78fc6d73ffffffffffffffffffffffffffffffffffffffff166328dd2d0184846040518363ffffffff1660e01b81526004016128b592919061378d565b61012060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f791906137f3565b90919293949596975090919293949596509091929394955090919293945090919293509091925090915090508091505092915050565b8473ffffffffffffffffffffffffffffffffffffffff1663573ade81858585856040518563ffffffff1660e01b815260040161296c94939291906138bd565b600060405180830381600087803b15801561298657600080fd5b505af115801561299a573d6000803e3d6000fd5b505050505050505050565b8373ffffffffffffffffffffffffffffffffffffffff1663a415bcad848484610c9c306040518663ffffffff1660e01b81526004016129e895949392919061391f565b600060405180830381600087803b158015612a0257600080fd5b505af1158015612a16573d6000803e3d6000fd5b5050505050505050565b6040518061030001604052806060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b0f578082015181840152602081019050612af4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b3782612ad5565b612b418185612ae0565b9350612b51818560208601612af1565b612b5a81612b1b565b840191505092915050565b60006020820190508181036000830152612b7f8184612b2c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bc682612b9b565b9050919050565b612bd681612bbb565b8114612be157600080fd5b50565b600081359050612bf381612bcd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c3682612b1b565b810181811067ffffffffffffffff82111715612c5557612c54612bfe565b5b80604052505050565b6000612c68612b87565b9050612c748282612c2d565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115612c9e57612c9d612bfe565b5b602082029050602081019050919050565b600080fd5b6000612cc7612cc284612c83565b612c5e565b90508083825260208201905060208402830185811115612cea57612ce9612caf565b5b835b81811015612d135780612cff8882612be4565b845260208401935050602081019050612cec565b5050509392505050565b600082601f830112612d3257612d31612c7e565b5b8135612d42848260208601612cb4565b91505092915050565b60008115159050919050565b612d6081612d4b565b8114612d6b57600080fd5b50565b600081359050612d7d81612d57565b92915050565b6000819050919050565b612d9681612d83565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b600067ffffffffffffffff821115612dd457612dd3612bfe565b5b602082029050602081019050919050565b6000612df8612df384612db9565b612c5e565b90508083825260208201905060208402830185811115612e1b57612e1a612caf565b5b835b81811015612e445780612e308882612da4565b845260208401935050602081019050612e1d565b5050509392505050565b600082601f830112612e6357612e62612c7e565b5b8135612e73848260208601612de5565b91505092915050565b600060c08284031215612e9257612e91612bf9565b5b612e9c60c0612c5e565b9050600082013567ffffffffffffffff811115612ebc57612ebb612c79565b5b612ec884828501612d1d565b600083015250602082013567ffffffffffffffff811115612eec57612eeb612c79565b5b612ef884828501612d1d565b6020830152506040612f0c84828501612d6e565b6040830152506060612f2084828501612da4565b6060830152506080612f3484828501612d6e565b60808301525060a082013567ffffffffffffffff811115612f5857612f57612c79565b5b612f6484828501612e4e565b60a08301525092915050565b60008060408385031215612f8757612f86612b91565b5b6000612f9585828601612be4565b925050602083013567ffffffffffffffff811115612fb657612fb5612b96565b5b612fc285828601612e7c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000612ff382612fcc565b612ffd8185612fd7565b935061300d818560208601612af1565b61301681612b1b565b840191505092915050565b6000604082019050818103600083015261303b8185612b2c565b9050818103602083015261304f8184612fe8565b90509392505050565b60006020828403121561306e5761306d612b91565b5b600082013567ffffffffffffffff81111561308c5761308b612b96565b5b61309884828501612e7c565b91505092915050565b7f302d6c656e6774682d6e6f742d616c6c6f776564000000000000000000000000600082015250565b60006130d7601483612ae0565b91506130e2826130a1565b602082019050919050565b60006020820190508181036000830152613106816130ca565b9050919050565b60008151905061311c81612bcd565b92915050565b60006020828403121561313857613137612b91565b5b60006131468482850161310d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061318982612d83565b915061319483612d83565b92508282039050818111156131ac576131ab61314f565b5b92915050565b60006131bd82612d83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131ef576131ee61314f565b5b600182019050919050565b61320381612bbb565b82525050565b61321281612d4b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61324d81612bbb565b82525050565b600061325f8383613244565b60208301905092915050565b6000602082019050919050565b600061328382613218565b61328d8185613223565b935061329883613234565b8060005b838110156132c95781516132b08882613253565b97506132bb8361326b565b92505060018101905061329c565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61330b81612d83565b82525050565b600061331d8383613302565b60208301905092915050565b6000602082019050919050565b6000613341826132d6565b61334b81856132e1565b9350613356836132f2565b8060005b8381101561338757815161336e8882613311565b975061337983613329565b92505060018101905061335a565b5085935050505092915050565b600060e0820190506133a9600083018a6131fa565b6133b66020830189613209565b81810360408301526133c88188613278565b905081810360608301526133dc8187613278565b905081810360808301526133f08186613336565b905081810360a08301526134048185613336565b905081810360c08301526134188184613336565b905098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f746f6b656e2d7265706561746564000000000000000000000000000000000000600082015250565b600061348b600e83612ae0565b915061349682613455565b602082019050919050565b600060208201905081810360008301526134ba8161347e565b9050919050565b60006134cc82612d83565b91506134d783612d83565b92508282019050808211156134ef576134ee61314f565b5b92915050565b6134fe81612d83565b82525050565b600060408201905061351960008301856131fa565b61352660208301846134f5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061356782612d83565b915061357283612d83565b9250826135825761358161352d565b5b828204905092915050565b600061359882612d83565b91506135a383612d83565b92508282026135b181612d83565b915082820484148315176135c8576135c761314f565b5b5092915050565b60006020820190506135e460008301846131fa565b92915050565b60008060006060848603121561360357613602612b91565b5b60006136118682870161310d565b93505060206136228682870161310d565b92505060406136338682870161310d565b9150509250925092565b60008151905061364c81612d8d565b92915050565b60006020828403121561366857613667612b91565b5b60006136768482850161363d565b91505092915050565b600060608201905061369460008301866131fa565b6136a160208301856131fa565b6136ae60408301846134f5565b949350505050565b6000815190506136c581612d57565b92915050565b6000602082840312156136e1576136e0612b91565b5b60006136ef848285016136b6565b91505092915050565b7f616c6c6f77616e63653f00000000000000000000000000000000000000000000600082015250565b600061372e600a83612ae0565b9150613739826136f8565b602082019050919050565b6000602082019050818103600083015261375d81613721565b9050919050565b600060408201905061377960008301856131fa565b6137866020830184613209565b9392505050565b60006040820190506137a260008301856131fa565b6137af60208301846131fa565b9392505050565b600064ffffffffff82169050919050565b6137d0816137b6565b81146137db57600080fd5b50565b6000815190506137ed816137c7565b92915050565b60008060008060008060008060006101208a8c03121561381657613815612b91565b5b60006138248c828d0161363d565b99505060206138358c828d0161363d565b98505060406138468c828d0161363d565b97505060606138578c828d0161363d565b96505060806138688c828d0161363d565b95505060a06138798c828d0161363d565b94505060c061388a8c828d0161363d565b93505060e061389b8c828d016137de565b9250506101006138ad8c828d016136b6565b9150509295985092959850929598565b60006080820190506138d260008301876131fa565b6138df60208301866134f5565b6138ec60408301856134f5565b6138f960608301846131fa565b95945050505050565b600061ffff82169050919050565b61391981613902565b82525050565b600060a08201905061393460008301886131fa565b61394160208301876134f5565b61394e60408301866134f5565b61395b6060830185613910565b61396860808301846131fa565b969550505050505056fe4c6f67416176655632496d706f727428616464726573732c626f6f6c2c616464726573735b5d2c616464726573735b5d2c75696e743235365b5d2c75696e743235365b5d2c75696e743235365b5d29a26469706673582212201bead4e4bdd491d791a96849f16bdddf0476ded2127a722766910d70cb4bc75164736f6c63430008120033
Deployed Bytecode
0x6080604052600436106100345760003560e01c806306fdde0314610039578063271d1e7b1461006457806375983f1d14610095575b600080fd5b34801561004557600080fd5b5061004e6100c6565b60405161005b9190612b65565b60405180910390f35b61007e60048036038101906100799190612f70565b6100ff565b60405161008c929190613021565b60405180910390f35b6100af60048036038101906100aa9190613058565b61011b565b6040516100bd929190613021565b60405180910390f35b6040518060400160405280601081526020017f4161766556322d496d706f72742d76320000000000000000000000000000000081525081565b60608061010c8484610135565b80925081935050509250929050565b6060806101283384610135565b8092508193505050915091565b606080600083600001515111610180576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610177906130ed565b60405180910390fd5b610188612a20565b600073b53c1a33016b2dc2ff3653530bff1848a515c8c573ffffffffffffffffffffffffffffffffffffffff16630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020d9190613122565b905061021b86828785610528565b91506102288686846116b4565b91508460800151158015610240575060008560600151115b1561026957610264856000015151828460400151856080015186600001518b611d86565b610296565b6000856060015103610295576102948560000151518284604001518560a0015186600001518b611d86565b5b5b60005b85606001518110156104bc57600186606001516102b6919061317e565b81036103f55785608001511580156102d2575060018660600151145b156102eb576102e2878785611f7b565b8360a001819052505b60018660600151111561033e576103038787856120af565b9091929394509091925090508561014001866102e0018761020001839052839052839052505050610335878785611f7b565b8360a001819052505b6103598660200151518385602001518661028001518b61249e565b6103738660200151518385602001518660e001518b61252a565b6103928660000151518385604001518660a0015187600001518c611d86565b8560400151156103bb576103b68660200151518385602001518661020001516125b6565b6103f0565b6103d5866020015151838560200151866102e00151612640565b6103ef8660200151518385602001518661014001516125b6565b5b6104a9565b6104108660200151518385602001518661026001518b61249e565b61042b8660200151518385602001518661010001518b61252a565b61044a866000015151838560400151866080015187600001518c611d86565b8560400151156104735761046e8660200151518385602001518661022001516125b6565b6104a8565b61048d866020015151838560200151866102c00151612640565b6104a78660200151518385602001518661016001516125b6565b5b5b80806104b4906131b2565b915050610299565b506040518060800160405280604f8152602001613973604f913993508585604001518660000151876020015185606001518661024001518760c0015160405160200161050e9796959493929190613394565b604051602081830303815290604052925050509250929050565b610530612a20565b600083602001515111156116a95782602001515167ffffffffffffffff81111561055d5761055c612bfe565b5b60405190808252806020026020018201604052801561058b5781602001602082028036833780820191505090505b50826020018190525082602001515167ffffffffffffffff8111156105b3576105b2612bfe565b5b6040519080825280602002602001820160405280156105e15781602001602082028036833780820191505090505b508260c0018190525082602001515167ffffffffffffffff81111561060957610608612bfe565b5b6040519080825280602002602001820160405280156106375781602001602082028036833780820191505090505b5082610100018190525082602001515167ffffffffffffffff8111156106605761065f612bfe565b5b60405190808252806020026020018201604052801561068e5781602001602082028036833780820191505090505b508260e0018190525082602001515167ffffffffffffffff8111156106b6576106b5612bfe565b5b6040519080825280602002602001820160405280156106e45781602001602082028036833780820191505090505b5082610120018190525082602001515167ffffffffffffffff81111561070d5761070c612bfe565b5b60405190808252806020026020018201604052801561073b5781602001602082028036833780820191505090505b5082610140018190525082602001515167ffffffffffffffff81111561076457610763612bfe565b5b6040519080825280602002602001820160405280156107925781602001602082028036833780820191505090505b5082610160018190525082602001515167ffffffffffffffff8111156107bb576107ba612bfe565b5b6040519080825280602002602001820160405280156107e95781602001602082028036833780820191505090505b5082610240018190525082602001515167ffffffffffffffff81111561081257610811612bfe565b5b6040519080825280602002602001820160405280156108405781602001602082028036833780820191505090505b5082610260018190525082602001515167ffffffffffffffff81111561086957610868612bfe565b5b6040519080825280602002602001820160405280156108975781602001602082028036833780820191505090505b5082610280018190525082602001515167ffffffffffffffff8111156108c0576108bf612bfe565b5b6040519080825280602002602001820160405280156108ee5781602001602082028036833780820191505090505b50826102a0018190525082602001515167ffffffffffffffff81111561091757610916612bfe565b5b6040519080825280602002602001820160405280156109455781602001602082028036833780820191505090505b50826102c0018190525082602001515167ffffffffffffffff81111561096e5761096d612bfe565b5b60405190808252806020026020018201604052801561099c5781602001602082028036833780820191505090505b50826102e0018190525082602001515167ffffffffffffffff8111156109c5576109c4612bfe565b5b6040519080825280602002602001820160405280156109f35781602001602082028036833780820191505090505b5082610180018190525082602001515167ffffffffffffffff811115610a1c57610a1b612bfe565b5b604051908082528060200260200182016040528015610a4a5781602001602082028036833780820191505090505b50826101e0018190525082602001515167ffffffffffffffff811115610a7357610a72612bfe565b5b604051908082528060200260200182016040528015610aa15781602001602082028036833780820191505090505b50826101c0018190525082602001515167ffffffffffffffff811115610aca57610ac9612bfe565b5b604051908082528060200260200182016040528015610af85781602001602082028036833780820191505090505b50826101a0018190525082602001515167ffffffffffffffff811115610b2157610b20612bfe565b5b604051908082528060200260200182016040528015610b4f5781602001602082028036833780820191505090505b5082610200018190525082602001515167ffffffffffffffff811115610b7857610b77612bfe565b5b604051908082528060200260200182016040528015610ba65781602001602082028036833780820191505090505b508261022001819052506000836060015111156116a85760005b836020015151811015610cb95760008190505b846020015151811015610ca557818114610c925784602001518181518110610bfe57610bfd613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1685602001518381518110610c3357610c32613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c88906134a1565b60405180910390fd5b5b8080610c9d906131b2565b915050610bd3565b508080610cb1906131b2565b915050610bc0565b5060005b8360200151518110156110f257600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff1685602001518381518110610d0e57610d0d613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614610d555784602001518281518110610d4857610d47613426565b5b6020026020010151610d6b565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b90508084602001518381518110610d8557610d84613426565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610dc981886126ca565b8561024001518481518110610de157610de0613426565b5b602002602001018660c001518581518110610dff57610dfe613426565b5b602002602001018281525082815250505060008460c001518381518110610e2957610e28613426565b5b602002602001015114610ea7578460a001518281518110610e4d57610e4c613426565b5b60200260200101518460c001518381518110610e6c57610e6b613426565b5b6020026020010151610e7e91906134c1565b8461012001518381518110610e9657610e95613426565b5b602002602001018181525050610f15565b8460a001518281518110610ebe57610ebd613426565b5b60200260200101518461024001518381518110610ede57610edd613426565b5b6020026020010151610ef091906134c1565b846102a001518381518110610f0857610f07613426565b5b6020026020010181815250505b8360c001518281518110610f2c57610f2b613426565b5b60200260200101518461024001518381518110610f4c57610f4b613426565b5b6020026020010151610f5e91906134c1565b8461018001518381518110610f7657610f75613426565b5b6020026020010181815250508361012001518281518110610f9a57610f99613426565b5b6020026020010151846102a001518381518110610fba57610fb9613426565b5b6020026020010151610fcc91906134c1565b846101e001518381518110610fe457610fe3613426565b5b6020026020010181815250506000846101800151838151811061100a57611009613426565b5b602002602001015111156110de576000600186606001511461104c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61106d565b846101800151838151811061106457611063613426565b5b60200260200101515b90508173ffffffffffffffffffffffffffffffffffffffff1663095ea7b388836040518363ffffffff1660e01b81526004016110aa929190613504565b600060405180830381600087803b1580156110c457600080fd5b505af11580156110d8573d6000803e3d6000fd5b50505050505b5080806110ea906131b2565b915050610cbd565b50600183606001510361115c578160c001518260e00181905250816102400151826102800181905250816101800151826101a00181905250816101200151826101400181905250816102a00151826102e00181905250816101e001518261020001819052506116a7565b60005b826101800151518110156116a55783606001518360c00151828151811061118957611188613426565b5b602002602001015161119b919061355c565b83610100015182815181106111b3576111b2613426565b5b602002602001018181525050600184606001516111d0919061317e565b83610100015182815181106111e8576111e7613426565b5b60200260200101516111fa919061358d565b8360c00151828151811061121157611210613426565b5b6020026020010151611223919061317e565b8360e00151828151811061123a57611239613426565b5b6020026020010181815250508360600151836102400151828151811061126357611262613426565b5b6020026020010151611275919061355c565b836102600151828151811061128d5761128c613426565b5b602002602001018181525050600184606001516112aa919061317e565b83610260015182815181106112c2576112c1613426565b5b60200260200101516112d4919061358d565b83610240015182815181106112ec576112eb613426565b5b60200260200101516112fe919061317e565b836102800151828151811061131657611315613426565b5b6020026020010181815250508360600151836101800151828151811061133f5761133e613426565b5b6020026020010151611351919061355c565b836101c00151828151811061136957611368613426565b5b60200260200101818152505060018460600151611386919061317e565b836101c00151828151811061139e5761139d613426565b5b60200260200101516113b0919061358d565b83610180015182815181106113c8576113c7613426565b5b60200260200101516113da919061317e565b836101a0015182815181106113f2576113f1613426565b5b6020026020010181815250508360600151836101200151828151811061141b5761141a613426565b5b602002602001015161142d919061355c565b836101600151828151811061144557611444613426565b5b60200260200101818152505060018460600151611462919061317e565b836101600151828151811061147a57611479613426565b5b602002602001015161148c919061358d565b83610120015182815181106114a4576114a3613426565b5b60200260200101516114b6919061317e565b83610140015182815181106114ce576114cd613426565b5b6020026020010181815250508360600151836102a0015182815181106114f7576114f6613426565b5b6020026020010151611509919061355c565b836102c00151828151811061152157611520613426565b5b6020026020010181815250506001846060015161153e919061317e565b836102c00151828151811061155657611555613426565b5b6020026020010151611568919061358d565b836102a0015182815181106115805761157f613426565b5b6020026020010151611592919061317e565b836102e0015182815181106115aa576115a9613426565b5b6020026020010181815250508360600151836101e0015182815181106115d3576115d2613426565b5b60200260200101516115e5919061355c565b83610220015182815181106115fd576115fc613426565b5b6020026020010181815250506001846060015161161a919061317e565b836102200151828151811061163257611631613426565b5b6020026020010151611644919061358d565b836101e00151828151811061165c5761165b613426565b5b602002602001015161166e919061317e565b836102000151828151811061168657611685613426565b5b602002602001018181525050808061169d906131b2565b91505061115f565b505b5b5b819050949350505050565b6116bc612a20565b82600001515167ffffffffffffffff8111156116db576116da612bfe565b5b6040519080825280602002602001820160405280156117095781602001602082028036833780820191505090505b50826060018190525082600001515167ffffffffffffffff81111561173157611730612bfe565b5b60405190808252806020026020018201604052801561175f5781602001602082028036833780820191505090505b50826000018190525082600001515167ffffffffffffffff81111561178757611786612bfe565b5b6040519080825280602002602001820160405280156117b55781602001602082028036833780820191505090505b50826040018190525082600001515167ffffffffffffffff8111156117dd576117dc612bfe565b5b60405190808252806020026020018201604052801561180b5781602001602082028036833780820191505090505b50826080018190525082600001515167ffffffffffffffff81111561183357611832612bfe565b5b6040519080825280602002602001820160405280156118615781602001602082028036833780820191505090505b508260a0018190525060005b8360000151518110156119665760008190505b8460000151518110156119525781811461193f57846000015181815181106118ab576118aa613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16856000015183815181106118e0576118df613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361193e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611935906134a1565b60405180910390fd5b5b808061194a906131b2565b915050611880565b50808061195e906131b2565b91505061186d565b5060005b836000015151811015611c2257600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff16856000015183815181106119bb576119ba613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614611a0257846000015182815181106119f5576119f4613426565b5b6020026020010151611a18565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25b9050600073057835ad21a177dbdd3090bb1cae03eacf78fc6d73ffffffffffffffffffffffffffffffffffffffff1663d2493b6c836040518263ffffffff1660e01b8152600401611a6991906135cf565b606060405180830381865afa158015611a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aaa91906135ea565b505090508185600001518481518110611ac657611ac5613426565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508085604001518481518110611b1857611b17613426565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505084604001518381518110611b6957611b68613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231886040518263ffffffff1660e01b8152600401611ba991906135cf565b602060405180830381865afa158015611bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bea9190613652565b85606001518481518110611c0157611c00613426565b5b60200260200101818152505050508080611c1a906131b2565b91505061196a565b5060018360600151148015611c38575082608001515b80611c47575060008360600151145b15611c5e5781606001518260a00181905250611d7c565b60005b826060015151811015611d7a5760008460800151611c8f5760018560600151611c8a91906134c1565b611c95565b84606001515b90508084606001518381518110611caf57611cae613426565b5b6020026020010151611cc1919061355c565b84608001518381518110611cd857611cd7613426565b5b602002602001018181525050600181611cf1919061317e565b84608001518381518110611d0857611d07613426565b5b6020026020010151611d1a919061358d565b84606001518381518110611d3157611d30613426565b5b6020026020010151611d43919061317e565b8460a001518381518110611d5a57611d59613426565b5b602002602001018181525050508080611d72906131b2565b915050611c61565b505b8190509392505050565b60005b86811015611f72576000848281518110611da657611da5613426565b5b60200260200101511115611f5f576000848281518110611dc957611dc8613426565b5b60200260200101519050858281518110611de657611de5613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166323b872dd8430846040518463ffffffff1660e01b8152600401611e2a9392919061367f565b6020604051808303816000875af1158015611e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6d91906136cb565b611eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ea390613744565b60405180910390fd5b611ed0848381518110611ec257611ec1613426565b5b602002602001015130612864565b611f5d578673ffffffffffffffffffffffffffffffffffffffff16635a3b74b9858481518110611f0357611f02613426565b5b602002602001015160016040518363ffffffff1660e01b8152600401611f2a929190613764565b600060405180830381600087803b158015611f4457600080fd5b505af1158015611f58573d6000803e3d6000fd5b505050505b505b8080611f6a906131b2565b915050611d89565b50505050505050565b606082600001515167ffffffffffffffff811115611f9c57611f9b612bfe565b5b604051908082528060200260200182016040528015611fca5781602001602082028036833780820191505090505b50905060005b8260400151518110156120a75782604001518181518110611ff457611ff3613426565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161203491906135cf565b602060405180830381865afa158015612051573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120759190613652565b82828151811061208857612087613426565b5b602002602001018181525050808061209f906131b2565b915050611fd0565b509392505050565b606080606080606080600088602001515111156124925787602001515167ffffffffffffffff8111156120e5576120e4612bfe565b5b6040519080825280602002602001820160405280156121135781602001602082028036833780820191505090505b50955087602001515167ffffffffffffffff81111561213557612134612bfe565b5b6040519080825280602002602001820160405280156121635781602001602082028036833780820191505090505b50945087602001515167ffffffffffffffff81111561218557612184612bfe565b5b6040519080825280602002602001820160405280156121b35781602001602082028036833780820191505090505b50935087602001515167ffffffffffffffff8111156121d5576121d4612bfe565b5b6040519080825280602002602001820160405280156122035781602001602082028036833780820191505090505b50925087602001515167ffffffffffffffff81111561222557612224612bfe565b5b6040519080825280602002602001820160405280156122535781602001602082028036833780820191505090505b50915087602001515167ffffffffffffffff81111561227557612274612bfe565b5b6040519080825280602002602001820160405280156122a35781602001602082028036833780820191505090505b5090506000886060015111156124915760005b87602001515181101561248f576000886020015182815181106122dc576122db613426565b5b602002602001015190506122f0818c6126ca565b87848151811061230357612302613426565b5b602002602001018a858151811061231d5761231c613426565b5b6020026020010182815250828152505050600088838151811061234357612342613426565b5b6020026020010151146123b8578960a00151828151811061236757612366613426565b5b602002602001015188838151811061238257612381613426565b5b602002602001015161239491906134c1565b8783815181106123a7576123a6613426565b5b60200260200101818152505061241c565b8960a0015182815181106123cf576123ce613426565b5b60200260200101518683815181106123ea576123e9613426565b5b60200260200101516123fc91906134c1565b85838151811061240f5761240e613426565b5b6020026020010181815250505b87828151811061242f5761242e613426565b5b602002602001015186838151811061244a57612449613426565b5b602002602001015161245c91906134c1565b83838151811061246f5761246e613426565b5b602002602001018181525050508080612487906131b2565b9150506122b6565b505b5b93975093979195509350565b60005b858110156125225760008382815181106124be576124bd613426565b5b6020026020010151111561250f5761250e858583815181106124e3576124e2613426565b5b60200260200101518584815181106124fe576124fd613426565b5b602002602001015160018661292d565b5b808061251a906131b2565b9150506124a1565b505050505050565b60005b858110156125ae57600083828151811061254a57612549613426565b5b6020026020010151111561259b5761259a8585838151811061256f5761256e613426565b5b602002602001015185848151811061258a57612589613426565b5b602002602001015160028661292d565b5b80806125a6906131b2565b91505061252d565b505050505050565b60005b848110156126395760008282815181106125d6576125d5613426565b5b6020026020010151111561262657612625848483815181106125fb576125fa613426565b5b602002602001015184848151811061261657612615613426565b5b602002602001015160026129a5565b5b8080612631906131b2565b9150506125b9565b5050505050565b60005b848110156126c35760008282815181106126605761265f613426565b5b602002602001015111156126b0576126af8484838151811061268557612684613426565b5b60200260200101518484815181106126a05761269f613426565b5b602002602001015160016129a5565b5b80806126bb906131b2565b915050612643565b5050505050565b60008060008073057835ad21a177dbdd3090bb1cae03eacf78fc6d73ffffffffffffffffffffffffffffffffffffffff1663d2493b6c876040518263ffffffff1660e01b815260040161271d91906135cf565b606060405180830381865afa15801561273a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275e91906135ea565b92509250508173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161279c91906135cf565b602060405180830381865afa1580156127b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127dd9190613652565b93508073ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161281891906135cf565b602060405180830381865afa158015612835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128599190613652565b925050509250929050565b600073057835ad21a177dbdd3090bb1cae03eacf78fc6d73ffffffffffffffffffffffffffffffffffffffff166328dd2d0184846040518363ffffffff1660e01b81526004016128b592919061378d565b61012060405180830381865afa1580156128d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128f791906137f3565b90919293949596975090919293949596509091929394955090919293945090919293509091925090915090508091505092915050565b8473ffffffffffffffffffffffffffffffffffffffff1663573ade81858585856040518563ffffffff1660e01b815260040161296c94939291906138bd565b600060405180830381600087803b15801561298657600080fd5b505af115801561299a573d6000803e3d6000fd5b505050505050505050565b8373ffffffffffffffffffffffffffffffffffffffff1663a415bcad848484610c9c306040518663ffffffff1660e01b81526004016129e895949392919061391f565b600060405180830381600087803b158015612a0257600080fd5b505af1158015612a16573d6000803e3d6000fd5b5050505050505050565b6040518061030001604052806060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b0f578082015181840152602081019050612af4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b3782612ad5565b612b418185612ae0565b9350612b51818560208601612af1565b612b5a81612b1b565b840191505092915050565b60006020820190508181036000830152612b7f8184612b2c565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bc682612b9b565b9050919050565b612bd681612bbb565b8114612be157600080fd5b50565b600081359050612bf381612bcd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c3682612b1b565b810181811067ffffffffffffffff82111715612c5557612c54612bfe565b5b80604052505050565b6000612c68612b87565b9050612c748282612c2d565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115612c9e57612c9d612bfe565b5b602082029050602081019050919050565b600080fd5b6000612cc7612cc284612c83565b612c5e565b90508083825260208201905060208402830185811115612cea57612ce9612caf565b5b835b81811015612d135780612cff8882612be4565b845260208401935050602081019050612cec565b5050509392505050565b600082601f830112612d3257612d31612c7e565b5b8135612d42848260208601612cb4565b91505092915050565b60008115159050919050565b612d6081612d4b565b8114612d6b57600080fd5b50565b600081359050612d7d81612d57565b92915050565b6000819050919050565b612d9681612d83565b8114612da157600080fd5b50565b600081359050612db381612d8d565b92915050565b600067ffffffffffffffff821115612dd457612dd3612bfe565b5b602082029050602081019050919050565b6000612df8612df384612db9565b612c5e565b90508083825260208201905060208402830185811115612e1b57612e1a612caf565b5b835b81811015612e445780612e308882612da4565b845260208401935050602081019050612e1d565b5050509392505050565b600082601f830112612e6357612e62612c7e565b5b8135612e73848260208601612de5565b91505092915050565b600060c08284031215612e9257612e91612bf9565b5b612e9c60c0612c5e565b9050600082013567ffffffffffffffff811115612ebc57612ebb612c79565b5b612ec884828501612d1d565b600083015250602082013567ffffffffffffffff811115612eec57612eeb612c79565b5b612ef884828501612d1d565b6020830152506040612f0c84828501612d6e565b6040830152506060612f2084828501612da4565b6060830152506080612f3484828501612d6e565b60808301525060a082013567ffffffffffffffff811115612f5857612f57612c79565b5b612f6484828501612e4e565b60a08301525092915050565b60008060408385031215612f8757612f86612b91565b5b6000612f9585828601612be4565b925050602083013567ffffffffffffffff811115612fb657612fb5612b96565b5b612fc285828601612e7c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000612ff382612fcc565b612ffd8185612fd7565b935061300d818560208601612af1565b61301681612b1b565b840191505092915050565b6000604082019050818103600083015261303b8185612b2c565b9050818103602083015261304f8184612fe8565b90509392505050565b60006020828403121561306e5761306d612b91565b5b600082013567ffffffffffffffff81111561308c5761308b612b96565b5b61309884828501612e7c565b91505092915050565b7f302d6c656e6774682d6e6f742d616c6c6f776564000000000000000000000000600082015250565b60006130d7601483612ae0565b91506130e2826130a1565b602082019050919050565b60006020820190508181036000830152613106816130ca565b9050919050565b60008151905061311c81612bcd565b92915050565b60006020828403121561313857613137612b91565b5b60006131468482850161310d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061318982612d83565b915061319483612d83565b92508282039050818111156131ac576131ab61314f565b5b92915050565b60006131bd82612d83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131ef576131ee61314f565b5b600182019050919050565b61320381612bbb565b82525050565b61321281612d4b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61324d81612bbb565b82525050565b600061325f8383613244565b60208301905092915050565b6000602082019050919050565b600061328382613218565b61328d8185613223565b935061329883613234565b8060005b838110156132c95781516132b08882613253565b97506132bb8361326b565b92505060018101905061329c565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61330b81612d83565b82525050565b600061331d8383613302565b60208301905092915050565b6000602082019050919050565b6000613341826132d6565b61334b81856132e1565b9350613356836132f2565b8060005b8381101561338757815161336e8882613311565b975061337983613329565b92505060018101905061335a565b5085935050505092915050565b600060e0820190506133a9600083018a6131fa565b6133b66020830189613209565b81810360408301526133c88188613278565b905081810360608301526133dc8187613278565b905081810360808301526133f08186613336565b905081810360a08301526134048185613336565b905081810360c08301526134188184613336565b905098975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f746f6b656e2d7265706561746564000000000000000000000000000000000000600082015250565b600061348b600e83612ae0565b915061349682613455565b602082019050919050565b600060208201905081810360008301526134ba8161347e565b9050919050565b60006134cc82612d83565b91506134d783612d83565b92508282019050808211156134ef576134ee61314f565b5b92915050565b6134fe81612d83565b82525050565b600060408201905061351960008301856131fa565b61352660208301846134f5565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061356782612d83565b915061357283612d83565b9250826135825761358161352d565b5b828204905092915050565b600061359882612d83565b91506135a383612d83565b92508282026135b181612d83565b915082820484148315176135c8576135c761314f565b5b5092915050565b60006020820190506135e460008301846131fa565b92915050565b60008060006060848603121561360357613602612b91565b5b60006136118682870161310d565b93505060206136228682870161310d565b92505060406136338682870161310d565b9150509250925092565b60008151905061364c81612d8d565b92915050565b60006020828403121561366857613667612b91565b5b60006136768482850161363d565b91505092915050565b600060608201905061369460008301866131fa565b6136a160208301856131fa565b6136ae60408301846134f5565b949350505050565b6000815190506136c581612d57565b92915050565b6000602082840312156136e1576136e0612b91565b5b60006136ef848285016136b6565b91505092915050565b7f616c6c6f77616e63653f00000000000000000000000000000000000000000000600082015250565b600061372e600a83612ae0565b9150613739826136f8565b602082019050919050565b6000602082019050818103600083015261375d81613721565b9050919050565b600060408201905061377960008301856131fa565b6137866020830184613209565b9392505050565b60006040820190506137a260008301856131fa565b6137af60208301846131fa565b9392505050565b600064ffffffffff82169050919050565b6137d0816137b6565b81146137db57600080fd5b50565b6000815190506137ed816137c7565b92915050565b60008060008060008060008060006101208a8c03121561381657613815612b91565b5b60006138248c828d0161363d565b99505060206138358c828d0161363d565b98505060406138468c828d0161363d565b97505060606138578c828d0161363d565b96505060806138688c828d0161363d565b95505060a06138798c828d0161363d565b94505060c061388a8c828d0161363d565b93505060e061389b8c828d016137de565b9250506101006138ad8c828d016136b6565b9150509295985092959850929598565b60006080820190506138d260008301876131fa565b6138df60208301866134f5565b6138ec60408301856134f5565b6138f960608301846131fa565b95945050505050565b600061ffff82169050919050565b61391981613902565b82525050565b600060a08201905061393460008301886131fa565b61394160208301876134f5565b61394e60408301866134f5565b61395b6060830185613910565b61396860808301846131fa565b969550505050505056fe4c6f67416176655632496d706f727428616464726573732c626f6f6c2c616464726573735b5d2c616464726573735b5d2c75696e743235365b5d2c75696e743235365b5d2c75696e743235365b5d29a26469706673582212201bead4e4bdd491d791a96849f16bdddf0476ded2127a722766910d70cb4bc75164736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.