@robertprp/intents-sdk
Version:
Shogun Network Intent-based cross-chain swaps SDK
65 lines • 3.15 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, decodeAccount, fetchEncodedAccount, fetchEncodedAccounts, } from '@solana/kit';
import { getAddressDecoder, getAddressEncoder } from '@solana/kit';
import { combineCodec, fixDecoderSize, fixEncoderSize, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, transformEncoder, } from '@solana/kit';
export const LIMIT_ORDER_DISCRIMINATOR = new Uint8Array([137, 183, 212, 91, 115, 29, 141, 227]);
export function getLimitOrderDiscriminatorBytes() {
return fixEncoderSize(getBytesEncoder(), 8).encode(LIMIT_ORDER_DISCRIMINATOR);
}
export function getLimitOrderEncoder() {
return transformEncoder(getStructEncoder([
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
['user', getAddressEncoder()],
['guard', getAddressEncoder()],
['tokenInMint', getAddressEncoder()],
['amountIn', getU64Encoder()],
['amountOutMin', getU64Encoder()],
['secretHash', fixEncoderSize(getBytesEncoder(), 32)],
['extraTransfersAmounts', getArrayEncoder(getU64Encoder())],
['deadline', getU32Encoder()],
]), (value) => ({ ...value, discriminator: LIMIT_ORDER_DISCRIMINATOR }));
}
export function getLimitOrderDecoder() {
return getStructDecoder([
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
['user', getAddressDecoder()],
['guard', getAddressDecoder()],
['tokenInMint', getAddressDecoder()],
['amountIn', getU64Decoder()],
['amountOutMin', getU64Decoder()],
['secretHash', fixDecoderSize(getBytesDecoder(), 32)],
['extraTransfersAmounts', getArrayDecoder(getU64Decoder())],
['deadline', getU32Decoder()],
]);
}
export function getLimitOrderCodec() {
return combineCodec(getLimitOrderEncoder(), getLimitOrderDecoder());
}
export function decodeLimitOrder(encodedAccount) {
return decodeAccount(encodedAccount, getLimitOrderDecoder());
}
export async function fetchLimitOrder(rpc, address, config) {
const maybeAccount = await fetchMaybeLimitOrder(rpc, address, config);
assertAccountExists(maybeAccount);
return maybeAccount;
}
export async function fetchMaybeLimitOrder(rpc, address, config) {
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
return decodeLimitOrder(maybeAccount);
}
export async function fetchAllLimitOrder(rpc, addresses, config) {
const maybeAccounts = await fetchAllMaybeLimitOrder(rpc, addresses, config);
assertAccountsExist(maybeAccounts);
return maybeAccounts;
}
export async function fetchAllMaybeLimitOrder(rpc, addresses, config) {
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
return maybeAccounts.map((maybeAccount) => decodeLimitOrder(maybeAccount));
}
//# sourceMappingURL=limitOrder.js.map