Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 144 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Whitelisted ... | 6821063 | 2291 days ago | IN | 0 ETH | 0.00193802 | ||||
Set Whitelisted ... | 6746612 | 2303 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6731368 | 2306 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6722252 | 2307 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6703172 | 2310 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6668659 | 2316 days ago | IN | 0 ETH | 0.00193802 | ||||
Set Whitelisted ... | 6661734 | 2317 days ago | IN | 0 ETH | 0.00118962 | ||||
Set Whitelisted ... | 6661010 | 2317 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6657026 | 2318 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6656624 | 2318 days ago | IN | 0 ETH | 0.00118962 | ||||
Set Whitelisted ... | 6656141 | 2318 days ago | IN | 0 ETH | 0.00118962 | ||||
Claim Ownership | 6651475 | 2319 days ago | IN | 0 ETH | 0.0003878 | ||||
Transfer Ownersh... | 6651454 | 2319 days ago | IN | 0 ETH | 0.00088256 | ||||
Set Whitelisted ... | 6576650 | 2331 days ago | IN | 0 ETH | 0.00118962 | ||||
Set Whitelisted ... | 6565883 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6565174 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6565056 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6565039 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6564841 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6564825 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6564785 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6564766 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6564727 | 2333 days ago | IN | 0 ETH | 0.00118962 | ||||
Set Whitelisted ... | 6564710 | 2333 days ago | IN | 0 ETH | 0.00193962 | ||||
Set Whitelisted ... | 6564450 | 2333 days ago | IN | 0 ETH | 0.00193962 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 6417312 | 2357 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
RegulatorProxy
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-09-28 */ pragma solidity ^0.4.24; /** * @title Proxy * @dev Implements delegation of calls to other contracts, with proper * forwarding of return values and bubbling of failures. * It defines a fallback function that delegates all calls to the address * returned by the abstract _implementation() internal function. */ contract Proxy { /** * @dev Fallback function. * Implemented entirely in `_fallback`. */ function () payable external { _fallback(); } /** * @return The Address of the implementation. */ function _implementation() internal view returns (address); /** * @dev Delegates execution to an implementation contract. * This is a low level function that doesn't return to its internal call site. * It will return to the external caller whatever the implementation returns. * @param implementation Address to delegate. */ function _delegate(address implementation) internal { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas, implementation, 0, calldatasize, 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize) } default { return(0, returndatasize) } } } /** * @dev Function that is run as the first thing in the fallback function. * Can be redefined in derived contracts to add functionality. * Redefinitions must call super._willFallback(). */ function _willFallback() internal { } /** * @dev fallback implementation. * Extracted to enable manual triggering. */ function _fallback() internal { _willFallback(); _delegate(_implementation()); } } /** * Utility library of inline functions on addresses */ library AddressUtils { /** * Returns whether the target address is a contract * @dev This function will return false if invoked during the constructor of a contract, * as the code is not actually created until after the constructor finishes. * @param addr address to check * @return whether the target address is a contract */ function isContract(address addr) internal view returns (bool) { uint256 size; // XXX Currently there is no better way to check if there is a contract in an address // than to check the size of the code at that address. // See https://ethereum.stackexchange.com/a/14016/36603 // for more details about how this works. // TODO Check this again before the Serenity release, because all addresses will be // contracts then. // solium-disable-next-line security/no-inline-assembly assembly { size := extcodesize(addr) } return size > 0; } } /** * @title UpgradeabilityProxy * @dev This contract implements a proxy that allows to change the * implementation address to which it will delegate. * Such a change is called an implementation upgrade. */ contract UpgradeabilityProxy is Proxy { /** * @dev Emitted when the implementation is upgraded. * @param implementation Address of the new implementation. */ event Upgraded(address implementation); /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "org.zeppelinos.proxy.implementation", and is * validated in the constructor. */ bytes32 private constant IMPLEMENTATION_SLOT = 0x7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c3; /** * @dev Contract constructor. * @param _implementation Address of the initial implementation. */ constructor(address _implementation) public { assert(IMPLEMENTATION_SLOT == keccak256("org.zeppelinos.proxy.implementation")); _setImplementation(_implementation); } /** * @dev Returns the current implementation. * @return Address of the current implementation */ function _implementation() internal view returns (address impl) { bytes32 slot = IMPLEMENTATION_SLOT; assembly { impl := sload(slot) } } /** * @dev Upgrades the proxy to a new implementation. * @param newImplementation Address of the new implementation. */ function _upgradeTo(address newImplementation) internal { _setImplementation(newImplementation); emit Upgraded(newImplementation); } /** * @dev Sets the implementation address of the proxy. * @param newImplementation Address of the new implementation. */ function _setImplementation(address newImplementation) private { require(AddressUtils.isContract(newImplementation), "Cannot set a proxy implementation to a non-contract address"); bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot, newImplementation) } } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". This adds two-phase * ownership control to OpenZeppelin's Ownable class. In this model, the original owner * designates a new owner but does not actually transfer ownership. The new owner then accepts * ownership and completes the transfer. */ contract Ownable { address public owner; address public pendingOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; pendingOwner = address(0); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyPendingOwner() { require(msg.sender == pendingOwner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { require(_newOwner != address(0)); pendingOwner = _newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() onlyPendingOwner public { emit OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = address(0); } } /** * * @dev Stores permissions and validators and provides setter and getter methods. * Permissions determine which methods users have access to call. Validators * are able to mutate permissions at the Regulator level. * */ contract RegulatorStorage is Ownable { /** Structs */ /* Contains metadata about a permission to execute a particular method signature. */ struct Permission { string name; // A one-word description for the permission. e.g. "canMint" string description; // A longer description for the permission. e.g. "Allows user to mint tokens." string contract_name; // e.g. "PermissionedToken" bool active; // Permissions can be turned on or off by regulator } /** Constants: stores method signatures. These are potential permissions that a user can have, and each permission gives the user the ability to call the associated PermissionedToken method signature */ bytes4 public constant MINT_SIG = bytes4(keccak256("mint(address,uint256)")); bytes4 public constant MINT_CUSD_SIG = bytes4(keccak256("mintCUSD(address,uint256)")); bytes4 public constant CONVERT_WT_SIG = bytes4(keccak256("convertWT(uint256)")); bytes4 public constant BURN_SIG = bytes4(keccak256("burn(uint256)")); bytes4 public constant CONVERT_CARBON_DOLLAR_SIG = bytes4(keccak256("convertCarbonDollar(address,uint256)")); bytes4 public constant BURN_CARBON_DOLLAR_SIG = bytes4(keccak256("burnCarbonDollar(address,uint256)")); bytes4 public constant DESTROY_BLACKLISTED_TOKENS_SIG = bytes4(keccak256("destroyBlacklistedTokens(address,uint256)")); bytes4 public constant APPROVE_BLACKLISTED_ADDRESS_SPENDER_SIG = bytes4(keccak256("approveBlacklistedAddressSpender(address)")); bytes4 public constant BLACKLISTED_SIG = bytes4(keccak256("blacklisted()")); /** Mappings */ /* each method signature maps to a Permission */ mapping (bytes4 => Permission) public permissions; /* list of validators, either active or inactive */ mapping (address => bool) public validators; /* each user can be given access to a given method signature */ mapping (address => mapping (bytes4 => bool)) public userPermissions; /** Events */ event PermissionAdded(bytes4 methodsignature); event PermissionRemoved(bytes4 methodsignature); event ValidatorAdded(address indexed validator); event ValidatorRemoved(address indexed validator); /** Modifiers */ /** * @notice Throws if called by any account that does not have access to set attributes */ modifier onlyValidator() { require (isValidator(msg.sender), "Sender must be validator"); _; } /** * @notice Sets a permission within the list of permissions. * @param _methodsignature Signature of the method that this permission controls. * @param _permissionName A "slug" name for this permission (e.g. "canMint"). * @param _permissionDescription A lengthier description for this permission (e.g. "Allows user to mint tokens"). * @param _contractName Name of the contract that the method belongs to. */ function addPermission( bytes4 _methodsignature, string _permissionName, string _permissionDescription, string _contractName) public onlyValidator { Permission memory p = Permission(_permissionName, _permissionDescription, _contractName, true); permissions[_methodsignature] = p; emit PermissionAdded(_methodsignature); } /** * @notice Removes a permission the list of permissions. * @param _methodsignature Signature of the method that this permission controls. */ function removePermission(bytes4 _methodsignature) public onlyValidator { permissions[_methodsignature].active = false; emit PermissionRemoved(_methodsignature); } /** * @notice Sets a permission in the list of permissions that a user has. * @param _methodsignature Signature of the method that this permission controls. */ function setUserPermission(address _who, bytes4 _methodsignature) public onlyValidator { require(permissions[_methodsignature].active, "Permission being set must be for a valid method signature"); userPermissions[_who][_methodsignature] = true; } /** * @notice Removes a permission from the list of permissions that a user has. * @param _methodsignature Signature of the method that this permission controls. */ function removeUserPermission(address _who, bytes4 _methodsignature) public onlyValidator { require(permissions[_methodsignature].active, "Permission being removed must be for a valid method signature"); userPermissions[_who][_methodsignature] = false; } /** * @notice add a Validator * @param _validator Address of validator to add */ function addValidator(address _validator) public onlyOwner { validators[_validator] = true; emit ValidatorAdded(_validator); } /** * @notice remove a Validator * @param _validator Address of validator to remove */ function removeValidator(address _validator) public onlyOwner { validators[_validator] = false; emit ValidatorRemoved(_validator); } /** * @notice does validator exist? * @return true if yes, false if no **/ function isValidator(address _validator) public view returns (bool) { return validators[_validator]; } /** * @notice does permission exist? * @return true if yes, false if no **/ function isPermission(bytes4 _methodsignature) public view returns (bool) { return permissions[_methodsignature].active; } /** * @notice get Permission structure * @param _methodsignature request to retrieve the Permission struct for this methodsignature * @return Permission **/ function getPermission(bytes4 _methodsignature) public view returns (string name, string description, string contract_name, bool active) { return (permissions[_methodsignature].name, permissions[_methodsignature].description, permissions[_methodsignature].contract_name, permissions[_methodsignature].active); } /** * @notice does permission exist? * @return true if yes, false if no **/ function hasUserPermission(address _who, bytes4 _methodsignature) public view returns (bool) { return userPermissions[_who][_methodsignature]; } } /** * @title RegulatorProxy * @dev A RegulatorProxy is a proxy contract that acts identically to a Regulator from the * user's point of view. A proxy can change its data storage locations and can also * change its implementation contract location. A call to RegulatorProxy delegates the function call * to the latest implementation contract's version of the function and the proxy then * calls that function in the context of the proxy's data storage * */ contract RegulatorProxy is UpgradeabilityProxy, RegulatorStorage { /** * @dev CONSTRUCTOR * @param _implementation the contract who's logic the proxy will initially delegate functionality to **/ constructor(address _implementation) public UpgradeabilityProxy(_implementation) {} /** * @dev Upgrade the backing implementation of the proxy. * Only the admin can call this function. * @param newImplementation Address of the new implementation. */ function upgradeTo(address newImplementation) public onlyOwner { _upgradeTo(newImplementation); } /** * @return The address of the implementation. */ function implementation() public view returns (address) { return _implementation(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"_who","type":"address"},{"name":"_methodsignature","type":"bytes4"}],"name":"hasUserPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_methodsignature","type":"bytes4"}],"name":"getPermission","outputs":[{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"contract_name","type":"string"},{"name":"active","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_methodsignature","type":"bytes4"}],"name":"setUserPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newImplementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes4"}],"name":"permissions","outputs":[{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"contract_name","type":"string"},{"name":"active","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_validator","type":"address"}],"name":"removeValidator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_validator","type":"address"}],"name":"addValidator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_who","type":"address"},{"name":"_methodsignature","type":"bytes4"}],"name":"removeUserPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONVERT_WT_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_methodsignature","type":"bytes4"},{"name":"_permissionName","type":"string"},{"name":"_permissionDescription","type":"string"},{"name":"_contractName","type":"string"}],"name":"addPermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"bytes4"}],"name":"userPermissions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINT_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINT_CUSD_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"APPROVE_BLACKLISTED_ADDRESS_SPENDER_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_methodsignature","type":"bytes4"}],"name":"isPermission","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BLACKLISTED_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DESTROY_BLACKLISTED_TOKENS_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_methodsignature","type":"bytes4"}],"name":"removePermission","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"BURN_CARBON_DOLLAR_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BURN_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONVERT_CARBON_DOLLAR_SIG","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"validators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_validator","type":"address"}],"name":"isValidator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_implementation","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"methodsignature","type":"bytes4"}],"name":"PermissionAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"methodsignature","type":"bytes4"}],"name":"PermissionRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"validator","type":"address"}],"name":"ValidatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"validator","type":"address"}],"name":"ValidatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516020806200184183398101604081815291517f6f72672e7a657070656c696e6f732e70726f78792e696d706c656d656e74617482527f696f6e000000000000000000000000000000000000000000000000000000000060208301529151908190036023019020819060008051602062001821833981519152146200009557fe5b620000a981640100000000620000cf810204565b505060008054600160a060020a031990811633179091556001805490911690556200019a565b6000620000ea82640100000000620015606200019282021704565b15156200017e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000606482015290519081900360840190fd5b506000805160206200182183398151915255565b6000903b1190565b61167780620001aa6000396000f3006080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314db6d5881146101735780631830f493146101b55780631c870eee146103235780633659cfe614610351578063395a7b301461037257806340a141ff146103945780634d238c8e146103b55780634e71e0c8146103d65780635317e444146103eb5780635c60da1b14610419578063639c44cf1461044a578063780bfed01461047c5780638707e2f41461056057806388f14b0e1461058e5780638b7c8109146105a35780638da5cb5b146105b85780638f959f54146105cd578063933aa667146105e25780639491951b14610604578063ab96cb4614610619578063b8ccbd171461062e578063c1c49cbb14610650578063cfbf1b9014610665578063e30c39781461067a578063f2fde38b1461068f578063f9d50543146106b0578063fa52c7d8146106c5578063facd743b146106e6575b610171610707565b005b34801561017f57600080fd5b506101a1600160a060020a0360043516600160e060020a031960243516610721565b604080519115158252519081900360200190f35b3480156101c157600080fd5b506101d7600160e060020a031960043516610758565b604080518215156060820152608080825286519082015285519091829160208084019284019160a08501918a019080838360005b8381101561022357818101518382015260200161020b565b50505050905090810190601f1680156102505780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b8381101561028357818101518382015260200161026b565b50505050905090810190601f1680156102b05780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b838110156102e35781810151838201526020016102cb565b50505050905090810190601f1680156103105780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561032f57600080fd5b50610171600160a060020a0360043516600160e060020a031960243516610945565b34801561035d57600080fd5b50610171600160a060020a0360043516610a69565b34801561037e57600080fd5b506101d7600160e060020a031960043516610a8c565b3480156103a057600080fd5b50610171600160a060020a0360043516610c60565b3480156103c157600080fd5b50610171600160a060020a0360043516610cc0565b3480156103e257600080fd5b50610171610d23565b3480156103f757600080fd5b50610171600160a060020a0360043516600160e060020a031960243516610dab565b34801561042557600080fd5b5061042e610ecc565b60408051600160a060020a039092168252519081900360200190f35b34801561045657600080fd5b5061045f610edc565b60408051600160e060020a03199092168252519081900360200190f35b34801561048857600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610171958335600160e060020a03191695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610f119650505050505050565b34801561056c57600080fd5b506101a1600160a060020a0360043516600160e060020a03196024351661104c565b34801561059a57600080fd5b5061045f61106c565b3480156105af57600080fd5b5061045f6110a1565b3480156105c457600080fd5b5061042e6110d6565b3480156105d957600080fd5b5061045f6110e5565b3480156105ee57600080fd5b506101a1600160e060020a031960043516611140565b34801561061057600080fd5b5061045f611162565b34801561062557600080fd5b5061045f611197565b34801561063a57600080fd5b50610171600160e060020a0319600435166111f2565b34801561065c57600080fd5b5061045f61129b565b34801561067157600080fd5b5061045f6112f6565b34801561068657600080fd5b5061042e61132b565b34801561069b57600080fd5b50610171600160a060020a036004351661133a565b3480156106bc57600080fd5b5061045f611395565b3480156106d157600080fd5b506101a1600160a060020a03600435166113f0565b3480156106f257600080fd5b506101a1600160a060020a0360043516611405565b61070f61071f565b61071f61071a611423565b611448565b565b600160a060020a0382166000908152600460209081526040808320600160e060020a03198516845290915290205460ff1692915050565b600160e060020a0319811660009081526002602081815260408084206003810154815483516101006001808416159190910260001901909216879004601f8101879004870282018701909552848152606097889788979196938601949086019360ff90911692918691908301828280156108135780601f106107e857610100808354040283529160200191610813565b820191906000526020600020905b8154815290600101906020018083116107f657829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959950889450925084019050828280156108a15780601f10610876576101008083540402835291602001916108a1565b820191906000526020600020905b81548152906001019060200180831161088457829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529598508794509250840190508282801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050915093509350935093509193509193565b61094e33611405565b1515610992576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160e060020a0319811660009081526002602052604090206003015460ff161515610a2e576040805160e560020a62461bcd02815260206004820152603960248201527f5065726d697373696f6e206265696e6720736574206d75737420626520666f7260448201527f20612076616c6964206d6574686f64207369676e617475726500000000000000606482015290519081900360840190fd5b600160a060020a039091166000908152600460209081526040808320600160e060020a0319909416835292905220805460ff19166001179055565b600054600160a060020a03163314610a8057600080fd5b610a898161146c565b50565b600260208181526000928352604092839020805484516001821615610100026000190190911693909304601f8101839004830284018301909452838352928391830182828015610b1d5780601f10610af257610100808354040283529160200191610b1d565b820191906000526020600020905b815481529060010190602001808311610b0057829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b50505060028085018054604080516020601f6000196101006001871615020190941695909504928301859004850281018501909152818152959695945090925090830182828015610c4d5780601f10610c2257610100808354040283529160200191610c4d565b820191906000526020600020905b815481529060010190602001808311610c3057829003601f168201915b5050506003909301549192505060ff1684565b600054600160a060020a03163314610c7757600080fd5b600160a060020a038116600081815260036020526040808220805460ff19169055517fe1434e25d6611e0db941968fdc97811c982ac1602e951637d206f5fdda9dd8f19190a250565b600054600160a060020a03163314610cd757600080fd5b600160a060020a038116600081815260036020526040808220805460ff19166001179055517fe366c1c0452ed8eec96861e9e54141ebff23c9ec89fe27b996b45f5ec38849879190a250565b600154600160a060020a03163314610d3a57600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610db433611405565b1515610df8576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160e060020a0319811660009081526002602052604090206003015460ff161515610e94576040805160e560020a62461bcd02815260206004820152603d60248201527f5065726d697373696f6e206265696e672072656d6f766564206d75737420626560448201527f20666f7220612076616c6964206d6574686f64207369676e6174757265000000606482015290519081900360840190fd5b600160a060020a039091166000908152600460209081526040808320600160e060020a0319909416835292905220805460ff19169055565b6000610ed6611423565b90505b90565b604080517f636f6e7665727457542875696e743235362900000000000000000000000000008152905190819003601201902081565b610f19611568565b610f2233611405565b1515610f66576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b5060408051608081018252848152602080820185905281830184905260016060830152600160e060020a03198716600090815260028252929092208151805192938493610fb69284920190611593565b506020828101518051610fcf9260018501920190611593565b5060408201518051610feb916002840191602090910190611593565b50606091909101516003909101805460ff191691151591909117905560408051600160e060020a03198716815290517f6195913f4ea9fc2f5193c9f6763975b23790b3be094b1eb18f31843739005512916020908290030190a15050505050565b600460209081526000928352604080842090915290825290205460ff1681565b604080517f6d696e7428616464726573732c75696e743235362900000000000000000000008152905190819003601501902081565b604080517f6d696e744355534428616464726573732c75696e7432353629000000000000008152905190819003601901902081565b600054600160a060020a031681565b604080517f617070726f7665426c61636b6c6973746564416464726573735370656e64657281527f28616464726573732900000000000000000000000000000000000000000000006020820152905190819003602901902081565b600160e060020a03191660009081526002602052604090206003015460ff1690565b604080517f626c61636b6c69737465642829000000000000000000000000000000000000008152905190819003600d01902081565b604080517f64657374726f79426c61636b6c6973746564546f6b656e73286164647265737381527f2c75696e743235362900000000000000000000000000000000000000000000006020820152905190819003602901902081565b6111fb33611405565b151561123f576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160e060020a03198116600081815260026020908152604091829020600301805460ff19169055815192835290517f65cd5526557cbd93f0739d00ffcdf8f4a663eb2ed509203d884b3470158724c19281900390910190a150565b604080517f6275726e436172626f6e446f6c6c617228616464726573732c75696e7432353681527f29000000000000000000000000000000000000000000000000000000000000006020820152905190819003602101902081565b604080517f6275726e2875696e7432353629000000000000000000000000000000000000008152905190819003600d01902081565b600154600160a060020a031681565b600054600160a060020a0316331461135157600080fd5b600160a060020a038116151561136657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b604080517f636f6e76657274436172626f6e446f6c6c617228616464726573732c75696e7481527f32353629000000000000000000000000000000000000000000000000000000006020820152905190819003602401902081565b60036020526000908152604090205460ff1681565b600160a060020a031660009081526003602052604090205460ff1690565b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35490565b3660008037600080366000845af43d6000803e808015611467573d6000f35b3d6000fd5b611475816114b4565b60408051600160a060020a038316815290517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9181900360200190a150565b60006114bf82611560565b151561153b576040805160e560020a62461bcd02815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000606482015290519081900360840190fd5b507f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b6000903b1190565b6080604051908101604052806060815260200160608152602001606081526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115d457805160ff1916838001178555611601565b82800160010185558215611601579182015b828111156116015782518255916020019190600101906115e6565b5061160d929150611611565b5090565b610ed991905b8082111561160d5760008155600101611617560053656e646572206d7573742062652076616c696461746f720000000000000000a165627a7a72305820cc9fb92d196fd26c5df1ba01c3ac5c529d0b24e2434eddb99da751f6f21c88a500297050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c300000000000000000000000078a87623e381c395f6b02c649893642dcb3d245e
Deployed Bytecode
0x6080604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166314db6d5881146101735780631830f493146101b55780631c870eee146103235780633659cfe614610351578063395a7b301461037257806340a141ff146103945780634d238c8e146103b55780634e71e0c8146103d65780635317e444146103eb5780635c60da1b14610419578063639c44cf1461044a578063780bfed01461047c5780638707e2f41461056057806388f14b0e1461058e5780638b7c8109146105a35780638da5cb5b146105b85780638f959f54146105cd578063933aa667146105e25780639491951b14610604578063ab96cb4614610619578063b8ccbd171461062e578063c1c49cbb14610650578063cfbf1b9014610665578063e30c39781461067a578063f2fde38b1461068f578063f9d50543146106b0578063fa52c7d8146106c5578063facd743b146106e6575b610171610707565b005b34801561017f57600080fd5b506101a1600160a060020a0360043516600160e060020a031960243516610721565b604080519115158252519081900360200190f35b3480156101c157600080fd5b506101d7600160e060020a031960043516610758565b604080518215156060820152608080825286519082015285519091829160208084019284019160a08501918a019080838360005b8381101561022357818101518382015260200161020b565b50505050905090810190601f1680156102505780820380516001836020036101000a031916815260200191505b50848103835287518152875160209182019189019080838360005b8381101561028357818101518382015260200161026b565b50505050905090810190601f1680156102b05780820380516001836020036101000a031916815260200191505b50848103825286518152865160209182019188019080838360005b838110156102e35781810151838201526020016102cb565b50505050905090810190601f1680156103105780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561032f57600080fd5b50610171600160a060020a0360043516600160e060020a031960243516610945565b34801561035d57600080fd5b50610171600160a060020a0360043516610a69565b34801561037e57600080fd5b506101d7600160e060020a031960043516610a8c565b3480156103a057600080fd5b50610171600160a060020a0360043516610c60565b3480156103c157600080fd5b50610171600160a060020a0360043516610cc0565b3480156103e257600080fd5b50610171610d23565b3480156103f757600080fd5b50610171600160a060020a0360043516600160e060020a031960243516610dab565b34801561042557600080fd5b5061042e610ecc565b60408051600160a060020a039092168252519081900360200190f35b34801561045657600080fd5b5061045f610edc565b60408051600160e060020a03199092168252519081900360200190f35b34801561048857600080fd5b5060408051602060046024803582810135601f8101859004850286018501909652858552610171958335600160e060020a03191695369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750610f119650505050505050565b34801561056c57600080fd5b506101a1600160a060020a0360043516600160e060020a03196024351661104c565b34801561059a57600080fd5b5061045f61106c565b3480156105af57600080fd5b5061045f6110a1565b3480156105c457600080fd5b5061042e6110d6565b3480156105d957600080fd5b5061045f6110e5565b3480156105ee57600080fd5b506101a1600160e060020a031960043516611140565b34801561061057600080fd5b5061045f611162565b34801561062557600080fd5b5061045f611197565b34801561063a57600080fd5b50610171600160e060020a0319600435166111f2565b34801561065c57600080fd5b5061045f61129b565b34801561067157600080fd5b5061045f6112f6565b34801561068657600080fd5b5061042e61132b565b34801561069b57600080fd5b50610171600160a060020a036004351661133a565b3480156106bc57600080fd5b5061045f611395565b3480156106d157600080fd5b506101a1600160a060020a03600435166113f0565b3480156106f257600080fd5b506101a1600160a060020a0360043516611405565b61070f61071f565b61071f61071a611423565b611448565b565b600160a060020a0382166000908152600460209081526040808320600160e060020a03198516845290915290205460ff1692915050565b600160e060020a0319811660009081526002602081815260408084206003810154815483516101006001808416159190910260001901909216879004601f8101879004870282018701909552848152606097889788979196938601949086019360ff90911692918691908301828280156108135780601f106107e857610100808354040283529160200191610813565b820191906000526020600020905b8154815290600101906020018083116107f657829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959950889450925084019050828280156108a15780601f10610876576101008083540402835291602001916108a1565b820191906000526020600020905b81548152906001019060200180831161088457829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529598508794509250840190508282801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b5050505050915093509350935093509193509193565b61094e33611405565b1515610992576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160e060020a0319811660009081526002602052604090206003015460ff161515610a2e576040805160e560020a62461bcd02815260206004820152603960248201527f5065726d697373696f6e206265696e6720736574206d75737420626520666f7260448201527f20612076616c6964206d6574686f64207369676e617475726500000000000000606482015290519081900360840190fd5b600160a060020a039091166000908152600460209081526040808320600160e060020a0319909416835292905220805460ff19166001179055565b600054600160a060020a03163314610a8057600080fd5b610a898161146c565b50565b600260208181526000928352604092839020805484516001821615610100026000190190911693909304601f8101839004830284018301909452838352928391830182828015610b1d5780601f10610af257610100808354040283529160200191610b1d565b820191906000526020600020905b815481529060010190602001808311610b0057829003601f168201915b505050505090806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bbb5780601f10610b9057610100808354040283529160200191610bbb565b820191906000526020600020905b815481529060010190602001808311610b9e57829003601f168201915b50505060028085018054604080516020601f6000196101006001871615020190941695909504928301859004850281018501909152818152959695945090925090830182828015610c4d5780601f10610c2257610100808354040283529160200191610c4d565b820191906000526020600020905b815481529060010190602001808311610c3057829003601f168201915b5050506003909301549192505060ff1684565b600054600160a060020a03163314610c7757600080fd5b600160a060020a038116600081815260036020526040808220805460ff19169055517fe1434e25d6611e0db941968fdc97811c982ac1602e951637d206f5fdda9dd8f19190a250565b600054600160a060020a03163314610cd757600080fd5b600160a060020a038116600081815260036020526040808220805460ff19166001179055517fe366c1c0452ed8eec96861e9e54141ebff23c9ec89fe27b996b45f5ec38849879190a250565b600154600160a060020a03163314610d3a57600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b610db433611405565b1515610df8576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160e060020a0319811660009081526002602052604090206003015460ff161515610e94576040805160e560020a62461bcd02815260206004820152603d60248201527f5065726d697373696f6e206265696e672072656d6f766564206d75737420626560448201527f20666f7220612076616c6964206d6574686f64207369676e6174757265000000606482015290519081900360840190fd5b600160a060020a039091166000908152600460209081526040808320600160e060020a0319909416835292905220805460ff19169055565b6000610ed6611423565b90505b90565b604080517f636f6e7665727457542875696e743235362900000000000000000000000000008152905190819003601201902081565b610f19611568565b610f2233611405565b1515610f66576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b5060408051608081018252848152602080820185905281830184905260016060830152600160e060020a03198716600090815260028252929092208151805192938493610fb69284920190611593565b506020828101518051610fcf9260018501920190611593565b5060408201518051610feb916002840191602090910190611593565b50606091909101516003909101805460ff191691151591909117905560408051600160e060020a03198716815290517f6195913f4ea9fc2f5193c9f6763975b23790b3be094b1eb18f31843739005512916020908290030190a15050505050565b600460209081526000928352604080842090915290825290205460ff1681565b604080517f6d696e7428616464726573732c75696e743235362900000000000000000000008152905190819003601501902081565b604080517f6d696e744355534428616464726573732c75696e7432353629000000000000008152905190819003601901902081565b600054600160a060020a031681565b604080517f617070726f7665426c61636b6c6973746564416464726573735370656e64657281527f28616464726573732900000000000000000000000000000000000000000000006020820152905190819003602901902081565b600160e060020a03191660009081526002602052604090206003015460ff1690565b604080517f626c61636b6c69737465642829000000000000000000000000000000000000008152905190819003600d01902081565b604080517f64657374726f79426c61636b6c6973746564546f6b656e73286164647265737381527f2c75696e743235362900000000000000000000000000000000000000000000006020820152905190819003602901902081565b6111fb33611405565b151561123f576040805160e560020a62461bcd028152602060048201526018602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160e060020a03198116600081815260026020908152604091829020600301805460ff19169055815192835290517f65cd5526557cbd93f0739d00ffcdf8f4a663eb2ed509203d884b3470158724c19281900390910190a150565b604080517f6275726e436172626f6e446f6c6c617228616464726573732c75696e7432353681527f29000000000000000000000000000000000000000000000000000000000000006020820152905190819003602101902081565b604080517f6275726e2875696e7432353629000000000000000000000000000000000000008152905190819003600d01902081565b600154600160a060020a031681565b600054600160a060020a0316331461135157600080fd5b600160a060020a038116151561136657600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b604080517f636f6e76657274436172626f6e446f6c6c617228616464726573732c75696e7481527f32353629000000000000000000000000000000000000000000000000000000006020820152905190819003602401902081565b60036020526000908152604090205460ff1681565b600160a060020a031660009081526003602052604090205460ff1690565b7f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c35490565b3660008037600080366000845af43d6000803e808015611467573d6000f35b3d6000fd5b611475816114b4565b60408051600160a060020a038316815290517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9181900360200190a150565b60006114bf82611560565b151561153b576040805160e560020a62461bcd02815260206004820152603b60248201527f43616e6e6f742073657420612070726f787920696d706c656d656e746174696f60448201527f6e20746f2061206e6f6e2d636f6e747261637420616464726573730000000000606482015290519081900360840190fd5b507f7050c9e0f4ca769c69bd3a8ef740bc37934f8e2c036e5a723fd8ee048ed3f8c355565b6000903b1190565b6080604051908101604052806060815260200160608152602001606081526020016000151581525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106115d457805160ff1916838001178555611601565b82800160010185558215611601579182015b828111156116015782518255916020019190600101906115e6565b5061160d929150611611565b5090565b610ed991905b8082111561160d5760008155600101611617560053656e646572206d7573742062652076616c696461746f720000000000000000a165627a7a72305820cc9fb92d196fd26c5df1ba01c3ac5c529d0b24e2434eddb99da751f6f21c88a50029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000078a87623e381c395f6b02c649893642dcb3d245e
-----Decoded View---------------
Arg [0] : _implementation (address): 0x78A87623e381C395f6B02c649893642dCB3D245E
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000078a87623e381c395f6b02c649893642dcb3d245e
Swarm Source
bzzr://cc9fb92d196fd26c5df1ba01c3ac5c529d0b24e2434eddb99da751f6f21c88a5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.