Source Code
Latest 8 from a total of 8 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Bulk Set Delegat... | 19922590 | 347 days ago | IN | 0 FRAX | 0.00000004 | ||||
| Bulk Set Delegat... | 8760521 | 605 days ago | IN | 0 FRAX | 0.00017001 | ||||
| Add Frax Contrib... | 6686069 | 653 days ago | IN | 0 FRAX | 0.00000555 | ||||
| Bulk Set Delegat... | 6137546 | 666 days ago | IN | 0 FRAX | 0.00002147 | ||||
| Bulk Set Delegat... | 4451935 | 705 days ago | IN | 0 FRAX | 0.0083179 | ||||
| Bulk Set Delegat... | 4451900 | 705 days ago | IN | 0 FRAX | 0.00756296 | ||||
| Add Frax Contrib... | 4451891 | 705 days ago | IN | 0 FRAX | 0.00000588 | ||||
| Bulk Set Delegat... | 4451842 | 705 days ago | IN | 0 FRAX | 0.00037362 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DelegationRegistry
Compiler Version
v0.8.23+commit.f704f362
Optimization Enabled:
Yes with 10000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.8.0;
// ====================================================================
// | ______ _______ |
// | / _____________ __ __ / ____(_____ ____ _____ ________ |
// | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
// | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
// | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
// | |
// ====================================================================
// ======================= Delegation Registry ========================
// ====================================================================
import { OwnedV2 } from "src/contracts/VestedFXS-and-Flox/VestedFXS/OwnedV2.sol";
import { IDelegationRegistryEvents } from "./IDelegationRegistryEvents.sol";
/**
* @title DelegationRegistry
* @author Frax Finance
* @notice The DelegationRegistry contract is used to manage delegations of Frax incentives and points.
*/
contract DelegationRegistry is OwnedV2, IDelegationRegistryEvents {
mapping(address => bool) public isFraxContributor;
mapping(address => bool) public selfManagingDelegations;
mapping(address => bool) public delegationManagementDisabled;
mapping(address => address) internal delegations;
/**
* @notice Used to initialize the smart contract.
* @dev The initial owner is set as the deployer of the smart contract.
*/
constructor() OwnedV2(msg.sender) {}
/**
* @notice Sets the delegation for the caller.
* @dev Once the delegation is set for self, the Frax contributors and delegatees can no longer manage the
* delegation of that address.
* @dev This will be reverted if the delegate has disabled delegation management.
* @param delegatee Address to delegate to
*/
function setDelegationForSelf(address delegatee) external {
if (!selfManagingDelegations[msg.sender]) selfManagingDelegations[msg.sender] = true;
if (delegationManagementDisabled[msg.sender]) revert DelegationManagementDisabled();
address previousDelegatee = delegations[msg.sender];
delegations[msg.sender] = delegatee;
emit DelegationUpdated(msg.sender, previousDelegatee, delegatee);
}
/**
* @notice Removes the delegation for the caller.
* @dev Once the delegation is removed for self, the Frax contributors and delegatees can no longer manage the
* delegation of that address.
* @dev This will be reverted if the delegate has disabled delegation management.
* @dev The delegation is removed by setting the delegatee to the zero address.
*/
function removeDelegationForSelf() external {
if (!selfManagingDelegations[msg.sender]) selfManagingDelegations[msg.sender] = true;
if (delegationManagementDisabled[msg.sender]) revert DelegationManagementDisabled();
address delegatee = delegations[msg.sender];
delete delegations[msg.sender];
emit DelegationUpdated(msg.sender, delegatee, address(0));
}
/**
* @notice Disables self-managing delegations for the caller.
* @dev Once the self-managing delegations are disabled for the caller, the Frax contributors and delegatees can
* manage the delegations of that address.
*/
function disableSelfManagingDelegations() external {
if (!selfManagingDelegations[msg.sender]) revert SelfManagingDelegationsDisabled();
selfManagingDelegations[msg.sender] = false;
}
/**
* @notice Disables delegation management for the caller.
* @dev Once the delegation management is disabled for the caller, the Frax contributors and delegatees can no
* longer manage the delegations of that address. The delegations can not be managed by the caller either.
* @dev The operation will be reverted if the delegation management is already disabled for the caller.
*/
function disableDelegationManagement() external {
if (delegationManagementDisabled[msg.sender]) revert DelegationManagementDisabled();
delegationManagementDisabled[msg.sender] = true;
}
/**
* @notice Sets the delegation for a delegator.
* @dev This can be used by Frax contributors and delegatees to manage the delegations of other addresses until the
* delegator sets or removes the delegation for self.
* @param delegator Address to set the delegation for
* @param delegatee Address to delegate to
*/
function setDelegation(address delegator, address delegatee) external {
if (selfManagingDelegations[delegator]) revert SelfManagingDelegations();
if (!isFraxContributor[msg.sender] && delegations[delegator] != msg.sender) {
revert NotFraxContributorOrDelegatee();
}
if (delegationManagementDisabled[delegator]) revert DelegationManagementDisabled();
address previousDelegatee = delegations[delegator];
delegations[delegator] = delegatee;
emit DelegationUpdated(delegator, previousDelegatee, delegatee);
}
/**
* @notice Removes the delegation for a delegator.
* @dev This can be used by Frax contributors and delegatees to remove the delegations of other addresses until the
* delegator sets or removes the delegation for self.
* @dev The delegation is removed by setting the delegatee to the zero address.
* @param delegator Address to remove the delegation for
*/
function removeDelegation(address delegator) external {
if (selfManagingDelegations[delegator]) revert SelfManagingDelegations();
if (!isFraxContributor[msg.sender] && delegations[delegator] != msg.sender) {
revert NotFraxContributorOrDelegatee();
}
if (delegationManagementDisabled[delegator]) revert DelegationManagementDisabled();
address delegatee = delegations[delegator];
delete delegations[delegator];
emit DelegationUpdated(delegator, delegatee, address(0));
}
/**
* @notice Sets delegations for multiple delegators as Frax contributor.
* @dev This can be used by Frax contributors to manage the delegations of multiple addresses until they set or
* remove delegations for self.
* @dev The `delegators` and `delegatees` arrays must be the same length.
* @dev If any of the `delegators` are self-managing, the operation will be reverted.
* @param delegators An array of addresses to set the delegations for
* @param delegatees An array of addresses to delegate to
*/
function bulkSetDelegationsAsFraxContributor(address[] memory delegators, address[] memory delegatees) external {
_onlyFraxContributor();
if (delegators.length != delegatees.length) revert ArrayLengthMismatch();
address previousDelegatee;
for (uint256 i; i < delegators.length; ) {
if (selfManagingDelegations[delegators[i]]) revert SelfManagingDelegations();
if (delegationManagementDisabled[delegators[i]]) revert DelegationManagementDisabled();
previousDelegatee = delegations[delegators[i]];
delegations[delegators[i]] = delegatees[i];
emit DelegationUpdated(delegators[i], previousDelegatee, delegatees[i]);
unchecked {
++i;
}
}
}
/**
* @notice Removes delegations for multiple delegators as Frax contributor.
* @dev This can be used by Frax contributors to remove the delegations of multiple addresses until they set or
* remove the delegations for self.
* @dev If any of the `delegators` are self-managing, the operation will be reverted.
* @param delegators An array of addresses to remove the delegations for
*/
function bulkRemoveDelegationsAsFraxContributor(address[] memory delegators) external {
_onlyFraxContributor();
address delegatee;
for (uint256 i; i < delegators.length; ) {
if (selfManagingDelegations[delegators[i]]) revert SelfManagingDelegations();
if (delegationManagementDisabled[delegators[i]]) revert DelegationManagementDisabled();
delegatee = delegations[delegators[i]];
delete delegations[delegators[i]];
emit DelegationUpdated(delegators[i], delegatee, address(0));
unchecked {
++i;
}
}
}
/**
* @notice Sets delegations for multiple delegators as delegatee.
* @dev This can be used by delegatee to manage the delegations of multiple addresses until they set or remove
* delegations for self.
* @dev The `delegators` and `delegatees` arrays must be the same length.
* @dev If any of the `delegators` are self-managing, the operation will be reverted.
* @param delegators An array of addresses to set the delegations for
* @param delegatees An array of addresses to delegate to
*/
function bulkSetDelegationsAsDelegatee(address[] memory delegators, address[] memory delegatees) external {
if (delegators.length != delegatees.length) revert ArrayLengthMismatch();
address previousDelegatee;
for (uint256 i; i < delegators.length; ) {
if (selfManagingDelegations[delegators[i]]) revert SelfManagingDelegations();
if (msg.sender != delegations[delegators[i]]) revert NotDelegatee();
if (delegationManagementDisabled[delegators[i]]) revert DelegationManagementDisabled();
previousDelegatee = delegations[delegators[i]];
delegations[delegators[i]] = delegatees[i];
emit DelegationUpdated(delegators[i], previousDelegatee, delegatees[i]);
unchecked {
++i;
}
}
}
/**
* @notice Removes delegations for multiple delegators as delegatee.
* @dev This can be used by delegatee to remove the delegations of multiple addresses until they set or remove the
* delegations for self.
* @dev If any of the `delegators` are self-managing, the operation will be reverted.
* @param delegators An array of addresses to remove the delegations for
*/
function bulkRemoveDelegationsAsDelegatee(address[] memory delegators) external {
address delegatee;
for (uint256 i; i < delegators.length; ) {
if (selfManagingDelegations[delegators[i]]) revert SelfManagingDelegations();
if (msg.sender != delegations[delegators[i]]) revert NotDelegatee();
if (delegationManagementDisabled[delegators[i]]) revert DelegationManagementDisabled();
delegatee = delegations[delegators[i]];
delete delegations[delegators[i]];
emit DelegationUpdated(delegators[i], delegatee, address(0));
unchecked {
++i;
}
}
}
/**
* @notice Adds an address as a Frax contributor.
* @dev This can only be called by the owner of the smart contract.
* @dev The operation will be reverted if the address is already a Frax contributor.
* @param contributor Address to add as a Frax contributor
*/
function addFraxContributor(address contributor) external {
_onlyOwner();
if (isFraxContributor[contributor]) revert AlreadyFraxContributor();
isFraxContributor[contributor] = true;
emit FraxContributorAdded(contributor);
}
/**
* @notice Removes an address as a Frax contributor.
* @dev This can only be called by the owner of the smart contract.
* @dev The operation will be reverted if the address is not a Frax contributor.
* @param contributor Address to remove as a Frax contributor
*/
function removeFraxContributor(address contributor) external {
_onlyOwner();
if (!isFraxContributor[contributor]) revert NotFraxContributor();
isFraxContributor[contributor] = false;
emit FraxContributorRemoved(contributor);
}
/**
* @notice Re-enables delegation management for an address.
* @dev This can only be called by a Frax contributor.
* @dev The operation will be reverted if the delegation management is already enabled for the address.
* @dev This function is intended to be called in the occasion that the delegation management was disabled by
* mistake or if the delegatee address was compromised.
* @dev If you require to re-enable the delegation management for an address, please contact the Frax team.
* @param delegator Address to re-enable the delegation management for
*/
function reenableDelegationManagement(address delegator) external {
_onlyFraxContributor();
if (!delegationManagementDisabled[delegator]) revert DelegationManagementEnabled();
delegationManagementDisabled[delegator] = false;
}
/**
* @notice Gets the delegation for a delegator.
* @dev If the delegation is not set for the delegator, the delegator is the delegatee.
* @param delegator Address to get the delegation for
* @return Address that the delegator is delegating to
*/
function delegationsOf(address delegator) external view returns (address) {
address delegatee;
delegatee = delegations[delegator] == address(0) ? delegator : delegations[delegator];
return delegatee;
}
/**
* @notice Gets the delegations for multiple delegators.
* @dev If the delegation is not set for a delegator, the delegator is the delegatee.
* @param delegators An array of addresses to get the delegations for
* @return An array of addresses that the delegators are delegating to
*/
function bulkDelegationsOf(address[] memory delegators) external view returns (address[] memory) {
address[] memory delegatees = new address[](delegators.length);
for (uint256 i; i < delegators.length; ) {
delegatees[i] = delegations[delegators[i]] == address(0) ? delegators[i] : delegations[delegators[i]];
unchecked {
++i;
}
}
return delegatees;
}
/**
* @notice Checks if the msg sender is a Frax contributor.
* @dev It the msg.sender is not a Frax contributor, the operation will be reverted.
*/
function _onlyFraxContributor() internal view {
if (!isFraxContributor[msg.sender]) revert NotFraxContributor();
}
/// @notice The address is already a Frax contributor
error AlreadyFraxContributor();
/// @notice The array lengths are mismatched
error ArrayLengthMismatch();
/// @notice The delegation management is already disabled
error DelegationManagementDisabled();
/// @notice The delegation management is already enabled
error DelegationManagementEnabled();
/// @notice Only the delegatee is allowed to perform this action
error NotDelegatee();
/// @notice Only a Frax contributor is allowed to perform this action
error NotFraxContributor();
/// @notice Only a Frax contributor or delegatee is allowed to perform this action
error NotFraxContributorOrDelegatee();
/// @notice The delegator is managing their own delegations and is the only address allowed to perform this action
error SelfManagingDelegations();
/// @notice The delegator is not managing their own delegations
error SelfManagingDelegationsDisabled();
}// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.8.0;
// https://docs.synthetix.io/contracts/Owned
contract OwnedV2 {
error OwnerCannotBeZero();
error InvalidOwnershipAcceptance();
error OnlyOwner();
address public owner;
address public nominatedOwner;
constructor(address _owner) {
// require(_owner != address(0), "Owner address cannot be 0");
if (_owner == address(0)) revert OwnerCannotBeZero();
owner = _owner;
emit OwnerChanged(address(0), _owner);
}
function nominateNewOwner(address _owner) external onlyOwner {
nominatedOwner = _owner;
emit OwnerNominated(_owner);
}
function acceptOwnership() external {
// require(msg.sender == nominatedOwner, "You must be nominated before you can accept ownership");
if (msg.sender != nominatedOwner) revert InvalidOwnershipAcceptance();
emit OwnerChanged(owner, nominatedOwner);
owner = nominatedOwner;
nominatedOwner = address(0);
}
modifier onlyOwner() {
// require(msg.sender == owner, "Only the contract owner may perform this action");
if (msg.sender != owner) revert OnlyOwner();
_;
}
function _onlyOwner() internal view {
if (msg.sender != owner) revert OnlyOwner();
}
event OwnerNominated(address newOwner);
event OwnerChanged(address oldOwner, address newOwner);
}// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity >=0.8.0;
// ====================================================================
// | ______ _______ |
// | / _____________ __ __ / ____(_____ ____ _____ ________ |
// | / /_ / ___/ __ `| |/_/ / /_ / / __ \/ __ `/ __ \/ ___/ _ \ |
// | / __/ / / / /_/ _> < / __/ / / / / / /_/ / / / / /__/ __/ |
// | /_/ /_/ \__,_/_/|_| /_/ /_/_/ /_/\__,_/_/ /_/\___/\___/ |
// | |
// ====================================================================
// ==================== IDelegationRegistryEvents =====================
// ====================================================================
/**
* @title IDelegationRegistryEvents
* @author Frax Finance
* @notice A collection of events used by the Flox DelegationRegistry
*/
contract IDelegationRegistryEvents {
/**
* @notice Emitted when a delegator updates their delegation settings.
* @param delegator Address delegating their points
* @param previousDelegatee Address that the delegator delegated to before
* @param newDelegatee Address that the delegator is delegating to now
*/
event DelegationUpdated(address indexed delegator, address indexed previousDelegatee, address indexed newDelegatee);
/**
* @notice Emitted when a new address is added as a Frax Contributor.
* @param contributor The address added as the contributor
*/
event FraxContributorAdded(address indexed contributor);
/**
* @notice Emitted when an address is removed as a Frax Contributor.
* @param contributor The address removed as the contributor
*/
event FraxContributorRemoved(address indexed contributor);
}{
"remappings": [
"frax-std/=lib/frax-standard-solidity/src/",
"@eth-optimism/=lib/optimism/packages/",
"lib/optimism/packages/contracts-bedrock:src/=lib/optimism/packages/contracts-bedrock/src/",
"src/=src/",
"@openzeppelin-4/=node_modules/@openzeppelin-4/",
"@openzeppelin-5/=node_modules/@openzeppelin-5/",
"@openzeppelin/=node_modules/@openzeppelin/",
"@rari-capital/=node_modules/@rari-capital/",
"clones-with-immutable-args/=lib/optimism/packages/contracts-bedrock/lib/clones-with-immutable-args/src/",
"ds-test/=lib/frax-standard-solidity/lib/forge-std/lib/ds-test/src/",
"forge-std/=lib/frax-standard-solidity/lib/forge-std/src/",
"frax-standard-solidity/=lib/frax-standard-solidity/src/",
"kontrol-cheatcodes/=lib/optimism/packages/contracts-bedrock/lib/kontrol-cheatcodes/src/",
"lib-keccak/=lib/optimism/packages/contracts-bedrock/lib/lib-keccak/contracts/",
"openzeppelin-contracts-upgradeable/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts-upgradeable/",
"openzeppelin-contracts/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts/",
"optimism/=lib/optimism/",
"safe-contracts/=lib/optimism/packages/contracts-bedrock/lib/safe-contracts/contracts/",
"solady/=lib/optimism/packages/contracts-bedrock/lib/solady/",
"solidity-bytes-utils/=lib/frax-standard-solidity/lib/solidity-bytes-utils/",
"solmate/=lib/optimism/packages/contracts-bedrock/lib/solmate/src/"
],
"optimizer": {
"enabled": true,
"runs": 10000
},
"metadata": {
"useLiteralContent": false,
"bytecodeHash": "ipfs",
"appendCBOR": true
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"evmVersion": "paris",
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyFraxContributor","type":"error"},{"inputs":[],"name":"ArrayLengthMismatch","type":"error"},{"inputs":[],"name":"DelegationManagementDisabled","type":"error"},{"inputs":[],"name":"DelegationManagementEnabled","type":"error"},{"inputs":[],"name":"InvalidOwnershipAcceptance","type":"error"},{"inputs":[],"name":"NotDelegatee","type":"error"},{"inputs":[],"name":"NotFraxContributor","type":"error"},{"inputs":[],"name":"NotFraxContributorOrDelegatee","type":"error"},{"inputs":[],"name":"OnlyOwner","type":"error"},{"inputs":[],"name":"OwnerCannotBeZero","type":"error"},{"inputs":[],"name":"SelfManagingDelegations","type":"error"},{"inputs":[],"name":"SelfManagingDelegationsDisabled","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"previousDelegatee","type":"address"},{"indexed":true,"internalType":"address","name":"newDelegatee","type":"address"}],"name":"DelegationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"}],"name":"FraxContributorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"contributor","type":"address"}],"name":"FraxContributorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contributor","type":"address"}],"name":"addFraxContributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"}],"name":"bulkDelegationsOf","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"}],"name":"bulkRemoveDelegationsAsDelegatee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"}],"name":"bulkRemoveDelegationsAsFraxContributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"},{"internalType":"address[]","name":"delegatees","type":"address[]"}],"name":"bulkSetDelegationsAsDelegatee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"delegators","type":"address[]"},{"internalType":"address[]","name":"delegatees","type":"address[]"}],"name":"bulkSetDelegationsAsFraxContributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegationManagementDisabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"delegationsOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableDelegationManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableSelfManagingDelegations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFraxContributor","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nominatedOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"reenableDelegationManagement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"}],"name":"removeDelegation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeDelegationForSelf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contributor","type":"address"}],"name":"removeFraxContributor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"selfManagingDelegations","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegator","type":"address"},{"internalType":"address","name":"delegatee","type":"address"}],"name":"setDelegation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"setDelegationForSelf","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50338061003057604051639b15e16f60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040805192835260208301919091527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a150611b57806100976000396000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c806394b41f91116100d8578063aaa54e0d1161008c578063dbc99d4b11610066578063dbc99d4b14610313578063f0466c7314610336578063feae99c51461034957600080fd5b8063aaa54e0d146102ca578063b41a5258146102dd578063d8d9ec00146102f057600080fd5b8063a1ac4e85116100bd578063a1ac4e851461029c578063a358626c146102af578063a7e68146146102c257600080fd5b806394b41f9114610276578063989d1a871461028957600080fd5b806353a47bb71161013a57806379ba50971161011457806379ba5097146102285780637f880ec7146102305780638da5cb5b1461026357600080fd5b806353a47bb7146101dd5780635f8cdba61461020d5780636889fae21461021557600080fd5b806325ce9a371161016b57806325ce9a37146101af5780634e271772146101b7578063513e0736146101ca57600080fd5b806302b8a21d146101875780631627540c1461019c575b600080fd5b61019a6101953660046118c4565b610369565b005b61019a6101aa3660046118c4565b61045b565b61019a61050b565b61019a6101c53660046118c4565b61056d565b61019a6101d83660046119d1565b6105e8565b6001546101f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61019a61086c565b6101f06102233660046118c4565b610958565b61019a6109a5565b61025361023e3660046118c4565b60046020526000908152604090205460ff1681565b6040519015158152602001610204565b6000546101f0906001600160a01b031681565b61019a6102843660046119d1565b610a73565b61019a6102973660046118c4565b610c84565b61019a6102aa366004611a0e565b610d2b565b61019a6102bd366004611a0e565b61102b565b61019a6112b7565b61019a6102d8366004611a72565b61131d565b61019a6102eb3660046118c4565b6114b0565b6102536102fe3660046118c4565b60026020526000908152604090205460ff1681565b6102536103213660046118c4565b60036020526000908152604090205460ff1681565b61019a6103443660046118c4565b611553565b61035c6103573660046119d1565b6116de565b6040516102049190611aa5565b3360009081526003602052604090205460ff1661039b57336000908152600360205260409020805460ff191660011790555b3360009081526004602052604090205460ff16156103e5576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526005602052604080822080546001600160a01b038681167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093559251921693909284927f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c9190a45050565b6000546001600160a01b0316331461049f576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b3360009081526003602052604090205460ff16610554576040517fed6a321200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600360205260409020805460ff19169055565b610575611819565b6001600160a01b03811660009081526004602052604090205460ff166105c7576040517f20f57baf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000805b8251811015610867576003600084838151811061060b5761060b611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610669576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600084838151811061067f5761067f611af2565b6020908102919091018101516001600160a01b03908116835290820192909252604001600020541633146106df576040517f2b590dc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600460008483815181106106f5576106f5611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610753576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600084838151811061076957610769611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03169150600560008483815181106107bd576107bd611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154906001600160a01b03021916905560006001600160a01b0316826001600160a01b031684838151811061082257610822611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a46001016105ec565b505050565b3360009081526003602052604090205460ff1661089e57336000908152600360205260409020805460ff191660011790555b3360009081526004602052604090205460ff16156108e8576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526005602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811690915590516001600160a01b039091169283917f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c908490a450565b6001600160a01b0381811660009081526005602052604081205490918291161561099c576001600160a01b038084166000908152600560205260409020541661099e565b825b9392505050565b6001546001600160a01b031633146109e9576040517fd74b334e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03841617909155169055565b610a7b611819565b6000805b82518110156108675760036000848381518110610a9e57610a9e611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610afc576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60046000848381518110610b1257610b12611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610b70576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60056000848381518110610b8657610b86611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b0316915060056000848381518110610bda57610bda611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154906001600160a01b03021916905560006001600160a01b0316826001600160a01b0316848381518110610c3f57610c3f611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a4600101610a7f565b610c8c611864565b6001600160a01b03811660009081526002602052604090205460ff1615610cdf576040517f70b9b0d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fe2d01cc637b0a35c9a2dde2789da012cf2b5d14caa779d280c35209b48c31cf29190a250565b8051825114610d66576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b83518110156110255760036000858381518110610d8957610d89611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610de7576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60056000858381518110610dfd57610dfd611af2565b6020908102919091018101516001600160a01b0390811683529082019290925260400160002054163314610e5d576040517f2b590dc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60046000858381518110610e7357610e73611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610ed1576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60056000858381518110610ee757610ee7611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03169150828181518110610f3757610f37611af2565b602002602001015160056000868481518110610f5557610f55611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828181518110610fb357610fb3611af2565b60200260200101516001600160a01b0316826001600160a01b0316858381518110610fe057610fe0611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a4600101610d6a565b50505050565b611033611819565b805182511461106e576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8351811015611025576003600085838151811061109157611091611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16156110ef576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004600085838151811061110557611105611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615611163576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600085838151811061117957611179611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b031691508281815181106111c9576111c9611af2565b6020026020010151600560008684815181106111e7576111e7611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082818151811061124557611245611af2565b60200260200101516001600160a01b0316826001600160a01b031685838151811061127257611272611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a4600101611072565b3360009081526004602052604090205460ff1615611301576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600460205260409020805460ff19166001179055565b6001600160a01b03821660009081526003602052604090205460ff1615611370576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526002602052604090205460ff161580156113aa57506001600160a01b03828116600090815260056020526040902054163314155b156113e1576040517ff60d93b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821660009081526004602052604090205460ff1615611434576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660008181526005602052604080822080548686167fffffffffffffffffffffffff0000000000000000000000000000000000000000821681179092559151919094169392849290917f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c9190a4505050565b6114b8611864565b6001600160a01b03811660009081526002602052604090205460ff1661150a576040517fd56b8a2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260026020526040808220805460ff19169055517f09af5383361cf92f81a21f5147c84aed80ff6d5087bf486623c1d7c43699ab9e9190a250565b6001600160a01b03811660009081526003602052604090205460ff16156115a6576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526002602052604090205460ff161580156115e057506001600160a01b03818116600090815260056020526040902054163314155b15611617576040517ff60d93b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff161561166a576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380821660008181526005602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000081169091559051931692909183917f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c908490a45050565b60606000825167ffffffffffffffff8111156116fc576116fc6118df565b604051908082528060200260200182016040528015611725578160200160208202803683370190505b50905060005b83518110156118125760006001600160a01b03166005600086848151811061175557611755611af2565b6020908102919091018101516001600160a01b039081168352908201929092526040016000205416146117c5576005600085838151811061179857611798611af2565b6020908102919091018101516001600160a01b0390811683529082019290925260400160002054166117e0565b8381815181106117d7576117d7611af2565b60200260200101515b8282815181106117f2576117f2611af2565b6001600160a01b039092166020928302919091019091015260010161172b565b5092915050565b3360009081526002602052604090205460ff16611862576040517fd56b8a2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000546001600160a01b03163314611862576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146118bf57600080fd5b919050565b6000602082840312156118d657600080fd5b61099e826118a8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261191f57600080fd5b8135602067ffffffffffffffff8083111561193c5761193c6118df565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561197f5761197f6118df565b604052938452602081870181019490810192508785111561199f57600080fd5b6020870191505b848210156119c6576119b7826118a8565b835291830191908301906119a6565b979650505050505050565b6000602082840312156119e357600080fd5b813567ffffffffffffffff8111156119fa57600080fd5b611a068482850161190e565b949350505050565b60008060408385031215611a2157600080fd5b823567ffffffffffffffff80821115611a3957600080fd5b611a458683870161190e565b93506020850135915080821115611a5b57600080fd5b50611a688582860161190e565b9150509250929050565b60008060408385031215611a8557600080fd5b611a8e836118a8565b9150611a9c602084016118a8565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611ae65783516001600160a01b031683529284019291840191600101611ac1565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220ada45705fbe215b4ad409d1dbc99e6feab34cc9a02821dabc1c2fe58f84d258964736f6c63430008170033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101825760003560e01c806394b41f91116100d8578063aaa54e0d1161008c578063dbc99d4b11610066578063dbc99d4b14610313578063f0466c7314610336578063feae99c51461034957600080fd5b8063aaa54e0d146102ca578063b41a5258146102dd578063d8d9ec00146102f057600080fd5b8063a1ac4e85116100bd578063a1ac4e851461029c578063a358626c146102af578063a7e68146146102c257600080fd5b806394b41f9114610276578063989d1a871461028957600080fd5b806353a47bb71161013a57806379ba50971161011457806379ba5097146102285780637f880ec7146102305780638da5cb5b1461026357600080fd5b806353a47bb7146101dd5780635f8cdba61461020d5780636889fae21461021557600080fd5b806325ce9a371161016b57806325ce9a37146101af5780634e271772146101b7578063513e0736146101ca57600080fd5b806302b8a21d146101875780631627540c1461019c575b600080fd5b61019a6101953660046118c4565b610369565b005b61019a6101aa3660046118c4565b61045b565b61019a61050b565b61019a6101c53660046118c4565b61056d565b61019a6101d83660046119d1565b6105e8565b6001546101f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61019a61086c565b6101f06102233660046118c4565b610958565b61019a6109a5565b61025361023e3660046118c4565b60046020526000908152604090205460ff1681565b6040519015158152602001610204565b6000546101f0906001600160a01b031681565b61019a6102843660046119d1565b610a73565b61019a6102973660046118c4565b610c84565b61019a6102aa366004611a0e565b610d2b565b61019a6102bd366004611a0e565b61102b565b61019a6112b7565b61019a6102d8366004611a72565b61131d565b61019a6102eb3660046118c4565b6114b0565b6102536102fe3660046118c4565b60026020526000908152604090205460ff1681565b6102536103213660046118c4565b60036020526000908152604090205460ff1681565b61019a6103443660046118c4565b611553565b61035c6103573660046119d1565b6116de565b6040516102049190611aa5565b3360009081526003602052604090205460ff1661039b57336000908152600360205260409020805460ff191660011790555b3360009081526004602052604090205460ff16156103e5576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526005602052604080822080546001600160a01b038681167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093559251921693909284927f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c9190a45050565b6000546001600160a01b0316331461049f576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229060200160405180910390a150565b3360009081526003602052604090205460ff16610554576040517fed6a321200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600360205260409020805460ff19169055565b610575611819565b6001600160a01b03811660009081526004602052604090205460ff166105c7576040517f20f57baf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000805b8251811015610867576003600084838151811061060b5761060b611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610669576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600084838151811061067f5761067f611af2565b6020908102919091018101516001600160a01b03908116835290820192909252604001600020541633146106df576040517f2b590dc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600460008483815181106106f5576106f5611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610753576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600084838151811061076957610769611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03169150600560008483815181106107bd576107bd611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154906001600160a01b03021916905560006001600160a01b0316826001600160a01b031684838151811061082257610822611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a46001016105ec565b505050565b3360009081526003602052604090205460ff1661089e57336000908152600360205260409020805460ff191660011790555b3360009081526004602052604090205460ff16156108e8576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360008181526005602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000811690915590516001600160a01b039091169283917f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c908490a450565b6001600160a01b0381811660009081526005602052604081205490918291161561099c576001600160a01b038084166000908152600560205260409020541661099e565b825b9392505050565b6001546001600160a01b031633146109e9576040517fd74b334e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054600154604080516001600160a01b0393841681529290911660208301527fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c910160405180910390a160018054600080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081166001600160a01b03841617909155169055565b610a7b611819565b6000805b82518110156108675760036000848381518110610a9e57610a9e611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610afc576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60046000848381518110610b1257610b12611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610b70576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60056000848381518110610b8657610b86611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b0316915060056000848381518110610bda57610bda611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154906001600160a01b03021916905560006001600160a01b0316826001600160a01b0316848381518110610c3f57610c3f611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a4600101610a7f565b610c8c611864565b6001600160a01b03811660009081526002602052604090205460ff1615610cdf576040517f70b9b0d000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fe2d01cc637b0a35c9a2dde2789da012cf2b5d14caa779d280c35209b48c31cf29190a250565b8051825114610d66576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b83518110156110255760036000858381518110610d8957610d89611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610de7576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60056000858381518110610dfd57610dfd611af2565b6020908102919091018101516001600160a01b0390811683529082019290925260400160002054163314610e5d576040517f2b590dc000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60046000858381518110610e7357610e73611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615610ed1576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60056000858381518110610ee757610ee7611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b03169150828181518110610f3757610f37611af2565b602002602001015160056000868481518110610f5557610f55611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828181518110610fb357610fb3611af2565b60200260200101516001600160a01b0316826001600160a01b0316858381518110610fe057610fe0611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a4600101610d6a565b50505050565b611033611819565b805182511461106e576040517fa24a13a600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b8351811015611025576003600085838151811061109157611091611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16156110ef576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6004600085838151811061110557611105611af2565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615611163576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005600085838151811061117957611179611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a90046001600160a01b031691508281815181106111c9576111c9611af2565b6020026020010151600560008684815181106111e7576111e7611af2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555082818151811061124557611245611af2565b60200260200101516001600160a01b0316826001600160a01b031685838151811061127257611272611af2565b60200260200101516001600160a01b03167f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c60405160405180910390a4600101611072565b3360009081526004602052604090205460ff1615611301576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600460205260409020805460ff19166001179055565b6001600160a01b03821660009081526003602052604090205460ff1615611370576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526002602052604090205460ff161580156113aa57506001600160a01b03828116600090815260056020526040902054163314155b156113e1576040517ff60d93b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03821660009081526004602052604090205460ff1615611434576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660008181526005602052604080822080548686167fffffffffffffffffffffffff0000000000000000000000000000000000000000821681179092559151919094169392849290917f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c9190a4505050565b6114b8611864565b6001600160a01b03811660009081526002602052604090205460ff1661150a576040517fd56b8a2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260026020526040808220805460ff19169055517f09af5383361cf92f81a21f5147c84aed80ff6d5087bf486623c1d7c43699ab9e9190a250565b6001600160a01b03811660009081526003602052604090205460ff16156115a6576040517f5398f5fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526002602052604090205460ff161580156115e057506001600160a01b03818116600090815260056020526040902054163314155b15611617576040517ff60d93b300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811660009081526004602052604090205460ff161561166a576040517f3cd77c0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380821660008181526005602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000081169091559051931692909183917f5cbf8b4dd601c76e8851d991825e8d0d29d914f78f40fcc8ebddd97d913f149c908490a45050565b60606000825167ffffffffffffffff8111156116fc576116fc6118df565b604051908082528060200260200182016040528015611725578160200160208202803683370190505b50905060005b83518110156118125760006001600160a01b03166005600086848151811061175557611755611af2565b6020908102919091018101516001600160a01b039081168352908201929092526040016000205416146117c5576005600085838151811061179857611798611af2565b6020908102919091018101516001600160a01b0390811683529082019290925260400160002054166117e0565b8381815181106117d7576117d7611af2565b60200260200101515b8282815181106117f2576117f2611af2565b6001600160a01b039092166020928302919091019091015260010161172b565b5092915050565b3360009081526002602052604090205460ff16611862576040517fd56b8a2000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6000546001600160a01b03163314611862576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146118bf57600080fd5b919050565b6000602082840312156118d657600080fd5b61099e826118a8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f83011261191f57600080fd5b8135602067ffffffffffffffff8083111561193c5761193c6118df565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f8301168101818110848211171561197f5761197f6118df565b604052938452602081870181019490810192508785111561199f57600080fd5b6020870191505b848210156119c6576119b7826118a8565b835291830191908301906119a6565b979650505050505050565b6000602082840312156119e357600080fd5b813567ffffffffffffffff8111156119fa57600080fd5b611a068482850161190e565b949350505050565b60008060408385031215611a2157600080fd5b823567ffffffffffffffff80821115611a3957600080fd5b611a458683870161190e565b93506020850135915080821115611a5b57600080fd5b50611a688582860161190e565b9150509250929050565b60008060408385031215611a8557600080fd5b611a8e836118a8565b9150611a9c602084016118a8565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015611ae65783516001600160a01b031683529284019291840191600101611ac1565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220ada45705fbe215b4ad409d1dbc99e6feab34cc9a02821dabc1c2fe58f84d258964736f6c63430008170033
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.