Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AaveGenesisProposalPayload
Compiler Version
v0.6.12+commit.27d51765
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {IProposalExecutor} from './interfaces/IProposalExecutor.sol';import {IAaveGenesisExecutor} from './interfaces/IAaveGenesisExecutor.sol';import {IProxyWithAdminActions} from './interfaces/IProxyWithAdminActions.sol';import {IERC20} from './interfaces/IERC20.sol';import {IAssetVotingWeightProvider} from './interfaces/IAssetVotingWeightProvider.sol';import {IStakedAaveConfig} from './interfaces/IStakedAaveConfig.sol';/*** @title AaveGenesisProposalPayload* @notice Proposal payload to be executed by the Aave Governance contract via DELEGATECALL* - Transfers ownership of the different proxies to the `AaveGenesisExecutor`* - Lists AAVE and stkAAVE as voting asset in the Aave Governance* - Activates the cooldown for the activation of the LEND -> AAVE migration* @author Aave**/contract AaveGenesisProposalPayload is IProposalExecutor {event ProposalExecuted();/// @dev Initial emission per second approved by the Aave community: 400 AAVE/dayuint128 public constant EMISSION_PER_SECOND_FOR_STAKED_AAVE = 0.00462962962962963 ether;/// @dev Delta of blocks from the execution of this payload until the activation of the migration
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {IProxyWithAdminActions} from './interfaces/IProxyWithAdminActions.sol';import {ILendToAaveMigratorImplWithInitialize} from './interfaces/ILendToAaveMigratorImplWithInitialize.sol';import {IAaveTokenImpl} from './interfaces/IAaveTokenImpl.sol';import {IAaveIncentivesVaultImplWithInitialize} from './interfaces/IAaveIncentivesVaultImplWithInitialize.sol';import {IStakedAaveImplWithInitialize} from './interfaces/IStakedAaveImplWithInitialize.sol';import {IAaveGenesisExecutor} from './interfaces/IAaveGenesisExecutor.sol';/*** @title AaveGenesisExecutor* @notice Smart contract to trigger the LEND -> AAVE migration and enable the staking Safety Module* - The Aave Governance, on the payload of the proposal will call `setActivationBlock()` with the block* number at which the migration and staking starts* - Once that block number is reached, `startMigration()` will be opened to call by anybody, to execute the* programmed process* - As to execute all the operations with proxy contracts this contract needs to be the admin, a `returnAdminsToGovernance()`* function has be added to return back the admin rights to the Aave Governance if after 1 day of the `activationBlock` the* ownership of the proxies is still on this contract* @author Aave
1234567// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IProxyWithAdminActions {function upgradeToAndCall(address newImplementation, bytes calldata data) external payable;function changeAdmin(address newAdmin) external;}
123456// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface ILendToAaveMigratorImplWithInitialize {function initialize() external;}
12345678910// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IAaveTokenImpl {function initialize(address migrator,address distributor,address aaveGovernance) external;}
12345678910// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IAaveIncentivesVaultImplWithInitialize {function initialize(address aave,address stakedAave,uint256 initialStakingDistribution) external;}
1234567891011// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IStakedAaveImplWithInitialize {function initialize(address aaveGovernance,string calldata name,string calldata symbol,uint8 decimals) external;}
1234567891011// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IAaveGenesisExecutor {event MigrationProgrammedForBlock(uint256 blockNumber);event MigrationStarted();function setActivationBlock(uint256 blockNumber) external;function startMigration() external;function returnAdminsToGovernance() external;}
123456// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IProposalExecutor {function execute() external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @dev Interface of the ERC20 standard as defined in the EIP.* From https://github.com/OpenZeppelin/openzeppelin-contracts*/interface IERC20 {/*** @dev Returns the amount of tokens in existence.*/function totalSupply() external view returns (uint256);/*** @dev Returns the amount of tokens owned by `account`.*/function balanceOf(address account) external view returns (uint256);/*** @dev Moves `amount` tokens from the caller's account to `recipient`.** Returns a boolean value indicating whether the operation succeeded.** Emits a {Transfer} event.*/function transfer(address recipient, uint256 amount) external returns (bool);
123456789// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import "./IERC20.sol";interface IAssetVotingWeightProvider {function getVotingWeight(IERC20 _asset) external view returns(uint256);function setVotingWeight(IERC20 _asset, uint256 _weight) external;}
12345678910111213// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;interface IStakedAaveConfig {struct AssetConfigInput {uint128 emissionPerSecond;uint256 totalStaked;address underlyingAsset;}function configureAssets(AssetConfigInput[] calldata assetsConfigInput) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {IERC20} from './interfaces/IERC20.sol';import {VersionedInitializable} from './libs/VersionedInitializable.sol';import {SafeERC20} from './libs/SafeERC20.sol';/*** @title AaveIncentivesVault* @notice Stores all the AAVE kept for incentives, just giving approval to the different* systems that will pull AAVE funds for their specific use case* @author Aave**/contract AaveIncentivesVault is VersionedInitializable {using SafeERC20 for IERC20;uint256 public constant REVISION = 1;/*** @dev returns the revision of the implementation contract*/function getRevision() internal override pure returns (uint256) {return REVISION;}/**
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;/*** @title VersionedInitializable** @dev Helper contract to support initializer functions. To use it, replace* the constructor with a function that has the `initializer` modifier.* WARNING: Unlike constructors, initializer functions must be manually* invoked. This applies both to deploying an Initializable contract, as well* as extending an Initializable contract via inheritance.* WARNING: When used with inheritance, manual care must be taken to not invoke* a parent initializer twice, or ensure that all initializers are idempotent,* because this is not dealt with automatically as with constructors.** @author Aave, inspired by the OpenZeppelin Initializable contract*/abstract contract VersionedInitializable {/*** @dev Indicates that the contract has been initialized.*/uint256 internal lastInitializedRevision = 0;/*** @dev Modifier to use in the initializer function of a contract.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import {IERC20} from '../interfaces/IERC20.sol';import {SafeMath} from './SafeMath.sol';import {Address} from './Address.sol';/*** @title SafeERC20* @dev From https://github.com/OpenZeppelin/openzeppelin-contracts* Wrappers around ERC20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {using SafeMath for uint256;using Address for address;function safeTransfer(IERC20 token,address to,uint256 value) internal {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @dev Wrappers over Solidity's arithmetic operations with added overflow* checks.** Arithmetic operations in Solidity wrap on overflow. This can easily result* in bugs, because programmers usually assume that an overflow raises an* error, which is the standard behavior in high level programming languages.* `SafeMath` restores this intuition by reverting the transaction when an* operation overflows.** Using this library instead of the unchecked operations eliminates an entire* class of bugs, so it's recommended to use it always.*/library SafeMath {/*** @dev Returns the addition of two unsigned integers, reverting on* overflow.** Counterpart to Solidity's `+` operator.** Requirements:* - Addition cannot overflow.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @dev Collection of functions related to the address type*/library Address {/*** @dev Returns true if `account` is a contract.** [IMPORTANT]* ====* It is unsafe to assume that an address for which this function returns* false is an externally-owned account (EOA) and not a contract.** Among others, `isContract` will return false for the following* types of addresses:** - an externally-owned account* - a contract in construction* - an address where a contract will be created* - an address where a contract lived, but was destroyed* ====*/function isContract(address account) internal view returns (bool) {// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {IERC20} from './interfaces/IERC20.sol';import {IVoteStrategyToken} from './interfaces/IVoteStrategyToken.sol';import {SafeMath} from './libs/SafeMath.sol';/*** @title AaveVoteStrategyToken* @notice Wrapper contract to allow fetching aggregated balance of AAVE and stkAAVE from an address,* used on the AaveProtoGovernance* @author Aave**/contract AaveVoteStrategyToken is IVoteStrategyToken {using SafeMath for uint256;IERC20 public immutable AAVE;IERC20 public immutable STKAAVE;string internal constant NAME = 'Aave Vote Strategy (Aave Token + Staked Aave)';string internal constant SYMBOL = 'AAVE + stkAAVE';uint8 internal constant DECIMALS = 18;constructor(IERC20 aave, IERC20 stkAave) public {AAVE = aave;STKAAVE = stkAave;}
123456789101112// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IVoteStrategyToken {function name() external view returns (string memory);function symbol() external view returns (string memory);function decimals() external view returns (uint8);function balanceOf(address voter) external view returns (uint256);}
123456789101112131415// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {IERC20} from './IERC20.sol';/*** @dev Interface for ERC20 including metadata**/interface IERC20Detailed is IERC20 {function name() external view returns (string memory);function symbol() external view returns (string memory);function decimals() external view returns (uint8);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {IERC20} from './interfaces/IERC20.sol';import {IVoteStrategyToken} from './interfaces/IVoteStrategyToken.sol';import {SafeMath} from './libs/SafeMath.sol';/*** @title LendVoteStrategyToken* @notice Wrapper contract to allow fetching aggregated balance of LEND and aLEND from an address,* used on the AaveProtoGovernance* @author Aave**/contract LendVoteStrategyToken is IVoteStrategyToken {using SafeMath for uint256;IERC20 public immutable LEND;IERC20 public immutable ALEND;string internal constant NAME = 'Lend Vote Strategy (EthLend Token + Aave Interest bearing LEND)';string internal constant SYMBOL = 'LEND + aLEND';uint8 internal constant DECIMALS = 18;constructor(IERC20 lend, IERC20 aLend) public {LEND = lend;ALEND = aLend;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './UpgradeabilityProxy.sol';/*** @title BaseAdminUpgradeabilityProxy* @dev This contract combines an upgradeability proxy with an authorization* mechanism for administrative tasks.* All external functions in this contract must be guarded by the* `ifAdmin` modifier. See ethereum/solidity#3864 for a Solidity* feature proposal that would enable this to be done automatically.*/contract BaseAdminUpgradeabilityProxy is BaseUpgradeabilityProxy {/*** @dev Emitted when the administration has been transferred.* @param previousAdmin Address of the previous admin.* @param newAdmin Address of the new admin.*/event AdminChanged(address previousAdmin, address newAdmin);/*** @dev Storage slot with the admin of the contract.* This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is* validated in the constructor.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './BaseUpgradeabilityProxy.sol';/*** @title UpgradeabilityProxy* @dev Extends BaseUpgradeabilityProxy with a constructor for initializing* implementation and init data.*/contract UpgradeabilityProxy is BaseUpgradeabilityProxy {/*** @dev Contract constructor.* @param _logic Address of the initial implementation.* @param _data Data to send as msg.data to the implementation to initialize the proxied contract.* It should include the signature and the parameters of the function to be called, as described in* https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.* This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.*/constructor(address _logic, bytes memory _data) public payable {assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));_setImplementation(_logic);if (_data.length > 0) {(bool success, ) = _logic.delegatecall(_data);require(success);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './Proxy.sol';import './Address.sol';/*** @title BaseUpgradeabilityProxy* @dev This contract implements a proxy that allows to change the* implementation address to which it will delegate.* Such a change is called an implementation upgrade.*/contract BaseUpgradeabilityProxy is Proxy {/*** @dev Emitted when the implementation is upgraded.* @param implementation Address of the new implementation.*/event Upgraded(address indexed implementation);/*** @dev Storage slot with the address of the current implementation.* This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is* validated in the constructor.*/bytes32internal constant IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @title Proxy* @dev Implements delegation of calls to other contracts, with proper* forwarding of return values and bubbling of failures.* It defines a fallback function that delegates all calls to the address* returned by the abstract _implementation() internal function.*/abstract contract Proxy {/*** @dev Fallback function.* Implemented entirely in `_fallback`.*/fallback() external payable {_fallback();}/*** @return The Address of the implementation.*/function _implementation() internal virtual view returns (address);/*** @dev Delegates execution to an implementation contract.
1234567891011121314151617181920212223// SPDX-License-Identifier: MITpragma solidity 0.6.12;/** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with GSN meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/abstract contract Context {function _msgSender() internal virtual view returns (address payable) {return msg.sender;}function _msgData() internal virtual view returns (bytes memory) {this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691return msg.data;}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {IERC20} from '../interfaces/IERC20.sol';import {IERC20Detailed} from '../interfaces/IERC20Detailed.sol';import {Context} from './Context.sol';import {SafeMath} from './SafeMath.sol';/*** @title ERC20* @notice Basic ERC20 implementation* @author Aave**/contract ERC20 is Context, IERC20, IERC20Detailed {using SafeMath for uint256;mapping(address => uint256) private _balances;mapping(address => mapping(address => uint256)) private _allowances;uint256 private _totalSupply;string private _name;string private _symbol;uint8 private _decimals;constructor(string memory name,string memory symbol,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './BaseAdminUpgradeabilityProxy.sol';import './InitializableUpgradeabilityProxy.sol';/*** @title InitializableAdminUpgradeabilityProxy* @dev Extends from BaseAdminUpgradeabilityProxy with an initializer for* initializing the implementation, admin, and init data.*/contract InitializableAdminUpgradeabilityProxy isBaseAdminUpgradeabilityProxy,InitializableUpgradeabilityProxy{/*** Contract initializer.* @param _logic address of the initial implementation.* @param _admin Address of the proxy administrator.* @param _data Data to send as msg.data to the implementation to initialize the proxied contract.* It should include the signature and the parameters of the function to be called, as described in* https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.* This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.*/function initialize(address _logic,
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './BaseUpgradeabilityProxy.sol';/*** @title InitializableUpgradeabilityProxy* @dev Extends BaseUpgradeabilityProxy with an initializer for initializing* implementation and init data.*/contract InitializableUpgradeabilityProxy is BaseUpgradeabilityProxy {/*** @dev Contract initializer.* @param _logic Address of the initial implementation.* @param _data Data to send as msg.data to the implementation to initialize the proxied contract.* It should include the signature and the parameters of the function to be called, as described in* https://solidity.readthedocs.io/en/v0.4.24/abi-spec.html#function-selector-and-argument-encoding.* This parameter is optional, if no data is given the initialization call to proxied contract will be skipped.*/function initialize(address _logic, bytes memory _data) public payable {require(_implementation() == address(0));assert(IMPLEMENTATION_SLOT == bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1));_setImplementation(_logic);if (_data.length > 0) {(bool success, ) = _logic.delegatecall(_data);require(success);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {ERC20} from '../libs/ERC20.sol';/*** @title ERC20Mintable* @dev ERC20 minting logic*/contract MintableErc20 is ERC20 {constructor(string memory name,string memory symbol,uint8 decimals) public ERC20(name, symbol, decimals) {}/*** @dev Function to mint tokens* @param value The amount of tokens to mint.* @return A boolean that indicates if the operation was successful.*/function mint(uint256 value) public returns (bool) {_mint(msg.sender, value);return true;}}
1234567891011121314151617181920{"metadata": {"useLiteralContent": false},"optimizer": {"enabled": true,"runs": 200},"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","abi"]}},"evmVersion": "istanbul","libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"activationBlockDelay","type":"uint256"},{"internalType":"contract IAssetVotingWeightProvider","name":"assetVotingWeightProvider","type":"address"},{"internalType":"contract IAaveGenesisExecutor","name":"aaveGenesisExecutor","type":"address"},{"internalType":"contract IProxyWithAdminActions","name":"lendToAaveMigratorProxy","type":"address"},{"internalType":"contract IProxyWithAdminActions","name":"aaveTokenProxy","type":"address"},{"internalType":"contract IProxyWithAdminActions","name":"aaveIncentivesVaultProxy","type":"address"},{"internalType":"contract IProxyWithAdminActions","name":"stakedAaveProxy","type":"address"},{"internalType":"address","name":"lendVoteStrategyToken","type":"address"},{"internalType":"address","name":"aaveVoteStrategyToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"ProposalExecuted","type":"event"},{"inputs":[],"name":"AAVE_GENESIS_EXECUTOR","outputs":[{"internalType":"contract IAaveGenesisExecutor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AAVE_INCENTIVES_VAULT_PROXY","outputs":[{"internalType":"contract IProxyWithAdminActions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AAVE_TOKEN_PROXY","outputs":[{"internalType":"contract IProxyWithAdminActions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AAVE_VOTE_STRATEGY_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ACTIVATION_BLOCK_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ASSET_VOTING_WEIGHT_PROVIDER","outputs":[{"internalType":"contract IAssetVotingWeightProvider","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EMISSION_PER_SECOND_FOR_STAKED_AAVE","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEND_TO_AAVE_MIGRATOR_PROXY","outputs":[{"internalType":"contract IProxyWithAdminActions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LEND_VOTE_STRATEGY_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKED_AAVE_PROXY","outputs":[{"internalType":"contract IProxyWithAdminActions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6101a060405234801561001157600080fd5b50604051610af3380380610af383398101604081905261003091610087565b6080989098526001600160601b0319606097881b811660c05295871b861660a05293861b851660e05291851b841661010052841b831661012052831b821661014052821b81166101605291901b1661018052610158565b60008060008060008060008060006101208a8c0312156100a5578485fd5b8951985060208a01516100b781610140565b60408b01519098506100c881610140565b60608b01519097506100d981610140565b60808b01519096506100ea81610140565b60a08b01519095506100fb81610140565b60c08b015190945061010c81610140565b60e08b015190935061011d81610140565b6101008b015190925061012f81610140565b809150509295985092959850929598565b6001600160a01b038116811461015557600080fd5b50565b60805160a05160601c60c05160601c60e05160601c6101005160601c6101205160601c6101405160601c6101605160601c6101805160601c6108db610218600039806104a3528061071352508061040252806107ae525080610355528061055f52806105b952806107375250806102d7528061077f52508061015e528061025952508061013a52806101dd52508061018252806103d352806104745250806101b3528061063552806106ef525080610665528061075b52506108db6000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063869150ba11610071578063869150ba146100ee5780639f911e5c146100f6578063bef25654146100fe578063e10f51e914610113578063f352a0111461011b578063fee3421c14610130576100a9565b80632348c383146100ae578063332a5e5e146100cc57806338a318f3146100d457806361461954146100dc578063841761a2146100e6575b600080fd5b6100b6610138565b6040516100c391906107f0565b60405180910390f35b6100b661015c565b6100b6610180565b6100e46101a4565b005b6100b66106ed565b6100b6610711565b6100b6610735565b610106610759565b6040516100c3919061089c565b6100b661077d565b6101236107a1565b6040516100c39190610888565b6100b66107ac565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516308f2839760e41b81527f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638f283970906102129084906004016107f0565b600060405180830381600087803b15801561022c57600080fd5b505af1158015610240573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250638f28397091506102909084906004016107f0565b600060405180830381600087803b1580156102aa57600080fd5b505af11580156102be573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250638f283970915061030e9084906004016107f0565b600060405180830381600087803b15801561032857600080fd5b505af115801561033c573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250638f283970915061038c9084906004016107f0565b600060405180830381600087803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b5050604051632144e77f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250634289cefe915061042d907f00000000000000000000000000000000000000000000000000000000000000009060009060040161086f565b600060405180830381600087803b15801561044757600080fd5b505af115801561045b573d6000803e3d6000fd5b5050604051632144e77f60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250634289cefe91506104ce907f00000000000000000000000000000000000000000000000000000000000000009060019060040161086f565b600060405180830381600087803b1580156104e857600080fd5b505af11580156104fc573d6000803e3d6000fd5b5050604080516001808252818301909252606093509150816020015b6105206107d0565b81526020019060019003908161051857905050905060405180606001604052806610729fa58404be6001600160801b03168152602001600081526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152508160008151811061059757fe5b6020908102919091010152604051635952edfd60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b2a5dbfa906105ee908490600401610804565b600060405180830381600087803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b50506040516346592df960e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169250638cb25bf2915061068e90437f0000000000000000000000000000000000000000000000000000000000000000019060040161089c565b600060405180830381600087803b1580156106a857600080fd5b505af11580156106bc573d6000803e3d6000fd5b50506040517fcf88c657fb0ecbed2a624b6b4c626e2ceda32ea9ed16ea81de6362a6d965bd08925060009150a15050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6610729fa58404be81565b7f000000000000000000000000000000000000000000000000000000000000000081565b604080516060810182526000808252602082018190529181019190915290565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b8281101561086257815180516001600160801b0316855286810151878601528501516001600160a01b03168585015260609093019290850190600101610821565b5091979650505050505050565b6001600160a01b03929092168252602082015260400190565b6001600160801b0391909116815260200190565b9081526020019056fea2646970667358221220b05b8a1084407534cc5bc30c1be5c00f001f83098199391426a26d6b0590321b64736f6c634300060c003300000000000000000000000000000000000000000000000000000000000019640000000000000000000000005ac493b8c2cef1f02f117b9ba2797e7da95574aa000000000000000000000000a133459b2502b0137e85a446fa8d4e300877a007000000000000000000000000317625234562b1526ea2fac4030ea499c5291de40000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000025f2226b597e8f9514b3f68f00f494cf4f2864910000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f50000000000000000000000000671ca7e039af2cf2d2c5e7f1aa261ae78b3ffdf000000000000000000000000a5e83c1a6e56f27f7764e5c5d99a9b8786e3a391
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c8063869150ba11610071578063869150ba146100ee5780639f911e5c146100f6578063bef25654146100fe578063e10f51e914610113578063f352a0111461011b578063fee3421c14610130576100a9565b80632348c383146100ae578063332a5e5e146100cc57806338a318f3146100d457806361461954146100dc578063841761a2146100e6575b600080fd5b6100b6610138565b6040516100c391906107f0565b60405180910390f35b6100b661015c565b6100b6610180565b6100e46101a4565b005b6100b66106ed565b6100b6610711565b6100b6610735565b610106610759565b6040516100c3919061089c565b6100b661077d565b6101236107a1565b6040516100c39190610888565b6100b66107ac565b7f000000000000000000000000317625234562b1526ea2fac4030ea499c5291de481565b7f0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae981565b7f0000000000000000000000005ac493b8c2cef1f02f117b9ba2797e7da95574aa81565b6040516308f2839760e41b81527f000000000000000000000000a133459b2502b0137e85a446fa8d4e300877a007906001600160a01b037f000000000000000000000000317625234562b1526ea2fac4030ea499c5291de41690638f283970906102129084906004016107f0565b600060405180830381600087803b15801561022c57600080fd5b505af1158015610240573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b037f0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9169250638f28397091506102909084906004016107f0565b600060405180830381600087803b1580156102aa57600080fd5b505af11580156102be573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b037f00000000000000000000000025f2226b597e8f9514b3f68f00f494cf4f286491169250638f283970915061030e9084906004016107f0565b600060405180830381600087803b15801561032857600080fd5b505af115801561033c573d6000803e3d6000fd5b50506040516308f2839760e41b81526001600160a01b037f0000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f5169250638f283970915061038c9084906004016107f0565b600060405180830381600087803b1580156103a657600080fd5b505af11580156103ba573d6000803e3d6000fd5b5050604051632144e77f60e11b81526001600160a01b037f0000000000000000000000005ac493b8c2cef1f02f117b9ba2797e7da95574aa169250634289cefe915061042d907f0000000000000000000000000671ca7e039af2cf2d2c5e7f1aa261ae78b3ffdf9060009060040161086f565b600060405180830381600087803b15801561044757600080fd5b505af115801561045b573d6000803e3d6000fd5b5050604051632144e77f60e11b81526001600160a01b037f0000000000000000000000005ac493b8c2cef1f02f117b9ba2797e7da95574aa169250634289cefe91506104ce907f000000000000000000000000a5e83c1a6e56f27f7764e5c5d99a9b8786e3a3919060019060040161086f565b600060405180830381600087803b1580156104e857600080fd5b505af11580156104fc573d6000803e3d6000fd5b5050604080516001808252818301909252606093509150816020015b6105206107d0565b81526020019060019003908161051857905050905060405180606001604052806610729fa58404be6001600160801b03168152602001600081526020017f0000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f56001600160a01b03168152508160008151811061059757fe5b6020908102919091010152604051635952edfd60e11b81526001600160a01b037f0000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f5169063b2a5dbfa906105ee908490600401610804565b600060405180830381600087803b15801561060857600080fd5b505af115801561061c573d6000803e3d6000fd5b50506040516346592df960e11b81526001600160a01b037f000000000000000000000000a133459b2502b0137e85a446fa8d4e300877a007169250638cb25bf2915061068e90437f0000000000000000000000000000000000000000000000000000000000001964019060040161089c565b600060405180830381600087803b1580156106a857600080fd5b505af11580156106bc573d6000803e3d6000fd5b50506040517fcf88c657fb0ecbed2a624b6b4c626e2ceda32ea9ed16ea81de6362a6d965bd08925060009150a15050565b7f000000000000000000000000a133459b2502b0137e85a446fa8d4e300877a00781565b7f000000000000000000000000a5e83c1a6e56f27f7764e5c5d99a9b8786e3a39181565b7f0000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f581565b7f000000000000000000000000000000000000000000000000000000000000196481565b7f00000000000000000000000025f2226b597e8f9514b3f68f00f494cf4f28649181565b6610729fa58404be81565b7f0000000000000000000000000671ca7e039af2cf2d2c5e7f1aa261ae78b3ffdf81565b604080516060810182526000808252602082018190529181019190915290565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b8281101561086257815180516001600160801b0316855286810151878601528501516001600160a01b03168585015260609093019290850190600101610821565b5091979650505050505050565b6001600160a01b03929092168252602082015260400190565b6001600160801b0391909116815260200190565b9081526020019056fea2646970667358221220b05b8a1084407534cc5bc30c1be5c00f001f83098199391426a26d6b0590321b64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000019640000000000000000000000005ac493b8c2cef1f02f117b9ba2797e7da95574aa000000000000000000000000a133459b2502b0137e85a446fa8d4e300877a007000000000000000000000000317625234562b1526ea2fac4030ea499c5291de40000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000025f2226b597e8f9514b3f68f00f494cf4f2864910000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f50000000000000000000000000671ca7e039af2cf2d2c5e7f1aa261ae78b3ffdf000000000000000000000000a5e83c1a6e56f27f7764e5c5d99a9b8786e3a391
-----Decoded View---------------
Arg [0] : activationBlockDelay (uint256): 6500
Arg [1] : assetVotingWeightProvider (address): 0x5aC493b8C2cEf1F02F117B9BA2797e7DA95574aa
Arg [2] : aaveGenesisExecutor (address): 0xA133459B2502B0137E85A446FA8D4e300877A007
Arg [3] : lendToAaveMigratorProxy (address): 0x317625234562B1526Ea2FaC4030Ea499C5291de4
Arg [4] : aaveTokenProxy (address): 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9
Arg [5] : aaveIncentivesVaultProxy (address): 0x25F2226B597E8F9514B3F68F00f494cF4f286491
Arg [6] : stakedAaveProxy (address): 0x4da27a545c0c5B758a6BA100e3a049001de870f5
Arg [7] : lendVoteStrategyToken (address): 0x0671CA7E039af2cF2D2c5e7F1Aa261Ae78B3ffDF
Arg [8] : aaveVoteStrategyToken (address): 0xA5E83c1a6E56f27F7764E5C5d99A9B8786e3a391
-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000001964
Arg [1] : 0000000000000000000000005ac493b8c2cef1f02f117b9ba2797e7da95574aa
Arg [2] : 000000000000000000000000a133459b2502b0137e85a446fa8d4e300877a007
Arg [3] : 000000000000000000000000317625234562b1526ea2fac4030ea499c5291de4
Arg [4] : 0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9
Arg [5] : 00000000000000000000000025f2226b597e8f9514b3f68f00f494cf4f286491
Arg [6] : 0000000000000000000000004da27a545c0c5b758a6ba100e3a049001de870f5
Arg [7] : 0000000000000000000000000671ca7e039af2cf2d2c5e7f1aa261ae78b3ffdf
Arg [8] : 000000000000000000000000a5e83c1a6e56f27f7764e5c5d99a9b8786e3a391
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Showing 0 tokens with a value of $0
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.