Contract 0xE195a15533c01c8cD6b28f09066842486f80F8f2

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa95a444f3d543726410f3df0c7796e7f80ef1b1e110f95f7a1022003afbf3878Settle Orders130022662022-05-26 15:17:171 min ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000361196177 ETH
0x9b850998df74914a95ea844aaf63cc7da7063b14961b0ee1eb08c0328d19e0c7Settle Orders130020152022-05-26 15:10:278 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000383697717 ETH
0xd5ea5dceaf0c2a7205a057d76ba37d6a19b79bbbd3d3486373943264c7e21623Settle Orders130019312022-05-26 15:08:379 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000359803347 ETH
0x0c01fe75120c7a9888c381841a0933b9d332c92bbf1ba158df4ae91483e41302Settle Orders130019052022-05-26 15:08:379 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000383007603 ETH
0x870e2b9bb9a37931c411446427355dc7a68ddcdbb79793282a1a39bffd73e321Settle Orders130018312022-05-26 15:07:1611 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000380899455 ETH
0x6565111a3b78281e4af0a16254e5856053347aab4acc631f242e7aa532c10abaSettle Orders130016562022-05-26 15:03:3315 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.00048348696 ETH
0xab31b99315337adeab9df5b615a49999f3568017a24e4a32c582ab54040f742cLiquidate Positi...130016102022-05-26 15:02:5015 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.00040006889 ETH
0xd1aa699fae4244846ec8d876950b0f16cf3b79c0ffa56c96d8a4f94761a68167Settle Orders130016042022-05-26 15:02:5015 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000361196177 ETH
0x3e70f147d9c4f0a455456c8243c164ebb99aa9b0a8fe082d99bf8ac12edc097eSettle Orders130015922022-05-26 15:02:5015 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000359951048 ETH
0x8eea168c7ea411d83a83276bfdd503131f2ccfbe96450dceeefd4a7b4f44e206Settle Orders130014992022-05-26 15:01:2117 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000359444427 ETH
0xf79e8f06c53019d2bb469519e81dfdcc8740e0a9844764c99ec0ebfb902d6584Settle Orders130013042022-05-26 14:58:0720 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000359715633 ETH
0x3eb58f0eadef0a07360b3f8bdeda67720ac3af2697d1e49bc1e17487ae41110dSettle Orders130012882022-05-26 14:58:0720 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000385212036 ETH
0x016eef1e0ba415a9221027c9480d6f90ce31108e6519b46a7e9721b6bc62d3feSettle Orders130012802022-05-26 14:58:0720 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000360100262 ETH
0xc32c12e91edc1d624d6b10ee7ce936b220d6588aded9c8b1e2f46b9e339ce169Settle Orders130012502022-05-26 14:57:1521 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000383703262 ETH
0xea35be20457ac31b676df0a53d7c6ac9f5f0dc7d0071ebf94d845bcf1a919f00Settle Orders130012202022-05-26 14:56:1722 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000382991976 ETH
0x8f8dec158e9c79715d3e95fe4eac54576685d99c24bf95d97f87ff1fe420edd6Settle Orders130012012022-05-26 14:56:0722 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000383002058 ETH
0x1aaf1eaf0a5e9c2707c2737e7abb89421c1b060d8e161b3e8002ab150e173f65Settle Orders130011732022-05-26 14:55:0823 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000383007603 ETH
0x5582b938bf5d368479a9519586039ad26406d9b5a89e3171d3d5c67099e2fcd0Settle Orders130011082022-05-26 14:54:3124 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000360637633 ETH
0xa25fbe36c0b2e6605d2063a2c8a5d8f2a8e7f06917a1ec305895e1362aece071Settle Orders130010712022-05-26 14:53:0625 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000360499006 ETH
0xdc3c5166627d98306a6e4fc84b1334e72460909bd7261ec0e1a9118a18c1aabaSettle Orders130010622022-05-26 14:52:1626 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000360693084 ETH
0x433d6e751b7c7242e41924538d21ad16090ab4b934f8c6334bbb4892794a59eeSettle Orders130010012022-05-26 14:52:1626 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000356623984 ETH
0xc63e51df82883feba3216309071245df4e36164dd8e208d1c203726d90454441Settle Orders130009242022-05-26 14:49:5828 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000383007603 ETH
0x540652aa946de6d3c1ee3f765032b17e73df14d4c9ade820478ba63bee5a20ebLiquidate Positi...130008952022-05-26 14:49:5828 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000385023502 ETH
0x100954588cd7493877b9eba5db5fcf0976467d3e652c2bf2af9c7b6353ecc3f1Settle Orders130008752022-05-26 14:49:1029 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000443174032 ETH
0x6da33994b01891952d7dff03ab327c794d3c3dd0061dff388bd9962ec9eaca6aSettle Orders130008152022-05-26 14:48:5429 mins ago0x17f81a65f922dc0e50fc4375e33a36cb8089850c IN  CAP Finance: Oracle0 ETH0.000361195673 ETH
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xa95a444f3d543726410f3df0c7796e7f80ef1b1e110f95f7a1022003afbf3878130022662022-05-26 15:17:171 min ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x9b850998df74914a95ea844aaf63cc7da7063b14961b0ee1eb08c0328d19e0c7130020152022-05-26 15:10:278 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xd5ea5dceaf0c2a7205a057d76ba37d6a19b79bbbd3d3486373943264c7e21623130019312022-05-26 15:08:379 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x0c01fe75120c7a9888c381841a0933b9d332c92bbf1ba158df4ae91483e41302130019052022-05-26 15:08:379 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x870e2b9bb9a37931c411446427355dc7a68ddcdbb79793282a1a39bffd73e321130018312022-05-26 15:07:1611 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x6565111a3b78281e4af0a16254e5856053347aab4acc631f242e7aa532c10aba130016562022-05-26 15:03:3315 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x6565111a3b78281e4af0a16254e5856053347aab4acc631f242e7aa532c10aba130016562022-05-26 15:03:3315 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xab31b99315337adeab9df5b615a49999f3568017a24e4a32c582ab54040f742c130016102022-05-26 15:02:5015 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xd1aa699fae4244846ec8d876950b0f16cf3b79c0ffa56c96d8a4f94761a68167130016042022-05-26 15:02:5015 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x3e70f147d9c4f0a455456c8243c164ebb99aa9b0a8fe082d99bf8ac12edc097e130015922022-05-26 15:02:5015 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x8eea168c7ea411d83a83276bfdd503131f2ccfbe96450dceeefd4a7b4f44e206130014992022-05-26 15:01:2117 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xf79e8f06c53019d2bb469519e81dfdcc8740e0a9844764c99ec0ebfb902d6584130013042022-05-26 14:58:0720 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x3eb58f0eadef0a07360b3f8bdeda67720ac3af2697d1e49bc1e17487ae41110d130012882022-05-26 14:58:0720 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x016eef1e0ba415a9221027c9480d6f90ce31108e6519b46a7e9721b6bc62d3fe130012802022-05-26 14:58:0720 mins ago CAP Finance: Oracle CAP Finance: Treasury0 ETH
0x016eef1e0ba415a9221027c9480d6f90ce31108e6519b46a7e9721b6bc62d3fe130012802022-05-26 14:58:0720 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xc32c12e91edc1d624d6b10ee7ce936b220d6588aded9c8b1e2f46b9e339ce169130012502022-05-26 14:57:1521 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xea35be20457ac31b676df0a53d7c6ac9f5f0dc7d0071ebf94d845bcf1a919f00130012202022-05-26 14:56:1722 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x8f8dec158e9c79715d3e95fe4eac54576685d99c24bf95d97f87ff1fe420edd6130012012022-05-26 14:56:0722 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x1aaf1eaf0a5e9c2707c2737e7abb89421c1b060d8e161b3e8002ab150e173f65130011732022-05-26 14:55:0823 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x5582b938bf5d368479a9519586039ad26406d9b5a89e3171d3d5c67099e2fcd0130011082022-05-26 14:54:3124 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xa25fbe36c0b2e6605d2063a2c8a5d8f2a8e7f06917a1ec305895e1362aece071130010712022-05-26 14:53:0625 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xdc3c5166627d98306a6e4fc84b1334e72460909bd7261ec0e1a9118a18c1aaba130010622022-05-26 14:52:1626 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x433d6e751b7c7242e41924538d21ad16090ab4b934f8c6334bbb4892794a59ee130010012022-05-26 14:52:1626 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0xc63e51df82883feba3216309071245df4e36164dd8e208d1c203726d90454441130009242022-05-26 14:49:5828 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
0x540652aa946de6d3c1ee3f765032b17e73df14d4c9ade820478ba63bee5a20eb130008952022-05-26 14:49:5828 mins ago CAP Finance: Oracle0xbed32937d8a5d1421241f52809908f1a17d75bdb0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Oracle

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, BSD-3-Clause license
/**
 *Submitted for verification at Arbiscan on 2021-11-19
*/

// SPDX-License-Identifier: BUSL-1.1
pragma solidity ^0.8.0;

interface IRouter {
    function trading() external view returns (address);

    function capPool() external view returns (address);

    function oracle() external view returns (address);

    function treasury() external view returns (address);

    function darkOracle() external view returns (address);

    function isSupportedCurrency(address currency) external view returns (bool);

    function currencies(uint256 index) external view returns (address);

    function currenciesLength() external view returns (uint256);

    function getDecimals(address currency) external view returns(uint8);

    function getPool(address currency) external view returns (address);

    function getPoolShare(address currency) external view returns(uint256);

    function getCapShare(address currency) external view returns(uint256);

    function getPoolRewards(address currency) external view returns (address);

    function getCapRewards(address currency) external view returns (address);
}

interface ITreasury {
    function fundOracle(address destination, uint256 amount) external;

    function notifyFeeReceived(address currency, uint256 amount) external;
}

interface ITrading {

    function distributeFees(address currency) external;
    
    function settleOrder(address user, bytes32 productId, address currency, bool isLong, uint256 price) external;

    function liquidatePosition(address user, bytes32 productId, address currency, bool isLong, uint256 price) external;

    function getPendingFee(address currency) external view returns(uint256);
    
}

contract Oracle {

	// Contract dependencies
	address public owner;
	address public router;
	address public darkOracle;
	address public treasury;
	address public trading;

	// Variables
	uint256 public requestsPerFunding = 100;
	uint256 public costPerRequest = 6 * 10**14; // 0.0006 ETH
	uint256 public requestsSinceFunding;

	event SettlementError(
		address indexed user,
		address currency,
		bytes32 productId,
		bool isLong,
		string reason
	);

	constructor() {
		owner = msg.sender;
	}

	// Governance methods

	function setOwner(address newOwner) external onlyOwner {
		owner = newOwner;
	}

	function setRouter(address _router) external onlyOwner {
		router = _router;
		trading = IRouter(router).trading();
		treasury = IRouter(router).treasury();
		darkOracle = IRouter(router).darkOracle();
	}

	function setParams(
		uint256 _requestsPerFunding, 
		uint256 _costPerRequest
	) external onlyOwner {
		requestsPerFunding = _requestsPerFunding;
		costPerRequest = _costPerRequest;
	}

	// Methods

	function settleOrders(
		address[] calldata users,
		bytes32[] calldata productIds,
		address[] calldata currencies,
		bool[] calldata directions,
		uint256[] calldata prices
	) external onlyDarkOracle {

		for (uint256 i = 0; i < users.length; i++) {

			address user = users[i];
			address currency = currencies[i];
			bytes32 productId = productIds[i];
			bool isLong = directions[i];

			try ITrading(trading).settleOrder(user, productId, currency, isLong, prices[i]) {

			} catch Error(string memory reason) {
				emit SettlementError(
					user,
					currency,
					productId,
					isLong,
					reason
				);
			}

		}

		_tallyOracleRequests(users.length);

	}

	function liquidatePositions(
		address[] calldata users,
		bytes32[] calldata productIds,
		address[] calldata currencies,
		bool[] calldata directions,
		uint256[] calldata prices
	) external onlyDarkOracle {
		for (uint256 i = 0; i < users.length; i++) {
			address user = users[i];
			bytes32 productId = productIds[i];
			address currency = currencies[i];
			bool isLong = directions[i];
			ITrading(trading).liquidatePosition(user, productId, currency, isLong, prices[i]);
		}
		_tallyOracleRequests(users.length);
	}

	function _tallyOracleRequests(uint256 newRequests) internal {
		if (newRequests == 0) return;
		requestsSinceFunding += newRequests;
		if (requestsSinceFunding >= requestsPerFunding) {
			requestsSinceFunding = 0;
			ITreasury(treasury).fundOracle(darkOracle, costPerRequest * requestsPerFunding);
		}
	}

	// Modifiers

	modifier onlyOwner() {
		require(msg.sender == owner, "!owner");
		_;
	}

	modifier onlyDarkOracle() {
		require(msg.sender == darkOracle, "!dark-oracle");
		_;
	}

}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"currency","type":"address"},{"indexed":false,"internalType":"bytes32","name":"productId","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"isLong","type":"bool"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"SettlementError","type":"event"},{"inputs":[],"name":"costPerRequest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"darkOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bytes32[]","name":"productIds","type":"bytes32[]"},{"internalType":"address[]","name":"currencies","type":"address[]"},{"internalType":"bool[]","name":"directions","type":"bool[]"},{"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"name":"liquidatePositions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestsPerFunding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestsSinceFunding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_requestsPerFunding","type":"uint256"},{"internalType":"uint256","name":"_costPerRequest","type":"uint256"}],"name":"setParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"bytes32[]","name":"productIds","type":"bytes32[]"},{"internalType":"address[]","name":"currencies","type":"address[]"},{"internalType":"bool[]","name":"directions","type":"bool[]"},{"internalType":"uint256[]","name":"prices","type":"uint256[]"}],"name":"settleOrders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60806040526064600555660221b262dd800060065534801561002057600080fd5b50600080546001600160a01b03191633179055610d0f806100426000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80638da5cb5b1161008c578063c0d7865511610066578063c0d786551461018e578063cc064c8c146101a1578063ec44acf2146101b4578063f887ea40146101c757600080fd5b80638da5cb5b1461015f578063a9b3f17714610172578063c0324c771461017b57600080fd5b80630e99abc0146100d457806313af4035146100f057806330f6a8891461010557806344787b3e1461011857806361d027b3146101215780638c6909f71461014c575b600080fd5b6100dd60075481565b6040519081526020015b60405180910390f35b6101036100fe36600461095a565b6101da565b005b61010361011336600461099b565b61022f565b6100dd60055481565b600354610134906001600160a01b031681565b6040516001600160a01b0390911681526020016100e7565b600254610134906001600160a01b031681565b600054610134906001600160a01b031681565b6100dd60065481565b610103610189366004610aae565b6103f6565b61010361019c36600461095a565b61042b565b6101036101af36600461099b565b610625565b600454610134906001600160a01b031681565b600154610134906001600160a01b031681565b6000546001600160a01b0316331461020d5760405162461bcd60e51b815260040161020490610b45565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031633146102785760405162461bcd60e51b815260206004820152600c60248201526b216461726b2d6f7261636c6560a01b6044820152606401610204565b60005b898110156103e05760008b8b8381811061029757610297610c08565b90506020020160208101906102ac919061095a565b905060008a8a848181106102c2576102c2610c08565b90506020020135905060008989858181106102df576102df610c08565b90506020020160208101906102f4919061095a565b9050600088888681811061030a5761030a610c08565b905060200201602081019061031f9190610a8c565b6004549091506001600160a01b03166321465739858585858c8c8c81811061034957610349610c08565b60405160e089901b6001600160e01b03191681526001600160a01b0397881660048201526024810196909652939095166044850152901515606484015260209091020135608482015260a4019050600060405180830381600087803b1580156103b157600080fd5b505af11580156103c5573d6000803e3d6000fd5b505050505050505080806103d890610bd7565b91505061027b565b506103ea89610854565b50505050505050505050565b6000546001600160a01b031633146104205760405162461bcd60e51b815260040161020490610b45565b600591909155600655565b6000546001600160a01b031633146104555760405162461bcd60e51b815260040161020490610b45565b600180546001600160a01b0319166001600160a01b03831690811790915560408051637622567960e11b8152905163ec44acf291600480820192602092909190829003018186803b1580156104a957600080fd5b505afa1580156104bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e1919061097e565b600480546001600160a01b0319166001600160a01b03928316178155600154604080516361d027b360e01b8152905191909316926361d027b39281810192602092909190829003018186803b15801561053957600080fd5b505afa15801561054d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610571919061097e565b600380546001600160a01b0319166001600160a01b0392831617905560015460408051638c6909f760e01b815290519190921691638c6909f7916004808301926020929190829003018186803b1580156105ca57600080fd5b505afa1580156105de573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610602919061097e565b600280546001600160a01b0319166001600160a01b039290921691909117905550565b6002546001600160a01b0316331461066e5760405162461bcd60e51b815260206004820152600c60248201526b216461726b2d6f7261636c6560a01b6044820152606401610204565b60005b898110156103e05760008b8b8381811061068d5761068d610c08565b90506020020160208101906106a2919061095a565b905060008888848181106106b8576106b8610c08565b90506020020160208101906106cd919061095a565b905060008b8b858181106106e3576106e3610c08565b905060200201359050600088888681811061070057610700610c08565b90506020020160208101906107159190610a8c565b6004549091506001600160a01b0316636b62da40858486858c8c8c81811061073f5761073f610c08565b60405160e089901b6001600160e01b03191681526001600160a01b0397881660048201526024810196909652939095166044850152901515606484015260209091020135608482015260a4019050600060405180830381600087803b1580156107a757600080fd5b505af19250505080156107b8575060015b61083d576107c4610c1e565b806308c379a0141561083157506107d9610c3a565b806107e45750610833565b846001600160a01b03167f2478066a5f86cafc1910161e6dcae4501dfb0fa59d20d9ef13970a6f9c28d816858585856040516108239493929190610ad0565b60405180910390a25061083d565b505b3d6000803e3d6000fd5b50505050808061084c90610bd7565b915050610671565b8061085c5750565b806007600082825461086e9190610b65565b90915550506005546007541061090b5760006007556003546002546005546006546001600160a01b039384169363a5a01c5d9316916108ac91610b7d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156108f257600080fd5b505af1158015610906573d6000803e3d6000fd5b505050505b50565b60008083601f84011261092057600080fd5b50813567ffffffffffffffff81111561093857600080fd5b6020830191508360208260051b850101111561095357600080fd5b9250929050565b60006020828403121561096c57600080fd5b813561097781610cc4565b9392505050565b60006020828403121561099057600080fd5b815161097781610cc4565b60008060008060008060008060008060a08b8d0312156109ba57600080fd5b8a3567ffffffffffffffff808211156109d257600080fd5b6109de8e838f0161090e565b909c509a5060208d01359150808211156109f757600080fd5b610a038e838f0161090e565b909a50985060408d0135915080821115610a1c57600080fd5b610a288e838f0161090e565b909850965060608d0135915080821115610a4157600080fd5b610a4d8e838f0161090e565b909650945060808d0135915080821115610a6657600080fd5b50610a738d828e0161090e565b915080935050809150509295989b9194979a5092959850565b600060208284031215610a9e57600080fd5b8135801515811461097757600080fd5b60008060408385031215610ac157600080fd5b50508035926020909101359150565b60018060a01b0385168152600060208581840152841515604084015260806060840152835180608085015260005b81811015610b1a5785810183015185820160a001528201610afe565b81811115610b2c57600060a083870101525b50601f01601f19169290920160a0019695505050505050565b60208082526006908201526510b7bbb732b960d11b604082015260600190565b60008219821115610b7857610b78610bf2565b500190565b6000816000190483118215151615610b9757610b97610bf2565b500290565b601f8201601f1916810167ffffffffffffffff81118282101715610bd057634e487b7160e01b600052604160045260246000fd5b6040525050565b6000600019821415610beb57610beb610bf2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060033d1115610c375760046000803e5060005160e01c5b90565b600060443d1015610c485790565b6040516003193d81016004833e81513d67ffffffffffffffff8160248401118184111715610c7857505050505090565b8285019150815181811115610c905750505050505090565b843d8701016020828501011115610caa5750505050505090565b610cb960208286010187610b9c565b509095945050505050565b6001600160a01b038116811461090b57600080fdfea26469706673582212201ca09667afb95ed9f131bdcb4e5a142a75be29b75d0b01fc88dcdd58b8a55f5c64736f6c63430008070033

Deployed ByteCode Sourcemap

1679:2812:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1979:35;;;;;;;;;5845:25:1;;;5833:2;5818:18;1979:35:0;;;;;;;;2226:81;;;;;;:::i;:::-;;:::i;:::-;;3440:537;;;;;;:::i;:::-;;:::i;1876:39::-;;;;;;1806:23;;;;;-1:-1:-1;;;;;1806:23:0;;;;;;-1:-1:-1;;;;;3311:32:1;;;3293:51;;3281:2;3266:18;1806:23:0;3147:203:1;1777:25:0;;;;;-1:-1:-1;;;;;1777:25:0;;;1728:20;;;;;-1:-1:-1;;;;;1728:20:0;;;1919:42;;;;;;2526:190;;;;;;:::i;:::-;;:::i;2312:209::-;;;;;;:::i;:::-;;:::i;2736:699::-;;;;;;:::i;:::-;;:::i;1833:22::-;;;;;-1:-1:-1;;;;;1833:22:0;;;1752:21;;;;;-1:-1:-1;;;;;1752:21:0;;;2226:81;4363:5;;-1:-1:-1;;;;;4363:5:0;4349:10;:19;4341:38;;;;-1:-1:-1;;;4341:38:0;;;;;;;:::i;:::-;;;;;;;;;2286:5:::1;:16:::0;;-1:-1:-1;;;;;;2286:16:0::1;-1:-1:-1::0;;;;;2286:16:0;;;::::1;::::0;;;::::1;::::0;;2226:81::o;3440:537::-;4448:10;;-1:-1:-1;;;;;4448:10:0;4434;:24;4426:49;;;;-1:-1:-1;;;4426:49:0;;5226:2:1;4426:49:0;;;5208:21:1;5265:2;5245:18;;;5238:30;-1:-1:-1;;;5284:18:1;;;5277:42;5336:18;;4426:49:0;5024:336:1;4426:49:0;3664:9:::1;3659:275;3679:16:::0;;::::1;3659:275;;;3708:12;3723:5;;3729:1;3723:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3708:23;;3737:17;3757:10;;3768:1;3757:13;;;;;;;:::i;:::-;;;;;;;3737:33;;3776:16;3795:10;;3806:1;3795:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3776:32;;3814:11;3828:10;;3839:1;3828:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3856:7;::::0;3814:27;;-1:-1:-1;;;;;;3856:7:0::1;3847:35;3883:4:::0;3889:9;3900:8;3814:27;3918:6;;3925:1;3918:9;;::::1;;;;;:::i;:::-;3847:81;::::0;::::1;::::0;;;-1:-1:-1;;;;;;3847:81:0;;;-1:-1:-1;;;;;3664:15:1;;;3847:81:0::1;::::0;::::1;3646:34:1::0;3696:18;;;3689:34;;;;3759:15;;;;3739:18;;;3732:43;3818:14;;3811:22;3791:18;;;3784:50;3918:9:0::1;::::0;;::::1;;;3850:19:1::0;;;3843:35;3580:19;;;-1:-1:-1;3847:81:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3702:232;;;;3697:3;;;;;:::i;:::-;;;;3659:275;;;-1:-1:-1::0;3938:34:0::1;3959:5:::0;3938:20:::1;:34::i;:::-;3440:537:::0;;;;;;;;;;:::o;2526:190::-;4363:5;;-1:-1:-1;;;;;4363:5:0;4349:10;:19;4341:38;;;;-1:-1:-1;;;4341:38:0;;;;;;;:::i;:::-;2634:18:::1;:40:::0;;;;2679:14:::1;:32:::0;2526:190::o;2312:209::-;4363:5;;-1:-1:-1;;;;;4363:5:0;4349:10;:19;4341:38;;;;-1:-1:-1;;;4341:38:0;;;;;;;:::i;:::-;2372:6:::1;:16:::0;;-1:-1:-1;;;;;;2372:16:0::1;-1:-1:-1::0;;;;;2372:16:0;::::1;::::0;;::::1;::::0;;;2403:25:::1;::::0;;-1:-1:-1;;;2403:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;2372:16;2403:25;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2393:7;:35:::0;;-1:-1:-1;;;;;;2393:35:0::1;-1:-1:-1::0;;;;;2393:35:0;;::::1;;::::0;;-1:-1:-1;2452:6:0;2444:26:::1;::::0;;-1:-1:-1;;;2444:26:0;;;;2452:6;;;::::1;::::0;2444:24:::1;::::0;:26;;::::1;::::0;::::1;::::0;;;;;;;;;2452:6;2444:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2433:8;:37:::0;;-1:-1:-1;;;;;;2433:37:0::1;-1:-1:-1::0;;;;;2433:37:0;;::::1;;::::0;;-1:-1:-1;2496:6:0;2488:28:::1;::::0;;-1:-1:-1;;;2488:28:0;;;;2496:6;;;::::1;::::0;2488:26:::1;::::0;:28:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;2496:6;2488:28;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2475:10;:41:::0;;-1:-1:-1;;;;;;2475:41:0::1;-1:-1:-1::0;;;;;2475:41:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;2312:209:0:o;2736:699::-;4448:10;;-1:-1:-1;;;;;4448:10:0;4434;:24;4426:49;;;;-1:-1:-1;;;4426:49:0;;5226:2:1;4426:49:0;;;5208:21:1;5265:2;5245:18;;;5238:30;-1:-1:-1;;;5284:18:1;;;5277:42;5336:18;;4426:49:0;5024:336:1;4426:49:0;2956:9:::1;2951:437;2971:16:::0;;::::1;2951:437;;;3002:12;3017:5;;3023:1;3017:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3002:23;;3031:16;3050:10;;3061:1;3050:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3031:32;;3069:17;3089:10;;3100:1;3089:13;;;;;;;:::i;:::-;;;;;;;3069:33;;3108:11;3122:10;;3133:1;3122:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;3156:7;::::0;3108:27;;-1:-1:-1;;;;;;3156:7:0::1;3147:29;3177:4:::0;3183:9;3194:8;3108:27;3212:6;;3219:1;3212:9;;::::1;;;;;:::i;:::-;3147:75;::::0;::::1;::::0;;;-1:-1:-1;;;;;;3147:75:0;;;-1:-1:-1;;;;;3664:15:1;;;3147:75:0::1;::::0;::::1;3646:34:1::0;3696:18;;;3689:34;;;;3759:15;;;;3739:18;;;3732:43;3818:14;;3811:22;3791:18;;;3784:50;3212:9:0::1;::::0;;::::1;;;3850:19:1::0;;;3843:35;3580:19;;;-1:-1:-1;3147:75:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;3143:238;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3302:4;-1:-1:-1::0;;;;;3279:95:0::1;;3314:8;3330:9;3347:6;3361;3279:95;;;;;;;;;:::i;:::-;;;;;;;;3233:148;3143:238;;;;;;;::::0;::::1;;;;;2994:394;;;;2989:3;;;;;:::i;:::-;;;;2951:437;;3982:311:::0;4051:16;4047:29;;3982:311;:::o;4047:29::-;4104:11;4080:20;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;;4148:18:0;;4124:20;;:42;4120:169;;4197:1;4174:20;:24;4214:8;;4235:10;;4264:18;;4247:14;;-1:-1:-1;;;;;4214:8:0;;;;4204:30;;4235:10;;4247:35;;;:::i;:::-;4204:79;;-1:-1:-1;;;;;;4204:79:0;;;;;;;-1:-1:-1;;;;;4937:32:1;;;4204:79:0;;;4919:51:1;4986:18;;;4979:34;4892:18;;4204:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4120:169;3982:311;:::o;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:247::-;445:6;498:2;486:9;477:7;473:23;469:32;466:52;;;514:1;511;504:12;466:52;553:9;540:23;572:31;597:5;572:31;:::i;:::-;622:5;386:247;-1:-1:-1;;;386:247:1:o;638:251::-;708:6;761:2;749:9;740:7;736:23;732:32;729:52;;;777:1;774;767:12;729:52;809:9;803:16;828:31;853:5;828:31;:::i;894:1717::-;1121:6;1129;1137;1145;1153;1161;1169;1177;1185;1193;1246:3;1234:9;1225:7;1221:23;1217:33;1214:53;;;1263:1;1260;1253:12;1214:53;1303:9;1290:23;1332:18;1373:2;1365:6;1362:14;1359:34;;;1389:1;1386;1379:12;1359:34;1428:70;1490:7;1481:6;1470:9;1466:22;1428:70;:::i;:::-;1517:8;;-1:-1:-1;1402:96:1;-1:-1:-1;1605:2:1;1590:18;;1577:32;;-1:-1:-1;1621:16:1;;;1618:36;;;1650:1;1647;1640:12;1618:36;1689:72;1753:7;1742:8;1731:9;1727:24;1689:72;:::i;:::-;1780:8;;-1:-1:-1;1663:98:1;-1:-1:-1;1868:2:1;1853:18;;1840:32;;-1:-1:-1;1884:16:1;;;1881:36;;;1913:1;1910;1903:12;1881:36;1952:72;2016:7;2005:8;1994:9;1990:24;1952:72;:::i;:::-;2043:8;;-1:-1:-1;1926:98:1;-1:-1:-1;2131:2:1;2116:18;;2103:32;;-1:-1:-1;2147:16:1;;;2144:36;;;2176:1;2173;2166:12;2144:36;2215:72;2279:7;2268:8;2257:9;2253:24;2215:72;:::i;:::-;2306:8;;-1:-1:-1;2189:98:1;-1:-1:-1;2394:3:1;2379:19;;2366:33;;-1:-1:-1;2411:16:1;;;2408:36;;;2440:1;2437;2430:12;2408:36;;2479:72;2543:7;2532:8;2521:9;2517:24;2479:72;:::i;:::-;2453:98;;2570:8;2560:18;;;2597:8;2587:18;;;894:1717;;;;;;;;;;;;;:::o;2616:273::-;2672:6;2725:2;2713:9;2704:7;2700:23;2696:32;2693:52;;;2741:1;2738;2731:12;2693:52;2780:9;2767:23;2833:5;2826:13;2819:21;2812:5;2809:32;2799:60;;2855:1;2852;2845:12;2894:248;2962:6;2970;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;-1:-1:-1;;3062:23:1;;;3132:2;3117:18;;;3104:32;;-1:-1:-1;2894:248:1:o;3889:851::-;4145:1;4141;4136:3;4132:11;4128:19;4120:6;4116:32;4105:9;4098:51;4079:4;4168:2;4206:6;4201:2;4190:9;4186:18;4179:34;4263:6;4256:14;4249:22;4244:2;4233:9;4229:18;4222:50;4308:3;4303:2;4292:9;4288:18;4281:31;4341:6;4335:13;4385:6;4379:3;4368:9;4364:19;4357:35;4410:1;4420:141;4434:6;4431:1;4428:13;4420:141;;;4530:14;;;4526:23;;4520:30;4495:17;;;4514:3;4491:27;4484:67;4449:10;;4420:141;;;4579:6;4576:1;4573:13;4570:92;;;4650:1;4644:3;4635:6;4624:9;4620:22;4616:32;4609:43;4570:92;-1:-1:-1;4723:2:1;4702:15;-1:-1:-1;;4698:29:1;4683:45;;;;4730:3;4679:55;;3889:851;-1:-1:-1;;;;;;3889:851:1:o;5365:329::-;5567:2;5549:21;;;5606:1;5586:18;;;5579:29;-1:-1:-1;;;5639:2:1;5624:18;;5617:36;5685:2;5670:18;;5365:329::o;5881:128::-;5921:3;5952:1;5948:6;5945:1;5942:13;5939:39;;;5958:18;;:::i;:::-;-1:-1:-1;5994:9:1;;5881:128::o;6014:168::-;6054:7;6120:1;6116;6112:6;6108:14;6105:1;6102:21;6097:1;6090:9;6083:17;6079:45;6076:71;;;6127:18;;:::i;:::-;-1:-1:-1;6167:9:1;;6014:168::o;6187:346::-;6297:2;6278:13;;-1:-1:-1;;6274:27:1;6262:40;;6332:18;6317:34;;6353:22;;;6314:62;6311:185;;;6418:10;6413:3;6409:20;6406:1;6399:31;6453:4;6450:1;6443:15;6481:4;6478:1;6471:15;6311:185;6512:2;6505:22;-1:-1:-1;;6187:346:1:o;6538:135::-;6577:3;-1:-1:-1;;6598:17:1;;6595:43;;;6618:18;;:::i;:::-;-1:-1:-1;6665:1:1;6654:13;;6538:135::o;6678:127::-;6739:10;6734:3;6730:20;6727:1;6720:31;6770:4;6767:1;6760:15;6794:4;6791:1;6784:15;6810:127;6871:10;6866:3;6862:20;6859:1;6852:31;6902:4;6899:1;6892:15;6926:4;6923:1;6916:15;6942:179;6977:3;7019:1;7001:16;6998:23;6995:120;;;7065:1;7062;7059;7044:23;-1:-1:-1;7102:1:1;7096:8;7091:3;7087:18;6995:120;6942:179;:::o;7126:671::-;7165:3;7207:4;7189:16;7186:26;7183:39;;;7126:671;:::o;7183:39::-;7249:2;7243:9;-1:-1:-1;;7314:16:1;7310:25;;7307:1;7243:9;7286:50;7365:4;7359:11;7389:16;7424:18;7495:2;7488:4;7480:6;7476:17;7473:25;7468:2;7460:6;7457:14;7454:45;7451:58;;;7502:5;;;;;7126:671;:::o;7451:58::-;7539:6;7533:4;7529:17;7518:28;;7575:3;7569:10;7602:2;7594:6;7591:14;7588:27;;;7608:5;;;;;;7126:671;:::o;7588:27::-;7692:2;7673:16;7667:4;7663:27;7659:36;7652:4;7643:6;7638:3;7634:16;7630:27;7627:69;7624:82;;;7699:5;;;;;;7126:671;:::o;7624:82::-;7715:57;7766:4;7757:6;7749;7745:19;7741:30;7735:4;7715:57;:::i;:::-;-1:-1:-1;7788:3:1;;7126:671;-1:-1:-1;;;;;7126:671:1:o;7802:131::-;-1:-1:-1;;;;;7877:31:1;;7867:42;;7857:70;;7923:1;7920;7913:12

Swarm Source

ipfs://1ca09667afb95ed9f131bdcb4e5a142a75be29b75d0b01fc88dcdd58b8a55f5c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.