Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 67 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Set Multiple Use... | 16727047 | 486 days ago | IN | 0 ETH | 0.00127993 | ||||
Set Multiple Use... | 16727045 | 486 days ago | IN | 0 ETH | 0.00134405 | ||||
Set Multiple Use... | 16727043 | 486 days ago | IN | 0 ETH | 0.00127265 | ||||
Set Multiple Use... | 16727041 | 486 days ago | IN | 0 ETH | 0.00172018 | ||||
Set Multiple Use... | 16727040 | 486 days ago | IN | 0 ETH | 0.001274 | ||||
Set Multiple Use... | 16727039 | 486 days ago | IN | 0 ETH | 0.00154586 | ||||
Set Multiple Use... | 16727038 | 486 days ago | IN | 0 ETH | 0.00128115 | ||||
Set Multiple Use... | 16727037 | 486 days ago | IN | 0 ETH | 0.00164823 | ||||
Set Multiple Use... | 16727036 | 486 days ago | IN | 0 ETH | 0.00171341 | ||||
Set Multiple Use... | 16727035 | 486 days ago | IN | 0 ETH | 0.00168145 | ||||
Set Multiple Use... | 14872255 | 761 days ago | IN | 0 ETH | 0.00133413 | ||||
Set Role With Mu... | 14872254 | 761 days ago | IN | 0 ETH | 0.00719857 | ||||
Set Multiple Use... | 14872252 | 761 days ago | IN | 0 ETH | 0.00108404 | ||||
Set Role With Mu... | 14872249 | 761 days ago | IN | 0 ETH | 0.00167549 | ||||
Set Multiple Use... | 14829721 | 768 days ago | IN | 0 ETH | 0.00170251 | ||||
Set Role With Mu... | 14829720 | 768 days ago | IN | 0 ETH | 0.00261277 | ||||
Set Multiple Use... | 14829718 | 768 days ago | IN | 0 ETH | 0.00141912 | ||||
Set Role With Mu... | 14829716 | 768 days ago | IN | 0 ETH | 0.00103316 | ||||
Set Multiple Use... | 14829713 | 768 days ago | IN | 0 ETH | 0.00144515 | ||||
Set Role With Mu... | 14829711 | 768 days ago | IN | 0 ETH | 0.00088406 | ||||
Set Multiple Use... | 14829699 | 768 days ago | IN | 0 ETH | 0.00151171 | ||||
Set Role With Mu... | 14829697 | 768 days ago | IN | 0 ETH | 0.00084532 | ||||
Set Multiple Use... | 14829696 | 768 days ago | IN | 0 ETH | 0.00182459 | ||||
Set Role With Mu... | 14829695 | 768 days ago | IN | 0 ETH | 0.00123937 | ||||
Set Multiple Use... | 14787132 | 774 days ago | IN | 0 ETH | 0.00184035 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
QuantumAuthority
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.11; import "@rari-capital/solmate/src/auth/authorities/RolesAuthority.sol"; contract QuantumAuthority is RolesAuthority { constructor(address owner) RolesAuthority(owner, Authority(address(0))) {} /// @notice For multiples users, set the status of a role /// @dev the role has to belong to the Roles enum /// @param users users /// @param role role /// @param enabled to enable or not function setMultipleUsers(address[] calldata users, uint8 role, bool enabled) public requiresAuth { for(uint i = 0; i < users.length; i++) { setUserRole(users[i], role, enabled); } } /// @notice For one role, define an array of capabilities (functions it can call) /// @dev the role has to belong to the Roles enum /// @param target address of contract whose functions will be used /// @param role role /// @param functionSigs signatures of functions (4 bytes) /// @param enabled to enable or not function setRoleWithMultipleCapability(address target, uint8 role, bytes4[] calldata functionSigs, bool enabled) public requiresAuth { for(uint i = 0; i < functionSigs.length; i++) { setRoleCapability(role, target, functionSigs[i], enabled); } } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; import {Auth, Authority} from "../Auth.sol"; /// @notice Role based Authority that supports up to 256 roles. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/authorities/RolesAuthority.sol) /// @author Modified from Dappsys (https://github.com/dapphub/ds-roles/blob/master/src/roles.sol) contract RolesAuthority is Auth, Authority { /*/////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event UserRoleUpdated(address indexed user, uint8 indexed role, bool enabled); event PublicCapabilityUpdated(address indexed target, bytes4 indexed functionSig, bool enabled); event RoleCapabilityUpdated(uint8 indexed role, address indexed target, bytes4 indexed functionSig, bool enabled); /*/////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(address _owner, Authority _authority) Auth(_owner, _authority) {} /*/////////////////////////////////////////////////////////////// ROLE/USER STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => bytes32) public getUserRoles; mapping(address => mapping(bytes4 => bool)) public isCapabilityPublic; mapping(address => mapping(bytes4 => bytes32)) public getRolesWithCapability; function doesUserHaveRole(address user, uint8 role) public view virtual returns (bool) { return (uint256(getUserRoles[user]) >> role) & 1 != 0; } function doesRoleHaveCapability( uint8 role, address target, bytes4 functionSig ) public view virtual returns (bool) { return (uint256(getRolesWithCapability[target][functionSig]) >> role) & 1 != 0; } /*/////////////////////////////////////////////////////////////// AUTHORIZATION LOGIC //////////////////////////////////////////////////////////////*/ function canCall( address user, address target, bytes4 functionSig ) public view virtual override returns (bool) { return isCapabilityPublic[target][functionSig] || bytes32(0) != getUserRoles[user] & getRolesWithCapability[target][functionSig]; } /*/////////////////////////////////////////////////////////////// ROLE CAPABILITY CONFIGURATION LOGIC //////////////////////////////////////////////////////////////*/ function setPublicCapability( address target, bytes4 functionSig, bool enabled ) public virtual requiresAuth { isCapabilityPublic[target][functionSig] = enabled; emit PublicCapabilityUpdated(target, functionSig, enabled); } function setRoleCapability( uint8 role, address target, bytes4 functionSig, bool enabled ) public virtual requiresAuth { if (enabled) { getRolesWithCapability[target][functionSig] |= bytes32(1 << role); } else { getRolesWithCapability[target][functionSig] &= ~bytes32(1 << role); } emit RoleCapabilityUpdated(role, target, functionSig, enabled); } /*/////////////////////////////////////////////////////////////// USER ROLE ASSIGNMENT LOGIC //////////////////////////////////////////////////////////////*/ function setUserRole( address user, uint8 role, bool enabled ) public virtual requiresAuth { if (enabled) { getUserRoles[user] |= bytes32(1 << role); } else { getUserRoles[user] &= ~bytes32(1 << role); } emit UserRoleUpdated(user, role, enabled); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Provides a flexible and updatable auth pattern which is completely separate from application logic. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Auth.sol) /// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol) abstract contract Auth { event OwnerUpdated(address indexed user, address indexed newOwner); event AuthorityUpdated(address indexed user, Authority indexed newAuthority); address public owner; Authority public authority; constructor(address _owner, Authority _authority) { owner = _owner; authority = _authority; emit OwnerUpdated(msg.sender, _owner); emit AuthorityUpdated(msg.sender, _authority); } modifier requiresAuth() { require(isAuthorized(msg.sender, msg.sig), "UNAUTHORIZED"); _; } function isAuthorized(address user, bytes4 functionSig) internal view virtual returns (bool) { Authority auth = authority; // Memoizing authority saves us a warm SLOAD, around 100 gas. // Checking if the caller is the owner only after calling the authority saves gas in most cases, but be // aware that this makes protected functions uncallable even to the owner if the authority is out of order. return (address(auth) != address(0) && auth.canCall(user, address(this), functionSig)) || user == owner; } function setAuthority(Authority newAuthority) public virtual { // We check if the caller is the owner first because we want to ensure they can // always swap out the authority even if it's reverting or using up a lot of gas. require(msg.sender == owner || authority.canCall(msg.sender, address(this), msg.sig)); authority = newAuthority; emit AuthorityUpdated(msg.sender, newAuthority); } function setOwner(address newOwner) public virtual requiresAuth { owner = newOwner; emit OwnerUpdated(msg.sender, newOwner); } } /// @notice A generic interface for a contract which provides authorization data to an Auth instance. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Auth.sol) /// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol) interface Authority { function canCall( address user, address target, bytes4 functionSig ) external view returns (bool); }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":true,"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"PublicCapabilityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"role","type":"uint8"},{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":true,"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"RoleCapabilityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint8","name":"role","type":"uint8"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"UserRoleUpdated","type":"event"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"}],"name":"canCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"}],"name":"doesRoleHaveCapability","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"}],"name":"doesUserHaveRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"getRolesWithCapability","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"getUserRoles","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"isCapabilityPublic","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setMultipleUsers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setPublicCapability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes4","name":"functionSig","type":"bytes4"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setRoleCapability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"bytes4[]","name":"functionSigs","type":"bytes4[]"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setRoleWithMultipleCapability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint8","name":"role","type":"uint8"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setUserRole","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161133538038061133583398101604081905261002f916100c9565b600080546001600160a01b0383166001600160a01b03199182168117835560018054909216909155604051839291839183919033907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908490a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350505050506100f9565b6000602082840312156100db57600080fd5b81516001600160a01b03811681146100f257600080fd5b9392505050565b61122d806101086000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638693dfdb11610097578063bf7e214f11610066578063bf7e214f146102c1578063c6b0263e146102e1578063ea7ca276146102f4578063f31b2ff61461033857600080fd5b80638693dfdb146101e45780638da5cb5b146101f7578063b4bad06a1461023c578063b7009613146102ae57600080fd5b806367aff484116100d357806367aff484146101805780637917b794146101935780637a9e5e4b146101be5780637d40583d146101d157600080fd5b806306a36aee146100fa57806313af40351461012d5780632f47571f14610142575b600080fd5b61011a610108366004610e00565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b61014061013b366004610e00565b61034b565b005b610170610150366004610e59565b600360209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610124565b61014061018e366004610ead565b610454565b61011a6101a1366004610e59565b600460209081526000928352604080842090915290825290205481565b6101406101cc366004610e00565b6105b2565b6101406101df366004610ef6565b61070f565b6101406101f2366004610f9a565b6108e8565b6000546102179073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b61017061024a366004610ff6565b73ffffffffffffffffffffffffffffffffffffffff9190911660009081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000090941683529290522054600160ff929092161c16151590565b6101706102bc36600461103b565b6109d1565b6001546102179073ffffffffffffffffffffffffffffffffffffffff1681565b6101406102ef36600461105b565b610a9a565b610170610302366004611089565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260026020526040902054600160ff9092161c16151590565b6101406103463660046110b5565b610be0565b610379336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b6103e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b610482336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b6104e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b80156105245773ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090208054600160ff85161b179055610557565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090208054600160ff85161b191690555b8160ff168373ffffffffffffffffffffffffffffffffffffffff167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf2836040516105a5911515815260200190565b60405180910390a3505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061069557506001546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201526000357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa158015610671573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106959190611130565b61069e57600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b61073d336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b6107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b801561080c5773ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b17905561086c565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b191690555b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e846040516108da911515815260200190565b60405180910390a450505050565b610916336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b61097c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b60005b838110156109ca576109b885858381811061099c5761099c61114d565b90506020020160208101906109b19190610e00565b8484610454565b806109c28161117c565b91505061097f565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008516845290915281205460ff1680610a92575073ffffffffffffffffffffffffffffffffffffffff80841660009081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452825280832054938816835260029091529020541615155b949350505050565b610ac8336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b610b2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b73ffffffffffffffffffffffffffffffffffffffff831660008181526003602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e91016105a5565b610c0e336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b610c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b60005b82811015610cc357610cb18587868685818110610c9657610c9661114d565b9050602002016020810190610cab91906111dc565b8561070f565b80610cbb8161117c565b915050610c77565b505050505050565b60015460009073ffffffffffffffffffffffffffffffffffffffff168015801590610daf57506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf9190611130565b80610a92575060005473ffffffffffffffffffffffffffffffffffffffff858116911614949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610dfd57600080fd5b50565b600060208284031215610e1257600080fd5b8135610e1d81610ddb565b9392505050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e5457600080fd5b919050565b60008060408385031215610e6c57600080fd5b8235610e7781610ddb565b9150610e8560208401610e24565b90509250929050565b803560ff81168114610e5457600080fd5b8015158114610dfd57600080fd5b600080600060608486031215610ec257600080fd5b8335610ecd81610ddb565b9250610edb60208501610e8e565b91506040840135610eeb81610e9f565b809150509250925092565b60008060008060808587031215610f0c57600080fd5b610f1585610e8e565b93506020850135610f2581610ddb565b9250610f3360408601610e24565b91506060850135610f4381610e9f565b939692955090935050565b60008083601f840112610f6057600080fd5b50813567ffffffffffffffff811115610f7857600080fd5b6020830191508360208260051b8501011115610f9357600080fd5b9250929050565b60008060008060608587031215610fb057600080fd5b843567ffffffffffffffff811115610fc757600080fd5b610fd387828801610f4e565b9095509350610fe6905060208601610e8e565b91506040850135610f4381610e9f565b60008060006060848603121561100b57600080fd5b61101484610e8e565b9250602084013561102481610ddb565b915061103260408501610e24565b90509250925092565b60008060006060848603121561105057600080fd5b833561101481610ddb565b60008060006060848603121561107057600080fd5b833561107b81610ddb565b9250610edb60208501610e24565b6000806040838503121561109c57600080fd5b82356110a781610ddb565b9150610e8560208401610e8e565b6000806000806000608086880312156110cd57600080fd5b85356110d881610ddb565b94506110e660208701610e8e565b9350604086013567ffffffffffffffff81111561110257600080fd5b61110e88828901610f4e565b909450925050606086013561112281610e9f565b809150509295509295909350565b60006020828403121561114257600080fd5b8151610e1d81610e9f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b6000602082840312156111ee57600080fd5b610e1d82610e2456fea2646970667358221220306a3f3fcf4605f6e17c4d980a0804ff5dd1c068553eb75fac2d74c1715786fb64736f6c634300080b00330000000000000000000000009fef8de6fb60f43079565ece74f235aed225face
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638693dfdb11610097578063bf7e214f11610066578063bf7e214f146102c1578063c6b0263e146102e1578063ea7ca276146102f4578063f31b2ff61461033857600080fd5b80638693dfdb146101e45780638da5cb5b146101f7578063b4bad06a1461023c578063b7009613146102ae57600080fd5b806367aff484116100d357806367aff484146101805780637917b794146101935780637a9e5e4b146101be5780637d40583d146101d157600080fd5b806306a36aee146100fa57806313af40351461012d5780632f47571f14610142575b600080fd5b61011a610108366004610e00565b60026020526000908152604090205481565b6040519081526020015b60405180910390f35b61014061013b366004610e00565b61034b565b005b610170610150366004610e59565b600360209081526000928352604080842090915290825290205460ff1681565b6040519015158152602001610124565b61014061018e366004610ead565b610454565b61011a6101a1366004610e59565b600460209081526000928352604080842090915290825290205481565b6101406101cc366004610e00565b6105b2565b6101406101df366004610ef6565b61070f565b6101406101f2366004610f9a565b6108e8565b6000546102179073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b61017061024a366004610ff6565b73ffffffffffffffffffffffffffffffffffffffff9190911660009081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000090941683529290522054600160ff929092161c16151590565b6101706102bc36600461103b565b6109d1565b6001546102179073ffffffffffffffffffffffffffffffffffffffff1681565b6101406102ef36600461105b565b610a9a565b610170610302366004611089565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260026020526040902054600160ff9092161c16151590565b6101406103463660046110b5565b610be0565b610379336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b6103e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b610482336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b6104e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b80156105245773ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090208054600160ff85161b179055610557565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602052604090208054600160ff85161b191690555b8160ff168373ffffffffffffffffffffffffffffffffffffffff167f4c9bdd0c8e073eb5eda2250b18d8e5121ff27b62064fbeeeed4869bb99bc5bf2836040516105a5911515815260200190565b60405180910390a3505050565b60005473ffffffffffffffffffffffffffffffffffffffff1633148061069557506001546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201526000357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa158015610671573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106959190611130565b61069e57600080fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b61073d336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b6107a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b801561080c5773ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b17905561086c565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290208054600160ff87161b191690555b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168373ffffffffffffffffffffffffffffffffffffffff168560ff167fa52ea92e6e955aa8ac66420b86350f7139959adfcc7e6a14eee1bd116d09860e846040516108da911515815260200190565b60405180910390a450505050565b610916336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b61097c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b60005b838110156109ca576109b885858381811061099c5761099c61114d565b90506020020160208101906109b19190610e00565b8484610454565b806109c28161117c565b91505061097f565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008516845290915281205460ff1680610a92575073ffffffffffffffffffffffffffffffffffffffff80841660009081526004602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452825280832054938816835260029091529020541615155b949350505050565b610ac8336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b610b2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b73ffffffffffffffffffffffffffffffffffffffff831660008181526003602090815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f950a343f5d10445e82a71036d3f4fb3016180a25805141932543b83e2078a93e91016105a5565b610c0e336000357fffffffff0000000000000000000000000000000000000000000000000000000016610ccb565b610c74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016103db565b60005b82811015610cc357610cb18587868685818110610c9657610c9661114d565b9050602002016020810190610cab91906111dc565b8561070f565b80610cbb8161117c565b915050610c77565b505050505050565b60015460009073ffffffffffffffffffffffffffffffffffffffff168015801590610daf57506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa158015610d8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610daf9190611130565b80610a92575060005473ffffffffffffffffffffffffffffffffffffffff858116911614949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610dfd57600080fd5b50565b600060208284031215610e1257600080fd5b8135610e1d81610ddb565b9392505050565b80357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e5457600080fd5b919050565b60008060408385031215610e6c57600080fd5b8235610e7781610ddb565b9150610e8560208401610e24565b90509250929050565b803560ff81168114610e5457600080fd5b8015158114610dfd57600080fd5b600080600060608486031215610ec257600080fd5b8335610ecd81610ddb565b9250610edb60208501610e8e565b91506040840135610eeb81610e9f565b809150509250925092565b60008060008060808587031215610f0c57600080fd5b610f1585610e8e565b93506020850135610f2581610ddb565b9250610f3360408601610e24565b91506060850135610f4381610e9f565b939692955090935050565b60008083601f840112610f6057600080fd5b50813567ffffffffffffffff811115610f7857600080fd5b6020830191508360208260051b8501011115610f9357600080fd5b9250929050565b60008060008060608587031215610fb057600080fd5b843567ffffffffffffffff811115610fc757600080fd5b610fd387828801610f4e565b9095509350610fe6905060208601610e8e565b91506040850135610f4381610e9f565b60008060006060848603121561100b57600080fd5b61101484610e8e565b9250602084013561102481610ddb565b915061103260408501610e24565b90509250925092565b60008060006060848603121561105057600080fd5b833561101481610ddb565b60008060006060848603121561107057600080fd5b833561107b81610ddb565b9250610edb60208501610e24565b6000806040838503121561109c57600080fd5b82356110a781610ddb565b9150610e8560208401610e8e565b6000806000806000608086880312156110cd57600080fd5b85356110d881610ddb565b94506110e660208701610e8e565b9350604086013567ffffffffffffffff81111561110257600080fd5b61110e88828901610f4e565b909450925050606086013561112281610e9f565b809150509295509295909350565b60006020828403121561114257600080fd5b8151610e1d81610e9f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156111d5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5060010190565b6000602082840312156111ee57600080fd5b610e1d82610e2456fea2646970667358221220306a3f3fcf4605f6e17c4d980a0804ff5dd1c068553eb75fac2d74c1715786fb64736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000009fef8de6fb60f43079565ece74f235aed225face
-----Decoded View---------------
Arg [0] : owner (address): 0x9fef8dE6FB60f43079565ECE74f235AED225face
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000009fef8de6fb60f43079565ece74f235aed225face
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.