More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 26 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Immortality | 16064863 | 682 days ago | IN | 0 ETH | 0.00030828 | ||||
Remove | 16022609 | 687 days ago | IN | 0 ETH | 0.00032925 | ||||
0x8a2fde8a | 12272123 | 1269 days ago | IN | 0 ETH | 0.01160478 | ||||
Add Emitter | 12272120 | 1269 days ago | IN | 0 ETH | 0.01097662 | ||||
0x8a2fde8a | 12185822 | 1282 days ago | IN | 0 ETH | 0.14020572 | ||||
0x8a2fde8a | 12185815 | 1282 days ago | IN | 0 ETH | 0.00269868 | ||||
Add Emitter | 12185815 | 1282 days ago | IN | 0 ETH | 0.00668556 | ||||
Add Version | 12185815 | 1282 days ago | IN | 0 ETH | 0.0322524 | ||||
Add Version | 9882275 | 1637 days ago | IN | 0 ETH | 0.00028008 | ||||
Set Ambi Address | 9882275 | 1637 days ago | IN | 0 ETH | 0.00018475 | ||||
Setup Stack Dept... | 9882275 | 1637 days ago | IN | 0 ETH | 0.0003478 | ||||
Immortality | 6080894 | 2259 days ago | IN | 0 ETH | 0.00009655 | ||||
Transfer | 4163352 | 2611 days ago | IN | 0.0001 ETH | 0.00076601 | ||||
Add Version | 3390157 | 2759 days ago | IN | 0 ETH | 0.00714564 | ||||
Add Emitter | 3390128 | 2759 days ago | IN | 0 ETH | 0.00098762 | ||||
Add Version | 1909282 | 3005 days ago | IN | 0 ETH | 0.00372342 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Add Emitter | 1909263 | 3005 days ago | IN | 0 ETH | 0.00092822 | ||||
Set Ambi Address | 1909255 | 3005 days ago | IN | 0 ETH | 0.00307778 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
12272123 | 1269 days ago | Contract Creation | 0 ETH | |||
12185822 | 1282 days ago | Contract Creation | 0 ETH | |||
12185822 | 1282 days ago | Contract Creation | 0 ETH | |||
4163352 | 2611 days ago | 0.0001 ETH | ||||
2440380 | 2917 days ago | 0 ETH | ||||
2440337 | 2917 days ago | 0 ETH | ||||
2440325 | 2917 days ago | 0 ETH | ||||
2440252 | 2917 days ago | 0 ETH | ||||
2440139 | 2917 days ago | 0 ETH | ||||
2440096 | 2917 days ago | 0 ETH | ||||
2440093 | 2917 days ago | 0 ETH | ||||
2439934 | 2917 days ago | 0 ETH | ||||
2439910 | 2917 days ago | 0 ETH | ||||
2439060 | 2917 days ago | 0 ETH | ||||
2438948 | 2917 days ago | 0 ETH | ||||
2438888 | 2917 days ago | 0 ETH | ||||
2438848 | 2917 days ago | 0 ETH | ||||
2438527 | 2917 days ago | 0 ETH | ||||
2438527 | 2917 days ago | 0 ETH | ||||
2438383 | 2917 days ago | 0 ETH | ||||
2438359 | 2917 days ago | 0 ETH | ||||
2438338 | 2917 days ago | 0 ETH | ||||
2438332 | 2917 days ago | 0 ETH | ||||
2438321 | 2917 days ago | 0 ETH | ||||
2438287 | 2917 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 Name:
EventsHistory
Compiler Version
v0.3.5-nightly.2016.7.1+commit.48238c9
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-08-02 */ // This software is a subject to Ambisafe License Agreement. // No use or distribution is allowed without written permission from Ambisafe. // https://ambisafe.com/terms.pdf contract Ambi { function getNodeAddress(bytes32 _nodeName) constant returns(address); function hasRelation(bytes32 _nodeName, bytes32 _relation, address _to) constant returns(bool); function addNode(bytes32 _nodeName, address _nodeAddress) constant returns(bool); } contract AmbiEnabled { Ambi public ambiC; bool public isImmortal; bytes32 public name; modifier checkAccess(bytes32 _role) { if(address(ambiC) != 0x0 && ambiC.hasRelation(name, _role, msg.sender)){ _ } } function getAddress(bytes32 _name) constant returns (address) { return ambiC.getNodeAddress(_name); } function setAmbiAddress(address _ambi, bytes32 _name) returns (bool){ if(address(ambiC) != 0x0){ return false; } Ambi ambiContract = Ambi(_ambi); if(ambiContract.getNodeAddress(_name)!=address(this)) { if (!ambiContract.addNode(_name, address(this))){ return false; } } name = _name; ambiC = ambiContract; return true; } function immortality() checkAccess("owner") returns(bool) { isImmortal = true; return true; } function remove() checkAccess("owner") returns(bool) { if (isImmortal) { return false; } selfdestruct(msg.sender); return true; } } library StackDepthLib { // This will probably work with a value of 390 but no need to cut it // that close in the case that the optimizer changes slightly or // something causing that number to rise slightly. uint constant GAS_PER_DEPTH = 400; function checkDepth(address self, uint n) constant returns(bool) { if (n == 0) return true; return self.call.gas(GAS_PER_DEPTH * n)(0x21835af6, n - 1); } function __dig(uint n) constant { if (n == 0) return; if (!address(this).delegatecall(0x21835af6, n - 1)) throw; } } contract Safe { // Should always be placed as first modifier! modifier noValue { if (msg.value > 0) { // Internal Out Of Gas/Throw: revert this transaction too; // Call Stack Depth Limit reached: revert this transaction too; // Recursive Call: safe, no any changes applied yet, we are inside of modifier. _safeSend(msg.sender, msg.value); } _ } modifier onlyHuman { if (_isHuman()) { _ } } modifier noCallback { if (!isCall) { _ } } modifier immutable(address _address) { if (_address == 0) { _ } } address stackDepthLib; function setupStackDepthLib(address _stackDepthLib) immutable(address(stackDepthLib)) returns(bool) { stackDepthLib = _stackDepthLib; return true; } modifier requireStackDepth(uint16 _depth) { if (stackDepthLib == 0x0) { throw; } if (_depth > 1023) { throw; } if (!stackDepthLib.delegatecall(0x32921690, stackDepthLib, _depth)) { throw; } _ } // Must not be used inside the functions that have noValue() modifier! function _safeFalse() internal noValue() returns(bool) { return false; } function _safeSend(address _to, uint _value) internal { if (!_unsafeSend(_to, _value)) { throw; } } function _unsafeSend(address _to, uint _value) internal returns(bool) { return _to.call.value(_value)(); } function _isContract() constant internal returns(bool) { return msg.sender != tx.origin; } function _isHuman() constant internal returns(bool) { return !_isContract(); } bool private isCall = false; function _setupNoCallback() internal { isCall = true; } function _finishNoCallback() internal { isCall = false; } } /** * @title Events History universal contract. * * Contract serves as an Events storage and version history for a particular contract type. * Events appear on this contract address but their definitions provided by other contracts/libraries. * Version info is provided for historical and informational purposes. * * Note: all the non constant functions return false instead of throwing in case if state change * didn't happen yet. */ contract EventsHistory is AmbiEnabled, Safe { // Event emitter signature to address with Event definiton mapping. mapping(bytes4 => address) public emitters; // Calling contract address to version mapping. mapping(address => uint) public versions; // Version to info mapping. mapping(uint => VersionInfo) public versionInfo; // Latest verion number. uint public latestVersion; struct VersionInfo { uint block; // Block number in which version has been introduced. address by; // Contract owner address who added version. address caller; // Address of this version calling contract. string name; // Version name, informative. string changelog; // Version changelog, informative. } /** * Assign emitter address to a specified emit function signature. * * Can be set only once for each signature, and only by contract owner. * Caller contract should be sure that emitter for a particular signature will never change. * * @param _eventSignature signature of the event emitting function. * @param _emitter address with Event definition. * * @return success. */ function addEmitter(bytes4 _eventSignature, address _emitter) noValue() checkAccess("admin") returns(bool) { if (emitters[_eventSignature] != 0x0) { return false; } emitters[_eventSignature] = _emitter; return true; } /** * Introduce new caller contract version specifing version information. * * Can be set only once for each caller, and only by contract owner. * Name and changelog should not be empty. * * @param _caller address of the new caller. * @param _name version name. * @param _changelog version changelog. * * @return success. */ function addVersion(address _caller, string _name, string _changelog) noValue() checkAccess("admin") returns(bool) { if (versions[_caller] != 0) { return false; } if (bytes(_name).length == 0) { return false; } if (bytes(_changelog).length == 0) { return false; } uint version = ++latestVersion; versions[_caller] = version; versionInfo[version] = VersionInfo(block.number, msg.sender, _caller, _name, _changelog); return true; } /** * Event emitting fallback. * * Can be and only called caller with assigned version. * Resolves msg.sig to an emitter address, and calls it to emit an event. * * Throws if emit function signature is not registered, or call failed. */ function () noValue() { if (versions[msg.sender] == 0) { return; } // Internal Out Of Gas/Throw: revert this transaction too; // Call Stack Depth Limit reached: revert this transaction too; // Recursive Call: safe, all changes already made. if (!emitters[msg.sig].delegatecall(msg.data)) { throw; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"type":"function"},{"constant":false,"inputs":[{"name":"_stackDepthLib","type":"address"}],"name":"setupStackDepthLib","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_eventSignature","type":"bytes4"},{"name":"_emitter","type":"address"}],"name":"addEmitter","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"bytes32"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"versions","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"ambiC","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_caller","type":"address"},{"name":"_name","type":"string"},{"name":"_changelog","type":"string"}],"name":"addVersion","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"isImmortal","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[{"name":"_ambi","type":"address"},{"name":"_name","type":"bytes32"}],"name":"setAmbiAddress","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"versionInfo","outputs":[{"name":"block","type":"uint256"},{"name":"by","type":"address"},{"name":"caller","type":"address"},{"name":"name","type":"string"},{"name":"changelog","type":"string"}],"type":"function"},{"constant":false,"inputs":[],"name":"remove","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"latestVersion","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes4"}],"name":"emitters","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"immortality","outputs":[{"name":"","type":"bool"}],"type":"function"}]
Contract Creation Code
60606040526002805460a060020a60ff0219169055610b55806100226000396000f3606060405236156100ae5760e060020a600035046306fdde0381146100ef57806312ab7242146100f857806313426d871461013057806321f8a7211461014e578063488725a0146101c657806352959d16146101de57806362d020d9146101f057806377f18ed3146102905780637948f523146102a357806387114b8c146102c6578063a7f4377914610303578063c07f47d4146103b1578063e33dafbf146103ba578063f7c3ee7a146103db575b61049b600034111561049d5761049d33345b61068e8282604051600090600160a060020a0384169083908381818185876185025a03f19250505090506106c0565b61052460015481565b610536600435600254600090600160a060020a03168082141561069d57505060028054600160a060020a03191682179055600161069f565b610536600435602435600060003411156106c6576106c633346100c0565b61054a60043560408051600080547f2ade6c360000000000000000000000000000000000000000000000000000000083526004830185905292519092600160a060020a031691632ade6c36916024828101926020929190829003018187876161da5a03f11561000257505060405151915061069f9050565b61052460043560046020526000908152604090205481565b61054a600054600160a060020a031681565b60408051602060248035600481810135601f81018590048502860185019096528585526105369581359591946044949293909201918190840183828082843750506040805160209735808a0135601f81018a90048a0283018a0190935282825296989760649791965060249190910194509092508291508401838280828437509496505050505050506000600060003411156107c6576107c633346100c0565b61053660005460a060020a900460ff1681565b610536600435602435600080548190600160a060020a03168114610a74576106be565b61056760043560056020526000908152604090208054600182015460028301549192600160a060020a039182169290911690600381019060040185565b6105366000805460d960020a6437bbb732b90290600160a060020a03168214801590610391575081546001546040805160e460020a630a1add51028152600481019290925260248201849052600160a060020a033381166044840152905192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b15610a315760005460a060020a900460ff1615610b495760009150505b90565b61052460065481565b61054a600435600360205260009081526040902054600160a060020a031681565b6105366000805460d960020a6437bbb732b90290600160a060020a03168214801590610469575081546001546040805160e460020a630a1add51028152600481019290925260248201849052600160a060020a033381166044840152905192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b15610a315750506000805474ff0000000000000000000000000000000000000000191660a060020a17905560016103ae565b005b600160a060020a03331660009081526004602052604081205414156104bf575b565b600160e060020a03196000803591909116815260036020526040808220549051600160a060020a039190911691903690808383808284378201915050925050506020604051808303818560325a03f4156100025750506040515115156104bd57610002565b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051868152600160a060020a03868116602083015285169181019190915260a06060820181815284546002600182161561010002600019019091160491830182905290608083019060c0840190869080156106055780601f106105da57610100808354040283529160200191610605565b820191906000526020600020905b8154815290600101906020018083116105e857829003601f168201915b50508381038252845460026001821615610100026000190190911604808252602091909101908590801561067a5780601f1061064f5761010080835404028352916020019161067a565b820191906000526020600020905b81548152906001019060200180831161065d57829003601f168201915b505097505050505050505060405180910390f35b151561069957610002565b5050565b505b919050565b600183815560008054600160a060020a0319168317905591505b505b92915050565b6000805460d960020a6430b236b4b70291600160a060020a0391909116148015906107535750604080516000805460015460e460020a630a1add51028452600484015260248301859052600160a060020a033381166044850152935193169263a1add5109260648181019360209392839003909101908290876161da5a03f1156100025750506040515190505b156106be57600160e060020a03198416600090815260036020526040812054600160a060020a03161461078a5760009150506106c0565b5050600160e060020a0319821660009081526003602052604090208054600160a060020a0319168217905560016106c0565b505b509392505050565b6000805460d960020a6430b236b4b70291600160a060020a0391909116148015906108535750604080516000805460015460e460020a630a1add51028452600484015260248301859052600160a060020a033381166044850152935193169263a1add5109260648181019360209392839003909101908290876161da5a03f1156100025750506040515190505b156107bc57600160a060020a038616600090815260046020526040812054146108805760009250506107be565b8451600014156108945760009250506107be565b8351600014156108a85760009250506107be565b60068054600190810191829055600160a060020a0388166000908152600460209081526040808320859055805160a081018252438152338184019081528183018d8152606083018d8152608084018d9052888752600586529386208351815591518288018054600160a060020a031990811690921790559051600283810180549093169091179091559251805160038301805481895297879020999b5093989297939693841615610100026000190190931693909304601f9081018590048201949293919291909101908390106109a257805160ff19168380011785555b506109d29291505b80821115610a31576000815560010161098e565b82800160010185558215610986579182015b828111156109865782518260005055916020019190600101906109b4565b50506080820151816004016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a3557805160ff19168380011785555b50610a6592915061098e565b5090565b82800160010185558215610a25579182015b82811115610a25578251826000505591602001919060010190610a47565b505090505060019250506107be565b83905030600160a060020a031681600160a060020a0316632ade6c36856040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f11561000257505060405151600160a060020a031690911490506106a45780600160a060020a0316637684937684306040518360e060020a028152600401808360001916815260200182600160a060020a03168152602001925050506020604051808303816000876161da5a03f11561000257505060405151151590506106a457600091506106be565b33600160a060020a0316ff
Deployed Bytecode
0x606060405236156100ae5760e060020a600035046306fdde0381146100ef57806312ab7242146100f857806313426d871461013057806321f8a7211461014e578063488725a0146101c657806352959d16146101de57806362d020d9146101f057806377f18ed3146102905780637948f523146102a357806387114b8c146102c6578063a7f4377914610303578063c07f47d4146103b1578063e33dafbf146103ba578063f7c3ee7a146103db575b61049b600034111561049d5761049d33345b61068e8282604051600090600160a060020a0384169083908381818185876185025a03f19250505090506106c0565b61052460015481565b610536600435600254600090600160a060020a03168082141561069d57505060028054600160a060020a03191682179055600161069f565b610536600435602435600060003411156106c6576106c633346100c0565b61054a60043560408051600080547f2ade6c360000000000000000000000000000000000000000000000000000000083526004830185905292519092600160a060020a031691632ade6c36916024828101926020929190829003018187876161da5a03f11561000257505060405151915061069f9050565b61052460043560046020526000908152604090205481565b61054a600054600160a060020a031681565b60408051602060248035600481810135601f81018590048502860185019096528585526105369581359591946044949293909201918190840183828082843750506040805160209735808a0135601f81018a90048a0283018a0190935282825296989760649791965060249190910194509092508291508401838280828437509496505050505050506000600060003411156107c6576107c633346100c0565b61053660005460a060020a900460ff1681565b610536600435602435600080548190600160a060020a03168114610a74576106be565b61056760043560056020526000908152604090208054600182015460028301549192600160a060020a039182169290911690600381019060040185565b6105366000805460d960020a6437bbb732b90290600160a060020a03168214801590610391575081546001546040805160e460020a630a1add51028152600481019290925260248201849052600160a060020a033381166044840152905192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b15610a315760005460a060020a900460ff1615610b495760009150505b90565b61052460065481565b61054a600435600360205260009081526040902054600160a060020a031681565b6105366000805460d960020a6437bbb732b90290600160a060020a03168214801590610469575081546001546040805160e460020a630a1add51028152600481019290925260248201849052600160a060020a033381166044840152905192169163a1add51091606481810192602092909190829003018188876161da5a03f1156100025750506040515190505b15610a315750506000805474ff0000000000000000000000000000000000000000191660a060020a17905560016103ae565b005b600160a060020a03331660009081526004602052604081205414156104bf575b565b600160e060020a03196000803591909116815260036020526040808220549051600160a060020a039190911691903690808383808284378201915050925050506020604051808303818560325a03f4156100025750506040515115156104bd57610002565b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b60408051868152600160a060020a03868116602083015285169181019190915260a06060820181815284546002600182161561010002600019019091160491830182905290608083019060c0840190869080156106055780601f106105da57610100808354040283529160200191610605565b820191906000526020600020905b8154815290600101906020018083116105e857829003601f168201915b50508381038252845460026001821615610100026000190190911604808252602091909101908590801561067a5780601f1061064f5761010080835404028352916020019161067a565b820191906000526020600020905b81548152906001019060200180831161065d57829003601f168201915b505097505050505050505060405180910390f35b151561069957610002565b5050565b505b919050565b600183815560008054600160a060020a0319168317905591505b505b92915050565b6000805460d960020a6430b236b4b70291600160a060020a0391909116148015906107535750604080516000805460015460e460020a630a1add51028452600484015260248301859052600160a060020a033381166044850152935193169263a1add5109260648181019360209392839003909101908290876161da5a03f1156100025750506040515190505b156106be57600160e060020a03198416600090815260036020526040812054600160a060020a03161461078a5760009150506106c0565b5050600160e060020a0319821660009081526003602052604090208054600160a060020a0319168217905560016106c0565b505b509392505050565b6000805460d960020a6430b236b4b70291600160a060020a0391909116148015906108535750604080516000805460015460e460020a630a1add51028452600484015260248301859052600160a060020a033381166044850152935193169263a1add5109260648181019360209392839003909101908290876161da5a03f1156100025750506040515190505b156107bc57600160a060020a038616600090815260046020526040812054146108805760009250506107be565b8451600014156108945760009250506107be565b8351600014156108a85760009250506107be565b60068054600190810191829055600160a060020a0388166000908152600460209081526040808320859055805160a081018252438152338184019081528183018d8152606083018d8152608084018d9052888752600586529386208351815591518288018054600160a060020a031990811690921790559051600283810180549093169091179091559251805160038301805481895297879020999b5093989297939693841615610100026000190190931693909304601f9081018590048201949293919291909101908390106109a257805160ff19168380011785555b506109d29291505b80821115610a31576000815560010161098e565b82800160010185558215610986579182015b828111156109865782518260005055916020019190600101906109b4565b50506080820151816004016000509080519060200190828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a3557805160ff19168380011785555b50610a6592915061098e565b5090565b82800160010185558215610a25579182015b82811115610a25578251826000505591602001919060010190610a47565b505090505060019250506107be565b83905030600160a060020a031681600160a060020a0316632ade6c36856040518260e060020a02815260040180826000191681526020019150506020604051808303816000876161da5a03f11561000257505060405151600160a060020a031690911490506106a45780600160a060020a0316637684937684306040518360e060020a028152600401808360001916815260200182600160a060020a03168152602001925050506020604051808303816000876161da5a03f11561000257505060405151151590506106a457600091506106be565b33600160a060020a0316ff
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.