Skip to main content

Write

issue

Issues an owner's ERC-20 Tickets that'll be used when unstaking tickets.
Deploys an owner's Ticket ERC-20 token contract.

Params:

  • _projectId: The ID of the project being issued tickets.
  • _name: The ERC-20's name. " Juicebox ticket" will be appended.
  • _symbol: The ERC-20's symbol. "j" will be prepended.
function issue(
uint256 _projectId,
string calldata _name,
string calldata _symbol
) external;

lock

Lock a project's tickets, preventing them from being redeemed and from converting to ERC20s.
Only a ticket holder or an operator can lock its tickets.

Params:

  • _holder: The holder to lock tickets from.
  • _projectId: The ID of the project whos tickets are being locked.
  • _amount: The amount of tickets to lock.
function lock(
address _holder,
uint256 _projectId,
uint256 _amount
) external;

unlock

Unlock a project's tickets.
The address that locked the tickets must be the address that unlocks the tickets.

Params:

  • _holder: The holder to unlock tickets from.
  • _projectId: The ID of the project whos tickets are being unlocked.
  • _amount: The amount of tickets to unlock.
function unlock(
address _holder,
uint256 _projectId,
uint256 _amount
) external;

print

Print new tickets.
Only a project's current terminal can print its tickets.

Params:

  • _holder: The address receiving the new tickets.
  • _projectId: The project to which the tickets belong.
  • _amount: The amount to print.
  • _preferUnstakedTickets: Whether ERC20's should be converted automatically if they have been issued.
function print(
address _holder,
uint256 _projectId,
uint256 _amount,
bool _preferUnstakedTickets
) external;

redeem

Redeems tickets.
Only a project's current terminal can redeem its tickets.

Params:

  • _holder: The address that owns the tickets being redeemed.
  • _projectId: The ID of the project of the tickets being redeemed.
  • _amount: The amount of tickets being redeemed.
  • _preferUnstaked: If the preference is to redeem tickets that have been converted to ERC-20s.
function redeem(
address _holder,
uint256 _projectId,
uint256 _amount,
bool _preferUnstaked
) external;

stake

Stakes ERC20 tickets by burning their supply and creating an internal staked version.
Only a ticket holder or an operator can stake its tickets.

Params:

  • _holder: The owner of the tickets to stake.
  • _projectId: The ID of the project whos tickets are being staked.
  • _amount: The amount of tickets to stake.
function stake(
address _holder,
uint256 _projectId,
uint256 _amount
) external;

unstake

Unstakes internal tickets by creating and distributing ERC20 tickets.
Only a ticket holder or an operator can unstake its tickets.

Params:

  • _holder: The owner of the tickets to unstake.
  • _projectId: The ID of the project whos tickets are being unstaked.
  • _amount: The amount of tickets to unstake.
function unstake(
address _holder,
uint256 _projectId,
uint256 _amount
) external;

transfer

Allows a ticket holder to transfer its tickets to another account, without unstaking to ERC-20s.
Only a ticket holder or an operator can transfer its tickets.

Params:

  • _holder: The holder to transfer tickets from.
  • _projectId: The ID of the project whos tickets are being transferred.
  • _amount: The amount of tickets to transfer.
  • _recipient: The recipient of the tickets.
function transfer(
address _holder,
uint256 _projectId,
uint256 _amount,
address _recipient
) external;