Source Code
Latest 25 from a total of 54 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Recieve Tokens | 13960722 | 1545 days ago | IN | 0.00015 ETH | 0.00287138 | ||||
| Recieve Tokens | 13960420 | 1545 days ago | IN | 0.00015 ETH | 0.00371695 | ||||
| Recieve Tokens | 13958585 | 1545 days ago | IN | 0.00015 ETH | 0.00235922 | ||||
| Write Transactio... | 13954296 | 1546 days ago | IN | 0 ETH | 0.02099209 | ||||
| Write Transactio... | 13954256 | 1546 days ago | IN | 0 ETH | 0.02503586 | ||||
| Write Transactio... | 13928720 | 1550 days ago | IN | 0 ETH | 0.01713606 | ||||
| Send Tokens | 13255000 | 1655 days ago | IN | 0 ETH | 0.0031702 | ||||
| Send Tokens | 12963766 | 1700 days ago | IN | 0 ETH | 0.00450565 | ||||
| Recieve Tokens | 12857105 | 1717 days ago | IN | 0.00417589 ETH | 0.00316638 | ||||
| Write Transactio... | 12857101 | 1717 days ago | IN | 0 ETH | 0.00406571 | ||||
| Send Tokens | 12747759 | 1734 days ago | IN | 0 ETH | 0.00109501 | ||||
| Send Tokens | 12728619 | 1737 days ago | IN | 0 ETH | 0.00138724 | ||||
| Recieve Tokens | 12698508 | 1742 days ago | IN | 0.00297491 ETH | 0.00246274 | ||||
| Write Transactio... | 12698499 | 1742 days ago | IN | 0 ETH | 0.00286473 | ||||
| Recieve Tokens | 12698413 | 1742 days ago | IN | 0.00209323 ETH | 0.00293172 | ||||
| Write Transactio... | 12698411 | 1742 days ago | IN | 0 ETH | 0.00264408 | ||||
| Send Tokens | 12698213 | 1742 days ago | IN | 0 ETH | 0.00182502 | ||||
| Write Transactio... | 12697399 | 1742 days ago | IN | 0 ETH | 0.0038253 | ||||
| Write Transactio... | 12697397 | 1742 days ago | IN | 0 ETH | 0.00209323 | ||||
| Recieve Tokens | 12689827 | 1743 days ago | IN | 0.00127294 ETH | 0.00157582 | ||||
| Write Transactio... | 12689822 | 1743 days ago | IN | 0 ETH | 0.00190941 | ||||
| Write Transactio... | 12680162 | 1745 days ago | IN | 0 ETH | 0.0088586 | ||||
| Write Transactio... | 12680161 | 1745 days ago | IN | 0 ETH | 0.004848 | ||||
| Write Transactio... | 12680156 | 1745 days ago | IN | 0 ETH | 0.0088586 | ||||
| Write Transactio... | 12680152 | 1745 days ago | IN | 0 ETH | 0.00560093 |
Latest 8 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 12857105 | 1717 days ago | 0.00417589 ETH | ||||
| - | 12698508 | 1742 days ago | 0.00297491 ETH | ||||
| - | 12698413 | 1742 days ago | 0.00209323 ETH | ||||
| - | 12689827 | 1743 days ago | 0.00127294 ETH | ||||
| - | 12645068 | 1750 days ago | 0.00206017 ETH | ||||
| - | 12639210 | 1751 days ago | 0.00154254 ETH | ||||
| - | 12633216 | 1752 days ago | 0.00369083 ETH | ||||
| - | 12633019 | 1752 days ago | 0.00318205 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ethBridge
Compiler Version
v0.4.25+commit.59dbf8f1
Contract Source Code (Solidity Multiple files format)
pragma solidity 0.4.25;
import "./multiOwnable.sol";
import "./IERC20.sol";
contract ethBridge is Multiownable {
IERC20 private token;
mapping(address => uint256) public tokensSent;
mapping(address => uint256) public tokensRecieved;
mapping(address => uint256) public tokensRecievedButNotSent;
address[] public feeOwners;
mapping(address => uint) public feeOwnersIndices;
uint256 public fee;
event FeeOwnersUpdated(address[] previousCallers, address[] newCallers);
constructor (address _token) public {
token = IERC20(_token);
feeOwners.push(msg.sender);
feeOwnersIndices[msg.sender] = 1;
fee = 150000 * 10**9;
}
uint256 amountToSent;
bool transferStatus;
bool avoidReentrancy = false;
function updateBaseFee(uint256 _feeGwei) public onlyAllOwners {
fee = _feeGwei * 10**9;
}
function setOwnersForFee(address[] _feeOwners) public onlyAllOwners {
for (uint j = 0; j < owners.length; j++) {
delete feeOwnersIndices[owners[j]];
}
for (uint i = 0; i < _feeOwners.length; i++) {
require(_feeOwners[i] != address(0), "FeeOwners: callers array contains zero");
require(feeOwnersIndices[_feeOwners[i]] == 0, "FeeOwners: callers array contains duplicates");
require(ownersIndices[_feeOwners[i]] > 0, "FeeOwners: owners not match to callers");
feeOwnersIndices[_feeOwners[i]] = i + 1;
}
emit FeeOwnersUpdated(feeOwners, _feeOwners);
feeOwners = _feeOwners;
}
function sendTokens(uint256 amount) public {
require(msg.sender != address(0), "Zero account");
require(amount > 0,"Amount of tokens should be more then 0");
require(token.balanceOf(msg.sender) >= amount,"Not enough balance");
transferStatus = token.transferFrom(msg.sender, address(this), amount);
if (transferStatus == true) {
tokensRecieved[msg.sender] += amount;
}
}
function writeTransaction(address user, uint256 amount) public onlySomeOwners(feeOwners.length) {
require(user != address(0), "Zero account");
require(amount > 0,"Amount of tokens should be more then 0");
require(!avoidReentrancy);
avoidReentrancy = true;
tokensRecievedButNotSent[user] += amount;
avoidReentrancy = false;
}
function recieveTokens(uint256[] memory commissions) public payable {
if (tokensRecievedButNotSent[msg.sender] != 0) {
require(commissions.length == feeOwners.length, "The number of commissions and owners does not match");
uint256 sum;
for(uint i = 0; i < commissions.length; i++) {
sum += commissions[i];
}
require(msg.value >= sum, "Not enough ETH (The amount of ETH is less than the amount of commissions.)");
require(msg.value >= feeOwners.length * fee, "Not enough ETH (The amount of ETH is less than the internal commission.)");
for (i = 0; i < feeOwners.length; i++) {
uint256 commission = commissions[i];
feeOwners[i].transfer(commission);
}
amountToSent = tokensRecievedButNotSent[msg.sender] - tokensSent[msg.sender];
token.transfer(msg.sender, amountToSent);
tokensSent[msg.sender] += amountToSent;
}
}
function withdrawTokens(uint256 amount, address reciever) public onlyAllOwners {
require(amount > 0,"Amount of tokens should be more then 0");
require(reciever != address(0), "Zero account");
require(token.balanceOf(address(this)) >= amount,"Not enough balance");
token.transfer(reciever, amount);
}
function withdrawETHer(uint256 amount, address reciever) public onlyAllOwners {
require(amount > 0,"Amount of tokens should be more then 0");
require(reciever != address(0), "Zero account");
require(address(this).balance >= amount,"Not enough balance");
reciever.transfer(amount);
}
}
pragma solidity 0.4.25;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address recipient, uint256 amount) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
}
pragma solidity ^0.4.25;
contract Multiownable {
// VARIABLES
uint256 public ownersGeneration;
uint256 public howManyOwnersDecide;
address[] public owners;
bytes32[] public allOperations;
address internal insideCallSender;
uint256 internal insideCallCount;
// Reverse lookup tables for owners and allOperations
mapping(address => uint) public ownersIndices; // Starts from 1
mapping(bytes32 => uint) public allOperationsIndicies;
// Owners voting mask per operations
mapping(bytes32 => uint256) public votesMaskByOperation;
mapping(bytes32 => uint256) public votesCountByOperation;
// EVENTS
event OwnershipTransferred(address[] previousOwners, uint howManyOwnersDecide, address[] newOwners, uint newHowManyOwnersDecide);
event OperationCreated(bytes32 operation, uint howMany, uint ownersCount, address proposer);
event OperationUpvoted(bytes32 operation, uint votes, uint howMany, uint ownersCount, address upvoter);
event OperationPerformed(bytes32 operation, uint howMany, uint ownersCount, address performer);
event OperationDownvoted(bytes32 operation, uint votes, uint ownersCount, address downvoter);
event OperationCancelled(bytes32 operation, address lastCanceller);
// ACCESSORS
function isOwner(address wallet) public view returns(bool) {
return ownersIndices[wallet] > 0;
}
function ownersCount() public view returns(uint) {
return owners.length;
}
function allOperationsCount() public view returns(uint) {
return allOperations.length;
}
// MODIFIERS
/**
* @dev Allows to perform method by any of the owners
*/
modifier onlyAnyOwner {
if (checkHowManyOwners(1)) {
bool update = (insideCallSender == address(0));
if (update) {
insideCallSender = msg.sender;
insideCallCount = 1;
}
_;
if (update) {
insideCallSender = address(0);
insideCallCount = 0;
}
}
}
/**
* @dev Allows to perform method only after many owners call it with the same arguments
*/
modifier onlyManyOwners {
if (checkHowManyOwners(howManyOwnersDecide)) {
bool update = (insideCallSender == address(0));
if (update) {
insideCallSender = msg.sender;
insideCallCount = howManyOwnersDecide;
}
_;
if (update) {
insideCallSender = address(0);
insideCallCount = 0;
}
}
}
/**
* @dev Allows to perform method only after all owners call it with the same arguments
*/
modifier onlyAllOwners {
if (checkHowManyOwners(owners.length)) {
bool update = (insideCallSender == address(0));
if (update) {
insideCallSender = msg.sender;
insideCallCount = owners.length;
}
_;
if (update) {
insideCallSender = address(0);
insideCallCount = 0;
}
}
}
/**
* @dev Allows to perform method only after some owners call it with the same arguments
*/
modifier onlySomeOwners(uint howMany) {
require(howMany > 0, "onlySomeOwners: howMany argument is zero");
require(howMany <= owners.length, "onlySomeOwners: howMany argument exceeds the number of owners");
if (checkHowManyOwners(howMany)) {
bool update = (insideCallSender == address(0));
if (update) {
insideCallSender = msg.sender;
insideCallCount = howMany;
}
_;
if (update) {
insideCallSender = address(0);
insideCallCount = 0;
}
}
}
// CONSTRUCTOR
constructor() public {
owners.push(msg.sender);
ownersIndices[msg.sender] = 1;
howManyOwnersDecide = 1;
}
// INTERNAL METHODS
/**
* @dev onlyManyOwners modifier helper
*/
function checkHowManyOwners(uint howMany) internal returns(bool) {
if (insideCallSender == msg.sender) {
require(howMany <= insideCallCount, "checkHowManyOwners: nested owners modifier check require more owners");
return true;
}
uint ownerIndex = ownersIndices[msg.sender] - 1;
require(ownerIndex < owners.length, "checkHowManyOwners: msg.sender is not an owner");
bytes32 operation = keccak256(abi.encodePacked(msg.data, ownersGeneration));
require((votesMaskByOperation[operation] & (2 ** ownerIndex)) == 0, "checkHowManyOwners: owner already voted for the operation");
votesMaskByOperation[operation] |= (2 ** ownerIndex);
uint operationVotesCount = votesCountByOperation[operation] + 1;
votesCountByOperation[operation] = operationVotesCount;
if (operationVotesCount == 1) {
allOperationsIndicies[operation] = allOperations.length;
allOperations.push(operation);
emit OperationCreated(operation, howMany, owners.length, msg.sender);
}
emit OperationUpvoted(operation, operationVotesCount, howMany, owners.length, msg.sender);
// If enough owners confirmed the same operation
if (votesCountByOperation[operation] == howMany) {
deleteOperation(operation);
emit OperationPerformed(operation, howMany, owners.length, msg.sender);
return true;
}
return false;
}
/**
* @dev Used to delete cancelled or performed operation
* @param operation defines which operation to delete
*/
function deleteOperation(bytes32 operation) internal {
uint index = allOperationsIndicies[operation];
if (index < allOperations.length - 1) { // Not last
allOperations[index] = allOperations[allOperations.length - 1];
allOperationsIndicies[allOperations[index]] = index;
}
//allOperations.length-1
allOperations.push(allOperations[allOperations.length-1]);
delete votesMaskByOperation[operation];
delete votesCountByOperation[operation];
delete allOperationsIndicies[operation];
}
// PUBLIC METHODS
/**
* @dev Allows owners to change their mind by cacnelling votesMaskByOperation operations
* @param operation defines which operation to delete
*/
function cancelPending(bytes32 operation) public onlyAnyOwner {
uint ownerIndex = ownersIndices[msg.sender] - 1;
require((votesMaskByOperation[operation] & (2 ** ownerIndex)) != 0, "cancelPending: operation not found for this user");
votesMaskByOperation[operation] &= ~(2 ** ownerIndex);
uint operationVotesCount = votesCountByOperation[operation] - 1;
votesCountByOperation[operation] = operationVotesCount;
emit OperationDownvoted(operation, operationVotesCount, owners.length, msg.sender);
if (operationVotesCount == 0) {
deleteOperation(operation);
emit OperationCancelled(operation, msg.sender);
}
}
/**
* @dev Allows owners to change ownership
* @param newOwners defines array of addresses of new owners
*/
function transferOwnership(address[] memory newOwners) public {
transferOwnershipWithHowMany(newOwners, newOwners.length);
}
/**
* @dev Allows owners to change ownership
* @param newOwners defines array of addresses of new owners
* @param newHowManyOwnersDecide defines how many owners can decide
*/
function transferOwnershipWithHowMany(address[] memory newOwners, uint256 newHowManyOwnersDecide) public onlyManyOwners {
require(newOwners.length > 0, "transferOwnershipWithHowMany: owners array is empty");
require(newOwners.length <= 256, "transferOwnershipWithHowMany: owners count is greater then 256");
require(newHowManyOwnersDecide > 0, "transferOwnershipWithHowMany: newHowManyOwnersDecide equal to 0");
require(newHowManyOwnersDecide <= newOwners.length, "transferOwnershipWithHowMany: newHowManyOwnersDecide exceeds the number of owners");
// Reset owners reverse lookup table
for (uint j = 0; j < owners.length; j++) {
delete ownersIndices[owners[j]];
}
for (uint i = 0; i < newOwners.length; i++) {
require(newOwners[i] != address(0), "transferOwnershipWithHowMany: owners array contains zero");
require(ownersIndices[newOwners[i]] == 0, "transferOwnershipWithHowMany: owners array contains duplicates");
ownersIndices[newOwners[i]] = i + 1;
}
emit OwnershipTransferred(owners, howManyOwnersDecide, newOwners, newHowManyOwnersDecide);
owners = newOwners;
howManyOwnersDecide = newHowManyOwnersDecide;
// allOperations.length = 0;
allOperations.push(allOperations[0]);
ownersGeneration++;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"commissions","type":"uint256[]"}],"name":"recieveTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwners","type":"address[]"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"allOperationsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"howManyOwnersDecide","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"wallet","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"reciever","type":"address"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokensRecieved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"allOperations","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesMaskByOperation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"feeOwners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"operation","type":"bytes32"}],"name":"cancelPending","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_feeGwei","type":"uint256"}],"name":"updateBaseFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokensSent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesCountByOperation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownersGeneration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ownersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"writeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ownersIndices","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_feeOwners","type":"address[]"}],"name":"setOwnersForFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokensRecievedButNotSent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwners","type":"address[]"},{"name":"newHowManyOwnersDecide","type":"uint256"}],"name":"transferOwnershipWithHowMany","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"allOperationsIndicies","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sendTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"feeOwnersIndices","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"reciever","type":"address"}],"name":"withdrawETHer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousCallers","type":"address[]"},{"indexed":false,"name":"newCallers","type":"address[]"}],"name":"FeeOwnersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwners","type":"address[]"},{"indexed":false,"name":"howManyOwnersDecide","type":"uint256"},{"indexed":false,"name":"newOwners","type":"address[]"},{"indexed":false,"name":"newHowManyOwnersDecide","type":"uint256"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"howMany","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"proposer","type":"address"}],"name":"OperationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"votes","type":"uint256"},{"indexed":false,"name":"howMany","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"upvoter","type":"address"}],"name":"OperationUpvoted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"howMany","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"performer","type":"address"}],"name":"OperationPerformed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"votes","type":"uint256"},{"indexed":false,"name":"ownersCount","type":"uint256"},{"indexed":false,"name":"downvoter","type":"address"}],"name":"OperationDownvoted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"operation","type":"bytes32"},{"indexed":false,"name":"lastCanceller","type":"address"}],"name":"OperationCancelled","type":"event"}]Contract Creation Code
60806040526000601260016101000a81548160ff02191690831515021790555034801561002b57600080fd5b50604051602080613e558339810180604052810190808051906020019092919050505060023390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001808190555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555065886c98b7600060108190555050613c4c806102096000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461016457806305b15f77146101d157806318bcd3d01461022a57806322f2f89a146102905780632f4a81df146102bb5780632f54bf6e146102e6578063398d92bb146103415780633c00fca91461038e578063431ab233146103e5578063568b59151461042e5780638543f9ca14610473578063893372ca146104e05780638e690186146105115780638ea80de31461053e57806390a5308514610595578063b25bb3a7146105da578063b948854614610605578063c71959bb14610630578063cc047a041461067d578063dc822d48146106d4578063ddca3f431461073a578063e047bda814610765578063e8518341146107bc578063ea1a26441461082c578063f5c6ca0814610871578063f6ed1f961461089e578063ff649697146108f5575b600080fd5b34801561017057600080fd5b5061018f60048036038101908080359060200190929190505050610942565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61022860048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610980565b005b34801561023657600080fd5b5061028e60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610ed1565b005b34801561029c57600080fd5b506102a5610edf565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610eec565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b50610327600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b604051808215151515815260200191505060405180910390f35b34801561034d57600080fd5b5061038c60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f3d565b005b34801561039a57600080fd5b506103cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611404565b6040518082815260200191505060405180910390f35b3480156103f157600080fd5b506104106004803603810190808035906020019092919050505061141c565b60405180826000191660001916815260200191505060405180910390f35b34801561043a57600080fd5b5061045d600480360381019080803560001916906020019092919050505061143f565b6040518082815260200191505060405180910390f35b34801561047f57600080fd5b5061049e60048036038101908080359060200190929190505050611457565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ec57600080fd5b5061050f6004803603810190808035600019169060200190929190505050611495565b005b34801561051d57600080fd5b5061053c60048036038101908080359060200190929190505050611825565b005b34801561054a57600080fd5b5061057f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611945565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105c4600480360381019080803560001916906020019092919050505061195d565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b506105ef611975565b6040518082815260200191505060405180910390f35b34801561061157600080fd5b5061061a61197b565b6040518082815260200191505060405180910390f35b34801561063c57600080fd5b5061067b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611988565b005b34801561068957600080fd5b506106be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dbb565b6040518082815260200191505060405180910390f35b3480156106e057600080fd5b5061073860048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611dd3565b005b34801561074657600080fd5b5061074f6123d5565b6040518082815260200191505060405180910390f35b34801561077157600080fd5b506107a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123db565b6040518082815260200191505060405180910390f35b3480156107c857600080fd5b5061082a60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001909291905050506123f3565b005b34801561083857600080fd5b5061085b6004803603810190808035600019169060200190929190505050612c14565b6040518082815260200191505060405180910390f35b34801561087d57600080fd5b5061089c60048036038101908080359060200190929190505050612c2c565b005b3480156108aa57600080fd5b506108df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613098565b6040518082815260200191505060405180910390f35b34801561090157600080fd5b5061094060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130b0565b005b60028181548110151561095157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610ecb57600e805490508451141515610a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f546865206e756d626572206f6620636f6d6d697373696f6e7320616e64206f7781526020017f6e65727320646f6573206e6f74206d617463680000000000000000000000000081525060400191505060405180910390fd5b600091505b8351821015610aa7578382815181101515610a8c57fe5b90602001906020020151830192508180600101925050610a75565b823410151515610b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604a8152602001807f4e6f7420656e6f75676820455448202854686520616d6f756e74206f6620455481526020017f48206973206c657373207468616e2074686520616d6f756e74206f6620636f6d81526020017f6d697373696f6e732e290000000000000000000000000000000000000000000081525060600191505060405180910390fd5b601054600e80549050023410151515610c38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f4e6f7420656e6f75676820455448202854686520616d6f756e74206f6620455481526020017f48206973206c657373207468616e2074686520696e7465726e616c20636f6d6d81526020017f697373696f6e2e2900000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600091505b600e80549050821015610cf1578382815181101515610c5857fe5b906020019060200201519050600e82815481101515610c7357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ce3573d6000803e3d6000fd5b508180600101925050610c3d565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403601181905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336011546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e3f57600080fd5b505af1158015610e53573d6000803e3d6000fd5b505050506040513d6020811015610e6957600080fd5b810190808051906020019092919050505050601154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b50505050565b610edc8182516123f3565b50565b6000600380549050905090565b60015481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000610f4d6002805490506133dd565b156113ff57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490508015610ffa5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b600083111515611098576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156111fb57600080fd5b505af115801561120f573d6000803e3d6000fd5b505050506040513d602081101561122557600080fd5b8101908080519060200190929190505050101515156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561137157600080fd5b505af1158015611385573d6000803e3d6000fd5b505050506040513d602081101561139b57600080fd5b81019080805190602001909291905050505080156113fe576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b505050565b600c6020528060005260406000206000915090505481565b60038181548110151561142b57fe5b906000526020600020016000915090505481565b60086020528060005260406000206000915090505481565b600e8181548110151561146657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006114a460016133dd565b1561181f57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050801561154d5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005819055505b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403925060008360020a600860008760001916600019168152602001908152602001600020541614151515611651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f63616e63656c50656e64696e673a206f7065726174696f6e206e6f7420666f7581526020017f6e6420666f72207468697320757365720000000000000000000000000000000081525060400191505060405180910390fd5b8260020a196008600086600019166000191681526020019081526020016000206000828254169250508190555060016009600086600019166000191681526020019081526020016000205403915081600960008660001916600019168152602001908152602001600020819055507f3e0a7036018b5a2a3c5d0afa14e51998ef3cf98c38e4289a8897222b3acf75a78483600280549050336040518085600019166000191681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a160008214156117cd57611759846139f3565b7f55e0dd61c29aac6fc36807628300ad3e3ec68655ae76ae4002f7fb101496fa9f84336040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b801561181e576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b50505050565b60006118356002805490506133dd565b1561194157600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905080156118e25733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b633b9aca0082026010819055508015611940576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b5050565b600b6020528060005260406000206000915090505481565b60096020528060005260406000206000915090505481565b60005481565b6000600280549050905090565b600e8054905060008082111515611a2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f6f6e6c79536f6d654f776e6572733a20686f774d616e7920617267756d656e7481526020017f206973207a65726f00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002805490508211151515611ad0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f6f6e6c79536f6d654f776e6572733a20686f774d616e7920617267756d656e7481526020017f206578636565647320746865206e756d626572206f66206f776e65727300000081525060400191505060405180910390fd5b611ad9826133dd565b15611db557600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490508015611b815733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816005819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611c26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b600083111515611cc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b601260019054906101000a900460ff16151515611ce057600080fd5b6001601260016101000a81548160ff02191690831515021790555082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000601260016101000a81548160ff0219169083151502179055508015611db4576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b50505050565b60066020528060005260406000206000915090505481565b6000806000611de66002805490506133dd565b156123cf57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490508015611e935733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b600092505b600280549050831015611f2e57600f6000600285815481101515611eb857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558280600101935050611e98565b600091505b835182101561227157600073ffffffffffffffffffffffffffffffffffffffff168483815181101515611f6257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561201e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4665654f776e6572733a2063616c6c65727320617272617920636f6e7461696e81526020017f73207a65726f000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000600f6000868581518110151561203257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4665654f776e6572733a2063616c6c65727320617272617920636f6e7461696e81526020017f73206475706c696361746573000000000000000000000000000000000000000081525060400191505060405180910390fd5b600060066000868581518110151561212657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4665654f776e6572733a206f776e657273206e6f74206d6174636820746f206381526020017f616c6c657273000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018201600f6000868581518110151561221c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508180600101925050611f33565b7f48a52cfc6ad863ff196424966ad59871435f693bda5eaf0285b7da3d21e93232600e85604051808060200180602001838103835285818154815260200191508054801561231457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122ca575b5050838103825284818151815260200191508051906020019060200280838360005b83811015612351578082015181840152602081019050612336565b5050505090500194505050505060405180910390a183600e908051906020019061237c929190613b53565b5080156123ce576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b50505050565b60105481565b600d6020528060005260406000206000915090505481565b60008060006124036001546133dd565b15612c0d57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905080156124ad5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001546005819055505b6000855111151561254c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320617272617920697320656d7074790000000000000000000000000081525060400191505060405180910390fd5b6101008551111515156125ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320636f756e742069732067726561746572207468656e20323536000081525060400191505060405180910390fd5b60008411151561268b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206e6581526020017f77486f774d616e794f776e65727344656369646520657175616c20746f20300081525060400191505060405180910390fd5b84518411151515612750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260518152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206e6581526020017f77486f774d616e794f776e65727344656369646520657863656564732074686581526020017f206e756d626572206f66206f776e65727300000000000000000000000000000081525060600191505060405180910390fd5b600092505b6002805490508310156127eb576006600060028581548110151561277557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558280600101935050612755565b600091505b8451821015612a3a57600073ffffffffffffffffffffffffffffffffffffffff16858381518110151561281f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141515156128db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320617272617920636f6e7461696e73207a65726f000000000000000081525060400191505060405180910390fd5b60006006600087858151811015156128ef57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156129cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320617272617920636f6e7461696e73206475706c696361746573000081525060400191505060405180910390fd5b600182016006600087858151811015156129e557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081806001019250506127f0565b7fd167b96814cd24898418cc293e8d47d54afe6dcf0631283f0830e1eae621f6bd600260015487876040518080602001858152602001806020018481526020018381038352878181548152602001915080548015612aed57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612aa3575b5050838103825285818151815260200191508051906020019060200280838360005b83811015612b2a578082015181840152602081019050612b0f565b50505050905001965050505050505060405180910390a18460029080519060200190612b57929190613b53565b50836001819055506003806000815481101515612b7057fe5b9060005260206000200154908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555060008081548092919060010191905055508015612c0c576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b5050505050565b60076020528060005260406000206000915090505481565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b600081111515612d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015612e2d57600080fd5b505af1158015612e41573d6000803e3d6000fd5b505050506040513d6020811015612e5757600080fd5b810190808051906020019092919050505010151515612ede576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612fd757600080fd5b505af1158015612feb573d6000803e3d6000fd5b505050506040513d602081101561300157600080fd5b8101908080519060200190929190505050601260006101000a81548160ff02191690831515021790555060011515601260009054906101000a900460ff16151514156130955780600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b50565b600f6020528060005260406000206000915090505481565b60006130c06002805490506133dd565b156133d857600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050801561316d5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b60008311151561320b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156132b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b823073ffffffffffffffffffffffffffffffffffffffff16311015151561333f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613385573d6000803e3d6000fd5b5080156133d7576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b505050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156135085760055485111515156134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001807f636865636b486f774d616e794f776e6572733a206e6573746564206f776e657281526020017f73206d6f64696669657220636865636b2072657175697265206d6f7265206f7781526020017f6e6572730000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600193506139eb565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039250600280549050831015156135ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f636865636b486f774d616e794f776e6572733a206d73672e73656e646572206981526020017f73206e6f7420616e206f776e657200000000000000000000000000000000000081525060400191505060405180910390fd5b60003660005460405160200180848480828437820191505082815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156136565780518252602082019150602081019050602083039250613631565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915060008360020a6008600085600019166000191681526020019081526020016000205416141515613743576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f636865636b486f774d616e794f776e6572733a206f776e657220616c7265616481526020017f7920766f74656420666f7220746865206f7065726174696f6e0000000000000081525060400191505060405180910390fd5b8260020a6008600084600019166000191681526020019081526020016000206000828254179250508190555060016009600084600019166000191681526020019081526020016000205401905080600960008460001916600019168152602001908152602001600020819055506001811415613899576003805490506007600084600019166000191681526020019081526020016000208190555060038290806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055507f6bab0114f9524353d2d33e64edd3ebbd16e21edd57de2226ba76c310a7ce22658286600280549050336040518085600019166000191681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a15b7f8dd9582c6577aea81973b5adeb6c135f6e18565d99578b7ba0c9377437ec0221828287600280549050336040518086600019166000191681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390a1846009600084600019166000191681526020019081526020016000205414156139e657613955826139f3565b7f8a11c8ca99994c292318ce367f65bf6ff61d390bc814b3588496f6fbcc32807a8286600280549050336040518085600019166000191681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a1600193506139eb565b600093505b505050919050565b6000600760008360001916600019168152602001908152602001600020549050600160038054905003811015613aa0576003600160038054905003815481101515613a3a57fe5b9060005260206000200154600382815481101515613a5457fe5b9060005260206000200181600019169055508060076000600384815481101515613a7a57fe5b906000526020600020015460001916600019168152602001908152602001600020819055505b600380600160038054905003815481101515613ab857fe5b906000526020600020015490806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055506008600083600019166000191681526020019081526020016000206000905560096000836000191660001916815260200190815260200160002060009055600760008360001916600019168152602001908152602001600020600090555050565b828054828255906000526020600020908101928215613bcc579160200282015b82811115613bcb5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613b73565b5b509050613bd99190613bdd565b5090565b613c1d91905b80821115613c1957600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613be3565b5090565b905600a165627a7a72305820e9452aafecddd58b0b12a6e2b83661e29e681e63eed68011bc1213921b8d179c0029000000000000000000000000212dd60d4bf0da8372fe8116474602d429e5735f
Deployed Bytecode
0x60806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461016457806305b15f77146101d157806318bcd3d01461022a57806322f2f89a146102905780632f4a81df146102bb5780632f54bf6e146102e6578063398d92bb146103415780633c00fca91461038e578063431ab233146103e5578063568b59151461042e5780638543f9ca14610473578063893372ca146104e05780638e690186146105115780638ea80de31461053e57806390a5308514610595578063b25bb3a7146105da578063b948854614610605578063c71959bb14610630578063cc047a041461067d578063dc822d48146106d4578063ddca3f431461073a578063e047bda814610765578063e8518341146107bc578063ea1a26441461082c578063f5c6ca0814610871578063f6ed1f961461089e578063ff649697146108f5575b600080fd5b34801561017057600080fd5b5061018f60048036038101908080359060200190929190505050610942565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61022860048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610980565b005b34801561023657600080fd5b5061028e60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610ed1565b005b34801561029c57600080fd5b506102a5610edf565b6040518082815260200191505060405180910390f35b3480156102c757600080fd5b506102d0610eec565b6040518082815260200191505060405180910390f35b3480156102f257600080fd5b50610327600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ef2565b604051808215151515815260200191505060405180910390f35b34801561034d57600080fd5b5061038c60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f3d565b005b34801561039a57600080fd5b506103cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611404565b6040518082815260200191505060405180910390f35b3480156103f157600080fd5b506104106004803603810190808035906020019092919050505061141c565b60405180826000191660001916815260200191505060405180910390f35b34801561043a57600080fd5b5061045d600480360381019080803560001916906020019092919050505061143f565b6040518082815260200191505060405180910390f35b34801561047f57600080fd5b5061049e60048036038101908080359060200190929190505050611457565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104ec57600080fd5b5061050f6004803603810190808035600019169060200190929190505050611495565b005b34801561051d57600080fd5b5061053c60048036038101908080359060200190929190505050611825565b005b34801561054a57600080fd5b5061057f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611945565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105c4600480360381019080803560001916906020019092919050505061195d565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b506105ef611975565b6040518082815260200191505060405180910390f35b34801561061157600080fd5b5061061a61197b565b6040518082815260200191505060405180910390f35b34801561063c57600080fd5b5061067b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611988565b005b34801561068957600080fd5b506106be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dbb565b6040518082815260200191505060405180910390f35b3480156106e057600080fd5b5061073860048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611dd3565b005b34801561074657600080fd5b5061074f6123d5565b6040518082815260200191505060405180910390f35b34801561077157600080fd5b506107a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123db565b6040518082815260200191505060405180910390f35b3480156107c857600080fd5b5061082a60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001909291905050506123f3565b005b34801561083857600080fd5b5061085b6004803603810190808035600019169060200190929190505050612c14565b6040518082815260200191505060405180910390f35b34801561087d57600080fd5b5061089c60048036038101908080359060200190929190505050612c2c565b005b3480156108aa57600080fd5b506108df600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613098565b6040518082815260200191505060405180910390f35b34801561090157600080fd5b5061094060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130b0565b005b60028181548110151561095157fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600080600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515610ecb57600e805490508451141515610a70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f546865206e756d626572206f6620636f6d6d697373696f6e7320616e64206f7781526020017f6e65727320646f6573206e6f74206d617463680000000000000000000000000081525060400191505060405180910390fd5b600091505b8351821015610aa7578382815181101515610a8c57fe5b90602001906020020151830192508180600101925050610a75565b823410151515610b6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252604a8152602001807f4e6f7420656e6f75676820455448202854686520616d6f756e74206f6620455481526020017f48206973206c657373207468616e2074686520616d6f756e74206f6620636f6d81526020017f6d697373696f6e732e290000000000000000000000000000000000000000000081525060600191505060405180910390fd5b601054600e80549050023410151515610c38576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001807f4e6f7420656e6f75676820455448202854686520616d6f756e74206f6620455481526020017f48206973206c657373207468616e2074686520696e7465726e616c20636f6d6d81526020017f697373696f6e2e2900000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600091505b600e80549050821015610cf1578382815181101515610c5857fe5b906020019060200201519050600e82815481101515610c7357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610ce3573d6000803e3d6000fd5b508180600101925050610c3d565b600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403601181905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb336011546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610e3f57600080fd5b505af1158015610e53573d6000803e3d6000fd5b505050506040513d6020811015610e6957600080fd5b810190808051906020019092919050505050601154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b50505050565b610edc8182516123f3565b50565b6000600380549050905090565b60015481565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054119050919050565b6000610f4d6002805490506133dd565b156113ff57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490508015610ffa5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b600083111515611098576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561113d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b82600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156111fb57600080fd5b505af115801561120f573d6000803e3d6000fd5b505050506040513d602081101561122557600080fd5b8101908080519060200190929190505050101515156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561137157600080fd5b505af1158015611385573d6000803e3d6000fd5b505050506040513d602081101561139b57600080fd5b81019080805190602001909291905050505080156113fe576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b505050565b600c6020528060005260406000206000915090505481565b60038181548110151561142b57fe5b906000526020600020016000915090505481565b60086020528060005260406000206000915090505481565b600e8181548110151561146657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060006114a460016133dd565b1561181f57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050801561154d5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005819055505b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403925060008360020a600860008760001916600019168152602001908152602001600020541614151515611651576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f63616e63656c50656e64696e673a206f7065726174696f6e206e6f7420666f7581526020017f6e6420666f72207468697320757365720000000000000000000000000000000081525060400191505060405180910390fd5b8260020a196008600086600019166000191681526020019081526020016000206000828254169250508190555060016009600086600019166000191681526020019081526020016000205403915081600960008660001916600019168152602001908152602001600020819055507f3e0a7036018b5a2a3c5d0afa14e51998ef3cf98c38e4289a8897222b3acf75a78483600280549050336040518085600019166000191681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a160008214156117cd57611759846139f3565b7f55e0dd61c29aac6fc36807628300ad3e3ec68655ae76ae4002f7fb101496fa9f84336040518083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15b801561181e576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b50505050565b60006118356002805490506133dd565b1561194157600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905080156118e25733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b633b9aca0082026010819055508015611940576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b5050565b600b6020528060005260406000206000915090505481565b60096020528060005260406000206000915090505481565b60005481565b6000600280549050905090565b600e8054905060008082111515611a2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f6f6e6c79536f6d654f776e6572733a20686f774d616e7920617267756d656e7481526020017f206973207a65726f00000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002805490508211151515611ad0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d8152602001807f6f6e6c79536f6d654f776e6572733a20686f774d616e7920617267756d656e7481526020017f206578636565647320746865206e756d626572206f66206f776e65727300000081525060400191505060405180910390fd5b611ad9826133dd565b15611db557600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490508015611b815733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816005819055505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611c26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b600083111515611cc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b601260019054906101000a900460ff16151515611ce057600080fd5b6001601260016101000a81548160ff02191690831515021790555082600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000601260016101000a81548160ff0219169083151502179055508015611db4576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b50505050565b60066020528060005260406000206000915090505481565b6000806000611de66002805490506133dd565b156123cf57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161490508015611e935733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b600092505b600280549050831015611f2e57600f6000600285815481101515611eb857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558280600101935050611e98565b600091505b835182101561227157600073ffffffffffffffffffffffffffffffffffffffff168483815181101515611f6257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff161415151561201e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4665654f776e6572733a2063616c6c65727320617272617920636f6e7461696e81526020017f73207a65726f000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000600f6000868581518110151561203257fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141515612112576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4665654f776e6572733a2063616c6c65727320617272617920636f6e7461696e81526020017f73206475706c696361746573000000000000000000000000000000000000000081525060400191505060405180910390fd5b600060066000868581518110151561212657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4665654f776e6572733a206f776e657273206e6f74206d6174636820746f206381526020017f616c6c657273000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018201600f6000868581518110151561221c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508180600101925050611f33565b7f48a52cfc6ad863ff196424966ad59871435f693bda5eaf0285b7da3d21e93232600e85604051808060200180602001838103835285818154815260200191508054801561231457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116122ca575b5050838103825284818151815260200191508051906020019060200280838360005b83811015612351578082015181840152602081019050612336565b5050505090500194505050505060405180910390a183600e908051906020019061237c929190613b53565b5080156123ce576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b50505050565b60105481565b600d6020528060005260406000206000915090505481565b60008060006124036001546133dd565b15612c0d57600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905080156124ad5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001546005819055505b6000855111151561254c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320617272617920697320656d7074790000000000000000000000000081525060400191505060405180910390fd5b6101008551111515156125ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320636f756e742069732067726561746572207468656e20323536000081525060400191505060405180910390fd5b60008411151561268b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603f8152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206e6581526020017f77486f774d616e794f776e65727344656369646520657175616c20746f20300081525060400191505060405180910390fd5b84518411151515612750576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260518152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206e6581526020017f77486f774d616e794f776e65727344656369646520657863656564732074686581526020017f206e756d626572206f66206f776e65727300000000000000000000000000000081525060600191505060405180910390fd5b600092505b6002805490508310156127eb576006600060028581548110151561277557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090558280600101935050612755565b600091505b8451821015612a3a57600073ffffffffffffffffffffffffffffffffffffffff16858381518110151561281f57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141515156128db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320617272617920636f6e7461696e73207a65726f000000000000000081525060400191505060405180910390fd5b60006006600087858151811015156128ef57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415156129cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e8152602001807f7472616e736665724f776e65727368697057697468486f774d616e793a206f7781526020017f6e65727320617272617920636f6e7461696e73206475706c696361746573000081525060400191505060405180910390fd5b600182016006600087858151811015156129e557fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081806001019250506127f0565b7fd167b96814cd24898418cc293e8d47d54afe6dcf0631283f0830e1eae621f6bd600260015487876040518080602001858152602001806020018481526020018381038352878181548152602001915080548015612aed57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612aa3575b5050838103825285818151815260200191508051906020019060200280838360005b83811015612b2a578082015181840152602081019050612b0f565b50505050905001965050505050505060405180910390a18460029080519060200190612b57929190613b53565b50836001819055506003806000815481101515612b7057fe5b9060005260206000200154908060018154018082558091505090600182039060005260206000200160009091929091909150906000191690555060008081548092919060010191905055508015612c0c576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b5050505050565b60076020528060005260406000206000915090505481565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612cd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b600081111515612d6f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015612e2d57600080fd5b505af1158015612e41573d6000803e3d6000fd5b505050506040513d6020811015612e5757600080fd5b810190808051906020019092919050505010151515612ede576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612fd757600080fd5b505af1158015612feb573d6000803e3d6000fd5b505050506040513d602081101561300157600080fd5b8101908080519060200190929190505050601260006101000a81548160ff02191690831515021790555060011515601260009054906101000a900460ff16151514156130955780600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b50565b600f6020528060005260406000206000915090505481565b60006130c06002805490506133dd565b156133d857600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050801561316d5733600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002805490506005819055505b60008311151561320b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f416d6f756e74206f6620746f6b656e732073686f756c64206265206d6f72652081526020017f7468656e2030000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156132b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f5a65726f206163636f756e74000000000000000000000000000000000000000081525060200191505060405180910390fd5b823073ffffffffffffffffffffffffffffffffffffffff16311015151561333f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f19350505050158015613385573d6000803e3d6000fd5b5080156133d7576000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006005819055505b5b505050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156135085760055485111515156134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260448152602001807f636865636b486f774d616e794f776e6572733a206e6573746564206f776e657281526020017f73206d6f64696669657220636865636b2072657175697265206d6f7265206f7781526020017f6e6572730000000000000000000000000000000000000000000000000000000081525060600191505060405180910390fd5b600193506139eb565b6001600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054039250600280549050831015156135ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f636865636b486f774d616e794f776e6572733a206d73672e73656e646572206981526020017f73206e6f7420616e206f776e657200000000000000000000000000000000000081525060400191505060405180910390fd5b60003660005460405160200180848480828437820191505082815260200193505050506040516020818303038152906040526040518082805190602001908083835b6020831015156136565780518252602082019150602081019050602083039250613631565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020915060008360020a6008600085600019166000191681526020019081526020016000205416141515613743576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f636865636b486f774d616e794f776e6572733a206f776e657220616c7265616481526020017f7920766f74656420666f7220746865206f7065726174696f6e0000000000000081525060400191505060405180910390fd5b8260020a6008600084600019166000191681526020019081526020016000206000828254179250508190555060016009600084600019166000191681526020019081526020016000205401905080600960008460001916600019168152602001908152602001600020819055506001811415613899576003805490506007600084600019166000191681526020019081526020016000208190555060038290806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055507f6bab0114f9524353d2d33e64edd3ebbd16e21edd57de2226ba76c310a7ce22658286600280549050336040518085600019166000191681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a15b7f8dd9582c6577aea81973b5adeb6c135f6e18565d99578b7ba0c9377437ec0221828287600280549050336040518086600019166000191681526020018581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390a1846009600084600019166000191681526020019081526020016000205414156139e657613955826139f3565b7f8a11c8ca99994c292318ce367f65bf6ff61d390bc814b3588496f6fbcc32807a8286600280549050336040518085600019166000191681526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405180910390a1600193506139eb565b600093505b505050919050565b6000600760008360001916600019168152602001908152602001600020549050600160038054905003811015613aa0576003600160038054905003815481101515613a3a57fe5b9060005260206000200154600382815481101515613a5457fe5b9060005260206000200181600019169055508060076000600384815481101515613a7a57fe5b906000526020600020015460001916600019168152602001908152602001600020819055505b600380600160038054905003815481101515613ab857fe5b906000526020600020015490806001815401808255809150509060018203906000526020600020016000909192909190915090600019169055506008600083600019166000191681526020019081526020016000206000905560096000836000191660001916815260200190815260200160002060009055600760008360001916600019168152602001908152602001600020600090555050565b828054828255906000526020600020908101928215613bcc579160200282015b82811115613bcb5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190613b73565b5b509050613bd99190613bdd565b5090565b613c1d91905b80821115613c1957600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613be3565b5090565b905600a165627a7a72305820e9452aafecddd58b0b12a6e2b83661e29e681e63eed68011bc1213921b8d179c0029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000212dd60d4bf0da8372fe8116474602d429e5735f
-----Decoded View---------------
Arg [0] : _token (address): 0x212DD60D4Bf0DA8372fe8116474602d429E5735F
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000212dd60d4bf0da8372fe8116474602d429e5735f
Deployed Bytecode Sourcemap
78:4009:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;150:23:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;150:23:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2403:1015:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7378:136:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7378:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1498:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1498:100:2;;;;;;;;;;;;;;;;;;;;;;;110:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;110:34:2;;;;;;;;;;;;;;;;;;;;;;;1292:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1292:108:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3424:336:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3424:336:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;197:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;197:49:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;179:30:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;179:30:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;520:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;520:55:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:26:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;317:26:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:697:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6551:697:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;782:101:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;782:101:1;;;;;;;;;;;;;;;;;;;;;;;;;;146:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;146:45:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;581:56:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;581:56:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;73:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;73:31:2;;;;;;;;;;;;;;;;;;;;;;;1406:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1406:86:2;;;;;;;;;;;;;;;;;;;;;;;2020:377:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2020:377:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;351:45:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;351:45:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;889:684:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:684:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;403:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:18:1;;;;;;;;;;;;;;;;;;;;;;;252:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;252:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7715:1383:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7715:1383:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;419:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:53:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1579:435:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1579:435:1;;;;;;;;;;;;;;;;;;;;;;;;;;349:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:48:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3766:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3766:319:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;150:23:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2403:1015:1:-;2658:11;2687:6;3104:18;2525:1;2485:24;:36;2510:10;2485:36;;;;;;;;;;;;;;;;:41;;2481:931;;;2572:9;:16;;;;2550:11;:18;:38;2542:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2696:1;2687:10;;2683:99;2703:11;:18;2699:1;:22;2683:99;;;2753:11;2765:1;2753:14;;;;;;;;;;;;;;;;;;2746:21;;;;2723:3;;;;;;;2683:99;;;2816:3;2803:9;:16;;2795:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2952:3;;2933:9;:16;;;;:22;2920:9;:35;;2912:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3056:1;3052:5;;3047:158;3063:9;:16;;;;3059:1;:20;3047:158;;;3125:11;3137:1;3125:14;;;;;;;;;;;;;;;;;;3104:35;;3157:9;3167:1;3157:12;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:33;3179:10;3157:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3157:33:1;3081:3;;;;;;;3047:158;;;3273:10;:22;3284:10;3273:22;;;;;;;;;;;;;;;;3234:24;:36;3259:10;3234:36;;;;;;;;;;;;;;;;:61;3219:12;:76;;;;3309:5;;;;;;;;;;;:14;;;3324:10;3336:12;;3309:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3309:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3309:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3309:40:1;;;;;;;;;;;;;;;;;3389:12;;3363:10;:22;3374:10;3363:22;;;;;;;;;;;;;;;;:38;;;;;;;;;;;2481:931;2403:1015;;;;:::o;7378:136:2:-;7450:57;7479:9;7490;:16;7450:28;:57::i;:::-;7378:136;:::o;1498:100::-;1548:4;1571:13;:20;;;;1564:27;;1498:100;:::o;110:34::-;;;;:::o;1292:108::-;1345:4;1392:1;1368:13;:21;1382:6;1368:21;;;;;;;;;;;;;;;;:25;1361:32;;1292:108;;;:::o;3424:336:1:-;2839:11:2;2790:33;2809:6;:13;;;;2790:18;:33::i;:::-;2786:385;;;2882:1;2854:30;;:16;;;;;;;;;;;:30;;;2839:46;;2903:6;2899:123;;;2948:10;2929:16;;:29;;;;;;;;;;;;;;;;;;2994:6;:13;;;;2976:15;:31;;;;2899:123;3530:1:1;3521:6;:10;3513:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3611:1;3591:22;;:8;:22;;;;3583:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3682:6;3648:5;;;;;;;;;;;:15;;;3672:4;3648:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3648:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3648:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3648:30:1;;;;;;;;;;;;;;;;:40;;3640:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3721:5;;;;;;;;;;;:14;;;3736:8;3746:6;3721:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3721:32:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3721:32:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3721:32:1;;;;;;;;;;;;;;;;;3054:6:2;3050:111;;;3107:1;3080:16;;:29;;;;;;;;;;;;;;;;;;3145:1;3127:15;:19;;;;3050:111;2786:385;3424:336:1;;;:::o;197:49::-;;;;;;;;;;;;;;;;;:::o;179:30:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;520:55::-;;;;;;;;;;;;;;;;;:::o;317:26:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6551:697:2:-;6623:15;6872:24;1767:11;1730:21;1749:1;1730:18;:21::i;:::-;1726:361;;;1810:1;1782:30;;:16;;;;;;;;;;;:30;;;1767:46;;1831:6;1827:111;;;1876:10;1857:16;;:29;;;;;;;;;;;;;;;;;;1922:1;1904:15;:19;;;;1827:111;6669:1;6641:13;:25;6655:10;6641:25;;;;;;;;;;;;;;;;:29;6623:47;;6745:1;6729:10;6724:1;:15;6689:20;:31;6710:9;6689:31;;;;;;;;;;;;;;;;;;:51;6688:58;;6680:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6851:10;6846:1;:15;6844:18;6809:20;:31;6830:9;6809:31;;;;;;;;;;;;;;;;;;:53;;;;;;;;;;;6934:1;6899:21;:32;6921:9;6899:32;;;;;;;;;;;;;;;;;;:36;6872:63;;6980:19;6945:21;:32;6967:9;6945:32;;;;;;;;;;;;;;;;;:54;;;;7014:77;7033:9;7044:19;7065:6;:13;;;;7080:10;7014:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7128:1;7105:19;:24;7101:141;;;7145:26;7161:9;7145:15;:26::i;:::-;7190:41;7209:9;7220:10;7190:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7101:141;1970:6;1966:111;;;2023:1;1996:16;;:29;;;;;;;;;;;;;;;;;;2061:1;2043:15;:19;;;;1966:111;1726:361;6551:697;;;;:::o;782:101:1:-;2839:11:2;2790:33;2809:6;:13;;;;2790:18;:33::i;:::-;2786:385;;;2882:1;2854:30;;:16;;;;;;;;;;;:30;;;2839:46;;2903:6;2899:123;;;2948:10;2929:16;;:29;;;;;;;;;;;;;;;;;;2994:6;:13;;;;2976:15;:31;;;;2899:123;871:5:1;860:8;:16;854:3;:22;;;;3054:6:2;3050:111;;;3107:1;3080:16;;:29;;;;;;;;;;;;;;;;;;3145:1;3127:15;:19;;;;3050:111;2786:385;782:101:1;;:::o;146:45::-;;;;;;;;;;;;;;;;;:::o;581:56:2:-;;;;;;;;;;;;;;;;;:::o;73:31::-;;;;:::o;1406:86::-;1449:4;1472:6;:13;;;;1465:20;;1406:86;:::o;2020:377:1:-;2098:9;:16;;;;3575:11:2;3355:1;3345:7;:11;3337:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3430:6;:13;;;;3419:7;:24;;3411:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3532:27;3551:7;3532:18;:27::i;:::-;3528:373;;;3618:1;3590:30;;:16;;;;;;;;;;;:30;;;3575:46;;3639:6;3635:117;;;3684:10;3665:16;;:29;;;;;;;;;;;;;;;;;;3730:7;3712:15;:25;;;;3635:117;2150:1:1;2134:18;;:4;:18;;;;2126:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2196:1;2187:6;:10;2179:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:15;;;;;;;;;;;2257:16;2249:25;;;;;;;;2303:4;2285:15;;:22;;;;;;;;;;;;;;;;;;2351:6;2317:24;:30;2342:4;2317:30;;;;;;;;;;;;;;;;:40;;;;;;;;;;;2385:5;2367:15;;:23;;;;;;;;;;;;;;;;;;3784:6:2;3780:111;;;3837:1;3810:16;;:29;;;;;;;;;;;;;;;;;;3875:1;3857:15;:19;;;;3780:111;3528:373;2020:377:1;;;;:::o;351:45:2:-;;;;;;;;;;;;;;;;;:::o;889:684:1:-;972:6;1081;2839:11:2;2790:33;2809:6;:13;;;;2790:18;:33::i;:::-;2786:385;;;2882:1;2854:30;;:16;;;;;;;;;;;:30;;;2839:46;;2903:6;2899:123;;;2948:10;2929:16;;:29;;;;;;;;;;;;;;;;;;2994:6;:13;;;;2976:15;:31;;;;2899:123;981:1:1;972:10;;967:100;988:6;:13;;;;984:1;:17;967:100;;;1029:16;:27;1046:6;1053:1;1046:9;;;;;;;;;;;;;;;;;;;;;;;;;;;1029:27;;;;;;;;;;;;;;;1022:34;;;1003:3;;;;;;;967:100;;;1090:1;1081:10;;1076:405;1097:10;:17;1093:1;:21;1076:405;;;1168:1;1143:27;;:10;1154:1;1143:13;;;;;;;;;;;;;;;;;;:27;;;;1135:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1270:1;1235:16;:31;1252:10;1263:1;1252:13;;;;;;;;;;;;;;;;;;1235:31;;;;;;;;;;;;;;;;:36;1227:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1373:1;1342:13;:28;1356:10;1367:1;1356:13;;;;;;;;;;;;;;;;;;1342:28;;;;;;;;;;;;;;;;:32;1334:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1469:1;1465;:5;1431:16;:31;1448:10;1459:1;1448:13;;;;;;;;;;;;;;;;;;1431:31;;;;;;;;;;;;;;;:39;;;;1116:3;;;;;;;1076:405;;;1495:39;1512:9;1523:10;1495:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1495:39:1;;;;;;;;;;;;;;;;;;;1556:10;1544:9;:22;;;;;;;;;;;;:::i;:::-;;3054:6:2;3050:111;;;3107:1;3080:16;;:29;;;;;;;;;;;;;;;;;;3145:1;3127:15;:19;;;;3050:111;2786:385;889:684:1;;;;:::o;403:18::-;;;;:::o;252:59::-;;;;;;;;;;;;;;;;;:::o;7715:1383:2:-;8356:6;8462;2298:11;2243:39;2262:19;;2243:18;:39::i;:::-;2239:397;;;2341:1;2313:30;;:16;;;;;;;;;;;:30;;;2298:46;;2362:6;2358:129;;;2407:10;2388:16;;:29;;;;;;;;;;;;;;;;;;2453:19;;2435:15;:37;;;;2358:129;7872:1;7853:9;:16;:20;7845:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7967:3;7947:9;:16;:23;;7939:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8080:1;8055:22;:26;8047:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8193:9;:16;8167:22;:42;;8159:136;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8365:1;8356:10;;8351:97;8372:6;:13;;;;8368:1;:17;8351:97;;;8413:13;:24;8427:6;8434:1;8427:9;;;;;;;;;;;;;;;;;;;;;;;;;;;8413:24;;;;;;;;;;;;;;;8406:31;;;8387:3;;;;;;;8351:97;;;8471:1;8462:10;;8457:334;8478:9;:16;8474:1;:20;8457:334;;;8547:1;8523:26;;:9;8533:1;8523:12;;;;;;;;;;;;;;;;;;:26;;;;8515:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8663:1;8632:13;:27;8646:9;8656:1;8646:12;;;;;;;;;;;;;;;;;;8632:27;;;;;;;;;;;;;;;;:32;8624:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8779:1;8775;:5;8745:13;:27;8759:9;8769:1;8759:12;;;;;;;;;;;;;;;;;;8745:27;;;;;;;;;;;;;;;:35;;;;8496:3;;;;;;;8457:334;;;8814:84;8835:6;8843:19;;8864:9;8875:22;8814:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8814:84:2;;;;;;;;;;;;;;;;;;;;;8917:9;8908:6;:18;;;;;;;;;;;;:::i;:::-;;8958:22;8936:19;:44;;;;9027:13;9046;9060:1;9046:16;;;;;;;;;;;;;;;;;;9027:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;9027:36:2;;;;;;;;;;;;;;;;;;;;;;;;;;;9073:16;;:18;;;;;;;;;;;;;2519:6;2515:111;;;2572:1;2545:16;;:29;;;;;;;;;;;;;;;;;;2610:1;2592:15;:19;;;;2515:111;2239:397;7715:1383;;;;;:::o;419:53::-;;;;;;;;;;;;;;;;;:::o;1579:435:1:-;1662:1;1640:24;;:10;:24;;;;1632:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1708:1;1699:6;:10;1691:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1800:6;1769:5;;;;;;;;;;;:15;;;1785:10;1769:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1769:27:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1769:27:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1769:27:1;;;;;;;;;;;;;;;;:37;;1761:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1856:5;;;;;;;;;;;:18;;;1875:10;1895:4;1902:6;1856:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1856:53:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1856:53:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1856:53:1;;;;;;;;;;;;;;;;1839:14;;:70;;;;;;;;;;;;;;;;;;1941:4;1923:22;;:14;;;;;;;;;;;:22;;;1919:89;;;1991:6;1961:14;:26;1976:10;1961:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;1919:89;1579:435;:::o;349:48::-;;;;;;;;;;;;;;;;;:::o;3766:319::-;2839:11:2;2790:33;2809:6;:13;;;;2790:18;:33::i;:::-;2786:385;;;2882:1;2854:30;;:16;;;;;;;;;;;:30;;;2839:46;;2903:6;2899:123;;;2948:10;2929:16;;:29;;;;;;;;;;;;;;;;;;2994:6;:13;;;;2976:15;:31;;;;2899:123;3871:1:1;3862:6;:10;3854:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3952:1;3932:22;;:8;:22;;;;3924:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4014:6;3997:4;3989:21;;;:31;;3981:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4053:8;:17;;:25;4071:6;4053:25;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4053:25:1;3054:6:2;3050:111;;;3107:1;3080:16;;:29;;;;;;;;;;;;;;;;;;3145:1;3127:15;:19;;;;3050:111;2786:385;3766:319:1;;;:::o;4156:1492:2:-;4215:4;4434:15;4586:17;4872:24;4255:10;4235:30;;:16;;;;;;;;;;;:30;;;4231:193;;;4300:15;;4289:7;:26;;4281:107;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:4;4402:11;;;;4231:193;4480:1;4452:13;:25;4466:10;4452:25;;;;;;;;;;;;;;;;:29;4434:47;;4512:6;:13;;;;4499:10;:26;4491:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:8;;4643:16;;4616:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4616:44:2;;;4606:55;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4606:55:2;;;;;;;;;;;;;;;;4586:75;;4737:1;4721:10;4716:1;:15;4681:20;:31;4702:9;4681:31;;;;;;;;;;;;;;;;;;:51;4680:58;4672:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4851:10;4846:1;:15;4810:20;:31;4831:9;4810:31;;;;;;;;;;;;;;;;;;:52;;;;;;;;;;;4934:1;4899:21;:32;4921:9;4899:32;;;;;;;;;;;;;;;;;;:36;4872:63;;4980:19;4945:21;:32;4967:9;4945:32;;;;;;;;;;;;;;;;;:54;;;;5036:1;5013:19;:24;5009:235;;;5088:13;:20;;;;5053:21;:32;5075:9;5053:32;;;;;;;;;;;;;;;;;:55;;;;5122:13;5141:9;5122:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;5122:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;5170:63;5187:9;5198:7;5207:6;:13;;;;5222:10;5170:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5009:235;5258:84;5275:9;5286:19;5307:7;5316:6;:13;;;;5331:10;5258:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5450:7;5414:21;:32;5436:9;5414:32;;;;;;;;;;;;;;;;;;:43;5410:209;;;5473:26;5489:9;5473:15;:26::i;:::-;5518:65;5537:9;5548:7;5557:6;:13;;;;5572:10;5518:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5604:4;5597:11;;;;5410:209;5636:5;5629:12;;4156:1492;;;;;;;:::o;5785:573::-;5848:10;5861:21;:32;5883:9;5861:32;;;;;;;;;;;;;;;;;;5848:45;;5938:1;5915:13;:20;;;;:24;5907:5;:32;5903:202;;;5990:13;6027:1;6004:13;:20;;;;:24;5990:39;;;;;;;;;;;;;;;;;;5967:13;5981:5;5967:20;;;;;;;;;;;;;;;;;:62;;;;;;;6089:5;6043:21;:43;6065:13;6079:5;6065:20;;;;;;;;;;;;;;;;;;6043:43;;;;;;;;;;;;;;;;;:51;;;;5903:202;6147:13;6166;6201:1;6180:13;:20;;;;:22;6166:37;;;;;;;;;;;;;;;;;;6147:57;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6147:57:2;;;;;;;;;;;;;;;;;;;;;;;;;;;6222:20;:31;6243:9;6222:31;;;;;;;;;;;;;;;;;6215:38;;;6270:21;:32;6292:9;6270:32;;;;;;;;;;;;;;;;;6263:39;;;6319:21;:32;6341:9;6319:32;;;;;;;;;;;;;;;;;6312:39;;;5785:573;;:::o;78:4009:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://e9452aafecddd58b0b12a6e2b83661e29e681e63eed68011bc1213921b8d179c
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.94
Net Worth in ETH
0.00045
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,098.77 | 0.00045 | $0.944453 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.