StakeInstruction.split constructor

StakeInstruction.split({
  1. required Ed25519HDPublicKey sourceStake,
  2. required Ed25519HDPublicKey destinationStake,
  3. required Ed25519HDPublicKey authority,
  4. required int amount,
})

Split tokens amount and stake off a sourceStake account into destinationStake account.

Implementation

factory StakeInstruction.split({
  required Ed25519HDPublicKey sourceStake,
  required Ed25519HDPublicKey destinationStake,
  required Ed25519HDPublicKey authority,
  required int amount,
}) =>
    StakeInstruction._(
      accounts: [
        AccountMeta.writeable(pubKey: sourceStake, isSigner: false),
        AccountMeta.writeable(
          pubKey: destinationStake,
          isSigner: false,
        ),
        AccountMeta.readonly(pubKey: authority, isSigner: true),
      ],
      data: ByteArray.merge([
        StakeProgram.splitInstructionIndex,
        ByteArray.u64(amount),
      ]),
    );