@solsdk/jito-ts
Version:
## What is it and why do you need it?
1,410 lines (1,301 loc) • 63.7 kB
text/typescript
/* eslint-disable */
import Long from "long";
import _m0 from "protobufjs/minimal";
export const protobufPackage = "solana.storage.ConfirmedBlock";
export enum RewardType {
Unspecified = 0,
Fee = 1,
Rent = 2,
Staking = 3,
Voting = 4,
UNRECOGNIZED = -1,
}
export function rewardTypeFromJSON(object: any): RewardType {
switch (object) {
case 0:
case "Unspecified":
return RewardType.Unspecified;
case 1:
case "Fee":
return RewardType.Fee;
case 2:
case "Rent":
return RewardType.Rent;
case 3:
case "Staking":
return RewardType.Staking;
case 4:
case "Voting":
return RewardType.Voting;
case -1:
case "UNRECOGNIZED":
default:
return RewardType.UNRECOGNIZED;
}
}
export function rewardTypeToJSON(object: RewardType): string {
switch (object) {
case RewardType.Unspecified:
return "Unspecified";
case RewardType.Fee:
return "Fee";
case RewardType.Rent:
return "Rent";
case RewardType.Staking:
return "Staking";
case RewardType.Voting:
return "Voting";
case RewardType.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
export interface ConfirmedBlock {
previousBlockhash: string;
blockhash: string;
parentSlot: number;
transactions: ConfirmedTransaction[];
rewards: Reward[];
blockTime: UnixTimestamp | undefined;
blockHeight: BlockHeight | undefined;
}
export interface ConfirmedTransaction {
transaction: Transaction | undefined;
meta: TransactionStatusMeta | undefined;
}
export interface Transaction {
signatures: Uint8Array[];
message: Message | undefined;
}
export interface Message {
header: MessageHeader | undefined;
accountKeys: Uint8Array[];
recentBlockhash: Uint8Array;
instructions: CompiledInstruction[];
versioned: boolean;
addressTableLookups: MessageAddressTableLookup[];
}
export interface MessageHeader {
numRequiredSignatures: number;
numReadonlySignedAccounts: number;
numReadonlyUnsignedAccounts: number;
}
export interface MessageAddressTableLookup {
accountKey: Uint8Array;
writableIndexes: Uint8Array;
readonlyIndexes: Uint8Array;
}
export interface TransactionStatusMeta {
err: TransactionError | undefined;
fee: number;
preBalances: number[];
postBalances: number[];
innerInstructions: InnerInstructions[];
innerInstructionsNone: boolean;
logMessages: string[];
logMessagesNone: boolean;
preTokenBalances: TokenBalance[];
postTokenBalances: TokenBalance[];
rewards: Reward[];
loadedWritableAddresses: Uint8Array[];
loadedReadonlyAddresses: Uint8Array[];
returnData: ReturnData | undefined;
returnDataNone: boolean;
/**
* Sum of compute units consumed by all instructions.
* Available since Solana v1.10.35 / v1.11.6.
* Set to `None` for txs executed on earlier versions.
*/
computeUnitsConsumed?: number | undefined;
}
export interface TransactionError {
err: Uint8Array;
}
export interface InnerInstructions {
index: number;
instructions: InnerInstruction[];
}
export interface InnerInstruction {
programIdIndex: number;
accounts: Uint8Array;
data: Uint8Array;
/**
* Invocation stack height of an inner instruction.
* Available since Solana v1.14.6
* Set to `None` for txs executed on earlier versions.
*/
stackHeight?: number | undefined;
}
export interface CompiledInstruction {
programIdIndex: number;
accounts: Uint8Array;
data: Uint8Array;
}
export interface TokenBalance {
accountIndex: number;
mint: string;
uiTokenAmount: UiTokenAmount | undefined;
owner: string;
programId: string;
}
export interface UiTokenAmount {
uiAmount: number;
decimals: number;
amount: string;
uiAmountString: string;
}
export interface ReturnData {
programId: Uint8Array;
data: Uint8Array;
}
export interface Reward {
pubkey: string;
lamports: number;
postBalance: number;
rewardType: RewardType;
commission: string;
}
export interface Rewards {
rewards: Reward[];
}
export interface UnixTimestamp {
timestamp: number;
}
export interface BlockHeight {
blockHeight: number;
}
function createBaseConfirmedBlock(): ConfirmedBlock {
return {
previousBlockhash: "",
blockhash: "",
parentSlot: 0,
transactions: [],
rewards: [],
blockTime: undefined,
blockHeight: undefined,
};
}
export const ConfirmedBlock = {
encode(message: ConfirmedBlock, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.previousBlockhash !== "") {
writer.uint32(10).string(message.previousBlockhash);
}
if (message.blockhash !== "") {
writer.uint32(18).string(message.blockhash);
}
if (message.parentSlot !== 0) {
writer.uint32(24).uint64(message.parentSlot);
}
for (const v of message.transactions) {
ConfirmedTransaction.encode(v!, writer.uint32(34).fork()).ldelim();
}
for (const v of message.rewards) {
Reward.encode(v!, writer.uint32(42).fork()).ldelim();
}
if (message.blockTime !== undefined) {
UnixTimestamp.encode(message.blockTime, writer.uint32(50).fork()).ldelim();
}
if (message.blockHeight !== undefined) {
BlockHeight.encode(message.blockHeight, writer.uint32(58).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): ConfirmedBlock {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseConfirmedBlock();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.previousBlockhash = reader.string();
break;
case 2:
message.blockhash = reader.string();
break;
case 3:
message.parentSlot = longToNumber(reader.uint64() as Long);
break;
case 4:
message.transactions.push(ConfirmedTransaction.decode(reader, reader.uint32()));
break;
case 5:
message.rewards.push(Reward.decode(reader, reader.uint32()));
break;
case 6:
message.blockTime = UnixTimestamp.decode(reader, reader.uint32());
break;
case 7:
message.blockHeight = BlockHeight.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): ConfirmedBlock {
return {
previousBlockhash: isSet(object.previousBlockhash) ? String(object.previousBlockhash) : "",
blockhash: isSet(object.blockhash) ? String(object.blockhash) : "",
parentSlot: isSet(object.parentSlot) ? Number(object.parentSlot) : 0,
transactions: Array.isArray(object?.transactions)
? object.transactions.map((e: any) => ConfirmedTransaction.fromJSON(e))
: [],
rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => Reward.fromJSON(e)) : [],
blockTime: isSet(object.blockTime) ? UnixTimestamp.fromJSON(object.blockTime) : undefined,
blockHeight: isSet(object.blockHeight) ? BlockHeight.fromJSON(object.blockHeight) : undefined,
};
},
toJSON(message: ConfirmedBlock): unknown {
const obj: any = {};
message.previousBlockhash !== undefined && (obj.previousBlockhash = message.previousBlockhash);
message.blockhash !== undefined && (obj.blockhash = message.blockhash);
message.parentSlot !== undefined && (obj.parentSlot = Math.round(message.parentSlot));
if (message.transactions) {
obj.transactions = message.transactions.map((e) => e ? ConfirmedTransaction.toJSON(e) : undefined);
} else {
obj.transactions = [];
}
if (message.rewards) {
obj.rewards = message.rewards.map((e) => e ? Reward.toJSON(e) : undefined);
} else {
obj.rewards = [];
}
message.blockTime !== undefined &&
(obj.blockTime = message.blockTime ? UnixTimestamp.toJSON(message.blockTime) : undefined);
message.blockHeight !== undefined &&
(obj.blockHeight = message.blockHeight ? BlockHeight.toJSON(message.blockHeight) : undefined);
return obj;
},
create<I extends Exact<DeepPartial<ConfirmedBlock>, I>>(base?: I): ConfirmedBlock {
return ConfirmedBlock.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<ConfirmedBlock>, I>>(object: I): ConfirmedBlock {
const message = createBaseConfirmedBlock();
message.previousBlockhash = object.previousBlockhash ?? "";
message.blockhash = object.blockhash ?? "";
message.parentSlot = object.parentSlot ?? 0;
message.transactions = object.transactions?.map((e) => ConfirmedTransaction.fromPartial(e)) || [];
message.rewards = object.rewards?.map((e) => Reward.fromPartial(e)) || [];
message.blockTime = (object.blockTime !== undefined && object.blockTime !== null)
? UnixTimestamp.fromPartial(object.blockTime)
: undefined;
message.blockHeight = (object.blockHeight !== undefined && object.blockHeight !== null)
? BlockHeight.fromPartial(object.blockHeight)
: undefined;
return message;
},
};
function createBaseConfirmedTransaction(): ConfirmedTransaction {
return { transaction: undefined, meta: undefined };
}
export const ConfirmedTransaction = {
encode(message: ConfirmedTransaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.transaction !== undefined) {
Transaction.encode(message.transaction, writer.uint32(10).fork()).ldelim();
}
if (message.meta !== undefined) {
TransactionStatusMeta.encode(message.meta, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): ConfirmedTransaction {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseConfirmedTransaction();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.transaction = Transaction.decode(reader, reader.uint32());
break;
case 2:
message.meta = TransactionStatusMeta.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): ConfirmedTransaction {
return {
transaction: isSet(object.transaction) ? Transaction.fromJSON(object.transaction) : undefined,
meta: isSet(object.meta) ? TransactionStatusMeta.fromJSON(object.meta) : undefined,
};
},
toJSON(message: ConfirmedTransaction): unknown {
const obj: any = {};
message.transaction !== undefined &&
(obj.transaction = message.transaction ? Transaction.toJSON(message.transaction) : undefined);
message.meta !== undefined && (obj.meta = message.meta ? TransactionStatusMeta.toJSON(message.meta) : undefined);
return obj;
},
create<I extends Exact<DeepPartial<ConfirmedTransaction>, I>>(base?: I): ConfirmedTransaction {
return ConfirmedTransaction.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<ConfirmedTransaction>, I>>(object: I): ConfirmedTransaction {
const message = createBaseConfirmedTransaction();
message.transaction = (object.transaction !== undefined && object.transaction !== null)
? Transaction.fromPartial(object.transaction)
: undefined;
message.meta = (object.meta !== undefined && object.meta !== null)
? TransactionStatusMeta.fromPartial(object.meta)
: undefined;
return message;
},
};
function createBaseTransaction(): Transaction {
return { signatures: [], message: undefined };
}
export const Transaction = {
encode(message: Transaction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
for (const v of message.signatures) {
writer.uint32(10).bytes(v!);
}
if (message.message !== undefined) {
Message.encode(message.message, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Transaction {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTransaction();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.signatures.push(reader.bytes());
break;
case 2:
message.message = Message.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): Transaction {
return {
signatures: Array.isArray(object?.signatures) ? object.signatures.map((e: any) => bytesFromBase64(e)) : [],
message: isSet(object.message) ? Message.fromJSON(object.message) : undefined,
};
},
toJSON(message: Transaction): unknown {
const obj: any = {};
if (message.signatures) {
obj.signatures = message.signatures.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));
} else {
obj.signatures = [];
}
message.message !== undefined && (obj.message = message.message ? Message.toJSON(message.message) : undefined);
return obj;
},
create<I extends Exact<DeepPartial<Transaction>, I>>(base?: I): Transaction {
return Transaction.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<Transaction>, I>>(object: I): Transaction {
const message = createBaseTransaction();
message.signatures = object.signatures?.map((e) => e) || [];
message.message = (object.message !== undefined && object.message !== null)
? Message.fromPartial(object.message)
: undefined;
return message;
},
};
function createBaseMessage(): Message {
return {
header: undefined,
accountKeys: [],
recentBlockhash: new Uint8Array(),
instructions: [],
versioned: false,
addressTableLookups: [],
};
}
export const Message = {
encode(message: Message, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.header !== undefined) {
MessageHeader.encode(message.header, writer.uint32(10).fork()).ldelim();
}
for (const v of message.accountKeys) {
writer.uint32(18).bytes(v!);
}
if (message.recentBlockhash.length !== 0) {
writer.uint32(26).bytes(message.recentBlockhash);
}
for (const v of message.instructions) {
CompiledInstruction.encode(v!, writer.uint32(34).fork()).ldelim();
}
if (message.versioned === true) {
writer.uint32(40).bool(message.versioned);
}
for (const v of message.addressTableLookups) {
MessageAddressTableLookup.encode(v!, writer.uint32(50).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Message {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseMessage();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.header = MessageHeader.decode(reader, reader.uint32());
break;
case 2:
message.accountKeys.push(reader.bytes());
break;
case 3:
message.recentBlockhash = reader.bytes();
break;
case 4:
message.instructions.push(CompiledInstruction.decode(reader, reader.uint32()));
break;
case 5:
message.versioned = reader.bool();
break;
case 6:
message.addressTableLookups.push(MessageAddressTableLookup.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): Message {
return {
header: isSet(object.header) ? MessageHeader.fromJSON(object.header) : undefined,
accountKeys: Array.isArray(object?.accountKeys) ? object.accountKeys.map((e: any) => bytesFromBase64(e)) : [],
recentBlockhash: isSet(object.recentBlockhash) ? bytesFromBase64(object.recentBlockhash) : new Uint8Array(),
instructions: Array.isArray(object?.instructions)
? object.instructions.map((e: any) => CompiledInstruction.fromJSON(e))
: [],
versioned: isSet(object.versioned) ? Boolean(object.versioned) : false,
addressTableLookups: Array.isArray(object?.addressTableLookups)
? object.addressTableLookups.map((e: any) => MessageAddressTableLookup.fromJSON(e))
: [],
};
},
toJSON(message: Message): unknown {
const obj: any = {};
message.header !== undefined && (obj.header = message.header ? MessageHeader.toJSON(message.header) : undefined);
if (message.accountKeys) {
obj.accountKeys = message.accountKeys.map((e) => base64FromBytes(e !== undefined ? e : new Uint8Array()));
} else {
obj.accountKeys = [];
}
message.recentBlockhash !== undefined &&
(obj.recentBlockhash = base64FromBytes(
message.recentBlockhash !== undefined ? message.recentBlockhash : new Uint8Array(),
));
if (message.instructions) {
obj.instructions = message.instructions.map((e) => e ? CompiledInstruction.toJSON(e) : undefined);
} else {
obj.instructions = [];
}
message.versioned !== undefined && (obj.versioned = message.versioned);
if (message.addressTableLookups) {
obj.addressTableLookups = message.addressTableLookups.map((e) =>
e ? MessageAddressTableLookup.toJSON(e) : undefined
);
} else {
obj.addressTableLookups = [];
}
return obj;
},
create<I extends Exact<DeepPartial<Message>, I>>(base?: I): Message {
return Message.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<Message>, I>>(object: I): Message {
const message = createBaseMessage();
message.header = (object.header !== undefined && object.header !== null)
? MessageHeader.fromPartial(object.header)
: undefined;
message.accountKeys = object.accountKeys?.map((e) => e) || [];
message.recentBlockhash = object.recentBlockhash ?? new Uint8Array();
message.instructions = object.instructions?.map((e) => CompiledInstruction.fromPartial(e)) || [];
message.versioned = object.versioned ?? false;
message.addressTableLookups = object.addressTableLookups?.map((e) => MessageAddressTableLookup.fromPartial(e)) ||
[];
return message;
},
};
function createBaseMessageHeader(): MessageHeader {
return { numRequiredSignatures: 0, numReadonlySignedAccounts: 0, numReadonlyUnsignedAccounts: 0 };
}
export const MessageHeader = {
encode(message: MessageHeader, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.numRequiredSignatures !== 0) {
writer.uint32(8).uint32(message.numRequiredSignatures);
}
if (message.numReadonlySignedAccounts !== 0) {
writer.uint32(16).uint32(message.numReadonlySignedAccounts);
}
if (message.numReadonlyUnsignedAccounts !== 0) {
writer.uint32(24).uint32(message.numReadonlyUnsignedAccounts);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): MessageHeader {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseMessageHeader();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.numRequiredSignatures = reader.uint32();
break;
case 2:
message.numReadonlySignedAccounts = reader.uint32();
break;
case 3:
message.numReadonlyUnsignedAccounts = reader.uint32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): MessageHeader {
return {
numRequiredSignatures: isSet(object.numRequiredSignatures) ? Number(object.numRequiredSignatures) : 0,
numReadonlySignedAccounts: isSet(object.numReadonlySignedAccounts) ? Number(object.numReadonlySignedAccounts) : 0,
numReadonlyUnsignedAccounts: isSet(object.numReadonlyUnsignedAccounts)
? Number(object.numReadonlyUnsignedAccounts)
: 0,
};
},
toJSON(message: MessageHeader): unknown {
const obj: any = {};
message.numRequiredSignatures !== undefined &&
(obj.numRequiredSignatures = Math.round(message.numRequiredSignatures));
message.numReadonlySignedAccounts !== undefined &&
(obj.numReadonlySignedAccounts = Math.round(message.numReadonlySignedAccounts));
message.numReadonlyUnsignedAccounts !== undefined &&
(obj.numReadonlyUnsignedAccounts = Math.round(message.numReadonlyUnsignedAccounts));
return obj;
},
create<I extends Exact<DeepPartial<MessageHeader>, I>>(base?: I): MessageHeader {
return MessageHeader.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<MessageHeader>, I>>(object: I): MessageHeader {
const message = createBaseMessageHeader();
message.numRequiredSignatures = object.numRequiredSignatures ?? 0;
message.numReadonlySignedAccounts = object.numReadonlySignedAccounts ?? 0;
message.numReadonlyUnsignedAccounts = object.numReadonlyUnsignedAccounts ?? 0;
return message;
},
};
function createBaseMessageAddressTableLookup(): MessageAddressTableLookup {
return { accountKey: new Uint8Array(), writableIndexes: new Uint8Array(), readonlyIndexes: new Uint8Array() };
}
export const MessageAddressTableLookup = {
encode(message: MessageAddressTableLookup, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.accountKey.length !== 0) {
writer.uint32(10).bytes(message.accountKey);
}
if (message.writableIndexes.length !== 0) {
writer.uint32(18).bytes(message.writableIndexes);
}
if (message.readonlyIndexes.length !== 0) {
writer.uint32(26).bytes(message.readonlyIndexes);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): MessageAddressTableLookup {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseMessageAddressTableLookup();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.accountKey = reader.bytes();
break;
case 2:
message.writableIndexes = reader.bytes();
break;
case 3:
message.readonlyIndexes = reader.bytes();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): MessageAddressTableLookup {
return {
accountKey: isSet(object.accountKey) ? bytesFromBase64(object.accountKey) : new Uint8Array(),
writableIndexes: isSet(object.writableIndexes) ? bytesFromBase64(object.writableIndexes) : new Uint8Array(),
readonlyIndexes: isSet(object.readonlyIndexes) ? bytesFromBase64(object.readonlyIndexes) : new Uint8Array(),
};
},
toJSON(message: MessageAddressTableLookup): unknown {
const obj: any = {};
message.accountKey !== undefined &&
(obj.accountKey = base64FromBytes(message.accountKey !== undefined ? message.accountKey : new Uint8Array()));
message.writableIndexes !== undefined &&
(obj.writableIndexes = base64FromBytes(
message.writableIndexes !== undefined ? message.writableIndexes : new Uint8Array(),
));
message.readonlyIndexes !== undefined &&
(obj.readonlyIndexes = base64FromBytes(
message.readonlyIndexes !== undefined ? message.readonlyIndexes : new Uint8Array(),
));
return obj;
},
create<I extends Exact<DeepPartial<MessageAddressTableLookup>, I>>(base?: I): MessageAddressTableLookup {
return MessageAddressTableLookup.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<MessageAddressTableLookup>, I>>(object: I): MessageAddressTableLookup {
const message = createBaseMessageAddressTableLookup();
message.accountKey = object.accountKey ?? new Uint8Array();
message.writableIndexes = object.writableIndexes ?? new Uint8Array();
message.readonlyIndexes = object.readonlyIndexes ?? new Uint8Array();
return message;
},
};
function createBaseTransactionStatusMeta(): TransactionStatusMeta {
return {
err: undefined,
fee: 0,
preBalances: [],
postBalances: [],
innerInstructions: [],
innerInstructionsNone: false,
logMessages: [],
logMessagesNone: false,
preTokenBalances: [],
postTokenBalances: [],
rewards: [],
loadedWritableAddresses: [],
loadedReadonlyAddresses: [],
returnData: undefined,
returnDataNone: false,
computeUnitsConsumed: undefined,
};
}
export const TransactionStatusMeta = {
encode(message: TransactionStatusMeta, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.err !== undefined) {
TransactionError.encode(message.err, writer.uint32(10).fork()).ldelim();
}
if (message.fee !== 0) {
writer.uint32(16).uint64(message.fee);
}
writer.uint32(26).fork();
for (const v of message.preBalances) {
writer.uint64(v);
}
writer.ldelim();
writer.uint32(34).fork();
for (const v of message.postBalances) {
writer.uint64(v);
}
writer.ldelim();
for (const v of message.innerInstructions) {
InnerInstructions.encode(v!, writer.uint32(42).fork()).ldelim();
}
if (message.innerInstructionsNone === true) {
writer.uint32(80).bool(message.innerInstructionsNone);
}
for (const v of message.logMessages) {
writer.uint32(50).string(v!);
}
if (message.logMessagesNone === true) {
writer.uint32(88).bool(message.logMessagesNone);
}
for (const v of message.preTokenBalances) {
TokenBalance.encode(v!, writer.uint32(58).fork()).ldelim();
}
for (const v of message.postTokenBalances) {
TokenBalance.encode(v!, writer.uint32(66).fork()).ldelim();
}
for (const v of message.rewards) {
Reward.encode(v!, writer.uint32(74).fork()).ldelim();
}
for (const v of message.loadedWritableAddresses) {
writer.uint32(98).bytes(v!);
}
for (const v of message.loadedReadonlyAddresses) {
writer.uint32(106).bytes(v!);
}
if (message.returnData !== undefined) {
ReturnData.encode(message.returnData, writer.uint32(114).fork()).ldelim();
}
if (message.returnDataNone === true) {
writer.uint32(120).bool(message.returnDataNone);
}
if (message.computeUnitsConsumed !== undefined) {
writer.uint32(128).uint64(message.computeUnitsConsumed);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TransactionStatusMeta {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTransactionStatusMeta();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.err = TransactionError.decode(reader, reader.uint32());
break;
case 2:
message.fee = longToNumber(reader.uint64() as Long);
break;
case 3:
if ((tag & 7) === 2) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.preBalances.push(longToNumber(reader.uint64() as Long));
}
} else {
message.preBalances.push(longToNumber(reader.uint64() as Long));
}
break;
case 4:
if ((tag & 7) === 2) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.postBalances.push(longToNumber(reader.uint64() as Long));
}
} else {
message.postBalances.push(longToNumber(reader.uint64() as Long));
}
break;
case 5:
message.innerInstructions.push(InnerInstructions.decode(reader, reader.uint32()));
break;
case 10:
message.innerInstructionsNone = reader.bool();
break;
case 6:
message.logMessages.push(reader.string());
break;
case 11:
message.logMessagesNone = reader.bool();
break;
case 7:
message.preTokenBalances.push(TokenBalance.decode(reader, reader.uint32()));
break;
case 8:
message.postTokenBalances.push(TokenBalance.decode(reader, reader.uint32()));
break;
case 9:
message.rewards.push(Reward.decode(reader, reader.uint32()));
break;
case 12:
message.loadedWritableAddresses.push(reader.bytes());
break;
case 13:
message.loadedReadonlyAddresses.push(reader.bytes());
break;
case 14:
message.returnData = ReturnData.decode(reader, reader.uint32());
break;
case 15:
message.returnDataNone = reader.bool();
break;
case 16:
message.computeUnitsConsumed = longToNumber(reader.uint64() as Long);
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TransactionStatusMeta {
return {
err: isSet(object.err) ? TransactionError.fromJSON(object.err) : undefined,
fee: isSet(object.fee) ? Number(object.fee) : 0,
preBalances: Array.isArray(object?.preBalances) ? object.preBalances.map((e: any) => Number(e)) : [],
postBalances: Array.isArray(object?.postBalances) ? object.postBalances.map((e: any) => Number(e)) : [],
innerInstructions: Array.isArray(object?.innerInstructions)
? object.innerInstructions.map((e: any) => InnerInstructions.fromJSON(e))
: [],
innerInstructionsNone: isSet(object.innerInstructionsNone) ? Boolean(object.innerInstructionsNone) : false,
logMessages: Array.isArray(object?.logMessages) ? object.logMessages.map((e: any) => String(e)) : [],
logMessagesNone: isSet(object.logMessagesNone) ? Boolean(object.logMessagesNone) : false,
preTokenBalances: Array.isArray(object?.preTokenBalances)
? object.preTokenBalances.map((e: any) => TokenBalance.fromJSON(e))
: [],
postTokenBalances: Array.isArray(object?.postTokenBalances)
? object.postTokenBalances.map((e: any) => TokenBalance.fromJSON(e))
: [],
rewards: Array.isArray(object?.rewards) ? object.rewards.map((e: any) => Reward.fromJSON(e)) : [],
loadedWritableAddresses: Array.isArray(object?.loadedWritableAddresses)
? object.loadedWritableAddresses.map((e: any) => bytesFromBase64(e))
: [],
loadedReadonlyAddresses: Array.isArray(object?.loadedReadonlyAddresses)
? object.loadedReadonlyAddresses.map((e: any) => bytesFromBase64(e))
: [],
returnData: isSet(object.returnData) ? ReturnData.fromJSON(object.returnData) : undefined,
returnDataNone: isSet(object.returnDataNone) ? Boolean(object.returnDataNone) : false,
computeUnitsConsumed: isSet(object.computeUnitsConsumed) ? Number(object.computeUnitsConsumed) : undefined,
};
},
toJSON(message: TransactionStatusMeta): unknown {
const obj: any = {};
message.err !== undefined && (obj.err = message.err ? TransactionError.toJSON(message.err) : undefined);
message.fee !== undefined && (obj.fee = Math.round(message.fee));
if (message.preBalances) {
obj.preBalances = message.preBalances.map((e) => Math.round(e));
} else {
obj.preBalances = [];
}
if (message.postBalances) {
obj.postBalances = message.postBalances.map((e) => Math.round(e));
} else {
obj.postBalances = [];
}
if (message.innerInstructions) {
obj.innerInstructions = message.innerInstructions.map((e) => e ? InnerInstructions.toJSON(e) : undefined);
} else {
obj.innerInstructions = [];
}
message.innerInstructionsNone !== undefined && (obj.innerInstructionsNone = message.innerInstructionsNone);
if (message.logMessages) {
obj.logMessages = message.logMessages.map((e) => e);
} else {
obj.logMessages = [];
}
message.logMessagesNone !== undefined && (obj.logMessagesNone = message.logMessagesNone);
if (message.preTokenBalances) {
obj.preTokenBalances = message.preTokenBalances.map((e) => e ? TokenBalance.toJSON(e) : undefined);
} else {
obj.preTokenBalances = [];
}
if (message.postTokenBalances) {
obj.postTokenBalances = message.postTokenBalances.map((e) => e ? TokenBalance.toJSON(e) : undefined);
} else {
obj.postTokenBalances = [];
}
if (message.rewards) {
obj.rewards = message.rewards.map((e) => e ? Reward.toJSON(e) : undefined);
} else {
obj.rewards = [];
}
if (message.loadedWritableAddresses) {
obj.loadedWritableAddresses = message.loadedWritableAddresses.map((e) =>
base64FromBytes(e !== undefined ? e : new Uint8Array())
);
} else {
obj.loadedWritableAddresses = [];
}
if (message.loadedReadonlyAddresses) {
obj.loadedReadonlyAddresses = message.loadedReadonlyAddresses.map((e) =>
base64FromBytes(e !== undefined ? e : new Uint8Array())
);
} else {
obj.loadedReadonlyAddresses = [];
}
message.returnData !== undefined &&
(obj.returnData = message.returnData ? ReturnData.toJSON(message.returnData) : undefined);
message.returnDataNone !== undefined && (obj.returnDataNone = message.returnDataNone);
message.computeUnitsConsumed !== undefined && (obj.computeUnitsConsumed = Math.round(message.computeUnitsConsumed));
return obj;
},
create<I extends Exact<DeepPartial<TransactionStatusMeta>, I>>(base?: I): TransactionStatusMeta {
return TransactionStatusMeta.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<TransactionStatusMeta>, I>>(object: I): TransactionStatusMeta {
const message = createBaseTransactionStatusMeta();
message.err = (object.err !== undefined && object.err !== null)
? TransactionError.fromPartial(object.err)
: undefined;
message.fee = object.fee ?? 0;
message.preBalances = object.preBalances?.map((e) => e) || [];
message.postBalances = object.postBalances?.map((e) => e) || [];
message.innerInstructions = object.innerInstructions?.map((e) => InnerInstructions.fromPartial(e)) || [];
message.innerInstructionsNone = object.innerInstructionsNone ?? false;
message.logMessages = object.logMessages?.map((e) => e) || [];
message.logMessagesNone = object.logMessagesNone ?? false;
message.preTokenBalances = object.preTokenBalances?.map((e) => TokenBalance.fromPartial(e)) || [];
message.postTokenBalances = object.postTokenBalances?.map((e) => TokenBalance.fromPartial(e)) || [];
message.rewards = object.rewards?.map((e) => Reward.fromPartial(e)) || [];
message.loadedWritableAddresses = object.loadedWritableAddresses?.map((e) => e) || [];
message.loadedReadonlyAddresses = object.loadedReadonlyAddresses?.map((e) => e) || [];
message.returnData = (object.returnData !== undefined && object.returnData !== null)
? ReturnData.fromPartial(object.returnData)
: undefined;
message.returnDataNone = object.returnDataNone ?? false;
message.computeUnitsConsumed = object.computeUnitsConsumed ?? undefined;
return message;
},
};
function createBaseTransactionError(): TransactionError {
return { err: new Uint8Array() };
}
export const TransactionError = {
encode(message: TransactionError, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.err.length !== 0) {
writer.uint32(10).bytes(message.err);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TransactionError {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTransactionError();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.err = reader.bytes();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TransactionError {
return { err: isSet(object.err) ? bytesFromBase64(object.err) : new Uint8Array() };
},
toJSON(message: TransactionError): unknown {
const obj: any = {};
message.err !== undefined &&
(obj.err = base64FromBytes(message.err !== undefined ? message.err : new Uint8Array()));
return obj;
},
create<I extends Exact<DeepPartial<TransactionError>, I>>(base?: I): TransactionError {
return TransactionError.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<TransactionError>, I>>(object: I): TransactionError {
const message = createBaseTransactionError();
message.err = object.err ?? new Uint8Array();
return message;
},
};
function createBaseInnerInstructions(): InnerInstructions {
return { index: 0, instructions: [] };
}
export const InnerInstructions = {
encode(message: InnerInstructions, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.index !== 0) {
writer.uint32(8).uint32(message.index);
}
for (const v of message.instructions) {
InnerInstruction.encode(v!, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): InnerInstructions {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInnerInstructions();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.index = reader.uint32();
break;
case 2:
message.instructions.push(InnerInstruction.decode(reader, reader.uint32()));
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): InnerInstructions {
return {
index: isSet(object.index) ? Number(object.index) : 0,
instructions: Array.isArray(object?.instructions)
? object.instructions.map((e: any) => InnerInstruction.fromJSON(e))
: [],
};
},
toJSON(message: InnerInstructions): unknown {
const obj: any = {};
message.index !== undefined && (obj.index = Math.round(message.index));
if (message.instructions) {
obj.instructions = message.instructions.map((e) => e ? InnerInstruction.toJSON(e) : undefined);
} else {
obj.instructions = [];
}
return obj;
},
create<I extends Exact<DeepPartial<InnerInstructions>, I>>(base?: I): InnerInstructions {
return InnerInstructions.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<InnerInstructions>, I>>(object: I): InnerInstructions {
const message = createBaseInnerInstructions();
message.index = object.index ?? 0;
message.instructions = object.instructions?.map((e) => InnerInstruction.fromPartial(e)) || [];
return message;
},
};
function createBaseInnerInstruction(): InnerInstruction {
return { programIdIndex: 0, accounts: new Uint8Array(), data: new Uint8Array(), stackHeight: undefined };
}
export const InnerInstruction = {
encode(message: InnerInstruction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.programIdIndex !== 0) {
writer.uint32(8).uint32(message.programIdIndex);
}
if (message.accounts.length !== 0) {
writer.uint32(18).bytes(message.accounts);
}
if (message.data.length !== 0) {
writer.uint32(26).bytes(message.data);
}
if (message.stackHeight !== undefined) {
writer.uint32(32).uint32(message.stackHeight);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): InnerInstruction {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInnerInstruction();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.programIdIndex = reader.uint32();
break;
case 2:
message.accounts = reader.bytes();
break;
case 3:
message.data = reader.bytes();
break;
case 4:
message.stackHeight = reader.uint32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): InnerInstruction {
return {
programIdIndex: isSet(object.programIdIndex) ? Number(object.programIdIndex) : 0,
accounts: isSet(object.accounts) ? bytesFromBase64(object.accounts) : new Uint8Array(),
data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
stackHeight: isSet(object.stackHeight) ? Number(object.stackHeight) : undefined,
};
},
toJSON(message: InnerInstruction): unknown {
const obj: any = {};
message.programIdIndex !== undefined && (obj.programIdIndex = Math.round(message.programIdIndex));
message.accounts !== undefined &&
(obj.accounts = base64FromBytes(message.accounts !== undefined ? message.accounts : new Uint8Array()));
message.data !== undefined &&
(obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
message.stackHeight !== undefined && (obj.stackHeight = Math.round(message.stackHeight));
return obj;
},
create<I extends Exact<DeepPartial<InnerInstruction>, I>>(base?: I): InnerInstruction {
return InnerInstruction.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<InnerInstruction>, I>>(object: I): InnerInstruction {
const message = createBaseInnerInstruction();
message.programIdIndex = object.programIdIndex ?? 0;
message.accounts = object.accounts ?? new Uint8Array();
message.data = object.data ?? new Uint8Array();
message.stackHeight = object.stackHeight ?? undefined;
return message;
},
};
function createBaseCompiledInstruction(): CompiledInstruction {
return { programIdIndex: 0, accounts: new Uint8Array(), data: new Uint8Array() };
}
export const CompiledInstruction = {
encode(message: CompiledInstruction, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.programIdIndex !== 0) {
writer.uint32(8).uint32(message.programIdIndex);
}
if (message.accounts.length !== 0) {
writer.uint32(18).bytes(message.accounts);
}
if (message.data.length !== 0) {
writer.uint32(26).bytes(message.data);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): CompiledInstruction {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCompiledInstruction();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.programIdIndex = reader.uint32();
break;
case 2:
message.accounts = reader.bytes();
break;
case 3:
message.data = reader.bytes();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): CompiledInstruction {
return {
programIdIndex: isSet(object.programIdIndex) ? Number(object.programIdIndex) : 0,
accounts: isSet(object.accounts) ? bytesFromBase64(object.accounts) : new Uint8Array(),
data: isSet(object.data) ? bytesFromBase64(object.data) : new Uint8Array(),
};
},
toJSON(message: CompiledInstruction): unknown {
const obj: any = {};
message.programIdIndex !== undefined && (obj.programIdIndex = Math.round(message.programIdIndex));
message.accounts !== undefined &&
(obj.accounts = base64FromBytes(message.accounts !== undefined ? message.accounts : new Uint8Array()));
message.data !== undefined &&
(obj.data = base64FromBytes(message.data !== undefined ? message.data : new Uint8Array()));
return obj;
},
create<I extends Exact<DeepPartial<CompiledInstruction>, I>>(base?: I): CompiledInstruction {
return CompiledInstruction.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<CompiledInstruction>, I>>(object: I): CompiledInstruction {
const message = createBaseCompiledInstruction();
message.programIdIndex = object.programIdIndex ?? 0;
message.accounts = object.accounts ?? new Uint8Array();
message.data = object.data ?? new Uint8Array();
return message;
},
};
function createBaseTokenBalance(): TokenBalance {
return { accountIndex: 0, mint: "", uiTokenAmount: undefined, owner: "", programId: "" };
}
export const TokenBalance = {
encode(message: TokenBalance, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.accountIndex !== 0) {
writer.uint32(8).uint32(message.accountIndex);
}
if (message.mint !== "") {
writer.uint32(18).string(message.mint);
}
if (message.uiTokenAmount !== undefined) {
UiTokenAmount.encode(message.uiTokenAmount, writer.uint32(26).fork()).ldelim();
}
if (message.owner !== "") {
writer.uint32(34).string(message.owner);
}
if (message.programId !== "") {
writer.uint32(42).string(message.programId);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): TokenBalance {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTokenBalance();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.accountIndex = reader.uint32();
break;
case 2:
message.mint = reader.string();
break;
case 3:
message.uiTokenAmount = UiTokenAmount.decode(reader, reader.uint32());
break;
case 4:
message.owner = reader.string();
break;
case 5:
message.programId = reader.string();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromJSON(object: any): TokenBalance {
return {
accountIndex: isSet(object.accountIndex) ? Number(object.accountIndex) : 0,
mint: isSet(object.mint) ? String(object.mint) : "",
uiTokenAmount: isSet(object.uiTokenAmount) ? UiTokenAmount.fromJSON(object.uiTokenAmount) : undefined,
owner: isSet(object.owner) ? String(object.owner) : "",
programId: isSet(object.programId) ? String(object.programId) : "",
};
},
toJSON(message: TokenBalance): unknown {
const obj: any = {};
message.accountIndex !== undefined && (obj.accountIndex = Math.round(message.accountIndex));
message.mint !== undefined && (obj.mint = message.mint);
message.uiTokenAmount !== undefined &&
(obj.uiTokenAmount = message.uiTokenAmount ? UiTokenAmount.toJSON(message.uiTokenAmount) : undefined);
message.owner !== undefined && (obj.owner = message.owner);
message.programId !== undefined && (obj.programId = message.programId);
return obj;
},
create<I extends Exact<DeepPartial<TokenBalance>, I>>(base?: I): TokenBalance {
return TokenBalance.fromPartial(base ?? {});
},
fromPartial<I extends Exact<DeepPartial<TokenBalance>, I>>(object: I): TokenBalance {
const message = createBaseTokenBalance();
message.accountIndex = object.accountIndex ?? 0;
message.mint = object.mint ?? "";
message.uiTokenAmount = (object.uiTokenAmount !== undefined && object.uiTokenAmount !== null)
? UiTokenAmount.fromPartial(object.uiTokenAmount)
: undefined;
message.owner = object.owner ?? "";
message.programId = object.programId ?? "";
return message;
},
};
function createBaseUiTokenAmount(): UiTokenAmount {
return { uiAmount: 0, decimals: 0, amount: "", uiAmountString: "" };
}
export const UiTokenAmount = {
encode(message: UiTokenAmount, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer {
if (message.uiAmount !== 0) {
writer.uint32(9).double(message.uiAmount);
}
if (message.decimals !== 0) {
writer.uint32(16).uint32(message.decimals);
}
if (message.amount !== "") {
writer.uint32(26).string(message.amount);
}
if (message.uiAmountString !== "") {
writer.uint32(34).string(message.uiAmountString);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): UiTokenAmount {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseUiTokenAmount();
while (reader.pos < end) {
const