SHOOK / OFFICIAL PROTOCOLDocumentation
MAINNET EDITIONOpen SHOOK

StakingVault

Complete compiled interface, including inherited methods.

Solidity 0.8.36+commit.8a079791 · Download ABI ↓ ·

Constructor 1

nonpayableconstructor(address, address, address, bool)
{
  "type": "constructor",
  "inputs": [
    {
      "name": "shook_",
      "type": "address",
      "internalType": "contract IProtocolToken"
    },
    {
      "name": "formationMarket_",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "reserveVault_",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "acceleratedTiming_",
      "type": "bool",
      "internalType": "bool"
    }
  ],
  "stateMutability": "nonpayable"
}

Functions 36

viewacceleratedTiming()
{
  "type": "function",
  "name": "acceleratedTiming",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "bool",
      "internalType": "bool"
    }
  ],
  "stateMutability": "view"
}
nonpayableactivate()
{
  "type": "function",
  "name": "activate",
  "inputs": [],
  "outputs": [
    {
      "name": "rewardBudget",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
viewactivatedAt()
{
  "type": "function",
  "name": "activatedAt",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint40",
      "internalType": "uint40"
    }
  ],
  "stateMutability": "view"
}
viewactive()
{
  "type": "function",
  "name": "active",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "bool",
      "internalType": "bool"
    }
  ],
  "stateMutability": "view"
}
viewBASE_REWARD_ALLOCATION()
{
  "type": "function",
  "name": "BASE_REWARD_ALLOCATION",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewclaimableRewardsOf(address)
{
  "type": "function",
  "name": "claimableRewardsOf",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "amount",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewclaimedRewardsOf(address)
{
  "type": "function",
  "name": "claimedRewardsOf",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
nonpayableclaimRewards(address)
{
  "type": "function",
  "name": "claimRewards",
  "inputs": [
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "amount",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
viewcompoundedRewardsOf(address)
{
  "type": "function",
  "name": "compoundedRewardsOf",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewcurrentRewardRate()
{
  "type": "function",
  "name": "currentRewardRate",
  "inputs": [],
  "outputs": [
    {
      "name": "rate",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewformationMarket()
{
  "type": "function",
  "name": "formationMarket",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "address"
    }
  ],
  "stateMutability": "view"
}
viewlaunchRewardDuration()
{
  "type": "function",
  "name": "launchRewardDuration",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewlaunchRewardsRemaining()
{
  "type": "function",
  "name": "launchRewardsRemaining",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewlaunchRewardState()
{
  "type": "function",
  "name": "launchRewardState",
  "inputs": [],
  "outputs": [
    {
      "name": "locked",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "rate",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "lastUpdated",
      "type": "uint40",
      "internalType": "uint40"
    },
    {
      "name": "finish",
      "type": "uint40",
      "internalType": "uint40"
    }
  ],
  "stateMutability": "view"
}
viewlifetimeRewardsEarned(address)
{
  "type": "function",
  "name": "lifetimeRewardsEarned",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
payableonReserveNativeRouted(bytes32)
{
  "type": "function",
  "name": "onReserveNativeRouted",
  "inputs": [
    {
      "name": "",
      "type": "bytes32",
      "internalType": "bytes32"
    }
  ],
  "outputs": [],
  "stateMutability": "payable"
}
nonpayableonReserveTokenRouted(bytes32, address, uint256)
{
  "type": "function",
  "name": "onReserveTokenRouted",
  "inputs": [
    {
      "name": "streamId",
      "type": "bytes32",
      "internalType": "bytes32"
    },
    {
      "name": "token",
      "type": "address",
      "internalType": "address"
    },
    {
      "name": "amount",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [],
  "stateMutability": "nonpayable"
}
viewpausedAt()
{
  "type": "function",
  "name": "pausedAt",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint40",
      "internalType": "uint40"
    }
  ],
  "stateMutability": "view"
}
viewprincipalOf(address)
{
  "type": "function",
  "name": "principalOf",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewreserveVault()
{
  "type": "function",
  "name": "reserveVault",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "address"
    }
  ],
  "stateMutability": "view"
}
viewsharesOf(address)
{
  "type": "function",
  "name": "sharesOf",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewshook()
{
  "type": "function",
  "name": "shook",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "address",
      "internalType": "contract IProtocolToken"
    }
  ],
  "stateMutability": "view"
}
nonpayablestake(uint256)
{
  "type": "function",
  "name": "stake",
  "inputs": [
    {
      "name": "amount",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "outputs": [
    {
      "name": "shares",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
viewstakedBalanceOf(address)
{
  "type": "function",
  "name": "stakedBalanceOf",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewsupplementalRewardDuration()
{
  "type": "function",
  "name": "supplementalRewardDuration",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewsupplementalRewardsRemaining()
{
  "type": "function",
  "name": "supplementalRewardsRemaining",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewsupplementalRewardState()
{
  "type": "function",
  "name": "supplementalRewardState",
  "inputs": [],
  "outputs": [
    {
      "name": "locked",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "rate",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "lastUpdated",
      "type": "uint40",
      "internalType": "uint40"
    },
    {
      "name": "finish",
      "type": "uint40",
      "internalType": "uint40"
    }
  ],
  "stateMutability": "view"
}
viewtotalAssets()
{
  "type": "function",
  "name": "totalAssets",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewtotalPrincipal()
{
  "type": "function",
  "name": "totalPrincipal",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewtotalRewardsClaimed()
{
  "type": "function",
  "name": "totalRewardsClaimed",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewtotalRewardsFunded()
{
  "type": "function",
  "name": "totalRewardsFunded",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewtotalRewardsReleased()
{
  "type": "function",
  "name": "totalRewardsReleased",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewtotalShares()
{
  "type": "function",
  "name": "totalShares",
  "inputs": [],
  "outputs": [
    {
      "name": "",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
viewunaccountedShook()
{
  "type": "function",
  "name": "unaccountedShook",
  "inputs": [],
  "outputs": [
    {
      "name": "amount",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "view"
}
nonpayablewithdrawAll(address)
{
  "type": "function",
  "name": "withdrawAll",
  "inputs": [
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "principal",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "rewards",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}
nonpayablewithdrawPrincipal(uint256, address)
{
  "type": "function",
  "name": "withdrawPrincipal",
  "inputs": [
    {
      "name": "amount",
      "type": "uint256",
      "internalType": "uint256"
    },
    {
      "name": "receiver",
      "type": "address",
      "internalType": "address"
    }
  ],
  "outputs": [
    {
      "name": "shares",
      "type": "uint256",
      "internalType": "uint256"
    }
  ],
  "stateMutability": "nonpayable"
}

Events 6

eventActivated(uint40, uint256, uint40)
{
  "type": "event",
  "name": "Activated",
  "inputs": [
    {
      "name": "timestamp",
      "type": "uint40",
      "indexed": false,
      "internalType": "uint40"
    },
    {
      "name": "rewardBudget",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "finish",
      "type": "uint40",
      "indexed": false,
      "internalType": "uint40"
    }
  ],
  "anonymous": false
}
eventPositionClosed(address, address, uint256, uint256, uint256)
{
  "type": "event",
  "name": "PositionClosed",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "receiver",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "principal",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "rewards",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "shares",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    }
  ],
  "anonymous": false
}
eventPrincipalWithdrawn(address, address, uint256, uint256)
{
  "type": "event",
  "name": "PrincipalWithdrawn",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "receiver",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "amount",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "shares",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    }
  ],
  "anonymous": false
}
eventRewardsClaimed(address, address, uint256, uint256)
{
  "type": "event",
  "name": "RewardsClaimed",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "receiver",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "amount",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "shares",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    }
  ],
  "anonymous": false
}
eventRewardsFunded(bytes32, uint256, uint256, uint40)
{
  "type": "event",
  "name": "RewardsFunded",
  "inputs": [
    {
      "name": "streamId",
      "type": "bytes32",
      "indexed": true,
      "internalType": "bytes32"
    },
    {
      "name": "amount",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "totalLocked",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "finish",
      "type": "uint40",
      "indexed": false,
      "internalType": "uint40"
    }
  ],
  "anonymous": false
}
eventStaked(address, uint256, uint256)
{
  "type": "event",
  "name": "Staked",
  "inputs": [
    {
      "name": "account",
      "type": "address",
      "indexed": true,
      "internalType": "address"
    },
    {
      "name": "amount",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    },
    {
      "name": "shares",
      "type": "uint256",
      "indexed": false,
      "internalType": "uint256"
    }
  ],
  "anonymous": false
}

Errors 15

errorAlreadyActive()
{
  "type": "error",
  "name": "AlreadyActive",
  "inputs": []
}
errorIncorrectAsset()
{
  "type": "error",
  "name": "IncorrectAsset",
  "inputs": []
}
errorIncorrectRewardInventory()
{
  "type": "error",
  "name": "IncorrectRewardInventory",
  "inputs": []
}
errorInsufficientPrincipal()
{
  "type": "error",
  "name": "InsufficientPrincipal",
  "inputs": []
}
errorInsufficientShares()
{
  "type": "error",
  "name": "InsufficientShares",
  "inputs": []
}
errorNativeAssetUnsupported()
{
  "type": "error",
  "name": "NativeAssetUnsupported",
  "inputs": []
}
errorNotActive()
{
  "type": "error",
  "name": "NotActive",
  "inputs": []
}
errorOnlyFormationMarket()
{
  "type": "error",
  "name": "OnlyFormationMarket",
  "inputs": []
}
errorOnlyReserveVault()
{
  "type": "error",
  "name": "OnlyReserveVault",
  "inputs": []
}
errorReentrancyGuardReentrantCall()
{
  "type": "error",
  "name": "ReentrancyGuardReentrantCall",
  "inputs": []
}
errorSafeCastOverflowedUintDowncast(uint8, uint256)
{
  "type": "error",
  "name": "SafeCastOverflowedUintDowncast",
  "inputs": [
    {
      "name": "bits",
      "type": "uint8",
      "internalType": "uint8"
    },
    {
      "name": "value",
      "type": "uint256",
      "internalType": "uint256"
    }
  ]
}
errorSafeERC20FailedOperation(address)
{
  "type": "error",
  "name": "SafeERC20FailedOperation",
  "inputs": [
    {
      "name": "token",
      "type": "address",
      "internalType": "address"
    }
  ]
}
errorSharePrecisionExceeded()
{
  "type": "error",
  "name": "SharePrecisionExceeded",
  "inputs": []
}
errorZeroAddress()
{
  "type": "error",
  "name": "ZeroAddress",
  "inputs": []
}
errorZeroAmount()
{
  "type": "error",
  "name": "ZeroAmount",
  "inputs": []
}

Source and provenance

Imported source files 14

Supporting contracts, interfaces, and libraries imported by the sources above, including their dependencies.

Source fingerprint: 3aa777a77b99551fc33720bc204c6478a4fb635d09b135d6a09dced54b06a637. Download manifest.