split static method
Split u64 tokens and stake off a stake account into another stake account.
Keys:
[w]
stakeAccount
- Stake account to be split; must be in the Initialized or Stake state.[w]
uninitializedStakeAccount
- Uninitialized stake account that will take the split-off amount.[s]
authority
- Stake authority.
Implementation
static TransactionInstruction split({
// Keys
required final Pubkey stakeAccount,
required final Pubkey uninitializedStakeAccount,
required final Pubkey authority,
// Data
required final bu64 lamports,
}) {
// 0. `[w]` Stake account to be split; must be in the Initialized or Stake state.
// 1. `[w]` Uninitialized stake account that will take the split-off amount.
// 2. `[s]` Stake authority.
final List<AccountMeta> keys = [
AccountMeta.writable(stakeAccount),
AccountMeta.writable(uninitializedStakeAccount),
AccountMeta.signer(authority),
];
final List<Iterable<u8>> data = [
borsh.u64.encode(lamports),
];
return _instance.createTransactionIntruction(
StakeInstruction.split,
keys: keys,
data: data,
);
}