Skip to content

Commit

Permalink
REFACTOR (#33)
Browse files Browse the repository at this point in the history
+ NcnConfig -> Config
+ Removed unnecessary RestakingConfig 
+ Reordered IXs
+ All program functions now pass by reference anything 32 bytes and over
+ Various other little changes
  • Loading branch information
coachchucksol authored Dec 23, 2024
1 parent fe47f04 commit 443368a
Show file tree
Hide file tree
Showing 138 changed files with 2,216 additions and 3,308 deletions.
8 changes: 4 additions & 4 deletions clients/js/jito_tip_router/accounts/baseRewardRouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ import {
export type BaseRewardRouter = {
discriminator: bigint;
ncn: Address;
ncnEpoch: bigint;
epoch: bigint;
bump: number;
slotCreated: bigint;
totalRewards: bigint;
Expand All @@ -67,7 +67,7 @@ export type BaseRewardRouter = {
export type BaseRewardRouterArgs = {
discriminator: number | bigint;
ncn: Address;
ncnEpoch: number | bigint;
epoch: number | bigint;
bump: number;
slotCreated: number | bigint;
totalRewards: number | bigint;
Expand All @@ -85,7 +85,7 @@ export function getBaseRewardRouterEncoder(): Encoder<BaseRewardRouterArgs> {
return getStructEncoder([
['discriminator', getU64Encoder()],
['ncn', getAddressEncoder()],
['ncnEpoch', getU64Encoder()],
['epoch', getU64Encoder()],
['bump', getU8Encoder()],
['slotCreated', getU64Encoder()],
['totalRewards', getU64Encoder()],
Expand Down Expand Up @@ -113,7 +113,7 @@ export function getBaseRewardRouterDecoder(): Decoder<BaseRewardRouter> {
return getStructDecoder([
['discriminator', getU64Decoder()],
['ncn', getAddressDecoder()],
['ncnEpoch', getU64Decoder()],
['epoch', getU64Decoder()],
['bump', getU8Decoder()],
['slotCreated', getU64Decoder()],
['totalRewards', getU64Decoder()],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ import {
type FeeConfigArgs,
} from '../types';

export type NcnConfig = {
export type Config = {
discriminator: bigint;
ncn: Address;
tieBreakerAdmin: Address;
Expand All @@ -53,7 +53,7 @@ export type NcnConfig = {
reserved: Array<number>;
};

export type NcnConfigArgs = {
export type ConfigArgs = {
discriminator: number | bigint;
ncn: Address;
tieBreakerAdmin: Address;
Expand All @@ -65,7 +65,7 @@ export type NcnConfigArgs = {
reserved: Array<number>;
};

export function getNcnConfigEncoder(): Encoder<NcnConfigArgs> {
export function getConfigEncoder(): Encoder<ConfigArgs> {
return getStructEncoder([
['discriminator', getU64Encoder()],
['ncn', getAddressEncoder()],
Expand All @@ -79,7 +79,7 @@ export function getNcnConfigEncoder(): Encoder<NcnConfigArgs> {
]);
}

export function getNcnConfigDecoder(): Decoder<NcnConfig> {
export function getConfigDecoder(): Decoder<Config> {
return getStructDecoder([
['discriminator', getU64Decoder()],
['ncn', getAddressDecoder()],
Expand All @@ -93,59 +93,59 @@ export function getNcnConfigDecoder(): Decoder<NcnConfig> {
]);
}

export function getNcnConfigCodec(): Codec<NcnConfigArgs, NcnConfig> {
return combineCodec(getNcnConfigEncoder(), getNcnConfigDecoder());
export function getConfigCodec(): Codec<ConfigArgs, Config> {
return combineCodec(getConfigEncoder(), getConfigDecoder());
}

export function decodeNcnConfig<TAddress extends string = string>(
export function decodeConfig<TAddress extends string = string>(
encodedAccount: EncodedAccount<TAddress>
): Account<NcnConfig, TAddress>;
export function decodeNcnConfig<TAddress extends string = string>(
): Account<Config, TAddress>;
export function decodeConfig<TAddress extends string = string>(
encodedAccount: MaybeEncodedAccount<TAddress>
): MaybeAccount<NcnConfig, TAddress>;
export function decodeNcnConfig<TAddress extends string = string>(
): MaybeAccount<Config, TAddress>;
export function decodeConfig<TAddress extends string = string>(
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>
): Account<NcnConfig, TAddress> | MaybeAccount<NcnConfig, TAddress> {
): Account<Config, TAddress> | MaybeAccount<Config, TAddress> {
return decodeAccount(
encodedAccount as MaybeEncodedAccount<TAddress>,
getNcnConfigDecoder()
getConfigDecoder()
);
}

export async function fetchNcnConfig<TAddress extends string = string>(
export async function fetchConfig<TAddress extends string = string>(
rpc: Parameters<typeof fetchEncodedAccount>[0],
address: Address<TAddress>,
config?: FetchAccountConfig
): Promise<Account<NcnConfig, TAddress>> {
const maybeAccount = await fetchMaybeNcnConfig(rpc, address, config);
): Promise<Account<Config, TAddress>> {
const maybeAccount = await fetchMaybeConfig(rpc, address, config);
assertAccountExists(maybeAccount);
return maybeAccount;
}

export async function fetchMaybeNcnConfig<TAddress extends string = string>(
export async function fetchMaybeConfig<TAddress extends string = string>(
rpc: Parameters<typeof fetchEncodedAccount>[0],
address: Address<TAddress>,
config?: FetchAccountConfig
): Promise<MaybeAccount<NcnConfig, TAddress>> {
): Promise<MaybeAccount<Config, TAddress>> {
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
return decodeNcnConfig(maybeAccount);
return decodeConfig(maybeAccount);
}

export async function fetchAllNcnConfig(
export async function fetchAllConfig(
rpc: Parameters<typeof fetchEncodedAccounts>[0],
addresses: Array<Address>,
config?: FetchAccountsConfig
): Promise<Account<NcnConfig>[]> {
const maybeAccounts = await fetchAllMaybeNcnConfig(rpc, addresses, config);
): Promise<Account<Config>[]> {
const maybeAccounts = await fetchAllMaybeConfig(rpc, addresses, config);
assertAccountsExist(maybeAccounts);
return maybeAccounts;
}

export async function fetchAllMaybeNcnConfig(
export async function fetchAllMaybeConfig(
rpc: Parameters<typeof fetchEncodedAccounts>[0],
addresses: Array<Address>,
config?: FetchAccountsConfig
): Promise<MaybeAccount<NcnConfig>[]> {
): Promise<MaybeAccount<Config>[]> {
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
return maybeAccounts.map((maybeAccount) => decodeNcnConfig(maybeAccount));
return maybeAccounts.map((maybeAccount) => decodeConfig(maybeAccount));
}
8 changes: 4 additions & 4 deletions clients/js/jito_tip_router/accounts/epochSnapshot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ import {
export type EpochSnapshot = {
discriminator: bigint;
ncn: Address;
ncnEpoch: bigint;
epoch: bigint;
bump: number;
slotCreated: bigint;
slotFinalized: bigint;
Expand All @@ -64,7 +64,7 @@ export type EpochSnapshot = {
export type EpochSnapshotArgs = {
discriminator: number | bigint;
ncn: Address;
ncnEpoch: number | bigint;
epoch: number | bigint;
bump: number;
slotCreated: number | bigint;
slotFinalized: number | bigint;
Expand All @@ -81,7 +81,7 @@ export function getEpochSnapshotEncoder(): Encoder<EpochSnapshotArgs> {
return getStructEncoder([
['discriminator', getU64Encoder()],
['ncn', getAddressEncoder()],
['ncnEpoch', getU64Encoder()],
['epoch', getU64Encoder()],
['bump', getU8Encoder()],
['slotCreated', getU64Encoder()],
['slotFinalized', getU64Encoder()],
Expand All @@ -99,7 +99,7 @@ export function getEpochSnapshotDecoder(): Decoder<EpochSnapshot> {
return getStructDecoder([
['discriminator', getU64Decoder()],
['ncn', getAddressDecoder()],
['ncnEpoch', getU64Decoder()],
['epoch', getU64Decoder()],
['bump', getU8Decoder()],
['slotCreated', getU64Decoder()],
['slotFinalized', getU64Decoder()],
Expand Down
2 changes: 1 addition & 1 deletion clients/js/jito_tip_router/accounts/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@

export * from './ballotBox';
export * from './baseRewardRouter';
export * from './config';
export * from './epochSnapshot';
export * from './ncnConfig';
export * from './ncnRewardRouter';
export * from './operatorSnapshot';
export * from './vaultRegistry';
Expand Down
8 changes: 4 additions & 4 deletions clients/js/jito_tip_router/accounts/ncnRewardRouter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ export type NcnRewardRouter = {
ncnFeeGroup: NcnFeeGroup;
operator: Address;
ncn: Address;
ncnEpoch: bigint;
epoch: bigint;
bump: number;
slotCreated: bigint;
totalRewards: bigint;
Expand All @@ -70,7 +70,7 @@ export type NcnRewardRouterArgs = {
ncnFeeGroup: NcnFeeGroupArgs;
operator: Address;
ncn: Address;
ncnEpoch: number | bigint;
epoch: number | bigint;
bump: number;
slotCreated: number | bigint;
totalRewards: number | bigint;
Expand All @@ -89,7 +89,7 @@ export function getNcnRewardRouterEncoder(): Encoder<NcnRewardRouterArgs> {
['ncnFeeGroup', getNcnFeeGroupEncoder()],
['operator', getAddressEncoder()],
['ncn', getAddressEncoder()],
['ncnEpoch', getU64Encoder()],
['epoch', getU64Encoder()],
['bump', getU8Encoder()],
['slotCreated', getU64Encoder()],
['totalRewards', getU64Encoder()],
Expand All @@ -112,7 +112,7 @@ export function getNcnRewardRouterDecoder(): Decoder<NcnRewardRouter> {
['ncnFeeGroup', getNcnFeeGroupDecoder()],
['operator', getAddressDecoder()],
['ncn', getAddressDecoder()],
['ncnEpoch', getU64Decoder()],
['epoch', getU64Decoder()],
['bump', getU8Decoder()],
['slotCreated', getU64Decoder()],
['totalRewards', getU64Decoder()],
Expand Down
33 changes: 8 additions & 25 deletions clients/js/jito_tip_router/instructions/adminRegisterStMint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,14 @@ import {
import { JITO_TIP_ROUTER_PROGRAM_ADDRESS } from '../programs';
import { getAccountMetaFactory, type ResolvedAccount } from '../shared';

export const ADMIN_REGISTER_ST_MINT_DISCRIMINATOR = 19;
export const ADMIN_REGISTER_ST_MINT_DISCRIMINATOR = 30;

export function getAdminRegisterStMintDiscriminatorBytes() {
return getU8Encoder().encode(ADMIN_REGISTER_ST_MINT_DISCRIMINATOR);
}

export type AdminRegisterStMintInstruction<
TProgram extends string = typeof JITO_TIP_ROUTER_PROGRAM_ADDRESS,
TAccountRestakingConfig extends string | IAccountMeta<string> = string,
TAccountConfig extends string | IAccountMeta<string> = string,
TAccountNcn extends string | IAccountMeta<string> = string,
TAccountStMint extends string | IAccountMeta<string> = string,
Expand All @@ -60,9 +59,6 @@ export type AdminRegisterStMintInstruction<
IInstructionWithData<Uint8Array> &
IInstructionWithAccounts<
[
TAccountRestakingConfig extends string
? ReadonlyAccount<TAccountRestakingConfig>
: TAccountRestakingConfig,
TAccountConfig extends string
? ReadonlyAccount<TAccountConfig>
: TAccountConfig,
Expand Down Expand Up @@ -136,15 +132,13 @@ export function getAdminRegisterStMintInstructionDataCodec(): Codec<
}

export type AdminRegisterStMintInput<
TAccountRestakingConfig extends string = string,
TAccountConfig extends string = string,
TAccountNcn extends string = string,
TAccountStMint extends string = string,
TAccountVaultRegistry extends string = string,
TAccountAdmin extends string = string,
TAccountRestakingProgram extends string = string,
> = {
restakingConfig: Address<TAccountRestakingConfig>;
config: Address<TAccountConfig>;
ncn: Address<TAccountNcn>;
stMint: Address<TAccountStMint>;
Expand All @@ -158,7 +152,6 @@ export type AdminRegisterStMintInput<
};

export function getAdminRegisterStMintInstruction<
TAccountRestakingConfig extends string,
TAccountConfig extends string,
TAccountNcn extends string,
TAccountStMint extends string,
Expand All @@ -168,7 +161,6 @@ export function getAdminRegisterStMintInstruction<
TProgramAddress extends Address = typeof JITO_TIP_ROUTER_PROGRAM_ADDRESS,
>(
input: AdminRegisterStMintInput<
TAccountRestakingConfig,
TAccountConfig,
TAccountNcn,
TAccountStMint,
Expand All @@ -179,7 +171,6 @@ export function getAdminRegisterStMintInstruction<
config?: { programAddress?: TProgramAddress }
): AdminRegisterStMintInstruction<
TProgramAddress,
TAccountRestakingConfig,
TAccountConfig,
TAccountNcn,
TAccountStMint,
Expand All @@ -193,10 +184,6 @@ export function getAdminRegisterStMintInstruction<

// Original accounts.
const originalAccounts = {
restakingConfig: {
value: input.restakingConfig ?? null,
isWritable: false,
},
config: { value: input.config ?? null, isWritable: false },
ncn: { value: input.ncn ?? null, isWritable: false },
stMint: { value: input.stMint ?? null, isWritable: false },
Expand All @@ -218,7 +205,6 @@ export function getAdminRegisterStMintInstruction<
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
const instruction = {
accounts: [
getAccountMeta(accounts.restakingConfig),
getAccountMeta(accounts.config),
getAccountMeta(accounts.ncn),
getAccountMeta(accounts.stMint),
Expand All @@ -232,7 +218,6 @@ export function getAdminRegisterStMintInstruction<
),
} as AdminRegisterStMintInstruction<
TProgramAddress,
TAccountRestakingConfig,
TAccountConfig,
TAccountNcn,
TAccountStMint,
Expand All @@ -250,13 +235,12 @@ export type ParsedAdminRegisterStMintInstruction<
> = {
programAddress: Address<TProgram>;
accounts: {
restakingConfig: TAccountMetas[0];
config: TAccountMetas[1];
ncn: TAccountMetas[2];
stMint: TAccountMetas[3];
vaultRegistry: TAccountMetas[4];
admin: TAccountMetas[5];
restakingProgram: TAccountMetas[6];
config: TAccountMetas[0];
ncn: TAccountMetas[1];
stMint: TAccountMetas[2];
vaultRegistry: TAccountMetas[3];
admin: TAccountMetas[4];
restakingProgram: TAccountMetas[5];
};
data: AdminRegisterStMintInstructionData;
};
Expand All @@ -269,7 +253,7 @@ export function parseAdminRegisterStMintInstruction<
IInstructionWithAccounts<TAccountMetas> &
IInstructionWithData<Uint8Array>
): ParsedAdminRegisterStMintInstruction<TProgram, TAccountMetas> {
if (instruction.accounts.length < 7) {
if (instruction.accounts.length < 6) {
// TODO: Coded error.
throw new Error('Not enough accounts');
}
Expand All @@ -282,7 +266,6 @@ export function parseAdminRegisterStMintInstruction<
return {
programAddress: instruction.programAddress,
accounts: {
restakingConfig: getNextAccount(),
config: getNextAccount(),
ncn: getNextAccount(),
stMint: getNextAccount(),
Expand Down
Loading

0 comments on commit 443368a

Please sign in to comment.