Overview
APE Balance
0 APE
APE Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Whitelist Addres... | 2048574 | 19 hrs ago | IN | 0 APE | 0.00118279 | ||||
Set Omni Coin Ad... | 2048573 | 19 hrs ago | IN | 0 APE | 0.00118795 | ||||
Whitelist Addres... | 2048572 | 19 hrs ago | IN | 0 APE | 0.00118279 | ||||
Whitelist Addres... | 2048571 | 19 hrs ago | IN | 0 APE | 0.00118279 | ||||
Whitelist Addres... | 2048570 | 19 hrs ago | IN | 0 APE | 0.00118279 | ||||
Whitelist Addres... | 2048569 | 19 hrs ago | IN | 0 APE | 0.00118279 | ||||
Whitelist Addres... | 2048568 | 19 hrs ago | IN | 0 APE | 0.00118279 | ||||
0x60803461 | 2048566 | 19 hrs ago | IN | 0 APE | 0.05558808 |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Omnify
Compiler Version
v0.8.24+commit.e11b9ed9
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "./ownable.sol"; import "./ierc20.sol"; interface IOmnicoin { function remintBurntCoins(address _recipient) external; function changeOmnifyAddress(address newAddress) external; } contract Omnify is Ownable { uint256 internal MAXUINT = 2 ** 256 - 1; constructor(uint8 _paramNativeDecimals, uint256 _paramProposalFee) Ownable(msg.sender) { nativeCoinDecimals = _paramNativeDecimals; proposalFee = _paramProposalFee; distributionRoundInterval = 3 days; coinHoldingPeriod = 4 days; proposalVotingPeriod = 3 days; } event NewMilestoneEvent(uint256 _count, string _title, string _description, uint256 _date); event NewProposalEvent(uint256 _count, string _title, string _description, address _proposer, uint256 _date); struct Proposal { address proposer; string title; string description; uint256 date; uint24 yesVotes; uint24 noVotes; mapping(address => bool) votes; mapping(address => bool) yesVoteAddresses; mapping(address => bool) noVoteAddresses; } struct Milestone { string title; string description; uint256 date; } struct DistributionRound { uint256 feesCollected; uint256 roundNumber; uint256 profitPerShare; uint256 amountWithdrawn; uint256 amountRemaining; mapping(address => bool) hasWithdrawn; uint256 date; bool roundOpen; } mapping(address => uint256) public dateCoinsReceived; mapping(address => uint256) public addressProfits; uint256 public proposalCount = 1; mapping(uint256 => Proposal) public proposals; mapping(uint256 => Milestone) public milestones; mapping(uint256 => DistributionRound) public distributionRounds; mapping(address => bool) public whitelistedExternalContracts; uint256 public proposalFee; uint256 public totalProfitsDistributed; uint256 public currentProfitsCollected; uint256 public totalProfitsCollected; address public omniCoinAddress; uint256 public milestoneCount = 1; uint256 public currentRoundNumber = 0; uint256 public coinHoldingPeriod; uint256 public proposalVotingPeriod; uint256 public distributionRoundInterval; uint8 public nativeCoinDecimals; address public keeperAddress; address public feeKeeperAddress; address public coinsaleAddress; modifier onlyOmniCoin(address _sender) { require(_sender == omniCoinAddress); _; } modifier onlyKeeper(address _sender) { require(_sender == keeperAddress); _; } modifier onlyFeeKeeper(address _sender) { require(_sender == feeKeeperAddress); _; } function setOmniCoinAddress(address _omniCoinAddress) external onlyOwner { omniCoinAddress = _omniCoinAddress; } function setCoinsaleAddress(address _coinsale) external onlyOwner { coinsaleAddress = _coinsale; } function setKeeperAddress(address _keeper) external onlyOwner { keeperAddress = _keeper; } function setFeeKeeperAddress(address _feeKeeper) external onlyOwner { feeKeeperAddress = _feeKeeper; } function whitelistAddress(address _contract) external onlyOwner { whitelistedExternalContracts[_contract] = true; } function removeAddressWhitelist(address _contract) external onlyOwner { whitelistedExternalContracts[_contract] = false; } function addProfitsFromExternalContract() external payable { require(whitelistedExternalContracts[msg.sender] == true); currentProfitsCollected = safeAdd(currentProfitsCollected, msg.value); } function checkIfContractWhiteListed(address _contract) external view returns (bool) { return whitelistedExternalContracts[_contract]; } function setProposalFee(uint256 _fee) public onlyOwner { proposalFee = _fee; } function setProposalFeeByFeeKeeper(uint256 _fee) public onlyFeeKeeper(msg.sender) { proposalFee = _fee; } function _setCoinHoldingPeriod(uint256 _period) internal onlyOwner { require(_period > 0); require(_period >= distributionRoundInterval + 1 days); require(_period != coinHoldingPeriod); coinHoldingPeriod = _period; } function _setDistributionRoundInterval(uint256 _interval) internal onlyOwner { require(_interval >= 1 days); require(distributionRoundInterval != _interval); distributionRoundInterval = _interval; } function setHoldingAndRoundInterval(uint256 _holdingPeriod, uint256 _interval) external onlyOwner { _setDistributionRoundInterval(_interval); _setCoinHoldingPeriod(_holdingPeriod); } function setCoinsReceivedDate(address _recipient) external onlyOmniCoin(msg.sender) { dateCoinsReceived[_recipient] = block.timestamp; } function lookupAddressProfits(address _address) public view returns (uint256) { return addressProfits[_address]; } function lookupHasWithdrawnFromRound(uint256 _roundNumber, address _address) public view returns (bool) { return distributionRounds[_roundNumber].hasWithdrawn[_address]; } function lookupMilestone(uint256 _count) public view returns (Milestone memory) { return milestones[_count]; } function lookupMilestones() public view returns (Milestone[] memory) { Milestone[] memory _milestones = new Milestone[](milestoneCount); if (milestoneCount > 1) { for (uint256 i = 1; i < milestoneCount; i++) { _milestones[i] = milestones[i]; } } return _milestones; } function lookupProposalProposer(uint256 _id) public view returns (address) { return proposals[_id].proposer; } function lookupProposalTitle(uint256 _id) public view returns (string memory) { return proposals[_id].title; } function lookupProposalDescription(uint256 _id) public view returns (string memory) { return proposals[_id].description; } function lookupProposalDate(uint256 _id) public view returns (uint256) { return proposals[_id].date; } function lookupProposalYesses(uint256 _id) public view returns (uint256) { return proposals[_id].yesVotes; } function lookupProposalNos(uint256 _id) public view returns (uint256) { return proposals[_id].noVotes; } function checkHasVoted(uint256 _id, address _voter) public view returns (bool) { return proposals[_id].votes[_voter]; } function checkIfVotedYes(uint256 _id, address _voter) public view returns (bool) { return proposals[_id].yesVoteAddresses[_voter]; } function checkIfVotedNo(uint256 _id, address _voter) public view returns (bool) { return proposals[_id].noVoteAddresses[_voter]; } function lookupRoundFeesCollected(uint256 _roundNum) public view returns (uint256) { return distributionRounds[_roundNum].feesCollected; } function lookupRoundProfitPerShare(uint256 _roundNum) public view returns (uint256) { return distributionRounds[_roundNum].profitPerShare; } function lookupAmountWithdrawn(uint256 _roundNum) public view returns (uint256) { return distributionRounds[_roundNum].amountWithdrawn; } function lookupAmountRemaining(uint256 _roundNum) public view returns (uint256) { return distributionRounds[_roundNum].amountRemaining; } function lookUpRoundOpen(uint256 _roundNum) public view returns (bool) { return distributionRounds[_roundNum].roundOpen; } function lookupRoundDate(uint256 _roundNum) public view returns (uint256) { return distributionRounds[_roundNum].date; } function submitProposal(string calldata _title, string calldata _description) external payable { require(proposals[proposalCount].date == 0); require(msg.value == proposalFee); MYIERC20 omniCoin = MYIERC20(omniCoinAddress); uint256 balanceOfProposer = omniCoin.balanceOf(msg.sender); require(balanceOfProposer >= 1); proposals[proposalCount].proposer = msg.sender; proposals[proposalCount].title = _title; proposals[proposalCount].description = _description; proposals[proposalCount].date = block.timestamp; emit NewProposalEvent(proposalCount, _title, _description, msg.sender, block.timestamp); proposalCount++; addProfits(msg.value); } function voteYes(uint256 _proposalId) external { require(proposals[_proposalId].date != 0); require(proposals[_proposalId].date + proposalVotingPeriod > block.timestamp); uint256 dateVoterCoinsReceived = dateCoinsReceived[msg.sender]; uint256 dateAllowedToVote = dateVoterCoinsReceived + proposalVotingPeriod + 1 days; require(dateAllowedToVote <= block.timestamp); bool hasVoted = proposals[_proposalId].votes[msg.sender]; require(hasVoted == false); MYIERC20 omniCoin = MYIERC20(omniCoinAddress); uint24 balanceOfVoter = uint24(omniCoin.balanceOf(msg.sender)); require(balanceOfVoter >= 1); proposals[_proposalId].yesVotes += balanceOfVoter; proposals[_proposalId].votes[msg.sender] = true; proposals[_proposalId].yesVoteAddresses[msg.sender] = true; } function voteNo(uint256 _proposalId) external { require(proposals[_proposalId].date != 0); require(proposals[_proposalId].date + proposalVotingPeriod > block.timestamp); uint256 dateVoterCoinsReceived = dateCoinsReceived[msg.sender]; uint256 dateAllowedToVote = dateVoterCoinsReceived + proposalVotingPeriod + 1 days; require(dateAllowedToVote <= block.timestamp); bool hasVoted = proposals[_proposalId].votes[msg.sender]; require(hasVoted == false); MYIERC20 omniCoin = MYIERC20(omniCoinAddress); uint24 balanceOfVoter = uint24(omniCoin.balanceOf(msg.sender)); require(balanceOfVoter >= 1); proposals[_proposalId].noVotes += balanceOfVoter; proposals[_proposalId].votes[msg.sender] = true; proposals[_proposalId].noVoteAddresses[msg.sender] = true; } function newMilestone(string calldata _title, string calldata _description) external onlyOwner { require(milestones[milestoneCount].date == 0); milestones[milestoneCount].title = _title; milestones[milestoneCount].description = _description; milestones[milestoneCount].date = block.timestamp; emit NewMilestoneEvent(milestoneCount, _title, _description, block.timestamp); milestoneCount++; } function triggerRound() private { require(distributionRounds[currentRoundNumber].date + distributionRoundInterval <= block.timestamp); uint256 oneCoin = 1 * (10 ** nativeCoinDecimals); require(currentProfitsCollected >= oneCoin); distributionRounds[currentRoundNumber].roundOpen = false; uint256 bufferRemainder; if (currentRoundNumber > 0) { bufferRemainder = address(this).balance - currentProfitsCollected; } currentRoundNumber++; totalProfitsCollected = safeAdd(totalProfitsCollected, currentProfitsCollected); distributionRounds[currentRoundNumber].feesCollected = currentProfitsCollected; distributionRounds[currentRoundNumber].feesCollected += bufferRemainder; distributionRounds[currentRoundNumber].amountRemaining = distributionRounds[currentRoundNumber].feesCollected; distributionRounds[currentRoundNumber].date = block.timestamp; uint256 profitPerShare = distributionRounds[currentRoundNumber].feesCollected / 250_000; distributionRounds[currentRoundNumber].profitPerShare = profitPerShare; distributionRounds[currentRoundNumber].roundOpen = true; currentProfitsCollected = 0; } function triggerNewDistributionRoundByKeeper() external onlyKeeper(msg.sender) { triggerRound(); } function triggerNewDistributionRoundByOwner() external onlyOwner { triggerRound(); } function endDistributionRoundByKeeper() external onlyKeeper(msg.sender) { require(distributionRounds[currentRoundNumber].date + distributionRoundInterval <= block.timestamp); distributionRounds[currentRoundNumber].roundOpen = false; } function endDistributionRoundByOwner() external onlyOwner { require(distributionRounds[currentRoundNumber].date + distributionRoundInterval <= block.timestamp); distributionRounds[currentRoundNumber].roundOpen = false; } function withdrawProfits() external { require(distributionRounds[currentRoundNumber].roundOpen); require(distributionRounds[currentRoundNumber].hasWithdrawn[msg.sender] == false); require(distributionRounds[currentRoundNumber].date + distributionRoundInterval > block.timestamp); MYIERC20 omniCoin = MYIERC20(omniCoinAddress); uint256 balanceOfPerson = omniCoin.balanceOf(msg.sender); require(balanceOfPerson >= 1); uint256 amountPerShare = distributionRounds[currentRoundNumber].profitPerShare; uint256 amountProfit = amountPerShare * balanceOfPerson; require(distributionRounds[currentRoundNumber].amountRemaining >= amountProfit); uint256 dateRequesterCoinsReceived = dateCoinsReceived[msg.sender]; uint256 dateAllowedToWithdraw = dateRequesterCoinsReceived + coinHoldingPeriod; require(dateAllowedToWithdraw <= block.timestamp); distributionRounds[currentRoundNumber].amountWithdrawn += amountProfit; distributionRounds[currentRoundNumber].amountRemaining -= amountProfit; distributionRounds[currentRoundNumber].hasWithdrawn[msg.sender] = true; totalProfitsDistributed = safeAdd(totalProfitsDistributed, amountProfit); addressProfits[msg.sender] = safeAdd(addressProfits[msg.sender], amountProfit); address payable sendTo = payable(msg.sender); (bool success,) = sendTo.call{value: amountProfit}(""); require(success); } function addProfits(uint256 _amount) internal { currentProfitsCollected = safeAdd(currentProfitsCollected, _amount); } function safeAdd(uint256 _currentAmount, uint256 _amountToBeAdded) internal view returns (uint256) { uint256 _allowedAmount = MAXUINT - _currentAmount; if (_amountToBeAdded <= _allowedAmount) { return _currentAmount + _amountToBeAdded; } return _currentAmount; } function remintBurnt() external onlyOwner { IOmnicoin omniCoin = IOmnicoin(omniCoinAddress); omniCoin.remintBurntCoins(owner()); } function changeOmnifyAddressOnOmnicoin(address newAddress) external onlyOwner { IOmnicoin omniCoin = IOmnicoin(omniCoinAddress); omniCoin.changeOmnifyAddress(newAddress); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; abstract contract MyContext { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is MyContext { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /** * @dev Interface of the ERC-20 standard as defined in the ERC. */ interface MYIERC20 { /** * @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 Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
{ "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@layerzerolabs/lz-evm-oapp-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/oapp/contracts/", "@layerzerolabs/lz-evm-protocol-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/", "@layerzerolabs/lz-evm-messagelib-v2/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/", "solidity-bytes-utils/contracts/=lib/solidity-bytes-utils/contracts/", "LayerZero-v2/=lib/LayerZero-v2/", "ds-test/=lib/solidity-stringutils/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "solidity-stringutils/=lib/solidity-stringutils/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": true, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint8","name":"_paramNativeDecimals","type":"uint8"},{"internalType":"uint256","name":"_paramProposalFee","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_count","type":"uint256"},{"indexed":false,"internalType":"string","name":"_title","type":"string"},{"indexed":false,"internalType":"string","name":"_description","type":"string"},{"indexed":false,"internalType":"uint256","name":"_date","type":"uint256"}],"name":"NewMilestoneEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_count","type":"uint256"},{"indexed":false,"internalType":"string","name":"_title","type":"string"},{"indexed":false,"internalType":"string","name":"_description","type":"string"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"uint256","name":"_date","type":"uint256"}],"name":"NewProposalEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"addProfitsFromExternalContract","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressProfits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"changeOmnifyAddressOnOmnicoin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"checkHasVoted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"checkIfContractWhiteListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"checkIfVotedNo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"checkIfVotedYes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinHoldingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coinsaleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentProfitsCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentRoundNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"dateCoinsReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributionRoundInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"distributionRounds","outputs":[{"internalType":"uint256","name":"feesCollected","type":"uint256"},{"internalType":"uint256","name":"roundNumber","type":"uint256"},{"internalType":"uint256","name":"profitPerShare","type":"uint256"},{"internalType":"uint256","name":"amountWithdrawn","type":"uint256"},{"internalType":"uint256","name":"amountRemaining","type":"uint256"},{"internalType":"uint256","name":"date","type":"uint256"},{"internalType":"bool","name":"roundOpen","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"endDistributionRoundByKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endDistributionRoundByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeKeeperAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"keeperAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNum","type":"uint256"}],"name":"lookUpRoundOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"lookupAddressProfits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNum","type":"uint256"}],"name":"lookupAmountRemaining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNum","type":"uint256"}],"name":"lookupAmountWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNumber","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"name":"lookupHasWithdrawnFromRound","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"lookupMilestone","outputs":[{"components":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"date","type":"uint256"}],"internalType":"struct Omnify.Milestone","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lookupMilestones","outputs":[{"components":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"date","type":"uint256"}],"internalType":"struct Omnify.Milestone[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"lookupProposalDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"lookupProposalDescription","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"lookupProposalNos","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"lookupProposalProposer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"lookupProposalTitle","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"lookupProposalYesses","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNum","type":"uint256"}],"name":"lookupRoundDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNum","type":"uint256"}],"name":"lookupRoundFeesCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_roundNum","type":"uint256"}],"name":"lookupRoundProfitPerShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"milestoneCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"milestones","outputs":[{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"date","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeCoinDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_title","type":"string"},{"internalType":"string","name":"_description","type":"string"}],"name":"newMilestone","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"omniCoinAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalVotingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"proposals","outputs":[{"internalType":"address","name":"proposer","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"date","type":"uint256"},{"internalType":"uint24","name":"yesVotes","type":"uint24"},{"internalType":"uint24","name":"noVotes","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"remintBurnt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"removeAddressWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"name":"setCoinsReceivedDate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_coinsale","type":"address"}],"name":"setCoinsaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeKeeper","type":"address"}],"name":"setFeeKeeperAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_holdingPeriod","type":"uint256"},{"internalType":"uint256","name":"_interval","type":"uint256"}],"name":"setHoldingAndRoundInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_keeper","type":"address"}],"name":"setKeeperAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_omniCoinAddress","type":"address"}],"name":"setOmniCoinAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setProposalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setProposalFeeByFeeKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_title","type":"string"},{"internalType":"string","name":"_description","type":"string"}],"name":"submitProposal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"totalProfitsCollected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalProfitsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerNewDistributionRoundByKeeper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"triggerNewDistributionRoundByOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"name":"voteNo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"name":"voteYes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"}],"name":"whitelistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedExternalContracts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawProfits","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080346100f857601f6123eb38819003918201601f19168301916001600160401b038311848410176100fd5780849260409485528339810103126100f85780519060ff82168092036100f8576020015133156100df5760008054336001600160a01b0319821681178355604051949290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a360001960015560016004556001600e556000600f5560ff1960135416176013556009556203f48080601255620546006010556011556122d790816101148239f35b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b60003560e01c90816294a25414611ee357508063013cf08b14611e46578063014d183214611dd457806304cd3d8714611da55780630681ca5514611d875780630b12474f14611d5c57806310bf506814611d3b578063162c2c8514611d075780631a6f7be514611b7d5780631e85a97514611b5f5780632017284514611b2b578063248b05bc14611ae8578063275b66e614611ab95780632915d1e8146117d85780632e6b387a146117ba5780633151a97b146117805780633249a32e1461175457806335498626146116bc57806339913e09146114ba57806339abf1c51461149157806339d6380a1461145a5780633c87f60c146113265780633cf69dc8146112d657806341566585146112915780634e0a0e30146112635780634f77a19f1461124557806350f311dc146111f557806352606698146111d45780635acebc06146111b65780635adf1454146111735780635b0129a8146111315780635d168d44146111025780636318ac64146110e157806365b0972014610b9357806365f530c81461109e57806367a1d8651461106a5780636a1cf72114610ef05780636fdfce7214610ea0578063715018a614610e475780637e3c5dd814610de8578063813d57ec14610da5578063860c252814610d765780638da5cb5b14610d4d5780639c4780d814610d2f578063a5dd468614610ce7578063aab0ef8e14610cb8578063ab03b05214610c49578063ac58866314610bd2578063afeb5ee8146104ed578063b095fe4514610b93578063b67a85bd14610b66578063bb3cb42e14610b3d578063be0dc4b714610765578063c0f80d8d14610629578063c1c20673146105fa578063c1f88f23146105dc578063c27cabb5146105be578063d4b6c0ce1461056e578063da35c66414610550578063de2231da14610527578063e1456efa146104ed578063e89e4ed61461047e578063ebdf181d1461044a578063f2fde38b146103bc578063f4ed4c84146103795763ffc3bc6e146102f457600080fd5b3461035e57604036600319011261035e57600435602435610313612251565b61031b612251565b6201518080821061035e57816012541461035e578160125561033b612251565b821561035e57810180911161036357811061035e57601054811461035e57601055005b600080fd5b634e487b7160e01b600052601160045260246000fd5b3461035e57602036600319011261035e5761039261206f565b61039a612251565b601480546001600160a01b0319166001600160a01b0392909216919091179055005b3461035e57602036600319011261035e576103d561206f565b6103dd612251565b6001600160a01b0390811690811561043157600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b604051631e4fbdf760e01b815260006004820152602490fd5b3461035e57602036600319011261035e576004356000526007602052602060ff600760406000200154166040519015158152f35b3461035e57602036600319011261035e5760043560005260066020526104d560406000206104ab81611f8a565b906104e360026104bd60018401611f8a565b9201549160405194859460608652606086019061202f565b90848203602086015261202f565b9060408301520390f35b3461035e57602036600319011261035e576001600160a01b0361050e61206f565b1660005260036020526020604060002054604051908152f35b3461035e57600036600319011261035e576014546040516001600160a01b039091168152602090f35b3461035e57600036600319011261035e576020600454604051908152f35b3461035e57604036600319011261035e57610587612085565b600435600052600760205260056040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e57600036600319011261035e576020600954604051908152f35b3461035e57600036600319011261035e576020600a54604051908152f35b3461035e57602036600319011261035e5760043560005260076020526020600260406000200154604051908152f35b3461035e57600036600319011261035e57600e546106468161220f565b6106536040519182611f68565b81815261065f8261220f565b60209190601f19018260005b82811061074f57505050600192600181116106e2575b509160405191808301818452845180915260408401918060408360051b8701019601926000905b8382106106b55786880387f35b909192939483806106d1839a603f198b82030186528951612114565b9997019594939190910191016106a8565b8360015b8281106106f4575050610681565b8060005260068552604060002060026040519161071083611f4c565b61071981611f8a565b8352610726858201611f8a565b888401520154604082015261073b8286612227565b526107468185612227565b500184906106e6565b6107576121ee565b82828601015201839061066b565b61076e366120c9565b919060045480600052600560205260036040600020015461035e57600954340361035e57600d546040516370a0823160e01b815233600482015290602090829060249082906001600160a01b03165afa8015610b3157600090610afe575b600191501061035e5760005260056020526040600020336bffffffffffffffffffffffff60a01b825416179055600454600052600160406000200167ffffffffffffffff8311610a30576108208154611efe565b601f8111610ab6575b50826000601f8211600114610a5157600091610a46575b508360011b906000198560031b1c19161790555b6004546000526005602052600260406000200167ffffffffffffffff8411610a30576108808154611efe565b601f81116109e8575b506000601f85116001146109575761093895927fd94feb4321a1e8a9a05d30584ef57860e49a9164b22c86018931a018cac625299492866109249360009161094c575b508760011b906000198960031b1c19161790555b6004546000526005602052426003604060002001556004549561091660405195869589875260a0602088015260a087019161216d565b91848303604086015261216d565b3360608301524260808301520390a161218e565b60045561094734600b5461227d565b600b55005b9050820135896108cc565b601f198516908260005260206000209160005b8181106109d057509261092492610938989592887fd94feb4321a1e8a9a05d30584ef57860e49a9164b22c86018931a018cac625299896106109b6575b5050600187811b0190556108e0565b83013560001960038a901b60f8161c1916905588806109a7565b9192602060018192868901358155019401920161096a565b816000526020600020601f860160051c81019160208710610a26575b601f0160051c01905b818110610a1a5750610889565b60008155600101610a0d565b9091508190610a04565b634e487b7160e01b600052604160045260246000fd5b905085013586610840565b60008381526020812092505b601f1986168110610a9e575084601f19811610610a84575b5050600183811b019055610854565b860135600019600386901b60f8161c191690558580610a75565b9091602060018192858b013581550193019101610a5d565b816000526020600020601f850160051c81019160208610610af4575b601f0160051c01905b818110610ae85750610829565b60008155600101610adb565b9091508190610ad2565b506020813d602011610b29575b81610b1860209383611f68565b8101031261035e57600190516107cc565b3d9150610b0b565b6040513d6000823e3d90fd5b3461035e57600036600319011261035e576015546040516001600160a01b039091168152602090f35b3461035e57600036600319011261035e5760135460405160089190911c6001600160a01b03168152602090f35b3461035e57602036600319011261035e576001600160a01b03610bb461206f565b166000526008602052602060ff604060002054166040519015158152f35b3461035e57602036600319011261035e57610beb6121ee565b506004356000526006602052610c456040600020600260405191610c0e83611f4c565b610c1781611f8a565b8352610c2560018201611f8a565b602084015201546040820152604051918291602083526020830190612114565b0390f35b3461035e57602036600319011261035e57610c6261206f565b610c6a612251565b600d546001600160a01b039081169190823b1561035e5760246000928360405195869485936338c3fb3560e11b85521660048401525af18015610b3157610cad57005b610cb690611f38565b005b3461035e57602036600319011261035e5760043560005260076020526020600460406000200154604051908152f35b3461035e57602036600319011261035e57610d0061206f565b610d08612251565b60138054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b3461035e57600036600319011261035e576020600f54604051908152f35b3461035e57600036600319011261035e576000546040516001600160a01b039091168152602090f35b3461035e57602036600319011261035e5760043560005260076020526020600360406000200154604051908152f35b3461035e57602036600319011261035e576004356000526005602052610c45610dd46002604060002001611f8a565b60405191829160208352602083019061202f565b3461035e57600036600319011261035e57610e01612251565b600d546000546001600160a01b039182169116813b1561035e57600091602483926040519485938492634b33adf960e01b845260048401525af18015610b3157610cad57005b3461035e57600036600319011261035e57610e60612251565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461035e57604036600319011261035e57610eb9612085565b600435600052600560205260066040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e5760208060031936011261035e5760043590816000526005808252600360406000200154801561035e57610f2b6011548092612149565b42101561035e57610f49903360005260028452604060002054612149565b62015180810180911161036357421061035e57826000528082528060406000200133600052825260ff6040600020541661035e57600d546040516370a0823160e01b8152336004820152908390829060249082906001600160a01b03165afa908115610b315760009161103d575b5062ffffff8091166001811061035e5784600052828452600460406000200191610fe5835492828416612156565b169062ffffff1916179055826000528082528060406000200133600052825260406000209260ff1993600185825416179055600052815260066040600020019033600052526001604060002091825416179055600080f35b90508281813d8311611063575b6110548183611f68565b8101031261035e575184610fb7565b503d61104a565b3461035e57602036600319011261035e576004356000526005602052602060018060a01b0360406000205416604051908152f35b3461035e57602036600319011261035e576110b761206f565b6110bf612251565b600d80546001600160a01b0319166001600160a01b0392909216919091179055005b3461035e57600036600319011261035e57602060ff60135416604051908152f35b3461035e57602036600319011261035e5760043560005260056020526020600360406000200154604051908152f35b3461035e57602036600319011261035e5761114a61206f565b611152612251565b6001600160a01b03166000908152600860205260409020805460ff19169055005b3461035e57602036600319011261035e5761118c61206f565b600d546001600160a01b0391908216330361035e5716600052600260205242604060002055600080f35b3461035e57600036600319011261035e576020600b54604051908152f35b3461035e57600036600319011261035e576111ed612251565b610cb66121aa565b3461035e57604036600319011261035e5761120e612085565b600435600052600560205260056040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e57600036600319011261035e576020600c54604051908152f35b3461035e57600036600319011261035e5760135460081c6001600160a01b0316330361035e57610cb66121aa565b3461035e57602036600319011261035e576112aa61206f565b6112b2612251565b6001600160a01b03166000908152600860205260409020805460ff19166001179055005b3461035e57604036600319011261035e576112ef612085565b600435600052600560205260076040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e57600036600319011261035e5761133f612251565b600f80548060005260078060205261136260066040600020015460125490612149565b421061035e5760ff60135416604d811161036357600a0a600b541061035e5760019160005280602052806040600020019260ff19938481541690556000815480611440575b6113b09061218e565b808355600c54906113c4600b54809361227d565b600c556000528360205260406000205581546000526113e96040600020918254612149565b90558054600052816020526040600020600481549101558054600052426006604060002001558054600052604060002060026203d09082540491015554600052604060002001918254161790556000600b55600080f35b90506113b061145247600b549061219d565b9190506113a7565b3461035e57602036600319011261035e576004356000526005602052602062ffffff60046040600020015460181c16604051908152f35b3461035e57600036600319011261035e57600d546040516001600160a01b039091168152602090f35b3461035e57600036600319011261035e57600f5480600052600790602091808352604060002060ff82820154161561035e576005903360005201835260ff6040600020541661035e578160005280835261151f60066040600020015460125490612149565b42101561035e57600d546040516370a0823160e01b815233600482015291908490839060249082906001600160a01b03165afa918215610b315760009261168d575b506001821061035e57826000528084526002604060002001548281029281840414901517156103635782600052808452816004604060002001541061035e5733600052600284526040600020546115bc429160105490612149565b1161035e576000808093819387968352808752600360408420016115e1838254612149565b9055600f548352808752600460408420016115fd83825461219d565b9055600f548352865260056040832001338352865260408220600160ff1982541617905561162d81600a5461227d565b600a553382526003865261164581604084205461227d565b338352600387526040832055335af1903d15611687573d9067ffffffffffffffff8211610a305761168091601f801991011601604051611f68565b1561035e57005b50611680565b9091508381813d83116116b5575b6116a58183611f68565b8101031261035e57519084611561565b503d61169b565b3461035e57600036600319011261035e57601354600881901c6001600160a01b0316330361035e57600f90815490816000526007908160205261170a60066040600020015460125490612149565b421061035e5760ff16604d811161036357600a0a600b541061035e5760019160005280602052806040600020019260ff19938481541690556000815480611440576113b09061218e565b3461035e57602036600319011261035e5760043560005260076020526020604060002054604051908152f35b3461035e57602036600319011261035e576001600160a01b036117a161206f565b1660005260026020526020604060002054604051908152f35b3461035e57600036600319011261035e576020601154604051908152f35b3461035e576117e6366120c9565b6117ee612251565b600e54600052602093600685526040600020600281015461035e5767ffffffffffffffff90818611610a30576118248154611efe565b90601f91828111611a76575b50866000838211600114611a1157600091611a06575b508760011b906000198960031b1c19161790555b600e546000526006875260019081604060002001928511610a305761187f8354611efe565b8181116119c0575b50600090851160011461192e579361091661191e98946119109483807fa7916e810239dc8d33d1c0f1ecf53d24b208351c81f34abb2681d670881708e49a9660809a600093611923575b501b906000198660031b1c19161790555b600e546000526006865242600260406000200155600e54986040519788978b8952880152608087019161216d565b4260608301520390a161218e565b600e55005b88013592508e6118d1565b601f1985169083600052886000209160005b8181106119ab575094611910947fa7916e810239dc8d33d1c0f1ecf53d24b208351c81f34abb2681d670881708e4989488946109169460809a61191e9e9a10611991575b505084811b0190556118e2565b870135600019600388901b60f8161c191690558c80611984565b88830135845592840192918a01918a01611940565b83600052886000208280880160051c8201928b89106119fd575b0160051c019083905b8281106119f1575050611887565b600081550183906119e3565b925081926119da565b905084013589611846565b60008381528a812092508990601f198216905b8c828210611a5d57505010611a43575b5050600187811b01905561185a565b85013560001960038a901b60f8161c191690558880611a34565b898501358655600190950194938401938c935001611a24565b816000528860002083808a0160051c8201928b8b10611ab0575b0160051c01905b818110611aa45750611830565b60008155600101611a97565b92508192611a90565b3461035e57602036600319011261035e576004356000526005602052610c45610dd46001604060002001611f8a565b3461035e57602036600319011261035e57611b0161206f565b611b09612251565b601580546001600160a01b0319166001600160a01b0392909216919091179055005b3461035e57602036600319011261035e576004356000526005602052602062ffffff60046040600020015416604051908152f35b3461035e57600036600319011261035e576020601054604051908152f35b3461035e5760208060031936011261035e5760043590816000526005808252600360406000200154801561035e57611bb86011548092612149565b42101561035e57611bd6903360005260028452604060002054612149565b62015180810180911161036357421061035e57826000528082528060406000200133600052825260ff6040600020541661035e57600d546040516370a0823160e01b8152336004820152908390829060249082906001600160a01b03165afa908115610b3157600091611cda575b5062ffffff809116906001821061035e578460005282845265ffffff000000611c7c6004604060002001938454938460181c16612156565b60181b169065ffffff0000001916179055826000528082528060406000200133600052825260406000209260ff1993600185825416179055600052815260076040600020019033600052526001604060002091825416179055600080f35b90508281813d8311611d00575b611cf18183611f68565b8101031261035e575184611c44565b503d611ce7565b600036600319011261035e57336000526008602052600160ff6040600020541615150361035e57610947600b54349061227d565b3461035e57602036600319011261035e57611d54612251565b600435600955005b3461035e57602036600319011261035e576014546001600160a01b0316330361035e57600435600955005b3461035e57600036600319011261035e576020600e54604051908152f35b3461035e57602036600319011261035e5760043560005260076020526020600660406000200154604051908152f35b3461035e57602036600319011261035e57600435600052600760205260e060406000208054906001810154906002810154600382015460048301549160ff600760068601549501541694604051968752602087015260408601526060850152608084015260a0830152151560c0820152f35b3461035e57602036600319011261035e57600435600090815260056020526040902080546001600160a01b0316611e7f60018301611f8a565b91611e8c60028201611f8a565b60046003830154920154611ec862ffffff92611eba604051978897885260c0602089015260c088019061202f565b90868203604088015261202f565b926060850152818116608085015260181c1660a08301520390f35b3461035e57600036600319011261035e576020906012548152f35b90600182811c92168015611f2e575b6020831014611f1857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611f0d565b67ffffffffffffffff8111610a3057604052565b6060810190811067ffffffffffffffff821117610a3057604052565b90601f8019910116810190811067ffffffffffffffff821117610a3057604052565b90604051918260008254611f9d81611efe565b9081845260209460019160018116908160001461200d5750600114611fce575b505050611fcc92500383611f68565b565b600090815285812095935091905b818310611ff5575050611fcc9350820101388080611fbd565b85548884018501529485019487945091830191611fdc565b92505050611fcc94925060ff191682840152151560051b820101388080611fbd565b919082519283825260005b84811061205b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161203a565b600435906001600160a01b038216820361035e57565b602435906001600160a01b038216820361035e57565b9181601f8401121561035e5782359167ffffffffffffffff831161035e576020838186019501011161035e57565b604060031982011261035e5767ffffffffffffffff9160043583811161035e57826120f69160040161209b565b9390939260243591821161035e576121109160040161209b565b9091565b9060408061214061212e855160608652606086019061202f565b6020860151858203602087015261202f565b93015191015290565b9190820180921161036357565b91909162ffffff8080941691160191821161036357565b908060209392818452848401376000828201840152601f01601f1916010190565b60001981146103635760010190565b9190820391821161036357565b600f5460009080825260076020526121cc600660408420015460125490612149565b42106121ea57816040916007935282602052200160ff198154169055565b5080fd5b604051906121fb82611f4c565b600060408360608152606060208201520152565b67ffffffffffffffff8111610a305760051b60200190565b805182101561223b5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6000546001600160a01b0316330361226557565b60405163118cdaa760e01b8152336004820152602490fd5b9061228a8260015461219d565b811115612295575090565b61229e91612149565b9056fea26469706673582212203a4e18a6648c16f53bba7874691589d8fe2350bc1398a38e09bb632bc15a0d8764736f6c63430008180033000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000061a1573a1adf8000
Deployed Bytecode
0x608080604052600436101561001357600080fd5b60003560e01c90816294a25414611ee357508063013cf08b14611e46578063014d183214611dd457806304cd3d8714611da55780630681ca5514611d875780630b12474f14611d5c57806310bf506814611d3b578063162c2c8514611d075780631a6f7be514611b7d5780631e85a97514611b5f5780632017284514611b2b578063248b05bc14611ae8578063275b66e614611ab95780632915d1e8146117d85780632e6b387a146117ba5780633151a97b146117805780633249a32e1461175457806335498626146116bc57806339913e09146114ba57806339abf1c51461149157806339d6380a1461145a5780633c87f60c146113265780633cf69dc8146112d657806341566585146112915780634e0a0e30146112635780634f77a19f1461124557806350f311dc146111f557806352606698146111d45780635acebc06146111b65780635adf1454146111735780635b0129a8146111315780635d168d44146111025780636318ac64146110e157806365b0972014610b9357806365f530c81461109e57806367a1d8651461106a5780636a1cf72114610ef05780636fdfce7214610ea0578063715018a614610e475780637e3c5dd814610de8578063813d57ec14610da5578063860c252814610d765780638da5cb5b14610d4d5780639c4780d814610d2f578063a5dd468614610ce7578063aab0ef8e14610cb8578063ab03b05214610c49578063ac58866314610bd2578063afeb5ee8146104ed578063b095fe4514610b93578063b67a85bd14610b66578063bb3cb42e14610b3d578063be0dc4b714610765578063c0f80d8d14610629578063c1c20673146105fa578063c1f88f23146105dc578063c27cabb5146105be578063d4b6c0ce1461056e578063da35c66414610550578063de2231da14610527578063e1456efa146104ed578063e89e4ed61461047e578063ebdf181d1461044a578063f2fde38b146103bc578063f4ed4c84146103795763ffc3bc6e146102f457600080fd5b3461035e57604036600319011261035e57600435602435610313612251565b61031b612251565b6201518080821061035e57816012541461035e578160125561033b612251565b821561035e57810180911161036357811061035e57601054811461035e57601055005b600080fd5b634e487b7160e01b600052601160045260246000fd5b3461035e57602036600319011261035e5761039261206f565b61039a612251565b601480546001600160a01b0319166001600160a01b0392909216919091179055005b3461035e57602036600319011261035e576103d561206f565b6103dd612251565b6001600160a01b0390811690811561043157600054826bffffffffffffffffffffffff60a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b604051631e4fbdf760e01b815260006004820152602490fd5b3461035e57602036600319011261035e576004356000526007602052602060ff600760406000200154166040519015158152f35b3461035e57602036600319011261035e5760043560005260066020526104d560406000206104ab81611f8a565b906104e360026104bd60018401611f8a565b9201549160405194859460608652606086019061202f565b90848203602086015261202f565b9060408301520390f35b3461035e57602036600319011261035e576001600160a01b0361050e61206f565b1660005260036020526020604060002054604051908152f35b3461035e57600036600319011261035e576014546040516001600160a01b039091168152602090f35b3461035e57600036600319011261035e576020600454604051908152f35b3461035e57604036600319011261035e57610587612085565b600435600052600760205260056040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e57600036600319011261035e576020600954604051908152f35b3461035e57600036600319011261035e576020600a54604051908152f35b3461035e57602036600319011261035e5760043560005260076020526020600260406000200154604051908152f35b3461035e57600036600319011261035e57600e546106468161220f565b6106536040519182611f68565b81815261065f8261220f565b60209190601f19018260005b82811061074f57505050600192600181116106e2575b509160405191808301818452845180915260408401918060408360051b8701019601926000905b8382106106b55786880387f35b909192939483806106d1839a603f198b82030186528951612114565b9997019594939190910191016106a8565b8360015b8281106106f4575050610681565b8060005260068552604060002060026040519161071083611f4c565b61071981611f8a565b8352610726858201611f8a565b888401520154604082015261073b8286612227565b526107468185612227565b500184906106e6565b6107576121ee565b82828601015201839061066b565b61076e366120c9565b919060045480600052600560205260036040600020015461035e57600954340361035e57600d546040516370a0823160e01b815233600482015290602090829060249082906001600160a01b03165afa8015610b3157600090610afe575b600191501061035e5760005260056020526040600020336bffffffffffffffffffffffff60a01b825416179055600454600052600160406000200167ffffffffffffffff8311610a30576108208154611efe565b601f8111610ab6575b50826000601f8211600114610a5157600091610a46575b508360011b906000198560031b1c19161790555b6004546000526005602052600260406000200167ffffffffffffffff8411610a30576108808154611efe565b601f81116109e8575b506000601f85116001146109575761093895927fd94feb4321a1e8a9a05d30584ef57860e49a9164b22c86018931a018cac625299492866109249360009161094c575b508760011b906000198960031b1c19161790555b6004546000526005602052426003604060002001556004549561091660405195869589875260a0602088015260a087019161216d565b91848303604086015261216d565b3360608301524260808301520390a161218e565b60045561094734600b5461227d565b600b55005b9050820135896108cc565b601f198516908260005260206000209160005b8181106109d057509261092492610938989592887fd94feb4321a1e8a9a05d30584ef57860e49a9164b22c86018931a018cac625299896106109b6575b5050600187811b0190556108e0565b83013560001960038a901b60f8161c1916905588806109a7565b9192602060018192868901358155019401920161096a565b816000526020600020601f860160051c81019160208710610a26575b601f0160051c01905b818110610a1a5750610889565b60008155600101610a0d565b9091508190610a04565b634e487b7160e01b600052604160045260246000fd5b905085013586610840565b60008381526020812092505b601f1986168110610a9e575084601f19811610610a84575b5050600183811b019055610854565b860135600019600386901b60f8161c191690558580610a75565b9091602060018192858b013581550193019101610a5d565b816000526020600020601f850160051c81019160208610610af4575b601f0160051c01905b818110610ae85750610829565b60008155600101610adb565b9091508190610ad2565b506020813d602011610b29575b81610b1860209383611f68565b8101031261035e57600190516107cc565b3d9150610b0b565b6040513d6000823e3d90fd5b3461035e57600036600319011261035e576015546040516001600160a01b039091168152602090f35b3461035e57600036600319011261035e5760135460405160089190911c6001600160a01b03168152602090f35b3461035e57602036600319011261035e576001600160a01b03610bb461206f565b166000526008602052602060ff604060002054166040519015158152f35b3461035e57602036600319011261035e57610beb6121ee565b506004356000526006602052610c456040600020600260405191610c0e83611f4c565b610c1781611f8a565b8352610c2560018201611f8a565b602084015201546040820152604051918291602083526020830190612114565b0390f35b3461035e57602036600319011261035e57610c6261206f565b610c6a612251565b600d546001600160a01b039081169190823b1561035e5760246000928360405195869485936338c3fb3560e11b85521660048401525af18015610b3157610cad57005b610cb690611f38565b005b3461035e57602036600319011261035e5760043560005260076020526020600460406000200154604051908152f35b3461035e57602036600319011261035e57610d0061206f565b610d08612251565b60138054610100600160a81b03191660089290921b610100600160a81b0316919091179055005b3461035e57600036600319011261035e576020600f54604051908152f35b3461035e57600036600319011261035e576000546040516001600160a01b039091168152602090f35b3461035e57602036600319011261035e5760043560005260076020526020600360406000200154604051908152f35b3461035e57602036600319011261035e576004356000526005602052610c45610dd46002604060002001611f8a565b60405191829160208352602083019061202f565b3461035e57600036600319011261035e57610e01612251565b600d546000546001600160a01b039182169116813b1561035e57600091602483926040519485938492634b33adf960e01b845260048401525af18015610b3157610cad57005b3461035e57600036600319011261035e57610e60612251565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461035e57604036600319011261035e57610eb9612085565b600435600052600560205260066040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e5760208060031936011261035e5760043590816000526005808252600360406000200154801561035e57610f2b6011548092612149565b42101561035e57610f49903360005260028452604060002054612149565b62015180810180911161036357421061035e57826000528082528060406000200133600052825260ff6040600020541661035e57600d546040516370a0823160e01b8152336004820152908390829060249082906001600160a01b03165afa908115610b315760009161103d575b5062ffffff8091166001811061035e5784600052828452600460406000200191610fe5835492828416612156565b169062ffffff1916179055826000528082528060406000200133600052825260406000209260ff1993600185825416179055600052815260066040600020019033600052526001604060002091825416179055600080f35b90508281813d8311611063575b6110548183611f68565b8101031261035e575184610fb7565b503d61104a565b3461035e57602036600319011261035e576004356000526005602052602060018060a01b0360406000205416604051908152f35b3461035e57602036600319011261035e576110b761206f565b6110bf612251565b600d80546001600160a01b0319166001600160a01b0392909216919091179055005b3461035e57600036600319011261035e57602060ff60135416604051908152f35b3461035e57602036600319011261035e5760043560005260056020526020600360406000200154604051908152f35b3461035e57602036600319011261035e5761114a61206f565b611152612251565b6001600160a01b03166000908152600860205260409020805460ff19169055005b3461035e57602036600319011261035e5761118c61206f565b600d546001600160a01b0391908216330361035e5716600052600260205242604060002055600080f35b3461035e57600036600319011261035e576020600b54604051908152f35b3461035e57600036600319011261035e576111ed612251565b610cb66121aa565b3461035e57604036600319011261035e5761120e612085565b600435600052600560205260056040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e57600036600319011261035e576020600c54604051908152f35b3461035e57600036600319011261035e5760135460081c6001600160a01b0316330361035e57610cb66121aa565b3461035e57602036600319011261035e576112aa61206f565b6112b2612251565b6001600160a01b03166000908152600860205260409020805460ff19166001179055005b3461035e57604036600319011261035e576112ef612085565b600435600052600560205260076040600020019060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461035e57600036600319011261035e5761133f612251565b600f80548060005260078060205261136260066040600020015460125490612149565b421061035e5760ff60135416604d811161036357600a0a600b541061035e5760019160005280602052806040600020019260ff19938481541690556000815480611440575b6113b09061218e565b808355600c54906113c4600b54809361227d565b600c556000528360205260406000205581546000526113e96040600020918254612149565b90558054600052816020526040600020600481549101558054600052426006604060002001558054600052604060002060026203d09082540491015554600052604060002001918254161790556000600b55600080f35b90506113b061145247600b549061219d565b9190506113a7565b3461035e57602036600319011261035e576004356000526005602052602062ffffff60046040600020015460181c16604051908152f35b3461035e57600036600319011261035e57600d546040516001600160a01b039091168152602090f35b3461035e57600036600319011261035e57600f5480600052600790602091808352604060002060ff82820154161561035e576005903360005201835260ff6040600020541661035e578160005280835261151f60066040600020015460125490612149565b42101561035e57600d546040516370a0823160e01b815233600482015291908490839060249082906001600160a01b03165afa918215610b315760009261168d575b506001821061035e57826000528084526002604060002001548281029281840414901517156103635782600052808452816004604060002001541061035e5733600052600284526040600020546115bc429160105490612149565b1161035e576000808093819387968352808752600360408420016115e1838254612149565b9055600f548352808752600460408420016115fd83825461219d565b9055600f548352865260056040832001338352865260408220600160ff1982541617905561162d81600a5461227d565b600a553382526003865261164581604084205461227d565b338352600387526040832055335af1903d15611687573d9067ffffffffffffffff8211610a305761168091601f801991011601604051611f68565b1561035e57005b50611680565b9091508381813d83116116b5575b6116a58183611f68565b8101031261035e57519084611561565b503d61169b565b3461035e57600036600319011261035e57601354600881901c6001600160a01b0316330361035e57600f90815490816000526007908160205261170a60066040600020015460125490612149565b421061035e5760ff16604d811161036357600a0a600b541061035e5760019160005280602052806040600020019260ff19938481541690556000815480611440576113b09061218e565b3461035e57602036600319011261035e5760043560005260076020526020604060002054604051908152f35b3461035e57602036600319011261035e576001600160a01b036117a161206f565b1660005260026020526020604060002054604051908152f35b3461035e57600036600319011261035e576020601154604051908152f35b3461035e576117e6366120c9565b6117ee612251565b600e54600052602093600685526040600020600281015461035e5767ffffffffffffffff90818611610a30576118248154611efe565b90601f91828111611a76575b50866000838211600114611a1157600091611a06575b508760011b906000198960031b1c19161790555b600e546000526006875260019081604060002001928511610a305761187f8354611efe565b8181116119c0575b50600090851160011461192e579361091661191e98946119109483807fa7916e810239dc8d33d1c0f1ecf53d24b208351c81f34abb2681d670881708e49a9660809a600093611923575b501b906000198660031b1c19161790555b600e546000526006865242600260406000200155600e54986040519788978b8952880152608087019161216d565b4260608301520390a161218e565b600e55005b88013592508e6118d1565b601f1985169083600052886000209160005b8181106119ab575094611910947fa7916e810239dc8d33d1c0f1ecf53d24b208351c81f34abb2681d670881708e4989488946109169460809a61191e9e9a10611991575b505084811b0190556118e2565b870135600019600388901b60f8161c191690558c80611984565b88830135845592840192918a01918a01611940565b83600052886000208280880160051c8201928b89106119fd575b0160051c019083905b8281106119f1575050611887565b600081550183906119e3565b925081926119da565b905084013589611846565b60008381528a812092508990601f198216905b8c828210611a5d57505010611a43575b5050600187811b01905561185a565b85013560001960038a901b60f8161c191690558880611a34565b898501358655600190950194938401938c935001611a24565b816000528860002083808a0160051c8201928b8b10611ab0575b0160051c01905b818110611aa45750611830565b60008155600101611a97565b92508192611a90565b3461035e57602036600319011261035e576004356000526005602052610c45610dd46001604060002001611f8a565b3461035e57602036600319011261035e57611b0161206f565b611b09612251565b601580546001600160a01b0319166001600160a01b0392909216919091179055005b3461035e57602036600319011261035e576004356000526005602052602062ffffff60046040600020015416604051908152f35b3461035e57600036600319011261035e576020601054604051908152f35b3461035e5760208060031936011261035e5760043590816000526005808252600360406000200154801561035e57611bb86011548092612149565b42101561035e57611bd6903360005260028452604060002054612149565b62015180810180911161036357421061035e57826000528082528060406000200133600052825260ff6040600020541661035e57600d546040516370a0823160e01b8152336004820152908390829060249082906001600160a01b03165afa908115610b3157600091611cda575b5062ffffff809116906001821061035e578460005282845265ffffff000000611c7c6004604060002001938454938460181c16612156565b60181b169065ffffff0000001916179055826000528082528060406000200133600052825260406000209260ff1993600185825416179055600052815260076040600020019033600052526001604060002091825416179055600080f35b90508281813d8311611d00575b611cf18183611f68565b8101031261035e575184611c44565b503d611ce7565b600036600319011261035e57336000526008602052600160ff6040600020541615150361035e57610947600b54349061227d565b3461035e57602036600319011261035e57611d54612251565b600435600955005b3461035e57602036600319011261035e576014546001600160a01b0316330361035e57600435600955005b3461035e57600036600319011261035e576020600e54604051908152f35b3461035e57602036600319011261035e5760043560005260076020526020600660406000200154604051908152f35b3461035e57602036600319011261035e57600435600052600760205260e060406000208054906001810154906002810154600382015460048301549160ff600760068601549501541694604051968752602087015260408601526060850152608084015260a0830152151560c0820152f35b3461035e57602036600319011261035e57600435600090815260056020526040902080546001600160a01b0316611e7f60018301611f8a565b91611e8c60028201611f8a565b60046003830154920154611ec862ffffff92611eba604051978897885260c0602089015260c088019061202f565b90868203604088015261202f565b926060850152818116608085015260181c1660a08301520390f35b3461035e57600036600319011261035e576020906012548152f35b90600182811c92168015611f2e575b6020831014611f1857565b634e487b7160e01b600052602260045260246000fd5b91607f1691611f0d565b67ffffffffffffffff8111610a3057604052565b6060810190811067ffffffffffffffff821117610a3057604052565b90601f8019910116810190811067ffffffffffffffff821117610a3057604052565b90604051918260008254611f9d81611efe565b9081845260209460019160018116908160001461200d5750600114611fce575b505050611fcc92500383611f68565b565b600090815285812095935091905b818310611ff5575050611fcc9350820101388080611fbd565b85548884018501529485019487945091830191611fdc565b92505050611fcc94925060ff191682840152151560051b820101388080611fbd565b919082519283825260005b84811061205b575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161203a565b600435906001600160a01b038216820361035e57565b602435906001600160a01b038216820361035e57565b9181601f8401121561035e5782359167ffffffffffffffff831161035e576020838186019501011161035e57565b604060031982011261035e5767ffffffffffffffff9160043583811161035e57826120f69160040161209b565b9390939260243591821161035e576121109160040161209b565b9091565b9060408061214061212e855160608652606086019061202f565b6020860151858203602087015261202f565b93015191015290565b9190820180921161036357565b91909162ffffff8080941691160191821161036357565b908060209392818452848401376000828201840152601f01601f1916010190565b60001981146103635760010190565b9190820391821161036357565b600f5460009080825260076020526121cc600660408420015460125490612149565b42106121ea57816040916007935282602052200160ff198154169055565b5080fd5b604051906121fb82611f4c565b600060408360608152606060208201520152565b67ffffffffffffffff8111610a305760051b60200190565b805182101561223b5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6000546001600160a01b0316330361226557565b60405163118cdaa760e01b8152336004820152602490fd5b9061228a8260015461219d565b811115612295575090565b61229e91612149565b9056fea26469706673582212203a4e18a6648c16f53bba7874691589d8fe2350bc1398a38e09bb632bc15a0d8764736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000061a1573a1adf8000
-----Decoded View---------------
Arg [0] : _paramNativeDecimals (uint8): 18
Arg [1] : _paramProposalFee (uint256): 7035000000000000000
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [1] : 00000000000000000000000000000000000000000000000061a1573a1adf8000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.