Source Code
Latest 25 from a total of 28,719 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Flush House Fees | 3916538 | 3186 days ago | IN | 0 ETH | 0.00522667 | ||||
| Handle Bet | 3915438 | 3186 days ago | IN | 0.009 ETH | 0.00175 | ||||
| Handle Bet | 3915436 | 3186 days ago | IN | 0.009 ETH | 0.00175 | ||||
| Handle Bet | 3915436 | 3186 days ago | IN | 0.008 ETH | 0.00175 | ||||
| Handle Bet | 3915434 | 3186 days ago | IN | 0.008 ETH | 0.00175 | ||||
| Handle Bet | 3915434 | 3186 days ago | IN | 0.003 ETH | 0.00175 | ||||
| Handle Bet | 3915434 | 3186 days ago | IN | 0.003 ETH | 0.00175 | ||||
| House Keep | 3846877 | 3199 days ago | IN | 0 ETH | 0.00090174 | ||||
| Winner Decided | 3846859 | 3199 days ago | IN | 0 ETH | 0.00137122 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.01 ETH | 0.00054051 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.01 ETH | 0.00055395 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.004 ETH | 0.00055395 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.001 ETH | 0.00054051 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.006 ETH | 0.00055395 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.009 ETH | 0.00054051 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.002 ETH | 0.00077895 | ||||
| Handle Bet | 3846853 | 3199 days ago | IN | 0.002 ETH | 0.00076551 | ||||
| Start Game | 3846848 | 3199 days ago | IN | 0 ETH | 0.00094705 | ||||
| House Keep | 3846842 | 3199 days ago | IN | 0 ETH | 0.00090174 | ||||
| Winner Decided | 3846823 | 3199 days ago | IN | 0 ETH | 0.00135874 | ||||
| Handle Bet | 3846818 | 3199 days ago | IN | 0.01 ETH | 0.00054147 | ||||
| Handle Bet | 3846816 | 3199 days ago | IN | 0.01 ETH | 0.00055491 | ||||
| Handle Bet | 3846816 | 3199 days ago | IN | 0.006 ETH | 0.00055491 | ||||
| Handle Bet | 3846816 | 3199 days ago | IN | 0.016 ETH | 0.00054147 | ||||
| Handle Bet | 3846816 | 3199 days ago | IN | 0.002 ETH | 0.00077991 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 3916538 | 3186 days ago | 0.00344 ETH | ||||
| Transfer | 3846859 | 3199 days ago | 0.04312 ETH | ||||
| Transfer | 3846823 | 3199 days ago | 0.04508 ETH | ||||
| Transfer | 3845782 | 3200 days ago | 0.04704 ETH | ||||
| Transfer | 3843896 | 3200 days ago | 0.03332 ETH | ||||
| Transfer | 3843890 | 3200 days ago | 0.0196 ETH | ||||
| Transfer | 3843890 | 3200 days ago | 0.0102 ETH | ||||
| Transfer | 3843883 | 3200 days ago | 0.0294 ETH | ||||
| Transfer | 3843846 | 3200 days ago | 0.02156 ETH | ||||
| Transfer | 3843832 | 3200 days ago | 0.03136 ETH | ||||
| Transfer | 3843822 | 3200 days ago | 0.02744 ETH | ||||
| Transfer | 3843809 | 3200 days ago | 0.03136 ETH | ||||
| Transfer | 3843805 | 3200 days ago | 0.02156 ETH | ||||
| Transfer | 3843489 | 3200 days ago | 0.0294 ETH | ||||
| Transfer | 3843489 | 3200 days ago | 0.02548 ETH | ||||
| Transfer | 3843489 | 3200 days ago | 0.02744 ETH | ||||
| Transfer | 3843479 | 3200 days ago | 0.03724 ETH | ||||
| Transfer | 3838304 | 3201 days ago | 0.01372 ETH | ||||
| Transfer | 3836938 | 3201 days ago | 0.02548 ETH | ||||
| Transfer | 3836937 | 3201 days ago | 0.02548 ETH | ||||
| Transfer | 3836936 | 3201 days ago | 0.02156 ETH | ||||
| Transfer | 3832966 | 3202 days ago | 0.02352 ETH | ||||
| Transfer | 3832956 | 3202 days ago | 0.03136 ETH | ||||
| Transfer | 3832945 | 3202 days ago | 0.03332 ETH | ||||
| Transfer | 3831697 | 3202 days ago | 0.02352 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
E4RowEscrow
Compiler Version
v0.4.10+commit.f0d539ae
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2017-04-25
*/
pragma solidity ^0.4.8;
// version (ZK)
contract iE4RowEscrow {
function getNumGamesStarted() constant returns (int ngames);
}
contract E4RowEscrow is iE4RowEscrow {
event StatEvent(string msg);
event StatEventI(string msg, uint val);
event StatEventA(string msg, address addr);
uint constant MAX_PLAYERS = 5;
enum EndReason {erWinner, erTimeOut, erCancel}
enum SettingStateValue {debug, release, lockedRelease}
struct gameInstance {
address[5] players;
uint[5] playerPots;
uint numPlayers;
bool active; // active
bool allocd; // allocated already.
uint started; // time game started
uint lastMoved; // time game last moved
uint payout; // payout amont
address winner; // address of winner
EndReason reasonEnded; // enum reason of ended
}
struct arbiter {
mapping (uint => uint) gameIndexes; // game handles
uint arbToken; // 2 bytes
uint gameSlots; // a counter of alloc'd game structs (they can be reused)
uint gamesStarted; // total games started
uint gamesCompleted;
uint gamesCanceled; // also tied
uint gamesTimedout;
uint numPlayers;
bool registered;
bool locked;
}
address public owner; // owner is address that deployed contract
address public tokenPartner; // the address of partner that receives rake fees
uint public numArbiters; // number of arbiters
int numGamesStarted; // total stats from all arbiters
uint public numGamesCompleted; // ...
uint public numGamesCanceled; // tied and canceled
uint public numGamesTimedOut; // ...
uint public houseFeeHoldover; // hold fee till threshold
uint public lastPayoutTime; // timestamp of last payout time
// configurables
uint public gameTimeOut;
uint public registrationFee;
uint public houseFeeThreshold;
uint public payoutInterval;
uint raGas; // for register arb
uint sgGas;// for start game
uint wpGas; // for winner paid
uint rfGas; // for refund
uint feeGas; // for rake fee payout
SettingStateValue public settingsState = SettingStateValue.debug;
mapping (address => arbiter) arbiters;
mapping (uint => address) arbiterTokens;
mapping (uint => address) arbiterIndexes;
mapping (uint => gameInstance) games;
function E4RowEscrow() public
{
owner = msg.sender;
}
function applySettings(SettingStateValue _state, uint _fee, uint _threshold, uint _timeout, uint _interval)
{
if (msg.sender != owner)
throw;
// ----------------------------------------------
// these items are tweakable for game optimization
// ----------------------------------------------
houseFeeThreshold = _threshold;
gameTimeOut = _timeout;
payoutInterval = _interval;
if (settingsState == SettingStateValue.lockedRelease) {
StatEvent("Settings Tweaked");
return;
}
settingsState = _state;
registrationFee = _fee;
// set default op gas - any futher settings done in set up gas
raGas = 150000;
sgGas = 110000;
wpGas = 20000;
rfGas = 20000;
feeGas = 360000;
StatEvent("Settings Changed");
}
//-----------------------------
// return an arbiter token from an hGame
//-----------------------------
function ArbTokFromHGame(uint _hGame) returns (uint _tok)
{
_tok = (_hGame / (2 ** 48)) & 0xffff;
}
//-----------------------------
// suicide the contract, not called for release
//-----------------------------
function HaraKiri()
{
if ((msg.sender == owner) && (settingsState != SettingStateValue.lockedRelease))
suicide(tokenPartner);
else
StatEvent("Kill attempt failed");
}
//-----------------------------
// default function
// who are we to look a gift-horse in the mouth?
//-----------------------------
function() payable {
StatEvent("thanks!");
}
//------------------------------------------------------
// check active game and valid player, return player index
//-------------------------------------------------------
function validPlayer(uint _hGame, address _addr) internal returns( bool _valid, uint _pidx)
{
_valid = false;
if (activeGame(_hGame)) {
for (uint i = 0; i < games[_hGame].numPlayers; i++) {
if (games[_hGame].players[i] == _addr) {
_valid=true;
_pidx = i;
break;
}
}
}
}
//------------------------------------------------------
// check valid player, return player index
//-------------------------------------------------------
function validPlayer2(uint _hGame, address _addr) internal returns( bool _valid, uint _pidx)
{
_valid = false;
for (uint i = 0; i < games[_hGame].numPlayers; i++) {
if (games[_hGame].players[i] == _addr) {
_valid=true;
_pidx = i;
break;
}
}
}
//------------------------------------------------------
// check the arbiter is valid by comparing token
//------------------------------------------------------
function validArb(address _addr, uint _tok) internal returns( bool _valid)
{
_valid = false;
if ((arbiters[_addr].registered)
&& (arbiters[_addr].arbToken == _tok))
_valid = true;
}
//------------------------------------------------------
// check the arbiter is valid without comparing token
//------------------------------------------------------
function validArb2(address _addr) internal returns( bool _valid)
{
_valid = false;
if (arbiters[_addr].registered)
_valid = true;
}
//------------------------------------------------------
// check if arbiter is locked out
//------------------------------------------------------
function arbLocked(address _addr) internal returns( bool _locked)
{
_locked = false;
if (validArb2(_addr))
_locked = arbiters[_addr].locked;
}
//------------------------------------------------------
// return if game is active
//------------------------------------------------------
function activeGame(uint _hGame) internal returns( bool _valid)
{
_valid = false;
if ((_hGame > 0)
&& (games[_hGame].active))
_valid = true;
}
//------------------------------------------------------
// register game arbiter, max players of 5, pass in exact registration fee
//------------------------------------------------------
function registerArbiter(uint _numPlayers, uint _arbToken) public payable
{
if (msg.value != registrationFee) {
throw; //Insufficient Fee
}
if (_arbToken == 0) {
throw; // invalid token
}
if (arbTokenExists(_arbToken & 0xffff)) {
throw; // Token Already Exists
}
if (arbiters[msg.sender].registered) {
throw; // Arb Already Registered
}
if (_numPlayers > MAX_PLAYERS) {
throw; // Exceeds Max Players
}
arbiters[msg.sender].gamesStarted = 0;
arbiters[msg.sender].gamesCompleted = 0;
arbiters[msg.sender].gamesCanceled = 0;
arbiters[msg.sender].gamesTimedout = 0;
arbiters[msg.sender].locked = false;
arbiters[msg.sender].arbToken = _arbToken & 0xffff;
arbiters[msg.sender].numPlayers = _numPlayers;
arbiters[msg.sender].registered = true;
arbiterTokens[(_arbToken & 0xffff)] = msg.sender;
arbiterIndexes[numArbiters++] = msg.sender;
if (!tokenPartner.call.gas(raGas).value(msg.value)()) {
//Statvent("Send Error"); // event never registers
throw;
}
StatEventI("Arb Added", _arbToken);
}
//------------------------------------------------------
// start game. pass in valid hGame containing token in top two bytes
//------------------------------------------------------
function startGame(uint _hGame, int _hkMax, address[] _players) public
{
uint ntok = ArbTokFromHGame(_hGame);
if (!validArb(msg.sender, ntok )) {
StatEvent("Invalid Arb");
return;
}
if (arbLocked(msg.sender)) {
StatEvent("Arb Locked");
return;
}
arbiter xarb = arbiters[msg.sender];
if (_players.length != xarb.numPlayers) {
StatEvent("Incorrect num players");
return;
}
if (games[_hGame].active) {
// guard-rail. just in case to return funds
abortGame(msg.sender, _hGame, EndReason.erCancel);
} else if (_hkMax > 0) {
houseKeep(_hkMax, ntok);
}
if (!games[_hGame].allocd) {
games[_hGame].allocd = true;
xarb.gameIndexes[xarb.gameSlots++] = _hGame;
}
numGamesStarted++; // always inc this one
xarb.gamesStarted++;
games[_hGame].active = true;
games[_hGame].started = now;
games[_hGame].lastMoved = now;
games[_hGame].payout = 0;
games[_hGame].winner = address(0);
games[_hGame].numPlayers = _players.length; // we'll be the judge of how many unique players
for (uint i = 0; i< _players.length && i < MAX_PLAYERS; i++) {
games[_hGame].players[i] = _players[i];
games[_hGame].playerPots[i] = 0;
}
StatEventI("Game Added", _hGame);
}
//------------------------------------------------------
// clean up game, set to inactive, refund any balances
// called by housekeep ONLY
//------------------------------------------------------
function abortGame(address _arb, uint _hGame, EndReason _reason) private returns(bool _success)
{
gameInstance nGame = games[_hGame];
// find game in game id,
if (nGame.active) {
_success = true;
for (uint i = 0; i < nGame.numPlayers; i++) {
if (nGame.playerPots[i] > 0) {
address a = nGame.players[i];
uint nsend = nGame.playerPots[i];
nGame.playerPots[i] = 0;
if (!a.call.gas(rfGas).value(nsend)()) {
houseFeeHoldover += nsend; // cannot refund due to error, give to the house
StatEventA("Cannot Refund Address", a);
}
}
}
nGame.active = false;
nGame.reasonEnded = _reason;
if (_reason == EndReason.erCancel) {
numGamesCanceled++;
arbiters[_arb].gamesCanceled++;
StatEvent("Game canceled");
} else if (_reason == EndReason.erTimeOut) {
numGamesTimedOut++;
arbiters[_arb].gamesTimedout++;
StatEvent("Game timed out");
} else
StatEvent("Game aborted");
}
}
//------------------------------------------------------
// called by arbiter when winner is decided
// *pass in high num for winnerbal for tie games
//------------------------------------------------------
function winnerDecided(uint _hGame, address _winner, uint _winnerBal) public
{
if (!validArb(msg.sender, ArbTokFromHGame(_hGame))) {
StatEvent("Invalid Arb");
return; // no throw no change made
}
var (valid, pidx) = validPlayer(_hGame, _winner);
if (!valid) {
StatEvent("Invalid Player");
return;
}
arbiter xarb = arbiters[msg.sender];
gameInstance xgame = games[_hGame];
uint totalPot = 0;
if (xgame.playerPots[pidx] < _winnerBal) {
abortGame(msg.sender, _hGame, EndReason.erCancel);
return;
}
for (uint i = 0; i < xgame.numPlayers; i++) {
totalPot += xgame.playerPots[i];
}
uint nportion;
uint nremnant;
if (totalPot > 0) {
nportion = totalPot/50; // 2 percent fixed
nremnant = totalPot-nportion;
} else {
nportion = 0;
nremnant = 0;
}
xgame.lastMoved = now;
xgame.active = false;
xgame.reasonEnded = EndReason.erWinner;
xgame.winner = _winner;
xgame.payout = nremnant;
if (nportion > 0) {
houseFeeHoldover += nportion;
if ((houseFeeHoldover > houseFeeThreshold)
&& (now > (lastPayoutTime + payoutInterval))) {
uint ntmpho = houseFeeHoldover;
houseFeeHoldover = 0;
lastPayoutTime = now; // reset regardless of succeed/fail
if (!tokenPartner.call.gas(feeGas).value(ntmpho)()) {
houseFeeHoldover = ntmpho; // put it back
StatEvent("House-Fee Error1");
}
}
}
for (i = 0; i < xgame.numPlayers; i++) {
xgame.playerPots[i] = 0;
}
xarb.gamesCompleted++;
numGamesCompleted++;
if (nremnant > 0) {
if (!_winner.call.gas(wpGas).value(uint(nremnant))()) {
// StatEvent("Send Error");
throw; // if you cant pay the winner - very bad
} else {
StatEventI("Winner Paid", _hGame);
}
}
}
//------------------------------------------------------
// handle a bet made by a player, validate the player and game
// add to players balance
//------------------------------------------------------
function handleBet(uint _hGame) public payable
{
address narb = arbiterTokens[ArbTokFromHGame(_hGame)];
if (narb == address(0)) {
throw; // "Invalid hGame"
}
var (valid, pidx) = validPlayer(_hGame, msg.sender);
if (!valid) {
throw; // "Invalid Player"
}
games[_hGame].playerPots[pidx] += msg.value;
games[_hGame].lastMoved = now;
StatEventI("Bet Added", _hGame);
}
//------------------------------------------------------
// return if arb token exists
//------------------------------------------------------
function arbTokenExists(uint _tok) constant returns (bool _exists)
{
_exists = false;
if ((_tok > 0)
&& (arbiterTokens[_tok] != address(0))
&& arbiters[arbiterTokens[_tok]].registered)
_exists = true;
}
//------------------------------------------------------
// called by ico token contract
//------------------------------------------------------
function getNumGamesStarted() constant returns (int _games)
{
_games = numGamesStarted;
}
//------------------------------------------------------
// return arbiter game stats
//------------------------------------------------------
function getArbInfo(uint _idx) constant returns (address _addr, uint _started, uint _completed, uint _canceled, uint _timedOut)
{
if (_idx >= numArbiters) {
StatEvent("Invalid Arb");
return;
}
_addr = arbiterIndexes[_idx];
if ((_addr == address(0))
|| (!arbiters[_addr].registered)) {
StatEvent("Invalid Arb");
return;
}
arbiter xarb = arbiters[_addr];
_started = xarb.gamesStarted;
_completed = xarb.gamesCompleted;
_timedOut = xarb.gamesTimedout;
_canceled = xarb.gamesCanceled;
}
//------------------------------------------------------
// scan for a game 10 minutes old
// if found abort the game, causing funds to be returned
//------------------------------------------------------
function houseKeep(int _max, uint _arbToken) public
{
uint gi;
address a;
int aborted = 0;
arbiter xarb = arbiters[msg.sender];// have to set it to something
if (msg.sender == owner) {
for (uint ar = 0; (ar < numArbiters) && (aborted < _max) ; ar++) {
a = arbiterIndexes[ar];
xarb = arbiters[a];
for ( gi = 0; (gi < xarb.gameSlots) && (aborted < _max); gi++) {
gameInstance ngame0 = games[xarb.gameIndexes[gi]];
if ((ngame0.active)
&& ((now - ngame0.lastMoved) > gameTimeOut)) {
abortGame(a, xarb.gameIndexes[gi], EndReason.erTimeOut);
++aborted;
}
}
}
} else {
if (!validArb(msg.sender, _arbToken))
StatEvent("Housekeep invalid arbiter");
else {
a = msg.sender;
xarb = arbiters[a];
for (gi = 0; (gi < xarb.gameSlots) && (aborted < _max); gi++) {
gameInstance ngame1 = games[xarb.gameIndexes[gi]];
if ((ngame1.active)
&& ((now - ngame1.lastMoved) > gameTimeOut)) {
abortGame(a, xarb.gameIndexes[gi], EndReason.erTimeOut);
++aborted;
}
}
}
}
}
//------------------------------------------------------
// return game info
//------------------------------------------------------
function getGameInfo(uint _hGame) constant returns (EndReason _reason, uint _players, uint _payout, bool _active, address _winner )
{
gameInstance ngame = games[_hGame];
_active = ngame.active;
_players = ngame.numPlayers;
_winner = ngame.winner;
_payout = ngame.payout;
_reason = ngame.reasonEnded;
}
//------------------------------------------------------
// return arbToken and low bytes from an HGame
//------------------------------------------------------
function checkHGame(uint _hGame) constant returns(uint _arbTok, uint _lowWords)
{
_arbTok = ArbTokFromHGame(_hGame);
_lowWords = _hGame & 0xffffffffffff;
}
//------------------------------------------------------
// get operation gas amounts
//------------------------------------------------------
function getOpGas() constant returns (uint _ra, uint _sg, uint _wp, uint _rf, uint _fg)
{
_ra = raGas; // register arb
_sg = sgGas; // start game
_wp = wpGas; // winner paid
_rf = rfGas; // refund
_fg = feeGas; // rake fee gas
}
//------------------------------------------------------
// set operation gas amounts for forwading operations
//------------------------------------------------------
function setOpGas(uint _ra, uint _sg, uint _wp, uint _rf, uint _fg)
{
if (msg.sender != owner)
throw;
raGas = _ra;
sgGas = _sg;
wpGas = _wp;
rfGas = _rf;
feeGas = _fg;
}
//------------------------------------------------------
// set a micheivous arbiter to locked
//------------------------------------------------------
function setArbiterLocked(address _addr, bool _lock) public
{
if (owner != msg.sender) {
throw;
} else if (!validArb2(_addr)) {
StatEvent("invalid arb");
} else {
arbiters[_addr].locked = _lock;
}
}
//------------------------------------------------------
// flush the house fees whenever commanded to.
// ignore the threshold and the last payout time
// but this time only reset lastpayouttime upon success
//------------------------------------------------------
function flushHouseFees()
{
if (msg.sender != owner) {
StatEvent("only owner calls this function");
} else if (houseFeeHoldover > 0) {
uint ntmpho = houseFeeHoldover;
houseFeeHoldover = 0;
if (!tokenPartner.call.gas(feeGas).value(ntmpho)()) {
houseFeeHoldover = ntmpho; // put it back
StatEvent("House-Fee Error2");
} else {
lastPayoutTime = now;
StatEvent("House-Fee Paid");
}
}
}
//------------------------------------------------------
// set the token partner
//------------------------------------------------------
function setTokenPartner(address _addr) public
{
if (msg.sender != owner) {
throw;
}
if ((settingsState == SettingStateValue.lockedRelease)
&& (tokenPartner == address(0))) {
tokenPartner = _addr;
StatEvent("Token Partner Final!");
} else if (settingsState != SettingStateValue.lockedRelease) {
tokenPartner = _addr;
StatEvent("Token Partner Assigned!");
}
}
// ----------------------------
// swap executor
// ----------------------------
function changeOwner(address _addr)
{
if (msg.sender != owner
|| settingsState == SettingStateValue.lockedRelease)
throw;
owner = _addr;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_numPlayers","type":"uint256"},{"name":"_arbToken","type":"uint256"}],"name":"registerArbiter","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"payoutInterval","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getNumGamesStarted","outputs":[{"name":"_games","type":"int256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_state","type":"uint8"},{"name":"_fee","type":"uint256"},{"name":"_threshold","type":"uint256"},{"name":"_timeout","type":"uint256"},{"name":"_interval","type":"uint256"}],"name":"applySettings","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"registrationFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numArbiters","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"houseFeeThreshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hGame","type":"uint256"}],"name":"ArbTokFromHGame","outputs":[{"name":"_tok","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_hGame","type":"uint256"}],"name":"getGameInfo","outputs":[{"name":"_reason","type":"uint8"},{"name":"_players","type":"uint256"},{"name":"_payout","type":"uint256"},{"name":"_active","type":"bool"},{"name":"_winner","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hGame","type":"uint256"}],"name":"handleBet","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"gameTimeOut","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_idx","type":"uint256"}],"name":"getArbInfo","outputs":[{"name":"_addr","type":"address"},{"name":"_started","type":"uint256"},{"name":"_completed","type":"uint256"},{"name":"_canceled","type":"uint256"},{"name":"_timedOut","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"lastPayoutTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"settingsState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hGame","type":"uint256"},{"name":"_winner","type":"address"},{"name":"_winnerBal","type":"uint256"}],"name":"winnerDecided","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setTokenPartner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numGamesTimedOut","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_lock","type":"bool"}],"name":"setArbiterLocked","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_max","type":"int256"},{"name":"_arbToken","type":"uint256"}],"name":"houseKeep","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getOpGas","outputs":[{"name":"_ra","type":"uint256"},{"name":"_sg","type":"uint256"},{"name":"_wp","type":"uint256"},{"name":"_rf","type":"uint256"},{"name":"_fg","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_hGame","type":"uint256"}],"name":"checkHGame","outputs":[{"name":"_arbTok","type":"uint256"},{"name":"_lowWords","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numGamesCompleted","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_hGame","type":"uint256"},{"name":"_hkMax","type":"int256"},{"name":"_players","type":"address[]"}],"name":"startGame","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_ra","type":"uint256"},{"name":"_sg","type":"uint256"},{"name":"_wp","type":"uint256"},{"name":"_rf","type":"uint256"},{"name":"_fg","type":"uint256"}],"name":"setOpGas","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"houseFeeHoldover","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"flushHouseFees","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numGamesCanceled","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokenPartner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_tok","type":"uint256"}],"name":"arbTokenExists","outputs":[{"name":"_exists","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"HaraKiri","outputs":[],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg","type":"string"}],"name":"StatEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg","type":"string"},{"indexed":false,"name":"val","type":"uint256"}],"name":"StatEventI","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"msg","type":"string"},{"indexed":false,"name":"addr","type":"address"}],"name":"StatEventA","type":"event"}]Contract Creation Code
6060604052601280546000919060ff19166001835b0217905550341561002157fe5b5b60008054600160a060020a03191633600160a060020a03161790555b5b611f6b8061004e6000396000f3006060604052361561017a5763ffffffff60e060020a60003504166303015ea381146101d157806309e785e1146101e15780631123efd51461020357806313bd53e61461022557806314c44e0914610249578063189ae13c1461026b5780631e83ce171461028d5780632c78ba6f146102af57806347e1d550146102d45780634f28af6a1461033057806351c08f4d1461033d5780635364f7211461035f57806358a1cabf146103a75780635f437e48146103c95780636df088bf146103fd5780637612115d14610421578063809432521461043f5780638a75f56a146104615780638da5cb5b146104845780639307ca0f146104b05780639a6921e4146104c85780639e6d95c714610503578063a6f9dae11461052f578063b05455321461054d578063b26f7efc1461056f578063bcdaea36146105c5578063c9fa8f2d146105e6578063ca2785bf14610608578063dc46d9841461061a578063dcb4775e1461063c578063e7d87cda14610668578063f081d9bd1461068f575b6101cf5b6040805160208082526007908201527f7468616e6b732100000000000000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b565b005b6101cf6004356024356106a1565b005b34156101e957fe5b6101f1610825565b60408051918252519081900360200190f35b341561020b57fe5b6101f161082b565b60408051918252519081900360200190f35b341561022d57fe5b6101cf60ff60043516602435604435606435608435610832565b005b341561025157fe5b6101f1610964565b60408051918252519081900360200190f35b341561027357fe5b6101f161096a565b60408051918252519081900360200190f35b341561029557fe5b6101f1610970565b60408051918252519081900360200190f35b34156102b757fe5b6101f1600435610976565b60408051918252519081900360200190f35b34156102dc57fe5b6102e760043561098f565b604051808660028111156102f757fe5b60ff1681526020810195909552506040808501939093529015156060840152600160a060020a03166080830152519081900360a0019150f35b6101cf6004356109d9565b005b341561034557fe5b6101f1610acd565b60408051918252519081900360200190f35b341561036757fe5b610372600435610ad3565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b34156103af57fe5b6101f1610bfa565b60408051918252519081900360200190f35b34156103d157fe5b6103d9610c00565b604051808260028111156103e957fe5b60ff16815260200191505060405180910390f35b341561040557fe5b6101cf600435600160a060020a0360243516604435610c09565b005b341561042957fe5b6101cf600160a060020a0360043516610fa0565b005b341561044757fe5b6101f16110e3565b60408051918252519081900360200190f35b341561046957fe5b6101cf600160a060020a036004351660243515156110e9565b005b341561048c57fe5b61049461119a565b60408051600160a060020a039092168252519081900360200190f35b34156104b857fe5b6101cf6004356024356111a9565b005b34156104d057fe5b6104d86113c8565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b341561050b57fe5b6105166004356113df565b6040805192835260208301919091528051918290030190f35b341561053757fe5b6101cf600160a060020a03600435166113fe565b005b341561055557fe5b6101f1611457565b60408051918252519081900360200190f35b341561057757fe5b60408051604435600481810135602081810285810182019096528185526101cf958335956024803596606495929491019282918501908490808284375094965061145d95505050505050565b005b34156105cd57fe5b6101cf60043560243560443560643560843561179c565b005b34156105ee57fe5b6101f16117d9565b60408051918252519081900360200190f35b341561061057fe5b6101cf6117df565b005b341561062257fe5b6101f161193e565b60408051918252519081900360200190f35b341561064457fe5b610494611944565b60408051600160a060020a039092168252519081900360200190f35b341561067057fe5b61067b600435611953565b604080519115158252519081900360200190f35b341561069757fe5b6101cf6119bc565b005b600a5434146106b05760006000fd5b8015156106bd5760006000fd5b6106ca8161ffff16611953565b156106d55760006000fd5b600160a060020a03331660009081526013602052604090206008015460ff16156106ff5760006000fd5b600582111561070e5760006000fd5b600160a060020a0333811660008181526013602090815260408083206003810184905560048101849055600581018490556006810184905560088101805461ffff8916600180850182905560079094018b905561ffff1990911683179091558452601483528184208054600160a060020a03199081168717909155600280548084019091558552601590935281842080549093169094179091559154600d5492519316923491818181858888f1935050505015156107cc5760006000fd5b60408051602081018390528181526009818301527f417262204164646564000000000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b5050565b600c5481565b6003545b90565b60005433600160a060020a0390811691161461084e5760006000fd5b600b8390556009829055600c81905560025b60125460ff16600281111561087157fe5b14156108ca576040805160208082526010908201527f53657474696e677320547765616b656400000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a161095d565b6012805486919060ff191660018360028111156108e357fe5b0217905550600a849055620249f0600d556201adb0600e55614e20600f819055601090815562057e406011556040805160208082528101929092527f53657474696e6773204368616e676564000000000000000000000000000000008282015251600080516020611f208339815191529181900360600190a15b5050505050565b600a5481565b60025481565b600b5481565b60006601000000000000825b0461ffff1690505b919050565b6000818152601660205260409020600b810154600a820154600f830154600e84015460ff60a060020a830481169593949193911691600160a060020a0316905b5091939590929450565b600060006000601460006109ec86610976565b8152602081019190915260400160002054600160a060020a03169250821515610a155760006000fd5b610a1f8433611a51565b91509150811515610a305760006000fd5b6000848152601660205260409020349060059081019083908110610a5057fe5b0160005b508054909101905560008481526016602090815260409182902042600d9091015581519081018690528181526009818301527f426574204164646564000000000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b50505050565b60095481565b60006000600060006000600060025487101515610b2e57604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a16109cf565b600087815260156020526040902054600160a060020a03169550851580610b715750600160a060020a03861660009081526013602052604090206008015460ff16155b15610bba57604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a16109cf565b50505050600160a060020a0382166000908152601360205260409020600381015460048201546006830154600584015492945090925b5091939590929450565b60085481565b60125460ff1681565b600060006000600060006000600060006000610c2d33610c288e610976565b611ae8565b1515610c7757604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a1610f90565b610c818c8c611a51565b98509850881515610cdf57604080516020808252600e908201527f496e76616c696420506c61796572000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a1610f90565b600160a060020a03331660009081526013602090815260408083208f84526016909252822090985096509450896005808801908a908110610d1c57fe5b0160005b50541015610d3a57610d34338d6002611b3d565b50610f90565b600093505b85600a0154841015610d72578560050184600581101515610d5c57fe5b0160005b5054850194505b600190930192610d3f565b6000851115610d8c576032855b0492508285039150610d95565b60009250600091505b42600d870155600b8601805460ff19169055600f860180546000919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600f86018054600160a060020a031916600160a060020a038d16179055600e86018290556000831115610eb85760078054840190819055600b5490118015610e225750600c546008540142115b15610eb8575060078054600091829055426008556001546011546040519293600160a060020a03909216929091849190818181858888f193505050501515610eb85760078190556040805160208082526010908201527f486f7573652d466565204572726f723100000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b5b600093505b85600a0154841015610ef05760008660050185600581101515610ede57fe5b0160005b50555b600190930192610ebf565b60048088018054600190810190915581540190556000821115610f9057600f54604051600160a060020a038d16919084906000818181858888f193505050501515610f3b5760006000fd5b60408051602081018e9052818152600b818301527f57696e6e6572205061696400000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b5b5b505050505050505050505050565b60005433600160a060020a03908116911614610fbc5760006000fd5b60025b60125460ff166002811115610fd057fe5b148015610fe65750600154600160a060020a0316155b1561105a5760018054600160a060020a031916600160a060020a0383161790556040805160208082526014908201527f546f6b656e20506172746e65722046696e616c21000000000000000000000000818301529051600080516020611f20833981519152916060908290030190a16110de565b60025b60125460ff16600281111561106e57fe5b146110de5760018054600160a060020a031916600160a060020a0383161790556040805160208082526017908201527f546f6b656e20506172746e65722041737369676e656421000000000000000000818301529051600080516020611f20833981519152916060908290030190a15b5b5b50565b60065481565b60005433600160a060020a039081169116146111055760006000fd5b61110e82611e64565b151561116757604080516020808252600b908201527f696e76616c696420617262000000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a1610821565b600160a060020a0382166000908152601360205260409020600801805461ff001916610100831515021790555b5b5b5050565b600054600160a060020a031681565b600160a060020a033381166000818152601360205260408120815491938493849384928392839290911614156112b457600092505b600254831080156111ee57508885125b156112af57600083815260156020908152604080832054600160a060020a031680845260139092528220919850965093505b83600201548710801561123257508885125b156112a35760008781526020858152604080832054835260169091529020600b81015490925060ff16801561126e575060095482600d01544203115b156112975760008781526020859052604090205461128f9087906001611b3d565b508460010194505b5b600190960195611220565b5b6001909201916111de565b6113ba565b6112be3389611ae8565b1515611317576040805160208082526019908201527f486f7573656b65657020696e76616c6964206172626974657200000000000000818301529051600080516020611f208339815191529181900360600190a16113ba565b33600160a060020a038116600090815260136020526040812090985090965093505b83600201548710801561134b57508885125b156113ba575060008681526020848152604080832054835260169091529020600b81015460ff168015611385575060095481600d01544203115b156113ae576000878152602085905260409020546113a69087906001611b3d565b508460010194505b5b600190960195611339565b5b5b5b505050505050505050565b600d54600e54600f546010546011545b9091929394565b600060006113ec83610976565b91505065ffffffffffff82165b915091565b60005433600160a060020a03908116911614158061142d575060025b60125460ff16600281111561142b57fe5b145b156114385760006000fd5b60008054600160a060020a031916600160a060020a0383161790555b50565b60045481565b60006000600061146c86610976565b92506114783384611ae8565b15156114c257604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a1611794565b6114cb33611e92565b1561152357604080516020808252600a908201527f417262204c6f636b656400000000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a1611794565b600160a060020a0333166000908152601360205260409020600781015485519193501461159d576040805160208082526015908201527f496e636f7272656374206e756d20706c61796572730000000000000000000000818301529051600080516020611f208339815191529181900360600190a1611794565b6000868152601660205260409020600b015460ff16156115c9576115c333876002611b3d565b506115dc565b60008513156115dc576115dc85846111a9565b5b5b6000868152601660205260409020600b0154610100900460ff161515611638576000868152601660209081526040808320600b01805461ff0019166101001790556002850180546001810190915583529084905290208690555b5060038054600190810182559082018054820190556000868152601660205260408120600b8101805460ff191690931790925542600c8301819055600d830155600e8201819055600f82018054600160a060020a03191690558451600a909201919091555b8351811080156116ad5750600581105b1561173f5783818151811015156116c057fe5b602090810290910181015160008881526016909252604090912082600581106116e557fe5b0160005b6101000a815481600160a060020a030219169083600160a060020a031602179055506000601660008881526020019081526020016000206005018260058110151561173057fe5b0160005b50555b60010161169d565b6040805160208101889052818152600a818301527f47616d652041646465640000000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b505050505050565b60005433600160a060020a039081169116146117b85760006000fd5b600d859055600e849055600f839055601082905560118190555b5050505050565b60075481565b6000805433600160a060020a0390811691161461184957604080516020808252601e908201527f6f6e6c79206f776e65722063616c6c7320746869732066756e6374696f6e0000818301529051600080516020611f208339815191529181900360600190a16110de565b600060075411156110de5750600780546000918290556001546011546040519293600160a060020a03909216929091849190818181858888f1935050505015156118e55760078190556040805160208082526010908201527f486f7573652d466565204572726f723200000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a16110de565b42600855604080516020808252600e908201527f486f7573652d4665652050616964000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b5b5b50565b60055481565b600154600160a060020a031681565b6000808211801561197a5750600082815260146020526040902054600160a060020a031615155b80156119ad5750600082815260146020908152604080832054600160a060020a03168352601390915290206008015460ff165b1561098a575060015b5b919050565b60005433600160a060020a0390811691161480156119ec575060025b60125460ff1660028111156119e957fe5b14155b156119ff57600154600160a060020a0316ff5b6040805160208082526013908201527f4b696c6c20617474656d7074206661696c656400000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b565b60008080611a5e85611ece565b15611ade575060005b6000858152601660205260409020600a0154811015611ade576000858152601660205260409020600160a060020a038516908260058110611aa457fe5b0160005b9054906101000a9004600160a060020a0316600160a060020a03161415611ad55760019250809150611ade565b5b600101611a67565b5b5b509250929050565b600160a060020a03821660009081526013602052604081206008015460ff168015611b2d5750600160a060020a03831660009081526013602052604090206001015482145b15611b36575060015b5b92915050565b6000828152601660205260408120600b81015482908190819060ff1615611e565760019450600092505b83600a0154831015611c945760008460050184600581101515611b8657fe5b0160005b50541115611c8757838360058110611b9e57fe5b0160005b9054906101000a9004600160a060020a031691508360050183600581101515611bc757fe5b0160005b5054905060008460050184600581101515611be257fe5b0160005b5055601054604051600160a060020a038416919083906000818181858888f193505050501515611c8757600780548201905560408051600160a060020a03841660208201528181526015818301527f43616e6e6f7420526566756e6420416464726573730000000000000000000000606082015290517fe0e85fe8d69ca593247064bffd9438c76090518a0ec0f0c452c31218c8b9e6a49181900360800190a15b5b5b600190920191611b67565b600b8401805460ff19169055600f8401805487919074ff0000000000000000000000000000000000000000191660a060020a836002811115611cd257fe5b021790555060025b866002811115611ce657fe5b1415611d6f576005805460019081018255600160a060020a038a1660009081526013602090815260409182902090930180549092019091558051828152600d928101929092527f47616d652063616e63656c6564000000000000000000000000000000000000008282015251600080516020611f208339815191529181900360600190a1611e56565b60015b866002811115611d7e57fe5b1415611e07576006805460019081018255600160a060020a038a1660009081526013602090815260409182902090930180549092019091558051828152600e928101929092527f47616d652074696d6564206f75740000000000000000000000000000000000008282015251600080516020611f208339815191529181900360600190a1611e56565b604080516020808252600c908201527f47616d652061626f727465640000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b5b5b505050509392505050565b600160a060020a03811660009081526013602052604081206008015460ff161561098a575060015b5b919050565b6000611e9d82611e64565b1561098a5750600160a060020a038116600090815260136020526040902060080154610100900460ff165b5b919050565b600080821180156119ad57506000828152601660205260409020600b015460ff165b1561098a575060015b5b91905056009e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d1df4241f9d28385037b9339fabdb2fac8a42cb5e489c20da7a82bb32f517e648a165627a7a7230582065899295bf18b68794ae4663f7902b2b3912178a798a20c2beb61b786886d04b0029
Deployed Bytecode
0x6060604052361561017a5763ffffffff60e060020a60003504166303015ea381146101d157806309e785e1146101e15780631123efd51461020357806313bd53e61461022557806314c44e0914610249578063189ae13c1461026b5780631e83ce171461028d5780632c78ba6f146102af57806347e1d550146102d45780634f28af6a1461033057806351c08f4d1461033d5780635364f7211461035f57806358a1cabf146103a75780635f437e48146103c95780636df088bf146103fd5780637612115d14610421578063809432521461043f5780638a75f56a146104615780638da5cb5b146104845780639307ca0f146104b05780639a6921e4146104c85780639e6d95c714610503578063a6f9dae11461052f578063b05455321461054d578063b26f7efc1461056f578063bcdaea36146105c5578063c9fa8f2d146105e6578063ca2785bf14610608578063dc46d9841461061a578063dcb4775e1461063c578063e7d87cda14610668578063f081d9bd1461068f575b6101cf5b6040805160208082526007908201527f7468616e6b732100000000000000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b565b005b6101cf6004356024356106a1565b005b34156101e957fe5b6101f1610825565b60408051918252519081900360200190f35b341561020b57fe5b6101f161082b565b60408051918252519081900360200190f35b341561022d57fe5b6101cf60ff60043516602435604435606435608435610832565b005b341561025157fe5b6101f1610964565b60408051918252519081900360200190f35b341561027357fe5b6101f161096a565b60408051918252519081900360200190f35b341561029557fe5b6101f1610970565b60408051918252519081900360200190f35b34156102b757fe5b6101f1600435610976565b60408051918252519081900360200190f35b34156102dc57fe5b6102e760043561098f565b604051808660028111156102f757fe5b60ff1681526020810195909552506040808501939093529015156060840152600160a060020a03166080830152519081900360a0019150f35b6101cf6004356109d9565b005b341561034557fe5b6101f1610acd565b60408051918252519081900360200190f35b341561036757fe5b610372600435610ad3565b60408051600160a060020a03909616865260208601949094528484019290925260608401526080830152519081900360a00190f35b34156103af57fe5b6101f1610bfa565b60408051918252519081900360200190f35b34156103d157fe5b6103d9610c00565b604051808260028111156103e957fe5b60ff16815260200191505060405180910390f35b341561040557fe5b6101cf600435600160a060020a0360243516604435610c09565b005b341561042957fe5b6101cf600160a060020a0360043516610fa0565b005b341561044757fe5b6101f16110e3565b60408051918252519081900360200190f35b341561046957fe5b6101cf600160a060020a036004351660243515156110e9565b005b341561048c57fe5b61049461119a565b60408051600160a060020a039092168252519081900360200190f35b34156104b857fe5b6101cf6004356024356111a9565b005b34156104d057fe5b6104d86113c8565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b341561050b57fe5b6105166004356113df565b6040805192835260208301919091528051918290030190f35b341561053757fe5b6101cf600160a060020a03600435166113fe565b005b341561055557fe5b6101f1611457565b60408051918252519081900360200190f35b341561057757fe5b60408051604435600481810135602081810285810182019096528185526101cf958335956024803596606495929491019282918501908490808284375094965061145d95505050505050565b005b34156105cd57fe5b6101cf60043560243560443560643560843561179c565b005b34156105ee57fe5b6101f16117d9565b60408051918252519081900360200190f35b341561061057fe5b6101cf6117df565b005b341561062257fe5b6101f161193e565b60408051918252519081900360200190f35b341561064457fe5b610494611944565b60408051600160a060020a039092168252519081900360200190f35b341561067057fe5b61067b600435611953565b604080519115158252519081900360200190f35b341561069757fe5b6101cf6119bc565b005b600a5434146106b05760006000fd5b8015156106bd5760006000fd5b6106ca8161ffff16611953565b156106d55760006000fd5b600160a060020a03331660009081526013602052604090206008015460ff16156106ff5760006000fd5b600582111561070e5760006000fd5b600160a060020a0333811660008181526013602090815260408083206003810184905560048101849055600581018490556006810184905560088101805461ffff8916600180850182905560079094018b905561ffff1990911683179091558452601483528184208054600160a060020a03199081168717909155600280548084019091558552601590935281842080549093169094179091559154600d5492519316923491818181858888f1935050505015156107cc5760006000fd5b60408051602081018390528181526009818301527f417262204164646564000000000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b5050565b600c5481565b6003545b90565b60005433600160a060020a0390811691161461084e5760006000fd5b600b8390556009829055600c81905560025b60125460ff16600281111561087157fe5b14156108ca576040805160208082526010908201527f53657474696e677320547765616b656400000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a161095d565b6012805486919060ff191660018360028111156108e357fe5b0217905550600a849055620249f0600d556201adb0600e55614e20600f819055601090815562057e406011556040805160208082528101929092527f53657474696e6773204368616e676564000000000000000000000000000000008282015251600080516020611f208339815191529181900360600190a15b5050505050565b600a5481565b60025481565b600b5481565b60006601000000000000825b0461ffff1690505b919050565b6000818152601660205260409020600b810154600a820154600f830154600e84015460ff60a060020a830481169593949193911691600160a060020a0316905b5091939590929450565b600060006000601460006109ec86610976565b8152602081019190915260400160002054600160a060020a03169250821515610a155760006000fd5b610a1f8433611a51565b91509150811515610a305760006000fd5b6000848152601660205260409020349060059081019083908110610a5057fe5b0160005b508054909101905560008481526016602090815260409182902042600d9091015581519081018690528181526009818301527f426574204164646564000000000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b50505050565b60095481565b60006000600060006000600060025487101515610b2e57604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a16109cf565b600087815260156020526040902054600160a060020a03169550851580610b715750600160a060020a03861660009081526013602052604090206008015460ff16155b15610bba57604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a16109cf565b50505050600160a060020a0382166000908152601360205260409020600381015460048201546006830154600584015492945090925b5091939590929450565b60085481565b60125460ff1681565b600060006000600060006000600060006000610c2d33610c288e610976565b611ae8565b1515610c7757604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a1610f90565b610c818c8c611a51565b98509850881515610cdf57604080516020808252600e908201527f496e76616c696420506c61796572000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a1610f90565b600160a060020a03331660009081526013602090815260408083208f84526016909252822090985096509450896005808801908a908110610d1c57fe5b0160005b50541015610d3a57610d34338d6002611b3d565b50610f90565b600093505b85600a0154841015610d72578560050184600581101515610d5c57fe5b0160005b5054850194505b600190930192610d3f565b6000851115610d8c576032855b0492508285039150610d95565b60009250600091505b42600d870155600b8601805460ff19169055600f860180546000919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600f86018054600160a060020a031916600160a060020a038d16179055600e86018290556000831115610eb85760078054840190819055600b5490118015610e225750600c546008540142115b15610eb8575060078054600091829055426008556001546011546040519293600160a060020a03909216929091849190818181858888f193505050501515610eb85760078190556040805160208082526010908201527f486f7573652d466565204572726f723100000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b5b600093505b85600a0154841015610ef05760008660050185600581101515610ede57fe5b0160005b50555b600190930192610ebf565b60048088018054600190810190915581540190556000821115610f9057600f54604051600160a060020a038d16919084906000818181858888f193505050501515610f3b5760006000fd5b60408051602081018e9052818152600b818301527f57696e6e6572205061696400000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b5b5b505050505050505050505050565b60005433600160a060020a03908116911614610fbc5760006000fd5b60025b60125460ff166002811115610fd057fe5b148015610fe65750600154600160a060020a0316155b1561105a5760018054600160a060020a031916600160a060020a0383161790556040805160208082526014908201527f546f6b656e20506172746e65722046696e616c21000000000000000000000000818301529051600080516020611f20833981519152916060908290030190a16110de565b60025b60125460ff16600281111561106e57fe5b146110de5760018054600160a060020a031916600160a060020a0383161790556040805160208082526017908201527f546f6b656e20506172746e65722041737369676e656421000000000000000000818301529051600080516020611f20833981519152916060908290030190a15b5b5b50565b60065481565b60005433600160a060020a039081169116146111055760006000fd5b61110e82611e64565b151561116757604080516020808252600b908201527f696e76616c696420617262000000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a1610821565b600160a060020a0382166000908152601360205260409020600801805461ff001916610100831515021790555b5b5b5050565b600054600160a060020a031681565b600160a060020a033381166000818152601360205260408120815491938493849384928392839290911614156112b457600092505b600254831080156111ee57508885125b156112af57600083815260156020908152604080832054600160a060020a031680845260139092528220919850965093505b83600201548710801561123257508885125b156112a35760008781526020858152604080832054835260169091529020600b81015490925060ff16801561126e575060095482600d01544203115b156112975760008781526020859052604090205461128f9087906001611b3d565b508460010194505b5b600190960195611220565b5b6001909201916111de565b6113ba565b6112be3389611ae8565b1515611317576040805160208082526019908201527f486f7573656b65657020696e76616c6964206172626974657200000000000000818301529051600080516020611f208339815191529181900360600190a16113ba565b33600160a060020a038116600090815260136020526040812090985090965093505b83600201548710801561134b57508885125b156113ba575060008681526020848152604080832054835260169091529020600b81015460ff168015611385575060095481600d01544203115b156113ae576000878152602085905260409020546113a69087906001611b3d565b508460010194505b5b600190960195611339565b5b5b5b505050505050505050565b600d54600e54600f546010546011545b9091929394565b600060006113ec83610976565b91505065ffffffffffff82165b915091565b60005433600160a060020a03908116911614158061142d575060025b60125460ff16600281111561142b57fe5b145b156114385760006000fd5b60008054600160a060020a031916600160a060020a0383161790555b50565b60045481565b60006000600061146c86610976565b92506114783384611ae8565b15156114c257604080516020808252600b9082015260a960020a6a24b73b30b634b21020b93102818301529051600080516020611f208339815191529181900360600190a1611794565b6114cb33611e92565b1561152357604080516020808252600a908201527f417262204c6f636b656400000000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a1611794565b600160a060020a0333166000908152601360205260409020600781015485519193501461159d576040805160208082526015908201527f496e636f7272656374206e756d20706c61796572730000000000000000000000818301529051600080516020611f208339815191529181900360600190a1611794565b6000868152601660205260409020600b015460ff16156115c9576115c333876002611b3d565b506115dc565b60008513156115dc576115dc85846111a9565b5b5b6000868152601660205260409020600b0154610100900460ff161515611638576000868152601660209081526040808320600b01805461ff0019166101001790556002850180546001810190915583529084905290208690555b5060038054600190810182559082018054820190556000868152601660205260408120600b8101805460ff191690931790925542600c8301819055600d830155600e8201819055600f82018054600160a060020a03191690558451600a909201919091555b8351811080156116ad5750600581105b1561173f5783818151811015156116c057fe5b602090810290910181015160008881526016909252604090912082600581106116e557fe5b0160005b6101000a815481600160a060020a030219169083600160a060020a031602179055506000601660008881526020019081526020016000206005018260058110151561173057fe5b0160005b50555b60010161169d565b6040805160208101889052818152600a818301527f47616d652041646465640000000000000000000000000000000000000000000060608201529051600080516020611f008339815191529181900360800190a15b505050505050565b60005433600160a060020a039081169116146117b85760006000fd5b600d859055600e849055600f839055601082905560118190555b5050505050565b60075481565b6000805433600160a060020a0390811691161461184957604080516020808252601e908201527f6f6e6c79206f776e65722063616c6c7320746869732066756e6374696f6e0000818301529051600080516020611f208339815191529181900360600190a16110de565b600060075411156110de5750600780546000918290556001546011546040519293600160a060020a03909216929091849190818181858888f1935050505015156118e55760078190556040805160208082526010908201527f486f7573652d466565204572726f723200000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a16110de565b42600855604080516020808252600e908201527f486f7573652d4665652050616964000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b5b5b50565b60055481565b600154600160a060020a031681565b6000808211801561197a5750600082815260146020526040902054600160a060020a031615155b80156119ad5750600082815260146020908152604080832054600160a060020a03168352601390915290206008015460ff165b1561098a575060015b5b919050565b60005433600160a060020a0390811691161480156119ec575060025b60125460ff1660028111156119e957fe5b14155b156119ff57600154600160a060020a0316ff5b6040805160208082526013908201527f4b696c6c20617474656d7074206661696c656400000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b565b60008080611a5e85611ece565b15611ade575060005b6000858152601660205260409020600a0154811015611ade576000858152601660205260409020600160a060020a038516908260058110611aa457fe5b0160005b9054906101000a9004600160a060020a0316600160a060020a03161415611ad55760019250809150611ade565b5b600101611a67565b5b5b509250929050565b600160a060020a03821660009081526013602052604081206008015460ff168015611b2d5750600160a060020a03831660009081526013602052604090206001015482145b15611b36575060015b5b92915050565b6000828152601660205260408120600b81015482908190819060ff1615611e565760019450600092505b83600a0154831015611c945760008460050184600581101515611b8657fe5b0160005b50541115611c8757838360058110611b9e57fe5b0160005b9054906101000a9004600160a060020a031691508360050183600581101515611bc757fe5b0160005b5054905060008460050184600581101515611be257fe5b0160005b5055601054604051600160a060020a038416919083906000818181858888f193505050501515611c8757600780548201905560408051600160a060020a03841660208201528181526015818301527f43616e6e6f7420526566756e6420416464726573730000000000000000000000606082015290517fe0e85fe8d69ca593247064bffd9438c76090518a0ec0f0c452c31218c8b9e6a49181900360800190a15b5b5b600190920191611b67565b600b8401805460ff19169055600f8401805487919074ff0000000000000000000000000000000000000000191660a060020a836002811115611cd257fe5b021790555060025b866002811115611ce657fe5b1415611d6f576005805460019081018255600160a060020a038a1660009081526013602090815260409182902090930180549092019091558051828152600d928101929092527f47616d652063616e63656c6564000000000000000000000000000000000000008282015251600080516020611f208339815191529181900360600190a1611e56565b60015b866002811115611d7e57fe5b1415611e07576006805460019081018255600160a060020a038a1660009081526013602090815260409182902090930180549092019091558051828152600e928101929092527f47616d652074696d6564206f75740000000000000000000000000000000000008282015251600080516020611f208339815191529181900360600190a1611e56565b604080516020808252600c908201527f47616d652061626f727465640000000000000000000000000000000000000000818301529051600080516020611f208339815191529181900360600190a15b5b5b5b505050509392505050565b600160a060020a03811660009081526013602052604081206008015460ff161561098a575060015b5b919050565b6000611e9d82611e64565b1561098a5750600160a060020a038116600090815260136020526040902060080154610100900460ff165b5b919050565b600080821180156119ad57506000828152601660205260409020600b015460ff165b1561098a575060015b5b91905056009e229c55f86322ec7d67b654476e2d52934c738b3cd58c026b5b2b6e9b7b992d1df4241f9d28385037b9339fabdb2fac8a42cb5e489c20da7a82bb32f517e648a165627a7a7230582065899295bf18b68794ae4663f7902b2b3912178a798a20c2beb61b786886d04b0029
Swarm Source
bzzr://65899295bf18b68794ae4663f7902b2b3912178a798a20c2beb61b786886d04b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.