ERC-20
Aave
Overview
Max Total Supply
2,839,007.980615738278693734 stkAAVE
Holders
20,436 ( 0.015%)
Market
Price
$184.57 @ 0.085888 ETH (-0.68%)
Onchain Market Cap
$523,995,702.98
Circulating Supply Market Cap
$2,783,807,954.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
60.748854585641368866 stkAAVEValue
$11,212.42 ( ~5.2176 Eth) [0.0021%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
InitializableAdminUpgradeabilityProxy
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: MITpragma solidity 0.6.12;import './BaseAdminUpgradeabilityProxy.sol';import './InitializableUpgradeabilityProxy.sol';/*** @title InitializableAdminUpgradeabilityProxy* @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability* 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(
123456789// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {DistributionTypes} from '../lib/DistributionTypes.sol';interface IAaveDistributionManager {function configureAssets(DistributionTypes.AssetConfigInput[] calldata assetsConfigInput) external;}
1234567891011121314151617// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;library DistributionTypes {struct AssetConfigInput {uint128 emissionPerSecond;uint256 totalStaked;address underlyingAsset;}struct UserStakeInput {address underlyingAsset;uint256 stakedByUser;uint256 totalStaked;}}
1234567891011121314151617181920212223// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;interface IAaveIncentivesController {function handleAction(address asset,uint256 userBalance,uint256 totalSupply) external;function getRewardsBalance(address[] calldata assets, address user)externalviewreturns (uint256);function claimRewards(address[] calldata assets,uint256 amount,address to,bool stake) external returns (uint256);}
12345pragma solidity ^0.6.12;interface IAToken {function getScaledUserBalanceAndSupply(address user) external view returns (uint256, uint256);}
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);
12345678910111213// 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);}
123456789101112// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface IStakedAave {function stake(address to, uint256 amount) external;function redeem(address to, uint256 amount) external;function cooldown() external;function claimRewards(address to, uint256 amount) external;}
123456// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;interface ITransferHook {function onTransfer(address from, address to, uint256 amount) external;}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @dev Collection of functions related to the address type* From https://github.com/OpenZeppelin/openzeppelin-contracts*/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) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './UpgradeabilityProxy.sol';/*** @title BaseAdminUpgradeabilityProxy* @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability* 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: agpl-3.0pragma solidity 0.6.12;import './BaseUpgradeabilityProxy.sol';/*** @title UpgradeabilityProxy* @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability* 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) {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './Proxy.sol';import './Address.sol';/*** @title BaseUpgradeabilityProxy* @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability* 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.*/bytes32
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @title Proxy* @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability* 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);/**
12345678910111213141516171819202122232425// SPDX-License-Identifier: MITpragma solidity 0.6.12;/*** @dev From https://github.com/OpenZeppelin/openzeppelin-contracts* 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 {Context} from './Context.sol';import {IERC20} from '../interfaces/IERC20.sol';import {IERC20Detailed} from '../interfaces/IERC20Detailed.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: agpl-3.0pragma solidity 0.6.12;/*** @dev From https://github.com/OpenZeppelin/openzeppelin-contracts* 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: agpl-3.0pragma solidity 0.6.12;import {ERC20} from '../lib/ERC20.sol';import {ITransferHook} from '../interfaces/ITransferHook.sol';/*** @title ERC20WithSnapshot* @notice ERC20 including snapshots of balances on transfer-related actions* @author Aave**/contract ERC20WithSnapshot is ERC20 {/// @dev snapshot of a value on a specific block, used for balancesstruct Snapshot {uint128 blockNumber;uint128 value;}mapping (address => mapping (uint256 => Snapshot)) public _snapshots;mapping (address => uint256) public _countsSnapshots;/// @dev reference to the Aave governance contract to call (if initialized) on _beforeTokenTransfer/// !!! IMPORTANT The Aave governance is considered a trustable contract, being its responsibility/// to control all potential reentrancies by calling back the this contractITransferHook public _aaveGovernance;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.6.12;import './BaseUpgradeabilityProxy.sol';/*** @title InitializableUpgradeabilityProxy* @dev From https://github.com/OpenZeppelin/openzeppelin-sdk/tree/solc-0.6/packages/lib/contracts/upgradeability* 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);
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 {callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {IAaveIncentivesController} from '../interfaces/IAaveIncentivesController.sol';import {DistributionTypes} from '../lib/DistributionTypes.sol';import {IAToken} from '../interfaces/IAToken.sol';contract ATokenMock is IAToken {IAaveIncentivesController public _aic;uint256 internal _userBalance;uint256 internal _totalSupply;// hack to be able to test event from EI properlyevent RewardsAccrued(address indexed user, uint256 amount);// hack to be able to test event from Distribution manager properlyevent AssetConfigUpdated(address indexed asset, uint256 emission);event AssetIndexUpdated(address indexed asset, uint256 index);event UserIndexUpdated(address indexed user, address indexed asset, uint256 index);constructor(IAaveIncentivesController aic) public {_aic = aic;}function handleActionOnAic(
123456789101112// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import {ITransferHook} from "../interfaces/ITransferHook.sol";contract MockTransferHook is ITransferHook {event MockHookEvent();function onTransfer(address from, address to, uint256 amount) external override {emit MockHookEvent();}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {SafeMath} from '../lib/SafeMath.sol';import {DistributionTypes} from '../lib/DistributionTypes.sol';import {IAaveDistributionManager} from '../interfaces/IAaveDistributionManager.sol';/*** @title AaveDistributionManager* @notice Accounting contract to manage multiple staking distributions* @author Aave**/contract AaveDistributionManager is IAaveDistributionManager {using SafeMath for uint256;struct AssetData {uint128 emissionPerSecond;uint128 lastUpdateTimestamp;uint256 index;mapping(address => uint256) users;}uint256 public immutable DISTRIBUTION_END;address public immutable EMISSION_MANAGER;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {DistributionTypes} from '../lib/DistributionTypes.sol';import {IERC20} from '../interfaces/IERC20.sol';import {IAToken} from '../interfaces/IAToken.sol';import {IAaveIncentivesController} from '../interfaces/IAaveIncentivesController.sol';import {IStakedAave} from '../interfaces/IStakedAave.sol';import {VersionedInitializable} from '../utils/VersionedInitializable.sol';import {AaveDistributionManager} from './AaveDistributionManager.sol';/*** @title AaveIncentivesController* @notice Distributor contract for rewards to the Aave protocol* @author Aave**/contract AaveIncentivesController isIAaveIncentivesController,VersionedInitializable,AaveDistributionManager{uint256 public constant REVISION = 1;IStakedAave public immutable PSM;
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: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {IERC20} from '../interfaces/IERC20.sol';import {StakedToken} from './StakedToken.sol';/*** @title StakedAave* @notice StakedToken with AAVE token as staked token* @author Aave**/contract StakedAave is StakedToken {string internal constant NAME = 'Staked Aave';string internal constant SYMBOL = 'stkAAVE';uint8 internal constant DECIMALS = 18;constructor(IERC20 stakedToken,IERC20 rewardToken,uint256 cooldownSeconds,uint256 unstakeWindow,address rewardsVault,address emissionManager,uint128 distributionDuration) public StakedToken(
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;pragma experimental ABIEncoderV2;import {IERC20} from '../interfaces/IERC20.sol';import {IStakedAave} from '../interfaces/IStakedAave.sol';import {ITransferHook} from '../interfaces/ITransferHook.sol';import {ERC20WithSnapshot} from '../lib/ERC20WithSnapshot.sol';import {SafeERC20} from '../lib/SafeERC20.sol';import {VersionedInitializable} from '../utils/VersionedInitializable.sol';import {DistributionTypes} from '../lib/DistributionTypes.sol';import {AaveDistributionManager} from './AaveDistributionManager.sol';/*** @title StakedToken* @notice Contract to stake Aave token, tokenize the position and get rewards, inheriting from a distribution manager contract* @author Aave**/contract StakedToken is IStakedAave, ERC20WithSnapshot, VersionedInitializable, AaveDistributionManager {using SafeERC20 for IERC20;uint256 public constant REVISION = 1;IERC20 public immutable STAKED_TOKEN;IERC20 public immutable REWARD_TOKEN;uint256 public immutable COOLDOWN_SECONDS;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: agpl-3.0pragma solidity 0.6.12;import '../lib/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[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"address","name":"_admin","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"initialize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50610905806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610513945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610543945050505050565b34801561031257600080fd5b50610142610623565b61032361064e565b61033361032e610656565b61067b565b565b61033d61069f565b6001600160a01b0316336001600160a01b031614156103645761035f816106c4565b61036c565b61036c61031b565b50565b61037761069f565b6001600160a01b0316336001600160a01b0316141561040f57610399836106c4565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b600061042661069f565b6001600160a01b0316336001600160a01b0316141561044e57610447610656565b9050610456565b61045661031b565b90565b61046161069f565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104bf5760405162461bcd60e51b815260040180806020018281038252603681526020018061085f6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104e861069f565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610704565b600061051d610656565b6001600160a01b03161461053057600080fd5b61053a8382610543565b61041782610704565b600061054d610656565b6001600160a01b03161461056057600080fd5b61056982610728565b80511561061f576000826001600160a01b0316826040518082805190602001908083835b602083106105ac5780518252601f19909201916020918201910161058d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b505090508061041757600080fd5b5050565b600061062d61069f565b6001600160a01b0316336001600160a01b0316141561044e5761044761069f565b610333610790565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561069a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106cd81610728565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610731816107f0565b61076c5760405162461bcd60e51b815260040180806020018281038252603b815260200180610895603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b61079861069f565b6001600160a01b0316336001600160a01b031614156107e85760405162461bcd60e51b815260040180806020018281038252603281526020018061082d6032913960400191505060405180910390fd5b610333610333565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061082457508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212202ba42ef8b7d4386b17a26c0b743304e65bff0946d3f4a5b64d14ab39d4b3633b64736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106100705760003560e01c80638f2839701161004e5780638f2839701461015e578063cf7a1d7714610191578063d1f5789414610250578063f851a4401461030657610070565b80633659cfe61461007a5780634f1ef286146100ad5780635c60da1b1461012d575b61007861031b565b005b34801561008657600080fd5b506100786004803603602081101561009d57600080fd5b50356001600160a01b0316610335565b610078600480360360408110156100c357600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100ee57600080fd5b82018360208201111561010057600080fd5b8035906020019184600183028401116401000000008311171561012257600080fd5b50909250905061036f565b34801561013957600080fd5b5061014261041c565b604080516001600160a01b039092168252519081900360200190f35b34801561016a57600080fd5b506100786004803603602081101561018157600080fd5b50356001600160a01b0316610459565b610078600480360360608110156101a757600080fd5b6001600160a01b0382358116926020810135909116918101906060810160408201356401000000008111156101db57600080fd5b8201836020820111156101ed57600080fd5b8035906020019184600183028401116401000000008311171561020f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610513945050505050565b6100786004803603604081101561026657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561029157600080fd5b8201836020820111156102a357600080fd5b803590602001918460018302840111640100000000831117156102c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610543945050505050565b34801561031257600080fd5b50610142610623565b61032361064e565b61033361032e610656565b61067b565b565b61033d61069f565b6001600160a01b0316336001600160a01b031614156103645761035f816106c4565b61036c565b61036c61031b565b50565b61037761069f565b6001600160a01b0316336001600160a01b0316141561040f57610399836106c4565b6000836001600160a01b031683836040518083838082843760405192019450600093509091505080830381855af49150503d80600081146103f6576040519150601f19603f3d011682016040523d82523d6000602084013e6103fb565b606091505b505090508061040957600080fd5b50610417565b61041761031b565b505050565b600061042661069f565b6001600160a01b0316336001600160a01b0316141561044e57610447610656565b9050610456565b61045661031b565b90565b61046161069f565b6001600160a01b0316336001600160a01b03161415610364576001600160a01b0381166104bf5760405162461bcd60e51b815260040180806020018281038252603681526020018061085f6036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6104e861069f565b604080516001600160a01b03928316815291841660208301528051918290030190a161035f81610704565b600061051d610656565b6001600160a01b03161461053057600080fd5b61053a8382610543565b61041782610704565b600061054d610656565b6001600160a01b03161461056057600080fd5b61056982610728565b80511561061f576000826001600160a01b0316826040518082805190602001908083835b602083106105ac5780518252601f19909201916020918201910161058d565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d806000811461060c576040519150601f19603f3d011682016040523d82523d6000602084013e610611565b606091505b505090508061041757600080fd5b5050565b600061062d61069f565b6001600160a01b0316336001600160a01b0316141561044e5761044761069f565b610333610790565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b3660008037600080366000845af43d6000803e80801561069a573d6000f35b3d6000fd5b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b6106cd81610728565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355565b610731816107f0565b61076c5760405162461bcd60e51b815260040180806020018281038252603b815260200180610895603b913960400191505060405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b61079861069f565b6001600160a01b0316336001600160a01b031614156107e85760405162461bcd60e51b815260040180806020018281038252603281526020018061082d6032913960400191505060405180910390fd5b610333610333565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061082457508115155b94935050505056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a26469706673582212202ba42ef8b7d4386b17a26c0b743304e65bff0946d3f4a5b64d14ab39d4b3633b64736f6c634300060c0033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.