import { CreatedPdaAccount, PubkeyUtil } from '@saturnbtcio/arch-sdk'; import { createNewAccount } from '../../account/pda-finder'; import { PdaType } from '../../account/pda-type'; import { Token } from '@saturnbtcio/pool-serde-sdk'; import { IArchProvider } from '../../providers/arch.provider'; export const createAccountsForInitializePool = ( shardsLength: number, feeTier: number, token0: Token, token1: Token, programAccount: string, archProvider: IArchProvider, ) => { const accounts: Promise[] = []; // Create config pool account accounts.push( createNewAccount( { pdaType: PdaType.Config, feeTier: feeTier, programId: PubkeyUtil.fromHex(programAccount), token0: token0, token1: token1, }, archProvider, ), ); // Create initial shard accounts in the pool for (let i = 0; i < shardsLength; i++) { accounts.push( createNewAccount( { pdaType: PdaType.Shard, feeTier: feeTier, programId: PubkeyUtil.fromHex(programAccount), shardIdx: i, token0: token0, token1: token1, }, archProvider, ), ); } return accounts; };