Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions clients/js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
},
"devDependencies": {
"@solana-config/oxc": "^0.1.1",
"@solana/kit": "^8.0.0",
"@solana/kit": "^8.3.0",
"@solana/kit-plugin-litesvm": "^0.18.0",
"@solana/kit-plugin-signer": "^0.18.0",
"@types/node": "^24",
Expand All @@ -59,7 +59,7 @@
"vitest": "^4.0.15"
},
"peerDependencies": {
"@solana/kit": "^8.0.0"
"@solana/kit": "^8.3.0"
},
"devEngines": {
"runtime": {
Expand Down
2,356 changes: 751 additions & 1,605 deletions clients/js/pnpm-lock.yaml

Large diffs are not rendered by default.

56 changes: 35 additions & 21 deletions clients/js/src/generated/instructions/advanceNonceAccount.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,16 @@ import {
type ReadonlyAccount,
type ReadonlySignerAccount,
type ReadonlyUint8Array,
type TransactionSigner,
type WritableAccount,
} from '@solana/kit';
import { getAccountMetaFactory, type ResolvedInstructionAccount } from '@solana/kit/program-client-core';
import {
getAccountMetaFactory,
type InstructionAccountInput,
type InstructionAccountInputAddress,
type InstructionSignerInput,
type ResolvedInstructionAccount,
type ResolvedInstructionAccountMeta,
} from '@solana/kit/program-client-core';
import { SYSTEM_PROGRAM_ADDRESS } from '../programs';

export const ADVANCE_NONCE_ACCOUNT_DISCRIMINATOR = 4;
Expand Down Expand Up @@ -84,37 +90,43 @@ export function getAdvanceNonceAccountInstructionDataCodec(): FixedSizeCodec<
}

export type AdvanceNonceAccountInput<
TAccountNonceAccount extends string = string,
TAccountRecentBlockhashesSysvar extends string = string,
TAccountNonceAuthority extends string = string,
TAccountNonceAccount extends InstructionAccountInput = InstructionAccountInput,
TAccountRecentBlockhashesSysvar extends InstructionAccountInput = InstructionAccountInput,
TAccountNonceAuthority extends InstructionSignerInput = InstructionSignerInput,
> = {
nonceAccount: Address<TAccountNonceAccount>;
recentBlockhashesSysvar?: Address<TAccountRecentBlockhashesSysvar>;
nonceAuthority: TransactionSigner<TAccountNonceAuthority>;
nonceAccount: TAccountNonceAccount;
recentBlockhashesSysvar?: TAccountRecentBlockhashesSysvar;
nonceAuthority: TAccountNonceAuthority;
};

export function getAdvanceNonceAccountInstruction<
TAccountNonceAccount extends string,
TAccountRecentBlockhashesSysvar extends string,
TAccountNonceAuthority extends string,
TAccountNonceAccount extends InstructionAccountInput,
TAccountRecentBlockhashesSysvar extends InstructionAccountInput,
TAccountNonceAuthority extends InstructionSignerInput,
TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,
>(
input: AdvanceNonceAccountInput<TAccountNonceAccount, TAccountRecentBlockhashesSysvar, TAccountNonceAuthority>,
config?: { programAddress?: TProgramAddress },
): AdvanceNonceAccountInstruction<
TProgramAddress,
TAccountNonceAccount,
TAccountRecentBlockhashesSysvar,
TAccountNonceAuthority
ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,
ResolvedInstructionAccountMeta<
TAccountRecentBlockhashesSysvar,
InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>
>,
ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>
> {
// Program address.
const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;

// Account meta helper.
const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');

// Original accounts.
const originalAccounts = {
nonceAccount: { value: input.nonceAccount ?? null, isWritable: true },
recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isWritable: false },
nonceAuthority: { value: input.nonceAuthority ?? null, isWritable: false },
nonceAccount: { value: input.nonceAccount ?? null, isSigner: false, isWritable: true },
recentBlockhashesSysvar: { value: input.recentBlockhashesSysvar ?? null, isSigner: false, isWritable: false },
nonceAuthority: { value: input.nonceAuthority ?? null, isSigner: true, isWritable: false },
};
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;

Expand All @@ -124,7 +136,6 @@ export function getAdvanceNonceAccountInstruction<
'SysvarRecentB1ockHashes11111111111111111111' as Address<'SysvarRecentB1ockHashes11111111111111111111'>;
}

const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');
return Object.freeze({
accounts: [
getAccountMeta('nonceAccount', accounts.nonceAccount),
Expand All @@ -135,9 +146,12 @@ export function getAdvanceNonceAccountInstruction<
programAddress,
} as AdvanceNonceAccountInstruction<
TProgramAddress,
TAccountNonceAccount,
TAccountRecentBlockhashesSysvar,
TAccountNonceAuthority
ResolvedInstructionAccountMeta<TAccountNonceAccount, InstructionAccountInputAddress<TAccountNonceAccount>>,
ResolvedInstructionAccountMeta<
TAccountRecentBlockhashesSysvar,
InstructionAccountInputAddress<TAccountRecentBlockhashesSysvar>
>,
ResolvedInstructionAccountMeta<TAccountNonceAuthority, InstructionAccountInputAddress<TAccountNonceAuthority>>
>);
}

Expand Down
31 changes: 22 additions & 9 deletions clients/js/src/generated/instructions/allocate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,15 @@ import {
type InstructionWithAccounts,
type InstructionWithData,
type ReadonlyUint8Array,
type TransactionSigner,
type WritableSignerAccount,
} from '@solana/kit';
import { getAccountMetaFactory, type ResolvedInstructionAccount } from '@solana/kit/program-client-core';
import {
getAccountMetaFactory,
type InstructionAccountInputAddress,
type InstructionSignerInput,
type ResolvedInstructionAccount,
type ResolvedInstructionAccountMeta,
} from '@solana/kit/program-client-core';
import { SYSTEM_PROGRAM_ADDRESS } from '../programs';

export const ALLOCATE_DISCRIMINATOR = 8;
Expand Down Expand Up @@ -82,34 +87,42 @@ export function getAllocateInstructionDataCodec(): FixedSizeCodec<
return combineCodec(getAllocateInstructionDataEncoder(), getAllocateInstructionDataDecoder());
}

export type AllocateInput<TAccountNewAccount extends string = string> = {
newAccount: TransactionSigner<TAccountNewAccount>;
export type AllocateInput<TAccountNewAccount extends InstructionSignerInput = InstructionSignerInput> = {
newAccount: TAccountNewAccount;
space: AllocateInstructionDataArgs['space'];
};

export function getAllocateInstruction<
TAccountNewAccount extends string,
TAccountNewAccount extends InstructionSignerInput,
TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,
>(
input: AllocateInput<TAccountNewAccount>,
config?: { programAddress?: TProgramAddress },
): AllocateInstruction<TProgramAddress, TAccountNewAccount> {
): AllocateInstruction<
TProgramAddress,
ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>
> {
// Program address.
const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;

// Account meta helper.
const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');

// Original accounts.
const originalAccounts = { newAccount: { value: input.newAccount ?? null, isWritable: true } };
const originalAccounts = { newAccount: { value: input.newAccount ?? null, isSigner: true, isWritable: true } };
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;

// Original args.
const args = { ...input };

const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');
return Object.freeze({
accounts: [getAccountMeta('newAccount', accounts.newAccount)],
data: getAllocateInstructionDataEncoder().encode(args as AllocateInstructionDataArgs),
programAddress,
} as AllocateInstruction<TProgramAddress, TAccountNewAccount>);
} as AllocateInstruction<
TProgramAddress,
ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>
>);
}

export type ParsedAllocateInstruction<
Expand Down
42 changes: 29 additions & 13 deletions clients/js/src/generated/instructions/allocateWithSeed.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,16 @@ import {
type InstructionWithData,
type ReadonlySignerAccount,
type ReadonlyUint8Array,
type TransactionSigner,
type WritableAccount,
} from '@solana/kit';
import { getAccountMetaFactory, type ResolvedInstructionAccount } from '@solana/kit/program-client-core';
import {
getAccountMetaFactory,
type InstructionAccountInput,
type InstructionAccountInputAddress,
type InstructionSignerInput,
type ResolvedInstructionAccount,
type ResolvedInstructionAccountMeta,
} from '@solana/kit/program-client-core';
import { SYSTEM_PROGRAM_ADDRESS } from '../programs';

export const ALLOCATE_WITH_SEED_DISCRIMINATOR = 9;
Expand Down Expand Up @@ -109,47 +115,57 @@ export function getAllocateWithSeedInstructionDataCodec(): Codec<
}

export type AllocateWithSeedInput<
TAccountNewAccount extends string = string,
TAccountBaseAccount extends string = string,
TAccountNewAccount extends InstructionAccountInput = InstructionAccountInput,
TAccountBaseAccount extends InstructionSignerInput = InstructionSignerInput,
> = {
newAccount: Address<TAccountNewAccount>;
baseAccount: TransactionSigner<TAccountBaseAccount>;
newAccount: TAccountNewAccount;
baseAccount: TAccountBaseAccount;
base: AllocateWithSeedInstructionDataArgs['base'];
seed: AllocateWithSeedInstructionDataArgs['seed'];
space: AllocateWithSeedInstructionDataArgs['space'];
programAddress: AllocateWithSeedInstructionDataArgs['programAddress'];
};

export function getAllocateWithSeedInstruction<
TAccountNewAccount extends string,
TAccountBaseAccount extends string,
TAccountNewAccount extends InstructionAccountInput,
TAccountBaseAccount extends InstructionSignerInput,
TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,
>(
input: AllocateWithSeedInput<TAccountNewAccount, TAccountBaseAccount>,
config?: { programAddress?: TProgramAddress },
): AllocateWithSeedInstruction<TProgramAddress, TAccountNewAccount, TAccountBaseAccount> {
): AllocateWithSeedInstruction<
TProgramAddress,
ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,
ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>
> {
// Program address.
const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;

// Account meta helper.
const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');

// Original accounts.
const originalAccounts = {
newAccount: { value: input.newAccount ?? null, isWritable: true },
baseAccount: { value: input.baseAccount ?? null, isWritable: false },
newAccount: { value: input.newAccount ?? null, isSigner: false, isWritable: true },
baseAccount: { value: input.baseAccount ?? null, isSigner: true, isWritable: false },
};
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;

// Original args.
const args = { ...input };

const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');
return Object.freeze({
accounts: [
getAccountMeta('newAccount', accounts.newAccount),
getAccountMeta('baseAccount', accounts.baseAccount),
],
data: getAllocateWithSeedInstructionDataEncoder().encode(args as AllocateWithSeedInstructionDataArgs),
programAddress,
} as AllocateWithSeedInstruction<TProgramAddress, TAccountNewAccount, TAccountBaseAccount>);
} as AllocateWithSeedInstruction<
TProgramAddress,
ResolvedInstructionAccountMeta<TAccountNewAccount, InstructionAccountInputAddress<TAccountNewAccount>>,
ResolvedInstructionAccountMeta<TAccountBaseAccount, InstructionAccountInputAddress<TAccountBaseAccount>>
>);
}

export type ParsedAllocateWithSeedInstruction<
Expand Down
31 changes: 22 additions & 9 deletions clients/js/src/generated/instructions/assign.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,15 @@ import {
type InstructionWithAccounts,
type InstructionWithData,
type ReadonlyUint8Array,
type TransactionSigner,
type WritableSignerAccount,
} from '@solana/kit';
import { getAccountMetaFactory, type ResolvedInstructionAccount } from '@solana/kit/program-client-core';
import {
getAccountMetaFactory,
type InstructionAccountInputAddress,
type InstructionSignerInput,
type ResolvedInstructionAccount,
type ResolvedInstructionAccountMeta,
} from '@solana/kit/program-client-core';
import { SYSTEM_PROGRAM_ADDRESS } from '../programs';

export const ASSIGN_DISCRIMINATOR = 1;
Expand Down Expand Up @@ -79,34 +84,42 @@ export function getAssignInstructionDataCodec(): FixedSizeCodec<AssignInstructio
return combineCodec(getAssignInstructionDataEncoder(), getAssignInstructionDataDecoder());
}

export type AssignInput<TAccountAccount extends string = string> = {
account: TransactionSigner<TAccountAccount>;
export type AssignInput<TAccountAccount extends InstructionSignerInput = InstructionSignerInput> = {
account: TAccountAccount;
programAddress: AssignInstructionDataArgs['programAddress'];
};

export function getAssignInstruction<
TAccountAccount extends string,
TAccountAccount extends InstructionSignerInput,
TProgramAddress extends Address = typeof SYSTEM_PROGRAM_ADDRESS,
>(
input: AssignInput<TAccountAccount>,
config?: { programAddress?: TProgramAddress },
): AssignInstruction<TProgramAddress, TAccountAccount> {
): AssignInstruction<
TProgramAddress,
ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>
> {
// Program address.
const programAddress = config?.programAddress ?? SYSTEM_PROGRAM_ADDRESS;

// Account meta helper.
const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');

// Original accounts.
const originalAccounts = { account: { value: input.account ?? null, isWritable: true } };
const originalAccounts = { account: { value: input.account ?? null, isSigner: true, isWritable: true } };
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedInstructionAccount>;

// Original args.
const args = { ...input };

const getAccountMeta = getAccountMetaFactory(programAddress, 'omitted');
return Object.freeze({
accounts: [getAccountMeta('account', accounts.account)],
data: getAssignInstructionDataEncoder().encode(args as AssignInstructionDataArgs),
programAddress,
} as AssignInstruction<TProgramAddress, TAccountAccount>);
} as AssignInstruction<
TProgramAddress,
ResolvedInstructionAccountMeta<TAccountAccount, InstructionAccountInputAddress<TAccountAccount>>
>);
}

export type ParsedAssignInstruction<
Expand Down
Loading
Loading