Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
300,000,000 CPI
Holders
375 (0.00%)
Transfers
-
2
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
Proxy
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-07-08
*/
contract Delegatable {
address public empty1; // unknown slot
address public empty2; // unknown slot
address public empty3; // unknown slot
address public owner; // matches owner slot in controller
address public delegation; // matches thisAddr slot in controller
event DelegationTransferred(address indexed previousDelegate, address indexed newDelegation);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
modifier onlyOwner() {
require(msg.sender == owner, "Sender is not the owner");
_;
}
constructor() public {}
/**
* @dev Allows owner to transfer delegation of the contract to a newDelegation.
* @param _newDelegation The address to transfer delegation to.
*/
function transferDelegation(address _newDelegation) public onlyOwner {
require(_newDelegation != address(0), "Trying to transfer to address 0");
emit DelegationTransferred(delegation, _newDelegation);
delegation = _newDelegation;
}
/**
* @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), "Trying to transfer to address 0");
emit OwnershipTransferred(owner, _newOwner);
owner = _newOwner;
}
}
contract DelegateProxy {
constructor() public {}
/**
* @dev Performs a delegatecall and returns whatever is returned (entire context execution will return!)
* @param _dst Destination address to perform the delegatecall
* @param _calldata Calldata for the delegatecall
*/
function delegatedFwd(address _dst, bytes _calldata) internal {
assembly {
let result := delegatecall(sub(gas, 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0)
let size := returndatasize
let ptr := mload(0x40)
returndatacopy(ptr, 0, size)
// revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas.
// if the call returned error data, forward it
switch result case 0 { revert(ptr, size) }
default { return(ptr, size) }
}
}
}
contract Proxy is Delegatable, DelegateProxy {
constructor() public {}
/**
* @dev Function to invoke all function that are implemented in controler
*/
function () public {
require(delegation != address(0), "Delegation is address 0, not initialized");
delegatedFwd(delegation, msg.data);
}
/**
* @dev Function to initialize storage of proxy
* @param _controller The address of the controller to load the code from
*/
function initialize(address _controller, uint256) public {
require(owner == 0, "Already initialized");
owner = msg.sender;
delegation = _controller;
delegatedFwd(_controller, msg.data);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"empty3","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newDelegation","type":"address"}],"name":"transferDelegation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"empty1","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"empty2","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"},{"name":"","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"delegation","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"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousDelegate","type":"address"},{"indexed":true,"name":"newDelegation","type":"address"}],"name":"DelegationTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
608060405234801561001057600080fd5b50610b49806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806368690113146101e95780637babfffc146102405780638da5cb5b14610283578063994ebc43146102da578063ab63424e14610331578063cd6dc68714610388578063df5cf723146103d5578063f2fde38b1461042c575b34801561009a57600080fd5b50600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f44656c65676174696f6e206973206164647265737320302c206e6f7420696e6981526020017f7469616c697a656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6101e7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061046f565b005b3480156101f557600080fd5b506101fe610499565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024c57600080fd5b50610281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104bf565b005b34801561028f57600080fd5b506102986106e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e657600080fd5b506102ef61070f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033d57600080fd5b50610346610734565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039457600080fd5b506103d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061075a565b005b3480156103e157600080fd5b506103ea6108cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043857600080fd5b5061046d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f3565b005b600080825160208401856127105a03f43d604051816000823e8260008114610495578282f35b8282fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e646572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f547279696e6720746f207472616e7366657220746f206164647265737320300081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd0f8e6a439689cb66a57cb879faad9da11c6b662caf1ec096fef086d15ea16c760405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561080a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108c9826000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061046f565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e646572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f547279696e6720746f207472616e7366657220746f206164647265737320300081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d32c1a443d9dae25d6b782e6c2334d9c39e4bc487c5d1208f8c5f43686a5af360029
Deployed Bytecode
0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806368690113146101e95780637babfffc146102405780638da5cb5b14610283578063994ebc43146102da578063ab63424e14610331578063cd6dc68714610388578063df5cf723146103d5578063f2fde38b1461042c575b34801561009a57600080fd5b50600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610188576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f44656c65676174696f6e206973206164647265737320302c206e6f7420696e6981526020017f7469616c697a656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6101e7600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061046f565b005b3480156101f557600080fd5b506101fe610499565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024c57600080fd5b50610281600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104bf565b005b34801561028f57600080fd5b506102986106e9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102e657600080fd5b506102ef61070f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561033d57600080fd5b50610346610734565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561039457600080fd5b506103d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061075a565b005b3480156103e157600080fd5b506103ea6108cd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043857600080fd5b5061046d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108f3565b005b600080825160208401856127105a03f43d604051816000823e8260008114610495578282f35b8282fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e646572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f547279696e6720746f207472616e7366657220746f206164647265737320300081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd0f8e6a439689cb66a57cb879faad9da11c6b662caf1ec096fef086d15ea16c760405160405180910390a380600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561080a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f416c726561647920696e697469616c697a65640000000000000000000000000081525060200191505060405180910390fd5b33600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506108c9826000368080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061046f565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53656e646572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610a5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f547279696e6720746f207472616e7366657220746f206164647265737320300081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820d32c1a443d9dae25d6b782e6c2334d9c39e4bc487c5d1208f8c5f43686a5af360029
Deployed Bytecode Sourcemap
2405:726:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2405:726:0;2645:1;2623:24;;:10;;;;;;;;;;;:24;;;;2615:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2703:34;2716:10;;;;;;;;;;;2728:8;;2703:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:34::i;:::-;2405:726;116:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;804:263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;804:263:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;161:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;28:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;72:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2900:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2900:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1242:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1242:231:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;1792:606;1982:1;1979;1967:9;1961:16;1954:4;1943:9;1939:20;1933:4;1925:5;1920:3;1916:15;1903:81;2010:14;2057:4;2051:11;2099:4;2096:1;2091:3;2076:28;2302:6;2314:1;2309:28;;;;2373:4;2368:3;2361:17;2309:28;2330:4;2325:3;2318:17;116:21;;;;;;;;;;;;;:::o;804:263::-;543:5;;;;;;;;;;;529:19;;:10;:19;;;521:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:1;892:28;;:14;:28;;;;884:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1006:14;972:49;;994:10;;;;;;;;;;;972:49;;;;;;;;;;;;1045:14;1032:10;;:27;;;;;;;;;;;;;;;;;;804:263;:::o;161:20::-;;;;;;;;;;;;;:::o;28:21::-;;;;;;;;;;;;;:::o;72:::-;;;;;;;;;;;;;:::o;2900:228::-;2985:1;2976:5;;;;;;;;;;;:10;;;2968:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3029:10;3021:5;;:18;;;;;;;;;;;;;;;;;;3063:11;3050:10;;:24;;;;;;;;;;;;;;;;;;3085:35;3098:11;3111:8;;3085:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:35::i;:::-;2900:228;;:::o;225:25::-;;;;;;;;;;;;;:::o;1242:231::-;543:5;;;;;;;;;;;529:19;;:10;:19;;;521:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1345:1;1324:23;;:9;:23;;;;1316:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1427:9;1399:38;;1420:5;;;;;;;;;;;1399:38;;;;;;;;;;;;1456:9;1448:5;;:17;;;;;;;;;;;;;;;;;;1242:231;:::o
Swarm Source
bzzr://d32c1a443d9dae25d6b782e6c2334d9c39e4bc487c5d1208f8c5f43686a5af36
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)