Staking and Governance

Examples of interacting with staking and governance. These functions typically require a balance_manager_key, pool_key, or both.

Stake

Use stake() method to stake a specified amount in the pool.

Reference : deepbookpy.transactions.governance.GovernanceContract.stake()

# Call stake method
deepbook_client.governance.stake(
    pool_key="DEEP_SUI",
    balance_manager_key="MANAGER_1",
    stake_amount=5,
    tx=txn
    )

# Execute the transaction
tx_result = handle_result(txn.execute(gas_budget="100000000"))
print(tx_result.to_json(indent=2))

Unstake

Use unstake() method to unstake amount from the pool.

Reference : deepbookpy.transactions.governance.GovernanceContract.unstake()

# Call unstake method
deepbook_client.governance.unstake(
    pool_key="DEEP_SUI",
    balance_manager_key="MANAGER_1",
    tx=txn
    )

# Execute the transaction
tx_result = handle_result(txn.execute(gas_budget="100000000"))
print(tx_result.to_json(indent=2))

Submit Proposal

Use submit_proposal() method to submit a governance proposal.

Reference : deepbookpy.transactions.governance.GovernanceContract.submit_proposal()

# Add arguments for proposal parameters
proposal_params = ProposalParams(
    pool_key="DEEP_SUI",
    balance_manager_key="MANAGER_1",
    taker_fee=0.1,
    maker_fee=0.1,
    stake_required=1
)

# Call submit proposal method
deepbook_client.governance.submit_proposal(
    params=proposal_params,
    tx=txn
    )

# Execute the transaction
tx_result = handle_result(txn.execute(gas_budget="100000000"))
print(tx_result.to_json(indent=2))

Vote

Use vote() method to vote on a governance proposal.

Reference : deepbookpy.transactions.governance.GovernanceContract.vote()

# Call submit proposal method
deepbook_client.governance.vote(
    pool_key="DBUSDT_DBUSDC",
    balance_manager_key="MANAGER_1",
    proposal_id="0x123456789",
    tx=txn
    )

# Execute the transaction
tx_result = handle_result(txn.execute(gas_budget="100000000"))
print(tx_result.to_json(indent=2))