1.2.1 • Published 1 year ago

test-streamflow v1.2.1

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Streamflow

PDA Design (schema):

  1. lock_pool:

    • base: Use init admin.
    • admin: Contral pool init、pause and start.
    • pending_admin: Use transfer admin
    • bump: Verify PDA.
    • interval: Contral user withdraw interval.
    • mint: Crm or other token.
    • token_account: Which transfer token to user.
    • position_count: Self add one when init position.
    • is_paused: Contral withdraw.
  2. lock_position

    • bump: Verify PDA.
    • nft_mint: One nft can only init one position.
    • lock_pool: Owner by which lock pool.
    • start_time: Start time of unlock.
    • end_time: End time of unlock.
    • last_withdraw_time: User last time of withdraw.
    • withdraw_quantity: Update when user withdraw.
    • crm_quantity: Init when init position.

Instruction Design

initialize_pool

  • Accounts

    • base: init admin seeds(signer)
    • #[init, seeds="pool", base.key()] admin: lock pool admin (signer)
    • PDA(lock_pool): record pool lock position info(signer、writable)
    • mint
    • token_account
    • token_program
    • associated_token_program
    • system_program
    • rent
  • Instruction data:

    • interval: u64

initialize_lock_position

  • Accounts

    • admin: pool admin,
    • lock_pool
    • nft_mint
    • #[init, seed = "position", nft_mint] lock_position
    • system_rogram
    • rent
  • Instruction data:

    • start_time: u64
    • end_time: u64,
    • crm_quantity: u64,

WithdrawUnlock

  • Accounts

    • user: recipent (signer, writable),
    • lock_pool
    • lock_position
    • nft_mint
    • nft_token
    • pool_crm_token
    • user_crm_token
    • token_program
  • None instruction data.

TransferAdmin

  • Accounts

    • lock_pool
    • admin
    • next_admin
  • None instruction data.

AcceptAdmin

  • Accounts

    • lock_pool
    • pending_admin
  • None instruction data.

PauseWithdraw

  • Accounts

    • admin
    • lock_pool
  • None instruction data.

StartWithdraw

  • Accounts

    • admin
    • lock_pool
  • None instruction data.

CLI

Now streamflow program is deploy on https://api.devnet.rpcpool.com/2ee3d7c0b48f6c361a06459b1d77.

You should set your solana config before you use stream-cli in devnet.

CLI Introduce

CommandIntro
init-pool optionsInitialize the lock pool
init-lp optionscurrentTime < startTime < endTime
withdraw-unlock optionsWithdraw unlock
transfer-admin optionsTransfer lock pool's admin
accept-admin optionsAccept lock pool's new admin
pause-withdraw optionsPause withdraw
start-withdraw optionsStart withdraw
pool-detail optionsView pool detail by lock pool key
position-detail optionsView position detail by lock position key

You can view more by -h.