123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- * This code was GENERATED using the solita package.
- * Please DO NOT EDIT THIS FILE, instead rerun solita to update it or write a wrapper to add functionality.
- *
- * See: https://github.com/metaplex-foundation/solita
- */
- import * as beet from '@metaplex-foundation/beet';
- import * as beetSolana from '@metaplex-foundation/beet-solana';
- import * as web3 from '@solana/web3.js';
- /**
- * Arguments used to create {@link Counter}
- * @category Accounts
- * @category generated
- */
- export type CounterArgs = {
- count: beet.bignum;
- };
- /**
- * Holds the data for the {@link Counter} Account and provides de/serialization
- * functionality for that data
- *
- * @category Accounts
- * @category generated
- */
- export class Counter implements CounterArgs {
- private constructor(readonly count: beet.bignum) {}
- /**
- * Creates a {@link Counter} instance from the provided args.
- */
- static fromArgs(args: CounterArgs) {
- return new Counter(args.count);
- }
- /**
- * Deserializes the {@link Counter} from the data of the provided {@link web3.AccountInfo}.
- * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it.
- */
- static fromAccountInfo(accountInfo: web3.AccountInfo<Buffer>, offset = 0): [Counter, number] {
- return Counter.deserialize(accountInfo.data, offset);
- }
- /**
- * Retrieves the account info from the provided address and deserializes
- * the {@link Counter} from its data.
- *
- * @throws Error if no account info is found at the address or if deserialization fails
- */
- static async fromAccountAddress(connection: web3.Connection, address: web3.PublicKey): Promise<Counter> {
- const accountInfo = await connection.getAccountInfo(address, {
- commitment: 'confirmed',
- });
- if (accountInfo == null) {
- throw new Error(`Unable to find Counter account at ${address}`);
- }
- return Counter.fromAccountInfo(accountInfo, 0)[0];
- }
- /**
- * Provides a {@link web3.Connection.getProgramAccounts} config builder,
- * to fetch accounts matching filters that can be specified via that builder.
- *
- * @param programId - the program that owns the accounts we are filtering
- */
- static gpaBuilder(programId: web3.PublicKey = new web3.PublicKey('Fg6PaFpoGXkYsidMpWTK6W2BeZ7FEfcYkg476zPFsLnS')) {
- return beetSolana.GpaBuilder.fromStruct(programId, counterBeet);
- }
- /**
- * Deserializes the {@link Counter} from the provided data Buffer.
- * @returns a tuple of the account data and the offset up to which the buffer was read to obtain it.
- */
- static deserialize(buf: Buffer, offset = 0): [Counter, number] {
- return counterBeet.deserialize(buf, offset);
- }
- /**
- * Serializes the {@link Counter} into a Buffer.
- * @returns a tuple of the created Buffer and the offset up to which the buffer was written to store it.
- */
- serialize(): [Buffer, number] {
- return counterBeet.serialize(this);
- }
- /**
- * Returns the byteSize of a {@link Buffer} holding the serialized data of
- * {@link Counter}
- */
- static get byteSize() {
- return counterBeet.byteSize;
- }
- /**
- * Fetches the minimum balance needed to exempt an account holding
- * {@link Counter} data from rent
- *
- * @param connection used to retrieve the rent exemption information
- */
- static async getMinimumBalanceForRentExemption(connection: web3.Connection, commitment?: web3.Commitment): Promise<number> {
- return connection.getMinimumBalanceForRentExemption(Counter.byteSize, commitment);
- }
- /**
- * Determines if the provided {@link Buffer} has the correct byte size to
- * hold {@link Counter} data.
- */
- static hasCorrectByteSize(buf: Buffer, offset = 0) {
- return buf.byteLength - offset === Counter.byteSize;
- }
- /**
- * Returns a readable version of {@link Counter} properties
- * and can be used to convert to JSON and/or logging
- */
- pretty() {
- return {
- count: (() => {
- const x = <{ toNumber: () => number }>this.count;
- if (typeof x.toNumber === 'function') {
- try {
- return x.toNumber();
- } catch (_) {
- return x;
- }
- }
- return x;
- })(),
- };
- }
- }
- /**
- * @category Accounts
- * @category generated
- */
- export const counterBeet = new beet.BeetStruct<Counter, CounterArgs>([['count', beet.u64]], Counter.fromArgs, 'Counter');
|