Contract 0x8d9a3c662f5cad6f0221a0c1760875350bb1c279

Contract Overview

Balance:
0 BNB
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x0aed47635296d2fdb1eae68cef6d45df0d28f717275d507e2b9afc87f6185fd9Set Latest Answe...116097362021-08-19 7:55:24103 days 12 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00186922
0xc49dc987cfb38fe59b948daa0ed18b46a587b44094b34a06d28ac186c69696e3Set Latest Answe...108383522021-07-23 9:00:31130 days 11 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00186922
0x6afa93ae62cdd5ea93da0dff4c5b101576a5f836edf684a1ed29657b4e936edfSet Latest Answe...108377542021-07-23 8:30:37130 days 12 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x96d2f7b70e8f366b717a247990aea1302e6ef104cdb0573bb64694ccaeb7044aSet Latest Answe...108371542021-07-23 8:00:37130 days 12 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x9d05d8815b638d4cdf072c578c39899d683f6f02102b448b6866828d6cae19c6Set Latest Answe...108365542021-07-23 7:30:37130 days 13 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x693a5af0e28faa58aa328c82d797ac93af2681bb65e69d23780cf5feadd7b74fSet Latest Answe...108359542021-07-23 7:00:37130 days 13 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x94d3eddb4c6b3ede219db18f70a10b52d044eb236a8964751d1418faef740228Set Latest Answe...108353542021-07-23 6:30:37130 days 14 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x95902c7ebdcffa0a32782fab52922735fb7e996e19776073737652d7b6356e3fSet Latest Answe...108347542021-07-23 6:00:37130 days 14 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00186922
0x65dd2c5a2aeb6cc069c68d085a7f6b7a6c75cbada5006dd29db4f11f2d2e78f5Set Latest Answe...108341522021-07-23 5:30:31130 days 15 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x059ba039f6798cdcc4300c21634de27cabe9f92d2d707f6c44be12debf9fda1fSet Latest Answe...108335522021-07-23 5:00:31130 days 15 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x56b616729cbd0825cd790c93364709b657e9f196563697fcaccbea91740a1522Set Latest Answe...108329522021-07-23 4:30:31130 days 16 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0xa26b64046e5f433ad978a762c0305dc9523fd91eab75e9185c5001ef08e13d17Set Latest Answe...108323522021-07-23 4:00:31130 days 16 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00186898
0x991739132a75f93d65f1c088f2f6d019bb41f999f6bc7312c5ab8dd2d39f6a96Set Latest Answe...108317542021-07-23 3:30:33130 days 17 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0x85a3d51488c33d5193f8ad4fcd2f2923444c55674bd1a70b8b48e1829912a41dSet Latest Answe...108311542021-07-23 3:00:33130 days 17 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0xf05ca42d7e93348f46b32e11ef5e847b0879a40d1098ff78befe3b4ba8fde128Set Latest Answe...108305562021-07-23 2:30:33130 days 18 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0xf02e7ffd244bf8d67d0c4b81a51d2413d81f723d139d73a6c5f9195af83aab10Set Latest Answe...108301102021-07-23 2:08:15130 days 18 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00186898
0xe02eb629e42fab0cbcd377c923d615f4525d7bd4a6a78bd11bddd3ae9223b253Set Latest Answe...108300782021-07-23 2:06:39130 days 18 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.0018691
0xcd56b52a4fd99a39abbc90d3c17d7bac1c8948118231bacd76cbe6c880ac4f69Set Window Size108300272021-07-23 2:04:06130 days 18 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00027368
0x51e45aa4899e1ac2c3dbc07e530d7b35e6c61bf43da54a632687c732d1ab0b31Set Latest Answe...108299562021-07-23 2:00:33130 days 18 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187555
0x2b9598f27a61dc796aff400441dcc0a1b193c3da34796a7b485c456cfd2e01b4Set Latest Answe...108293562021-07-23 1:30:33130 days 19 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187531
0x1bac65365b5f981cbeb55d9530a8cd6575508e6d9fef8ca86170dd7dd8d9aa65Set Latest Answe...108287562021-07-23 1:00:33130 days 19 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187543
0x331029024698a870ccadedd0041a954ae3e093f5afe107338867cfae86c75aaaSet Latest Answe...108281562021-07-23 0:30:33130 days 20 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187555
0x6e1b804782f8f2f73b45d21e50a101d9e150734be75add8e3217593fad676e2eSet Latest Answe...108275562021-07-23 0:00:33130 days 20 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187555
0xefbeee1154fe4dcbc610f474377886a56fb8c008aedc67d9a43e05f25b6f2197Set Latest Answe...108269562021-07-22 23:30:33130 days 21 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187555
0xf9db8bd7a0f2149333b19a0c5c0d4ab6706aebf35ca0aa88000d49cc1cebf42fSet Latest Answe...108263562021-07-22 23:00:33130 days 21 hrs ago0x64ac4907b29aa25f4df91356fac4772f16a4803e IN  0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB0.00187555
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x258881ee4fd52c65919fa0e97bd475548d44fc0a61553031b0e5dcfec795a076142425032021-11-19 5:56:1111 days 14 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x758a2bef61422b71a1c737375c8b8a1f21c4bc657dd12331c629d34a082922de142346572021-11-18 23:23:5211 days 21 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xa110d753eaabae962d3a948284747090f81d00ed0bb7f48d27f57b9f07061ab9142343872021-11-18 23:10:2211 days 21 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x77354edd862b70a08169e27ec6c8f20757a197126a1b70961deea1e103090f8b134373742021-10-22 4:23:3939 days 16 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xf35adf3a413bf97bc63b5f219c2c6afd156885a5f859728ed7a23b4a8511d281123515452021-09-14 6:11:1177 days 14 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xac221ec60f058d032e69c9d83dc0a2b390349c7583527e2341ee3b01e85ba6a2123080612021-09-12 17:45:2679 days 3 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xedfa940510c28e9b89c427253aa622236e90ea508b33fafb0dcd89ec2b9b471f119853102021-09-01 10:53:0090 days 9 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x5225010bb3ccb07a5dea988d21332cf134f4025f9fcfdf6b4f291676f7949af0118601202021-08-28 2:03:0494 days 18 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x975844989fdcd113cc6b9f8e7158a92accb94e6fb834456df6015d9c9ab05b66118600962021-08-28 2:01:5294 days 18 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xaf0154820834eb6343ca7c357e0165bc212b666f5bb579076107e0cc90809e4f118076372021-08-26 6:15:3196 days 14 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xaf0154820834eb6343ca7c357e0165bc212b666f5bb579076107e0cc90809e4f118076372021-08-26 6:15:3196 days 14 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xdea5575cf25efcc51e6ae6c0b432da95ea239a0f573e090eeb51298f3b77033e116096352021-08-19 7:50:21103 days 13 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x6d927accbcafe4fbdab1d394c362065ca394585faecab4cae83cfb97ec213ebc116096142021-08-19 7:49:18103 days 13 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x145f3f97c6a85fa196f18ef2b65c32a68a7396a362ffb2f435ac85ab3e1bc45f116095882021-08-19 7:48:00103 days 13 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xb05fea193a79d39020615b5e94c2e4aab51f6f5855ebc01c246ebeec55070bf6116095342021-08-19 7:45:17103 days 13 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x553cd60c8b2599cf207f9116fbae7c784ebf4a8bc38d53af8d6e086dc28e0cf3115888272021-08-18 14:13:01104 days 6 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xa11cc860a5a15d7eda8bf1d42a5df7e53d08124cb780fb2c5914b25d463d2177115888112021-08-18 14:12:13104 days 6 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x2e0de2a1ca148ebb508b81bdd97213967f8b24c03554fc3da5c405badcc93333115828472021-08-18 9:14:01104 days 11 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x2e0de2a1ca148ebb508b81bdd97213967f8b24c03554fc3da5c405badcc93333115828472021-08-18 9:14:01104 days 11 hrs ago 0xb078aa93d1f5600625d3f9bbcd47572a5190882b 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xab2f585b85ba9b8e5c95941ae6246dd20a60b27848d9ac5605b7b88431216228115677182021-08-17 20:21:38105 days 31 mins ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xe15a910368be3994ed94fade5c3a24acab177c8bcd6f6433bd2f3692f10b84eb112498472021-08-06 17:59:24116 days 2 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0x3dc799b58899897ac90f922c4e374a09a323d35d80662933204323e8228746fb112315042021-08-06 2:41:40116 days 18 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xdc31e163ec4c99e2879c4f6b631a0287d1ab20a64eb05c1572de6a75d6efc0c6112314552021-08-06 2:39:13116 days 18 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xda0aa8019c85e402f22acb2973ab8897642684fa4a84a99ae1ff1e4df3c02ce0112166832021-08-05 14:20:25117 days 6 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
0xf55ab02dc71239132eee4273e292e834c0805f54286893483b656fb261c115f8111930352021-08-04 18:30:49118 days 2 hrs ago 0x36e8146e96df79b40e2f66a81d5872c4b921f28e 0x8d9a3c662f5cad6f0221a0c1760875350bb1c2790 BNB
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xfEc4Ad1E94e0E732876fFE48ce540A3b483c20DB

Contract Name:
HznAggregatorV2V3

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-05-28
*/

// File: @chainlink/contracts-0.0.10/src/v0.5/interfaces/AggregatorInterface.sol

pragma solidity >=0.5.0;

interface AggregatorInterface {
  function latestAnswer() external view returns (int256);
  function latestTimestamp() external view returns (uint256);
  function latestRound() external view returns (uint256);
  function getAnswer(uint256 roundId) external view returns (int256);
  function getTimestamp(uint256 roundId) external view returns (uint256);

  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp);
  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);
}

// File: @chainlink/contracts-0.0.10/src/v0.5/interfaces/AggregatorV3Interface.sol

pragma solidity >=0.5.0;

interface AggregatorV3Interface {

  function decimals() external view returns (uint8);
  function description() external view returns (string memory);
  function version() external view returns (uint256);

  // getRoundData and latestRoundData should both raise "No data present"
  // if they do not have data to report, instead of returning unset values
  // which could be misinterpreted as actual reported values.
  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

}

// File: @chainlink/contracts-0.0.10/src/v0.5/interfaces/AggregatorV2V3Interface.sol

pragma solidity >=0.5.0;



/**
 * @title The V2 & V3 Aggregator Interface
 * @notice Solidity V0.5 does not allow interfaces to inherit from other
 * interfaces so this contract is a combination of v0.5 AggregatorInterface.sol
 * and v0.5 AggregatorV3Interface.sol.
 */
interface AggregatorV2V3Interface {
  //
  // V2 Interface:
  //
  function latestAnswer() external view returns (int256);
  function latestTimestamp() external view returns (uint256);
  function latestRound() external view returns (uint256);
  function getAnswer(uint256 roundId) external view returns (int256);
  function getTimestamp(uint256 roundId) external view returns (uint256);

  event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp);
  event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt);

  //
  // V3 Interface:
  //
  function decimals() external view returns (uint8);
  function description() external view returns (string memory);
  function version() external view returns (uint256);

  // getRoundData and latestRoundData should both raise "No data present"
  // if they do not have data to report, instead of returning unset values
  // which could be misinterpreted as actual reported values.
  function getRoundData(uint80 _roundId)
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );
  function latestRoundData()
    external
    view
    returns (
      uint80 roundId,
      int256 answer,
      uint256 startedAt,
      uint256 updatedAt,
      uint80 answeredInRound
    );

}

// File: openzeppelin-solidity/contracts/math/Math.sol

pragma solidity ^0.5.0;

/**
 * @dev Standard math utilities missing in the Solidity language.
 */
library Math {
    /**
     * @dev Returns the largest of two numbers.
     */
    function max(uint256 a, uint256 b) internal pure returns (uint256) {
        return a >= b ? a : b;
    }

    /**
     * @dev Returns the smallest of two numbers.
     */
    function min(uint256 a, uint256 b) internal pure returns (uint256) {
        return a < b ? a : b;
    }

    /**
     * @dev Returns the average of two numbers. The result is rounded towards
     * zero.
     */
    function average(uint256 a, uint256 b) internal pure returns (uint256) {
        // (a + b) / 2 can overflow, so we distribute
        return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);
    }
}

// File: openzeppelin-solidity/contracts/math/SafeMath.sol

pragma solidity ^0.5.0;

/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * _Available since v2.4.0._
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

// File: contracts/interface/iPancakeRouterV2.sol

pragma solidity ^0.5.16;

interface iPancakeRouterV2 {
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

// File: contracts/hznAggregator.sol

pragma solidity ^0.5.16;





// interface iPancakeRouterV2 {
//     function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
// }

contract HznAggregatorV2V3 is AggregatorV2V3Interface {
    using SafeMath for uint;
    // using SafeDecimalMath for uint;

    uint public roundID = 0;
    uint public keyDecimals = 0;
    //here we simplify the window size as how many rounds we use to calculate th TWAP
    uint public windowSize = 0;

    struct Entry {
        uint roundID;
        uint answer;
        uint originAnswer;
        uint startedAt;
        uint updatedAt;
        uint answeredInRound;
        uint priceCumulative;
    }

    mapping(uint => Entry) public entries;
    address owner;
    address operator;

    //pancakeRouterV2 contracat addresss
    address pancakeRouterV2Addr;

    //pancake swap path
    //should be [hzn,wbnb,busd(or other stable coin)]
    address[] path;

    //swap amount should be 1 hzn = 1e18
    uint amountIn;

    modifier onlyOwner {
        _onlyOwner();
        _;
    }

    event AnswerUpdated(uint256 indexed answer, uint256 timestamp);

    function _onlyOwner() private view {
        require(msg.sender == owner, "Only the contract owner may perform this action");
    }

    modifier onlyOperator {
        _onlyOperator();
        _;
    }

    function _onlyOperator() private view {
        require(msg.sender == operator, "Only the contract owner may perform this action");
    }

    constructor(address _owner,
                uint _decimals,
                uint _windowSize,
                address _operator,
                address _pancakeV2,
                address[] memory _path,
                uint _amountIn) public {
        owner = _owner;
        keyDecimals = _decimals;
        windowSize = _windowSize;
        operator = _operator;
        pancakeRouterV2Addr = _pancakeV2;
        path = _path;
        amountIn = _amountIn;
    }

    //========  setters ================//
    function setDecimals(uint _decimals) external onlyOwner {
        keyDecimals = _decimals;
    }

    function setWindowSize(uint _windowSize)external onlyOwner  {
        windowSize = _windowSize;
    }

    function setAmountsOut(uint _amountIn,address[] calldata _path) external onlyOwner {
        amountIn = _amountIn;
        path = _path;
    }

    //========== add price================//
    /***
    this is for decentralized mode,
    when triggered by offline server , will query from pancake router v2 to get hzn busd price
    for mainnet
    https://bscscan.com/address/0x10ed43c718714eb63d5aa57b78b54704e256024e#readContract
    6. getAmountsOut

    amountIn: 1000000000000000000
    //means 1 hzn

    path:[0xc0eff7749b125444953ef89682201fb8c6a917cd,0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c,0xe9e7cea3dedca5984780bafc599bd69add087d56]
    //means :hzn -> wbnb -> busd

    output:
    amounts   uint256[] :  100000000000000000000   //1 hzn
    131032688024315468                             //0.00131 bnb
    72233046540554662116                           //0.7223 BUSD
     */
    function updateLatestAnswer() external onlyOperator {

        //todo get answer from pancake smart contract
        iPancakeRouterV2 ip = iPancakeRouterV2(pancakeRouterV2Addr);
        uint[] memory latest = ip.getAmountsOut(amountIn, path);
        uint answer = latest[latest.length - 1];


        if (entries[0].updatedAt > 0 ){
            roundID++;
        }

        entries[roundID] = calculateTWAP(roundID,answer,now);
        emit AnswerUpdated(answer,now);
    }

    function setLatestAnswer(uint answer) external onlyOperator {
        if (roundID > 0){
            roundID++;
        }
        entries[roundID] = calculateTWAP(roundID,answer,now);
        emit AnswerUpdated(answer,now);
    }

    function setPancakeRouterV2Addr(address _pancakeV2) external onlyOwner() {
        pancakeRouterV2Addr = _pancakeV2;
    }


    //====================interface ==================================
    function latestAnswer() external view returns (int256) {
        Entry memory entry = entries[roundID];
        return int256(entry.answer);
    }

    function latestTimestamp() external view returns (uint256){
        Entry memory entry = entries[roundID];
        return entry.updatedAt;
    }



    function latestRoundData()
        external
        view
        returns (
           uint80,
            int256,
            uint256,
            uint256,
            uint80
        )
    {
        return getRoundData(uint80(latestRound()));
    }

    function latestRound() public view returns (uint256) {
        return roundID;
    }

    function decimals() external view returns (uint8) {
        return uint8(keyDecimals);
    }

    function description() external view returns (string memory){
        return "hzn";
    }

    function version() external view returns (uint256){
        return 1;
    }

    function getAnswer(uint256 _roundId) external view returns (int256) {
        Entry memory entry = entries[_roundId];
        return int256(entry.answer);
    }

    function getTimestamp(uint256 _roundId) external view returns (uint256) {
        Entry memory entry = entries[_roundId];
        return entry.updatedAt;
    }

    function getRoundData(uint80 _roundId)
        public
        view
        returns (
           uint80,
            int256,
            uint256,
            uint256,
            uint80
        )
    {
        Entry memory entry = entries[_roundId];
        // Emulate a Chainlink aggregator
        require(entry.updatedAt > 0, "No data present");
        return (uint80(entry.roundID), int256(entry.answer), entry.startedAt, entry.updatedAt, uint80(entry.answeredInRound));
    }


    function calculateTWAP(uint currentRoundId,uint answer,uint timestamp) internal view returns(Entry memory) {
        if (currentRoundId == 0 ){
            return  Entry({
                roundID: currentRoundId,
                answer: answer,
                originAnswer: answer,
                startedAt: timestamp,
                updatedAt: timestamp,
                answeredInRound: currentRoundId,
                priceCumulative: 0
            });
        }
        uint firstIdx = 0;
        if (windowSize >= currentRoundId) {
            firstIdx = 0;
        }else{
            firstIdx = currentRoundId - windowSize + 1;
        }
        Entry memory first = entries[firstIdx];
        Entry memory last = entries[currentRoundId - 1];

        if (first.roundID == last.roundID){
            return  Entry({
                roundID: currentRoundId,
                answer: answer,
                originAnswer: answer,
                startedAt: timestamp,
                updatedAt: timestamp,
                answeredInRound: currentRoundId,
                priceCumulative: last.priceCumulative.add(answer.mul(timestamp.sub(first.updatedAt)))
            });
        }

        uint current_priceCumulative = last.priceCumulative.add(answer.mul(timestamp.sub(last.updatedAt)));
        uint current_answer = (current_priceCumulative.sub(first.priceCumulative)).div(timestamp.sub(first.updatedAt));
        return Entry({
            roundID: currentRoundId,
            answer: current_answer,
            originAnswer: answer,
            startedAt: timestamp,
            updatedAt: timestamp,
            answeredInRound: currentRoundId,
            priceCumulative: current_priceCumulative
        });

    }
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_decimals","type":"uint256"},{"internalType":"uint256","name":"_windowSize","type":"uint256"},{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_pancakeV2","type":"address"},{"internalType":"address[]","name":"_path","type":"address[]"},{"internalType":"uint256","name":"_amountIn","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"answer","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":true,"internalType":"address","name":"startedBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"startedAt","type":"uint256"}],"name":"NewRound","type":"event"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"entries","outputs":[{"internalType":"uint256","name":"roundID","type":"uint256"},{"internalType":"uint256","name":"answer","type":"uint256"},{"internalType":"uint256","name":"originAnswer","type":"uint256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint256","name":"answeredInRound","type":"uint256"},{"internalType":"uint256","name":"priceCumulative","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_roundId","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"","type":"uint80"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint80","name":"","type":"uint80"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_roundId","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"keyDecimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"","type":"uint80"},{"internalType":"int256","name":"","type":"int256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint80","name":"","type":"uint80"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountIn","type":"uint256"},{"internalType":"address[]","name":"_path","type":"address[]"}],"name":"setAmountsOut","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_decimals","type":"uint256"}],"name":"setDecimals","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"answer","type":"uint256"}],"name":"setLatestAnswer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_pancakeV2","type":"address"}],"name":"setPancakeRouterV2Addr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_windowSize","type":"uint256"}],"name":"setWindowSize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"updateLatestAnswer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"windowSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405260008055600060015560006002553480156200001f57600080fd5b506040516200139c3803806200139c833981810160405260e08110156200004557600080fd5b815160208301516040808501516060860151608087015160a0880180519451969895979396929591949293820192846401000000008211156200008757600080fd5b9083019060208201858111156200009d57600080fd5b8251866020820283011164010000000082111715620000bb57600080fd5b82525081516020918201928201910280838360005b83811015620000ea578181015183820152602001620000d0565b505050509190910160405250602090810151600480546001600160a01b03808d166001600160a01b03199283161790925560018b905560028a9055600580548a8416908316179055600680549289169290911691909117905584519093506200015a92506007918501906200016b565b5060085550620001ff945050505050565b828054828255906000526020600020908101928215620001c3579160200282015b82811115620001c357825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200018c565b50620001d1929150620001d5565b5090565b620001fc91905b80821115620001d15780546001600160a01b0319168155600101620001dc565b90565b61118d806200020f6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638a14117a116100ad578063b30906d411610071578063b30906d414610356578063b5ab58dc146103ab578063b633620c146103c8578063dcddc6da146103e5578063feaf968c1461040b5761012c565b80638a14117a146102a45780638c8885c8146102ac578063922f0fea146102c95780639a6fc8f5146102d1578063aaabc315146103395761012c565b8063531d6088116100f4578063531d60881461019857806354fd4d501461020f578063668a0f02146102175780637284e4161461021f5780638205bf6a1461029c5761012c565b806314f8b4241461013157806320aa1b801461014b5780632c746cae1461016a578063313ce5671461017257806350d25bcd14610190575b600080fd5b610139610413565b60408051918252519081900360200190f35b6101686004803603602081101561016157600080fd5b5035610419565b005b6101396104c9565b61017a6104cf565b6040805160ff9092168252519081900360200190f35b6101396104d6565b610168600480360360408110156101ae57600080fd5b813591908101906040810160208201356401000000008111156101d057600080fd5b8201836020820111156101e257600080fd5b8035906020019184602083028401116401000000008311171561020457600080fd5b509092509050610547565b610139610566565b61013961056b565b610227610571565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610261578181015183820152602001610249565b50505050905090810190601f16801561028e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61013961058e565b6101396105ff565b610168600480360360208110156102c257600080fd5b5035610605565b610168610612565b6102fa600480360360208110156102e757600080fd5b503569ffffffffffffffffffff1661087b565b6040805169ffffffffffffffffffff96871681526020810195909552848101939093526060840191909152909216608082015290519081900360a00190f35b6101686004803603602081101561034f57600080fd5b5035610970565b6103736004803603602081101561036c57600080fd5b503561097d565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b610139600480360360208110156103c157600080fd5b50356109bf565b610139600480360360208110156103de57600080fd5b5035610a2f565b610168600480360360208110156103fb57600080fd5b50356001600160a01b0316610a9f565b6102fa610ac9565b60005481565b610421610af2565b60005415610433576000805460010190555b6104406000548242610b3d565b60008054815260036020818152604092839020845181558482015160018201558484015160028201556060850151928101929092556080840151600483015560a0840151600583015560c0909301516006909101558051428152905183927f9dbf10d2b28a115b0d961f654c176ff40cbb9fbaafadd22e9c38159bd36c3352928290030190a250565b60015481565b6001545b90565b60006104e0611044565b505060008054815260036020818152604092839020835160e08101855281548152600182015492810183905260028201549481019490945291820154606084015260048201546080840152600582015460a084015260069091015460c09092019190915290565b61054f610dbf565b600883905561056060078383611081565b50505050565b600190565b60005490565b604080518082019091526003815262343d3760e91b602082015290565b6000610598611044565b505060008054815260036020818152604092839020835160e08101855281548152600182015492810192909252600281015493820193909352908201546060820152600482015460808201819052600583015460a083015260069092015460c09091015290565b60025481565b61060d610dbf565b600155565b61061a610af2565b6006546008546040805163d06ca61f60e01b8152600481018381526024820192835260078054604484018190526001600160a01b0390961695606095879563d06ca61f959194929091606401908490801561069e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610680575b5050935050505060006040518083038186803b1580156106bd57600080fd5b505afa1580156106d1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106fa57600080fd5b810190808051604051939291908464010000000082111561071a57600080fd5b90830190602082018581111561072f57600080fd5b825186602082028301116401000000008211171561074c57600080fd5b82525081516020918201928201910280838360005b83811015610779578181015183820152602001610761565b50505050905001604052505050905060008160018351038151811061079a57fe5b6020908102919091018101516000805260039091527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92f0354909150156107e3576000805460010190555b6107f06000548242610b3d565b60008054815260036020818152604092839020845181558482015160018201558484015160028201556060850151928101929092556080840151600483015560a0840151600583015560c0909301516006909101558051428152905183927f9dbf10d2b28a115b0d961f654c176ff40cbb9fbaafadd22e9c38159bd36c3352928290030190a2505050565b600080600080600061088b611044565b600360008869ffffffffffffffffffff1681526020019081526020016000206040518060e001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152505090506000816080015111610948576040805162461bcd60e51b815260206004820152600f60248201526e139bc819185d18481c1c995cd95b9d608a1b604482015290519081900360640190fd5b805160208201516060830151608084015160a090940151929a91995097509195509350915050565b610978610dbf565b600255565b60036020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050154908060060154905087565b60006109c9611044565b5050600090815260036020818152604092839020835160e08101855281548152600182015492810183905260028201549481019490945291820154606084015260048201546080840152600582015460a084015260069091015460c09092019190915290565b6000610a39611044565b5050600090815260036020818152604092839020835160e08101855281548152600182015492810192909252600281015493820193909352908201546060820152600482015460808201819052600583015460a083015260069092015460c09091015290565b610aa7610dbf565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6000806000806000610ae1610adc61056b565b61087b565b945094509450945094509091929394565b6005546001600160a01b03163314610b3b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611109602f913960400191505060405180910390fd5b565b610b45611044565b83610b85576040518060e0016040528085815260200184815260200184815260200183815260200183815260200185815260200160008152509050610db8565b6002546000908511610b9957506000610ba4565b600254850360010190505b610bac611044565b600360008381526020019081526020016000206040518060e00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152602001600582015481526020016006820154815250509050610c1a611044565b506000198601600090815260036020818152604092839020835160e081018552815480825260018301549382019390935260028201549481019490945291820154606084015260048201546080840152600582015460a084015260069091015460c083015282511415610cfe576040518060e00160405280888152602001878152602001878152602001868152602001868152602001888152602001610cf1610ce0610cd386608001518a610e0890919063ffffffff16565b8a9063ffffffff610e5316565b60c08501519063ffffffff610eac16565b8152509350505050610db8565b6000610d3b610d2a610d1d846080015189610e0890919063ffffffff16565b899063ffffffff610e5316565b60c08401519063ffffffff610eac16565b90506000610d7b610d59856080015189610e0890919063ffffffff16565b60c0860151610d6f90859063ffffffff610e0816565b9063ffffffff610f0616565b90506040518060e001604052808a81526020018281526020018981526020018881526020018881526020018a815260200183815250955050505050505b9392505050565b6004546001600160a01b03163314610b3b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611109602f913960400191505060405180910390fd5b6000610e4a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f48565b90505b92915050565b600082610e6257506000610e4d565b82820282848281610e6f57fe5b0414610e4a5760405162461bcd60e51b81526004018080602001828103825260218152602001806111386021913960400191505060405180910390fd5b600082820183811015610e4a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610e4a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610fdf565b60008184841115610fd75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610f9c578181015183820152602001610f84565b50505050905090810190601f168015610fc95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000818361102e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610f9c578181015183820152602001610f84565b50600083858161103a57fe5b0495945050505050565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8280548282559060005260206000209081019282156110d4579160200282015b828111156110d45781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906110a1565b506110e09291506110e4565b5090565b6104d391905b808211156110e05780546001600160a01b03191681556001016110ea56fe4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158202fe42fe67c3bfe81376bda8237297e636433f7e8792ae4b55a3fadca348ce2c564736f6c6343000510003200000000000000000000000064ac4907b29aa25f4df91356fac4772f16a4803e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000064ac4907b29aa25f4df91356fac4772f16a4803e000000000000000000000000b5a967918279557571ebb17d5101ee356cc8fc0300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c0eff7749b125444953ef89682201fb8c6a917cd000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56

Deployed ByteCode Sourcemap

10270:7575:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10270:7575:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10403:23;;;:::i;:::-;;;;;;;;;;;;;;;;13807:234;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13807:234:0;;:::i;:::-;;10433:27;;;:::i;14933:94::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14255:149;;;:::i;12391:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12391:145:0;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;12391:145:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12391:145:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;12391:145:0;;-1:-1:-1;12391:145:0;-1:-1:-1;12391:145:0;:::i;15134:77::-;;;:::i;14839:86::-;;;:::i;15035:91::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15035:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14412:147;;;:::i;10554:26::-;;;:::i;12174:98::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12174:98:0;;:::i;13310:489::-;;;:::i;15560:495::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15560:495:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12280:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12280:103:0;;:::i;10803:37::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10803:37:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15219:163;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15219:163:0;;:::i;15390:162::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15390:162:0;;:::i;14049:124::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14049:124:0;-1:-1:-1;;;;;14049:124:0;;:::i;14571:260::-;;;:::i;10403:23::-;;;;:::o;13807:234::-;11452:15;:13;:15::i;:::-;13892:1;13882:7;:11;13878:52;;13909:7;:9;;;;;;13878:52;13959:33;13973:7;;13981:6;13988:3;13959:13;:33::i;:::-;13940:16;13948:7;;13940:16;;:7;:16;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14008:25;;14029:3;14008:25;;;;14022:6;;14008:25;;;;;;;;13807:234;:::o;10433:27::-;;;;:::o;14933:94::-;15007:11;;14933:94;;:::o;14255:149::-;14302:6;14321:18;;:::i;:::-;-1:-1:-1;;14342:16:0;14350:7;;14342:16;;:7;:16;;;;;;;;;14321:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14255:149;:::o;12391:145::-;11167:12;:10;:12::i;:::-;12485:8;:20;;;12516:12;:4;12523:5;;12516:12;:::i;:::-;;12391:145;;;:::o;15134:77::-;15202:1;15134:77;:::o;14839:86::-;14883:7;14910;14839:86;:::o;15035:91::-;15106:12;;;;;;;;;;;;-1:-1:-1;;;15106:12:0;;;;15035:91;:::o;14412:147::-;14462:7;14481:18;;:::i;:::-;-1:-1:-1;;14502:16:0;14510:7;;14502:16;;:7;:16;;;;;;;;;14481:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14412:147;:::o;10554:26::-;;;;:::o;12174:98::-;11167:12;:10;:12::i;:::-;12241:11;:23;12174:98::o;13310:489::-;11452:15;:13;:15::i;:::-;13469:19;;13540:8;;13523:32;;;-1:-1:-1;;;13523:32:0;;;;;;;;;;;;;;13550:4;13523:32;;;;;;;;-1:-1:-1;;;;;13469:19:0;;;;13500:20;;13469:19;;13523:16;;13540:8;;13523:32;;;;;;13550:4;;13523:32;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13523:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13523:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13523:32:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;13523:32:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;13523:32:0;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;373:25;;-1:-1;13523:32:0;;421:4:-1;412:14;;;;13523:32:0;;;;;412:14:-1;13523:32:0;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;13523:32:0;;;;;;;;;;;13500:55;;13566:11;13580:6;13603:1;13587:6;:13;:17;13580:25;;;;;;;;;;;;;;;;;;;13647:1;13624:10;;:7;:10;;;:20;;13580:25;;-1:-1:-1;13624:24:0;13620:66;;13665:7;:9;;;;;;13620:66;13717:33;13731:7;;13739:6;13746:3;13717:13;:33::i;:::-;13698:16;13706:7;;13698:16;;:7;:16;;;;;;;;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13766:25;;13787:3;13766:25;;;;13780:6;;13766:25;;;;;;;;11478:1;;;13310:489::o;15560:495::-;15660:6;15681;15702:7;15724;15746:6;15780:18;;:::i;:::-;15801:7;:17;15809:8;15801:17;;;;;;;;;;;;;15780:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15898:1;15880:5;:15;;;:19;15872:47;;;;;-1:-1:-1;;;15872:47:0;;;;;;;;;;;;-1:-1:-1;;;15872:47:0;;;;;;;;;;;;;;;15945:13;;15968:12;;;;15983:15;;;;16000;;;;16024:21;;;;;15945:13;;15968:12;;-1:-1:-1;15983:15:0;-1:-1:-1;16000:15:0;;-1:-1:-1;16024:21:0;-1:-1:-1;15560:495:0;-1:-1:-1;;15560:495:0:o;12280:103::-;11167:12;:10;:12::i;:::-;12351:10;:24;12280:103::o;10803:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15219:163::-;15279:6;15298:18;;:::i;:::-;-1:-1:-1;;15319:17:0;;;;:7;:17;;;;;;;;;15298:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15219:163::o;15390:162::-;15453:7;15473:18;;:::i;:::-;-1:-1:-1;;15494:17:0;;;;:7;:17;;;;;;;;;15473:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15390:162::o;14049:124::-;11167:12;:10;:12::i;:::-;14133:19;:32;;-1:-1:-1;;;;;;14133:32:0;-1:-1:-1;;;;;14133:32:0;;;;;;;;;;14049:124::o;14571:260::-;14661:6;14682;14703:7;14725;14747:6;14788:35;14808:13;:11;:13::i;:::-;14788:12;:35::i;:::-;14781:42;;;;;;;;;;14571:260;;;;;:::o;11495:139::-;11566:8;;-1:-1:-1;;;;;11566:8:0;11552:10;:22;11544:82;;;;-1:-1:-1;;;11544:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11495:139::o;16065:1777::-;16158:12;;:::i;:::-;16187:19;16183:361;;16231:301;;;;;;;;16265:14;16231:301;;;;16306:6;16231:301;;;;16345:6;16231:301;;;;16381:9;16231:301;;;;16420:9;16231:301;;;;16465:14;16231:301;;;;16515:1;16231:301;;;16223:309;;;;16183:361;16586:10;;16554:13;;16586:28;-1:-1:-1;16582:146:0;;-1:-1:-1;16642:1:0;16582:146;;;16702:10;;16685:14;:27;16715:1;16685:31;16674:42;;16582:146;16738:18;;:::i;:::-;16759:7;:17;16767:8;16759:17;;;;;;;;;;;16738:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16787:17;;:::i;:::-;-1:-1:-1;;;16815:18:0;;16807:27;;;;:7;:27;;;;;;;;;16787:47;;;;;;;;;;;;16832:1;16787:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16851:13;;:29;16847:437;;;16904:368;;;;;;;;16938:14;16904:368;;;;16979:6;16904:368;;;;17018:6;16904:368;;;;17054:9;16904:368;;;;17093:9;16904:368;;;;17138:14;16904:368;;;;17188:68;17213:42;17224:30;17238:5;:15;;;17224:9;:13;;:30;;;;:::i;:::-;17213:6;;:42;:10;:42;:::i;:::-;17188:20;;;;;:68;:24;:68;:::i;:::-;16904:368;;;16896:376;;;;;;;16847:437;17296:28;17327:67;17352:41;17363:29;17377:4;:14;;;17363:9;:13;;:29;;;;:::i;:::-;17352:6;;:41;:10;:41;:::i;:::-;17327:20;;;;;:67;:24;:67;:::i;:::-;17296:98;;17405:19;17427:88;17484:30;17498:5;:15;;;17484:9;:13;;:30;;;;:::i;:::-;17456:21;;;;17428:50;;:23;;:50;:27;:50;:::i;:::-;17427:56;:88;:56;:88;:::i;:::-;17405:110;;17533:299;;;;;;;;17563:14;17533:299;;;;17600:14;17533:299;;;;17643:6;17533:299;;;;17675:9;17533:299;;;;17710:9;17533:299;;;;17751:14;17533:299;;;;17797:23;17533:299;;;17526:306;;;;;;;16065:1777;;;;;;:::o;11278:133::-;11346:5;;-1:-1:-1;;;;;11346:5:0;11332:10;:19;11324:79;;;;-1:-1:-1;;;11324:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5663:136;5721:7;5748:43;5752:1;5755;5748:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;5741:50;;5663:136;;;;;:::o;6579:471::-;6637:7;6882:6;6878:47;;-1:-1:-1;6912:1:0;6905:8;;6878:47;6949:5;;;6953:1;6949;:5;:1;6973:5;;;;;:10;6965:56;;;;-1:-1:-1;;;6965:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5207:181;5265:7;5297:5;;;5321:6;;;;5313:46;;;;;-1:-1:-1;;;5313:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7518:132;7576:7;7603:39;7607:1;7610;7603:39;;;;;;;;;;;;;;;;;:3;:39::i;6136:192::-;6222:7;6258:12;6250:6;;;;6242:29;;;;-1:-1:-1;;;6242:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6242:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6294:5:0;;;6136:192::o;8180:345::-;8266:7;8368:12;8361:5;8353:28;;;;-1:-1:-1;;;8353:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;8353:28:0;;8392:9;8408:1;8404;:5;;;;;;;8180:345;-1:-1:-1;;;;;8180:345:0:o;10270:7575::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10270:7575:0;-1:-1:-1;;;;;10270:7575:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;10270:7575:0;;;-1:-1:-1;10270:7575:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;10270:7575:0;;;;;;

Swarm Source

bzzr://2fe42fe67c3bfe81376bda8237297e636433f7e8792ae4b55a3fadca348ce2c5
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading