K9 Finance DAO Docs
  • Overview
  • Administration
  • How K9 Finance DAO works
  • Liquid Staking
    • Architecture
    • Protocol Fee and Rewards
    • Contracts
      • knBONE
      • NodeOperatorRegistry
      • InstantPool
      • UnstBONE
      • BridgeETH
      • BridgeSHIB
  • Farming
    • Architecture
    • Contracts
      • FarmingFactory
      • FarmingInstance
  • Real Yield Staking
    • Architecture
    • RealYieldStaking Contract
  • Vesting
    • Architecture
    • Vesting Contract
  • Integrations
    • API
    • SDKs and UI libraries
    • Node Operators
  • Security
    • Audits
  • Deployed Contracts
    • Testnet
    • Mainnet
  • FAQ
  • Testnet Guide - START HERE
    • Liquid Staking
      • Stake
      • Unstake
      • Claim
      • Rewards
    • Farming
      • Stake/Unstake LP
      • Zap
      • Claim All
      • Bonus Rewards
    • Real Yield Staking
      • Stake with Lock
      • Stake without Lock
      • Claim Rewards
      • Withdraw
    • Vesting
  • Mainnet Guide - START HERE
    • Liquid Staking
      • Stake
      • Unstake
      • Claim
      • Rewards
    • Farming
      • Stake/Unstake LP
      • Zap
      • Claim All
      • Bonus Rewards
    • Real Yield Staking
      • Stake with Lock
      • Stake without Lock
      • Claim Rewards
      • Withdraw
    • Vesting
Powered by GitBook
On this page
  • Variables
  • Methods
  • initialize
  • withdraw
  • pause
  • unpause
  1. Liquid Staking
  2. Contracts

InstantPool

PreviousNodeOperatorRegistryNextUnstBONE

Last updated 6 months ago

InstantPool contract is responsible for the instant BONE payout. When user requests such instant payout, this contracts allows user to receive their BONE tokens instantly without creating a withdrawal request. The fee instantPoolUsageFee is applied to such payout.

Variables

bytes32 public constant PAUSE_ROLE = keccak256("PAUSE_ROLE"); - pauser role identifier bytes32 public constant UNPAUSE_ROLE = keccak256("UNPAUSE_ROLE"); - unpauser role identifier bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE"); - withdrawer role identifier

Methods

initialize

function initialize(address _dao, address _knBONE) external initializer

Initializer function, not called after initialization. The following roles are granted:

  • DEFAULT_ADMIN_ROLE - DAO (admin)

  • WITHDRAWER_ROLE - KnBONE contract

withdraw

function withdraw(IERC20Upgradeable token, address receiver, uint256 amount) 
     external 
     whenNotPaused 
     onlyRole(WITHDRAWER_ROLE) 

Transfers the specified amount of the specified token (BONE) to receiver.

pause

function pause() external onlyRole(PAUSE_ROLE)

Pauses the InstantPool contract.

unpause

function unpause() external onlyRole(UNPAUSE_ROLE) 

Unpauses the InstantPool contract.

Link to InstantPool source code on Ethereum