Feature Tip: Add private address tag to any address under My Name Tag !
Token migration announcement. Synthetix Proxy sUSD token contract has migrated to a new address.
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 17,737 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 20452797 | 203 days ago | IN | 0 ETH | 0.00003183 | ||||
Transfer | 20447707 | 204 days ago | IN | 0 ETH | 0.00003184 | ||||
Transfer | 15559079 | 889 days ago | IN | 0 ETH | 0.00006367 | ||||
Approve | 12878318 | 1311 days ago | IN | 0 ETH | 0.00180929 | ||||
Transfer | 12741914 | 1333 days ago | IN | 0 ETH | 0.00038205 | ||||
Transfer | 12741781 | 1333 days ago | IN | 0 ETH | 0.00041389 | ||||
Transfer | 12741595 | 1333 days ago | IN | 0 ETH | 0.00041389 | ||||
Approve | 12635440 | 1349 days ago | IN | 0 ETH | 0.00041899 | ||||
Approve | 12635440 | 1349 days ago | IN | 0 ETH | 0.00041899 | ||||
Approve | 12632398 | 1350 days ago | IN | 0 ETH | 0.00031742 | ||||
Transfer | 12580486 | 1358 days ago | IN | 0 ETH | 0.0003185 | ||||
Approve | 12528671 | 1366 days ago | IN | 0 ETH | 0.00073006 | ||||
Transfer | 12417722 | 1383 days ago | IN | 0 ETH | 0.0258634 | ||||
Transfer | 12416951 | 1383 days ago | IN | 0 ETH | 0.02825784 | ||||
Transfer | 12404279 | 1385 days ago | IN | 0 ETH | 0.01315076 | ||||
Transfer | 12383154 | 1388 days ago | IN | 0 ETH | 0.00742333 | ||||
Transfer | 12372458 | 1390 days ago | IN | 0 ETH | 0.00332352 | ||||
Transfer | 12363444 | 1391 days ago | IN | 0 ETH | 0.01097708 | ||||
Transfer | 12363324 | 1391 days ago | IN | 0 ETH | 0.01174564 | ||||
Transfer | 12358258 | 1392 days ago | IN | 0 ETH | 0.00326052 | ||||
Transfer | 12358200 | 1392 days ago | IN | 0 ETH | 0.00347788 | ||||
Transfer | 12344831 | 1394 days ago | IN | 0 ETH | 0.00391354 | ||||
Transfer | 12331528 | 1396 days ago | IN | 0 ETH | 0.01063641 | ||||
Transfer | 12326735 | 1397 days ago | IN | 0 ETH | 0.00498636 | ||||
Transfer | 12323418 | 1397 days ago | IN | 0 ETH | 0.01067221 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
20452797 | 203 days ago | 0 ETH | |||||
20447707 | 204 days ago | 0 ETH | |||||
15559079 | 889 days ago | 0 ETH | |||||
13223712 | 1258 days ago | 0 ETH | |||||
13222927 | 1258 days ago | 0 ETH | |||||
13222927 | 1258 days ago | 0 ETH | |||||
13222927 | 1258 days ago | 0 ETH | |||||
13222844 | 1258 days ago | 0 ETH | |||||
12878318 | 1311 days ago | 0 ETH | |||||
12741914 | 1333 days ago | 0 ETH | |||||
12741781 | 1333 days ago | 0 ETH | |||||
12741595 | 1333 days ago | 0 ETH | |||||
12635440 | 1349 days ago | 0 ETH | |||||
12635440 | 1349 days ago | 0 ETH | |||||
12632398 | 1350 days ago | 0 ETH | |||||
12580486 | 1358 days ago | 0 ETH | |||||
12528671 | 1366 days ago | 0 ETH | |||||
12451171 | 1378 days ago | 0 ETH | |||||
12451171 | 1378 days ago | 0 ETH | |||||
12425886 | 1382 days ago | 0 ETH | |||||
12417722 | 1383 days ago | 0 ETH | |||||
12417722 | 1383 days ago | 0 ETH | |||||
12416951 | 1383 days ago | 0 ETH | |||||
12416951 | 1383 days ago | 0 ETH | |||||
12404279 | 1385 days ago | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
Proxy
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-06-12 */ /* * Nomin Token Contract Proxy * ======================== * * This contract points to an underlying target which implements its * actual functionality, while allowing that functionality to be upgraded. */ pragma solidity 0.4.24; /** * @title A contract with an owner. * @notice Contract ownership can be transferred by first nominating the new owner, * who must then accept the ownership, which prevents accidental incorrect ownership transfers. */ contract Owned { address public owner; address public nominatedOwner; /** * @dev Owned Constructor */ constructor(address _owner) public { require(_owner != address(0)); owner = _owner; emit OwnerChanged(address(0), _owner); } /** * @notice Nominate a new owner of this contract. * @dev Only the current owner may nominate a new owner. */ function nominateNewOwner(address _owner) external onlyOwner { nominatedOwner = _owner; emit OwnerNominated(_owner); } /** * @notice Accept the nomination to be owner. */ function acceptOwnership() external { require(msg.sender == nominatedOwner); emit OwnerChanged(owner, nominatedOwner); owner = nominatedOwner; nominatedOwner = address(0); } modifier onlyOwner { require(msg.sender == owner); _; } event OwnerNominated(address newOwner); event OwnerChanged(address oldOwner, address newOwner); } // This contract should be treated like an abstract contract contract Proxyable is Owned { /* The proxy this contract exists behind. */ Proxy public proxy; /* The caller of the proxy, passed through to this contract. * Note that every function using this member must apply the onlyProxy or * optionalProxy modifiers, otherwise their invocations can use stale values. */ address messageSender; constructor(address _proxy, address _owner) Owned(_owner) public { proxy = Proxy(_proxy); emit ProxyUpdated(_proxy); } function setProxy(address _proxy) external onlyOwner { proxy = Proxy(_proxy); emit ProxyUpdated(_proxy); } function setMessageSender(address sender) external onlyProxy { messageSender = sender; } modifier onlyProxy { require(Proxy(msg.sender) == proxy); _; } modifier optionalProxy { if (Proxy(msg.sender) != proxy) { messageSender = msg.sender; } _; } modifier optionalProxy_onlyOwner { if (Proxy(msg.sender) != proxy) { messageSender = msg.sender; } require(messageSender == owner); _; } event ProxyUpdated(address proxyAddress); } contract Proxy is Owned { Proxyable public target; bool public useDELEGATECALL; constructor(address _owner) Owned(_owner) public {} function setTarget(Proxyable _target) external onlyOwner { target = _target; emit TargetUpdated(_target); } function setUseDELEGATECALL(bool value) external onlyOwner { useDELEGATECALL = value; } function _emit(bytes callData, uint numTopics, bytes32 topic1, bytes32 topic2, bytes32 topic3, bytes32 topic4) external onlyTarget { uint size = callData.length; bytes memory _callData = callData; assembly { /* The first 32 bytes of callData contain its length (as specified by the abi). * Length is assumed to be a uint256 and therefore maximum of 32 bytes * in length. It is also leftpadded to be a multiple of 32 bytes. * This means moving call_data across 32 bytes guarantees we correctly access * the data itself. */ switch numTopics case 0 { log0(add(_callData, 32), size) } case 1 { log1(add(_callData, 32), size, topic1) } case 2 { log2(add(_callData, 32), size, topic1, topic2) } case 3 { log3(add(_callData, 32), size, topic1, topic2, topic3) } case 4 { log4(add(_callData, 32), size, topic1, topic2, topic3, topic4) } } } function() external payable { if (useDELEGATECALL) { assembly { /* Copy call data into free memory region. */ let free_ptr := mload(0x40) calldatacopy(free_ptr, 0, calldatasize) /* Forward all gas and call data to the target contract. */ let result := delegatecall(gas, sload(target_slot), free_ptr, calldatasize, 0, 0) returndatacopy(free_ptr, 0, returndatasize) /* Revert if the call failed, otherwise return the result. */ if iszero(result) { revert(free_ptr, returndatasize) } return(free_ptr, returndatasize) } } else { /* Here we are as above, but must send the messageSender explicitly * since we are using CALL rather than DELEGATECALL. */ target.setMessageSender(msg.sender); assembly { let free_ptr := mload(0x40) calldatacopy(free_ptr, 0, calldatasize) /* We must explicitly forward ether to the underlying contract as well. */ let result := call(gas, sload(target_slot), callvalue, free_ptr, calldatasize, 0, 0) returndatacopy(free_ptr, 0, returndatasize) if iszero(result) { revert(free_ptr, returndatasize) } return(free_ptr, returndatasize) } } } modifier onlyTarget { require(Proxyable(msg.sender) == target); _; } event TargetUpdated(Proxyable newTarget); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"}],"name":"setTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"callData","type":"bytes"},{"name":"numTopics","type":"uint256"},{"name":"topic1","type":"bytes32"},{"name":"topic2","type":"bytes32"},{"name":"topic3","type":"bytes32"},{"name":"topic4","type":"bytes32"}],"name":"_emit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"useDELEGATECALL","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"bool"}],"name":"setUseDELEGATECALL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"target","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newTarget","type":"address"}],"name":"TargetUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405160208061066b833981016040525180600160a060020a038116151561003857600080fd5b60008054600160a060020a031916600160a060020a038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506105ca806100a16000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631627540c811461018357806353a47bb7146101a4578063776d1a01146101d557806379ba5097146101f65780638da5cb5b1461020b578063907dff971461022057806395578ebd14610250578063befff6af14610279578063d4b8399214610293575b60025474010000000000000000000000000000000000000000900460ff16156100e157604051366000823760008036836002545af43d6000833e8015156100dd573d82fd5b3d82f35b600254604080517fbc67f8320000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163bc67f8329160248082019260009290919082900301818387803b15801561014657600080fd5b505af115801561015a573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e8015156100dd573d82fd5b005b34801561018f57600080fd5b50610181600160a060020a03600435166102a8565b3480156101b057600080fd5b506101b9610320565b60408051600160a060020a039092168252519081900360200190f35b3480156101e157600080fd5b50610181600160a060020a036004351661032f565b34801561020257600080fd5b506101816103a7565b34801561021757600080fd5b506101b961043e565b34801561022c57600080fd5b5061018160246004803582810192910135903560443560643560843560a43561044d565b34801561025c57600080fd5b50610265610517565b604080519115158252519081900360200190f35b34801561028557600080fd5b506101816004351515610538565b34801561029f57600080fd5b506101b961058f565b600054600160a060020a031633146102bf57600080fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600154600160a060020a031681565b600054600160a060020a0316331461034657600080fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b600154600160a060020a031633146103be57600080fd5b60005460015460408051600160a060020a03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600254600090606090600160a060020a0316331461046a57600080fd5b604080516020601f8b01819004810282018101909252898152899350908a90849081908401838280828437820191505050505050905086600081146104ce57600181146104d957600281146104e557600381146104f257600481146105005761050b565b8260208301a061050b565b868360208401a161050b565b85878460208501a261050b565b8486888560208601a361050b565b838587898660208701a45b50505050505050505050565b60025474010000000000000000000000000000000000000000900460ff1681565b600054600160a060020a0316331461054f57600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600254600160a060020a0316815600a165627a7a723058209e104efaf0a7b150d5357b3a38b0260a3741a240fef678863453d378cc0622b90029000000000000000000000000b2fea5f4ce0c3428a7c844524ff77af948789559
Deployed Bytecode
0x6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631627540c811461018357806353a47bb7146101a4578063776d1a01146101d557806379ba5097146101f65780638da5cb5b1461020b578063907dff971461022057806395578ebd14610250578063befff6af14610279578063d4b8399214610293575b60025474010000000000000000000000000000000000000000900460ff16156100e157604051366000823760008036836002545af43d6000833e8015156100dd573d82fd5b3d82f35b600254604080517fbc67f8320000000000000000000000000000000000000000000000000000000081523360048201529051600160a060020a039092169163bc67f8329160248082019260009290919082900301818387803b15801561014657600080fd5b505af115801561015a573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e8015156100dd573d82fd5b005b34801561018f57600080fd5b50610181600160a060020a03600435166102a8565b3480156101b057600080fd5b506101b9610320565b60408051600160a060020a039092168252519081900360200190f35b3480156101e157600080fd5b50610181600160a060020a036004351661032f565b34801561020257600080fd5b506101816103a7565b34801561021757600080fd5b506101b961043e565b34801561022c57600080fd5b5061018160246004803582810192910135903560443560643560843560a43561044d565b34801561025c57600080fd5b50610265610517565b604080519115158252519081900360200190f35b34801561028557600080fd5b506101816004351515610538565b34801561029f57600080fd5b506101b961058f565b600054600160a060020a031633146102bf57600080fd5b60018054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600154600160a060020a031681565b600054600160a060020a0316331461034657600080fd5b60028054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff19909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b600154600160a060020a031633146103be57600080fd5b60005460015460408051600160a060020a03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600254600090606090600160a060020a0316331461046a57600080fd5b604080516020601f8b01819004810282018101909252898152899350908a90849081908401838280828437820191505050505050905086600081146104ce57600181146104d957600281146104e557600381146104f257600481146105005761050b565b8260208301a061050b565b868360208401a161050b565b85878460208501a261050b565b8486888560208601a361050b565b838587898660208701a45b50505050505050505050565b60025474010000000000000000000000000000000000000000900460ff1681565b600054600160a060020a0316331461054f57600080fd5b60028054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600254600160a060020a0316815600a165627a7a723058209e104efaf0a7b150d5357b3a38b0260a3741a240fef678863453d378cc0622b90029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000b2fea5f4ce0c3428a7c844524ff77af948789559
-----Decoded View---------------
Arg [0] : _owner (address): 0xb2feA5f4cE0C3428A7c844524ff77af948789559
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000b2fea5f4ce0c3428a7c844524ff77af948789559
Swarm Source
bzzr://9e104efaf0a7b150d5357b3a38b0260a3741a240fef678863453d378cc0622b9
Loading...
Loading
Loading...
Loading
OVERVIEW
The legacy proxy token contract for Synthetix sUSD token.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.