TerminalV1Rescue
Inherits: Operatable
, ITerminalV1Rescue
, ITerminal
, ReentrancyGuard
, Ownable
Terminal allowing allow listed projects with one-time funding cycles to rescue stuck ETH.
State Variables
projects
The Projects contract which mints ERC-721's that represent project ownership and transfers.
IProjects public immutable override projects;
fundingCycles
The contract storing all funding cycle configurations.
IFundingCycles public immutable override fundingCycles;
ticketBooth
The contract that manages Ticket printing and redeeming.
ITicketBooth public immutable override ticketBooth;
terminalDirectory
The directory of terminals.
ITerminalDirectory public immutable override terminalDirectory;
balanceOf
The amount of ETH that each project is responsible for.
mapping(uint256 => uint256) public override balanceOf;
rescueAllowed
The addresses that are allowed to be rescued.
mapping(uint256 => bool) public override rescueAllowed;
migrationIsAllowed
mapping(ITerminal => bool) public override migrationIsAllowed;
Functions
constructor
constructor(
IProjects _projects,
IFundingCycles _fundingCycles,
ITicketBooth _ticketBooth,
IOperatorStore _operatorStore,
ITerminalDirectory _terminalDirectory,
address _owner
) Operatable(_operatorStore);
Parameters
Name | Type | Description |
---|---|---|
_projects | IProjects | A Projects contract which mints ERC-721's that represent project ownership and transfers. |
_fundingCycles | IFundingCycles | A funding cycle configuration store. |
_ticketBooth | ITicketBooth | A contract that manages Ticket printing and redeeming. |
_operatorStore | IOperatorStore | A contract storing operator assignments. |
_terminalDirectory | ITerminalDirectory | A directory of a project's current Juicebox terminal to receive payments in. |
_owner | address |
printTickets
Allows a project to print tickets for a specified beneficiary.
Only a project's owner or a designated operator can print tickets.
function printTickets(
uint256 _projectId,
uint256 _amount,
address _beneficiary,
string memory _memo,
bool _preferUnstakedTickets
) external override requirePermission(projects.ownerOf(_projectId), _projectId, Operations.PrintTickets);