feat: add API for decoding system instructions

This commit is contained in:
Justin Starry
2020-03-03 16:05:50 +08:00
committed by Michael Vines
parent 662ce22cdd
commit 6ed2bad9d0
12 changed files with 932 additions and 580 deletions

View File

@@ -463,15 +463,15 @@ export class StakeProgram {
static createAccountWithSeed(
params: CreateStakeAccountWithSeedParams,
): Transaction {
let transaction = SystemProgram.createAccountWithSeed(
params.fromPubkey,
params.stakePubkey,
params.basePubkey,
params.seed,
params.lamports,
this.space,
this.programId,
);
let transaction = SystemProgram.createAccountWithSeed({
fromPubkey: params.fromPubkey,
newAccountPubkey: params.stakePubkey,
basePubkey: params.basePubkey,
seed: params.seed,
lamports: params.lamports,
space: this.space,
programId: this.programId,
});
const {stakePubkey, authorized, lockup} = params;
return transaction.add(this.initialize({stakePubkey, authorized, lockup}));
@@ -481,13 +481,13 @@ export class StakeProgram {
* Generate a Transaction that creates a new Stake account
*/
static createAccount(params: CreateStakeAccountParams): Transaction {
let transaction = SystemProgram.createAccount(
params.fromPubkey,
params.stakePubkey,
params.lamports,
this.space,
this.programId,
);
let transaction = SystemProgram.createAccount({
fromPubkey: params.fromPubkey,
newAccountPubkey: params.stakePubkey,
lamports: params.lamports,
space: this.space,
programId: this.programId,
});
const {stakePubkey, authorized, lockup} = params;
return transaction.add(this.initialize({stakePubkey, authorized, lockup}));
@@ -557,13 +557,13 @@ export class StakeProgram {
static split(params: SplitStakeParams): Transaction {
const {stakePubkey, authorizedPubkey, splitStakePubkey, lamports} = params;
let transaction = SystemProgram.createAccount(
stakePubkey,
splitStakePubkey,
0,
this.space,
this.programId,
);
let transaction = SystemProgram.createAccount({
fromPubkey: stakePubkey,
newAccountPubkey: splitStakePubkey,
lamports: 0,
space: this.space,
programId: this.programId,
});
transaction.instructions[0].keys[0].isSigner = false;
const type = STAKE_INSTRUCTION_LAYOUTS.Split;
const data = encodeData(type, {lamports});