A contract that can receive and hold funds for a given project. Once funds are tapped, tickets are printed and can be transferred out of the contract at a later date. Particularly useful for routing funds from third-party platforms (e.g., Open Sea).
The directory to use when resolving which terminal to send the payment to.
ITerminalDirectory public immutable override terminalDirectory;
The ticket booth to use when transferring tickets held by this contract to a beneficiary.
ITicketBooth public immutable override ticketBooth;
The ID of the project tickets should be redeemed for.
uint256 public immutable override projectId;
The memo to use when this contract forwards a payment to a terminal.
string public override memo;
constructor(ITerminalDirectory _terminalDirectory, ITicketBooth _ticketBooth, uint256 _projectId, string memory _memo);
receive() external payable;
function tap() external override;
Transfers tickets held by this contract to a beneficiary.
function transferTickets(address _beneficiary, uint256 _amount) external override onlyOwner;
|Address of the beneficiary tickets will be transferred to.|