My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Contract Name:
DistributionProxy
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at snowtrace.io on 2021-11-08 */ // SPDX-License-Identifier: MIT pragma solidity >=0.6.2 <0.8.0; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } pragma solidity >=0.6.0 <0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () internal { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @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. * * By default, the owner account will be the one that deploys the contract. 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 Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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 { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor () internal { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } interface IProcessor { function process() external; } interface IDistributor { function distribute(address caller) external; } interface IProtocolAddresses { function Distributor() external view returns (address); function HarvestProcessor() external view returns (address); } contract DistributionProxy is Ownable, ReentrancyGuard, Pausable { address public ProtocolAddresses; uint256 public lastDistribution; uint256 public constant frequency = 1 days; constructor(uint256 _lastDistribution) public { lastDistribution = _lastDistribution; } function togglePause() external onlyOwner { paused() ? _unpause() : _pause(); } function setProtocolAddresses(address _ProtocolAddresses) external onlyOwner { ProtocolAddresses = _ProtocolAddresses; } function distributeRewards() external nonReentrant whenNotPaused { require(!Address.isContract(msg.sender), "DistributionProxy: Caller is not an EOA"); require(block.timestamp > (lastDistribution + frequency), "DistributionProxy: Distribution timer has not elapsed"); // In case over a day lapses between distributions, bring lastDistribution up to most current time while (block.timestamp > (lastDistribution + frequency)) { lastDistribution = lastDistribution + frequency; } IProcessor(IProtocolAddresses(ProtocolAddresses).HarvestProcessor()).process(); IDistributor(IProtocolAddresses(ProtocolAddresses).Distributor()).distribute(msg.sender); } }
[{"inputs":[{"internalType":"uint256","name":"_lastDistribution","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"ProtocolAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"frequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastDistribution","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_ProtocolAddresses","type":"address"}],"name":"setProtocolAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50604051610f92380380610f928339818101604052602081101561003357600080fd5b8101908080519060200190929190505050600061005461012160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600180819055506000600260006101000a81548160ff0219169083151502179055508060038190555050610129565b600033905090565b610e5a806101386000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a717639c11610066578063a717639c1461014f578063c4ae31681461016d578063c9f801c714610177578063ead50da3146101ab578063f2fde38b146101c95761009e565b80630ef1d6c8146100a35780635c975abb146100e75780636f4a2cd014610107578063715018a6146101115780638da5cb5b1461011b575b600080fd5b6100e5600480360360208110156100b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061020d565b005b6100ef610300565b60405180821515815260200191505060405180910390f35b61010f610317565b005b610119610722565b005b61012361088f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101576108b8565b6040518082815260200191505060405180910390f35b6101756108be565b005b61017f610991565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101b36109b7565b6040518082815260200191505060405180910390f35b61020b600480360360208110156101df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109be565b005b610215610bb0565b73ffffffffffffffffffffffffffffffffffffffff1661023361088f565b73ffffffffffffffffffffffffffffffffffffffff16146102bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600260009054906101000a900460ff16905090565b60026001541415610390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081525060200191505060405180910390fd5b60026001819055506103a0610300565b15610413576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61041c33610bb8565b15610472576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610dc96027913960400191505060405180910390fd5b620151806003540142116104d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180610df06035913960400191505060405180910390fd5b5b62015180600354014211156104f45762015180600354016003819055506104d2565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2af71776040518163ffffffff1660e01b815260040160206040518083038186803b15801561055c57600080fd5b505afa158015610570573d6000803e3d6000fd5b505050506040513d602081101561058657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c33fb8776040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105de57600080fd5b505af11580156105f2573d6000803e3d6000fd5b50505050600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632039d8906040518163ffffffff1660e01b815260040160206040518083038186803b15801561065e57600080fd5b505afa158015610672573d6000803e3d6000fd5b505050506040513d602081101561068857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff166363453ae1336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b5050505060018081905550565b61072a610bb0565b73ffffffffffffffffffffffffffffffffffffffff1661074861088f565b73ffffffffffffffffffffffffffffffffffffffff16146107d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60035481565b6108c6610bb0565b73ffffffffffffffffffffffffffffffffffffffff166108e461088f565b73ffffffffffffffffffffffffffffffffffffffff161461096d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610975610300565b61098657610981610bcb565b61098f565b61098e610cb7565b5b565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6201518081565b6109c6610bb0565b73ffffffffffffffffffffffffffffffffffffffff166109e461088f565b73ffffffffffffffffffffffffffffffffffffffff1614610a6d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610da36026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600080823b905060008111915050919050565b610bd3610300565b15610c46576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610c8a610bb0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b610cbf610300565b610d31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610d75610bb0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a156fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373446973747269627574696f6e50726f78793a2043616c6c6572206973206e6f7420616e20454f41446973747269627574696f6e50726f78793a20446973747269627574696f6e2074696d657220686173206e6f7420656c6170736564a264697066735822122034c22ce19b9efcee7c90c6ce64329ea38fb3e2f4e53ea724a4239e76e98d9ffb64736f6c634300060c00330000000000000000000000000000000000000000000000000000000060cfd680
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000000000000000000060cfd680
-----Decoded View---------------
Arg [0] : _lastDistribution (uint256): 1624233600
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000060cfd680
Deployed ByteCode Sourcemap
16258:1292:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16670:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14763:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16812:735;;;:::i;:::-;;13216:148;;;:::i;:::-;;12565:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16369:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16569:93;;;:::i;:::-;;16330:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16409:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13519:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16670:134;12796:12;:10;:12::i;:::-;12785:23;;:7;:5;:7::i;:::-;:23;;;12777:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16778:18:::1;16758:17;;:38;;;;;;;;;;;;;;;;;;16670:134:::0;:::o;14763:86::-;14810:4;14834:7;;;;;;;;;;;14827:14;;14763:86;:::o;16812:735::-;9696:1;10302:7;;:19;;10294:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9696:1;10435:7;:18;;;;15089:8:::1;:6;:8::i;:::-;15088:9;15080:38;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;16897:30:::2;16916:10;16897:18;:30::i;:::-;16896:31;16888:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16445:6;17011:16;;:28;16992:15;:48;16984:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17219:131;16445:6;17245:16;;:28;17226:15;:48;17219:131;;;16445:6;17310:16;;:28;17291:16;:47;;;;17219:131;;;17392:17;;;;;;;;;;;17373:54;;;:56;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;17362:76;;;:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;17483:17;;;;;;;;;;;17464:49;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;17451:76;;;17528:10;17451:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;9652:1:::0;10614:7;:22;;;;16812:735::o;13216:148::-;12796:12;:10;:12::i;:::-;12785:23;;:7;:5;:7::i;:::-;:23;;;12777:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13323:1:::1;13286:40;;13307:6;::::0;::::1;;;;;;;;13286:40;;;;;;;;;;;;13354:1;13337:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;13216:148::o:0;12565:87::-;12611:7;12638:6;;;;;;;;;;;12631:13;;12565:87;:::o;16369:31::-;;;;:::o;16569:93::-;12796:12;:10;:12::i;:::-;12785:23;;:7;:5;:7::i;:::-;:23;;;12777:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16622:8:::1;:6;:8::i;:::-;:32;;16646:8;:6;:8::i;:::-;16622:32;;;16633:10;:8;:10::i;:::-;16622:32;16569:93::o:0;16330:32::-;;;;;;;;;;;;;:::o;16409:42::-;16445:6;16409:42;:::o;13519:244::-;12796:12;:10;:12::i;:::-;12785:23;;:7;:5;:7::i;:::-;:23;;;12777:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13628:1:::1;13608:22;;:8;:22;;;;13600:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13718:8;13689:38;;13710:6;::::0;::::1;;;;;;;;13689:38;;;;;;;;;;;;13747:8;13738:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;13519:244:::0;:::o;11194:106::-;11247:15;11282:10;11275:17;;11194:106;:::o;751:422::-;811:4;1019:12;1130:7;1118:20;1110:28;;1164:1;1157:4;:8;1150:15;;;751:422;;;:::o;15563:118::-;15089:8;:6;:8::i;:::-;15088:9;15080:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15633:4:::1;15623:7;;:14;;;;;;;;;;;;;;;;;;15653:20;15660:12;:10;:12::i;:::-;15653:20;;;;;;;;;;;;;;;;;;;;15563:118::o:0;15822:120::-;15366:8;:6;:8::i;:::-;15358:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15891:5:::1;15881:7;;:15;;;;;;;;;;;;;;;;;;15912:22;15921:12;:10;:12::i;:::-;15912:22;;;;;;;;;;;;;;;;;;;;15822:120::o:0
Swarm Source
ipfs://34c22ce19b9efcee7c90c6ce64329ea38fb3e2f4e53ea724a4239e76e98d9ffb
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.