More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 8,073 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update State | 9575272 | 1756 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9574550 | 1756 days ago | IN | 0 ETH | 0.00414432 | ||||
Update State | 9572707 | 1756 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9572331 | 1756 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9571456 | 1756 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9567655 | 1757 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9567490 | 1757 days ago | IN | 0 ETH | 0.00414432 | ||||
Update State | 9567307 | 1757 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9566973 | 1757 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9565219 | 1757 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9564665 | 1758 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9564117 | 1758 days ago | IN | 0 ETH | 0.00414432 | ||||
Update State | 9563376 | 1758 days ago | IN | 0 ETH | 0.00414432 | ||||
Update State | 9563201 | 1758 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9560094 | 1758 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9558615 | 1758 days ago | IN | 0 ETH | 0.00414432 | ||||
Update State | 9558440 | 1758 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9558066 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9557380 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9557015 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9556464 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9554638 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9554299 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9554108 | 1759 days ago | IN | 0 ETH | 0.00414528 | ||||
Update State | 9553915 | 1759 days ago | IN | 0 ETH | 0.00414528 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
EdgelessCasino
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-10-04 */ /** * The test edgeless casino contract v2 holds the players's funds and provides state channel functionality. * The casino has at no time control over the players's funds. * State channels can be updated and closed from both parties: the player and the casino. * author: Rytis Grincevicius **/ pragma solidity ^0.4.21; contract SafeMath { function safeSub(uint a, uint b) pure internal returns(uint) { assert(b <= a); return a - b; } function safeSub(int a, int b) pure internal returns(int) { if(b < 0) assert(a - b > a); else assert(a - b <= a); return a - b; } function safeAdd(uint a, uint b) pure internal returns(uint) { uint c = a + b; assert(c >= a && c >= b); return c; } function safeMul(uint a, uint b) pure internal returns (uint) { uint c = a * b; assert(a == 0 || c / a == b); return c; } } contract Token { function transferFrom(address sender, address receiver, uint amount) public returns(bool success); function transfer(address receiver, uint amount) public returns(bool success); function balanceOf(address holder) public view returns(uint); } contract Owned { address public owner; modifier onlyOwner { require(msg.sender == owner); _; } function Owned() public{ owner = msg.sender; } } /** owner should be able to close the contract is nobody has been using it for at least 30 days */ contract Mortal is Owned { /** contract can be closed by the owner anytime after this timestamp if non-zero */ uint public closeAt; /** the edgeless token contract */ Token edg; function Mortal(address tokenContract) internal{ edg = Token(tokenContract); } /** * lets the owner close the contract if there are no player funds on it or if nobody has been using it for at least 30 days */ function closeContract(uint playerBalance) internal{ if(closeAt == 0) closeAt = now + 30 days; if(closeAt < now || playerBalance == 0){ edg.transfer(owner, edg.balanceOf(address(this))); selfdestruct(owner); } } /** * in case close has been called accidentally. **/ function open() onlyOwner public{ closeAt = 0; } /** * make sure the contract is not in process of being closed. **/ modifier isAlive { require(closeAt == 0); _; } /** * delays the time of closing. **/ modifier keepAlive { if(closeAt > 0) closeAt = now + 30 days; _; } } contract RequiringAuthorization is Mortal { /** indicates if an address is authorized to act in the casino's name */ mapping(address => bool) public authorized; /** tells if an address is allowed to receive funds from the bankroll **/ mapping(address => bool) public allowedReceiver; modifier onlyAuthorized { require(authorized[msg.sender]); _; } /** * Constructor. Authorize the owner. * */ function RequiringAuthorization() internal { authorized[msg.sender] = true; allowedReceiver[msg.sender] = true; } /** * authorize a address to call game functions and set configs. * @param addr the address to be authorized **/ function authorize(address addr) public onlyOwner { authorized[addr] = true; } /** * deauthorize a address to call game functions and set configs. * @param addr the address to be deauthorized **/ function deauthorize(address addr) public onlyOwner { authorized[addr] = false; } /** * allow authorized wallets to withdraw funds from the bonkroll to this address * @param receiver the receiver's address * */ function allowReceiver(address receiver) public onlyOwner { allowedReceiver[receiver] = true; } /** * disallow authorized wallets to withdraw funds from the bonkroll to this address * @param receiver the receiver's address * */ function disallowReceiver(address receiver) public onlyOwner { allowedReceiver[receiver] = false; } /** * changes the owner of the contract. revokes authorization of the old owner and authorizes the new one. * @param newOwner the address of the new owner * */ function changeOwner(address newOwner) public onlyOwner { deauthorize(owner); authorize(newOwner); disallowReceiver(owner); allowReceiver(newOwner); owner = newOwner; } } contract ChargingGas is RequiringAuthorization, SafeMath { /** 1 EDG has 5 decimals **/ uint public constant oneEDG = 100000; /** the price per kgas and GWei in tokens (with decimals) */ uint public gasPrice; /** the amount of gas used per transaction in kGas */ mapping(bytes4 => uint) public gasPerTx; /** the number of tokens (5 decimals) payed by the users to cover the gas cost */ uint public gasPayback; function ChargingGas(uint kGasPrice) internal{ //deposit, withdrawFor, updateChannel, updateBatch, transferToNewContract bytes4[5] memory signatures = [bytes4(0x3edd1128),0x9607610a, 0xde48ff52, 0xc97b6d1f, 0x6bf06fde]; //amount of gas consumed by the above methods in GWei uint[5] memory gasUsage = [uint(146), 100, 65, 50, 85]; setGasUsage(signatures, gasUsage); setGasPrice(kGasPrice); } /** * sets the amount of gas consumed by methods with the given sigantures. * only called from the edgeless casino constructor. * @param signatures an array of method-signatures * gasNeeded the amount of gas consumed by these methods * */ function setGasUsage(bytes4[5] signatures, uint[5] gasNeeded) public onlyOwner { require(signatures.length == gasNeeded.length); for (uint8 i = 0; i < signatures.length; i++) gasPerTx[signatures[i]] = gasNeeded[i]; } /** * updates the price per 1000 gas in EDG. * @param price the new gas price (with decimals, max 0.1 EDG) **/ function setGasPrice(uint price) public onlyAuthorized { require(price < oneEDG/10); gasPrice = price; } /** * returns the gas cost of the called function. * */ function getGasCost() internal view returns(uint) { return safeMul(safeMul(gasPerTx[msg.sig], gasPrice), tx.gasprice) / 1000000000; } } contract CasinoBank is ChargingGas { /** the total balance of all players with virtual decimals **/ uint public playerBalance; /** the balance per player in edgeless tokens with virtual decimals */ mapping(address => uint) public balanceOf; /** in case the user wants/needs to call the withdraw function from his own wallet, he first needs to request a withdrawal */ mapping(address => uint) public withdrawAfter; /** a number to count withdrawal signatures to ensure each signature is different even if withdrawing the same amount to the same address */ mapping(address => uint) public withdrawCount; /** the maximum amount of tokens the user is allowed to deposit (with decimals) */ uint public maxDeposit; /** the maximum withdrawal of tokens the user is allowed to withdraw on one day (only enforced when the tx is not sent from an authorized wallet) **/ uint public maxWithdrawal; /** waiting time for withdrawal if not requested via the server **/ uint public waitingTime; /** the address of the predecessor **/ address public predecessor; /** informs listeners how many tokens were deposited for a player */ event Deposit(address _player, uint _numTokens, uint _gasCost); /** informs listeners how many tokens were withdrawn from the player to the receiver address */ event Withdrawal(address _player, address _receiver, uint _numTokens, uint _gasCost); /** * Constructor. * @param depositLimit the maximum deposit allowed * predecessorAddr the address of the predecessing contract * */ function CasinoBank(uint depositLimit, address predecessorAddr) internal { maxDeposit = depositLimit * oneEDG; maxWithdrawal = maxDeposit; waitingTime = 24 hours; predecessor = predecessorAddr; } /** * accepts deposits for an arbitrary address. * retrieves tokens from the message sender and adds them to the balance of the specified address. * edgeless tokens do not have any decimals, but are represented on this contract with decimals. * @param receiver address of the receiver * numTokens number of tokens to deposit (0 decimals) * chargeGas indicates if the gas cost is subtracted from the user's edgeless token balance **/ function deposit(address receiver, uint numTokens, bool chargeGas) public isAlive { require(numTokens > 0); uint value = safeMul(numTokens, oneEDG); uint gasCost; if (chargeGas) { gasCost = getGasCost(); value = safeSub(value, gasCost); gasPayback = safeAdd(gasPayback, gasCost); } uint newBalance = safeAdd(balanceOf[receiver], value); require(newBalance <= maxDeposit); assert(edg.transferFrom(msg.sender, address(this), numTokens)); balanceOf[receiver] = newBalance; playerBalance = safeAdd(playerBalance, value); emit Deposit(receiver, numTokens, gasCost); } /** * If the user wants/needs to withdraw his funds himself, he needs to request the withdrawal first. * This method sets the earliest possible withdrawal date to 'waitingTime from now (default 90m, but up to 24h). * Reason: The user should not be able to withdraw his funds, while the the last game methods have not yet been mined. **/ function requestWithdrawal() public { withdrawAfter[msg.sender] = now + waitingTime; } /** * In case the user requested a withdrawal and changes his mind. * Necessary to be able to continue playing. **/ function cancelWithdrawalRequest() public { withdrawAfter[msg.sender] = 0; } /** * withdraws an amount from the user balance if the waiting time passed since the request. * @param amount the amount of tokens to withdraw **/ function withdraw(uint amount) public keepAlive { require(amount <= maxWithdrawal); require(withdrawAfter[msg.sender] > 0 && now > withdrawAfter[msg.sender]); withdrawAfter[msg.sender] = 0; uint value = safeMul(amount, oneEDG); balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], value); playerBalance = safeSub(playerBalance, value); assert(edg.transfer(msg.sender, amount)); emit Withdrawal(msg.sender, msg.sender, amount, 0); } /** * lets the owner withdraw from the bankroll * @param receiver the receiver's address * numTokens the number of tokens to withdraw (0 decimals) **/ function withdrawBankroll(address receiver, uint numTokens) public onlyAuthorized { require(numTokens <= bankroll()); require(allowedReceiver[receiver]); assert(edg.transfer(receiver, numTokens)); } /** * withdraw the gas payback to the owner **/ function withdrawGasPayback() public onlyAuthorized { uint payback = gasPayback / oneEDG; assert(payback > 0); gasPayback = safeSub(gasPayback, payback * oneEDG); assert(edg.transfer(owner, payback)); } /** * returns the current bankroll in tokens with 0 decimals **/ function bankroll() view public returns(uint) { return safeSub(edg.balanceOf(address(this)), safeAdd(playerBalance, gasPayback) / oneEDG); } /** * updates the maximum deposit. * @param newMax the new maximum deposit (0 decimals) **/ function setMaxDeposit(uint newMax) public onlyAuthorized { maxDeposit = newMax * oneEDG; } /** * updates the maximum withdrawal. * @param newMax the new maximum withdrawal (0 decimals) **/ function setMaxWithdrawal(uint newMax) public onlyAuthorized { maxWithdrawal = newMax * oneEDG; } /** * sets the time the player has to wait for his funds to be unlocked before withdrawal (if not withdrawing with help of the casino server). * the time may not be longer than 24 hours. * @param newWaitingTime the new waiting time in seconds * */ function setWaitingTime(uint newWaitingTime) public onlyAuthorized { require(newWaitingTime <= 24 hours); waitingTime = newWaitingTime; } /** * transfers an amount from the contract balance to the owner's wallet. * @param receiver the receiver address * amount the amount of tokens to withdraw (0 decimals) * v,r,s the signature of the player **/ function withdrawFor(address receiver, uint amount, uint8 v, bytes32 r, bytes32 s) public onlyAuthorized keepAlive { address player = ecrecover(keccak256(receiver, amount, withdrawCount[receiver]), v, r, s); withdrawCount[receiver]++; uint gasCost = getGasCost(); uint value = safeAdd(safeMul(amount, oneEDG), gasCost); gasPayback = safeAdd(gasPayback, gasCost); balanceOf[player] = safeSub(balanceOf[player], value); playerBalance = safeSub(playerBalance, value); assert(edg.transfer(receiver, amount)); emit Withdrawal(player, receiver, amount, gasCost); } /** * transfers the player's tokens directly to the new casino contract after an update. * @param newCasino the address of the new casino contract * v, r, s the signature of the player * chargeGas indicates if the gas cost is payed by the player. * */ function transferToNewContract(address newCasino, uint8 v, bytes32 r, bytes32 s, bool chargeGas) public onlyAuthorized keepAlive { address player = ecrecover(keccak256(address(this), newCasino), v, r, s); uint gasCost = 0; if(chargeGas) gasCost = getGasCost(); uint value = safeSub(balanceOf[player], gasCost); require(value > oneEDG); //fractions of one EDG cannot be withdrawn value /= oneEDG; playerBalance = safeSub(playerBalance, balanceOf[player]); balanceOf[player] = 0; assert(edg.transfer(newCasino, value)); emit Withdrawal(player, newCasino, value, gasCost); CasinoBank cb = CasinoBank(newCasino); assert(cb.credit(player, value)); } /** * receive a player balance from the predecessor contract. * @param player the address of the player to credit the value for * value the number of tokens to credit (0 decimals) * */ function credit(address player, uint value) public returns(bool) { require(msg.sender == predecessor); uint valueWithDecimals = safeMul(value, oneEDG); balanceOf[player] = safeAdd(balanceOf[player], valueWithDecimals); playerBalance = safeAdd(playerBalance, valueWithDecimals); emit Deposit(player, value, 0); return true; } /** * lets the owner close the contract if there are no player funds on it or if nobody has been using it for at least 30 days * */ function close() public onlyOwner { closeContract(playerBalance); } } contract EdgelessCasino is CasinoBank{ /** the most recent known state of a state channel */ mapping(address => State) public lastState; /** fired when the state is updated */ event StateUpdate(address player, uint128 count, int128 winBalance, int difference, uint gasCost); /** fired if one of the parties chooses to log the seeds and results */ event GameData(address player, bytes32[] serverSeeds, bytes32[] clientSeeds, int[] results, uint gasCost); struct State{ uint128 count; int128 winBalance; } /** * creates a new edgeless casino contract. * @param predecessorAddress the address of the predecessing contract * tokenContract the address of the Edgeless token contract * depositLimit the maximum deposit allowed * kGasPrice the price per kGas in WEI **/ function EdgelessCasino(address predecessorAddress, address tokenContract, uint depositLimit, uint kGasPrice) CasinoBank(depositLimit, predecessorAddress) Mortal(tokenContract) ChargingGas(kGasPrice) public{ } /** * updates several state channels at once. can be called by authorized wallets only. * 1. determines the player address from the signature. * 2. verifies if the signed game-count is higher than the last known game-count of this channel. * 3. updates the balances accordingly. This means: It checks the already performed updates for this channel and computes * the new balance difference to add or subtract from the player‘s balance. * @param winBalances array of the current wins or losses * gameCounts array of the numbers of signed game moves * v,r,s array of the players's signatures * chargeGas indicates if the gas costs should be subtracted from the players's balances * */ function updateBatch(int128[] winBalances, uint128[] gameCounts, uint8[] v, bytes32[] r, bytes32[] s, bool chargeGas) public onlyAuthorized{ require(winBalances.length == gameCounts.length); require(winBalances.length == v.length); require(winBalances.length == r.length); require(winBalances.length == s.length); require(winBalances.length <= 50); address player; uint gasCost = 0; if(chargeGas) gasCost = getGasCost(); gasPayback = safeAdd(gasPayback, safeMul(gasCost, winBalances.length)); for(uint8 i = 0; i < winBalances.length; i++){ player = ecrecover(keccak256(winBalances[i], gameCounts[i]), v[i], r[i], s[i]); _updateState(player, winBalances[i], gameCounts[i], gasCost); } } /** * updates a state channel. can be called by both parties. * 1. verifies the signature. * 2. verifies if the signed game-count is higher than the last known game-count of this channel. * 3. updates the balances accordingly. This means: It checks the already performed updates for this channel and computes * the new balance difference to add or subtract from the player‘s balance. * @param winBalance the current win or loss * gameCount the number of signed game moves * v,r,s the signature of either the casino or the player * chargeGas indicates if the gas costs should be subtracted from the player's balance * */ function updateState(int128 winBalance, uint128 gameCount, uint8 v, bytes32 r, bytes32 s, bool chargeGas) public{ address player = determinePlayer(winBalance, gameCount, v, r, s); uint gasCost = 0; if(player == msg.sender)//if the player closes the state channel himself, make sure the signer is a casino wallet require(authorized[ecrecover(keccak256(player, winBalance, gameCount), v, r, s)]); else if (chargeGas){//subtract the gas costs from the player balance only if the casino wallet is the sender gasCost = getGasCost(); gasPayback = safeAdd(gasPayback, gasCost); } _updateState(player, winBalance, gameCount, gasCost); } /** * internal method to perform the actual state update. * @param player the player address * winBalance the player's win balance * gameCount the player's game count * */ function _updateState(address player, int128 winBalance, uint128 gameCount, uint gasCost) internal { State storage last = lastState[player]; require(gameCount > last.count); int difference = updatePlayerBalance(player, winBalance, last.winBalance, gasCost); lastState[player] = State(gameCount, winBalance); emit StateUpdate(player, gameCount, winBalance, difference, gasCost); } /** * determines if the msg.sender or the signer of the passed signature is the player. returns the player's address * @param winBalance the current winBalance, used to calculate the msg hash * gameCount the current gameCount, used to calculate the msg.hash * v, r, s the signature of the non-sending party * */ function determinePlayer(int128 winBalance, uint128 gameCount, uint8 v, bytes32 r, bytes32 s) view internal returns(address){ if (authorized[msg.sender])//casino is the sender -> player is the signer return ecrecover(keccak256(winBalance, gameCount), v, r, s); else return msg.sender; } /** * computes the difference of the win balance relative to the last known state and adds it to the player's balance. * in case the casino is the sender, the gas cost in EDG gets subtracted from the player's balance. * @param player the address of the player * winBalance the current win-balance * lastWinBalance the win-balance of the last known state * gasCost the gas cost of the tx * */ function updatePlayerBalance(address player, int128 winBalance, int128 lastWinBalance, uint gasCost) internal returns(int difference){ difference = safeSub(winBalance, lastWinBalance); int outstanding = safeSub(difference, int(gasCost)); uint outs; if(outstanding < 0){ outs = uint256(outstanding * (-1)); playerBalance = safeSub(playerBalance, outs); balanceOf[player] = safeSub(balanceOf[player], outs); } else{ outs = uint256(outstanding); assert(bankroll() * oneEDG > outs); playerBalance = safeAdd(playerBalance, outs); balanceOf[player] = safeAdd(balanceOf[player], outs); } } /** * logs some seeds and game results for players wishing to have their game history logged by the contract * @param serverSeeds array containing the server seeds * clientSeeds array containing the client seeds * results array containing the results * v, r, s the signature of the non-sending party (to make sure the correct results are logged) * */ function logGameData(bytes32[] serverSeeds, bytes32[] clientSeeds, int[] results, uint8 v, bytes32 r, bytes32 s) public{ address player = determinePlayer(serverSeeds, clientSeeds, results, v, r, s); uint gasCost; //charge gas in case the server is logging the results for the player if(player != msg.sender){ gasCost = (57 + 768 * serverSeeds.length / 1000)*gasPrice; balanceOf[player] = safeSub(balanceOf[player], gasCost); playerBalance = safeSub(playerBalance, gasCost); gasPayback = safeAdd(gasPayback, gasCost); } emit GameData(player, serverSeeds, clientSeeds, results, gasCost); } /** * determines if the msg.sender or the signer of the passed signature is the player. returns the player's address * @param serverSeeds array containing the server seeds * clientSeeds array containing the client seeds * results array containing the results * v, r, s the signature of the non-sending party * */ function determinePlayer(bytes32[] serverSeeds, bytes32[] clientSeeds, int[] results, uint8 v, bytes32 r, bytes32 s) view internal returns(address){ address signer = ecrecover(keccak256(serverSeeds, clientSeeds, results), v, r, s); if (authorized[msg.sender])//casino is the sender -> player is the signer return signer; else if (authorized[signer]) return msg.sender; else revert(); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"serverSeeds","type":"bytes32[]"},{"name":"clientSeeds","type":"bytes32[]"},{"name":"results","type":"int256[]"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"logGameData","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bankroll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"}],"name":"disallowReceiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"signatures","type":"bytes4[5]"},{"name":"gasNeeded","type":"uint256[5]"}],"name":"setGasUsage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastState","outputs":[{"name":"count","type":"uint128"},{"name":"winBalance","type":"int128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"deauthorize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMax","type":"uint256"}],"name":"setMaxWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"numTokens","type":"uint256"},{"name":"chargeGas","type":"bool"}],"name":"deposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"close","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"withdrawAfter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"withdrawCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxDeposit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"playerBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newCasino","type":"address"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"chargeGas","type":"bool"}],"name":"transferToNewContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"oneEDG","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxWithdrawal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"amount","type":"uint256"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"withdrawFor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"closeAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waitingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes4"}],"name":"gasPerTx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedReceiver","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"authorize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"predecessor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"authorized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newMax","type":"uint256"}],"name":"setMaxDeposit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"}],"name":"allowReceiver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"price","type":"uint256"}],"name":"setGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"winBalances","type":"int128[]"},{"name":"gameCounts","type":"uint128[]"},{"name":"v","type":"uint8[]"},{"name":"r","type":"bytes32[]"},{"name":"s","type":"bytes32[]"},{"name":"chargeGas","type":"bool"}],"name":"updateBatch","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"requestWithdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"winBalance","type":"int128"},{"name":"gameCount","type":"uint128"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"},{"name":"chargeGas","type":"bool"}],"name":"updateState","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gasPayback","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"cancelWithdrawalRequest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"},{"name":"numTokens","type":"uint256"}],"name":"withdrawBankroll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newWaitingTime","type":"uint256"}],"name":"setWaitingTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"player","type":"address"},{"name":"value","type":"uint256"}],"name":"credit","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawGasPayback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"open","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gasPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"predecessorAddress","type":"address"},{"name":"tokenContract","type":"address"},{"name":"depositLimit","type":"uint256"},{"name":"kGasPrice","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"count","type":"uint128"},{"indexed":false,"name":"winBalance","type":"int128"},{"indexed":false,"name":"difference","type":"int256"},{"indexed":false,"name":"gasCost","type":"uint256"}],"name":"StateUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"serverSeeds","type":"bytes32[]"},{"indexed":false,"name":"clientSeeds","type":"bytes32[]"},{"indexed":false,"name":"results","type":"int256[]"},{"indexed":false,"name":"gasCost","type":"uint256"}],"name":"GameData","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_player","type":"address"},{"indexed":false,"name":"_numTokens","type":"uint256"},{"indexed":false,"name":"_gasCost","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_player","type":"address"},{"indexed":false,"name":"_receiver","type":"address"},{"indexed":false,"name":"_numTokens","type":"uint256"},{"indexed":false,"name":"_gasCost","type":"uint256"}],"name":"Withdrawal","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b6040516080806200281583398101604052808051919060200180519190602001805191906020018051915082905084826200004a620002fa565b6200005462000323565b60008054600160a060020a031990811633600160a060020a03908116918217845560028054909316908c16179091558152600360209081526040808320805460ff1990811660019081179092556004909352928190208054909216909217905560a0905190810160409081527f3edd11280000000000000000000000000000000000000000000000000000000082527f9607610a0000000000000000000000000000000000000000000000000000000060208301527fde48ff5200000000000000000000000000000000000000000000000000000000818301527fc97b6d1f0000000000000000000000000000000000000000000000000000000060608301527f6bf06fde00000000000000000000000000000000000000000000000000000000608083015290925060a090519081016040908152609282526064602083015260419082015260326060820152605560808201529050620001c4828264010000000062000bc66200022182021704565b620001dd8364010000000062001780620002be82021704565b505050620186a091909102600c819055600d5562015180600e55600f8054600160a060020a031916600160a060020a03909216919091179055506200034b92505050565b6000805433600160a060020a039081169116146200023e57600080fd5b5060005b60058160ff161015620002b9578160ff8216600581106200025f57fe5b6020020151600660008560ff8516600581106200027857fe5b60200201517fffffffff0000000000000000000000000000000000000000000000000000000016815260208101919091526040016000205560010162000242565b505050565b600160a060020a03331660009081526003602052604090205460ff161515620002e657600080fd5b6127108110620002f557600080fd5b600555565b60a06040519081016040526005815b600081526000199091019060200181620003095790505090565b60a06040519081016040526005815b6000815260200190600190039081620003325790505090565b6124ba806200035b6000396000f3006060604052600436106101ea5763ffffffff60e060020a6000350416630102305b81146101ef5780630c657eb0146102d05780631ae32b82146102f55780631e33a6d514610314578063203faa891461037557806327c97fa5146103bd5780632e1a7d4d146103dc5780633926384d146103f25780633edd11281461040857806343d726d61461042f5780634659f42a146104425780634f23618f146104615780636083e59a14610480578063651f066a146104935780636bf06fde146104a657806370a08231146104d65780637ab4e968146104f55780638c0ff5b7146105085780638da5cb5b1461051b5780639607610a1461054a578063a6f9dae114610578578063a985408714610597578063aa13e8c2146105aa578063ad8ce06b146105bd578063b2f5e6c2146105f2578063b6a5d7de14610625578063b719d03214610644578063b918161114610657578063bb371fdd14610676578063bb7502321461068c578063bf1fe420146106ab578063c97b6d1f146106c1578063dbaf214514610814578063de48ff5214610827578063e1538b321461085d578063e714a02814610870578063e9e3074614610883578063ebc73e65146108a5578063ef6506db146108bb578063f66e86bb146108dd578063fcfff16f146108f0578063fe173b9714610903575b600080fd5b34156101fa57600080fd5b6102ce600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505060ff8535169460208101359450604001359250610916915050565b005b34156102db57600080fd5b6102e3610af6565b60405190815260200160405180910390f35b341561030057600080fd5b6102ce600160a060020a0360043516610b8a565b341561031f57600080fd5b6102ce600460a481600560a06040519081016040529190828260a080828437820191505050505091908060a001906005806020026040519081016040529190828260a08082843750939550610bc6945050505050565b341561038057600080fd5b610394600160a060020a0360043516610c5b565b6040516001608060020a039092168252600f90810b900b60208201526040908101905180910390f35b34156103c857600080fd5b6102ce600160a060020a0360043516610c82565b34156103e757600080fd5b6102ce600435610cbe565b34156103fd57600080fd5b6102ce600435610e73565b341561041357600080fd5b6102ce600160a060020a03600435166024356044351515610ea4565b341561043a57600080fd5b6102ce611045565b341561044d57600080fd5b6102e3600160a060020a036004351661106d565b341561046c57600080fd5b6102e3600160a060020a036004351661107f565b341561048b57600080fd5b6102e3611091565b341561049e57600080fd5b6102e3611097565b34156104b157600080fd5b6102ce600160a060020a036004351660ff60243516604435606435608435151561109d565b34156104e157600080fd5b6102e3600160a060020a036004351661135a565b341561050057600080fd5b6102e361136c565b341561051357600080fd5b6102e3611373565b341561052657600080fd5b61052e611379565b604051600160a060020a03909116815260200160405180910390f35b341561055557600080fd5b6102ce600160a060020a036004351660243560ff60443516606435608435611388565b341561058357600080fd5b6102ce600160a060020a03600435166115f4565b34156105a257600080fd5b6102e361167a565b34156105b557600080fd5b6102e3611680565b34156105c857600080fd5b6102e37bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960043516611686565b34156105fd57600080fd5b610611600160a060020a0360043516611698565b604051901515815260200160405180910390f35b341561063057600080fd5b6102ce600160a060020a03600435166116ad565b341561064f57600080fd5b61052e6116ec565b341561066257600080fd5b610611600160a060020a03600435166116fb565b341561068157600080fd5b6102ce600435611710565b341561069757600080fd5b6102ce600160a060020a0360043516611741565b34156106b657600080fd5b6102ce600435611780565b34156106cc57600080fd5b6102ce6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505050509135151591506117ba9050565b341561081f57600080fd5b6102ce6119bc565b341561083257600080fd5b6102ce600435600f0b6001608060020a036024351660ff6044351660643560843560a43515156119df565b341561086857600080fd5b6102e3611b29565b341561087b57600080fd5b6102ce611b2f565b341561088e57600080fd5b6102ce600160a060020a0360043516602435611b4a565b34156108b057600080fd5b6102ce600435611c25565b34156108c657600080fd5b610611600160a060020a0360043516602435611c61565b34156108e857600080fd5b6102ce611d41565b34156108fb57600080fd5b6102ce611e0f565b341561090e57600080fd5b6102e3611e31565b600080610927888888888888611e37565b915033600160a060020a031682600160a060020a03161415156109c9576005546103e889516103000281151561095957fe5b0460390102905061098f6009600084600160a060020a0316600160a060020a031681526020019081526020016000205482611f9a565b600160a060020a0383166000908152600960205260409020556008546109b59082611f9a565b6008556007546109c59082611fac565b6007555b7f1139e9be34b0b8aee07eb5c072c11de928d5e4c6d1b29bc68aea129464b62b0082898989856040518086600160a060020a0316600160a060020a03168152602001806020018060200180602001858152602001848103845288818151815260200191508051906020019060200280838360005b83811015610a55578082015183820152602001610a3d565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015610a94578082015183820152602001610a7c565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015610ad3578082015183820152602001610abb565b505050509050019850505050505050505060405180910390a15050505050505050565b600254600090610b8590600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b4d57600080fd5b5af11515610b5a57600080fd5b50505060405180519050620186a0610b76600854600754611fac565b811515610b7f57fe5b04611f9a565b905090565b60005433600160a060020a03908116911614610ba557600080fd5b600160a060020a03166000908152600460205260409020805460ff19169055565b6000805433600160a060020a03908116911614610be257600080fd5b5060005b60058160ff161015610c56578160ff821660058110610c0157fe5b6020020151600660008560ff851660058110610c1957fe5b60200201517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602081019190915260400160002055600101610be6565b505050565b6010602052600090815260409020546001608060020a03811690608060020a9004600f0b82565b60005433600160a060020a03908116911614610c9d57600080fd5b600160a060020a03166000908152600360205260409020805460ff19169055565b6000806001541115610cd45762278d0042016001555b600d54821115610ce357600080fd5b600160a060020a0333166000908152600a6020526040812054118015610d205750600160a060020a0333166000908152600a602052604090205442115b1515610d2b57600080fd5b600160a060020a0333166000908152600a6020526040812055610d5182620186a0611fd0565b600160a060020a033316600090815260096020526040902054909150610d779082611f9a565b600160a060020a033316600090815260096020526040902055600854610d9d9082611f9a565b600855600254600160a060020a031663a9059cbb338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610df657600080fd5b5af11515610e0357600080fd5b505050604051805190501515610e1557fe5b7fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc63333846000604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050565b600160a060020a03331660009081526003602052604090205460ff161515610e9a57600080fd5b620186a002600d55565b60008060006001546000141515610eba57600080fd5b60008511610ec757600080fd5b610ed485620186a0611fd0565b92508315610f0257610ee4611ff1565b9150610ef08383611f9a565b9250610efe60075483611fac565b6007555b600160a060020a038616600090815260096020526040902054610f259084611fac565b600c54909150811115610f3757600080fd5b600254600160a060020a03166323b872dd33308860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610f9a57600080fd5b5af11515610fa757600080fd5b505050604051805190501515610fb957fe5b600160a060020a0386166000908152600960205260409020819055600854610fe19084611fac565b6008557f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158686846040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1505050505050565b60005433600160a060020a0390811691161461106057600080fd5b61106b60085461204c565b565b600a6020526000908152604090205481565b600b6020526000908152604090205481565b600c5481565b60085481565b600160a060020a03331660009081526003602052604081205481908190819060ff1615156110ca57600080fd5b600060015411156110df5762278d0042016001555b6001308a6040516c01000000000000000000000000600160a060020a03938416810282529190921602601482015260280160405180910390208989896040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561116d57600080fd5b505060206040510351935060009250841561118d5761118a611ff1565b92505b600160a060020a0384166000908152600960205260409020546111b09084611f9a565b9150620186a082116111c157600080fd5b600854600160a060020a038516600090815260096020526040902054620186a0909304926111ef9190611f9a565b600855600160a060020a03808516600090815260096020526040808220919091556002549091169063a9059cbb908b9085905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561126257600080fd5b5af1151561126f57600080fd5b50505060405180519050151561128157fe5b7fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc6848a8486604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15087600160a060020a03811663ef6506db858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561133057600080fd5b5af1151561133d57600080fd5b50505060405180519050151561134f57fe5b505050505050505050565b60096020526000908152604090205481565b620186a081565b600d5481565b600054600160a060020a031681565b600160a060020a0333166000908152600360205260408120548190819060ff1615156113b357600080fd5b600060015411156113c85762278d0042016001555b600160a060020a0388166000908152600b602052604090819020546001918a918a9151600160a060020a03939093166c010000000000000000000000000283526014830191909152603482015260540160405180910390208787876040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561147557600080fd5b505060206040510351600160a060020a0389166000908152600b602052604090208054600101905592506114a7611ff1565b91506114bf6114b988620186a0611fd0565b83611fac565b90506114cd60075483611fac565b600755600160a060020a0383166000908152600960205260409020546114f39082611f9a565b600160a060020a0384166000908152600960205260409020556008546115199082611f9a565b600855600254600160a060020a031663a9059cbb898960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561157257600080fd5b5af1151561157f57600080fd5b50505060405180519050151561159157fe5b7fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc683898985604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050505050505050565b60005433600160a060020a0390811691161461160f57600080fd5b60005461162490600160a060020a0316610c82565b61162d816116ad565b60005461164290600160a060020a0316610b8a565b61164b81611741565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015481565b600e5481565b60066020526000908152604090205481565b60046020526000908152604090205460ff1681565b60005433600160a060020a039081169116146116c857600080fd5b600160a060020a03166000908152600360205260409020805460ff19166001179055565b600f54600160a060020a031681565b60036020526000908152604090205460ff1681565b600160a060020a03331660009081526003602052604090205460ff16151561173757600080fd5b620186a002600c55565b60005433600160a060020a0390811691161461175c57600080fd5b600160a060020a03166000908152600460205260409020805460ff19166001179055565b600160a060020a03331660009081526003602052604090205460ff1615156117a757600080fd5b61271081106117b557600080fd5b600555565b600160a060020a0333166000908152600360205260408120548190819060ff1615156117e557600080fd5b87518951146117f357600080fd5b865189511461180157600080fd5b855189511461180f57600080fd5b845189511461181d57600080fd5b60328951111561182c57600080fd5b6000915083156118415761183e611ff1565b91505b611857600754611852848c51611fd0565b611fac565b6007555060005b88518160ff16101561134f576001898260ff168151811061187b57fe5b90602001906020020151898360ff168151811061189457fe5b90602001906020020151604051608060020a600f93840b90930b830281526001608060020a0390911690910260108201526020016040518091039020888360ff16815181106118df57fe5b90602001906020020151888460ff16815181106118f857fe5b90602001906020020151888560ff168151811061191157fe5b906020019060200201516040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561196d57600080fd5b50506020604051035192506119b4838a8360ff168151811061198b57fe5b906020019060200201518a8460ff16815181106119a457fe5b906020019060200201518561214f565b60010161185e565b600e54600160a060020a0333166000908152600a60205260409020429091019055565b6000806119ef88888888886122ae565b91506000905033600160a060020a031682600160a060020a03161415611af357600360006001848b8b6040516c01000000000000000000000000600160a060020a03909416939093028352608060020a600f92830b90920b820260148401526001608060020a031602602482015260340160405180910390208989896040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515611abd57600080fd5b505060206040510351600160a060020a0316815260208101919091526040016000205460ff161515611aee57600080fd5b611b13565b8215611b1357611b01611ff1565b9050611b0f60075482611fac565b6007555b611b1f8289898461214f565b5050505050505050565b60075481565b600160a060020a0333166000908152600a6020526040812055565b600160a060020a03331660009081526003602052604090205460ff161515611b7157600080fd5b611b79610af6565b811115611b8557600080fd5b600160a060020a03821660009081526004602052604090205460ff161515611bac57600080fd5b600254600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611c0257600080fd5b5af11515611c0f57600080fd5b505050604051805190501515611c2157fe5b5050565b600160a060020a03331660009081526003602052604090205460ff161515611c4c57600080fd5b62015180811115611c5c57600080fd5b600e55565b600f54600090819033600160a060020a03908116911614611c8157600080fd5b611c8e83620186a0611fd0565b600160a060020a038516600090815260096020526040902054909150611cb49082611fac565b600160a060020a038516600090815260096020526040902055600854611cda9082611fac565b6008557f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15848460006040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15060019392505050565b600160a060020a03331660009081526003602052604081205460ff161515611d6857600080fd5b50600754620186a0900460008111611d7c57fe5b611d8d600754620186a08302611f9a565b600755600254600054600160a060020a039182169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611ded57600080fd5b5af11515611dfa57600080fd5b505050604051805190501515611e0c57fe5b50565b60005433600160a060020a03908116911614611e2a57600080fd5b6000600155565b60055481565b600080600188888860405180848051906020019060200280838360005b83811015611e6c578082015183820152602001611e54565b50505050905001838051906020019060200280838360005b83811015611e9c578082015183820152602001611e84565b50505050905001828051906020019060200280838360005b83811015611ecc578082015183820152602001611eb4565b50505050905001935050505060405180910390208686866040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515611f3557600080fd5b505060206040510351600160a060020a03331660009081526003602052604090205490915060ff1615611f6a57809150611f8f565b600160a060020a03811660009081526003602052604090205460ff16156101ea573391505b509695505050505050565b600082821115611fa657fe5b50900390565b6000828201838110801590611fc15750828110155b1515611fc957fe5b9392505050565b6000828202831580611fc15750828482811515611fe957fe5b0414611fc957fe5b600080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260066020526040812054600554633b9aca009161203d916120379190611fd0565b3a611fd0565b81151561204657fe5b04905090565b600154151561205f5762278d0042016001555b42600154108061206d575080155b15611e0c57600254600054600160a060020a039182169163a9059cbb9116826370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156120d057600080fd5b5af115156120dd57600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561212a57600080fd5b5af1151561213757600080fd5b50505060405180515050600054600160a060020a0316ff5b600160a060020a038416600090815260106020526040812080549091906001608060020a039081169085161161218457600080fd5b815461219e9087908790608060020a9004600f0b86612376565b90506040805190810160409081526001608060020a0386168252600f87900b602080840191909152600160a060020a0389166000908152601090915220815181546fffffffffffffffffffffffffffffffff19166001608060020a039190911617815560208201518154600f9190910b6001608060020a03908116608060020a029116179055507fbbddc02bfa2e7cedacea185a3820c053215b120e102dd6de97b11d4ba8897ab886858784876040518086600160a060020a0316600160a060020a03168152602001856001608060020a03166001608060020a0316815260200184600f0b600f0b81526020018381526020018281526020019550505050505060405180910390a1505050505050565b600160a060020a03331660009081526003602052604081205460ff161561236a5760018686604051608060020a600f93840b90930b830281526001608060020a03909116909102601082015260200160405180910390208585856040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561235a57600080fd5b505060206040510351905061236d565b50335b95945050505050565b600080600061238b86600f0b86600f0b612466565b92506123978385612466565b915060008212156123f957816000190290506123b560085482611f9a565b600855600160a060020a0387166000908152600960205260409020546123db9082611f9a565b600160a060020a03881660009081526009602052604090205561245c565b508080620186a0612408610af6565b021161241057fe5b61241c60085482611fac565b600855600160a060020a0387166000908152600960205260409020546124429082611fac565b600160a060020a0388166000908152600960205260409020555b5050949350505050565b6000808212156124815781830383901361247c57fe5b611fa6565b81830383901315611fa657fe00a165627a7a72305820aaf60cb9a20a5e21e95e4521df61ba46006370bcd0afadba1df8215f4e9f749d0029000000000000000000000000dfec0328a07c399a7e32364defd3be6aab9365d3000000000000000000000000801f67ec764459f9ec3cb9d6b998547f2de6ed3f00000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000073
Deployed Bytecode
0x6060604052600436106101ea5763ffffffff60e060020a6000350416630102305b81146101ef5780630c657eb0146102d05780631ae32b82146102f55780631e33a6d514610314578063203faa891461037557806327c97fa5146103bd5780632e1a7d4d146103dc5780633926384d146103f25780633edd11281461040857806343d726d61461042f5780634659f42a146104425780634f23618f146104615780636083e59a14610480578063651f066a146104935780636bf06fde146104a657806370a08231146104d65780637ab4e968146104f55780638c0ff5b7146105085780638da5cb5b1461051b5780639607610a1461054a578063a6f9dae114610578578063a985408714610597578063aa13e8c2146105aa578063ad8ce06b146105bd578063b2f5e6c2146105f2578063b6a5d7de14610625578063b719d03214610644578063b918161114610657578063bb371fdd14610676578063bb7502321461068c578063bf1fe420146106ab578063c97b6d1f146106c1578063dbaf214514610814578063de48ff5214610827578063e1538b321461085d578063e714a02814610870578063e9e3074614610883578063ebc73e65146108a5578063ef6506db146108bb578063f66e86bb146108dd578063fcfff16f146108f0578063fe173b9714610903575b600080fd5b34156101fa57600080fd5b6102ce600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505060ff8535169460208101359450604001359250610916915050565b005b34156102db57600080fd5b6102e3610af6565b60405190815260200160405180910390f35b341561030057600080fd5b6102ce600160a060020a0360043516610b8a565b341561031f57600080fd5b6102ce600460a481600560a06040519081016040529190828260a080828437820191505050505091908060a001906005806020026040519081016040529190828260a08082843750939550610bc6945050505050565b341561038057600080fd5b610394600160a060020a0360043516610c5b565b6040516001608060020a039092168252600f90810b900b60208201526040908101905180910390f35b34156103c857600080fd5b6102ce600160a060020a0360043516610c82565b34156103e757600080fd5b6102ce600435610cbe565b34156103fd57600080fd5b6102ce600435610e73565b341561041357600080fd5b6102ce600160a060020a03600435166024356044351515610ea4565b341561043a57600080fd5b6102ce611045565b341561044d57600080fd5b6102e3600160a060020a036004351661106d565b341561046c57600080fd5b6102e3600160a060020a036004351661107f565b341561048b57600080fd5b6102e3611091565b341561049e57600080fd5b6102e3611097565b34156104b157600080fd5b6102ce600160a060020a036004351660ff60243516604435606435608435151561109d565b34156104e157600080fd5b6102e3600160a060020a036004351661135a565b341561050057600080fd5b6102e361136c565b341561051357600080fd5b6102e3611373565b341561052657600080fd5b61052e611379565b604051600160a060020a03909116815260200160405180910390f35b341561055557600080fd5b6102ce600160a060020a036004351660243560ff60443516606435608435611388565b341561058357600080fd5b6102ce600160a060020a03600435166115f4565b34156105a257600080fd5b6102e361167a565b34156105b557600080fd5b6102e3611680565b34156105c857600080fd5b6102e37bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960043516611686565b34156105fd57600080fd5b610611600160a060020a0360043516611698565b604051901515815260200160405180910390f35b341561063057600080fd5b6102ce600160a060020a03600435166116ad565b341561064f57600080fd5b61052e6116ec565b341561066257600080fd5b610611600160a060020a03600435166116fb565b341561068157600080fd5b6102ce600435611710565b341561069757600080fd5b6102ce600160a060020a0360043516611741565b34156106b657600080fd5b6102ce600435611780565b34156106cc57600080fd5b6102ce6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437509496505050509135151591506117ba9050565b341561081f57600080fd5b6102ce6119bc565b341561083257600080fd5b6102ce600435600f0b6001608060020a036024351660ff6044351660643560843560a43515156119df565b341561086857600080fd5b6102e3611b29565b341561087b57600080fd5b6102ce611b2f565b341561088e57600080fd5b6102ce600160a060020a0360043516602435611b4a565b34156108b057600080fd5b6102ce600435611c25565b34156108c657600080fd5b610611600160a060020a0360043516602435611c61565b34156108e857600080fd5b6102ce611d41565b34156108fb57600080fd5b6102ce611e0f565b341561090e57600080fd5b6102e3611e31565b600080610927888888888888611e37565b915033600160a060020a031682600160a060020a03161415156109c9576005546103e889516103000281151561095957fe5b0460390102905061098f6009600084600160a060020a0316600160a060020a031681526020019081526020016000205482611f9a565b600160a060020a0383166000908152600960205260409020556008546109b59082611f9a565b6008556007546109c59082611fac565b6007555b7f1139e9be34b0b8aee07eb5c072c11de928d5e4c6d1b29bc68aea129464b62b0082898989856040518086600160a060020a0316600160a060020a03168152602001806020018060200180602001858152602001848103845288818151815260200191508051906020019060200280838360005b83811015610a55578082015183820152602001610a3d565b50505050905001848103835287818151815260200191508051906020019060200280838360005b83811015610a94578082015183820152602001610a7c565b50505050905001848103825286818151815260200191508051906020019060200280838360005b83811015610ad3578082015183820152602001610abb565b505050509050019850505050505050505060405180910390a15050505050505050565b600254600090610b8590600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b4d57600080fd5b5af11515610b5a57600080fd5b50505060405180519050620186a0610b76600854600754611fac565b811515610b7f57fe5b04611f9a565b905090565b60005433600160a060020a03908116911614610ba557600080fd5b600160a060020a03166000908152600460205260409020805460ff19169055565b6000805433600160a060020a03908116911614610be257600080fd5b5060005b60058160ff161015610c56578160ff821660058110610c0157fe5b6020020151600660008560ff851660058110610c1957fe5b60200201517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602081019190915260400160002055600101610be6565b505050565b6010602052600090815260409020546001608060020a03811690608060020a9004600f0b82565b60005433600160a060020a03908116911614610c9d57600080fd5b600160a060020a03166000908152600360205260409020805460ff19169055565b6000806001541115610cd45762278d0042016001555b600d54821115610ce357600080fd5b600160a060020a0333166000908152600a6020526040812054118015610d205750600160a060020a0333166000908152600a602052604090205442115b1515610d2b57600080fd5b600160a060020a0333166000908152600a6020526040812055610d5182620186a0611fd0565b600160a060020a033316600090815260096020526040902054909150610d779082611f9a565b600160a060020a033316600090815260096020526040902055600854610d9d9082611f9a565b600855600254600160a060020a031663a9059cbb338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610df657600080fd5b5af11515610e0357600080fd5b505050604051805190501515610e1557fe5b7fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc63333846000604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050565b600160a060020a03331660009081526003602052604090205460ff161515610e9a57600080fd5b620186a002600d55565b60008060006001546000141515610eba57600080fd5b60008511610ec757600080fd5b610ed485620186a0611fd0565b92508315610f0257610ee4611ff1565b9150610ef08383611f9a565b9250610efe60075483611fac565b6007555b600160a060020a038616600090815260096020526040902054610f259084611fac565b600c54909150811115610f3757600080fd5b600254600160a060020a03166323b872dd33308860405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610f9a57600080fd5b5af11515610fa757600080fd5b505050604051805190501515610fb957fe5b600160a060020a0386166000908152600960205260409020819055600854610fe19084611fac565b6008557f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a158686846040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1505050505050565b60005433600160a060020a0390811691161461106057600080fd5b61106b60085461204c565b565b600a6020526000908152604090205481565b600b6020526000908152604090205481565b600c5481565b60085481565b600160a060020a03331660009081526003602052604081205481908190819060ff1615156110ca57600080fd5b600060015411156110df5762278d0042016001555b6001308a6040516c01000000000000000000000000600160a060020a03938416810282529190921602601482015260280160405180910390208989896040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561116d57600080fd5b505060206040510351935060009250841561118d5761118a611ff1565b92505b600160a060020a0384166000908152600960205260409020546111b09084611f9a565b9150620186a082116111c157600080fd5b600854600160a060020a038516600090815260096020526040902054620186a0909304926111ef9190611f9a565b600855600160a060020a03808516600090815260096020526040808220919091556002549091169063a9059cbb908b9085905160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561126257600080fd5b5af1151561126f57600080fd5b50505060405180519050151561128157fe5b7fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc6848a8486604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15087600160a060020a03811663ef6506db858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561133057600080fd5b5af1151561133d57600080fd5b50505060405180519050151561134f57fe5b505050505050505050565b60096020526000908152604090205481565b620186a081565b600d5481565b600054600160a060020a031681565b600160a060020a0333166000908152600360205260408120548190819060ff1615156113b357600080fd5b600060015411156113c85762278d0042016001555b600160a060020a0388166000908152600b602052604090819020546001918a918a9151600160a060020a03939093166c010000000000000000000000000283526014830191909152603482015260540160405180910390208787876040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561147557600080fd5b505060206040510351600160a060020a0389166000908152600b602052604090208054600101905592506114a7611ff1565b91506114bf6114b988620186a0611fd0565b83611fac565b90506114cd60075483611fac565b600755600160a060020a0383166000908152600960205260409020546114f39082611f9a565b600160a060020a0384166000908152600960205260409020556008546115199082611f9a565b600855600254600160a060020a031663a9059cbb898960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561157257600080fd5b5af1151561157f57600080fd5b50505060405180519050151561159157fe5b7fc2b4a290c20fb28939d29f102514fbffd2b73c059ffba8b78250c94161d5fcc683898985604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050505050505050565b60005433600160a060020a0390811691161461160f57600080fd5b60005461162490600160a060020a0316610c82565b61162d816116ad565b60005461164290600160a060020a0316610b8a565b61164b81611741565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015481565b600e5481565b60066020526000908152604090205481565b60046020526000908152604090205460ff1681565b60005433600160a060020a039081169116146116c857600080fd5b600160a060020a03166000908152600360205260409020805460ff19166001179055565b600f54600160a060020a031681565b60036020526000908152604090205460ff1681565b600160a060020a03331660009081526003602052604090205460ff16151561173757600080fd5b620186a002600c55565b60005433600160a060020a0390811691161461175c57600080fd5b600160a060020a03166000908152600460205260409020805460ff19166001179055565b600160a060020a03331660009081526003602052604090205460ff1615156117a757600080fd5b61271081106117b557600080fd5b600555565b600160a060020a0333166000908152600360205260408120548190819060ff1615156117e557600080fd5b87518951146117f357600080fd5b865189511461180157600080fd5b855189511461180f57600080fd5b845189511461181d57600080fd5b60328951111561182c57600080fd5b6000915083156118415761183e611ff1565b91505b611857600754611852848c51611fd0565b611fac565b6007555060005b88518160ff16101561134f576001898260ff168151811061187b57fe5b90602001906020020151898360ff168151811061189457fe5b90602001906020020151604051608060020a600f93840b90930b830281526001608060020a0390911690910260108201526020016040518091039020888360ff16815181106118df57fe5b90602001906020020151888460ff16815181106118f857fe5b90602001906020020151888560ff168151811061191157fe5b906020019060200201516040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561196d57600080fd5b50506020604051035192506119b4838a8360ff168151811061198b57fe5b906020019060200201518a8460ff16815181106119a457fe5b906020019060200201518561214f565b60010161185e565b600e54600160a060020a0333166000908152600a60205260409020429091019055565b6000806119ef88888888886122ae565b91506000905033600160a060020a031682600160a060020a03161415611af357600360006001848b8b6040516c01000000000000000000000000600160a060020a03909416939093028352608060020a600f92830b90920b820260148401526001608060020a031602602482015260340160405180910390208989896040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515611abd57600080fd5b505060206040510351600160a060020a0316815260208101919091526040016000205460ff161515611aee57600080fd5b611b13565b8215611b1357611b01611ff1565b9050611b0f60075482611fac565b6007555b611b1f8289898461214f565b5050505050505050565b60075481565b600160a060020a0333166000908152600a6020526040812055565b600160a060020a03331660009081526003602052604090205460ff161515611b7157600080fd5b611b79610af6565b811115611b8557600080fd5b600160a060020a03821660009081526004602052604090205460ff161515611bac57600080fd5b600254600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611c0257600080fd5b5af11515611c0f57600080fd5b505050604051805190501515611c2157fe5b5050565b600160a060020a03331660009081526003602052604090205460ff161515611c4c57600080fd5b62015180811115611c5c57600080fd5b600e55565b600f54600090819033600160a060020a03908116911614611c8157600080fd5b611c8e83620186a0611fd0565b600160a060020a038516600090815260096020526040902054909150611cb49082611fac565b600160a060020a038516600090815260096020526040902055600854611cda9082611fac565b6008557f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a15848460006040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a15060019392505050565b600160a060020a03331660009081526003602052604081205460ff161515611d6857600080fd5b50600754620186a0900460008111611d7c57fe5b611d8d600754620186a08302611f9a565b600755600254600054600160a060020a039182169163a9059cbb91168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611ded57600080fd5b5af11515611dfa57600080fd5b505050604051805190501515611e0c57fe5b50565b60005433600160a060020a03908116911614611e2a57600080fd5b6000600155565b60055481565b600080600188888860405180848051906020019060200280838360005b83811015611e6c578082015183820152602001611e54565b50505050905001838051906020019060200280838360005b83811015611e9c578082015183820152602001611e84565b50505050905001828051906020019060200280838360005b83811015611ecc578082015183820152602001611eb4565b50505050905001935050505060405180910390208686866040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af11515611f3557600080fd5b505060206040510351600160a060020a03331660009081526003602052604090205490915060ff1615611f6a57809150611f8f565b600160a060020a03811660009081526003602052604090205460ff16156101ea573391505b509695505050505050565b600082821115611fa657fe5b50900390565b6000828201838110801590611fc15750828110155b1515611fc957fe5b9392505050565b6000828202831580611fc15750828482811515611fe957fe5b0414611fc957fe5b600080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260066020526040812054600554633b9aca009161203d916120379190611fd0565b3a611fd0565b81151561204657fe5b04905090565b600154151561205f5762278d0042016001555b42600154108061206d575080155b15611e0c57600254600054600160a060020a039182169163a9059cbb9116826370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156120d057600080fd5b5af115156120dd57600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561212a57600080fd5b5af1151561213757600080fd5b50505060405180515050600054600160a060020a0316ff5b600160a060020a038416600090815260106020526040812080549091906001608060020a039081169085161161218457600080fd5b815461219e9087908790608060020a9004600f0b86612376565b90506040805190810160409081526001608060020a0386168252600f87900b602080840191909152600160a060020a0389166000908152601090915220815181546fffffffffffffffffffffffffffffffff19166001608060020a039190911617815560208201518154600f9190910b6001608060020a03908116608060020a029116179055507fbbddc02bfa2e7cedacea185a3820c053215b120e102dd6de97b11d4ba8897ab886858784876040518086600160a060020a0316600160a060020a03168152602001856001608060020a03166001608060020a0316815260200184600f0b600f0b81526020018381526020018281526020019550505050505060405180910390a1505050505050565b600160a060020a03331660009081526003602052604081205460ff161561236a5760018686604051608060020a600f93840b90930b830281526001608060020a03909116909102601082015260200160405180910390208585856040516000815260200160405260405193845260ff9092166020808501919091526040808501929092526060840192909252608090920191516020810390808403906000865af1151561235a57600080fd5b505060206040510351905061236d565b50335b95945050505050565b600080600061238b86600f0b86600f0b612466565b92506123978385612466565b915060008212156123f957816000190290506123b560085482611f9a565b600855600160a060020a0387166000908152600960205260409020546123db9082611f9a565b600160a060020a03881660009081526009602052604090205561245c565b508080620186a0612408610af6565b021161241057fe5b61241c60085482611fac565b600855600160a060020a0387166000908152600960205260409020546124429082611fac565b600160a060020a0388166000908152600960205260409020555b5050949350505050565b6000808212156124815781830383901361247c57fe5b611fa6565b81830383901315611fa657fe00a165627a7a72305820aaf60cb9a20a5e21e95e4521df61ba46006370bcd0afadba1df8215f4e9f749d0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000dfec0328a07c399a7e32364defd3be6aab9365d3000000000000000000000000801f67ec764459f9ec3cb9d6b998547f2de6ed3f00000000000000000000000000000000000000000000000000000000000003e80000000000000000000000000000000000000000000000000000000000000073
-----Decoded View---------------
Arg [0] : predecessorAddress (address): 0xDFEC0328a07C399A7e32364DEfd3bE6aaB9365D3
Arg [1] : tokenContract (address): 0x801f67eC764459F9EC3Cb9d6b998547f2DE6Ed3f
Arg [2] : depositLimit (uint256): 1000
Arg [3] : kGasPrice (uint256): 115
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000dfec0328a07c399a7e32364defd3be6aab9365d3
Arg [1] : 000000000000000000000000801f67ec764459f9ec3cb9d6b998547f2de6ed3f
Arg [2] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000073
Swarm Source
bzzr://aaf60cb9a20a5e21e95e4521df61ba46006370bcd0afadba1df8215f4e9f749d
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.