Vote Program
solana.vote_program
Library to interface with the vote program.
WithdrawFromVoteAccountParams
Transfer SOL from vote account to identity.
Source code in solana/vote_program.py
class WithdrawFromVoteAccountParams(NamedTuple):
"""Transfer SOL from vote account to identity."""
vote_account_from_pubkey: Pubkey
""""""
to_pubkey: Pubkey
""""""
lamports: int
""""""
withdrawer: Pubkey
""""""
withdraw_from_vote_account(params)
Generate an instruction that transfers lamports from a vote account to any other.
Examples:
>>> from solders.pubkey import Pubkey
>>> from solders.keypair import Keypair
>>> vote = Pubkey([0] * 31 + [1])
>>> withdrawer = Keypair.from_seed(bytes([0]*32))
>>> instruction = withdraw_from_vote_account(
... WithdrawFromVoteAccountParams(
... vote_account_from_pubkey=vote,
... to_pubkey=withdrawer.pubkey(),
... withdrawer=withdrawer.pubkey(),
... lamports=3_000_000_000,
... )
... )
>>> type(instruction)
<class 'solders.instruction.Instruction'>
Returns:
Type | Description |
---|---|
Instruction |
The generated instruction. |
Source code in solana/vote_program.py
def withdraw_from_vote_account(params: WithdrawFromVoteAccountParams) -> Instruction:
"""Generate an instruction that transfers lamports from a vote account to any other.
Example:
>>> from solders.pubkey import Pubkey
>>> from solders.keypair import Keypair
>>> vote = Pubkey([0] * 31 + [1])
>>> withdrawer = Keypair.from_seed(bytes([0]*32))
>>> instruction = withdraw_from_vote_account(
... WithdrawFromVoteAccountParams(
... vote_account_from_pubkey=vote,
... to_pubkey=withdrawer.pubkey(),
... withdrawer=withdrawer.pubkey(),
... lamports=3_000_000_000,
... )
... )
>>> type(instruction)
<class 'solders.instruction.Instruction'>
Returns:
The generated instruction.
"""
data = VOTE_INSTRUCTIONS_LAYOUT.build(
{
"instruction_type": InstructionType.WITHDRAW_FROM_VOTE_ACCOUNT,
"args": {"lamports": params.lamports},
}
)
return Instruction(
accounts=[
AccountMeta(
pubkey=params.vote_account_from_pubkey,
is_signer=False,
is_writable=True,
),
AccountMeta(pubkey=params.to_pubkey, is_signer=False, is_writable=True),
AccountMeta(pubkey=params.withdrawer, is_signer=True, is_writable=True),
],
program_id=VOTE_PROGRAM_ID,
data=data,
)