Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 4,152 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 7316090 | 2121 days ago | IN | 0 ETH | 0.00043579 | ||||
Approve | 6765136 | 2223 days ago | IN | 0 ETH | 0.00066005 | ||||
Transfer | 6518493 | 2263 days ago | IN | 0 ETH | 0.00021273 | ||||
Approve | 6447256 | 2275 days ago | IN | 0 ETH | 0.00018674 | ||||
Mint | 6242394 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242387 | 2309 days ago | IN | 0 ETH | 0.00034715 | ||||
Mint | 6242377 | 2309 days ago | IN | 0 ETH | 0.00034715 | ||||
Mint | 6242375 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242369 | 2309 days ago | IN | 0 ETH | 0.00034715 | ||||
Mint | 6242361 | 2309 days ago | IN | 0 ETH | 0.00034696 | ||||
Mint | 6242355 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242348 | 2309 days ago | IN | 0 ETH | 0.00034696 | ||||
Mint | 6242343 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242338 | 2309 days ago | IN | 0 ETH | 0.00034696 | ||||
Mint | 6242331 | 2309 days ago | IN | 0 ETH | 0.00034696 | ||||
Mint | 6242329 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242321 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242314 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242308 | 2309 days ago | IN | 0 ETH | 0.00034715 | ||||
Mint | 6242306 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242302 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242299 | 2309 days ago | IN | 0 ETH | 0.00034715 | ||||
Mint | 6242296 | 2309 days ago | IN | 0 ETH | 0.00034734 | ||||
Mint | 6242291 | 2309 days ago | IN | 0 ETH | 0.00034696 | ||||
Mint | 6242288 | 2309 days ago | IN | 0 ETH | 0.00034715 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Skorch
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-07-01 */ pragma solidity ^0.4.18; //------------------------------- // ( ) ) ( ) // )\ ) ( /(( /( )\ ) ( ( /( //(()/( )\())\())(()/( )\ )\()) // /(_))((_)((_)\ /(_)|((_)((_)\ //(_)) |_ ((_)((_)(_)) )\___ _((_) /// __|| |/ // _ \| _ ((/ __| || | //\__ \ ' <| (_) | /| (__| __ | //|___/ _|\_\\___/|_|_\ \___|_||_| //-------------------------------- //------------------------------------------ // Official Website: https://skorch.io // Github: https://github.com/skorchtoken // Twitter: https://twitter.com/SkorchToken // Reddit: https://reddit.com/r/SkorchToken // Medium: https://medium.com/@skorchtoken // Discord: https://discord.gg/yxZAnfe // Telegram: https://t.me/skorchtoken // ALWAYS refer to our official social media channels and website for project announcements. //------------------------------------------ // Skorch is the first PoW+PoS mineable ERC20 token using Keccak256 (Sha3) algorithm // 210 Million Total Supply // 21 Million available for Proof of Work mining based on Bitcoin's SHA256 Algorithm // 21k (21,000) SKO Required to be held in your wallet to gain Proof of Stake Rewards // 189 Million of 210 Million total supply will be minted by the smart contract for PoS rewards // 30% PoS rewards for the first year but decreases each year after until 0 // PoS requirement decreases after first year and each year after until 0 // Difficulty target auto-adjusts with PoW hashrate // Mining rewards decrease as more tokens are minted // To fix and improve the original Skorch token contract a snapshot was taken at block 5882054. library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } //209899900000000 library ExtendedMath { //return the smaller of the two inputs (a or b) function limitLessThan(uint a, uint b) internal pure returns (uint c) { if(a > b) return b; return a; } } contract ERC20Interface { function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) public; } contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract Skorch is ERC20Interface, Owned { using SafeMath for uint; using ExtendedMath for uint; string public symbol; string public name; uint8 public decimals = 8; uint public _totalSupply; uint public latestDifficultyPeriodStarted; uint public epochCount; uint public _BLOCKS_PER_READJUSTMENT = 1024; uint public _MINIMUM_TARGET = 2**16; uint public _MAXIMUM_TARGET = 2**234; uint public miningTarget; bytes32 public challengeNumber; //generate a new one when a new reward is minted uint public rewardEra; uint public maxSupplyForEra; address public lastRewardTo; uint public lastRewardAmount; uint public lastRewardEthBlockNumber; bool locked = false; mapping(bytes32 => bytes32) solutionForChallenge; uint public tokensMinted; uint internal GLOBAL_START_TIMER; mapping(address => uint) balances; mapping(address => mapping(address => uint)) allowed; mapping(address => uint256) timer; // timer to check PoS // how to calculate doubleUnit: // specify how much percent increase you want per year // e.g. 130% -> 2.3 multiplier every year // now divide (1 years) by LOG(2.3) where LOG is the natural logarithm (not LOG10) // in this case LOG(2.3) is 0.83290912293 // hence multiplying by 1/0.83290912293 is the same // 31536000 = 1 years (to prevent deprecated warning in solc) // uint256 timerUnit = 2.2075199 * (10**8); uint256 timerUnit = 88416639; // unit for staking req uint256 stakingRequirement = (21000 * (10**uint(decimals))); uint stakeUnit = 930222908; // unit for staking //uint256 stakingCap = (210000000 * (10**uint(decimals))); event Mint(address indexed from, uint reward_amount, uint epochCount, bytes32 newChallengeNumber); event PoS(address indexed from, uint reward_amount); constructor() public onlyOwner() { symbol = "SKO"; name = "Skorch"; decimals = 8; // uncomment this to test //balances[msg.sender] = (21000) * (10 ** uint(decimals)); // change 21000 to some lower number than 21000 //to see you will not get PoS tokens if you have less than 21000 tokens //timer[msg.sender] = now - (1 years); _totalSupply = 210000000 * 10**uint(decimals); if(locked) revert(); locked = true; tokensMinted = 69750000000000; rewardEra = 0; maxSupplyForEra = 1050000000000000; //miningTarget = _MAXIMUM_TARGET; latestDifficultyPeriodStarted = block.number; //_startNewMiningEpoch(); all relevant vars are set below GLOBAL_START_TIMER = now; challengeNumber = 0x48f499eca7dc41858c2a53fded09096d138b8b88a9da8f488dccd5118bb1bbe2; epochCount = 20181; rewardEra = 0; maxSupplyForEra = (_totalSupply/10) - _totalSupply.div( 20**(rewardEra + 1)); // multiplied by 10 since totalsupply is 210 million here miningTarget = 462884030900683306229868328231836786922375156766639975465481078398; // SNAPSHOT DATA // NEW FILE balances[0xab4485ca338b91087a09ae8bc141648bb1c6e967]=111501588282; emit Transfer(address(0x0), 0xab4485ca338b91087a09ae8bc141648bb1c6e967, 111501588282); balances[0xf2119e50578b3dfa248652c4fbec76b9e415acb2]=10136508025; emit Transfer(address(0x0), 0xf2119e50578b3dfa248652c4fbec76b9e415acb2, 10136508025); balances[0xb12b538cb67fceb50bbc1a31d2011eb92e6f7188]=1583682; emit Transfer(address(0x0), 0xb12b538cb67fceb50bbc1a31d2011eb92e6f7188, 1583682); balances[0x21b7e18dacde5c004a0a56e74f071ac3fb2e98ff]=10790714329; emit Transfer(address(0x0), 0x21b7e18dacde5c004a0a56e74f071ac3fb2e98ff, 10790714329); balances[0xe539a7645d2f33103c89b5b03abb422a163b7c73]=60819048154; emit Transfer(address(0x0), 0xe539a7645d2f33103c89b5b03abb422a163b7c73, 60819048154); balances[0x4ffe17a2a72bc7422cb176bc71c04ee6d87ce329]=451048209723; emit Transfer(address(0x0), 0x4ffe17a2a72bc7422cb176bc71c04ee6d87ce329, 451048209723); balances[0xc0a2002e74b3b22e77098cb87232f446d813ce31]=33885; emit Transfer(address(0x0), 0xc0a2002e74b3b22e77098cb87232f446d813ce31, 33885); balances[0xfc313f77c2cbc6cd0dd82b9a0ed1620ba906e46d]=192593652488; emit Transfer(address(0x0), 0xfc313f77c2cbc6cd0dd82b9a0ed1620ba906e46d, 192593652488); balances[0x219fdb55ea364fcaf29aaa87fb1c45ba7db8128e]=20273016051; emit Transfer(address(0x0), 0x219fdb55ea364fcaf29aaa87fb1c45ba7db8128e, 20273016051); balances[0xfbc2b315ac1fba765597a92ff100222425ce66fd]=608190481542; emit Transfer(address(0x0), 0xfbc2b315ac1fba765597a92ff100222425ce66fd, 608190481542); balances[0x852563d88480decbc9bfb4428bb689af48dd92a9]=1008618359915; emit Transfer(address(0x0), 0x852563d88480decbc9bfb4428bb689af48dd92a9, 1008618359915); balances[0x4d01d11697f00097064d7e05114ecd3843e82867]=789840293838; emit Transfer(address(0x0), 0x4d01d11697f00097064d7e05114ecd3843e82867, 789840293838); balances[0xe75ea07e4b90e46e13c37644138aa99ec69020ae]=526108154879; emit Transfer(address(0x0), 0xe75ea07e4b90e46e13c37644138aa99ec69020ae, 526108154879); balances[0x51138ab5497b2c3d85be94d23905f5ead9e533a7]=5068254012; emit Transfer(address(0x0), 0x51138ab5497b2c3d85be94d23905f5ead9e533a7, 5068254012); balances[0xae7c95f2192c739edfb16412a6112a54f8965305]=55750794141; emit Transfer(address(0x0), 0xae7c95f2192c739edfb16412a6112a54f8965305, 55750794141); balances[0xe0261acfdd10508c75b6a60b1534c8386c4daa52]=5047016671743; emit Transfer(address(0x0), 0xe0261acfdd10508c75b6a60b1534c8386c4daa52, 5047016671743); balances[0x0a26d9674c2a1581ada4316e3f5960bb70fb0fb2]=516961909310; emit Transfer(address(0x0), 0x0a26d9674c2a1581ada4316e3f5960bb70fb0fb2, 516961909310); balances[0xa62178f120cccba370d2d2d12ec6fb1ff276d706]=2052642875205; emit Transfer(address(0x0), 0xa62178f120cccba370d2d2d12ec6fb1ff276d706, 2052642875205); balances[0xe57a18783640c9fa3c5e8e4d4b4443e2024a7ff9]=2494738345632; emit Transfer(address(0x0), 0xe57a18783640c9fa3c5e8e4d4b4443e2024a7ff9, 2494738345632); balances[0x9b8957d1ac592bd388dcde346933ac1269b7c314]=106433334269; emit Transfer(address(0x0), 0x9b8957d1ac592bd388dcde346933ac1269b7c314, 106433334269); balances[0xf27bb893a4d9574378c4b1d089bdb6b9fce5099e]=380845; emit Transfer(address(0x0), 0xf27bb893a4d9574378c4b1d089bdb6b9fce5099e, 380845); balances[0x54a8f792298af9489de7a1245169a943fb69f5a6]=707886981662; emit Transfer(address(0x0), 0x54a8f792298af9489de7a1245169a943fb69f5a6, 707886981662); balances[0x004ba728a652bded4d4b79fb04b5a92ad8ce15e7]=21250198; emit Transfer(address(0x0), 0x004ba728a652bded4d4b79fb04b5a92ad8ce15e7, 21250198); balances[0xd05803aee240195460f8589a6d6487fcea0097c1]=85731; emit Transfer(address(0x0), 0xd05803aee240195460f8589a6d6487fcea0097c1, 85731); balances[0xad9f11d1dd6d202243473a0cdae606308ab243b4]=101365080257; emit Transfer(address(0x0), 0xad9f11d1dd6d202243473a0cdae606308ab243b4, 101365080257); balances[0xfec55e783595682141c4b5e6ad9ea605f1683844]=60657099080; emit Transfer(address(0x0), 0xfec55e783595682141c4b5e6ad9ea605f1683844, 60657099080); balances[0x99a7e5777b711ff23e2b6961232a4009f7cec1b0]=456860909542; emit Transfer(address(0x0), 0x99a7e5777b711ff23e2b6961232a4009f7cec1b0, 456860909542); balances[0xbf45f4280cfbe7c2d2515a7d984b8c71c15e82b7]=1366848029003; emit Transfer(address(0x0), 0xbf45f4280cfbe7c2d2515a7d984b8c71c15e82b7, 1366848029003); balances[0xb38094d492af4fffff760707f36869713bfb2250]=2032369859152; emit Transfer(address(0x0), 0xb38094d492af4fffff760707f36869713bfb2250, 2032369859152); balances[0x900953b10460908ec636b46307dca13a759275cb]=1856435; emit Transfer(address(0x0), 0x900953b10460908ec636b46307dca13a759275cb, 1856435); balances[0x167e733de0861f0d61b179d3d1891e6b90587732]=2047574621189; emit Transfer(address(0x0), 0x167e733de0861f0d61b179d3d1891e6b90587732, 2047574621189); balances[0xdb3cbb8aa4dec854e6e60982dd9d4e85a8b422bc]=2; emit Transfer(address(0x0), 0xdb3cbb8aa4dec854e6e60982dd9d4e85a8b422bc, 2); balances[0x072e8711704654019c3d9bc242b3f9a4ee1963ce]=10136236279; emit Transfer(address(0x0), 0x072e8711704654019c3d9bc242b3f9a4ee1963ce, 10136236279); balances[0x04f72aa695b65a54d79db635005077293d111635]=167020515303; emit Transfer(address(0x0), 0x04f72aa695b65a54d79db635005077293d111635, 167020515303); balances[0x30385a99e66469a8c0bf172896758dd4595704a9]=614699515479; emit Transfer(address(0x0), 0x30385a99e66469a8c0bf172896758dd4595704a9, 614699515479); balances[0xfe5a94e5bab010f52ae8fd8589b7d0a7b0b433ae]=2067847571118; emit Transfer(address(0x0), 0xfe5a94e5bab010f52ae8fd8589b7d0a7b0b433ae, 2067847571118); balances[0x88058d4d90cc9d9471509e5be819b2be361b51c6]=957900008429; emit Transfer(address(0x0), 0x88058d4d90cc9d9471509e5be819b2be361b51c6, 957900008429); balances[0xfcc6bf3369077e22a90e05ad567744bf5109e4d4]=1635580659302; emit Transfer(address(0x0), 0xfcc6bf3369077e22a90e05ad567744bf5109e4d4, 1635580659302); balances[0x21a6043877a0ac376b7ca91195521de88d440eba]=162184128411; emit Transfer(address(0x0), 0x21a6043877a0ac376b7ca91195521de88d440eba, 162184128411); balances[0xd7dd80404d3d923c8a40c47c1f61aacbccb4191e]=3569292763171; emit Transfer(address(0x0), 0xd7dd80404d3d923c8a40c47c1f61aacbccb4191e, 3569292763171); balances[0xa1a3e2fcc1e7c805994ca7309f9a829908a18b4c]=633301706054; emit Transfer(address(0x0), 0xa1a3e2fcc1e7c805994ca7309f9a829908a18b4c, 633301706054); balances[0xc5556ce5c51d2f6a8d7a54bec2a9961dfada84db]=2471775966918; emit Transfer(address(0x0), 0xc5556ce5c51d2f6a8d7a54bec2a9961dfada84db, 2471775966918); balances[0xb4894098be4dbfdc0024dfb9d2e9f6654e0e3786]=10053178133; emit Transfer(address(0x0), 0xb4894098be4dbfdc0024dfb9d2e9f6654e0e3786, 10053178133); balances[0xe8a01b61f80130aefda985ee2e9c6899a57a17c8]=177388890449; emit Transfer(address(0x0), 0xe8a01b61f80130aefda985ee2e9c6899a57a17c8, 177388890449); balances[0x559a922941f84ebe6b9f0ed58e3b96530614237e]=65887302167; emit Transfer(address(0x0), 0x559a922941f84ebe6b9f0ed58e3b96530614237e, 65887302167); balances[0xf95f528d7c25904f15d4154e45eab8e5d4b6c160]=425572373267; emit Transfer(address(0x0), 0xf95f528d7c25904f15d4154e45eab8e5d4b6c160, 425572373267); balances[0x0045b9707913eae3889283ed4d72077a904b9848]=1507541146428; emit Transfer(address(0x0), 0x0045b9707913eae3889283ed4d72077a904b9848, 1507541146428); balances[0x586389feed58c2c6a0ce6258cb1c58833abdb093]=2603426; emit Transfer(address(0x0), 0x586389feed58c2c6a0ce6258cb1c58833abdb093, 2603426); balances[0xd2b752bec2fe5c7e5cc600eb5ce465a210cb857a]=380119050963; emit Transfer(address(0x0), 0xd2b752bec2fe5c7e5cc600eb5ce465a210cb857a, 380119050963); balances[0x518bbb5e4a1e8f8f21a09436c35b9cb5c20c7b43]=5037433249; emit Transfer(address(0x0), 0x518bbb5e4a1e8f8f21a09436c35b9cb5c20c7b43, 5037433249); balances[0x25e5c43d5f53ee1a7dd5ad7560348e29baea3048]=5068254012; emit Transfer(address(0x0), 0x25e5c43d5f53ee1a7dd5ad7560348e29baea3048, 5068254012); balances[0x22dd964193df4de2e6954a2a9d9cbbd6f44f0b28]=2754253183453; emit Transfer(address(0x0), 0x22dd964193df4de2e6954a2a9d9cbbd6f44f0b28, 2754253183453); balances[0xaa7a7c2decb180f68f11e975e6d92b5dc06083a6]=116569842295; emit Transfer(address(0x0), 0xaa7a7c2decb180f68f11e975e6d92b5dc06083a6, 116569842295); balances[0x4e27a678c8dc883035c542c83124e7e3f39842b0]=35477778089; emit Transfer(address(0x0), 0x4e27a678c8dc883035c542c83124e7e3f39842b0, 35477778089); balances[0x3bd56f97876d3af248b1fe92e361c05038c74c27]=15181683975; emit Transfer(address(0x0), 0x3bd56f97876d3af248b1fe92e361c05038c74c27, 15181683975); balances[0x674194d05bfc9a176a5b84711c8687609ff3d17b]=4287056630970; emit Transfer(address(0x0), 0x674194d05bfc9a176a5b84711c8687609ff3d17b, 4287056630970); balances[0x0102f6ca7278e7d96a6d649da30bfe07e87155a3]=1233053375653; emit Transfer(address(0x0), 0x0102f6ca7278e7d96a6d649da30bfe07e87155a3, 1233053375653); balances[0x3750ecf5e0536d04dd3858173ab571a0dcbdf7e0]=50270330036; emit Transfer(address(0x0), 0x3750ecf5e0536d04dd3858173ab571a0dcbdf7e0, 50270330036); balances[0x07a68bd44a526e09b8dbfc7085b265450362b61a]=101365080257; emit Transfer(address(0x0), 0x07a68bd44a526e09b8dbfc7085b265450362b61a, 101365080257); balances[0xebd76aa221968b8ba9cdd6e6b4dbb889140088a3]=309163494783; emit Transfer(address(0x0), 0xebd76aa221968b8ba9cdd6e6b4dbb889140088a3, 309163494783); balances[0xc7ee330d69cdddc1b9955618ff0df27bb8de3143]=10098567209; emit Transfer(address(0x0), 0xc7ee330d69cdddc1b9955618ff0df27bb8de3143, 10098567209); balances[0xe0c059faabce16dd5ddb4817f427f5cf3b40f4c4]=656449480989; emit Transfer(address(0x0), 0xe0c059faabce16dd5ddb4817f427f5cf3b40f4c4, 656449480989); balances[0xdc680cc11a535e45329f49566850668fef34054f]=1629652247199; emit Transfer(address(0x0), 0xdc680cc11a535e45329f49566850668fef34054f, 1629652247199); balances[0x22ef324a534ba9aa0d060c92294fdd0fc4aca065]=105388398778; emit Transfer(address(0x0), 0x22ef324a534ba9aa0d060c92294fdd0fc4aca065, 105388398778); balances[0xe14cffadb6bbad8de69bd5ba214441a9582ec548]=70955556179; emit Transfer(address(0x0), 0xe14cffadb6bbad8de69bd5ba214441a9582ec548, 70955556179); balances[0xdfb895c870c4956261f4839dd12786ef612d7314]=307632851383; emit Transfer(address(0x0), 0xdfb895c870c4956261f4839dd12786ef612d7314, 307632851383); balances[0x620103bb2b263ab0a50a47f73140d218401541c0]=10780637244561; emit Transfer(address(0x0), 0x620103bb2b263ab0a50a47f73140d218401541c0, 10780637244561); balances[0x9fc5b0edc0309745c6974f1a6718029ea41a4d6e]=65859631176; emit Transfer(address(0x0), 0x9fc5b0edc0309745c6974f1a6718029ea41a4d6e, 65859631176); balances[0xd6ceae2756f2af0a2f825b6e3ca8a9cfb4d082e2]=1122517124649; emit Transfer(address(0x0), 0xd6ceae2756f2af0a2f825b6e3ca8a9cfb4d082e2, 1122517124649); balances[0x25437b6a20021ea94d549ddd50403994e532e9d7]=1711954946632; emit Transfer(address(0x0), 0x25437b6a20021ea94d549ddd50403994e532e9d7, 1711954946632); balances[0xeb4f4c886b402c65ff6f619716efe9319ce40fcf]=526035186557; emit Transfer(address(0x0), 0xeb4f4c886b402c65ff6f619716efe9319ce40fcf, 526035186557); balances[0xf3552d4018fad9fcc390f5684a243f7318d8b570]=253412700642; emit Transfer(address(0x0), 0xf3552d4018fad9fcc390f5684a243f7318d8b570, 253412700642); balances[0x85abe8e3bed0d4891ba201af1e212fe50bb65a26]=1060373239943; emit Transfer(address(0x0), 0x85abe8e3bed0d4891ba201af1e212fe50bb65a26, 1060373239943); balances[0xc446073e0c00a1138812b3a99a19df3cb8ace70d]=2032369859153; emit Transfer(address(0x0), 0xc446073e0c00a1138812b3a99a19df3cb8ace70d, 2032369859153); balances[0x195d65187a4aeb24b563dd2d52709a6b67064ad3]=235803680643; emit Transfer(address(0x0), 0x195d65187a4aeb24b563dd2d52709a6b67064ad3, 235803680643); balances[0x588611841bd8b134f3d6ca3ff2796b483dfca4c6]=27875; emit Transfer(address(0x0), 0x588611841bd8b134f3d6ca3ff2796b483dfca4c6, 27875); balances[0x43237ce180fc47cb4e3d32eb23e420f5ecf7a95e]=5087020825285; emit Transfer(address(0x0), 0x43237ce180fc47cb4e3d32eb23e420f5ecf7a95e, 5087020825285); balances[0x394299ef1650ac563a9adbec4061b25e50570f49]=65523270720; emit Transfer(address(0x0), 0x394299ef1650ac563a9adbec4061b25e50570f49, 65523270720); balances[0x0000bb50ee5f5df06be902d1f9cb774949c337ed]=728415; emit Transfer(address(0x0), 0x0000bb50ee5f5df06be902d1f9cb774949c337ed, 728415); balances[0x4927fb34fff626adb7b07305c447ac89ded8bea2]=15181318646; emit Transfer(address(0x0), 0x4927fb34fff626adb7b07305c447ac89ded8bea2, 15181318646); balances[0x93da7b2830e3932d906749e67a7ce1fbf3a5366d]=2768553093810; emit Transfer(address(0x0), 0x93da7b2830e3932d906749e67a7ce1fbf3a5366d, 2768553093810); balances[0x7f4924f55e215e1fe44e3b5bb7fdfced2154b30f]=506445600761; emit Transfer(address(0x0), 0x7f4924f55e215e1fe44e3b5bb7fdfced2154b30f, 506445600761); balances[0x9834977aa420b078b8fd47c73a9520f968d66a3a]=1035039327674; emit Transfer(address(0x0), 0x9834977aa420b078b8fd47c73a9520f968d66a3a, 1035039327674); balances[0x26b8c7606e828a509bbb208a0322cf960c17b225]=1314664139193; emit Transfer(address(0x0), 0x26b8c7606e828a509bbb208a0322cf960c17b225, 1314664139193); balances[0x8f3dd21c9334980030ba95c37565ba25df9574cd]=20273016051; emit Transfer(address(0x0), 0x8f3dd21c9334980030ba95c37565ba25df9574cd, 20273016051); balances[0x85d66f3a8da35f47e03d6bb51f51c2d70a61e12e]=10419370357974; emit Transfer(address(0x0), 0x85d66f3a8da35f47e03d6bb51f51c2d70a61e12e, 10419370357974); balances[0xbafc492638a2ec4f89aff258c8f18f806a844d72]=396663813367; emit Transfer(address(0x0), 0xbafc492638a2ec4f89aff258c8f18f806a844d72, 396663813367); balances[0x2f0d5a1d6bb5d7eaa0eaad39518621911a4a1d9f]=45613275677; emit Transfer(address(0x0), 0x2f0d5a1d6bb5d7eaa0eaad39518621911a4a1d9f, 45613275677); balances[0xae5910c6f3cd709bf497bae2b8eae8cf983aca1b]=561729123519; emit Transfer(address(0x0), 0xae5910c6f3cd709bf497bae2b8eae8cf983aca1b, 561729123519); balances[0xb963db36d28468ce64bce65e560e5f27e75f2f50]=50497795029; emit Transfer(address(0x0), 0xb963db36d28468ce64bce65e560e5f27e75f2f50, 50497795029); balances[0x7134161b9e6fa84d62f156037870ee77fa50f607]=806825; emit Transfer(address(0x0), 0x7134161b9e6fa84d62f156037870ee77fa50f607, 806825); balances[0x111fd8a12981d1174cfa8eef3b0141b3d5d4e5b3]=5023380788; emit Transfer(address(0x0), 0x111fd8a12981d1174cfa8eef3b0141b3d5d4e5b3, 5023380788); balances[0xafaf9a165408737e11191393fe695c1ebc7a5429]=3750469994332; emit Transfer(address(0x0), 0xafaf9a165408737e11191393fe695c1ebc7a5429, 3750469994332); balances[0x5329fcc196c445009aac138b22d25543ed195888]=126671028590; emit Transfer(address(0x0), 0x5329fcc196c445009aac138b22d25543ed195888, 126671028590); balances[0xa5b3725e37431dc6a103961749cb9c98954202cd]=446006353130; emit Transfer(address(0x0), 0xa5b3725e37431dc6a103961749cb9c98954202cd, 446006353130); balances[0xb8ab7387076f022c28481fafb28911ce4377e0ea]=3045242779146; emit Transfer(address(0x0), 0xb8ab7387076f022c28481fafb28911ce4377e0ea, 3045242779146); balances[0xd2470aacd96242207f06111819111d17ca055dfb]=957900008429; emit Transfer(address(0x0), 0xd2470aacd96242207f06111819111d17ca055dfb, 957900008429); balances[0x1fca39ed4f19edd12eb274dc467c099eb5106a13]=278753970706; emit Transfer(address(0x0), 0x1fca39ed4f19edd12eb274dc467c099eb5106a13, 278753970706); balances[0x8d12a197cb00d4747a1fe03395095ce2a5cc6819]=4743885756029; emit Transfer(address(0x0), 0x8d12a197cb00d4747a1fe03395095ce2a5cc6819, 4743885756029); balances[0x2a23527a6dbafae390514686d50f47747d01e44d]=652376852116; emit Transfer(address(0x0), 0x2a23527a6dbafae390514686d50f47747d01e44d, 652376852116); balances[0x371e31169df00563eafab334c738e66dd0476a8f]=226377928506; emit Transfer(address(0x0), 0x371e31169df00563eafab334c738e66dd0476a8f, 226377928506); balances[0x40ea0a2abc9479e51e411870cafd759cb110c258]=30282012248; emit Transfer(address(0x0), 0x40ea0a2abc9479e51e411870cafd759cb110c258, 30282012248); balances[0xe585ba86b84283f0f1118041837b06d03b96885e]=170791; emit Transfer(address(0x0), 0xe585ba86b84283f0f1118041837b06d03b96885e, 170791); balances[0xbede88c495132efb90b5039bc2942042e07814df]=40513641855; emit Transfer(address(0x0), 0xbede88c495132efb90b5039bc2942042e07814df, 40513641855); // test lines //balances[msg.sender] = 21000 * (10 ** uint(decimals)); //timer[msg.sender ] = ( now - ( 1 years)); } function mint(uint256 nonce, bytes32 challenge_digest) public returns (bool success) { bytes32 digest = keccak256(challengeNumber, msg.sender, nonce ); if (digest != challenge_digest) revert(); if(uint256(digest) > miningTarget) revert(); bytes32 solution = solutionForChallenge[challengeNumber]; solutionForChallenge[challengeNumber] = digest; if(solution != 0x0) revert(); //prevent the same answer from awarding twice _claimTokens(msg.sender); timer[msg.sender]=now; uint reward_amount = getMiningReward(); balances[msg.sender] = balances[msg.sender].add(reward_amount); tokensMinted = tokensMinted.add(reward_amount); assert(tokensMinted <= maxSupplyForEra); lastRewardTo = msg.sender; lastRewardAmount = reward_amount; lastRewardEthBlockNumber = block.number; _startNewMiningEpoch(); emit Mint(msg.sender, reward_amount, epochCount, challengeNumber ); emit Transfer(address(0x0), msg.sender, reward_amount); return true; } function _startNewMiningEpoch() internal { if( tokensMinted.add(getMiningReward()) > maxSupplyForEra && rewardEra < 39) { rewardEra = rewardEra + 1; } maxSupplyForEra = _totalSupply/10 - _totalSupply.div( 20**(rewardEra + 1)); epochCount = epochCount.add(1); if(epochCount % _BLOCKS_PER_READJUSTMENT == 0) { _reAdjustDifficulty(); } challengeNumber = block.blockhash(block.number - 1); } function _reAdjustDifficulty() internal { uint ethBlocksSinceLastDifficultyPeriod = block.number - latestDifficultyPeriodStarted; uint epochsMined = _BLOCKS_PER_READJUSTMENT; uint targetEthBlocksPerDiffPeriod = epochsMined * 60; //should be 60 times slower than ethereum if( ethBlocksSinceLastDifficultyPeriod < targetEthBlocksPerDiffPeriod ) { uint excess_block_pct = (targetEthBlocksPerDiffPeriod.mul(100)).div( ethBlocksSinceLastDifficultyPeriod ); uint excess_block_pct_extra = excess_block_pct.sub(100).limitLessThan(1000); miningTarget = miningTarget.sub(miningTarget.div(2000).mul(excess_block_pct_extra)); //by up to 50 % }else{ uint shortage_block_pct = (ethBlocksSinceLastDifficultyPeriod.mul(100)).div( targetEthBlocksPerDiffPeriod ); uint shortage_block_pct_extra = shortage_block_pct.sub(100).limitLessThan(1000); //always between 0 and 1000 miningTarget = miningTarget.add(miningTarget.div(2000).mul(shortage_block_pct_extra)); //by up to 50 % } latestDifficultyPeriodStarted = block.number; if(miningTarget < _MINIMUM_TARGET) //very difficult { miningTarget = _MINIMUM_TARGET; } if(miningTarget > _MAXIMUM_TARGET) //very easy { miningTarget = _MAXIMUM_TARGET; } } function getChallengeNumber() public constant returns (bytes32) { return challengeNumber; } function getMiningDifficulty() public constant returns (uint) { return _MAXIMUM_TARGET.div(miningTarget); } function getMiningTarget() public constant returns (uint) { return miningTarget; } function getMiningReward() public constant returns (uint) { return (50 * 10**uint(decimals) ).div( 2**rewardEra ) ; } function getMintDigest(uint256 nonce, bytes32 challenge_digest, bytes32 challenge_number) public view returns (bytes32 digesttest) { bytes32 digest = keccak256(challenge_number,msg.sender,nonce); return digest; } function checkMintSolution(uint256 nonce, bytes32 challenge_digest, bytes32 challenge_number, uint testTarget) public view returns (bool success) { bytes32 digest = keccak256(challenge_number,msg.sender,nonce); if(uint256(digest) > testTarget) revert(); return (digest == challenge_digest); } function totalSupply() public constant returns (uint) { return _totalSupply; } function balanceOf(address tokenOwner) public constant returns (uint balance) { return balances[tokenOwner] + _getPoS(tokenOwner); // add unclaimed pos tokens } function transfer(address to, uint tokens) public returns (bool success) { _claimTokens(msg.sender); _claimTokens(to); timer[msg.sender] = now; timer[to] = now; balances[msg.sender] = balances[msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(msg.sender, to, tokens); return true; } function approve(address spender, uint tokens) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } function transferFrom(address from, address to, uint tokens) public returns (bool success) { _claimTokens(from); _claimTokens(to); timer[from] = now; timer[to] = now; balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(from, to, tokens); return true; } function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data); return true; } function allowance(address tokenOwner, address spender) public constant returns (uint remaining) { return allowed[tokenOwner][spender]; } function () public payable { revert(); } function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, tokens); } function claimTokens() public { _claimTokens(msg.sender); timer[msg.sender] = now; } function _claimTokens(address target) internal{ if (timer[target] == 0){ // russian hackers BTFO if (balances[target] > 0){ // timer is handled in _getPoS } else{ return; } } if (timer[target] == now){ // 0 seconds passed, 0 tokens gotten via PoS // return so no gas waste return; } uint256 totalTkn = _getPoS(target); if (totalTkn > 0){ balances[target] = balances[target].add(totalTkn); //_totalSupply.add(totalTkn); total supply is fixed emit PoS(target, totalTkn); } //timer[target] = now; every time you claim tokens this timer is set. this is to prevent people claiming 0 tokens and then setting their timer emit Transfer(address(0x0), target, totalTkn); } function getStakingRequirementTime(address target, uint256 TIME) view returns (uint256){ return (stakingRequirement * fixedExp(((int(GLOBAL_START_TIMER) - int(TIME)) * one) / int(timerUnit)))/uint(one) ; } function getRequirementTime(address target) view returns (uint256) { uint256 balance = balances[target]; int ONE = 0x10000000000000000; if (balance == 0){ return (uint256(0) - 1); // inf } uint TIME = timer[target]; if (TIME == 0){ TIME = GLOBAL_START_TIMER; } int ln = fixedLog((balance * uint(one)) / stakingRequirement); int mul = (int(timerUnit) * ln) / (int(one)); uint pos = uint( -mul); return (pos + GLOBAL_START_TIMER); } function GetStakingNow() view returns (uint256){ return (stakingRequirement * fixedExp(((int(GLOBAL_START_TIMER) - int(now)) * one) / int(timerUnit)))/uint(one) ; } function _getPoS(address target) internal view returns (uint256){ if (balances[target] == 0){ return 0; } int ONE_SECOND = 0x10000000000000000; uint TIME = timer[target]; if (TIME == 0){ TIME = GLOBAL_START_TIMER; } if (balances[target] < getStakingRequirementTime(target, TIME)){ // staking requirement was too low at update // maybe it has since surpassed the requirement? uint flipTime = getRequirementTime(target); if ( now > flipTime ){ TIME = flipTime; } else{ return 0; } } int PORTION_SCALED = ( (int(GLOBAL_START_TIMER) - int(TIME)) * ONE_SECOND) / int(stakeUnit); uint256 exp = fixedExp(PORTION_SCALED); PORTION_SCALED = ( (int(GLOBAL_START_TIMER) - int(now)) * ONE_SECOND) / int(stakeUnit); uint256 exp2 = fixedExp(PORTION_SCALED); uint256 MULT = (9 * (exp.sub(exp2)) * (balances[target])) / (uint(one)); return (MULT); } int256 constant ln2 = 0x0b17217f7d1cf79ac; int256 constant ln2_64dot5= 0x2cb53f09f05cc627c8; int256 constant one = 0x10000000000000000; int256 constant c2 = 0x02aaaaaaaaa015db0; int256 constant c4 = -0x000b60b60808399d1; int256 constant c6 = 0x0000455956bccdd06; int256 constant c8 = -0x000001b893ad04b3a; uint256 constant sqrt2 = 0x16a09e667f3bcc908; uint256 constant sqrtdot5 = 0x0b504f333f9de6484; int256 constant c1 = 0x1ffffffffff9dac9b; int256 constant c3 = 0x0aaaaaaac16877908; int256 constant c5 = 0x0666664e5e9fa0c99; int256 constant c7 = 0x049254026a7630acf; int256 constant c9 = 0x038bd75ed37753d68; int256 constant c11 = 0x03284a0c14610924f; function fixedExp(int256 a) public pure returns (uint256 exp) { int256 scale = (a + (ln2_64dot5)) / ln2 - 64; a -= scale*ln2; // The polynomial R = 2 + c2*x^2 + c4*x^4 + ... // approximates the function x*(exp(x)+1)/(exp(x)-1) // Hence exp(x) = (R(x)+x)/(R(x)-x) int256 z = (a*a) / one; int256 R = ((int256)(2) * one) + (z*(c2 + (z*(c4 + (z*(c6 + (z*c8/one))/one))/one))/one); exp = (uint256) (((R + a) * one) / (R - a)); if (scale >= 0) exp <<= scale; else exp >>= -scale; return exp; } function fixedLog(uint256 a) internal pure returns (int256 log) { int32 scale = 0; while (a > sqrt2) { a /= 2; scale++; } while (a <= sqrtdot5) { a *= 2; scale--; } int256 s = (((int256)(a) - one) * one) / ((int256)(a) + one); // The polynomial R = c1*x + c3*x^3 + ... + c11 * x^11 // approximates the function log(1+x)-log(1-x) // Hence R(s) = log((1+s)/(1-s)) = log(a) var z = (s*s) / one; return scale * ln2 + (s*(c1 + (z*(c3 + (z*(c5 + (z*(c7 + (z*(c9 + (z*c11/one)) /one))/one))/one))/one))/one); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardEthBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDifficulty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardEra","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiningReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getChallengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupplyForEra","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"GetStakingNow","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"},{"name":"challenge_number","type":"bytes32"},{"name":"testTarget","type":"uint256"}],"name":"checkMintSolution","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"epochCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_MAXIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"miningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"},{"name":"challenge_number","type":"bytes32"}],"name":"getMintDigest","outputs":[{"name":"digesttest","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"target","type":"address"},{"name":"TIME","type":"uint256"}],"name":"getStakingRequirementTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_BLOCKS_PER_READJUSTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"latestDifficultyPeriodStarted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_MINIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"int256"}],"name":"fixedExp","outputs":[{"name":"exp","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"target","type":"address"}],"name":"getRequirementTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"reward_amount","type":"uint256"},{"indexed":false,"name":"epochCount","type":"uint256"},{"indexed":false,"name":"newChallengeNumber","type":"bytes32"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"reward_amount","type":"uint256"}],"name":"PoS","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
608060405260048054600860ff199182168117928390556104009055620100006009557d040000000000000000000000000000000000000000000000000000000000600a90815560128054909216909155630545217f60195560ff909116900a61520802601a55633772133c601b553480156200007b57600080fd5b5060008054600160a060020a0319163390811791829055600160a060020a039190911614620000a957600080fd5b6040805180820190915260038082527f534b4f00000000000000000000000000000000000000000000000000000000006020909201918252620000ef9160029162002e74565b506040805180820190915260068082527f536b6f72636800000000000000000000000000000000000000000000000000006020909201918252620001369160039162002e74565b506004805460ff191660081790819055630c84588060ff918216600a0a0260055560125416156200016657600080fd5b6012805460ff19166001179055653f6feff91c0060149081556000600d556603baf82d03a000600e5543600655426015557f48f499eca7dc41858c2a53fded09096d138b8b88a9da8f488dccd5118bb1bbe2600c55614ed5600755600554620001dd91640100000000620012aa62002e5182021704565b600554600a900403600e557b046535708ac23bbf831c5398f7a5a62bf1db79ad7bf59530faaf067e600b5573ab4485ca338b91087a09ae8bc141648bb1c6e9676000818152601660209081526419f603373a7fc0c23cf1013bb8bb05b21da3740533a054fcd4e45b1c436adceeba2a8934f8a48190556040805191825251600080516020620047dc833981519152929181900390910190a373f2119e50578b3dfa248652c4fbec76b9e415acb260008181526016602090815264025c2ed6797f7c5b7c2bdbd7d81fb76fa4771cc11ae9157b4da604bc0929fbc0af446861b5508190556040805191825251600080516020620047dc833981519152929181900390910190a373b12b538cb67fceb50bbc1a31d2011eb92e6f718860008181526016602090815262182a427f4dcacd0b22d57fd0e123ddf590a560428655aa2e6e18429782a1998fde81d8dd8190556040805191825251600080516020620047dc833981519152929181900390910190a37321b7e18dacde5c004a0a56e74f071ac3fb2e98ff6000818152601660209081526402832d3bd97f597dcbdfd4b33bf94c2d42f74077cee03a71b7fc2b14bb21c3366b5da4d70eb38190556040805191825251600080516020620047dc833981519152929181900390910190a373e539a7645d2f33103c89b5b03abb422a163b7c73600081815260166020908152640e291906da7fe90867f0ab853d9a011a3d391458a06dffbff068cdff395c8acaa169d9ce32488190556040805191825251600080516020620047dc833981519152929181900390910190a3734ffe17a2a72bc7422cb176bc71c04ee6d87ce329600081815260166020908152646904917d3b7f0763abcb717d1194c820cf3eeb0683e857f26dbb8d6feb31992fdd7d60b2d0868190556040805191825251600080516020620047dc833981519152929181900390910190a373c0a2002e74b3b22e77098cb87232f446d813ce3160008181526016602090815261845d7f497052c62c376d801f6aa712f63ec3d00e59991fb1f9ac41f9ffd7cd95e791ce8190556040805191825251600080516020620047dc833981519152929181900390910190a373fc313f77c2cbc6cd0dd82b9a0ed1620ba906e46d600081815260166020908152642cd779eb087ffacfb4067d16f27c010ac464a6d723a2f6848f1619d1e1ab602f3c9ec184961c8190556040805191825251600080516020620047dc833981519152929181900390910190a373219fdb55ea364fcaf29aaa87fb1c45ba7db8128e6000818152601660209081526404b85dacf37f0b47a498c14dadb92b9c6c0e5911466e1007904c4b2c555a46ee9583f162c52d8190556040805191825251600080516020620047dc833981519152929181900390910190a373fbc2b315ac1fba765597a92ff100222425ce66fd600081815260166020908152648d9afa44867f3d05645cccde8b28c58e16270baa9b83e012331698df6df87940c23528d90a428190556040805191825251600080516020620047dc833981519152929181900390910190a373852563d88480decbc9bfb4428bb689af48dd92a960008181526016602090815264ead656cc6b7f934ba94bea7b65c21e6e6b4d520e5e8d8eb000f4a973d36bbf80a483d2dbe3c28190556040805191825251600080516020620047dc833981519152929181900390910190a3734d01d11697f00097064d7e05114ecd3843e8286760008181526016602090815264b7e6266fce7f28a52e1fbb1a182cb9f7508dee7ab25aecd55e239ac0770a25cf8883cabb2d548190556040805191825251600080516020620047dc833981519152929181900390910190a373e75ea07e4b90e46e13c37644138aa99ec69020ae600081815260166020908152647a7e7d5bff7ffe627fcfe99184079b04fb0cfe5c875f3473603354c6d5826b9eaa75bf4ea9228190556040805191825251600080516020620047dc833981519152929181900390910190a37351138ab5497b2c3d85be94d23905f5ead9e533a760008181526016602090815264012e176b3c7f2c58aa4e7497c842dc9ce1f7bf41570d7e373341abea4f450f2376f47734a1b98190556040805191825251600080516020620047dc833981519152929181900390910190a373ae7c95f2192c739edfb16412a6112a54f8965305600081815260166020908152640cfb019b9d7f55347597902e69ccde1f178fd38c2f369fe9eb5e4eecd383283bf2b1db89e97c8190556040805191825251600080516020620047dc833981519152929181900390910190a373e0261acfdd10508c75b6a60b1534c8386c4daa5260008181526016602090815265049719a2c9ff7faba0f22f9d03332d9598c2a9af6da108229374edc472f7c08c4c60d83eb230898190556040805191825251600080516020620047dc833981519152929181900390910190a3730a26d9674c2a1581ada4316e3f5960bb70fb0fb260008181526016602090815264785d54ba3e7f7eec9ef2c79c5152db940b5fd0a421a2022aa3a0cd93f9edfd5add2602e9227a8190556040805191825251600080516020620047dc833981519152929181900390910190a373a62178f120cccba370d2d2d12ec6fb1ff276d7066000818152601660209081526501ddeb0ca7457f640c5b46264908df741ecec5ac8e6058d4ca0d10e7160bc0dfd020daaccc98dc8190556040805191825251600080516020620047dc833981519152929181900390910190a373e57a18783640c9fa3c5e8e4d4b4443e2024a7ff9600081815260166020908152650244d9fe2ea07f930d08df740b0d68943f67af6cf755c1e0ebeb6079f4c263b01ef96d76cbef178190556040805191825251600080516020620047dc833981519152929181900390910190a3739b8957d1ac592bd388dcde346933ac1269b7c3146000818152601660209081526418c7ebcbfd7f396b0ce6421ffde24865b9bdaac3c700015c0ba6524cfba16f0cb417ccace94c8190556040805191825251600080516020620047dc833981519152929181900390910190a373f27bb893a4d9574378c4b1d089bdb6b9fce5099e6000818152601660209081526205cfad7f386f2db23de87b6f5a8895cf4192ba0ba7fe23410a4c25fc4f87ba6b928c97018190556040805191825251600080516020620047dc833981519152929181900390910190a37354a8f792298af9489de7a1245169a943fb69f5a660008181526016602090815264a4d15a221e7fdc6f385054b9933540720e80d9582d1be260d727a5780ca639bdda8c26aea48b8190556040805191825251600080516020620047dc833981519152929181900390910190a3724ba728a652bded4d4b79fb04b5a92ad8ce15e760008181526016602090815263014440967f6a3d3a65d6bb97c827a6b951680b0b34f8028cc0df9ffb882c29a5330e6faf6f8190556040805191825251600080516020620047dc833981519152929181900390910190a373d05803aee240195460f8589a6d6487fcea0097c160008181526016602090815262014ee37f1f0f23d231fa195b224a3d4e37551e361404b68bf9e00ea26ca13031d8963cb68190556040805191825251600080516020620047dc833981519152929181900390910190a373ad9f11d1dd6d202243473a0cdae606308ab243b4600081815260166020908152641799d460c17fc298f9cbb1f82e38ea87a6b2b14754c5e5cdeab0a8099f530d2f5e82c79507ed8190556040805191825251600080516020620047dc833981519152929181900390910190a373fec55e783595682141c4b5e6ad9ea605f1683844600081815260166020908152640e1f71e1487fb80e2e7f14473f3678f7f4845e13990f90d523ac8c196e6358a069983f76ed868190556040805191825251600080516020620047dc833981519152929181900390910190a37399a7e5777b711ff23e2b6961232a4009f7cec1b0600081815260166020908152646a5f083fe67f8224b470fd54cc3843b7968180a10cdc9d686938f414a002872453b826b2eeee8190556040805191825251600080516020620047dc833981519152929181900390910190a373bf45f4280cfbe7c2d2515a7d984b8c71c15e82b760008181526016602090815265013e3e7dc14b7f11cdb501a02b153c9bc3e5f265ecfba21240d3ec7a86a3cd568b5566c7cc84448190556040805191825251600080516020620047dc833981519152929181900390910190a373b38094d492af4fffff760707f36869713bfb22506000818152601660209081526501d932aefa507fcaeb02534233f7b6825fc81f34d78c58b7a41a72bd7186f734a06941d953e7fa8190556040805191825251600080516020620047dc833981519152929181900390910190a373900953b10460908ec636b46307dca13a759275cb600081815260166020908152621c53b37f1b68ac2c8753a3afdef872d573f987c1e6b58e916512f7ae8898274d4c8df5bd8190556040805191825251600080516020620047dc833981519152929181900390910190a373167e733de0861f0d61b179d3d1891e6b905877326000818152601660209081526501dcbcf53c057fe5ab0c354e2dc5f96bc4f3ebba2b13e8c681d4df7d5d8893edb8b44874a9a1c58190556040805191825251600080516020620047dc833981519152929181900390910190a373db3cbb8aa4dec854e6e60982dd9d4e85a8b422bc60008181526016602090815260027fa6c0644695b56e400a4eca9d2e52e027c2567e76d2c35891f100fd5568b91dd58190556040805191825251600080516020620047dc833981519152929181900390910190a373072e8711704654019c3d9bc242b3f9a4ee1963ce60008181526016602090815264025c2ab0f77f016c8f082b010c620b336981bc02b188cb254589b599eff7b992e369ed2822d18190556040805191825251600080516020620047dc833981519152929181900390910190a37304f72aa695b65a54d79db635005077293d1116356000818152601660209081526426e332cfe77fbaf731b111464b38ceee5e6826e98b190c0b4ac8198bfb58eace49e6810f832d8190556040805191825251600080516020620047dc833981519152929181900390910190a37330385a99e66469a8c0bf172896758dd4595704a9600081815260166020908152648f1ef23e577fe12fa6dd2481ef0720598ebeaf913183ddb63174d5d314bc0c27d01309f9c13e8190556040805191825251600080516020620047dc833981519152929181900390910190a373fe5a94e5bab010f52ae8fd8589b7d0a7b0b433ae6000818152601660209081526501e17551e6ae7f53aa5faac46d723bc46343c65f5e7dd0e2af7a3c739e8fedf05b8a4bd3790ca48190556040805191825251600080516020620047dc833981519152929181900390910190a37388058d4d90cc9d9471509e5be819b2be361b51c660008181526016602090815264df074a2bed7ff737f1091a1e8d363cd7d5924bc138ec0036096c01f675d72ccfe63c7e24b4158190556040805191825251600080516020620047dc833981519152929181900390910190a373fcc6bf3369077e22a90e05ad567744bf5109e4d460008181526016602090815265017cd03446667fd93a3ca2238d7eb596bbfe454b328f83564e38a298165c6db48b02237ad7f8318190556040805191825251600080516020620047dc833981519152929181900390910190a37321a6043877a0ac376b7ca91195521de88d440eba6000818152601660209081526425c2ed679b7fede9747f5790e00a4765a2f545744d93d3fcfa74f3148f0958d28cf177b609af8190556040805191825251600080516020620047dc833981519152929181900390910190a373d7dd80404d3d923c8a40c47c1f61aacbccb4191e60008181526016602090815265033f0a6d60237ff0b04e04f2dfbfcbf5d00269b043fc03629ab9f91e4f3a37a7b263a063ab31658190556040805191825251600080516020620047dc833981519152929181900390910190a373a1a3e2fcc1e7c805994ca7309f9a829908a18b4c600081815260166020908152649373b925467f7d8dba173a4c4638e8047b9d1e226432733bcbee63855ae9f0d01c52a25107dc8190556040805191825251600080516020620047dc833981519152929181900390910190a373c5556ce5c51d2f6a8d7a54bec2a9961dfada84db60008181526016602090815265023f815416c67f1acf008a2ad3323a53f5f636464004d7f832b2fb326eb7144c917864828e7c0e8190556040805191825251600080516020620047dc833981519152929181900390910190a373b4894098be4dbfdc0024dfb9d2e9f6654e0e37866000818152601660209081526402573753157fbd35163db8070d2c86ed968d1483ac04fc2174ec8cbc58866429d0fc88966a0c8190556040805191825251600080516020620047dc833981519152929181900390910190a373e8a01b61f80130aefda985ee2e9c6899a57a17c860008181526016602090815264294d33a9517f25765c8d0eb8a786dd59833ebeff7d9e38300440a99004f7b6a6a8255573daad8190556040805191825251600080516020620047dc833981519152929181900390910190a373559a922941f84ebe6b9f0ed58e3b96530614237e600081815260166020908152640f573072177f513c0a2f358316295b5c5298d0539093d8e35c0b2e78e56197568f7f75e5385f8190556040805191825251600080516020620047dc833981519152929181900390910190a373f95f528d7c25904f15d4154e45eab8e5d4b6c1606000818152601660209081526463161713137f1e71756126dcb0c2d0ec3c98b674f4f485e334262a124554c09b89e7f26a3d848190556040805191825251600080516020620047dc833981519152929181900390910190a37245b9707913eae3889283ed4d72077a904b984860008181526016602090815265015f00745b3c7f731c84d3c2257ca3a667c41aad28b3092082d3555b1a868461e6fbb728c339188190556040805191825251600080516020620047dc833981519152929181900390910190a373586389feed58c2c6a0ce6258cb1c58833abdb0936000818152601660209081526227b9a27fc19d9769addab0d8d59aea4cff23030e699b8942bcdd65b0a513d3f377b070b28190556040805191825251600080516020620047dc833981519152929181900390910190a373d2b752bec2fe5c7e5cc600eb5ce465a210cb857a600081815260166020908152645880dc6ad37f13d1ba82fec0e4a6a76cecd7aa38cb930f522e868345b616afe81237e2cf22758190556040805191825251600080516020620047dc833981519152929181900390910190a373518bbb5e4a1e8f8f21a09436c35b9cb5c20c7b4360008181526016602090815264012c4121a17f9a3c8aa34a17b723a1460e108d02adb8a9208a6bc910dee1180db458e9357d898190556040805191825251600080516020620047dc833981519152929181900390910190a37325e5c43d5f53ee1a7dd5ad7560348e29baea304860008181526016602090815264012e176b3c7f15bd9a7af98b9aaf5d72dcf527d5fd5557cc56fa42165e7504372728c72e8ef28190556040805191825251600080516020620047dc833981519152929181900390910190a37322dd964193df4de2e6954a2a9d9cbbd6f44f0b28600081815260166020908152650281464859dd7f735f15e08029df6723628f779100676effb4beed6a2fa09bd85b5b3e8f9df5c28190556040805191825251600080516020620047dc833981519152929181900390910190a373aa7a7c2decb180f68f11e975e6d92b5dc06083a6600081815260166020908152641b241aa2777fcd8d67a4b09eb95e344ecb91b7330f42c386b0e5049b74f20192c12a7fa3ecef8190556040805191825251600080516020620047dc833981519152929181900390910190a3734e27a678c8dc883035c542c83124e7e3f39842b0600081815260166020908152640842a3eea97fd5b42408fece2f6474e12ea3fbae0ad04668f898e73358120a56888e5b5347cb8190556040805191825251600080516020620047dc833981519152929181900390910190a3733bd56f97876d3af248b1fe92e361c05038c74c27600081815260166020908152640388e61d077f5d86c6edc0263dbe0705c5363db344b08f85e1cb64f89b1f8d9ff1bd7e1e22c38190556040805191825251600080516020620047dc833981519152929181900390910190a373674194d05bfc9a176a5b84711c8687609ff3d17b6000818152601660209081526503e6287cd4ba7f673c610a50d34090f48834d885e0866355179c08aca2c472f901e37533fbe70b8190556040805191825251600080516020620047dc833981519152929181900390910190a3730102f6ca7278e7d96a6d649da30bfe07e87155a360008181526016602090815265011f17b55ca57fed949d3f2f58461b1ee6694feeba381e58ab4fae0ac0f6d6cee60e10c067e0a48190556040805191825251600080516020620047dc833981519152929181900390910190a3733750ecf5e0536d04dd3858173ab571a0dcbdf7e0600081815260166020908152640bb4585cb47ffc9ab9a60f972aff26ac16e2d064bd611a82ecf2b1ae2b009a0ec8f87923a7e88190556040805191825251600080516020620047dc833981519152929181900390910190a37307a68bd44a526e09b8dbfc7085b265450362b61a600081815260166020908152641799d460c17fda22c0de966777e11aa46f205b5ab76f64342d4db4ff26be79542ce956bddae08190556040805191825251600080516020620047dc833981519152929181900390910190a373ebd76aa221968b8ba9cdd6e6b4dbb889140088a36000818152601660209081526447fb948d7f7f3efb8ec705194e63ae1849f19ba1a0d97d7b8f2f6a74193d6ca290a7cb9039d58190556040805191825251600080516020620047dc833981519152929181900390910190a373c7ee330d69cdddc1b9955618ff0df27bb8de3143600081815260166020908152640259ebe8297f018a5d1c05b343f1e1b3e8cac946949ba1011aa11a5f158f0fb63cf079a16a578190556040805191825251600080516020620047dc833981519152929181900390910190a373e0c059faabce16dd5ddb4817f427f5cf3b40f4c46000818152601660209081526498d770291d7f6ad71e1f486a8b5d8b5cbb04c1d281810c890101da96e5a804287a650306c06e8190556040805191825251600080516020620047dc833981519152929181900390910190a373dc680cc11a535e45329f49566850668fef34054f60008181526016602090815265017b6ed7e29f7f1ea4d278a417985a97ef1498085aed88d64c465301548df70c96c17a4342278a8190556040805191825251600080516020620047dc833981519152929181900390910190a37322ef324a534ba9aa0d060c92294fdd0fc4aca065600081815260166020908152641889a358ba7f9815a5b5490a1b472cded866e0103812ea6a8dcea2051603d8c895d07db8ffd98190556040805191825251600080516020620047dc833981519152929181900390910190a373e14cffadb6bbad8de69bd5ba214441a9582ec54860008181526016602090815264108547dd537f16ca2d877a63c530fef5a339a566872abfd73aba3628ffed145769fba907f7c88190556040805191825251600080516020620047dc833981519152929181900390910190a373dfb895c870c4956261f4839dd12786ef612d73146000818152601660209081526447a058c9b77fdfd8e9bb3002ca7b50301bfcd50896280e825a9bb4059aa3c153965a95bb65088190556040805191825251600080516020620047dc833981519152929181900390910190a373620103bb2b263ab0a50a47f73140d218401541c06000818152601660209081526509ce100dac917f3797173b06b283cfca7e4d90d9da4d29b3bad7bb5256030b25db070dac7ce8278190556040805191825251600080516020620047dc833981519152929181900390910190a3739fc5b0edc0309745c6974f1a6718029ea41a4d6e600081815260166020908152640f558a38487fc6e56a538e0e0da21d83b499fc1abc33c7724b250db0cc7b7437fe3ffea2af4a8190556040805191825251600080516020620047dc833981519152929181900390910190a373d6ceae2756f2af0a2f825b6e3ca8a9cfb4d082e26000818152601660209081526501055b3c06297f2b70ad326c8d2b5421f60a350a530d18f4459afd6a39a005894089acbf33486d8190556040805191825251600080516020620047dc833981519152929181900390910190a37325437b6a20021ea94d549ddd50403994e532e9d760008181526016602090815265018e98776a487f0a587252fed9fa64f7a689a6ddf27bbb4c3a3a9731131b35008c8c8e57750f368190556040805191825251600080516020620047dc833981519152929181900390910190a373eb4f4c886b402c65ff6f619716efe9319ce40fcf600081815260166020908152647a7a23f37d7f486f11590b6c80d126ef82783d4dd8cab2ac941c20f033728180b501bf44a1f18190556040805191825251600080516020620047dc833981519152929181900390910190a373f3552d4018fad9fcc390f5684a243f7318d8b570600081815260166020908152643b0092f1e27fe268c410a1aba3aa721793aeae81515b964db96bac86d3175838e04b3873070a8190556040805191825251600080516020620047dc833981519152929181900390910190a37385abe8e3bed0d4891ba201af1e212fe50bb65a2660008181526016602090815264f6e32b98877f2cf6774bfed13160e2944f68a8dd7cc55e701162cd8d14655b7831eded246e8b8190556040805191825251600080516020620047dc833981519152929181900390910190a373c446073e0c00a1138812b3a99a19df3cb8ace70d6000818152601660209081526501d932aefa517fd6dad18bfddada3bdaf04e218b0b0565772ce8b7491e6b350dc13f0eb3f60f568190556040805191825251600080516020620047dc833981519152929181900390910190a373195d65187a4aeb24b563dd2d52709a6b67064ad36000818152601660209081526436e6fe9f837fff6413b0a9c94db81db1b8a1920fcfe7ba514461b7e18afac5262b82698771508190556040805191825251600080516020620047dc833981519152929181900390910190a373588611841bd8b134f3d6ca3ff2796b483dfca4c6600081815260166020908152616ce37f6bbdb83dd20bbdf24f638fa099105e6b4e09a68789ff6bc36a7a127c4a755e0e8190556040805191825251600080516020620047dc833981519152929181900390910190a37343237ce180fc47cb4e3d32eb23e420f5ecf7a95e6000818152601660209081526504a06a11bac57f319cde4db329bd1d90a03da4261f42ea4e60f4e5a14bea77760eb10017431eca8190556040805191825251600080516020620047dc833981519152929181900390910190a373394299ef1650ac563a9adbec4061b25e50570f49600081815260166020908152640f417dc4407f6788304b196ac642dd4a5257ab62bdfce657c5d61a473f0d4c45d7e5999f3df78190556040805191825251600080516020620047dc833981519152929181900390910190a371bb50ee5f5df06be902d1f9cb774949c337ed600081815260166020908152620b1d5f7f3da1d730a92ce177b3c177e681c2fbd2d06e573e0c10ae78417f37e4ea3d1d628190556040805191825251600080516020620047dc833981519152929181900390910190a3734927fb34fff626adb7b07305c447ac89ded8bea2600081815260166020908152640388e089f67f1e1056da55af4356b99473481adc7a123b0e49bceeade25a2b5935d86ba2d1d08190556040805191825251600080516020620047dc833981519152929181900390910190a37393da7b2830e3932d906749e67a7ce1fbf3a5366d6000818152601660209081526502849a9faab27f345b07c9e8aad63227c48da15b8ab4adc5adf4504f41e8aaae8ca216c014cda38190556040805191825251600080516020620047dc833981519152929181900390910190a3737f4924f55e215e1fe44e3b5bb7fdfced2154b30f6000818152601660209081526475ea8297f97fbad151298be0c3611b081396df4c4c0ce4801fce4e6afce5e04d96428f83ba768190556040805191825251600080516020620047dc833981519152929181900390910190a3739834977aa420b078b8fd47c73a9520f968d66a3a60008181526016602090815264f0fd26c5ba7f7294abe9ded1e97f376093e5614ea6127386eaa65eb0ee4758f43203bd7f11098190556040805191825251600080516020620047dc833981519152929181900390910190a37326b8c7606e828a509bbb208a0322cf960c17b2256000818152601660209081526501321816c9b97f615a9b8b383ee4a78930947ee9e0bf5f80fefcf6897dafc1d2cf59392cd95d358190556040805191825251600080516020620047dc833981519152929181900390910190a3738f3dd21c9334980030ba95c37565ba25df9574cd6000818152601660209081526404b85dacf37ffe14f9eb6bc82c2b87be8535bea0ee2d3e899dc51282d4023de8fa9168aba4018190556040805191825251600080516020620047dc833981519152929181900390910190a37385d66f3a8da35f47e03d6bb51f51c2d70a61e12e600081815260166020908152650979f2de74d67ff71d9c9d382ad2b08ec796f6e41f043b715472ea4ff44c87d1d333e3cdf8995b8190556040805191825251600080516020620047dc833981519152929181900390910190a373bafc492638a2ec4f89aff258c8f18f806a844d72600081815260166020908152645c5b0174f77fae9f2e23915fde656653d26d24756d84acc7910b4c160171968db7bd239f19558190556040805191825251600080516020620047dc833981519152929181900390910190a3732f0d5a1d6bb5d7eaa0eaad39518621911a4a1d9f600081815260166020908152640a9ec35a1d7f5d3627e1eb343a3bd2711d27d157d4bd133fa66e23c5d07b4f6492482297822d8190556040805191825251600080516020620047dc833981519152929181900390910190a373ae5910c6f3cd709bf497bae2b8eae8cf983aca1b6000818152601660209081526482c9aa34bf7f2d361b23d4c4c3a6d7642ed6abdca5523336cb913f937d0f62c6dc982a26062b8190556040805191825251600080516020620047dc833981519152929181900390910190a373b963db36d28468ce64bce65e560e5f27e75f2f50600081815260166020908152640bc1e733d57f0a44a4fcba93ed76c2e9808cef14ba0836afef991e2880b81059c7ce32a501938190556040805191825251600080516020620047dc833981519152929181900390910190a3737134161b9e6fa84d62f156037870ee77fa50f607600081815260166020908152620c4fa97fa50090065bf08d32796a6ca2e3e4dee5cebf932bf76872851df1a3e66b6f3ba68190556040805191825251600080516020620047dc833981519152929181900390910190a373111fd8a12981d1174cfa8eef3b0141b3d5d4e5b360008181526016602090815264012b6ab5347f6a2637cb0e7f43e7f1c2224525a7f77491b8fe9bb5de62ce5d2cad237ec2b9e68190556040805191825251600080516020620047dc833981519152929181900390910190a373afaf9a165408737e11191393fe695c1ebc7a5429600081815260166020908152650369396e875c7f9c293625c9a264c7a7bde0656297a932a1bba612b3d1898545f0375d6538afec8190556040805191825251600080516020620047dc833981519152929181900390910190a3735329fcc196c445009aac138b22d25543ed195888600081815260166020908152641d7e2e816e7f7486701bb617dcbebc5398b258970325c24bb8348ac0c2b4f22e53c4e887a1c88190556040805191825251600080516020620047dc833981519152929181900390910190a373a5b3725e37431dc6a103961749cb9c98954202cd6000818152601660209081526467d80cdcea7fbd7b6f88f15404447504781526929a850abafdef66be1cafb2f5cc577d0844bd8190556040805191825251600080516020620047dc833981519152929181900390910190a373b8ab7387076f022c28481fafb28911ce4377e0ea6000818152601660209081526502c5069d360a7f020c5376b9692d68ed780c2e640fdb026b71afc5ba3bdb76b197c0c3a3eda9998190556040805191825251600080516020620047dc833981519152929181900390910190a373d2470aacd96242207f06111819111d17ca055dfb60008181526016602090815264df074a2bed7f54d34bd6dd3ba53d590263c6ab4a030c399285904fa184a474bf39c2d4f9c5be8190556040805191825251600080516020620047dc833981519152929181900390910190a3731fca39ed4f19edd12eb274dc467c099eb5106a136000818152601660209081526440e7080a127f5e6e50db336bfee985e9c6d6cc6f51d8c00b1b668f854c701ed6ede3bff754f48190556040805191825251600080516020620047dc833981519152929181900390910190a3738d12a197cb00d4747a1fe03395095ce2a5cc681960008181526016602090815265045085a0167d7faa57e725b03ee30bd9929e7c5cb07b5157f1efcc3e0c0598d541306199a154398190556040805191825251600080516020620047dc833981519152929181900390910190a3732a23527a6dbafae390514686d50f47747d01e44d6000818152601660209081526497e4b0c6947f4312d4748f84997c86cea6215432593ad3f65c2f38eddf8e03af55f3ba5be02a8190556040805191825251600080516020620047dc833981519152929181900390910190a373371e31169df00563eafab334c738e66dd0476a8f6000818152601660209081526434b52d0f3a7f801992107ef0810cf3a21c489af176e32aecfdbaa6ca4cda0f7bfba2f5bc08e68190556040805191825251600080516020620047dc833981519152929181900390910190a37340ea0a2abc9479e51e411870cafd759cb110c25860008181526016602090815264070cf2d6587f64085a4f5abd0846318b6b6702351536ff596d1583263d93226b5895b8e66e188190556040805191825251600080516020620047dc833981519152929181900390910190a373e585ba86b84283f0f1118041837b06d03b96885e60008181526016602090815262029b277f1a796c7d3cf9a2c52c2b21f7bb9019b7903afab31874e66d6db3e0fe0fde221f8190556040805191825251600080516020620047dc833981519152929181900390910190a373bede88c495132efb90b5039bc2942042e07814df60008181526016602090815264096ecd1d7f7f6ad7ed9241d5020af61eaa11fb69745b4f7b4ae226fdc31d6bc552304fb0ffdc8190556040805191825251600080516020620047dc833981519152929181900390910190a362002f19565b600080821162002e6057600080fd5b818381151562002e6c57fe5b049392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062002eb757805160ff191683800117855562002ee7565b8280016001018555821562002ee7579182015b8281111562002ee757825182559160200191906001019062002eca565b5062002ef592915062002ef9565b5090565b62002f1691905b8082111562002ef5576000815560010162002f00565b90565b6118b38062002f296000396000f3006080604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101fd578063095ea7b314610287578063163aa00d146102bf57806317da485f146102e65780631801fbe5146102fb57806318160ddd1461031657806323b872dd1461032b5780632d38bf7a14610355578063313ce5671461036a57806332e99708146103955780633eaaf86b146103aa57806348c54b9d146103bf578063490203a7146103d65780634ef37628146103eb5780634fa972e1146104005780636de9f32b146104155780636fd396d61461042a57806370a082311461045b57806378dbce5f1461047c57806379ba50971461049157806381269a56146104a6578063829965cc146104c757806387a2a9d6146104dc5780638a769d35146104f15780638ae0368b146105065780638da5cb5b1461051b57806395d89b411461053057806397566aa014610545578063a9059cbb14610563578063a9d04bd814610587578063b5ade81b146105ab578063bafedcaa146105c0578063cae9ca51146105d5578063cb9ae7071461063e578063d4ee1d9014610653578063dc39d06d14610668578063dc6e9cf91461068c578063dd62ed3e146106a1578063de43844b146106c8578063f2fde38b146106e0578063ff67c9f514610701575b600080fd5b34801561020957600080fd5b50610212610722565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024c578181015183820152602001610234565b50505050905090810190601f1680156102795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029357600080fd5b506102ab600160a060020a03600435166024356107b0565b604080519115158252519081900360200190f35b3480156102cb57600080fd5b506102d4610817565b60408051918252519081900360200190f35b3480156102f257600080fd5b506102d461081d565b34801561030757600080fd5b506102ab60043560243561083b565b34801561032257600080fd5b506102d46109d4565b34801561033757600080fd5b506102ab600160a060020a03600435811690602435166044356109da565b34801561036157600080fd5b506102d4610b05565b34801561037657600080fd5b5061037f610b0b565b6040805160ff9092168252519081900360200190f35b3480156103a157600080fd5b506102d4610b14565b3480156103b657600080fd5b506102d4610b1a565b3480156103cb57600080fd5b506103d4610b20565b005b3480156103e257600080fd5b506102d4610b3d565b3480156103f757600080fd5b506102d4610b5c565b34801561040c57600080fd5b506102d4610b62565b34801561042157600080fd5b506102d4610b68565b34801561043657600080fd5b5061043f610b6e565b60408051600160a060020a039092168252519081900360200190f35b34801561046757600080fd5b506102d4600160a060020a0360043516610b7d565b34801561048857600080fd5b506102d4610ba9565b34801561049d57600080fd5b506103d4610be3565b3480156104b257600080fd5b506102ab600435602435604435606435610c6b565b3480156104d357600080fd5b506102d4610cb5565b3480156104e857600080fd5b506102d4610cbb565b3480156104fd57600080fd5b506102d4610cc1565b34801561051257600080fd5b506102d4610cc7565b34801561052757600080fd5b5061043f610ccd565b34801561053c57600080fd5b50610212610cdc565b34801561055157600080fd5b506102d4600435602435604435610d34565b34801561056f57600080fd5b506102ab600160a060020a0360043516602435610d69565b34801561059357600080fd5b506102d4600160a060020a0360043516602435610e3b565b3480156105b757600080fd5b506102d4610e71565b3480156105cc57600080fd5b506102d4610e77565b3480156105e157600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102ab948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610e7d9650505050505050565b34801561064a57600080fd5b506102d4610fde565b34801561065f57600080fd5b5061043f610fe4565b34801561067457600080fd5b506102ab600160a060020a0360043516602435610ff3565b34801561069857600080fd5b506102d46110ae565b3480156106ad57600080fd5b506102d4600160a060020a03600435811690602435166110b4565b3480156106d457600080fd5b506102d46004356110df565b3480156106ec57600080fd5b506103d4600160a060020a03600435166111c3565b34801561070d57600080fd5b506102d4600160a060020a0360043516611209565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a85780601f1061077d576101008083540402835291602001916107a8565b820191906000526020600020905b81548152906001019060200180831161078b57829003601f168201915b505050505081565b336000818152601760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60115481565b6000610836600b54600a546112aa90919063ffffffff16565b905090565b600c54604080519182526c01000000000000000000000000330260208301526034820184905251908190036054019020600090818084831461087c57600080fd5b600b5483111561088b57600080fd5b600c546000908152601360205260409020805490849055915081156108af57600080fd5b6108b8336112c3565b3360009081526018602052604090204290556108d2610b3d565b336000908152601660205260409020549091506108f5908263ffffffff6113f416565b33600090815260166020526040902055601454610918908263ffffffff6113f416565b6014819055600e54101561092857fe5b600f805473ffffffffffffffffffffffffffffffffffffffff191633179055601081905543601155610958611404565b600754600c54604080518481526020810193909352828101919091525133917fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d919081900360600190a260408051828152905133916000916000805160206118688339815191529181900360200190a350600195945050505050565b60055490565b60006109e5846112c3565b6109ee836112c3565b600160a060020a038085166000818152601860209081526040808320429081905594881683528083209490945591815260169091522054610a35908363ffffffff6114a516565b600160a060020a0385166000908152601660209081526040808320939093556017815282822033835290522054610a72908363ffffffff6114a516565b600160a060020a038086166000908152601760209081526040808320338452825280832094909455918616815260169091522054610ab6908363ffffffff6113f416565b600160a060020a03808516600081815260166020908152604091829020949094558051868152905191939288169260008051602061186883398151915292918290030190a35060019392505050565b600d5481565b60045460ff1681565b600b5490565b60055481565b610b29336112c3565b336000908152601860205260409020429055565b600d546004546000916108369160ff16600a0a6032029060020a6112aa565b600c5490565b600e5481565b60145481565b600f54600160a060020a031681565b6000610b88826114ba565b600160a060020a038316600090815260166020526040902054019050919050565b6000604060020a610bd0601954604060020a426015540302811515610bca57fe5b056110df565b601a5402811515610bdd57fe5b04905090565b600154600160a060020a03163314610bfa57600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b604080518381526c010000000000000000000000003302602082015260348101869052905190819003605401902060009082811115610ca957600080fd5b93909314949350505050565b60075481565b600a5481565b600b5481565b600c5481565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107a85780601f1061077d576101008083540402835291602001916107a8565b604080518281526c01000000000000000000000000330260208201526034810185905290519081900360540190209392505050565b6000610d74336112c3565b610d7d836112c3565b3360008181526018602090815260408083204290819055600160a060020a038816845281842055928252601690522054610dbd908363ffffffff6114a516565b3360009081526016602052604080822092909255600160a060020a03851681522054610def908363ffffffff6113f416565b600160a060020a0384166000818152601660209081526040918290209390935580518581529051919233926000805160206118688339815191529281900390910190a350600192915050565b6000604060020a610e5c601954604060020a856015540302811515610bca57fe5b601a5402811515610e6957fe5b049392505050565b60085481565b60105481565b336000818152601760209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015610f6d578181015183820152602001610f55565b50505050905090810190601f168015610f9a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610fbc57600080fd5b505af1158015610fd0573d6000803e3d6000fd5b506001979650505050505050565b60065481565b600154600160a060020a031681565b60008054600160a060020a0316331461100b57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b505050506040513d60208110156110a557600080fd5b50519392505050565b60095481565b600160a060020a03918216600090815260176020908152604080832093909416825291909152205490565b6000808080604067b17217f7d1cf79ac682cb53f09f05cc627c887010503925067b17217f7d1cf79ac830285039450604060020a85860281151561111f57fe5b059150604060020a672aaaaaaaaa015db0660455956bccdd06651b893ad04b3919850283900501840282900566b60b60808399d01901840282900501830205604060020a600202019050848103604060020a8683010281151561117e57fe5b059350600083126111a2578284600082121561119657fe5b9060020a0293506111bb565b826000038460008212156111b257fe5b9060020a900493505b505050919050565b600054600160a060020a031633146111da57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260166020526040812054604060020a8280808085151561123c57600019965061129f565b600160a060020a03881660009081526018602052604090205493508315156112645760155493505b611280601a54604060020a880281151561127a57fe5b0461160b565b601954909350604060020a908402059150816000039050601554810196505b505050505050919050565b60008082116112b857600080fd5b8183811515610e6957fe5b600160a060020a038116600090815260186020526040812054151561130b57600160a060020a03821660009081526016602052604081205411156113065761130b565b6113f0565b600160a060020a038216600090815260186020526040902054421415611330576113f0565b611339826114ba565b905060008111156113c057600160a060020a03821660009081526016602052604090205461136d908263ffffffff6113f416565b600160a060020a038316600081815260166020908152604091829020939093558051848152905191927fb6ca79c9847e64c21032ebeea3266417e6a012de32b21df76a8ab204edcb953392918290030190a25b604080518281529051600160a060020a038416916000916000805160206118688339815191529181900360200190a35b5050565b8181018281101561081157600080fd5b600e54611421611412610b3d565b6014549063ffffffff6113f416565b11801561143057506027600d54105b1561143f57600d805460010190555b600d5460055461145a9160010160140a63ffffffff6112aa16565b600554600a900403600e5560075461147990600163ffffffff6113f416565b60078190556008549081151561148b57fe5b06151561149a5761149a6116f0565b600019430140600c55565b6000828211156114b457600080fd5b50900390565b600080600080600080600080601660008a600160a060020a0316600160a060020a0316815260200190815260200160002054600014156114fd57600097506115ff565b600160a060020a038916600090815260186020526040902054604060020a9750955085151561152c5760155495505b6115368987610e3b565b600160a060020a038a1660009081526016602052604090205410156115795761155e89611209565b94508442111561157057849550611579565b600097506115ff565b601b548787601554030281151561158c57fe5b059350611598846110df565b9250601b54874260155403028115156115ad57fe5b0593506115b9846110df565b600160a060020a038a16600090815260166020526040902054909250604060020a906115eb858563ffffffff6114a516565b600902028115156115f857fe5b0490508097505b50505050505050919050565b60008080805b68016a09e667f3bcc90885111561163357600285049450600190920191611611565b5b67b504f333f9de64848511611656576002949094029360001990920191611634565b604060020a8501604060020a8087030281151561166f57fe5b05915050604060020a818002819005906801ffffffffff9dac9b67666664e5e9fa0c996738bd75ed37753d68673284a0c14610924f85028490050184028390056749254026a7630acf01840283900501830282900567aaaaaaac168779080183028290050183020567b17217f7d1cf79ac8460030b02019350505050919050565b600654600854439190910390603c81026000808080848710156117965761172e8761172287606463ffffffff61182a16565b9063ffffffff6112aa16565b93506117536103e861174786606463ffffffff6114a516565b9063ffffffff61184f16565b925061178e61177f846117736107d0600b546112aa90919063ffffffff16565b9063ffffffff61182a16565b600b549063ffffffff6114a516565b600b556117f7565b6117ab8561172289606463ffffffff61182a16565b91506117c46103e861174784606463ffffffff6114a516565b90506117f36117e4826117736107d0600b546112aa90919063ffffffff16565b600b549063ffffffff6113f416565b600b555b43600655600954600b54101561180e57600954600b555b600a54600b54111561182157600a54600b555b50505050505050565b818102821580611844575081838281151561184157fe5b04145b151561081157600080fd5b600081831115611860575080610811565b50909190505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d0ba7f7ed2eadd4840dbb112646dfd1d303c6a346decb8cea12c3dd076c576890029ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
Deployed Bytecode
0x6080604052600436106101f85763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101fd578063095ea7b314610287578063163aa00d146102bf57806317da485f146102e65780631801fbe5146102fb57806318160ddd1461031657806323b872dd1461032b5780632d38bf7a14610355578063313ce5671461036a57806332e99708146103955780633eaaf86b146103aa57806348c54b9d146103bf578063490203a7146103d65780634ef37628146103eb5780634fa972e1146104005780636de9f32b146104155780636fd396d61461042a57806370a082311461045b57806378dbce5f1461047c57806379ba50971461049157806381269a56146104a6578063829965cc146104c757806387a2a9d6146104dc5780638a769d35146104f15780638ae0368b146105065780638da5cb5b1461051b57806395d89b411461053057806397566aa014610545578063a9059cbb14610563578063a9d04bd814610587578063b5ade81b146105ab578063bafedcaa146105c0578063cae9ca51146105d5578063cb9ae7071461063e578063d4ee1d9014610653578063dc39d06d14610668578063dc6e9cf91461068c578063dd62ed3e146106a1578063de43844b146106c8578063f2fde38b146106e0578063ff67c9f514610701575b600080fd5b34801561020957600080fd5b50610212610722565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024c578181015183820152602001610234565b50505050905090810190601f1680156102795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029357600080fd5b506102ab600160a060020a03600435166024356107b0565b604080519115158252519081900360200190f35b3480156102cb57600080fd5b506102d4610817565b60408051918252519081900360200190f35b3480156102f257600080fd5b506102d461081d565b34801561030757600080fd5b506102ab60043560243561083b565b34801561032257600080fd5b506102d46109d4565b34801561033757600080fd5b506102ab600160a060020a03600435811690602435166044356109da565b34801561036157600080fd5b506102d4610b05565b34801561037657600080fd5b5061037f610b0b565b6040805160ff9092168252519081900360200190f35b3480156103a157600080fd5b506102d4610b14565b3480156103b657600080fd5b506102d4610b1a565b3480156103cb57600080fd5b506103d4610b20565b005b3480156103e257600080fd5b506102d4610b3d565b3480156103f757600080fd5b506102d4610b5c565b34801561040c57600080fd5b506102d4610b62565b34801561042157600080fd5b506102d4610b68565b34801561043657600080fd5b5061043f610b6e565b60408051600160a060020a039092168252519081900360200190f35b34801561046757600080fd5b506102d4600160a060020a0360043516610b7d565b34801561048857600080fd5b506102d4610ba9565b34801561049d57600080fd5b506103d4610be3565b3480156104b257600080fd5b506102ab600435602435604435606435610c6b565b3480156104d357600080fd5b506102d4610cb5565b3480156104e857600080fd5b506102d4610cbb565b3480156104fd57600080fd5b506102d4610cc1565b34801561051257600080fd5b506102d4610cc7565b34801561052757600080fd5b5061043f610ccd565b34801561053c57600080fd5b50610212610cdc565b34801561055157600080fd5b506102d4600435602435604435610d34565b34801561056f57600080fd5b506102ab600160a060020a0360043516602435610d69565b34801561059357600080fd5b506102d4600160a060020a0360043516602435610e3b565b3480156105b757600080fd5b506102d4610e71565b3480156105cc57600080fd5b506102d4610e77565b3480156105e157600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526102ab948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610e7d9650505050505050565b34801561064a57600080fd5b506102d4610fde565b34801561065f57600080fd5b5061043f610fe4565b34801561067457600080fd5b506102ab600160a060020a0360043516602435610ff3565b34801561069857600080fd5b506102d46110ae565b3480156106ad57600080fd5b506102d4600160a060020a03600435811690602435166110b4565b3480156106d457600080fd5b506102d46004356110df565b3480156106ec57600080fd5b506103d4600160a060020a03600435166111c3565b34801561070d57600080fd5b506102d4600160a060020a0360043516611209565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107a85780601f1061077d576101008083540402835291602001916107a8565b820191906000526020600020905b81548152906001019060200180831161078b57829003601f168201915b505050505081565b336000818152601760209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b60115481565b6000610836600b54600a546112aa90919063ffffffff16565b905090565b600c54604080519182526c01000000000000000000000000330260208301526034820184905251908190036054019020600090818084831461087c57600080fd5b600b5483111561088b57600080fd5b600c546000908152601360205260409020805490849055915081156108af57600080fd5b6108b8336112c3565b3360009081526018602052604090204290556108d2610b3d565b336000908152601660205260409020549091506108f5908263ffffffff6113f416565b33600090815260166020526040902055601454610918908263ffffffff6113f416565b6014819055600e54101561092857fe5b600f805473ffffffffffffffffffffffffffffffffffffffff191633179055601081905543601155610958611404565b600754600c54604080518481526020810193909352828101919091525133917fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d919081900360600190a260408051828152905133916000916000805160206118688339815191529181900360200190a350600195945050505050565b60055490565b60006109e5846112c3565b6109ee836112c3565b600160a060020a038085166000818152601860209081526040808320429081905594881683528083209490945591815260169091522054610a35908363ffffffff6114a516565b600160a060020a0385166000908152601660209081526040808320939093556017815282822033835290522054610a72908363ffffffff6114a516565b600160a060020a038086166000908152601760209081526040808320338452825280832094909455918616815260169091522054610ab6908363ffffffff6113f416565b600160a060020a03808516600081815260166020908152604091829020949094558051868152905191939288169260008051602061186883398151915292918290030190a35060019392505050565b600d5481565b60045460ff1681565b600b5490565b60055481565b610b29336112c3565b336000908152601860205260409020429055565b600d546004546000916108369160ff16600a0a6032029060020a6112aa565b600c5490565b600e5481565b60145481565b600f54600160a060020a031681565b6000610b88826114ba565b600160a060020a038316600090815260166020526040902054019050919050565b6000604060020a610bd0601954604060020a426015540302811515610bca57fe5b056110df565b601a5402811515610bdd57fe5b04905090565b600154600160a060020a03163314610bfa57600080fd5b60015460008054604051600160a060020a0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b604080518381526c010000000000000000000000003302602082015260348101869052905190819003605401902060009082811115610ca957600080fd5b93909314949350505050565b60075481565b600a5481565b600b5481565b600c5481565b600054600160a060020a031681565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107a85780601f1061077d576101008083540402835291602001916107a8565b604080518281526c01000000000000000000000000330260208201526034810185905290519081900360540190209392505050565b6000610d74336112c3565b610d7d836112c3565b3360008181526018602090815260408083204290819055600160a060020a038816845281842055928252601690522054610dbd908363ffffffff6114a516565b3360009081526016602052604080822092909255600160a060020a03851681522054610def908363ffffffff6113f416565b600160a060020a0384166000818152601660209081526040918290209390935580518581529051919233926000805160206118688339815191529281900390910190a350600192915050565b6000604060020a610e5c601954604060020a856015540302811515610bca57fe5b601a5402811515610e6957fe5b049392505050565b60085481565b60105481565b336000818152601760209081526040808320600160a060020a038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a36040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018690523060448401819052608060648501908152865160848601528651600160a060020a038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b83811015610f6d578181015183820152602001610f55565b50505050905090810190601f168015610f9a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610fbc57600080fd5b505af1158015610fd0573d6000803e3d6000fd5b506001979650505050505050565b60065481565b600154600160a060020a031681565b60008054600160a060020a0316331461100b57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0392831660048201526024810186905290519186169263a9059cbb926044808401936020939083900390910190829087803b15801561107b57600080fd5b505af115801561108f573d6000803e3d6000fd5b505050506040513d60208110156110a557600080fd5b50519392505050565b60095481565b600160a060020a03918216600090815260176020908152604080832093909416825291909152205490565b6000808080604067b17217f7d1cf79ac682cb53f09f05cc627c887010503925067b17217f7d1cf79ac830285039450604060020a85860281151561111f57fe5b059150604060020a672aaaaaaaaa015db0660455956bccdd06651b893ad04b3919850283900501840282900566b60b60808399d01901840282900501830205604060020a600202019050848103604060020a8683010281151561117e57fe5b059350600083126111a2578284600082121561119657fe5b9060020a0293506111bb565b826000038460008212156111b257fe5b9060020a900493505b505050919050565b600054600160a060020a031633146111da57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a038116600090815260166020526040812054604060020a8280808085151561123c57600019965061129f565b600160a060020a03881660009081526018602052604090205493508315156112645760155493505b611280601a54604060020a880281151561127a57fe5b0461160b565b601954909350604060020a908402059150816000039050601554810196505b505050505050919050565b60008082116112b857600080fd5b8183811515610e6957fe5b600160a060020a038116600090815260186020526040812054151561130b57600160a060020a03821660009081526016602052604081205411156113065761130b565b6113f0565b600160a060020a038216600090815260186020526040902054421415611330576113f0565b611339826114ba565b905060008111156113c057600160a060020a03821660009081526016602052604090205461136d908263ffffffff6113f416565b600160a060020a038316600081815260166020908152604091829020939093558051848152905191927fb6ca79c9847e64c21032ebeea3266417e6a012de32b21df76a8ab204edcb953392918290030190a25b604080518281529051600160a060020a038416916000916000805160206118688339815191529181900360200190a35b5050565b8181018281101561081157600080fd5b600e54611421611412610b3d565b6014549063ffffffff6113f416565b11801561143057506027600d54105b1561143f57600d805460010190555b600d5460055461145a9160010160140a63ffffffff6112aa16565b600554600a900403600e5560075461147990600163ffffffff6113f416565b60078190556008549081151561148b57fe5b06151561149a5761149a6116f0565b600019430140600c55565b6000828211156114b457600080fd5b50900390565b600080600080600080600080601660008a600160a060020a0316600160a060020a0316815260200190815260200160002054600014156114fd57600097506115ff565b600160a060020a038916600090815260186020526040902054604060020a9750955085151561152c5760155495505b6115368987610e3b565b600160a060020a038a1660009081526016602052604090205410156115795761155e89611209565b94508442111561157057849550611579565b600097506115ff565b601b548787601554030281151561158c57fe5b059350611598846110df565b9250601b54874260155403028115156115ad57fe5b0593506115b9846110df565b600160a060020a038a16600090815260166020526040902054909250604060020a906115eb858563ffffffff6114a516565b600902028115156115f857fe5b0490508097505b50505050505050919050565b60008080805b68016a09e667f3bcc90885111561163357600285049450600190920191611611565b5b67b504f333f9de64848511611656576002949094029360001990920191611634565b604060020a8501604060020a8087030281151561166f57fe5b05915050604060020a818002819005906801ffffffffff9dac9b67666664e5e9fa0c996738bd75ed37753d68673284a0c14610924f85028490050184028390056749254026a7630acf01840283900501830282900567aaaaaaac168779080183028290050183020567b17217f7d1cf79ac8460030b02019350505050919050565b600654600854439190910390603c81026000808080848710156117965761172e8761172287606463ffffffff61182a16565b9063ffffffff6112aa16565b93506117536103e861174786606463ffffffff6114a516565b9063ffffffff61184f16565b925061178e61177f846117736107d0600b546112aa90919063ffffffff16565b9063ffffffff61182a16565b600b549063ffffffff6114a516565b600b556117f7565b6117ab8561172289606463ffffffff61182a16565b91506117c46103e861174784606463ffffffff6114a516565b90506117f36117e4826117736107d0600b546112aa90919063ffffffff16565b600b549063ffffffff6113f416565b600b555b43600655600954600b54101561180e57600954600b555b600a54600b54111561182157600a54600b555b50505050505050565b818102821580611844575081838281151561184157fe5b04145b151561081157600080fd5b600081831115611860575080610811565b50909190505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d0ba7f7ed2eadd4840dbb112646dfd1d303c6a346decb8cea12c3dd076c576890029
Swarm Source
bzzr://d0ba7f7ed2eadd4840dbb112646dfd1d303c6a346decb8cea12c3dd076c57689
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.