Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multi Chain
Multichain Addresses
0 address found via
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 12833345 | 691 days 13 hrs ago | IN | Create: Active7DaysFundingCycleBallot | 0 ETH | 0.00688205 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Active7DaysFundingCycleBallot
Compiler Version
v0.8.6+commit.11564f7e
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./interfaces/ITerminalV1.sol"; import "./interfaces/IFundingCycleBallot.sol"; /** @notice Manages votes towards approving funding cycle reconfigurations. */ contract Active7DaysFundingCycleBallot is IFundingCycleBallot { // --- public stored properties --- // /// @notice The number of seconds that must pass for a funding cycle reconfiguration to become active. uint256 public constant reconfigurationDelay = 604800; // 7 days // --- external views --- // /** @notice The time that this ballot is active for. @dev A ballot should not be considered final until the duration has passed. @return The durection in seconds. */ function duration() external pure override returns (uint256) { return reconfigurationDelay; } /** @notice The approval state of a particular funding cycle. @param _configured The configuration of the funding cycle to check the state of. @return The state of the provided ballot. */ function state(uint256, uint256 _configured) external view override returns (BallotState) { return block.timestamp > _configured + reconfigurationDelay ? BallotState.Approved : BallotState.Active; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./ITicketBooth.sol"; import "./IFundingCycles.sol"; import "./IYielder.sol"; import "./IProjects.sol"; import "./IModStore.sol"; import "./ITerminal.sol"; import "./IOperatorStore.sol"; struct FundingCycleMetadata { uint256 reservedRate; uint256 bondingCurveRate; uint256 reconfigurationBondingCurveRate; } interface ITerminalV1 { event Configure( uint256 indexed fundingCycleId, uint256 indexed projectId, address caller ); event Tap( uint256 indexed fundingCycleId, uint256 indexed projectId, address indexed beneficiary, uint256 amount, uint256 currency, uint256 netTransferAmount, uint256 beneficiaryTransferAmount, uint256 govFeeAmount, address caller ); event Redeem( address indexed holder, address indexed beneficiary, uint256 indexed _projectId, uint256 amount, uint256 returnAmount, address caller ); event PrintReserveTickets( uint256 indexed fundingCycleId, uint256 indexed projectId, address indexed beneficiary, uint256 count, uint256 beneficiaryTicketAmount, address caller ); event DistributeToPayoutMod( uint256 indexed fundingCycleId, uint256 indexed projectId, PayoutMod mod, uint256 modCut, address caller ); event DistributeToTicketMod( uint256 indexed fundingCycleId, uint256 indexed projectId, TicketMod mod, uint256 modCut, address caller ); event AppointGovernance(address governance); event AcceptGovernance(address governance); event PrintPreminedTickets( uint256 indexed projectId, address indexed beneficiary, uint256 amount, uint256 currency, string memo, address caller ); event Deposit(uint256 amount); event EnsureTargetLocalWei(uint256 target); event SetYielder(IYielder newYielder); event SetFee(uint256 _amount); event SetTargetLocalWei(uint256 amount); function governance() external view returns (address payable); function pendingGovernance() external view returns (address payable); function projects() external view returns (IProjects); function fundingCycles() external view returns (IFundingCycles); function ticketBooth() external view returns (ITicketBooth); function prices() external view returns (IPrices); function modStore() external view returns (IModStore); function reservedTicketBalanceOf(uint256 _projectId, uint256 _reservedRate) external view returns (uint256); function canPrintPreminedTickets(uint256 _projectId) external view returns (bool); function balanceOf(uint256 _projectId) external view returns (uint256); function currentOverflowOf(uint256 _projectId) external view returns (uint256); function claimableOverflowOf( address _account, uint256 _amount, uint256 _projectId ) external view returns (uint256); function fee() external view returns (uint256); function deploy( address _owner, bytes32 _handle, string calldata _uri, FundingCycleProperties calldata _properties, FundingCycleMetadata calldata _metadata, PayoutMod[] memory _payoutMods, TicketMod[] memory _ticketMods ) external; function configure( uint256 _projectId, FundingCycleProperties calldata _properties, FundingCycleMetadata calldata _metadata, PayoutMod[] memory _payoutMods, TicketMod[] memory _ticketMods ) external returns (uint256); function printPreminedTickets( uint256 _projectId, uint256 _amount, uint256 _currency, address _beneficiary, string memory _memo, bool _preferUnstakedTickets ) external; function tap( uint256 _projectId, uint256 _amount, uint256 _currency, uint256 _minReturnedWei ) external returns (uint256); function redeem( address _account, uint256 _projectId, uint256 _amount, uint256 _minReturnedWei, address payable _beneficiary, bool _preferUnstaked ) external returns (uint256 returnAmount); function printReservedTickets(uint256 _projectId) external returns (uint256 reservedTicketsToPrint); function setFee(uint256 _fee) external; function appointGovernance(address payable _pendingGovernance) external; function acceptGovernance() external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./ITerminalV1.sol"; enum BallotState { Approved, Active, Failed, Standby } interface IFundingCycleBallot { function duration() external view returns (uint256); function state(uint256 _fundingCycleId, uint256 _configured) external view returns (BallotState); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./IProjects.sol"; import "./IOperatorStore.sol"; import "./ITickets.sol"; interface ITicketBooth { event Issue( uint256 indexed projectId, string name, string symbol, address caller ); event Print( address indexed holder, uint256 indexed projectId, uint256 amount, bool convertedTickets, bool preferUnstakedTickets, address controller ); event Redeem( address indexed holder, uint256 indexed projectId, uint256 amount, uint256 stakedTickets, bool preferUnstaked, address controller ); event Stake( address indexed holder, uint256 indexed projectId, uint256 amount, address caller ); event Unstake( address indexed holder, uint256 indexed projectId, uint256 amount, address caller ); event Lock( address indexed holder, uint256 indexed projectId, uint256 amount, address caller ); event Unlock( address indexed holder, uint256 indexed projectId, uint256 amount, address caller ); event Transfer( address indexed holder, uint256 indexed projectId, address indexed recipient, uint256 amount, address caller ); function ticketsOf(uint256 _projectId) external view returns (ITickets); function projects() external view returns (IProjects); function lockedBalanceOf(address _holder, uint256 _projectId) external view returns (uint256); function lockedBalanceBy( address _operator, address _holder, uint256 _projectId ) external view returns (uint256); function stakedBalanceOf(address _holder, uint256 _projectId) external view returns (uint256); function stakedTotalSupplyOf(uint256 _projectId) external view returns (uint256); function totalSupplyOf(uint256 _projectId) external view returns (uint256); function balanceOf(address _holder, uint256 _projectId) external view returns (uint256 _result); function issue( uint256 _projectId, string calldata _name, string calldata _symbol ) external; function print( address _holder, uint256 _projectId, uint256 _amount, bool _preferUnstakedTickets ) external; function redeem( address _holder, uint256 _projectId, uint256 _amount, bool _preferUnstaked ) external; function stake( address _holder, uint256 _projectId, uint256 _amount ) external; function unstake( address _holder, uint256 _projectId, uint256 _amount ) external; function lock( address _holder, uint256 _projectId, uint256 _amount ) external; function unlock( address _holder, uint256 _projectId, uint256 _amount ) external; function transfer( address _holder, uint256 _projectId, uint256 _amount, address _recipient ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./IPrices.sol"; import "./IProjects.sol"; import "./IFundingCycleBallot.sol"; /// @notice The funding cycle structure represents a project stewarded by an address, and accounts for which addresses have helped sustain the project. struct FundingCycle { // A unique number that's incremented for each new funding cycle, starting with 1. uint256 id; // The ID of the project contract that this funding cycle belongs to. uint256 projectId; // The number of this funding cycle for the project. uint256 number; // The ID of a previous funding cycle that this one is based on. uint256 basedOn; // The time when this funding cycle was last configured. uint256 configured; // The number of cycles that this configuration should last for before going back to the last permanent. uint256 cycleLimit; // A number determining the amount of redistribution shares this funding cycle will issue to each sustainer. uint256 weight; // The ballot contract to use to determine a subsequent funding cycle's reconfiguration status. IFundingCycleBallot ballot; // The time when this funding cycle will become active. uint256 start; // The number of seconds until this funding cycle's surplus is redistributed. uint256 duration; // The amount that this funding cycle is targeting in terms of the currency. uint256 target; // The currency that the target is measured in. uint256 currency; // The percentage of each payment to send as a fee to the Juicebox admin. uint256 fee; // A percentage indicating how much more weight to give a funding cycle compared to its predecessor. uint256 discountRate; // The amount of available funds that have been tapped by the project in terms of the currency. uint256 tapped; // A packed list of extra data. The first 8 bytes are reserved for versioning. uint256 metadata; } struct FundingCycleProperties { uint256 target; uint256 currency; uint256 duration; uint256 cycleLimit; uint256 discountRate; IFundingCycleBallot ballot; } interface IFundingCycles { event Configure( uint256 indexed fundingCycleId, uint256 indexed projectId, uint256 reconfigured, FundingCycleProperties _properties, uint256 metadata, address caller ); event Tap( uint256 indexed fundingCycleId, uint256 indexed projectId, uint256 amount, uint256 newTappedAmount, address caller ); event Init( uint256 indexed fundingCycleId, uint256 indexed projectId, uint256 number, uint256 previous, uint256 weight, uint256 start ); function latestIdOf(uint256 _projectId) external view returns (uint256); function count() external view returns (uint256); function BASE_WEIGHT() external view returns (uint256); function MAX_CYCLE_LIMIT() external view returns (uint256); function get(uint256 _fundingCycleId) external view returns (FundingCycle memory); function queuedOf(uint256 _projectId) external view returns (FundingCycle memory); function currentOf(uint256 _projectId) external view returns (FundingCycle memory); function currentBallotStateOf(uint256 _projectId) external view returns (BallotState); function configure( uint256 _projectId, FundingCycleProperties calldata _properties, uint256 _metadata, uint256 _fee, bool _configureActiveFundingCycle ) external returns (FundingCycle memory fundingCycle); function tap(uint256 _projectId, uint256 _amount) external returns (FundingCycle memory fundingCycle); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "./ITerminalV1.sol"; // In constructure, give unlimited access for TerminalV1 to take money from this. interface IYielder { function deposited() external view returns (uint256); function getCurrentBalance() external view returns (uint256); function deposit() external payable; function withdraw(uint256 _amount, address payable _beneficiary) external; function withdrawAll(address payable _beneficiary) external returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "./ITerminal.sol"; import "./IOperatorStore.sol"; interface IProjects is IERC721 { event Create( uint256 indexed projectId, address indexed owner, bytes32 indexed handle, string uri, ITerminal terminal, address caller ); event SetHandle( uint256 indexed projectId, bytes32 indexed handle, address caller ); event SetUri(uint256 indexed projectId, string uri, address caller); event TransferHandle( uint256 indexed projectId, address indexed to, bytes32 indexed handle, bytes32 newHandle, address caller ); event ClaimHandle( address indexed account, uint256 indexed projectId, bytes32 indexed handle, address caller ); event ChallengeHandle( bytes32 indexed handle, uint256 challengeExpiry, address caller ); event RenewHandle( bytes32 indexed handle, uint256 indexed projectId, address caller ); function count() external view returns (uint256); function uriOf(uint256 _projectId) external view returns (string memory); function handleOf(uint256 _projectId) external returns (bytes32 handle); function projectFor(bytes32 _handle) external returns (uint256 projectId); function transferAddressFor(bytes32 _handle) external returns (address receiver); function challengeExpiryOf(bytes32 _handle) external returns (uint256); function exists(uint256 _projectId) external view returns (bool); function create( address _owner, bytes32 _handle, string calldata _uri, ITerminal _terminal ) external returns (uint256 id); function setHandle(uint256 _projectId, bytes32 _handle) external; function setUri(uint256 _projectId, string calldata _uri) external; function transferHandle( uint256 _projectId, address _to, bytes32 _newHandle ) external returns (bytes32 _handle); function claimHandle( bytes32 _handle, address _for, uint256 _projectId ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./IOperatorStore.sol"; import "./IProjects.sol"; import "./IModAllocator.sol"; struct PayoutMod { bool preferUnstaked; uint16 percent; uint48 lockedUntil; address payable beneficiary; IModAllocator allocator; uint56 projectId; } struct TicketMod { bool preferUnstaked; uint16 percent; uint48 lockedUntil; address payable beneficiary; } interface IModStore { event SetPayoutMod( uint256 indexed projectId, uint256 indexed configuration, PayoutMod mods, address caller ); event SetTicketMod( uint256 indexed projectId, uint256 indexed configuration, TicketMod mods, address caller ); function projects() external view returns (IProjects); function payoutModsOf(uint256 _projectId, uint256 _configuration) external view returns (PayoutMod[] memory); function ticketModsOf(uint256 _projectId, uint256 _configuration) external view returns (TicketMod[] memory); function setPayoutMods( uint256 _projectId, uint256 _configuration, PayoutMod[] memory _mods ) external; function setTicketMods( uint256 _projectId, uint256 _configuration, TicketMod[] memory _mods ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./ITerminalDirectory.sol"; interface ITerminal { event Pay( uint256 indexed fundingCycleId, uint256 indexed projectId, address indexed beneficiary, uint256 amount, string note, address caller ); event AddToBalance( uint256 indexed projectId, uint256 value, address caller ); event AllowMigration(ITerminal allowed); event Migrate( uint256 indexed projectId, ITerminal indexed to, uint256 _amount, address caller ); function terminalDirectory() external view returns (ITerminalDirectory); function migrationIsAllowed(ITerminal _terminal) external view returns (bool); function pay( uint256 _projectId, address _beneficiary, string calldata _memo, bool _preferUnstakedTickets ) external payable returns (uint256 fundingCycleId); function addToBalance(uint256 _projectId) external payable; function allowMigration(ITerminal _contract) external; function migrate(uint256 _projectId, ITerminal _to) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; interface IOperatorStore { event SetOperator( address indexed operator, address indexed account, uint256 indexed domain, uint256[] permissionIndexes, uint256 packed ); function permissionsOf( address _operator, address _account, uint256 _domain ) external view returns (uint256); function hasPermission( address _operator, address _account, uint256 _domain, uint256 _permissionIndex ) external view returns (bool); function hasPermissions( address _operator, address _account, uint256 _domain, uint256[] calldata _permissionIndexes ) external view returns (bool); function setOperator( address _operator, uint256 _domain, uint256[] calldata _permissionIndexes ) external; function setOperators( address[] calldata _operators, uint256[] calldata _domains, uint256[][] calldata _permissionIndexes ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface ITickets is IERC20 { function print(address _account, uint256 _amount) external; function redeem(address _account, uint256 _amount) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./IDirectPaymentAddress.sol"; import "./ITerminal.sol"; import "./IProjects.sol"; import "./IProjects.sol"; interface ITerminalDirectory { event DeployAddress( uint256 indexed projectId, string memo, address indexed caller ); event SetTerminal( uint256 indexed projectId, ITerminal indexed terminal, address caller ); event SetPayerPreferences( address indexed account, address beneficiary, bool preferUnstakedTickets ); function projects() external view returns (IProjects); function terminalOf(uint256 _projectId) external view returns (ITerminal); function beneficiaryOf(address _account) external returns (address); function unstakedTicketsPreferenceOf(address _account) external returns (bool); function addressesOf(uint256 _projectId) external view returns (IDirectPaymentAddress[] memory); function deployAddress(uint256 _projectId, string calldata _memo) external; function setTerminal(uint256 _projectId, ITerminal _terminal) external; function setPayerPreferences( address _beneficiary, bool _preferUnstakedTickets ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "./ITerminalDirectory.sol"; import "./ITerminal.sol"; interface IDirectPaymentAddress { event Forward( address indexed payer, uint256 indexed projectId, address beneficiary, uint256 value, string memo, bool preferUnstakedTickets ); function terminalDirectory() external returns (ITerminalDirectory); function projectId() external returns (uint256); function memo() external returns (string memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol"; interface IPrices { event AddFeed(uint256 indexed currency, AggregatorV3Interface indexed feed); function feedDecimalAdjuster(uint256 _currency) external returns (uint256); function targetDecimals() external returns (uint256); function feedFor(uint256 _currency) external returns (AggregatorV3Interface); function getETHPriceFor(uint256 _currency) external view returns (uint256); function addFeed(AggregatorV3Interface _priceFeed, uint256 _currency) external; }
// SPDX-License-Identifier: MIT pragma solidity >=0.6.0; interface AggregatorV3Interface { function decimals() external view returns (uint8); function description() external view returns (string memory); function version() external view returns (uint256); // getRoundData and latestRoundData should both raise "No data present" // if they do not have data to report, instead of returning unset values // which could be misinterpreted as actual reported values. function getRoundData(uint80 _roundId) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.6; interface IModAllocator { event Allocate( uint256 indexed projectId, uint256 indexed forProjectId, address indexed beneficiary, uint256 amount, address caller ); function allocate( uint256 _projectId, uint256 _forProjectId, address _beneficiary ) external payable; }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"reconfigurationDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"_configured","type":"uint256"}],"name":"state","outputs":[{"internalType":"enum BallotState","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5061018a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806304f49616146100465780630fb5a6b4146100635780634d393dc91461006c575b600080fd5b61005062093a8081565b6040519081526020015b60405180910390f35b62093a80610050565b61007f61007a3660046100b2565b61008c565b60405161005a91906100d4565b600061009b62093a8083610115565b42116100a85760016100ab565b60005b9392505050565b600080604083850312156100c557600080fd5b50508035926020909101359150565b602081016004831061010f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b6000821982111561014f577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50019056fea2646970667358221220750eea09d207d32be7cc6fbb3414bc3475e8ff5dd4aa9277b466cf4afaf386b264736f6c63430008060033
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.