UNPKG

@ohgeez/fsushi

Version:

fSUSHI is a protocol built on top of [FlashStake](http://flashstake.io/) and [SushiSwap](https://sushi.com) that enables stakers to get instant, upfront yield without waiting for it to accrue.

984 lines (504 loc) 14.7 kB
# FarmingLPToken ## Methods ### DOMAIN_SEPARATOR ```solidity function DOMAIN_SEPARATOR() external view returns (bytes32) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | bytes32 | undefined | ### allowance ```solidity function allowance(address owner, address spender) external view returns (uint256) ``` *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.* #### Parameters | Name | Type | Description | |---|---|---| | owner | address | undefined | | spender | address | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | undefined | ### approve ```solidity function approve(address spender, uint256 amount) external nonpayable returns (bool) ``` *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.* #### Parameters | Name | Type | Description | |---|---|---| | spender | address | undefined | | amount | uint256 | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | bool | undefined | ### approveMax ```solidity function approveMax() external nonpayable ``` ### balanceOf ```solidity function balanceOf(address account) external view returns (uint256) ``` #### Parameters | Name | Type | Description | |---|---|---| | account | address | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | Sum of (shares in SUSHI by depositd account) + (SUSHI withdrawable by account) | ### checkpoint ```solidity function checkpoint() external nonpayable ``` *withdraws pending SUSHI from MasterChef and add it to the balance* ### decimals ```solidity function decimals() external view returns (uint8) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | uint8 | undefined | ### deposit ```solidity function deposit(uint256 amountLP, address[] path0, address[] path1, uint256 amountMin, address beneficiary, uint256 deadline) external nonpayable ``` *amount of sushi that LPs converted to is added to sharesOf(account) and aLP is minted* #### Parameters | Name | Type | Description | |---|---|---| | amountLP | uint256 | undefined | | path0 | address[] | undefined | | path1 | address[] | undefined | | amountMin | uint256 | undefined | | beneficiary | address | undefined | | deadline | uint256 | undefined | ### depositSigned ```solidity function depositSigned(uint256 amountLP, address[] path0, address[] path1, uint256 amountMin, address beneficiary, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable ``` *amount of sushi that LPs converted to is added to sharesOf(account) and aLP is minted user signature is needed for IUniswapV2Pair.permit()* #### Parameters | Name | Type | Description | |---|---|---| | amountLP | uint256 | undefined | | path0 | address[] | undefined | | path1 | address[] | undefined | | amountMin | uint256 | undefined | | beneficiary | address | undefined | | deadline | uint256 | undefined | | v | uint8 | undefined | | r | bytes32 | undefined | | s | bytes32 | undefined | ### depositWithSushi ```solidity function depositWithSushi(uint256 amount, address[] path0, address[] path1, uint256 amountLPMin, address beneficiary, uint256 deadline) external nonpayable ``` *amount is added to sharesOf(account) and same amount of aLP is minted provided SUSHI is swapped then added as liquidity which results in LP tokens depositd* #### Parameters | Name | Type | Description | |---|---|---| | amount | uint256 | undefined | | path0 | address[] | undefined | | path1 | address[] | undefined | | amountLPMin | uint256 | undefined | | beneficiary | address | undefined | | deadline | uint256 | undefined | ### emergencyMigrate ```solidity function emergencyMigrate(address beneficiary, bytes params) external nonpayable ``` *migrate to a new version of fLP without caring about rewards. EMERGENCY ONLY* #### Parameters | Name | Type | Description | |---|---|---| | beneficiary | address | undefined | | params | bytes | undefined | ### emergencyWithdraw ```solidity function emergencyWithdraw(address beneficiary) external nonpayable ``` *withdraw without caring about rewards. EMERGENCY ONLY* #### Parameters | Name | Type | Description | |---|---|---| | beneficiary | address | undefined | ### factory ```solidity function factory() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### initialize ```solidity function initialize(address _router, address _masterChef, uint256 _pid) external nonpayable ``` #### Parameters | Name | Type | Description | |---|---|---| | _router | address | undefined | | _masterChef | address | undefined | | _pid | uint256 | undefined | ### lpToken ```solidity function lpToken() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### masterChef ```solidity function masterChef() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### migrate ```solidity function migrate(address beneficiary, bytes params) external nonpayable ``` *migrate to a new version of fLP* #### Parameters | Name | Type | Description | |---|---|---| | beneficiary | address | undefined | | params | bytes | undefined | ### name ```solidity function name() external view returns (string) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | string | undefined | ### nonces ```solidity function nonces(address) external view returns (uint256) ``` #### Parameters | Name | Type | Description | |---|---|---| | _0 | address | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | undefined | ### permit ```solidity function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external nonpayable ``` #### Parameters | Name | Type | Description | |---|---|---| | owner | address | undefined | | spender | address | undefined | | value | uint256 | undefined | | deadline | uint256 | undefined | | v | uint8 | undefined | | r | bytes32 | undefined | | s | bytes32 | undefined | ### pid ```solidity function pid() external view returns (uint256) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | undefined | ### router ```solidity function router() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### sharesOf ```solidity function sharesOf(address account) external view returns (uint256) ``` #### Parameters | Name | Type | Description | |---|---|---| | account | address | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | shares in SUSHI currently being depositd by account | ### sushi ```solidity function sushi() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### symbol ```solidity function symbol() external view returns (string) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | string | undefined | ### token0 ```solidity function token0() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### token1 ```solidity function token1() external view returns (address) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | address | undefined | ### totalShares ```solidity function totalShares() external view returns (uint256) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | total shares in SUSHI currently being depositd | ### totalSupply ```solidity function totalSupply() external view returns (uint256) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | Sum of (shares in SUSHI) + (withdrawable total SUSHI) | ### transfer ```solidity function transfer(address to, uint256 amount) external nonpayable returns (bool) ``` *Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.* #### Parameters | Name | Type | Description | |---|---|---| | to | address | undefined | | amount | uint256 | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | bool | undefined | ### transferFrom ```solidity function transferFrom(address from, address to, uint256 amount) external nonpayable returns (bool) ``` *Moves `amount` tokens from `from` to `to` 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.* #### Parameters | Name | Type | Description | |---|---|---| | from | address | undefined | | to | address | undefined | | amount | uint256 | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | bool | undefined | ### withdraw ```solidity function withdraw(uint256 shares, address beneficiary) external nonpayable ``` *when unstaking, the user's share of LP tokens are returned and pro-rata SUSHI yield is return as well* #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | beneficiary | address | undefined | ### withdrawableLPsOf ```solidity function withdrawableLPsOf(address account) external view returns (uint256) ``` #### Parameters | Name | Type | Description | |---|---|---| | account | address | undefined | #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | undefined | ### withdrawableTotalLPs ```solidity function withdrawableTotalLPs() external view returns (uint256) ``` #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | undefined | ### withdrawableTotalYield ```solidity function withdrawableTotalYield() external view returns (uint256) ``` *Returns the total amount of SUSHI if every holder wants to withdraw at once* #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | A uint256 representing the total SUSHI | ### withdrawableYieldOf ```solidity function withdrawableYieldOf(address account) external view returns (uint256) ``` *Returns the amount of SUSHI a given address is able to withdraw.* #### Parameters | Name | Type | Description | |---|---|---| | account | address | Address of a reward recipient | #### Returns | Name | Type | Description | |---|---|---| | _0 | uint256 | A uint256 representing the SUSHI `account` can withdraw | ## Events ### Approval ```solidity event Approval(address indexed owner, address indexed spender, uint256 value) ``` #### Parameters | Name | Type | Description | |---|---|---| | owner `indexed` | address | undefined | | spender `indexed` | address | undefined | | value | uint256 | undefined | ### ClaimSushi ```solidity event ClaimSushi(uint256 shares, uint256 yield, address indexed beneficiary) ``` #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | yield | uint256 | undefined | | beneficiary `indexed` | address | undefined | ### Deposit ```solidity event Deposit(uint256 shares, uint256 amountLP, address indexed beneficiary) ``` #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | amountLP | uint256 | undefined | | beneficiary `indexed` | address | undefined | ### EmergencyMigrate ```solidity event EmergencyMigrate(uint256 shares, uint256 amountLP, address indexed beneficiary) ``` #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | amountLP | uint256 | undefined | | beneficiary `indexed` | address | undefined | ### EmergencyWithdraw ```solidity event EmergencyWithdraw(uint256 shares, uint256 amountLP, address indexed beneficiary) ``` #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | amountLP | uint256 | undefined | | beneficiary `indexed` | address | undefined | ### Initialized ```solidity event Initialized(uint8 version) ``` #### Parameters | Name | Type | Description | |---|---|---| | version | uint8 | undefined | ### Migrate ```solidity event Migrate(uint256 shares, uint256 amountLP, address indexed beneficiary) ``` #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | amountLP | uint256 | undefined | | beneficiary `indexed` | address | undefined | ### Transfer ```solidity event Transfer(address indexed from, address indexed to, uint256 value) ``` #### Parameters | Name | Type | Description | |---|---|---| | from `indexed` | address | undefined | | to `indexed` | address | undefined | | value | uint256 | undefined | ### Withdraw ```solidity event Withdraw(uint256 shares, uint256 amountLP, address indexed beneficiary) ``` #### Parameters | Name | Type | Description | |---|---|---| | shares | uint256 | undefined | | amountLP | uint256 | undefined | | beneficiary `indexed` | address | undefined | ## Errors ### Expired ```solidity error Expired() ``` ### InsufficientAmount ```solidity error InsufficientAmount() ``` ### InsufficientYield ```solidity error InsufficientYield() ``` ### InvalidAccount ```solidity error InvalidAccount() ``` ### InvalidOwner ```solidity error InvalidOwner() ``` ### InvalidPath ```solidity error InvalidPath() ``` ### InvalidReceiver ```solidity error InvalidReceiver() ``` ### InvalidSender ```solidity error InvalidSender() ``` ### InvalidSignature ```solidity error InvalidSignature() ``` ### InvalidSpender ```solidity error InvalidSpender() ``` ### NoMigratorSet ```solidity error NoMigratorSet() ``` ### NotEnoughBalance ```solidity error NotEnoughBalance() ```