@wuwei-labs/srsly
Version:
TypeScript SDK for SRSLY
93 lines • 4.46 kB
JavaScript
/**
* This code was AUTOGENERATED using the Codama library.
* Please DO NOT EDIT THIS FILE, instead use visitors
* to add features, then rerun Codama to update it.
*
* @see https://github.com/codama-idl/codama
*/
import { assertAccountExists, assertAccountsExist, combineCodec, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, fixDecoderSize, fixEncoderSize, getAddressDecoder, getAddressEncoder, getBytesDecoder, getBytesEncoder, getI64Decoder, getI64Encoder, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, getU16Decoder, getU16Encoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, } from '@solana/kit';
import { getRentalStatusDecoder, getRentalStatusEncoder, } from '../types';
export const RENTAL_STATE_DISCRIMINATOR = new Uint8Array([97, 162, 29, 222, 251, 251, 180, 244]);
export function getRentalStateDiscriminatorBytes() {
return fixEncoderSize(getBytesEncoder(), 8).encode(RENTAL_STATE_DISCRIMINATOR);
}
/** Gets the encoder for {@link RentalStateArgs} account data. */
export function getRentalStateEncoder() {
return transformEncoder(getStructEncoder([
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
['version', getU32Encoder()],
['bump', getU8Encoder()],
['borrower', getAddressEncoder()],
['borrowerState', getAddressEncoder()],
['borrowerProfile', getAddressEncoder()],
['contract', getAddressEncoder()],
['rate', getU64Encoder()],
['lastPayment', getI64Encoder()],
['escrow', getU64Encoder()],
['startTime', getI64Encoder()],
['endTime', getI64Encoder()],
['serviceFee', getU64Encoder()],
['feeBps', getU16Encoder()],
['referrer', getOptionEncoder(getAddressEncoder())],
['discountBps', getU16Encoder()],
['bidPoints', getU64Encoder()],
['bidAtlas', getU64Encoder()],
['cancelDelayMin', getI64Encoder()],
['status', getRentalStatusEncoder()],
['updatedAt', getI64Encoder()],
['createdAt', getI64Encoder()],
]), value => ({ ...value, discriminator: RENTAL_STATE_DISCRIMINATOR }));
}
/** Gets the decoder for {@link RentalState} account data. */
export function getRentalStateDecoder() {
return getStructDecoder([
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
['version', getU32Decoder()],
['bump', getU8Decoder()],
['borrower', getAddressDecoder()],
['borrowerState', getAddressDecoder()],
['borrowerProfile', getAddressDecoder()],
['contract', getAddressDecoder()],
['rate', getU64Decoder()],
['lastPayment', getI64Decoder()],
['escrow', getU64Decoder()],
['startTime', getI64Decoder()],
['endTime', getI64Decoder()],
['serviceFee', getU64Decoder()],
['feeBps', getU16Decoder()],
['referrer', getOptionDecoder(getAddressDecoder())],
['discountBps', getU16Decoder()],
['bidPoints', getU64Decoder()],
['bidAtlas', getU64Decoder()],
['cancelDelayMin', getI64Decoder()],
['status', getRentalStatusDecoder()],
['updatedAt', getI64Decoder()],
['createdAt', getI64Decoder()],
]);
}
/** Gets the codec for {@link RentalState} account data. */
export function getRentalStateCodec() {
return combineCodec(getRentalStateEncoder(), getRentalStateDecoder());
}
export function decodeRentalState(encodedAccount) {
return decodeAccount(encodedAccount, getRentalStateDecoder());
}
export async function fetchRentalState(rpc, address, config) {
const maybeAccount = await fetchMaybeRentalState(rpc, address, config);
assertAccountExists(maybeAccount);
return maybeAccount;
}
export async function fetchMaybeRentalState(rpc, address, config) {
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
return decodeRentalState(maybeAccount);
}
export async function fetchAllRentalState(rpc, addresses, config) {
const maybeAccounts = await fetchAllMaybeRentalState(rpc, addresses, config);
assertAccountsExist(maybeAccounts);
return maybeAccounts;
}
export async function fetchAllMaybeRentalState(rpc, addresses, config) {
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
return maybeAccounts.map(maybeAccount => decodeRentalState(maybeAccount));
}
//# sourceMappingURL=rentalState.js.map