|
@@ -0,0 +1,147 @@
|
|
|
+import * as borsh from "borsh";
|
|
|
+import { Buffer } from "buffer";
|
|
|
+import {
|
|
|
+ PublicKey,
|
|
|
+ SystemProgram,
|
|
|
+ TransactionInstruction
|
|
|
+} from '@solana/web3.js';
|
|
|
+import { ReallocInstruction } from './instruction';
|
|
|
+
|
|
|
+
|
|
|
+export class ReallocateWithoutZeroInit {
|
|
|
+
|
|
|
+ instruction: ReallocInstruction;
|
|
|
+ state: string;
|
|
|
+ zip: number;
|
|
|
+
|
|
|
+ constructor(props: {
|
|
|
+ instruction: ReallocInstruction,
|
|
|
+ state: string,
|
|
|
+ zip: number,
|
|
|
+ }) {
|
|
|
+ this.instruction = props.instruction;
|
|
|
+ this.state = props.state;
|
|
|
+ this.zip = props.zip;
|
|
|
+ }
|
|
|
+
|
|
|
+ toBuffer() {
|
|
|
+ return Buffer.from(borsh.serialize(ReallocateWithoutZeroInitSchema, this))
|
|
|
+ };
|
|
|
+
|
|
|
+ static fromBuffer(buffer: Buffer) {
|
|
|
+ return borsh.deserialize(ReallocateWithoutZeroInitSchema, ReallocateWithoutZeroInit, buffer);
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+export const ReallocateWithoutZeroInitSchema = new Map([
|
|
|
+ [ ReallocateWithoutZeroInit, {
|
|
|
+ kind: 'struct',
|
|
|
+ fields: [
|
|
|
+ ['instruction', 'u8'],
|
|
|
+ ['state', 'string'],
|
|
|
+ ['zip', 'u32'],
|
|
|
+ ],
|
|
|
+ }]
|
|
|
+]);
|
|
|
+
|
|
|
+export function createReallocateWithoutZeroInitInstruction(
|
|
|
+ target: PublicKey,
|
|
|
+ payer: PublicKey,
|
|
|
+ programId: PublicKey,
|
|
|
+ state: string,
|
|
|
+ zip: number,
|
|
|
+): TransactionInstruction {
|
|
|
+
|
|
|
+ const instructionObject = new ReallocateWithoutZeroInit({
|
|
|
+ instruction: ReallocInstruction.ReallocateWithoutZeroInit,
|
|
|
+ state,
|
|
|
+ zip,
|
|
|
+ });
|
|
|
+
|
|
|
+ const ix = new TransactionInstruction({
|
|
|
+ keys: [
|
|
|
+ {pubkey: target, isSigner: false, isWritable: true},
|
|
|
+ {pubkey: payer, isSigner: true, isWritable: true},
|
|
|
+ {pubkey: SystemProgram.programId, isSigner: false, isWritable: false}
|
|
|
+ ],
|
|
|
+ programId: programId,
|
|
|
+ data: instructionObject.toBuffer(),
|
|
|
+ });
|
|
|
+
|
|
|
+ return ix;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+export class ReallocateZeroInit {
|
|
|
+
|
|
|
+ instruction: ReallocInstruction;
|
|
|
+ name: string;
|
|
|
+ position: string;
|
|
|
+ company: string;
|
|
|
+ years_employed: number;
|
|
|
+
|
|
|
+ constructor(props: {
|
|
|
+ instruction: ReallocInstruction,
|
|
|
+ name: string,
|
|
|
+ position: string,
|
|
|
+ company: string,
|
|
|
+ years_employed: number,
|
|
|
+ }) {
|
|
|
+ this.instruction = props.instruction;
|
|
|
+ this.name = props.name;
|
|
|
+ this.position = props.position;
|
|
|
+ this.company = props.company;
|
|
|
+ this.years_employed = props.years_employed;
|
|
|
+ }
|
|
|
+
|
|
|
+ toBuffer() {
|
|
|
+ return Buffer.from(borsh.serialize(ReallocateZeroInitSchema, this))
|
|
|
+ };
|
|
|
+
|
|
|
+ static fromBuffer(buffer: Buffer) {
|
|
|
+ return borsh.deserialize(ReallocateZeroInitSchema, ReallocateZeroInit, buffer);
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+export const ReallocateZeroInitSchema = new Map([
|
|
|
+ [ ReallocateZeroInit, {
|
|
|
+ kind: 'struct',
|
|
|
+ fields: [
|
|
|
+ ['instruction', 'u8'],
|
|
|
+ ['name', 'string'],
|
|
|
+ ['position', 'string'],
|
|
|
+ ['company', 'string'],
|
|
|
+ ['years_employed', 'u8'],
|
|
|
+ ],
|
|
|
+ }]
|
|
|
+]);
|
|
|
+
|
|
|
+export function createReallocateZeroInitInstruction(
|
|
|
+ target: PublicKey,
|
|
|
+ payer: PublicKey,
|
|
|
+ programId: PublicKey,
|
|
|
+ name: string,
|
|
|
+ position: string,
|
|
|
+ company: string,
|
|
|
+ years_employed: number,
|
|
|
+): TransactionInstruction {
|
|
|
+
|
|
|
+ const instructionObject = new ReallocateZeroInit({
|
|
|
+ instruction: ReallocInstruction.ReallocateZeroInit,
|
|
|
+ name,
|
|
|
+ position,
|
|
|
+ company,
|
|
|
+ years_employed,
|
|
|
+ });
|
|
|
+
|
|
|
+ const ix = new TransactionInstruction({
|
|
|
+ keys: [
|
|
|
+ {pubkey: target, isSigner: false, isWritable: true},
|
|
|
+ ],
|
|
|
+ programId: programId,
|
|
|
+ data: instructionObject.toBuffer(),
|
|
|
+ });
|
|
|
+
|
|
|
+ return ix;
|
|
|
+}
|