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.

486 lines (485 loc) 10.3 kB
[ { "inputs": [ { "internalType": "address", "name": "_flashNFTAddress", "type": "address" }, { "internalType": "address", "name": "_flashFTokenFactoryAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_stakeId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "NFTIssued", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_stakeId", "type": "uint256" } ], "name": "Staked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_strategyAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_principalTokenAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_fTokenAddress", "type": "address" } ], "name": "StrategyRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_stakeId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_tokensReturned", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_fTokensBurned", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "_stakeFinished", "type": "bool" } ], "name": "Unstaked", "type": "event" }, { "inputs": [], "name": "flashNFTAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_strategyAddress", "type": "address" }, { "internalType": "uint256", "name": "_tokenAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_stakeDuration", "type": "uint256" }, { "internalType": "uint256", "name": "_minimumReceived", "type": "uint256" }, { "internalType": "address", "name": "_yieldTo", "type": "address" }, { "internalType": "bool", "name": "_mintNFT", "type": "bool" } ], "name": "flashStake", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "bool", "name": "_isNFT", "type": "bool" } ], "name": "getStakeInfo", "outputs": [ { "components": [ { "internalType": "address", "name": "stakerAddress", "type": "address" }, { "internalType": "address", "name": "strategyAddress", "type": "address" }, { "internalType": "uint256", "name": "stakeStartTs", "type": "uint256" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" }, { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" }, { "internalType": "bool", "name": "active", "type": "bool" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "fTokensToUser", "type": "uint256" }, { "internalType": "uint256", "name": "fTokensFee", "type": "uint256" }, { "internalType": "uint256", "name": "totalFTokenBurned", "type": "uint256" }, { "internalType": "uint256", "name": "totalStakedWithdrawn", "type": "uint256" } ], "internalType": "struct FlashProtocol.StakeStruct", "name": "_stake", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_stakeId", "type": "uint256" } ], "name": "issueNFT", "outputs": [ { "internalType": "uint256", "name": "_nftId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_strategyAddress", "type": "address" }, { "internalType": "address", "name": "_principalTokenAddress", "type": "address" }, { "internalType": "string", "name": "_fTokenName", "type": "string" }, { "internalType": "string", "name": "_fTokenSymbol", "type": "string" } ], "name": "registerStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_feeRecipient", "type": "address" }, { "internalType": "uint96", "name": "_feePercentageBasis", "type": "uint96" } ], "name": "setMintFeeInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_strategyAddress", "type": "address" }, { "internalType": "uint256", "name": "_tokenAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_stakeDuration", "type": "uint256" }, { "internalType": "address", "name": "_fTokensTo", "type": "address" }, { "internalType": "bool", "name": "_issueNFT", "type": "bool" } ], "name": "stake", "outputs": [ { "components": [ { "internalType": "address", "name": "stakerAddress", "type": "address" }, { "internalType": "address", "name": "strategyAddress", "type": "address" }, { "internalType": "uint256", "name": "stakeStartTs", "type": "uint256" }, { "internalType": "uint256", "name": "stakeDuration", "type": "uint256" }, { "internalType": "uint256", "name": "stakedAmount", "type": "uint256" }, { "internalType": "bool", "name": "active", "type": "bool" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" }, { "internalType": "uint256", "name": "fTokensToUser", "type": "uint256" }, { "internalType": "uint256", "name": "fTokensFee", "type": "uint256" }, { "internalType": "uint256", "name": "totalFTokenBurned", "type": "uint256" }, { "internalType": "uint256", "name": "totalStakedWithdrawn", "type": "uint256" } ], "internalType": "struct FlashProtocol.StakeStruct", "name": "_stake", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "bool", "name": "_isNFT", "type": "bool" }, { "internalType": "uint256", "name": "_fTokenToBurn", "type": "uint256" } ], "name": "unstake", "outputs": [ { "internalType": "uint256", "name": "_principalReturned", "type": "uint256" }, { "internalType": "uint256", "name": "_fTokensBurned", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]