Comment on page

sSPELL

An auto-compounding staking contract for SPELL
sSPELL is the original staking contract for SPELL holders. It is a version of the SushiBar by ChefNomi. It works with a share system, users mint sSPELL by depositing SPELL into the contract via the mint(amount) function, and they receive an amount of sSPELL at the current SPELL per sSPELL ratio.
When protocol fees are accrued and SPELL is bought back and sent to the sSPELL contract, SPELL is deposited but no sSPELL is minted: the SPELL per sSPELL ratio increases.
The burn function is the exact inverse of mint, it burns your sSPELL and gives you back SPELL at the current SPELL:sSPELL ratio.
To avoid people gaming the system, upon staking, the sSPELL is subject to a 24h lockup, where it can be moved, burned, used as collateral etc…
Appart from this, sSPELL is a regular ERC20.

mint | nonpayable

function mint(uint256 amount) public returns (bool) {
Parameters
Name
Type
Description
amount
uint256
Amount of SPELL to stake.
Return values
Name
Type
Description
/
bool
Returns True if the operation is successful.

burn | nonpayable

function burn(address to, uint256 shares) public returns (bool) {
Parameters
Name
Type
Text
to
address
Address to send the SPELL to.
shares
uint256
Amount of sSPELL to burn.
Return values
Name
Type
Description
/
bool
Returns True if the operation is successful.

burnFrom | nonpayable

function burnFrom(
address from,
address to,
uint256 shares
) public returns (bool) {
Same as Burn, but allow another address that has been approved by you using the standard ERC20 approve() to burn on your behalf.
Parameters
Name
Type
Description
from
address
Address to burn the sSPELL from.
to
address
Address to send the SPELL to.
shares
uint256
Amount of sSPELL to burn.
Return values
Name
Type
Text
/
bool
Returns True if the operation is successful.