Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 5 from a total of 5 transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xC8ABbe9b...7847e31B0 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Betting
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-09-01 */ pragma solidity ^0.4.20; pragma solidity ^0.4.21; library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } interface P3DTakeout { function buyTokens() external payable; } contract Betting{ using SafeMath for uint256; //using safemath address public owner; //owner address address house_takeout = 0xf783A81F046448c38f3c863885D9e99D10209779; P3DTakeout P3DContract_; uint public winnerPoolTotal; string public constant version = "0.2.4"; struct chronus_info { bool betting_open; // boolean: check if betting is open bool race_start; //boolean: check if race has started bool race_end; //boolean: check if race has ended bool voided_bet; //boolean: check if race has been voided uint32 starting_time; // timestamp of when the race starts uint32 betting_duration; uint32 race_duration; // duration of the race uint32 voided_timestamp; } struct horses_info{ int64 BTC_delta; //horses.BTC delta value int64 ETH_delta; //horses.ETH delta value int64 LTC_delta; //horses.LTC delta value bytes32 BTC; //32-bytes equivalent of horses.BTC bytes32 ETH; //32-bytes equivalent of horses.ETH bytes32 LTC; //32-bytes equivalent of horses.LTC } struct bet_info{ bytes32 horse; // coin on which amount is bet on uint amount; // amount bet by Bettor } struct coin_info{ uint256 pre; // locking price uint256 post; // ending price uint160 total; // total coin pool uint32 count; // number of bets bool price_check; } struct voter_info { uint160 total_bet; //total amount of bet placed bool rewarded; // boolean: check for double spending mapping(bytes32=>uint) bets; //array of bets } mapping (bytes32 => coin_info) public coinIndex; // mapping coins with pool information mapping (address => voter_info) voterIndex; // mapping voter address with Bettor information uint public total_reward; // total reward to be awarded uint32 total_bettors; mapping (bytes32 => bool) public winner_horse; // tracking events event Deposit(address _from, uint256 _value, bytes32 _horse, uint256 _date); event Withdraw(address _to, uint256 _value); event PriceCallback(bytes32 coin_pointer, uint256 result, bool isPrePrice); event RefundEnabled(string reason); // constructor constructor() public payable { owner = msg.sender; horses.BTC = bytes32("BTC"); horses.ETH = bytes32("ETH"); horses.LTC = bytes32("LTC"); P3DContract_ = P3DTakeout(0x72b2670e55139934D6445348DC6EaB4089B12576); } // data access structures horses_info public horses; chronus_info public chronus; // modifiers for restricting access to methods modifier onlyOwner { require(owner == msg.sender); _; } modifier duringBetting { require(chronus.betting_open); require(now < chronus.starting_time + chronus.betting_duration); _; } modifier beforeBetting { require(!chronus.betting_open && !chronus.race_start); _; } modifier afterRace { require(chronus.race_end); _; } //function to change owner function changeOwnership(address _newOwner) onlyOwner external { require(now > chronus.starting_time + chronus.race_duration + 60 minutes); owner = _newOwner; } function priceCallback (bytes32 coin_pointer, uint256 result, bool isPrePrice ) external onlyOwner { require (!chronus.race_end); emit PriceCallback(coin_pointer, result, isPrePrice); chronus.race_start = true; chronus.betting_open = false; if (isPrePrice) { if (now >= chronus.starting_time+chronus.betting_duration+ 60 minutes) { emit RefundEnabled("Late start price"); forceVoidRace(); } else { coinIndex[coin_pointer].pre = result; } } else if (!isPrePrice){ if (coinIndex[coin_pointer].pre > 0 ){ if (now >= chronus.starting_time+chronus.race_duration+ 60 minutes) { emit RefundEnabled("Late end price"); forceVoidRace(); } else { coinIndex[coin_pointer].post = result; coinIndex[coin_pointer].price_check = true; if (coinIndex[horses.ETH].price_check && coinIndex[horses.BTC].price_check && coinIndex[horses.LTC].price_check) { reward(); } } } else { emit RefundEnabled("End price came before start price"); forceVoidRace(); } } } // place a bet on a coin(horse) lockBetting function placeBet(bytes32 horse) external duringBetting payable { require(msg.value >= 0.01 ether); if (voterIndex[msg.sender].total_bet==0) { total_bettors+=1; } uint _newAmount = voterIndex[msg.sender].bets[horse] + msg.value; voterIndex[msg.sender].bets[horse] = _newAmount; voterIndex[msg.sender].total_bet += uint160(msg.value); uint160 _newTotal = coinIndex[horse].total + uint160(msg.value); uint32 _newCount = coinIndex[horse].count + 1; coinIndex[horse].total = _newTotal; coinIndex[horse].count = _newCount; emit Deposit(msg.sender, msg.value, horse, now); } // fallback method for accepting payments function () private payable {} // method to place the oraclize queries function setupRace(uint32 _bettingDuration, uint32 _raceDuration) onlyOwner beforeBetting external payable { chronus.starting_time = uint32(block.timestamp); chronus.betting_open = true; chronus.betting_duration = _bettingDuration; chronus.race_duration = _raceDuration; } // method to calculate reward (called internally by callback) function reward() internal { /* calculating the difference in price with a precision of 5 digits not using safemath since signed integers are handled */ horses.BTC_delta = int64(coinIndex[horses.BTC].post - coinIndex[horses.BTC].pre)*100000/int64(coinIndex[horses.BTC].pre); horses.ETH_delta = int64(coinIndex[horses.ETH].post - coinIndex[horses.ETH].pre)*100000/int64(coinIndex[horses.ETH].pre); horses.LTC_delta = int64(coinIndex[horses.LTC].post - coinIndex[horses.LTC].pre)*100000/int64(coinIndex[horses.LTC].pre); total_reward = (coinIndex[horses.BTC].total) + (coinIndex[horses.ETH].total) + (coinIndex[horses.LTC].total); if (total_bettors <= 1) { emit RefundEnabled("Not enough participants"); forceVoidRace(); } else { // house takeout uint house_fee = total_reward.mul(5).div(100); require(house_fee < address(this).balance); total_reward = total_reward.sub(house_fee); house_takeout.transfer(house_fee); // p3d takeout uint p3d_fee = house_fee/2; require(p3d_fee < address(this).balance); total_reward = total_reward.sub(p3d_fee); P3DContract_.buyTokens.value(p3d_fee)(); } if (horses.BTC_delta > horses.ETH_delta) { if (horses.BTC_delta > horses.LTC_delta) { winner_horse[horses.BTC] = true; winnerPoolTotal = coinIndex[horses.BTC].total; } else if(horses.LTC_delta > horses.BTC_delta) { winner_horse[horses.LTC] = true; winnerPoolTotal = coinIndex[horses.LTC].total; } else { winner_horse[horses.BTC] = true; winner_horse[horses.LTC] = true; winnerPoolTotal = coinIndex[horses.BTC].total + (coinIndex[horses.LTC].total); } } else if(horses.ETH_delta > horses.BTC_delta) { if (horses.ETH_delta > horses.LTC_delta) { winner_horse[horses.ETH] = true; winnerPoolTotal = coinIndex[horses.ETH].total; } else if (horses.LTC_delta > horses.ETH_delta) { winner_horse[horses.LTC] = true; winnerPoolTotal = coinIndex[horses.LTC].total; } else { winner_horse[horses.ETH] = true; winner_horse[horses.LTC] = true; winnerPoolTotal = coinIndex[horses.ETH].total + (coinIndex[horses.LTC].total); } } else { if (horses.LTC_delta > horses.ETH_delta) { winner_horse[horses.LTC] = true; winnerPoolTotal = coinIndex[horses.LTC].total; } else if(horses.LTC_delta < horses.ETH_delta){ winner_horse[horses.ETH] = true; winner_horse[horses.BTC] = true; winnerPoolTotal = coinIndex[horses.ETH].total + (coinIndex[horses.BTC].total); } else { winner_horse[horses.LTC] = true; winner_horse[horses.ETH] = true; winner_horse[horses.BTC] = true; winnerPoolTotal = coinIndex[horses.ETH].total + (coinIndex[horses.BTC].total) + (coinIndex[horses.LTC].total); } } chronus.race_end = true; } // method to calculate an invidual's reward function calculateReward(address candidate) internal afterRace constant returns(uint winner_reward) { voter_info storage bettor = voterIndex[candidate]; if(chronus.voided_bet) { winner_reward = bettor.total_bet; } else { uint winning_bet_total; if(winner_horse[horses.BTC]) { winning_bet_total += bettor.bets[horses.BTC]; } if(winner_horse[horses.ETH]) { winning_bet_total += bettor.bets[horses.ETH]; } if(winner_horse[horses.LTC]) { winning_bet_total += bettor.bets[horses.LTC]; } winner_reward += (((total_reward.mul(10000000)).div(winnerPoolTotal)).mul(winning_bet_total)).div(10000000); } } // method to just check the reward amount function checkReward() afterRace external constant returns (uint) { require(!voterIndex[msg.sender].rewarded); return calculateReward(msg.sender); } // method to claim the reward amount function claim_reward() afterRace external { require(!voterIndex[msg.sender].rewarded); uint transfer_amount = calculateReward(msg.sender); require(address(this).balance >= transfer_amount); voterIndex[msg.sender].rewarded = true; msg.sender.transfer(transfer_amount); emit Withdraw(msg.sender, transfer_amount); } function forceVoidRace() internal { require(!chronus.voided_bet); chronus.voided_bet=true; chronus.race_end = true; chronus.voided_timestamp=uint32(now); } //this methohd can only be called by controller contract in case of timestamp errors function forceVoidExternal() external onlyOwner { forceVoidRace(); emit RefundEnabled("Inaccurate price timestamp"); } // exposing the coin pool details for DApp function getCoinIndex(bytes32 index, address candidate) external constant returns (uint, uint, uint, bool, uint) { uint256 coinPrePrice; uint256 coinPostPrice; if (coinIndex[horses.ETH].pre > 0 && coinIndex[horses.BTC].pre > 0 && coinIndex[horses.LTC].pre > 0) { coinPrePrice = coinIndex[index].pre; } if (coinIndex[horses.ETH].post > 0 && coinIndex[horses.BTC].post > 0 && coinIndex[horses.LTC].post > 0) { coinPostPrice = coinIndex[index].post; } return (coinIndex[index].total, coinPrePrice, coinPostPrice, coinIndex[index].price_check, voterIndex[candidate].bets[index]); } // exposing the total reward amount for DApp function reward_total() external constant returns (uint) { return ((coinIndex[horses.BTC].total) + (coinIndex[horses.ETH].total) + (coinIndex[horses.LTC].total)); } function getChronus() external view returns (uint32[]) { uint32[] memory chronusData = new uint32[](3); chronusData[0] = chronus.starting_time; chronusData[1] = chronus.betting_duration; chronusData[2] = chronus.race_duration; return (chronusData); // return (chronus.starting_time, chronus.betting_duration ,chronus.race_duration); } // in case of any errors in race, enable full refund for the Bettors to claim function refund() external onlyOwner { require(now > chronus.starting_time + chronus.race_duration + 60 minutes); require((chronus.betting_open && !chronus.race_start) || (chronus.race_start && !chronus.race_end)); chronus.voided_bet = true; chronus.race_end = true; chronus.voided_timestamp=uint32(now); } // method to claim unclaimed winnings after 30 day notice period function recovery() external onlyOwner{ require((chronus.race_end && now > chronus.starting_time + chronus.race_duration + (30 days)) || (chronus.voided_bet && now > chronus.voided_timestamp + (30 days))); house_takeout.transfer(address(this).balance); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"horse","type":"bytes32"}],"name":"placeBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"claim_reward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"winner_horse","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"coin_pointer","type":"bytes32"},{"name":"result","type":"uint256"},{"name":"isPrePrice","type":"bool"}],"name":"priceCallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"winnerPoolTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"horses","outputs":[{"name":"BTC_delta","type":"int64"},{"name":"ETH_delta","type":"int64"},{"name":"LTC_delta","type":"int64"},{"name":"BTC","type":"bytes32"},{"name":"ETH","type":"bytes32"},{"name":"LTC","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"forceVoidExternal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getChronus","outputs":[{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"bytes32"},{"name":"candidate","type":"address"}],"name":"getCoinIndex","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chronus","outputs":[{"name":"betting_open","type":"bool"},{"name":"race_start","type":"bool"},{"name":"race_end","type":"bool"},{"name":"voided_bet","type":"bool"},{"name":"starting_time","type":"uint32"},{"name":"betting_duration","type":"uint32"},{"name":"race_duration","type":"uint32"},{"name":"voided_timestamp","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bettingDuration","type":"uint32"},{"name":"_raceDuration","type":"uint32"}],"name":"setupRace","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reward_total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"checkReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"coinIndex","outputs":[{"name":"pre","type":"uint256"},{"name":"post","type":"uint256"},{"name":"total","type":"uint160"},{"name":"count","type":"uint32"},{"name":"price_check","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_reward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"recovery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"},{"indexed":false,"name":"_horse","type":"bytes32"},{"indexed":false,"name":"_date","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"coin_pointer","type":"bytes32"},{"indexed":false,"name":"result","type":"uint256"},{"indexed":false,"name":"isPrePrice","type":"bool"}],"name":"PriceCallback","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"string"}],"name":"RefundEnabled","type":"event"}]
Deployed Bytecode
0x6080604052600436106101115763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663042b5fed8114610113578063055ee2531461011e5780630f7696441461013357806311dcee2f1461015f57806329114d651461017f5780632af4c31e146101a657806343bddf40146101c75780634564ea361461021e57806354fd4d5014610233578063590e1ae3146102bd5780635ad6ba47146102d25780637274f35b1461033757806384304ee5146103885780638b63c86f146103eb5780638da5cb5b14610402578063aa93038b14610433578063c4b24a4614610448578063d2aed6d71461045d578063d3d2172e146104b0578063ddceafa9146104c5575b005b6101116004356104da565b34801561012a57600080fd5b50610111610675565b34801561013f57600080fd5b5061014b600435610765565b604080519115158252519081900360200190f35b34801561016b57600080fd5b50610111600435602435604435151561077a565b34801561018b57600080fd5b50610194610a7e565b60408051918252519081900360200190f35b3480156101b257600080fd5b50610111600160a060020a0360043516610a84565b3480156101d357600080fd5b506101dc610b04565b60408051600797880b880b815295870b870b602087015293860b90950b848401526060840191909152608083015260a082019290925290519081900360c00190f35b34801561022a57600080fd5b50610111610b36565b34801561023f57600080fd5b50610248610ba5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028257818101518382015260200161026a565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c957600080fd5b50610111610bdc565b3480156102de57600080fd5b506102e7610cc2565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561032357818101518382015260200161030b565b505050509050019250505060405180910390f35b34801561034357600080fd5b5061035b600435600160a060020a0360243516610d8f565b60408051958652602086019490945284840192909252151560608401526080830152519081900360a00190f35b34801561039457600080fd5b5061039d610ebb565b604080519815158952961515602089015294151587870152921515606087015263ffffffff9182166080870152811660a086015290811660c08501521660e083015251908190036101000190f35b61011163ffffffff60043581169060243516610f1d565b34801561040e57600080fd5b50610417610fdb565b60408051600160a060020a039092168252519081900360200190f35b34801561043f57600080fd5b50610194610fea565b34801561045457600080fd5b5061019461102f565b34801561046957600080fd5b5061047560043561107b565b604080519586526020860194909452600160a060020a039092168484015263ffffffff16606084015215156080830152519081900360a00190f35b3480156104bc57600080fd5b506101946110bf565b3480156104d157600080fd5b506101116110c5565b600d546000908190819060ff1615156104f257600080fd5b600d54640100000000810463ffffffff9081166801000000000000000090920481169190910116421061052457600080fd5b662386f26fc1000034101561053857600080fd5b33600090815260056020526040902054600160a060020a03161515610574576007805463ffffffff8082166001011663ffffffff199091161790555b50503360008181526005602090815260408083208684526001808201845282852080543490810191829055835473ffffffffffffffffffffffffffffffffffffffff19808216600160a060020a0392831684018316179095556004875296859020600201805494851685891683019889161777ffffffff0000000000000000000000000000000000000000191660a060020a9586900463ffffffff90811690950194851690950294909417909355835196875293860191909152848201879052426060860152905191945091927f60452eb7177e8d41c9d9fbc4c6e9ccf55a4d44d412355fbf2f02668e0d1a0ce1916080918190039190910190a150505050565b600d5460009062010000900460ff16151561068f57600080fd5b3360009081526005602052604090205460a060020a900460ff16156106b357600080fd5b6106bc3361119f565b905030318111156106cc57600080fd5b33600081815260056020526040808220805474ff0000000000000000000000000000000000000000191660a060020a1790555183156108fc0291849190818181858888f19350505050158015610726573d6000803e3d6000fd5b50604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b60086020526000908152604090205460ff1681565b600054600160a060020a0316331461079157600080fd5b600d5462010000900460ff16156107a757600080fd5b60408051848152602081018490528215158183015290517fde16ef9c49ad256644606beb97130511ba3d64bbd230380f8edd107527e5a9da9181900360600190a1600d805460ff1961ff00199091166101001716905580156108a657600d54610e10640100000000820463ffffffff908116680100000000000000009093048116929092010116421061088f576040805160208082526010908201527f4c61746520737461727420707269636500000000000000000000000000000000818301529051600080516020611a818339815191529181900360600190a161088a6112d9565b6108a1565b60008381526004602052604090208290555b610a79565b801515610a795760008381526004602052604081205411156109fd57600d54610e10640100000000820463ffffffff9081166c010000000000000000000000009093048116929092010116421061094d57604080516020808252600e908201527f4c61746520656e64207072696365000000000000000000000000000000000000818301529051600080516020611a818339815191529181900360600190a161088a6112d9565b600083815260046020526040808220600181018590556002908101805478ff000000000000000000000000000000000000000000000000191660c060020a908117909155600b54845291909220909101540460ff1680156109c95750600a5460009081526004602052604090206002015460c060020a900460ff165b80156109f05750600c5460009081526004602052604090206002015460c060020a900460ff165b156108a1576108a16112f0565b6040805160208082526021908201527f456e642070726963652063616d65206265666f72652073746172742070726963818301527f650000000000000000000000000000000000000000000000000000000000000060608201529051600080516020611a818339815191529181900360800190a1610a796112d9565b505050565b60035481565b600054600160a060020a03163314610a9b57600080fd5b600d54610e10640100000000820463ffffffff9081166c0100000000000000000000000090930481169290920101164211610ad557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600a54600b54600c54600784810b94680100000000000000008104820b94608060020a90910490910b92909186565b600054600160a060020a03163314610b4d57600080fd5b610b556112d9565b604080516020808252601a908201527f496e61636375726174652070726963652074696d657374616d70000000000000818301529051600080516020611a818339815191529181900360600190a1565b60408051808201909152600581527f302e322e34000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a03163314610bf357600080fd5b600d54610e10640100000000820463ffffffff9081166c0100000000000000000000000090930481169290920101164211610c2d57600080fd5b600d5460ff168015610c475750600d54610100900460ff16155b80610c6d5750600d54610100900460ff168015610c6d5750600d5462010000900460ff16155b1515610c7857600080fd5b600d805462010000630100000063ff000000199092169190911762ff000019161773ffffffff000000000000000000000000000000001916608060020a4263ffffffff1602179055565b604080516003808252608082019092526060918291906020820183803883395050600d548251929350640100000000900463ffffffff16918391506000908110610d0857fe5b63ffffffff92831660209182029092010152600d548251680100000000000000009091049091169082906001908110610d3d57fe5b63ffffffff92831660209182029092010152600d5482516c010000000000000000000000009091049091169082906002908110610d7657fe5b63ffffffff909216602092830290910190910152905090565b600b5460009081526004602052604081205481908190819081908190819081108015610dca5750600a54600090815260046020526040812054115b8015610de55750600c54600090815260046020526040812054115b15610dfc5760008981526004602052604090205491505b600b54600090815260046020526040812060010154118015610e305750600a54600090815260046020526040812060010154115b8015610e4e5750600c54600090815260046020526040812060010154115b15610e6757506000888152600460205260409020600101545b600089815260046020908152604080832060020154600160a060020a039b8c168452600583528184209c84526001909c01909152902054978916999198909760c060020a90910460ff169650945092505050565b600d5460ff808216916101008104821691620100008204811691630100000081049091169063ffffffff64010000000082048116916801000000000000000081048216916c010000000000000000000000008204811691608060020a90041688565b600054600160a060020a03163314610f3457600080fd5b600d5460ff16158015610f4f5750600d54610100900460ff16155b1515610f5a57600080fd5b600d805463ffffffff9283166c01000000000000000000000000026fffffffff0000000000000000000000001994841668010000000000000000026bffffffff00000000000000001960ff1942969096166401000000000267ffffffff00000000199094169390931794909416600117919091169290921792909216179055565b600054600160a060020a031681565b600c54600090815260046020526040808220600290810154600b548452828420820154600a548552929093200154600160a060020a0392831691831690831601011690565b600d5460009062010000900460ff16151561104957600080fd5b3360009081526005602052604090205460a060020a900460ff161561106d57600080fd5b6110763361119f565b905090565b600460205260009081526040902080546001820154600290920154909190600160a060020a0381169060a060020a810463ffffffff169060c060020a900460ff1685565b60065481565b600054600160a060020a031633146110dc57600080fd5b600d5462010000900460ff1680156111225750600d5462278d00640100000000820463ffffffff9081166c01000000000000000000000000909304811692909201011642115b806111575750600d546301000000900460ff1680156111575750600d5462278d0063ffffffff608060020a9092048216011642115b151561116257600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f1935050505015801561119c573d6000803e3d6000fd5b50565b600d546000908190819062010000900460ff1615156111bd57600080fd5b600160a060020a0384166000908152600560205260409020600d549092506301000000900460ff16156111fc578154600160a060020a031692506112d2565b600a5460009081526008602052604090205460ff161561122c57600a546000908152600183016020526040902054015b600b5460009081526008602052604090205460ff161561125c57600b546000908152600183016020526040902054015b600c5460009081526008602052604090205460ff161561128c57600c546000908152600183016020526040902054015b6112cd629896806112b5836112c16003546112b562989680600654611a2c90919063ffffffff16565b9063ffffffff611a5716565b9063ffffffff611a2c16565b830192505b5050919050565b600d546301000000900460ff1615610c7857600080fd5b600a54600090815260046020526040812080546001909101548291600781810b9291909103620186a002900b81151561132557fe5b6009805467ffffffffffffffff191667ffffffffffffffff93909205600790810b93909316919091179055600b54600090815260046020526040902080546001919091015481830b92919003620186a002900b81151561138157fe5b6009805492909105600790810b67ffffffffffffffff1668010000000000000000026fffffffffffffffff000000000000000019909316929092179055600c54600090815260046020526040902080546001919091015481830b92620186a09290910391909102900b8115156113f357fe5b6009805477ffffffffffffffff000000000000000000000000000000001916608060020a67ffffffffffffffff94909305600790810b9490941692909202919091179055600c54600090815260046020526040808220600290810154600b548452828420820154600a548552929093200154600160a060020a0392831691831690831601011660065554600163ffffffff909116116114e7576040805160208082526017908201527f4e6f7420656e6f756768207061727469636970616e7473000000000000000000818301529051600080516020611a818339815191529181900360600190a16114e26112d9565b611604565b61150260646112b56005600654611a2c90919063ffffffff16565b91503031821061151157600080fd5b600654611524908363ffffffff611a6e16565b600655600154604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015611561573d6000803e3d6000fd5b5050600281043031811061157457600080fd5b600654611587908263ffffffff611a6e16565b600655600254604080517fd0febe4c0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163d0febe4c918491600480830192600092919082900301818588803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b50505050505b600954680100000000000000008104600790810b810b91810b900b131561174257600954608060020a8104600790810b810b91810b900b131561167f57600a80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600954600781810b810b608060020a909204810b900b13156116d957600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600a805460009081526008602090815260408083208054600160ff199182168117909255600c805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a0391821690821601166003555b611a17565b600954600781810b810b68010000000000000000909204810b900b131561189757600954608060020a8104600790810b810b68010000000000000000909204810b900b13156117c957600b80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600954680100000000000000008104600790810b810b608060020a909204810b900b131561182f57600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600b805460009081526008602090815260408083208054600160ff199182168117909255600c805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a039182169082160116600355611a17565b600954680100000000000000008104600790810b810b608060020a909204810b900b13156118fd57600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a0316600355611a17565b600954680100000000000000008104600790810b810b608060020a909204810b900b121561198d57600b805460009081526008602090815260408083208054600160ff199182168117909255600a805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a039182169082160116600355611a17565b600c805460009081526008602090815260408083208054600160ff199182168117909255600b805486528386208054831684179055600a8054875284872080549093169093179091559454845260049092528083206002908101549254845281842081015494548452922090910154600160a060020a039182169282169082160191909101166003555b5050600d805462ff0000191662010000179055565b6000828202831580611a485750828482811515611a4557fe5b04145b1515611a5057fe5b9392505050565b6000808284811515611a6557fe5b04949350505050565b600082821115611a7a57fe5b5090039056009267bd1e840f8c032ec399dab88550ddacce435477212b384a3d761f395efa7fa165627a7a723058201f3b20058944317c51c1cb504e8b999a681845a394959778778115fccfd9ece20029
Swarm Source
bzzr://1f3b20058944317c51c1cb504e8b999a681845a394959778778115fccfd9ece2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.