ETH Price: $2,257.48 (-7.69%)

Transaction Decoder

Block:
19296688 at Feb-24-2024 09:55:59 AM +UTC
Transaction Fee:
0.001276722481112055 ETH $2.88
Gas Used:
49,383 Gas / 25.853481585 Gwei

Emitted Events:

403 0xbb44e3349c23cc430cae6ebbaf0256c9f2a1872f.0x700447ec4170a8ebc6b67182ac966faf6dff7d46dc24a1a4a7f0a98e84db9cec( 0x700447ec4170a8ebc6b67182ac966faf6dff7d46dc24a1a4a7f0a98e84db9cec, 0x000000000000000000000000c71254ee6fe264fa1dfc16ce2067469d775b55ac, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000008effaf72c908b )

Account State Difference:

  Address   Before After State Difference Code
(Titan Builder)
88.159253009650298909 Eth88.159253059033298909 Eth0.000000049383
0x5657C73f...8eb902091
0.007031383123278829 Eth
Nonce: 107
0.003238999660726123 Eth
Nonce: 108
0.003792383462552706
0xbb44E334...9f2a1872f
(Coinhako 4)
211.995285355416481499 Eth211.99780101639792215 Eth0.002515660981440651

Execution Trace

ETH 0.002515660981440651 0xc71254ee6fe264fa1dfc16ce2067469d775b55ac.CALL( )
  • ETH 0.002515660981440651 0xa9af78d2bfa0f8cdf2ff04d77367faacaf9f4e05.DELEGATECALL( )
    • Settings.getByKey( _key=0000000000000000000000000000000000000000000000000000000000000001 ) => ( 0x5E01F24a81dD93ecFf57AFdEDB9A1383b289542F )
    • ETH 0.002515660981440651 0x5e01f24a81dd93ecff57afdedb9a1383b289542f.DELEGATECALL( )
      • Settings.getByKey( _key=0000000000000000000000000000000000000000000000000000000000000000 ) => ( 0x742FC103631302EC97E3CfcAbb13514599055858 )
      • ETH 0.002515660981440651 0x742fc103631302ec97e3cfcabb13514599055858.DELEGATECALL( )
        • ETH 0.002515660981440651 Coinhako 4.CALL( )
          {"Ownable.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity \u003e=0.6.0 \u003c0.8.0;\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable {\n    address private _owner;\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n     * @dev Initializes the contract setting the deployer as the initial owner.\n     */\n    constructor () internal {\n        _owner = msg.sender;\n        emit OwnershipTransferred(address(0), msg.sender);\n    }\n\n    /**\n     * @dev Returns the address of the current owner.\n     */\n    function owner() public view returns (address) {\n        return _owner;\n    }\n\n    /**\n     * @dev Throws if called by any account other than the owner.\n     */\n    modifier onlyOwner() {\n        require(_owner == msg.sender, \"Ownable: caller is not the owner\");\n        _;\n    }\n\n    /**\n     * @dev Leaves the contract without owner. It will not be possible to call\n     * `onlyOwner` functions anymore. Can only be called by the current owner.\n     *\n     * NOTE: Renouncing ownership will leave the contract without an owner,\n     * thereby removing any functionality that is only available to the owner.\n     */\n    function renounceOwnership() public virtual onlyOwner {\n        emit OwnershipTransferred(_owner, address(0));\n        _owner = address(0);\n    }\n\n    /**\n     * @dev Transfers ownership of the contract to a new account (`newOwner`).\n     * Can only be called by the current owner.\n     */\n    function transferOwnership(address newOwner) public virtual onlyOwner {\n        require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n        emit OwnershipTransferred(_owner, newOwner);\n        _owner = newOwner;\n    }\n}"},"Settings.sol":{"content":"pragma solidity ^0.6.2;\n\nimport \u0027./Ownable.sol\u0027;\n\ncontract Settings is Ownable {\n\n  constructor() public {\n  }\n  \n  \n    struct Entry{\n        uint index; // index start 1 to keyList.length\n        address value;\n    }\n    \n    mapping(bytes32 =\u003e Entry) internal map;\n    bytes32[] internal keyList;\n\n    function add(bytes32 _key, address _value) onlyOwner public {\n        Entry storage entry = map[_key];\n        entry.value = _value;\n        if(entry.index \u003e 0){ // entry exists\n            // do nothing\n            return;\n        }else { // new entry\n            keyList.push(_key);\n            uint keyListIndex = keyList.length - 1;\n            entry.index = keyListIndex + 1;\n        }\n    }\n\n    function remove(bytes32 _key) onlyOwner public {\n        Entry storage entry = map[_key];\n        require(entry.index != 0); // entry not exist\n        require(entry.index \u003c= keyList.length); // invalid index value\n        \n        // Move an last element of array into the vacated key slot.\n        uint keyListIndex = entry.index - 1;\n        uint keyListLastIndex = keyList.length - 1;\n        map[keyList[keyListLastIndex]].index = keyListIndex + 1;\n        keyList[keyListIndex] = keyList[keyListLastIndex];\n        keyList.pop();\n        delete map[_key];\n    }\n    \n    function size() public view returns (uint) {\n        return uint(keyList.length);\n    }\n    \n    function contains(bytes32 _key) public view returns (bool) {\n        return map[_key].index \u003e 0;\n    }\n    \n    function getByKey(bytes32 _key) public view returns (address) {\n        return map[_key].value;\n    }\n    \n    function getByIndex(uint _index) public view returns (address) {\n        require(_index \u003e= 0);\n        require(_index \u003c keyList.length);\n        return map[keyList[_index]].value;\n    }\n\n    function getKeys() public view returns ( bytes32[] memory) {\n        return keyList;\n    }\n\n}"}}