Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 25 from a total of 90 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Execute | 12824211 | 1716 days ago | IN | 0 ETH | 0.00341041 | ||||
| Sign | 12824202 | 1716 days ago | IN | 0 ETH | 0.0044832 | ||||
| Sign | 12823310 | 1717 days ago | IN | 0 ETH | 0.00558463 | ||||
| Execute | 12820643 | 1717 days ago | IN | 0 ETH | 0.0023362 | ||||
| Sign | 12820622 | 1717 days ago | IN | 0 ETH | 0.00341577 | ||||
| Sign | 12819701 | 1717 days ago | IN | 0 ETH | 0.00294074 | ||||
| Execute | 11796126 | 1875 days ago | IN | 0 ETH | 0.00869248 | ||||
| Sign | 11796094 | 1875 days ago | IN | 0 ETH | 0.01474802 | ||||
| Sign | 11731227 | 1885 days ago | IN | 0 ETH | 0.00714836 | ||||
| Execute | 10881256 | 2016 days ago | IN | 0 ETH | 0.02724313 | ||||
| Sign | 10881152 | 2016 days ago | IN | 0 ETH | 0.0526715 | ||||
| Sign | 10881032 | 2016 days ago | IN | 0 ETH | 0.06896208 | ||||
| Execute | 9688123 | 2200 days ago | IN | 0 ETH | 0.00031557 | ||||
| Sign | 9688108 | 2200 days ago | IN | 0 ETH | 0.00052776 | ||||
| Sign | 9683286 | 2201 days ago | IN | 0 ETH | 0.00182213 | ||||
| Execute | 9667933 | 2204 days ago | IN | 0 ETH | 0.00009082 | ||||
| Sign | 9667903 | 2204 days ago | IN | 0 ETH | 0.00021173 | ||||
| Sign | 9664151 | 2204 days ago | IN | 0 ETH | 0.00490574 | ||||
| Execute | 8871889 | 2334 days ago | IN | 0 ETH | 0.00004376 | ||||
| Sign | 8871871 | 2334 days ago | IN | 0 ETH | 0.00009939 | ||||
| Sign | 8871846 | 2334 days ago | IN | 0 ETH | 0.00013494 | ||||
| Execute | 8871749 | 2334 days ago | IN | 0 ETH | 0.00003962 | ||||
| Sign | 8871736 | 2334 days ago | IN | 0 ETH | 0.00009939 | ||||
| Sign | 8871608 | 2334 days ago | IN | 0 ETH | 0.00026856 | ||||
| Sign | 8631983 | 2372 days ago | IN | 0 ETH | 0.00050689 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
StabilityBoardProxy
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-11-14
*/
// File: contracts/generic/SafeMath.sol
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
TODO: check against ds-math: https://blog.dapphub.com/ds-math/
TODO: move roundedDiv to a sep lib? (eg. Math.sol)
TODO: more unit tests!
*/
pragma solidity 0.4.24;
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a * b;
require(a == 0 || c / a == b, "mul overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "div by 0"); // Solidity automatically throws for div by 0 but require to emit reason
uint256 c = a / b;
// require(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
require(b <= a, "sub underflow");
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "add overflow");
return c;
}
// Division, round to nearest integer, round half up
function roundedDiv(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "div by 0"); // Solidity automatically throws for div by 0 but require to emit reason
uint256 halfB = (b % 2 == 0) ? (b / 2) : (b / 2 + 1);
return (a % b >= halfB) ? (a / b + 1) : (a / b);
}
// Division, always rounds up
function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "div by 0"); // Solidity automatically throws for div by 0 but require to emit reason
return (a % b != 0) ? (a / b + 1) : (a / b);
}
function min(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? b : a;
}
}
// File: contracts/generic/MultiSig.sol
/* Abstract multisig contract to allow multi approval execution of atomic contracts scripts
e.g. migrations or settings.
* Script added by signing a script address by a signer (NEW state)
* Script goes to ALLOWED state once a quorom of signers sign it (quorom fx is defined in each derived contracts)
* Script can be signed even in APPROVED state
* APPROVED scripts can be executed only once.
- if script succeeds then state set to DONE
- If script runs out of gas or reverts then script state set to FAILEd and not allowed to run again
(To avoid leaving "behind" scripts which fail in a given state but eventually execute in the future)
* Scripts can be cancelled by an other multisig script approved and calling cancelScript()
* Adding/removing signers is only via multisig approved scripts using addSigners / removeSigners fxs
*/
pragma solidity 0.4.24;
contract MultiSig {
using SafeMath for uint256;
mapping(address => bool) public isSigner;
address[] public allSigners; // all signers, even the disabled ones
// NB: it can contain duplicates when a signer is added, removed then readded again
// the purpose of this array is to being able to iterate on signers in isSigner
uint public activeSignersCount;
enum ScriptState {New, Approved, Done, Cancelled, Failed}
struct Script {
ScriptState state;
uint signCount;
mapping(address => bool) signedBy;
address[] allSigners;
}
mapping(address => Script) public scripts;
address[] public scriptAddresses;
event SignerAdded(address signer);
event SignerRemoved(address signer);
event ScriptSigned(address scriptAddress, address signer);
event ScriptApproved(address scriptAddress);
event ScriptCancelled(address scriptAddress);
event ScriptExecuted(address scriptAddress, bool result);
constructor() public {
// deployer address is the first signer. Deployer can configure new contracts by itself being the only "signer"
// The first script which sets the new contracts live should add signers and revoke deployer's signature right
isSigner[msg.sender] = true;
allSigners.push(msg.sender);
activeSignersCount = 1;
emit SignerAdded(msg.sender);
}
function sign(address scriptAddress) public {
require(isSigner[msg.sender], "sender must be signer");
Script storage script = scripts[scriptAddress];
require(script.state == ScriptState.Approved || script.state == ScriptState.New,
"script state must be New or Approved");
require(!script.signedBy[msg.sender], "script must not be signed by signer yet");
if (script.allSigners.length == 0) {
// first sign of a new script
scriptAddresses.push(scriptAddress);
}
script.allSigners.push(msg.sender);
script.signedBy[msg.sender] = true;
script.signCount = script.signCount.add(1);
emit ScriptSigned(scriptAddress, msg.sender);
if (checkQuorum(script.signCount)) {
script.state = ScriptState.Approved;
emit ScriptApproved(scriptAddress);
}
}
function execute(address scriptAddress) public returns (bool result) {
// only allow execute to signers to avoid someone set an approved script failed by calling it with low gaslimit
require(isSigner[msg.sender], "sender must be signer");
Script storage script = scripts[scriptAddress];
require(script.state == ScriptState.Approved, "script state must be Approved");
// passing scriptAddress to allow called script access its own public fx-s if needed
if (scriptAddress.delegatecall.gas(gasleft() - 23000)
(abi.encodeWithSignature("execute(address)", scriptAddress))) {
script.state = ScriptState.Done;
result = true;
} else {
script.state = ScriptState.Failed;
result = false;
}
emit ScriptExecuted(scriptAddress, result);
}
function cancelScript(address scriptAddress) public {
require(msg.sender == address(this), "only callable via MultiSig");
Script storage script = scripts[scriptAddress];
require(script.state == ScriptState.Approved || script.state == ScriptState.New,
"script state must be New or Approved");
script.state = ScriptState.Cancelled;
emit ScriptCancelled(scriptAddress);
}
/* requires quorum so it's callable only via a script executed by this contract */
function addSigners(address[] signers) public {
require(msg.sender == address(this), "only callable via MultiSig");
for (uint i= 0; i < signers.length; i++) {
if (!isSigner[signers[i]]) {
require(signers[i] != address(0), "new signer must not be 0x0");
activeSignersCount++;
allSigners.push(signers[i]);
isSigner[signers[i]] = true;
emit SignerAdded(signers[i]);
}
}
}
/* requires quorum so it's callable only via a script executed by this contract */
function removeSigners(address[] signers) public {
require(msg.sender == address(this), "only callable via MultiSig");
for (uint i= 0; i < signers.length; i++) {
if (isSigner[signers[i]]) {
require(activeSignersCount > 1, "must not remove last signer");
activeSignersCount--;
isSigner[signers[i]] = false;
emit SignerRemoved(signers[i]);
}
}
}
/* implement it in derived contract */
function checkQuorum(uint signersCount) internal view returns(bool isQuorum);
function getAllSignersCount() view external returns (uint allSignersCount) {
return allSigners.length;
}
// UI helper fx - Returns signers from offset as [signer id (index in allSigners), address as uint, isActive 0 or 1]
function getSigners(uint offset, uint16 chunkSize)
external view returns(uint[3][]) {
uint limit = SafeMath.min(offset.add(chunkSize), allSigners.length);
uint[3][] memory response = new uint[3][](limit.sub(offset));
for (uint i = offset; i < limit; i++) {
address signerAddress = allSigners[i];
response[i - offset] = [i, uint(signerAddress), isSigner[signerAddress] ? 1 : 0];
}
return response;
}
function getScriptsCount() view external returns (uint scriptsCount) {
return scriptAddresses.length;
}
// UI helper fx - Returns scripts from offset as
// [scriptId (index in scriptAddresses[]), address as uint, state, signCount]
function getScripts(uint offset, uint16 chunkSize)
external view returns(uint[4][]) {
uint limit = SafeMath.min(offset.add(chunkSize), scriptAddresses.length);
uint[4][] memory response = new uint[4][](limit.sub(offset));
for (uint i = offset; i < limit; i++) {
address scriptAddress = scriptAddresses[i];
response[i - offset] = [i, uint(scriptAddress),
uint(scripts[scriptAddress].state), scripts[scriptAddress].signCount];
}
return response;
}
}
// File: contracts/StabilityBoardProxy.sol
/* allows tx to execute if 50% +1 vote of active signers signed */
pragma solidity 0.4.24;
contract StabilityBoardProxy is MultiSig {
function checkQuorum(uint signersCount) internal view returns(bool isQuorum) {
isQuorum = signersCount > activeSignersCount / 2 ;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"offset","type":"uint256"},{"name":"chunkSize","type":"uint16"}],"name":"getSigners","outputs":[{"name":"","type":"uint256[3][]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"offset","type":"uint256"},{"name":"chunkSize","type":"uint16"}],"name":"getScripts","outputs":[{"name":"","type":"uint256[4][]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"activeSignersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"scriptAddress","type":"address"}],"name":"cancelScript","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"scriptAddress","type":"address"}],"name":"execute","outputs":[{"name":"result","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isSigner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"signers","type":"address[]"}],"name":"removeSigners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getScriptsCount","outputs":[{"name":"scriptsCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"scriptAddresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"scripts","outputs":[{"name":"state","type":"uint8"},{"name":"signCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllSignersCount","outputs":[{"name":"allSignersCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allSigners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"signers","type":"address[]"}],"name":"addSigners","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"scriptAddress","type":"address"}],"name":"sign","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"signer","type":"address"}],"name":"SignerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"signer","type":"address"}],"name":"SignerRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"scriptAddress","type":"address"},{"indexed":false,"name":"signer","type":"address"}],"name":"ScriptSigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"scriptAddress","type":"address"}],"name":"ScriptApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"scriptAddress","type":"address"}],"name":"ScriptCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"scriptAddress","type":"address"},{"indexed":false,"name":"result","type":"bool"}],"name":"ScriptExecuted","type":"event"}]Contract Creation Code
608060405260016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060016002819055507f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f2433604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1611da38061013b6000396000f3006080604052600436106100cf576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625e885e146100d4578063072bdbb814610187578063124279a71461023a578063278a5e7c146102655780634b64e492146102a85780637df73e27146103035780638d361e431461035e578063918f644e146103c457806392cf9d45146103ef578063bbd7a3c71461045c578063c06d7744146104c8578063cff6bc21146104f3578063e8906a2d14610560578063f71be837146105c6575b600080fd5b3480156100e057600080fd5b5061010d60048036038101908080359060200190929190803561ffff169060200190929190505050610609565b60405180806020018281038252838181518152602001915080516000925b8184101561017657828490602001906020020151600360200280838360005b8381101561016557808201518184015260208101905061014a565b50505050905001926001019261012b565b925050509250505060405180910390f35b34801561019357600080fd5b506101c060048036038101908080359060200190929190803561ffff169060200190929190505050610795565b60405180806020018281038252838181518152602001915080516000925b8184101561022957828490602001906020020151600460200280838360005b838110156102185780820151818401526020810190506101fd565b5050505090500192600101926101de565b925050509250505060405180910390f35b34801561024657600080fd5b5061024f610967565b6040518082815260200191505060405180910390f35b34801561027157600080fd5b506102a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061096d565b005b3480156102b457600080fd5b506102e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd7565b604051808215151515815260200191505060405180910390f35b34801561030f57600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f92565b604051808215151515815260200191505060405180910390f35b34801561036a57600080fd5b506103c260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610fb2565b005b3480156103d057600080fd5b506103d9611254565b6040518082815260200191505060405180910390f35b3480156103fb57600080fd5b5061041a60048036038101908080359060200190929190505050611261565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129f565b604051808360048111156104ad57fe5b60ff1681526020018281526020019250505060405180910390f35b3480156104d457600080fd5b506104dd6112d0565b6040518082815260200191505060405180910390f35b3480156104ff57600080fd5b5061051e600480360381019080803590602001909291905050506112dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056c57600080fd5b506105c46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061131b565b005b3480156105d257600080fd5b50610607600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b005b60606000606060008061063761062c8761ffff1689611bf090919063ffffffff16565b600180549050611c7a565b935061064c8785611c9390919063ffffffff16565b60405190808252806020026020018201604052801561068557816020015b610672611d31565b81526020019060019003908161066a5790505b5092508691505b83821015610788576001828154811015156106a357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506060604051908101604052808381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020016000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610755576000610758565b60015b60ff168152508388840381518110151561076e57fe5b90602001906020020181905250818060010192505061068c565b8294505050505092915050565b6060600060606000806107c36107b88761ffff1689611bf090919063ffffffff16565b600480549050611c7a565b93506107d88785611c9390919063ffffffff16565b60405190808252806020026020018201604052801561081157816020015b6107fe611d54565b8152602001906001900390816107f65790505b5092508691505b8382101561095a5760048281548110151561082f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506080604051908101604052808381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1660048111156108e557fe5b8152602001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548152508388840381518110151561094057fe5b906020019060200201819052508180600101925050610818565b8294505050505092915050565b60025481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6f6e6c792063616c6c61626c6520766961204d756c746953696700000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016004811115610a6057fe5b8160000160009054906101000a900460ff166004811115610a7d57fe5b1480610ab0575060006004811115610a9157fe5b8160000160009054906101000a900460ff166004811115610aae57fe5b145b1515610b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f736372697074207374617465206d757374206265204e6577206f72204170707281526020017f6f7665640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60038160000160006101000a81548160ff02191690836004811115610b6b57fe5b02179055507f7b746b5db15daca4abb0c3d0538b240af9c0ee2408555a7672b9486276e089e682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f73656e646572206d757374206265207369676e6572000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016004811115610ce857fe5b8160000160009054906101000a900460ff166004811115610d0557fe5b141515610d7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f736372697074207374617465206d75737420626520417070726f76656400000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166159d85a0384604051602401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040527f4b64e492000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b83811015610e7d578082015181840152602081019050610e62565b50505050905090810190601f168015610eaa5780820380516001836020036101000a031916815260200191505b509150506000604051808303818686f49250505015610ef25760028160000160006101000a81548160ff02191690836004811115610ee457fe5b021790555060019150610f1d565b60048160000160006101000a81548160ff02191690836004811115610f1357fe5b0217905550600091505b7f75b84c89903cc67892fc4622e0a18e89fcdecc18d738c9461efa458b1c07653c8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150919050565b60006020528060005260406000206000915054906101000a900460ff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6f6e6c792063616c6c61626c6520766961204d756c746953696700000000000081525060200191505060405180910390fd5b600090505b815181101561125057600080838381518110151561107657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611243576001600254111515611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6d757374206e6f742072656d6f7665206c617374207369676e6572000000000081525060200191505060405180910390fd5b600260008154809291906001900391905055506000806000848481518110151561116d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b82828151811015156111f757fe5b90602001906020020151604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b808060010191505061105c565b5050565b6000600480549050905090565b60048181548110151561127057fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b6000600180549050905090565b6001818154811015156112ec57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6f6e6c792063616c6c61626c6520766961204d756c746953696700000000000081525060200191505060405180910390fd5b600090505b81518110156116785760008083838151811015156113df57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561166b57600073ffffffffffffffffffffffffffffffffffffffff16828281518110151561145d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141515156114f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6e6577207369676e6572206d757374206e6f742062652030783000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001828281518110151561151557fe5b9060200190602002015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600080848481518110151561159557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f24828281518110151561161f57fe5b90602001906020020151604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b80806001019150506113c5565b5050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561173e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f73656e646572206d757374206265207369676e6572000000000000000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506001600481111561178c57fe5b8160000160009054906101000a900460ff1660048111156117a957fe5b14806117dc5750600060048111156117bd57fe5b8160000160009054906101000a900460ff1660048111156117da57fe5b145b1515611876576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f736372697074207374617465206d757374206265204e6577206f72204170707281526020017f6f7665640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f736372697074206d757374206e6f74206265207369676e65642062792073696781526020017f6e6572207965740000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000816003018054905014156119d75760048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b806003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060018160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ab160018260010154611bf090919063ffffffff16565b81600101819055507f0160e036639c0c4048d3a89442ca3eaa8913bb8248f1022470abaf1c751ee03c8233604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1611b5d8160010154611d18565b15611bec5760018160000160006101000a81548160ff02191690836004811115611b8357fe5b02179055507ff74bfc10a1aa03b44f2227324325cd000707b7729af27ab7789e2aa30ee731dd82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000808284019050838110151515611c70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f616464206f766572666c6f77000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310611c895781611c8b565b825b905092915050565b6000828211151515611d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f73756220756e646572666c6f770000000000000000000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b600060028054811515611d2757fe5b0482119050919050565b606060405190810160405280600390602082028038833980820191505090505090565b6080604051908101604052806004906020820280388339808201915050905050905600a165627a7a723058209cd7e5cf88ae91840f5fb12ba2ad5ca780e0e5d9cf317c6e3150a9e5781171c10029
Deployed Bytecode
0x6080604052600436106100cf576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680625e885e146100d4578063072bdbb814610187578063124279a71461023a578063278a5e7c146102655780634b64e492146102a85780637df73e27146103035780638d361e431461035e578063918f644e146103c457806392cf9d45146103ef578063bbd7a3c71461045c578063c06d7744146104c8578063cff6bc21146104f3578063e8906a2d14610560578063f71be837146105c6575b600080fd5b3480156100e057600080fd5b5061010d60048036038101908080359060200190929190803561ffff169060200190929190505050610609565b60405180806020018281038252838181518152602001915080516000925b8184101561017657828490602001906020020151600360200280838360005b8381101561016557808201518184015260208101905061014a565b50505050905001926001019261012b565b925050509250505060405180910390f35b34801561019357600080fd5b506101c060048036038101908080359060200190929190803561ffff169060200190929190505050610795565b60405180806020018281038252838181518152602001915080516000925b8184101561022957828490602001906020020151600460200280838360005b838110156102185780820151818401526020810190506101fd565b5050505090500192600101926101de565b925050509250505060405180910390f35b34801561024657600080fd5b5061024f610967565b6040518082815260200191505060405180910390f35b34801561027157600080fd5b506102a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061096d565b005b3480156102b457600080fd5b506102e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd7565b604051808215151515815260200191505060405180910390f35b34801561030f57600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f92565b604051808215151515815260200191505060405180910390f35b34801561036a57600080fd5b506103c260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610fb2565b005b3480156103d057600080fd5b506103d9611254565b6040518082815260200191505060405180910390f35b3480156103fb57600080fd5b5061041a60048036038101908080359060200190929190505050611261565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046857600080fd5b5061049d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129f565b604051808360048111156104ad57fe5b60ff1681526020018281526020019250505060405180910390f35b3480156104d457600080fd5b506104dd6112d0565b6040518082815260200191505060405180910390f35b3480156104ff57600080fd5b5061051e600480360381019080803590602001909291905050506112dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056c57600080fd5b506105c46004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061131b565b005b3480156105d257600080fd5b50610607600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061167c565b005b60606000606060008061063761062c8761ffff1689611bf090919063ffffffff16565b600180549050611c7a565b935061064c8785611c9390919063ffffffff16565b60405190808252806020026020018201604052801561068557816020015b610672611d31565b81526020019060019003908161066a5790505b5092508691505b83821015610788576001828154811015156106a357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506060604051908101604052808381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020016000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610755576000610758565b60015b60ff168152508388840381518110151561076e57fe5b90602001906020020181905250818060010192505061068c565b8294505050505092915050565b6060600060606000806107c36107b88761ffff1689611bf090919063ffffffff16565b600480549050611c7a565b93506107d88785611c9390919063ffffffff16565b60405190808252806020026020018201604052801561081157816020015b6107fe611d54565b8152602001906001900390816107f65790505b5092508691505b8382101561095a5760048281548110151561082f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506080604051908101604052808381526020018273ffffffffffffffffffffffffffffffffffffffff168152602001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1660048111156108e557fe5b8152602001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101548152508388840381518110151561094057fe5b906020019060200201819052508180600101925050610818565b8294505050505092915050565b60025481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6f6e6c792063616c6c61626c6520766961204d756c746953696700000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016004811115610a6057fe5b8160000160009054906101000a900460ff166004811115610a7d57fe5b1480610ab0575060006004811115610a9157fe5b8160000160009054906101000a900460ff166004811115610aae57fe5b145b1515610b4a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f736372697074207374617465206d757374206265204e6577206f72204170707281526020017f6f7665640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60038160000160006101000a81548160ff02191690836004811115610b6b57fe5b02179055507f7b746b5db15daca4abb0c3d0538b240af9c0ee2408555a7672b9486276e089e682604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f73656e646572206d757374206265207369676e6572000000000000000000000081525060200191505060405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060016004811115610ce857fe5b8160000160009054906101000a900460ff166004811115610d0557fe5b141515610d7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f736372697074207374617465206d75737420626520417070726f76656400000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff166159d85a0384604051602401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040516020818303038152906040527f4b64e492000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180828051906020019080838360005b83811015610e7d578082015181840152602081019050610e62565b50505050905090810190601f168015610eaa5780820380516001836020036101000a031916815260200191505b509150506000604051808303818686f49250505015610ef25760028160000160006101000a81548160ff02191690836004811115610ee457fe5b021790555060019150610f1d565b60048160000160006101000a81548160ff02191690836004811115610f1357fe5b0217905550600091505b7f75b84c89903cc67892fc4622e0a18e89fcdecc18d738c9461efa458b1c07653c8383604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a150919050565b60006020528060005260406000206000915054906101000a900460ff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6f6e6c792063616c6c61626c6520766961204d756c746953696700000000000081525060200191505060405180910390fd5b600090505b815181101561125057600080838381518110151561107657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611243576001600254111515611147576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f6d757374206e6f742072656d6f7665206c617374207369676e6572000000000081525060200191505060405180910390fd5b600260008154809291906001900391905055506000806000848481518110151561116d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b82828151811015156111f757fe5b90602001906020020151604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b808060010191505061105c565b5050565b6000600480549050905090565b60048181548110151561127057fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b6000600180549050905090565b6001818154811015156112ec57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6f6e6c792063616c6c61626c6520766961204d756c746953696700000000000081525060200191505060405180910390fd5b600090505b81518110156116785760008083838151811015156113df57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561166b57600073ffffffffffffffffffffffffffffffffffffffff16828281518110151561145d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141515156114f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6e6577207369676e6572206d757374206e6f742062652030783000000000000081525060200191505060405180910390fd5b6002600081548092919060010191905055506001828281518110151561151557fe5b9060200190602002015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600080848481518110151561159557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f24828281518110151561161f57fe5b90602001906020020151604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b80806001019150506113c5565b5050565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561173e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f73656e646572206d757374206265207369676e6572000000000000000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506001600481111561178c57fe5b8160000160009054906101000a900460ff1660048111156117a957fe5b14806117dc5750600060048111156117bd57fe5b8160000160009054906101000a900460ff1660048111156117da57fe5b145b1515611876576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f736372697074207374617465206d757374206265204e6577206f72204170707281526020017f6f7665640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611960576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f736372697074206d757374206e6f74206265207369676e65642062792073696781526020017f6e6572207965740000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000816003018054905014156119d75760048290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b806003013390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060018160020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ab160018260010154611bf090919063ffffffff16565b81600101819055507f0160e036639c0c4048d3a89442ca3eaa8913bb8248f1022470abaf1c751ee03c8233604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1611b5d8160010154611d18565b15611bec5760018160000160006101000a81548160ff02191690836004811115611b8357fe5b02179055507ff74bfc10a1aa03b44f2227324325cd000707b7729af27ab7789e2aa30ee731dd82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5050565b6000808284019050838110151515611c70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f616464206f766572666c6f77000000000000000000000000000000000000000081525060200191505060405180910390fd5b8091505092915050565b6000818310611c895781611c8b565b825b905092915050565b6000828211151515611d0d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f73756220756e646572666c6f770000000000000000000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b600060028054811515611d2757fe5b0482119050919050565b606060405190810160405280600390602082028038833980820191505090505090565b6080604051908101604052806004906020820280388339808201915050905050905600a165627a7a723058209cd7e5cf88ae91840f5fb12ba2ad5ca780e0e5d9cf317c6e3150a9e5781171c10029
Swarm Source
bzzr://9cd7e5cf88ae91840f5fb12ba2ad5ca780e0e5d9cf317c6e3150a9e5781171c1
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 32 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.