@wuwei-labs/srsly
Version:
TypeScript SDK for SRSLY
103 lines • 5.04 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, getBooleanDecoder, getBooleanEncoder, getBytesDecoder, getBytesEncoder, getI64Decoder, getI64Encoder, getOptionDecoder, getOptionEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder, } from '@solana/kit';
import { getTriggerDecoder, getTriggerEncoder } from '../types';
export const CONTRACT_STATE_DISCRIMINATOR = new Uint8Array([190, 138, 10, 223, 189, 116, 222, 115]);
export function getContractStateDiscriminatorBytes() {
return fixEncoderSize(getBytesEncoder(), 8).encode(CONTRACT_STATE_DISCRIMINATOR);
}
/** Gets the encoder for {@link ContractStateArgs} account data. */
export function getContractStateEncoder() {
return transformEncoder(getStructEncoder([
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
['version', getU32Encoder()],
['bump', getU8Encoder()],
['toClose', getBooleanEncoder()],
['rate', getU64Encoder()],
['durationMinSeconds', getI64Encoder()],
['durationMaxSeconds', getI64Encoder()],
['cancelDelayMin', getI64Encoder()],
['weight', getU8Encoder()],
['reservationsDisabled', getBooleanEncoder()],
['owner', getAddressEncoder()],
['fleet', getAddressEncoder()],
['gameId', getAddressEncoder()],
['ownerProfile', getAddressEncoder()],
['activeRental', getAddressEncoder()],
['queuedRental', getAddressEncoder()],
['delegate', getOptionEncoder(getAddressEncoder())],
['thread', getAddressEncoder()],
['trigger', getTriggerEncoder()],
['managedTokenAccount', getAddressEncoder()],
['totalEarned', getU64Encoder()],
['ownerClaimable', getU64Encoder()],
['feeClaimable', getU64Encoder()],
['contestedThreshold', getU8Encoder()],
['contestedCount', getU8Encoder()],
['createdAt', getI64Encoder()],
['updatedAt', getI64Encoder()],
]), value => ({ ...value, discriminator: CONTRACT_STATE_DISCRIMINATOR }));
}
/** Gets the decoder for {@link ContractState} account data. */
export function getContractStateDecoder() {
return getStructDecoder([
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
['version', getU32Decoder()],
['bump', getU8Decoder()],
['toClose', getBooleanDecoder()],
['rate', getU64Decoder()],
['durationMinSeconds', getI64Decoder()],
['durationMaxSeconds', getI64Decoder()],
['cancelDelayMin', getI64Decoder()],
['weight', getU8Decoder()],
['reservationsDisabled', getBooleanDecoder()],
['owner', getAddressDecoder()],
['fleet', getAddressDecoder()],
['gameId', getAddressDecoder()],
['ownerProfile', getAddressDecoder()],
['activeRental', getAddressDecoder()],
['queuedRental', getAddressDecoder()],
['delegate', getOptionDecoder(getAddressDecoder())],
['thread', getAddressDecoder()],
['trigger', getTriggerDecoder()],
['managedTokenAccount', getAddressDecoder()],
['totalEarned', getU64Decoder()],
['ownerClaimable', getU64Decoder()],
['feeClaimable', getU64Decoder()],
['contestedThreshold', getU8Decoder()],
['contestedCount', getU8Decoder()],
['createdAt', getI64Decoder()],
['updatedAt', getI64Decoder()],
]);
}
/** Gets the codec for {@link ContractState} account data. */
export function getContractStateCodec() {
return combineCodec(getContractStateEncoder(), getContractStateDecoder());
}
export function decodeContractState(encodedAccount) {
return decodeAccount(encodedAccount, getContractStateDecoder());
}
export async function fetchContractState(rpc, address, config) {
const maybeAccount = await fetchMaybeContractState(rpc, address, config);
assertAccountExists(maybeAccount);
return maybeAccount;
}
export async function fetchMaybeContractState(rpc, address, config) {
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
return decodeContractState(maybeAccount);
}
export async function fetchAllContractState(rpc, addresses, config) {
const maybeAccounts = await fetchAllMaybeContractState(rpc, addresses, config);
assertAccountsExist(maybeAccounts);
return maybeAccounts;
}
export async function fetchAllMaybeContractState(rpc, addresses, config) {
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
return maybeAccounts.map(maybeAccount => decodeContractState(maybeAccount));
}
//# sourceMappingURL=contractState.js.map