More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 51 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 14543910 | 986 days ago | IN | 0 ETH | 0.00513027 | ||||
Vote Proposal | 10860954 | 1557 days ago | IN | 0 ETH | 0.08610084 | ||||
Vote Proposal | 10860052 | 1557 days ago | IN | 0 ETH | 0.01507324 | ||||
Vote Proposal | 10857341 | 1558 days ago | IN | 0 ETH | 0.00588675 | ||||
Create Proposal | 10857296 | 1558 days ago | IN | 0 ETH | 0.03601417 | ||||
Delete Proposal | 10831472 | 1562 days ago | IN | 0 ETH | 0.00672283 | ||||
Vote Proposal | 10737800 | 1576 days ago | IN | 0 ETH | 0.03728016 | ||||
Vote Proposal | 10709359 | 1580 days ago | IN | 0 ETH | 0.00514377 | ||||
Vote Proposal | 10707560 | 1581 days ago | IN | 0 ETH | 0.00737273 | ||||
Create Proposal | 10702078 | 1581 days ago | IN | 0 ETH | 0.03926713 | ||||
Vote Proposal | 10700191 | 1582 days ago | IN | 0 ETH | 0.02531152 | ||||
Vote Proposal | 10690885 | 1583 days ago | IN | 0 ETH | 0.00782996 | ||||
Vote Proposal | 10689222 | 1583 days ago | IN | 0 ETH | 0.00908732 | ||||
Create Proposal | 10687239 | 1584 days ago | IN | 0 ETH | 0.03285704 | ||||
Vote Proposal | 10662399 | 1588 days ago | IN | 0 ETH | 0.00299414 | ||||
Vote Proposal | 10598099 | 1597 days ago | IN | 0 ETH | 0.00237693 | ||||
Vote Proposal | 10597999 | 1598 days ago | IN | 0 ETH | 0.00257188 | ||||
Create Proposal | 10597981 | 1598 days ago | IN | 0 ETH | 0.01492865 | ||||
Vote Proposal | 10461465 | 1619 days ago | IN | 0 ETH | 0.00638345 | ||||
Vote Proposal | 10461451 | 1619 days ago | IN | 0 ETH | 0.00660512 | ||||
Vote Proposal | 10457976 | 1619 days ago | IN | 0 ETH | 0.00297195 | ||||
Vote Proposal | 10457976 | 1619 days ago | IN | 0 ETH | 0.00297195 | ||||
Vote Proposal | 10457121 | 1619 days ago | IN | 0 ETH | 0.0030291 | ||||
Vote Proposal | 10457118 | 1619 days ago | IN | 0 ETH | 0.0030291 | ||||
Create Proposal | 10455907 | 1620 days ago | IN | 0 ETH | 0.00967712 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
GrantsDAO
Compiler Version
v0.5.13+commit.5b0b510c
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-04-22 */ pragma solidity 0.5.13; /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ 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); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /** * @title Synthetix Grants DAO * @notice This contract allows for grants to be proposed and voted on by community members * and the Synthetix team. All proposals must receive at least one approving vote by a * Synthetix member before funds will transfer. */ contract GrantsDAO { using SafeMath for uint256; uint256 public constant VOTING_PHASE = 9 days; uint256 public toPass; uint256 public counter = 1; IERC20 public SNX; struct Proposal { bool teamApproval; address receiver; uint256 amount; uint256 createdAt; uint256 approvals; string description; string url; mapping(address => bool) voted; } mapping(uint256 => Proposal) public proposals; mapping(uint256 => Proposal) public completeProposals; mapping(address => bool) public teamMembers; mapping(address => bool) public communityMembers; address[] private teamAddresses; address[] private communityAddresses; uint256[] private validProposals; uint256[] private completeProposalIds; event NewProposal(address receiver, uint256 amount, uint256 proposalNumber); event VoteProposal(uint256 proposal, address member, bool vote); event ExecuteProposal(address receiver, uint256 amount); event DeleteProposal(uint256 proposalNumber); /** * @notice Contract is created with an initial array of team and community members * which will be stored in mappings * @param _snx The address of the SNX token * @param _teamMembers An array of addresses for the team members * @param _communityMembers An array of addresses for the community members * @param _toPass The number of votes each proposal is required in order to execute */ constructor( address _snx, address[] memory _teamMembers, address[] memory _communityMembers, uint256 _toPass ) public { require(_teamMembers.length > 0, "Need at least one teamMember"); require(_toPass <= (_teamMembers.length + _communityMembers.length), "Invalid value to pass proposals"); // Add members to their respective mappings and increase members count for (uint i = 0; i < _teamMembers.length; i++) { teamMembers[_teamMembers[i]] = true; teamAddresses.push(_teamMembers[i]); } for (uint i = 0; i < _communityMembers.length; i++) { communityMembers[_communityMembers[i]] = true; communityAddresses.push(_communityMembers[i]); } toPass = _toPass; SNX = IERC20(_snx); } /** * @notice Called by proposers (team or community) to propose funding for an address. * Emits NewProposal event. * @param _receiver The address to receive funds if proposal executes * @param _amount The amount that the receiver will receive * @param _description The description of the proposal * @return The proposal number for reference */ function createProposal( address _receiver, uint256 _amount, string calldata _description, string calldata _url ) external onlyProposer() returns (uint256) { require(_amount > 0, "Amount must be greater than 0"); require(_receiver != address(0), "Receiver cannot be zero address"); uint256 _counter = counter; // Pull counter into memory to save gas counter = _counter.add(1); proposals[_counter] = Proposal( false, _receiver, _amount, block.timestamp, 1, _description, _url ); // If a proposal is created by a team member, mark it as approved by the team if (teamMembers[msg.sender]) { proposals[_counter].teamApproval = true; } proposals[_counter].voted[msg.sender] = true; validProposals.push(_counter); emit NewProposal(_receiver, _amount, _counter); return _counter; } /** * @notice Called by proposers (team or community) to vote for a specified proposal. * Emits VoteProposal event. * @param _proposal The proposal number to vote on * @param _vote Boolean to indicate whether or not they approve of the proposal */ function voteProposal(uint256 _proposal, bool _vote) external onlyProposer() { require(votingPhase(_proposal), "Proposal not in voting phase"); require(!proposals[_proposal].voted[msg.sender], "Already voted"); proposals[_proposal].voted[msg.sender] = true; if (_vote) { if (teamMembers[msg.sender]) { proposals[_proposal].teamApproval = true; } proposals[_proposal].approvals = proposals[_proposal].approvals.add(1); // Only execute if enough approvals AND the proposal has at least one teamApproval if (proposals[_proposal].approvals >= toPass && proposals[_proposal].teamApproval) { _executeProposal(_proposal); } } else { // Allows a team member to automatically kill a proposal if (teamMembers[msg.sender]) { _deleteProposal(_proposal); // Do not emit VoteProposal if deleting return; } } emit VoteProposal(_proposal, msg.sender, _vote); } /** * @notice Called by proposers to clean up storage and unlock funds. * Emits DeleteProposal event. * @param _proposal The proposal number to delete */ function deleteProposal(uint256 _proposal) external onlyProposer() { require(block.timestamp > proposals[_proposal].createdAt.add(VOTING_PHASE), "Proposal not expired"); _deleteProposal(_proposal); } /** * @notice Returns the addresses for the active community members * @return Array of community member addresses */ function getCommunityMembers() external view returns (address[] memory) { return communityAddresses; } /** * @notice Gets the addresses for the active team members * @return Array of team member addresses */ function getTeamMembers() external view returns (address[] memory) { return teamAddresses; } /** * @notice Gets the proposal IDs of active proposals * @return Unsorted array of proposal IDs */ function getProposals() external view returns (uint256[] memory) { return validProposals; } /** * @notice Gets the proposal IDs of complete proposals * @return Unsorted array of proposal IDs */ function getCompleteProposals() external view returns (uint256[] memory) { return completeProposalIds; } /** * @notice Called by team members to withdraw extra tokens in the contract * @param _receiver The address to receive tokens * @param _amount The amount to withdraw */ function withdraw(address _receiver, uint256 _amount) external onlyTeamMember() { require(_amount <= withdrawable(), "Unable to withdraw amount"); assert(SNX.transfer(_receiver, _amount)); } /** * @notice Allows team members to withdraw any tokens from the contract * @param _receiver The address to receive tokens * @param _amount The amount to withdraw * @param _erc20 The address of the ERC20 token being transferred * */ function withdrawERC20(address _receiver, uint256 _amount, address _erc20) external onlyTeamMember() { if (_erc20 == address(SNX)) { require(_amount <= withdrawable(), "Unable to withdraw amount"); } assert(IERC20(_erc20).transfer(_receiver, _amount)); } /** * @notice Allows community members to be added as proposers and voters * @param _member The address of the community member */ function addCommunityMember(address _member) external onlyTeamMember() { communityMembers[_member] = true; communityAddresses.push(_member); } /** * @notice Allows community members to be removed * @dev The caller can specify an array of proposals to have the member's vote removed * @param _member The address of the community member * @param _proposals The array of proposals to have the member's vote removed from */ function removeCommunityMember(address _member, uint256[] calldata _proposals) external onlyTeamMember() { delete communityMembers[_member]; for (uint i = 0; i < communityAddresses.length; i++) { if (communityAddresses[i] == _member) { communityAddresses[i] = communityAddresses[communityAddresses.length - 1]; communityAddresses.length--; } } for (uint i = 0; i < _proposals.length; i++) { require(proposals[_proposals[i]].voted[_member], "Member did not vote for proposal"); delete proposals[_proposals[i]].voted[_member]; proposals[_proposals[i]].approvals = proposals[_proposals[i]].approvals.sub(1); } } /** * @notice Allows team members to be added * @param _member The address of the team member */ function addTeamMember(address _member) external onlyTeamMember() { teamMembers[_member] = true; teamAddresses.push(_member); } /** * @notice Allows team members to be removed * @param _member The address of the team member */ function removeTeamMember(address _member) external onlyTeamMember() { // Prevents the possibility of there being no team members require(msg.sender != _member, "Cannot remove self"); delete teamMembers[_member]; for (uint i = 0; i < teamAddresses.length; i++) { if (teamAddresses[i] == _member) { teamAddresses[i] = teamAddresses[teamAddresses.length - 1]; teamAddresses.length--; } } } /** * @notice Allows the number of votes required to pass a proposal to be updated * @param _toPass The new value for the number of votes to pass a proposal */ function updateToPass(uint256 _toPass) external onlyTeamMember() { require(_toPass > 0, "Invalid value to pass proposals"); toPass = _toPass; } /** * @notice Allows team members to update the SNX proxy address being used * @param _proxy The new proxy address to be used */ function updateProxyAddress(address _proxy) external onlyTeamMember() { require(_proxy != address(SNX), "Cannot set proxy address to the current proxy address"); SNX = IERC20(_proxy); } /** * @notice Shows the balance of the contract which can be withdrawn by team members * @return The withdrawable balance */ function withdrawable() public view returns (uint256) { return SNX.balanceOf(address(this)); } /** * @notice Displays the total balance of the contract * @return The balance of the contract */ function totalBalance() external view returns (uint256) { return SNX.balanceOf(address(this)); } /** * @notice Checks to see whether an address has voted on a proposal * @return Boolean indicating if the address has voted */ function voted(address _member, uint256 _proposal) external view returns (bool) { return proposals[_proposal].voted[_member]; } /** * @notice Check to see whether a proposal is in the voting phase * @param _proposal The proposal number to check * @return Boolean indicating if the proposal is in the voting phase */ function votingPhase(uint256 _proposal) public view returns (bool) { uint256 createdAt = proposals[_proposal].createdAt; return block.timestamp <= createdAt.add(VOTING_PHASE); } /** * @dev Private method to delete a proposal * @param _proposal The proposal number to delete */ function _deleteProposal(uint256 _proposal) private { delete proposals[_proposal]; for (uint i = 0; i < validProposals.length; i++) { if (validProposals[i] == _proposal) { validProposals[i] = validProposals[validProposals.length - 1]; validProposals.length--; } } emit DeleteProposal(_proposal); } /** * @dev Private method to execute a proposal * @param _proposal The proposal number to delete */ function _executeProposal(uint256 _proposal) private { Proposal memory proposal = proposals[_proposal]; require(withdrawable() >= proposal.amount, "Not enough SNX to execute proposal"); completeProposalIds.push(_proposal); completeProposals[_proposal] = proposal; _deleteProposal(_proposal); for (uint i = 0; i < validProposals.length; i++) { if (validProposals[i] == _proposal) { validProposals[i] = validProposals[validProposals.length - 1]; validProposals.length--; } } assert(SNX.transfer(proposal.receiver, proposal.amount)); emit ExecuteProposal(proposal.receiver, proposal.amount); } /** * @dev Reverts if caller is not a team member */ modifier onlyTeamMember() { require(teamMembers[msg.sender], "Not team member"); _; } /** * @dev Reverts if caller is not a proposer (team or community member) */ modifier onlyProposer() { require( teamMembers[msg.sender] || communityMembers[msg.sender], "Not proposer" ); _; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_snx","type":"address"},{"internalType":"address[]","name":"_teamMembers","type":"address[]"},{"internalType":"address[]","name":"_communityMembers","type":"address[]"},{"internalType":"uint256","name":"_toPass","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposalNumber","type":"uint256"}],"name":"DeleteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"proposalNumber","type":"uint256"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"proposal","type":"uint256"},{"indexed":false,"internalType":"address","name":"member","type":"address"},{"indexed":false,"internalType":"bool","name":"vote","type":"bool"}],"name":"VoteProposal","type":"event"},{"constant":true,"inputs":[],"name":"SNX","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"VOTING_PHASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_member","type":"address"}],"name":"addCommunityMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_member","type":"address"}],"name":"addTeamMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"communityMembers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"completeProposals","outputs":[{"internalType":"bool","name":"teamApproval","type":"bool"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"approvals","type":"uint256"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"url","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"counter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"string","name":"_url","type":"string"}],"name":"createProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"deleteProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCommunityMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCompleteProposals","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getProposals","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getTeamMembers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"bool","name":"teamApproval","type":"bool"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"approvals","type":"uint256"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"url","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256[]","name":"_proposals","type":"uint256[]"}],"name":"removeCommunityMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_member","type":"address"}],"name":"removeTeamMember","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"teamMembers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"toPass","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_proxy","type":"address"}],"name":"updateProxyAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_toPass","type":"uint256"}],"name":"updateToPass","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"},{"internalType":"bool","name":"_vote","type":"bool"}],"name":"voteProposal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"voted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_proposal","type":"uint256"}],"name":"votingPhase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_erc20","type":"address"}],"name":"withdrawERC20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"withdrawable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600180553480156200001557600080fd5b506040516200412f3803806200412f833981810160405260808110156200003b57600080fd5b8101908080519060200190929190805160405193929190846401000000008211156200006657600080fd5b838201915060208201858111156200007d57600080fd5b82518660208202830111640100000000821117156200009b57600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620000d4578082015181840152602081019050620000b7565b5050505090500160405260200180516040519392919084640100000000821115620000fe57600080fd5b838201915060208201858111156200011557600080fd5b82518660208202830111640100000000821117156200013357600080fd5b8083526020830192505050908051906020019060200280838360005b838110156200016c5780820151818401526020810190506200014f565b50505050905001604052602001805190602001909291905050506000835111620001fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4e656564206174206c65617374206f6e65207465616d4d656d6265720000000081525060200191505060405180910390fd5b815183510181111562000279576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642076616c756520746f20706173732070726f706f73616c730081525060200191505060405180910390fd5b60008090505b83518110156200037d576001600560008684815181106200029c57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078482815181106200030457fe5b602002602001015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505080806001019150506200027f565b5060008090505b82518110156200048257600160066000858481518110620003a157fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088382815181106200040957fe5b602002602001015190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050808060010191505062000384565b508060008190555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050613c5080620004df6000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80638c95aef9116100f9578063c591aa9811610097578063e8d6101e11610071578063e8d6101e14610b06578063eac32a8e14610b50578063efded14714610b94578063f3fef3a314610bf3576101a9565b8063c591aa98146108de578063c836292b14610944578063e4e50c9f146109a0576101a9565b8063af25180a116100d3578063af25180a146107bf578063bcfb9b6114610858578063bd5101f814610892578063c3179bff146108b0576101a9565b80638c95aef914610639578063ab88777b14610695578063ad7a672f146107a1576101a9565b80635c6273581161016657806362564c481161014057806362564c481461052f5780637888a26d1461058e5780638259d553146105ac5780638979c2a2146105da576101a9565b80635c6273581461045f5780635fc3ea0b146104a357806361bc221a14610511576101a9565b8063013cf08b146101ae57806314eba0261461031457806338767486146103585780633eb2b5ad146103b75780633f80d952146103fb5780635018830114610441575b600080fd5b6101da600480360360208110156101c457600080fd5b8101908080359060200190929190505050610c41565b60405180881515151581526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561026c578082015181840152602081019050610251565b50505050905090810190601f1680156102995780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102d25780820151818401526020810190506102b7565b50505050905090810190601f1680156102ff5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6103566004803603602081101561032a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de0565b005b6103606110cb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103a3578082015181840152602081019050610388565b505050509050019250505060405180910390f35b6103f9600480360360208110156103cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611159565b005b6104276004803603602081101561041157600080fd5b81019080803590602001909291905050506112d9565b604051808215151515815260200191505060405180910390f35b610449611316565b6040518082815260200191505060405180910390f35b6104a16004803603602081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f7565b005b61050f600480360360608110156104b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611577565b005b6105196117d7565b6040518082815260200191505060405180910390f35b6105376117dd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561057a57808201518184015260208101905061055f565b505050509050019250505060405180910390f35b610596611835565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105c257600080fd5b810190808035906020019092919050505061183c565b005b6105e26119fb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561062557808201518184015260208101905061060a565b505050509050019250505060405180910390f35b61067b6004803603602081101561064f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a53565b604051808215151515815260200191505060405180910390f35b61078b600480360360808110156106ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106f257600080fd5b82018360208201111561070457600080fd5b8035906020019184600183028401116401000000008311171561072657600080fd5b90919293919293908035906020019064010000000081111561074757600080fd5b82018360208201111561075957600080fd5b8035906020019184600183028401116401000000008311171561077b57600080fd5b9091929391929390505050611a73565b6040518082815260200191505060405180910390f35b6107a9612007565b6040518082815260200191505060405180910390f35b610856600480360360408110156107d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561081257600080fd5b82018360208201111561082457600080fd5b8035906020019184602083028401116401000000008311171561084657600080fd5b90919293919293905050506120e8565b005b6108906004803603604081101561086e57600080fd5b8101908080359060200190929190803515159060200190929190505050612514565b005b61089a6129e7565b6040518082815260200191505060405180910390f35b6108dc600480360360208110156108c657600080fd5b81019080803590602001909291905050506129ed565b005b61092a600480360360408110156108f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b2c565b604051808215151515815260200191505060405180910390f35b6109866004803603602081101561095a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b97565b604051808215151515815260200191505060405180910390f35b6109cc600480360360208110156109b657600080fd5b8101908080359060200190929190505050612bb7565b60405180881515151581526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610a5e578082015181840152602081019050610a43565b50505050905090810190601f168015610a8b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610ac4578082015181840152602081019050610aa9565b50505050905090810190601f168015610af15780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b610b0e612d56565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b9260048036036020811015610b6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d7c565b005b610b9c612f26565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610bdf578082015181840152602081019050610bc4565b505050509050019250505060405180910390f35b610c3f60048036036040811015610c0957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fb4565b005b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d385780601f10610d0d57610100808354040283529160200191610d38565b820191906000526020600020905b815481529060010190602001808311610d1b57829003601f168201915b505050505090806005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b5050505050905087565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610f41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f43616e6e6f742072656d6f76652073656c66000000000000000000000000000081525060200191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560008090505b6007805490508110156110c7578173ffffffffffffffffffffffffffffffffffffffff1660078281548110610fc757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110ba5760076001600780549050038154811061102357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007828154811061105b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060078054809190600190036110b89190613a2a565b505b8080600101915050610f96565b5050565b6060600880548060200260200160405190810160405280929190818152602001828054801561114f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611105575b5050505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806003600084815260200190815260200160002060020154905061130b620bdd80826131de90919063ffffffff16565b421115915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b8101908080519060200190929190505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561170a57611694611316565b821115611709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f556e61626c6520746f20776974686472617720616d6f756e740000000000000081525060200191505060405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561179157600080fd5b505af11580156117a5573d6000803e3d6000fd5b505050506040513d60208110156117bb57600080fd5b81019080805190602001909291905050506117d257fe5b505050565b60015481565b6060600980548060200260200160405190810160405280929190818152602001828054801561182b57602002820191906000526020600020905b815481526020019060010190808311611817575b5050505050905090565b620bdd8081565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118dd5750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b61197b620bdd8060036000848152602001908152602001600020600201546131de90919063ffffffff16565b42116119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f50726f706f73616c206e6f74206578706972656400000000000000000000000081525060200191505060405180910390fd5b6119f881613266565b50565b6060600a805480602002602001604051908101604052809291908181526020018280548015611a4957602002820191906000526020600020905b815481526020019060010190808311611a35575b5050505050905090565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b165750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008611611bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416d6f756e74206d7573742062652067726561746572207468616e203000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611ca1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f52656365697665722063616e6e6f74206265207a65726f20616464726573730081525060200191505060405180910390fd5b60006001549050611cbc6001826131de90919063ffffffff16565b6001819055506040518060e001604052806000151581526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020014281526020016001815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506003600083815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004019080519060200190611e4b929190613a56565b5060c0820151816005019080519060200190611e68929190613a56565b50905050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eee5760016003600083815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b60016003600083815260200190815260200160002060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098190806001815401808255809150509060018203906000526020600020016000909192909190915055507f7bf352ba24249a94adb0618fb9a979f326660385774ed92388e949525e871d27888883604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1809150509695505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120a857600080fd5b505afa1580156120bc573d6000803e3d6000fd5b505050506040513d60208110156120d257600080fd5b8101908080519060200190929190505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560008090505b60088054905081101561232d578373ffffffffffffffffffffffffffffffffffffffff166008828154811061222d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123205760086001600880549050038154811061228957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600882815481106122c157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600880548091906001900361231e9190613a2a565b505b80806001019150506121fc565b5060008090505b8282905081101561250e576003600084848481811061234f57fe5b90506020020135815260200190815260200160002060060160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d656d62657220646964206e6f7420766f746520666f722070726f706f73616c81525060200191505060405180910390fd5b6003600084848481811061243457fe5b90506020020135815260200190815260200160002060060160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556124d56001600360008686868181106124ae57fe5b905060200201358152602001908152602001600020600301546133bb90919063ffffffff16565b600360008585858181106124e557fe5b905060200201358152602001908152602001600020600301819055508080600101915050612334565b50505050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125b55750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b612630826112d9565b6126a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f50726f706f73616c206e6f7420696e20766f74696e672070686173650000000081525060200191505060405180910390fd5b6003600083815260200190815260200160002060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647920766f7465640000000000000000000000000000000000000081525060200191505060405180910390fd5b60016003600084815260200190815260200160002060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561290a57600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561286a5760016003600084815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b612894600160036000858152602001908152602001600020600301546131de90919063ffffffff16565b60036000848152602001908152602001600020600301819055506000546003600084815260200190815260200160002060030154101580156128f657506003600083815260200190815260200160002060000160009054906101000a900460ff165b156129055761290482613405565b5b61296b565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561296a5761296582613266565b6129e3565b5b7f1c076051e65699422562af80dc299053856695c24ba29b4d03628be79bd19cf4823383604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182151515158152602001935050505060405180910390a15b5050565b60005481565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b60008111612b22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642076616c756520746f20706173732070726f706f73616c730081525060200191505060405180910390fd5b8060008190555050565b60006003600083815260200190815260200160002060060160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b60046020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cae5780601f10612c8357610100808354040283529160200191612cae565b820191906000526020600020905b815481529060010190602001808311612c9157829003601f168201915b505050505090806005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d4c5780601f10612d2157610100808354040283529160200191612d4c565b820191906000526020600020905b815481529060010190602001808311612d2f57829003601f168201915b5050505050905087565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613be76035913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606007805480602002602001604051908101604052809291908181526020018280548015612faa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612f60575b5050505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b61307b611316565b8111156130f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f556e61626c6520746f20776974686472617720616d6f756e740000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561319957600080fd5b505af11580156131ad573d6000803e3d6000fd5b505050506040513d60208110156131c357600080fd5b81019080805190602001909291905050506131da57fe5b5050565b60008082840190508381101561325c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60036000828152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905560038201600090556004820160006132dd9190613ad6565b6005820160006132ed9190613ad6565b505060008090505b60098054905081101561338057816009828154811061331057fe5b906000526020600020015414156133735760096001600980549050038154811061333657fe5b90600052602060002001546009828154811061334e57fe5b906000526020600020018190555060098054809190600190036133719190613b1e565b505b80806001019150506132f5565b507fd601bc18245e20cfc0db666ddd2de3b93b1932c1b00408cfa89afb688cb0db6f816040518082815260200191505060405180910390a150565b60006133fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061396a565b905092915050565b61340d613b4a565b600360008381526020019081526020016000206040518060e00160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815260200160038201548152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135535780601f1061352857610100808354040283529160200191613553565b820191906000526020600020905b81548152906001019060200180831161353657829003601f168201915b50505050508152602001600582018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135f55780601f106135ca576101008083540402835291602001916135f5565b820191906000526020600020905b8154815290600101906020018083116135d857829003601f168201915b5050505050815250509050806040015161360d611316565b1015613664576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613bc56022913960400191505060405180910390fd5b600a829080600181540180825580915050906001820390600052602060002001600090919290919091505550806004600084815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004019080519060200190613745929190613a56565b5060c0820151816005019080519060200190613762929190613a56565b5090505061376f82613266565b60008090505b60098054905081101561380057826009828154811061379057fe5b906000526020600020015414156137f3576009600160098054905003815481106137b657fe5b9060005260206000200154600982815481106137ce57fe5b906000526020600020018190555060098054809190600190036137f19190613b1e565b505b8080600101915050613775565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb826020015183604001516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156138b257600080fd5b505af11580156138c6573d6000803e3d6000fd5b505050506040513d60208110156138dc57600080fd5b81019080805190602001909291905050506138f357fe5b7fb8d301cd5f98b8a684e9fcee3fec6abc97ee218ec8794e9aed3f791e40fb465881602001518260400151604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000838311158290613a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139dc5780820151818401526020810190506139c1565b50505050905090810190601f168015613a095780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b815481835581811115613a5157818360005260206000209182019101613a509190613b9f565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a9757805160ff1916838001178555613ac5565b82800160010185558215613ac5579182015b82811115613ac4578251825591602001919060010190613aa9565b5b509050613ad29190613b9f565b5090565b50805460018160011615610100020316600290046000825580601f10613afc5750613b1b565b601f016020900490600052602060002090810190613b1a9190613b9f565b5b50565b815481835581811115613b4557818360005260206000209182019101613b449190613b9f565b5b505050565b6040518060e00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160608152602001606081525090565b613bc191905b80821115613bbd576000816000905550600101613ba5565b5090565b9056fe4e6f7420656e6f75676820534e5820746f20657865637574652070726f706f73616c43616e6e6f74207365742070726f7879206164647265737320746f207468652063757272656e742070726f78792061646472657373a265627a7a723158208a75e424072a9d798ad0c53f7fbdb6c5e1b3ca59fc0b22fe4259ffe2cfbb7ea664736f6c634300050d0032000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dda03223b1341bf929551220c116d8109f819e750000000000000000000000000a69c08c7b03f5e647d72f78ac008428fac94e370000000000000000000000000000000000000000000000000000000000000003000000000000000000000000003f6b20bfa4b5cab701960ecf73859cb3c095fc000000000000000000000000a5f7a39e55d7878bc5bd754ee5d6bd7a7662355b000000000000000000000000fe072d936072107ef9ab409cc523b0753efabd01
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80638c95aef9116100f9578063c591aa9811610097578063e8d6101e11610071578063e8d6101e14610b06578063eac32a8e14610b50578063efded14714610b94578063f3fef3a314610bf3576101a9565b8063c591aa98146108de578063c836292b14610944578063e4e50c9f146109a0576101a9565b8063af25180a116100d3578063af25180a146107bf578063bcfb9b6114610858578063bd5101f814610892578063c3179bff146108b0576101a9565b80638c95aef914610639578063ab88777b14610695578063ad7a672f146107a1576101a9565b80635c6273581161016657806362564c481161014057806362564c481461052f5780637888a26d1461058e5780638259d553146105ac5780638979c2a2146105da576101a9565b80635c6273581461045f5780635fc3ea0b146104a357806361bc221a14610511576101a9565b8063013cf08b146101ae57806314eba0261461031457806338767486146103585780633eb2b5ad146103b75780633f80d952146103fb5780635018830114610441575b600080fd5b6101da600480360360208110156101c457600080fd5b8101908080359060200190929190505050610c41565b60405180881515151581526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b8381101561026c578082015181840152602081019050610251565b50505050905090810190601f1680156102995780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156102d25780820151818401526020810190506102b7565b50505050905090810190601f1680156102ff5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6103566004803603602081101561032a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de0565b005b6103606110cb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103a3578082015181840152602081019050610388565b505050509050019250505060405180910390f35b6103f9600480360360208110156103cd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611159565b005b6104276004803603602081101561041157600080fd5b81019080803590602001909291905050506112d9565b604051808215151515815260200191505060405180910390f35b610449611316565b6040518082815260200191505060405180910390f35b6104a16004803603602081101561047557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f7565b005b61050f600480360360608110156104b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611577565b005b6105196117d7565b6040518082815260200191505060405180910390f35b6105376117dd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561057a57808201518184015260208101905061055f565b505050509050019250505060405180910390f35b610596611835565b6040518082815260200191505060405180910390f35b6105d8600480360360208110156105c257600080fd5b810190808035906020019092919050505061183c565b005b6105e26119fb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561062557808201518184015260208101905061060a565b505050509050019250505060405180910390f35b61067b6004803603602081101561064f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a53565b604051808215151515815260200191505060405180910390f35b61078b600480360360808110156106ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106f257600080fd5b82018360208201111561070457600080fd5b8035906020019184600183028401116401000000008311171561072657600080fd5b90919293919293908035906020019064010000000081111561074757600080fd5b82018360208201111561075957600080fd5b8035906020019184600183028401116401000000008311171561077b57600080fd5b9091929391929390505050611a73565b6040518082815260200191505060405180910390f35b6107a9612007565b6040518082815260200191505060405180910390f35b610856600480360360408110156107d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561081257600080fd5b82018360208201111561082457600080fd5b8035906020019184602083028401116401000000008311171561084657600080fd5b90919293919293905050506120e8565b005b6108906004803603604081101561086e57600080fd5b8101908080359060200190929190803515159060200190929190505050612514565b005b61089a6129e7565b6040518082815260200191505060405180910390f35b6108dc600480360360208110156108c657600080fd5b81019080803590602001909291905050506129ed565b005b61092a600480360360408110156108f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b2c565b604051808215151515815260200191505060405180910390f35b6109866004803603602081101561095a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b97565b604051808215151515815260200191505060405180910390f35b6109cc600480360360208110156109b657600080fd5b8101908080359060200190929190505050612bb7565b60405180881515151581526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018060200180602001838103835285818151815260200191508051906020019080838360005b83811015610a5e578082015181840152602081019050610a43565b50505050905090810190601f168015610a8b5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015610ac4578082015181840152602081019050610aa9565b50505050905090810190601f168015610af15780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b610b0e612d56565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b9260048036036020811015610b6657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d7c565b005b610b9c612f26565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610bdf578082015181840152602081019050610bc4565b505050509050019250505060405180910390f35b610c3f60048036036040811015610c0957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612fb4565b005b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d385780601f10610d0d57610100808354040283529160200191610d38565b820191906000526020600020905b815481529060010190602001808311610d1b57829003601f168201915b505050505090806005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dd65780601f10610dab57610100808354040283529160200191610dd6565b820191906000526020600020905b815481529060010190602001808311610db957829003601f168201915b5050505050905087565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610f41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f43616e6e6f742072656d6f76652073656c66000000000000000000000000000081525060200191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560008090505b6007805490508110156110c7578173ffffffffffffffffffffffffffffffffffffffff1660078281548110610fc757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110ba5760076001600780549050038154811061102357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166007828154811061105b57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060078054809190600190036110b89190613a2a565b505b8080600101915050610f96565b5050565b6060600880548060200260200160405190810160405280929190818152602001828054801561114f57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611105575b5050505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060078190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000806003600084815260200190815260200160002060020154905061130b620bdd80826131de90919063ffffffff16565b421115915050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156113b757600080fd5b505afa1580156113cb573d6000803e3d6000fd5b505050506040513d60208110156113e157600080fd5b8101908080519060200190929190505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166114b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561170a57611694611316565b821115611709576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f556e61626c6520746f20776974686472617720616d6f756e740000000000000081525060200191505060405180910390fd5b5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561179157600080fd5b505af11580156117a5573d6000803e3d6000fd5b505050506040513d60208110156117bb57600080fd5b81019080805190602001909291905050506117d257fe5b505050565b60015481565b6060600980548060200260200160405190810160405280929190818152602001828054801561182b57602002820191906000526020600020905b815481526020019060010190808311611817575b5050505050905090565b620bdd8081565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118dd5750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61194f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b61197b620bdd8060036000848152602001908152602001600020600201546131de90919063ffffffff16565b42116119ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f50726f706f73616c206e6f74206578706972656400000000000000000000000081525060200191505060405180910390fd5b6119f881613266565b50565b6060600a805480602002602001604051908101604052809291908181526020018280548015611a4957602002820191906000526020600020905b815481526020019060010190808311611a35575b5050505050905090565b60066020528060005260406000206000915054906101000a900460ff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b165750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008611611bfe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416d6f756e74206d7573742062652067726561746572207468616e203000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611ca1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f52656365697665722063616e6e6f74206265207a65726f20616464726573730081525060200191505060405180910390fd5b60006001549050611cbc6001826131de90919063ffffffff16565b6001819055506040518060e001604052806000151581526020018973ffffffffffffffffffffffffffffffffffffffff1681526020018881526020014281526020016001815260200187878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152506003600083815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004019080519060200190611e4b929190613a56565b5060c0820151816005019080519060200190611e68929190613a56565b50905050600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611eee5760016003600083815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b60016003600083815260200190815260200160002060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060098190806001815401808255809150509060018203906000526020600020016000909192909190915055507f7bf352ba24249a94adb0618fb9a979f326660385774ed92388e949525e871d27888883604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1809150509695505050505050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156120a857600080fd5b505afa1580156120bc573d6000803e3d6000fd5b505050506040513d60208110156120d257600080fd5b8101908080519060200190929190505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff021916905560008090505b60088054905081101561232d578373ffffffffffffffffffffffffffffffffffffffff166008828154811061222d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123205760086001600880549050038154811061228957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600882815481106122c157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600880548091906001900361231e9190613a2a565b505b80806001019150506121fc565b5060008090505b8282905081101561250e576003600084848481811061234f57fe5b90506020020135815260200190815260200160002060060160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612424576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4d656d62657220646964206e6f7420766f746520666f722070726f706f73616c81525060200191505060405180910390fd5b6003600084848481811061243457fe5b90506020020135815260200190815260200160002060060160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690556124d56001600360008686868181106124ae57fe5b905060200201358152602001908152602001600020600301546133bb90919063ffffffff16565b600360008585858181106124e557fe5b905060200201358152602001908152602001600020600301819055508080600101915050612334565b50505050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806125b55750600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f4e6f742070726f706f736572000000000000000000000000000000000000000081525060200191505060405180910390fd5b612630826112d9565b6126a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f50726f706f73616c206e6f7420696e20766f74696e672070686173650000000081525060200191505060405180910390fd5b6003600083815260200190815260200160002060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f416c726561647920766f7465640000000000000000000000000000000000000081525060200191505060405180910390fd5b60016003600084815260200190815260200160002060060160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550801561290a57600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561286a5760016003600084815260200190815260200160002060000160006101000a81548160ff0219169083151502179055505b612894600160036000858152602001908152602001600020600301546131de90919063ffffffff16565b60036000848152602001908152602001600020600301819055506000546003600084815260200190815260200160002060030154101580156128f657506003600083815260200190815260200160002060000160009054906101000a900460ff165b156129055761290482613405565b5b61296b565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561296a5761296582613266565b6129e3565b5b7f1c076051e65699422562af80dc299053856695c24ba29b4d03628be79bd19cf4823383604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182151515158152602001935050505060405180910390a15b5050565b60005481565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b60008111612b22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c69642076616c756520746f20706173732070726f706f73616c730081525060200191505060405180910390fd5b8060008190555050565b60006003600083815260200190815260200160002060060160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60056020528060005260406000206000915054906101000a900460ff1681565b60046020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002015490806003015490806004018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cae5780601f10612c8357610100808354040283529160200191612cae565b820191906000526020600020905b815481529060010190602001808311612c9157829003601f168201915b505050505090806005018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d4c5780601f10612d2157610100808354040283529160200191612d4c565b820191906000526020600020905b815481529060010190602001808311612d2f57829003601f168201915b5050505050905087565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613be76035913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606007805480602002602001604051908101604052809291908181526020018280548015612faa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612f60575b5050505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16613073576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f4e6f74207465616d206d656d626572000000000000000000000000000000000081525060200191505060405180910390fd5b61307b611316565b8111156130f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f556e61626c6520746f20776974686472617720616d6f756e740000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561319957600080fd5b505af11580156131ad573d6000803e3d6000fd5b505050506040513d60208110156131c357600080fd5b81019080805190602001909291905050506131da57fe5b5050565b60008082840190508381101561325c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60036000828152602001908152602001600020600080820160006101000a81549060ff02191690556000820160016101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160009055600282016000905560038201600090556004820160006132dd9190613ad6565b6005820160006132ed9190613ad6565b505060008090505b60098054905081101561338057816009828154811061331057fe5b906000526020600020015414156133735760096001600980549050038154811061333657fe5b90600052602060002001546009828154811061334e57fe5b906000526020600020018190555060098054809190600190036133719190613b1e565b505b80806001019150506132f5565b507fd601bc18245e20cfc0db666ddd2de3b93b1932c1b00408cfa89afb688cb0db6f816040518082815260200191505060405180910390a150565b60006133fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061396a565b905092915050565b61340d613b4a565b600360008381526020019081526020016000206040518060e00160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481526020016002820154815260200160038201548152602001600482018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135535780601f1061352857610100808354040283529160200191613553565b820191906000526020600020905b81548152906001019060200180831161353657829003601f168201915b50505050508152602001600582018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156135f55780601f106135ca576101008083540402835291602001916135f5565b820191906000526020600020905b8154815290600101906020018083116135d857829003601f168201915b5050505050815250509050806040015161360d611316565b1015613664576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613bc56022913960400191505060405180910390fd5b600a829080600181540180825580915050906001820390600052602060002001600090919290919091505550806004600084815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004019080519060200190613745929190613a56565b5060c0820151816005019080519060200190613762929190613a56565b5090505061376f82613266565b60008090505b60098054905081101561380057826009828154811061379057fe5b906000526020600020015414156137f3576009600160098054905003815481106137b657fe5b9060005260206000200154600982815481106137ce57fe5b906000526020600020018190555060098054809190600190036137f19190613b1e565b505b8080600101915050613775565b50600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb826020015183604001516040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156138b257600080fd5b505af11580156138c6573d6000803e3d6000fd5b505050506040513d60208110156138dc57600080fd5b81019080805190602001909291905050506138f357fe5b7fb8d301cd5f98b8a684e9fcee3fec6abc97ee218ec8794e9aed3f791e40fb465881602001518260400151604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000838311158290613a17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139dc5780820151818401526020810190506139c1565b50505050905090810190601f168015613a095780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b815481835581811115613a5157818360005260206000209182019101613a509190613b9f565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613a9757805160ff1916838001178555613ac5565b82800160010185558215613ac5579182015b82811115613ac4578251825591602001919060010190613aa9565b5b509050613ad29190613b9f565b5090565b50805460018160011615610100020316600290046000825580601f10613afc5750613b1b565b601f016020900490600052602060002090810190613b1a9190613b9f565b5b50565b815481835581811115613b4557818360005260206000209182019101613b449190613b9f565b5b505050565b6040518060e00160405280600015158152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016000815260200160608152602001606081525090565b613bc191905b80821115613bbd576000816000905550600101613ba5565b5090565b9056fe4e6f7420656e6f75676820534e5820746f20657865637574652070726f706f73616c43616e6e6f74207365742070726f7879206164647265737320746f207468652063757272656e742070726f78792061646472657373a265627a7a723158208a75e424072a9d798ad0c53f7fbdb6c5e1b3ca59fc0b22fe4259ffe2cfbb7ea664736f6c634300050d0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dda03223b1341bf929551220c116d8109f819e750000000000000000000000000a69c08c7b03f5e647d72f78ac008428fac94e370000000000000000000000000000000000000000000000000000000000000003000000000000000000000000003f6b20bfa4b5cab701960ecf73859cb3c095fc000000000000000000000000a5f7a39e55d7878bc5bd754ee5d6bd7a7662355b000000000000000000000000fe072d936072107ef9ab409cc523b0753efabd01
-----Decoded View---------------
Arg [0] : _snx (address): 0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
Arg [1] : _teamMembers (address[]): 0xDda03223b1341bF929551220C116D8109F819E75,0x0a69c08C7b03f5e647d72F78Ac008428fAc94e37
Arg [2] : _communityMembers (address[]): 0x003F6b20BFA4B5cAb701960eCF73859Cb3c095Fc,0xa5f7a39E55D7878bC5bd754eE5d6BD7a7662355b,0xFe072d936072107ef9Ab409cC523B0753EfAbD01
Arg [3] : _toPass (uint256): 4
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 000000000000000000000000c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 000000000000000000000000dda03223b1341bf929551220c116d8109f819e75
Arg [6] : 0000000000000000000000000a69c08c7b03f5e647d72f78ac008428fac94e37
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [8] : 000000000000000000000000003f6b20bfa4b5cab701960ecf73859cb3c095fc
Arg [9] : 000000000000000000000000a5f7a39e55d7878bc5bd754ee5d6bd7a7662355b
Arg [10] : 000000000000000000000000fe072d936072107ef9ab409cc523b0753efabd01
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.