123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- /**
- * 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 web3 from '@solana/web3.js'
- import * as beet from '@metaplex-foundation/beet'
- import * as beetSolana from '@metaplex-foundation/beet-solana'
- import {
- RentalOrderStatus,
- rentalOrderStatusBeet,
- } from '../types/RentalOrderStatus'
- /**
- * Arguments used to create {@link RentalOrder}
- * @category Accounts
- * @category generated
- */
- export type RentalOrderArgs = {
- car: web3.PublicKey
- name: string
- pickUpDate: string
- returnDate: string
- price: beet.bignum
- status: RentalOrderStatus
- }
- /**
- * Holds the data for the {@link RentalOrder} Account and provides de/serialization
- * functionality for that data
- *
- * @category Accounts
- * @category generated
- */
- export class RentalOrder implements RentalOrderArgs {
- private constructor(
- readonly car: web3.PublicKey,
- readonly name: string,
- readonly pickUpDate: string,
- readonly returnDate: string,
- readonly price: beet.bignum,
- readonly status: RentalOrderStatus
- ) {}
- /**
- * Creates a {@link RentalOrder} instance from the provided args.
- */
- static fromArgs(args: RentalOrderArgs) {
- return new RentalOrder(
- args.car,
- args.name,
- args.pickUpDate,
- args.returnDate,
- args.price,
- args.status
- )
- }
- /**
- * Deserializes the {@link RentalOrder} 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
- ): [RentalOrder, number] {
- return RentalOrder.deserialize(accountInfo.data, offset)
- }
- /**
- * Retrieves the account info from the provided address and deserializes
- * the {@link RentalOrder} 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,
- commitmentOrConfig?: web3.Commitment | web3.GetAccountInfoConfig
- ): Promise<RentalOrder> {
- const accountInfo = await connection.getAccountInfo(
- address,
- commitmentOrConfig
- )
- if (accountInfo == null) {
- throw new Error(`Unable to find RentalOrder account at ${address}`)
- }
- return RentalOrder.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(
- '8avNGHVXDwsELJaWMSoUZ44CirQd4zyU9Ez4ZmP4jNjZ'
- )
- ) {
- return beetSolana.GpaBuilder.fromStruct(programId, rentalOrderBeet)
- }
- /**
- * Deserializes the {@link RentalOrder} 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): [RentalOrder, number] {
- return rentalOrderBeet.deserialize(buf, offset)
- }
- /**
- * Serializes the {@link RentalOrder} 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 rentalOrderBeet.serialize(this)
- }
- /**
- * Returns the byteSize of a {@link Buffer} holding the serialized data of
- * {@link RentalOrder} for the provided args.
- *
- * @param args need to be provided since the byte size for this account
- * depends on them
- */
- static byteSize(args: RentalOrderArgs) {
- const instance = RentalOrder.fromArgs(args)
- return rentalOrderBeet.toFixedFromValue(instance).byteSize
- }
- /**
- * Fetches the minimum balance needed to exempt an account holding
- * {@link RentalOrder} data from rent
- *
- * @param args need to be provided since the byte size for this account
- * depends on them
- * @param connection used to retrieve the rent exemption information
- */
- static async getMinimumBalanceForRentExemption(
- args: RentalOrderArgs,
- connection: web3.Connection,
- commitment?: web3.Commitment
- ): Promise<number> {
- return connection.getMinimumBalanceForRentExemption(
- RentalOrder.byteSize(args),
- commitment
- )
- }
- /**
- * Returns a readable version of {@link RentalOrder} properties
- * and can be used to convert to JSON and/or logging
- */
- pretty() {
- return {
- car: this.car.toBase58(),
- name: this.name,
- pickUpDate: this.pickUpDate,
- returnDate: this.returnDate,
- price: (() => {
- const x = <{ toNumber: () => number }>this.price
- if (typeof x.toNumber === 'function') {
- try {
- return x.toNumber()
- } catch (_) {
- return x
- }
- }
- return x
- })(),
- status: 'RentalOrderStatus.' + RentalOrderStatus[this.status],
- }
- }
- }
- /**
- * @category Accounts
- * @category generated
- */
- export const rentalOrderBeet = new beet.FixableBeetStruct<
- RentalOrder,
- RentalOrderArgs
- >(
- [
- ['car', beetSolana.publicKey],
- ['name', beet.utf8String],
- ['pickUpDate', beet.utf8String],
- ['returnDate', beet.utf8String],
- ['price', beet.u64],
- ['status', rentalOrderStatusBeet],
- ],
- RentalOrder.fromArgs,
- 'RentalOrder'
- )
|