From 3cf0be1dfc0466d8ab7cb2b86cfdfeb99bd83366 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Mon, 6 Jan 2025 18:26:31 +0700 Subject: [PATCH 01/11] chore: Add create alpha vault utils --- src/libs/constants.ts | 6 + src/libs/create_alpha_vault_utils.ts | 328 +++++++++++++++++++++++++++ 2 files changed, 334 insertions(+) create mode 100644 src/libs/create_alpha_vault_utils.ts diff --git a/src/libs/constants.ts b/src/libs/constants.ts index 66e1d74..0124061 100644 --- a/src/libs/constants.ts +++ b/src/libs/constants.ts @@ -15,3 +15,9 @@ export const DYNAMIC_AMM_PROGRAM_IDS = { localhost: "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB", "mainnet-beta": "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB", }; + +export const ALPHA_VAULT_PROGRAM_IDS = { + devnet: "SNPmGgnywBvvrAKMLundzG6StojyHTHDLu7T4sdhP4k", + localhost: "SNPmGgnywBvvrAKMLundzG6StojyHTHDLu7T4sdhP4k", + "mainnet-beta": "vaU6kP7iNEGkbmPkLmZfGwiGxd4Mob24QQCie5R9kd2", +}; \ No newline at end of file diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts new file mode 100644 index 0000000..2e4f1aa --- /dev/null +++ b/src/libs/create_alpha_vault_utils.ts @@ -0,0 +1,328 @@ +import { CustomizableFcfsVaultParams, CustomizableProrataVaultParams, IDL, PoolType, SEED } from "@meteora-ag/alpha-vault"; +import { ComputeBudgetProgram, Connection, PublicKey, SystemProgram, Transaction, sendAndConfirmTransaction } from "@solana/web3.js"; +import { ALPHA_VAULT_PROGRAM_IDS } from "./constants"; +import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; +import { getAlphaVaultWhitelistMode, getAmountInLamports, runSimulateTransaction } from "./utils"; +import { FcfsAlphaVaultConfig, ProrataAlphaVaultConfig } from "./config"; +import { BN } from "bn.js"; + +export async function createFcfsAlphaVault( + connection: Connection, + wallet: Wallet, + poolType: PoolType, + poolAddress: PublicKey, + baseMint: PublicKey, + quoteMint: PublicKey, + quoteDecimals: number, + params: FcfsAlphaVaultConfig, + dryRun: boolean, + computeUnitPriceMicroLamports: number, + opts?: { + alphaVaultProgramId: PublicKey; + }, +): Promise { + let maxDepositingCap = getAmountInLamports( + params.maxDepositCap, + quoteDecimals, + ); + let individualDepositingCap = getAmountInLamports( + params.individualDepositingCap, + quoteDecimals, + ); + let escrowFee = getAmountInLamports(params.escrowFee, quoteDecimals); + let whitelistMode = getAlphaVaultWhitelistMode(params.whitelistMode); + + console.log(`\n> Initializing FcfsAlphaVault...`); + console.log(`- Using poolType: ${poolType}`); + console.log(`- Using poolMint ${poolAddress}`); + console.log(`- Using baseMint ${baseMint}`); + console.log(`- Using quoteMint ${quoteMint}`); + console.log(`- Using depositingPoint ${params.depositingPoint}`); + console.log(`- Using startVestingPoint ${params.startVestingPoint}`); + console.log(`- Using endVestingPoint ${params.endVestingPoint}`); + console.log( + `- Using maxDepositingCap ${params.maxDepositCap}. In lamports ${maxDepositingCap}`, + ); + console.log( + `- Using individualDepositingCap ${params.individualDepositingCap}. In lamports ${individualDepositingCap}`, + ); + console.log( + `- Using escrowFee ${params.escrowFee}. In lamports ${escrowFee}`, + ); + console.log( + `- Using whitelistMode ${params.whitelistMode}. In value ${whitelistMode}`, + ); + + const initAlphaVaultTx = (await createCustomizableFcfsVault( + connection, + { + quoteMint, + baseMint, + poolAddress, + poolType, + depositingPoint: new BN(params.depositingPoint), + startVestingPoint: new BN(params.startVestingPoint), + endVestingPoint: new BN(params.endVestingPoint), + maxDepositingCap, + individualDepositingCap, + escrowFee, + whitelistMode, + }, + wallet.publicKey, + computeUnitPriceMicroLamports, + opts + )) as Transaction; + + if (dryRun) { + console.log(`\n> Simulating init alpha vault tx...`); + await runSimulateTransaction(connection, [wallet.payer], wallet.publicKey, [ + initAlphaVaultTx, + ]); + } else { + console.log(`>> Sending init alpha vault transaction...`); + const initAlphaVaulTxHash = await sendAndConfirmTransaction( + connection, + initAlphaVaultTx, + [wallet.payer], + ).catch((err) => { + console.error(err); + throw err; + }); + console.log( + `>>> Alpha vault initialized successfully with tx hash: ${initAlphaVaulTxHash}`, + ); + } +} + +export async function createProrataAlphaVault( + connection: Connection, + wallet: Wallet, + poolType: PoolType, + poolAddress: PublicKey, + baseMint: PublicKey, + quoteMint: PublicKey, + quoteDecimals: number, + params: ProrataAlphaVaultConfig, + dryRun: boolean, + computeUnitPriceMicroLamports: number, + opts?: { + alphaVaultProgramId: PublicKey; + }, +) { + let maxBuyingCap = getAmountInLamports(params.maxBuyingCap, quoteDecimals); + let escrowFee = getAmountInLamports(params.escrowFee, quoteDecimals); + let whitelistMode = getAlphaVaultWhitelistMode(params.whitelistMode); + + console.log(`\n> Initializing ProrataAlphaVault...`); + console.log(`- Using poolType: ${poolType}`); + console.log(`- Using poolMint ${poolAddress}`); + console.log(`- Using baseMint ${baseMint}`); + console.log(`- Using quoteMint ${quoteMint}`); + console.log(`- Using depositingPoint ${params.depositingPoint}`); + console.log(`- Using startVestingPoint ${params.startVestingPoint}`); + console.log(`- Using endVestingPoint ${params.endVestingPoint}`); + console.log( + `- Using maxBuyingCap ${params.maxBuyingCap}. In lamports ${maxBuyingCap}`, + ); + console.log( + `- Using escrowFee ${params.escrowFee}. In lamports ${escrowFee}`, + ); + console.log( + `- Using whitelistMode ${params.whitelistMode}. In value ${whitelistMode}`, + ); + + const initAlphaVaultTx = (await createCustomizableProrataVault( + connection, + { + quoteMint, + baseMint, + poolAddress, + poolType, + depositingPoint: new BN(params.depositingPoint), + startVestingPoint: new BN(params.startVestingPoint), + endVestingPoint: new BN(params.endVestingPoint), + maxBuyingCap, + escrowFee, + whitelistMode, + }, + wallet.publicKey, + computeUnitPriceMicroLamports, + opts + )) as Transaction; + + if (dryRun) { + console.log(`\n> Simulating init alpha vault tx...`); + await runSimulateTransaction(connection, [wallet.payer], wallet.publicKey, [ + initAlphaVaultTx, + ]); + } else { + console.log(`>> Sending init alpha vault transaction...`); + const initAlphaVaulTxHash = await sendAndConfirmTransaction( + connection, + initAlphaVaultTx, + [wallet.payer], + ).catch((err) => { + console.error(err); + throw err; + }); + console.log( + `>>> Alpha vault initialized successfully with tx hash: ${initAlphaVaulTxHash}`, + ); + } +} + +async function createCustomizableFcfsVault( + connection: Connection, + vaultParam: CustomizableFcfsVaultParams, + owner: PublicKey, + computeUnitPriceMicroLamports: number, + opts?: { + alphaVaultProgramId: PublicKey + } +) { + const alphaVaultProgramId = opts?.alphaVaultProgramId || new PublicKey(ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"]); + const { + poolAddress, + poolType, + baseMint, + quoteMint, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxDepositingCap, + individualDepositingCap, + escrowFee, + whitelistMode, + } = vaultParam; + + const [alphaVaultPubkey] = deriveAlphaVault( + owner, + poolAddress, + alphaVaultProgramId, + ); + + const provider = new AnchorProvider( + connection, + {} as any, + AnchorProvider.defaultOptions(), + ); + const program = new Program(IDL, alphaVaultProgramId, provider); + + const createTx = await program.methods + .initializeFcfsVault({ + poolType, + baseMint, + quoteMint, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxDepositingCap, + individualDepositingCap, + escrowFee, + whitelistMode, + }) + .accounts({ + base: owner, + vault: alphaVaultPubkey, + pool: poolAddress, + funder: owner, + program: alphaVaultProgramId, + systemProgram: SystemProgram.programId, + }) + .transaction(); + + const setPriorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({ + microLamports: computeUnitPriceMicroLamports, + }); + createTx.add(setPriorityFeeIx); + + const { blockhash, lastValidBlockHeight } = + await connection.getLatestBlockhash("confirmed"); + return new Transaction({ + blockhash, + lastValidBlockHeight, + feePayer: owner, + }).add(createTx); +} + +async function createCustomizableProrataVault( + connection: Connection, + vaultParam: CustomizableProrataVaultParams, + owner: PublicKey, + computeUnitPriceMicroLamports: number, + opts?: { + alphaVaultProgramId: PublicKey + } +) { + const alphaVaultProgramId = opts?.alphaVaultProgramId || new PublicKey(ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"]); + const { + poolAddress, + poolType, + baseMint, + quoteMint, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxBuyingCap, + escrowFee, + whitelistMode, + } = vaultParam; + + const [alphaVaultPubkey] = deriveAlphaVault( + owner, + poolAddress, + alphaVaultProgramId, + ); + + const provider = new AnchorProvider( + connection, + {} as any, + AnchorProvider.defaultOptions(), + ); + const program = new Program(IDL, alphaVaultProgramId, provider); + + const createTx = await program.methods + .initializeProrataVault({ + poolType, + baseMint, + quoteMint, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxBuyingCap, + escrowFee, + whitelistMode, + }) + .accounts({ + base: owner, + vault: alphaVaultPubkey, + pool: poolAddress, + funder: owner, + program: alphaVaultProgramId, + systemProgram: SystemProgram.programId, + }) + .transaction(); + const setPriorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({ + microLamports: computeUnitPriceMicroLamports, + }); + createTx.add(setPriorityFeeIx); + + const { blockhash, lastValidBlockHeight } = + await connection.getLatestBlockhash("confirmed"); + return new Transaction({ + blockhash, + lastValidBlockHeight, + feePayer: owner, + }).add(createTx); +} + +export function deriveAlphaVault( + base: PublicKey, + lbPair: PublicKey, + programId: PublicKey, +) { + return PublicKey.findProgramAddressSync( + [Buffer.from(SEED.vault), base.toBuffer(), lbPair.toBuffer()], + programId, + ); +} \ No newline at end of file From d2301be05b6304eae19a4c1d7eea4341a5bc9ee7 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Mon, 6 Jan 2025 19:02:41 +0700 Subject: [PATCH 02/11] fix: Update create_alpha_vault script --- src/create_alpha_vault.ts | 183 ++++----------------------- src/libs/constants.ts | 2 +- src/libs/create_alpha_vault_utils.ts | 45 +++++-- src/libs/utils.ts | 11 ++ 4 files changed, 70 insertions(+), 171 deletions(-) diff --git a/src/create_alpha_vault.ts b/src/create_alpha_vault.ts index 5eec1e9..4ed2214 100644 --- a/src/create_alpha_vault.ts +++ b/src/create_alpha_vault.ts @@ -18,8 +18,11 @@ import { parseConfigFromCli, getAlphaVaultPoolType, modifyComputeUnitPriceIx, + AlphaVaultTypeConfig, + PoolTypeConfig, + toAlphaVaulSdkPoolType, } from "."; -import { Wallet } from "@coral-xyz/anchor"; +import { AnchorProvider, Wallet } from "@coral-xyz/anchor"; import { BN } from "bn.js"; import AlphaVault, { PoolType } from "@meteora-ag/alpha-vault"; @@ -31,6 +34,10 @@ import { deriveCustomizablePermissionlessConstantProductPoolAddress, createProgram, } from "@mercurial-finance/dynamic-amm-sdk/dist/cjs/src/amm/utils"; +import { + createFcfsAlphaVault, + createProrataAlphaVault, +} from "./libs/create_alpha_vault_utils"; async function main() { let config: MeteoraConfig = parseConfigFromCli(); @@ -45,6 +52,9 @@ async function main() { const connection = new Connection(config.rpcUrl, DEFAULT_COMMITMENT_LEVEL); const wallet = new Wallet(keypair); + const provider = new AnchorProvider(connection, wallet, { + commitment: connection.commitment, + }); if (!config.baseMint) { throw new Error("Missing baseMint in configuration"); @@ -59,17 +69,16 @@ async function main() { if (!config.alphaVault) { throw new Error("Missing alpha vault in configuration"); } - - const poolType = getAlphaVaultPoolType(config.alphaVault.poolType); + const poolType = config.alphaVault.poolType; let poolKey: PublicKey; - if (poolType == PoolType.DYNAMIC) { + if (poolType == PoolTypeConfig.Dynamic) { poolKey = deriveCustomizablePermissionlessConstantProductPoolAddress( baseMint, quoteMint, createProgram(connection).ammProgram.programId, ); - } else if (poolType == PoolType.DLMM) { + } else if (poolType == PoolTypeConfig.Dlmm) { [poolKey] = deriveCustomizablePermissionlessLbPair( baseMint, quoteMint, @@ -79,181 +88,39 @@ async function main() { throw new Error(`Invalid pool type ${poolType}`); } - console.log( - `\n> Pool address: ${poolKey}, pool type ${config.alphaVault.poolType}`, - ); + console.log(`\n> Pool address: ${poolKey}, pool type ${poolType}`); - let initAlphaVaultTx: Transaction | null = null; - if (config.alphaVault.alphaVaultType == "fcfs") { - initAlphaVaultTx = await createFcfsAlphaVault( + if (config.alphaVault.alphaVaultType == AlphaVaultTypeConfig.Fcfs) { + await createFcfsAlphaVault( connection, wallet, - poolType, + toAlphaVaulSdkPoolType(poolType), poolKey, baseMint, quoteMint, quoteDecimals, config.alphaVault as FcfsAlphaVaultConfig, + config.dryRun, + config.computeUnitPriceMicroLamports, ); - } else if (config.alphaVault.alphaVaultType == "prorata") { - initAlphaVaultTx = await createProrataAlphaVault( + } else if (config.alphaVault.alphaVaultType == AlphaVaultTypeConfig.Prorata) { + await createProrataAlphaVault( connection, wallet, - poolType, + toAlphaVaulSdkPoolType(poolType), poolKey, baseMint, quoteMint, quoteDecimals, config.alphaVault as ProrataAlphaVaultConfig, + config.dryRun, + config.computeUnitPriceMicroLamports, ); } else { throw new Error( `Invalid alpha vault type ${config.alphaVault.alphaVaultType}`, ); } - modifyComputeUnitPriceIx( - initAlphaVaultTx, - config.computeUnitPriceMicroLamports, - ); - - if (config.dryRun) { - console.log(`\n> Simulating init alpha vault tx...`); - await runSimulateTransaction(connection, [wallet.payer], wallet.publicKey, [ - initAlphaVaultTx, - ]); - } else { - console.log(`>> Sending init alpha vault transaction...`); - const initAlphaVaulTxHash = await sendAndConfirmTransaction( - connection, - initAlphaVaultTx, - [wallet.payer], - ).catch((err) => { - console.error(err); - throw err; - }); - console.log( - `>>> Alpha vault initialized successfully with tx hash: ${initAlphaVaulTxHash}`, - ); - } -} - -async function createFcfsAlphaVault( - connection: Connection, - wallet: Wallet, - poolType: PoolType, - poolAddress: PublicKey, - baseMint: PublicKey, - quoteMint: PublicKey, - quoteDecimals: number, - params: FcfsAlphaVaultConfig, -): Promise { - let maxDepositingCap = getAmountInLamports( - params.maxDepositCap, - quoteDecimals, - ); - let individualDepositingCap = getAmountInLamports( - params.individualDepositingCap, - quoteDecimals, - ); - let escrowFee = getAmountInLamports(params.escrowFee, quoteDecimals); - let whitelistMode = getAlphaVaultWhitelistMode(params.whitelistMode); - - console.log(`\n> Initializing FcfsAlphaVault...`); - console.log(`- Using poolType: ${poolType}`); - console.log(`- Using poolMint ${poolAddress}`); - console.log(`- Using baseMint ${baseMint}`); - console.log(`- Using quoteMint ${quoteMint}`); - console.log(`- Using depositingPoint ${params.depositingPoint}`); - console.log(`- Using startVestingPoint ${params.startVestingPoint}`); - console.log(`- Using endVestingPoint ${params.endVestingPoint}`); - console.log( - `- Using maxDepositingCap ${params.maxDepositCap}. In lamports ${maxDepositingCap}`, - ); - console.log( - `- Using individualDepositingCap ${params.individualDepositingCap}. In lamports ${individualDepositingCap}`, - ); - console.log( - `- Using escrowFee ${params.escrowFee}. In lamports ${escrowFee}`, - ); - console.log( - `- Using whitelistMode ${params.whitelistMode}. In value ${whitelistMode}`, - ); - - const tx = await AlphaVault.createCustomizableFcfsVault( - connection, - { - quoteMint, - baseMint, - poolAddress, - poolType, - depositingPoint: new BN(params.depositingPoint), - startVestingPoint: new BN(params.startVestingPoint), - endVestingPoint: new BN(params.endVestingPoint), - maxDepositingCap, - individualDepositingCap, - escrowFee, - whitelistMode, - }, - wallet.publicKey, - { - cluster: "mainnet-beta", - }, - ); - return tx; -} - -async function createProrataAlphaVault( - connection: Connection, - wallet: Wallet, - poolType: PoolType, - poolAddress: PublicKey, - baseMint: PublicKey, - quoteMint: PublicKey, - quoteDecimals: number, - params: ProrataAlphaVaultConfig, -): Promise { - let maxBuyingCap = getAmountInLamports(params.maxBuyingCap, quoteDecimals); - let escrowFee = getAmountInLamports(params.escrowFee, quoteDecimals); - let whitelistMode = getAlphaVaultWhitelistMode(params.whitelistMode); - - console.log(`\n> Initializing ProrataAlphaVault...`); - console.log(`- Using poolType: ${poolType}`); - console.log(`- Using poolMint ${poolAddress}`); - console.log(`- Using baseMint ${baseMint}`); - console.log(`- Using quoteMint ${quoteMint}`); - console.log(`- Using depositingPoint ${params.depositingPoint}`); - console.log(`- Using startVestingPoint ${params.startVestingPoint}`); - console.log(`- Using endVestingPoint ${params.endVestingPoint}`); - console.log( - `- Using maxBuyingCap ${params.maxBuyingCap}. In lamports ${maxBuyingCap}`, - ); - console.log( - `- Using escrowFee ${params.escrowFee}. In lamports ${escrowFee}`, - ); - console.log( - `- Using whitelistMode ${params.whitelistMode}. In value ${whitelistMode}`, - ); - - const tx = await AlphaVault.createCustomizableProrataVault( - connection, - { - quoteMint, - baseMint, - poolAddress, - poolType, - depositingPoint: new BN(params.depositingPoint), - startVestingPoint: new BN(params.startVestingPoint), - endVestingPoint: new BN(params.endVestingPoint), - maxBuyingCap, - escrowFee, - whitelistMode, - }, - wallet.publicKey, - { - cluster: "mainnet-beta", - }, - ); - return tx; } main(); diff --git a/src/libs/constants.ts b/src/libs/constants.ts index 0124061..7360098 100644 --- a/src/libs/constants.ts +++ b/src/libs/constants.ts @@ -20,4 +20,4 @@ export const ALPHA_VAULT_PROGRAM_IDS = { devnet: "SNPmGgnywBvvrAKMLundzG6StojyHTHDLu7T4sdhP4k", localhost: "SNPmGgnywBvvrAKMLundzG6StojyHTHDLu7T4sdhP4k", "mainnet-beta": "vaU6kP7iNEGkbmPkLmZfGwiGxd4Mob24QQCie5R9kd2", -}; \ No newline at end of file +}; diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index 2e4f1aa..61aad50 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -1,8 +1,25 @@ -import { CustomizableFcfsVaultParams, CustomizableProrataVaultParams, IDL, PoolType, SEED } from "@meteora-ag/alpha-vault"; -import { ComputeBudgetProgram, Connection, PublicKey, SystemProgram, Transaction, sendAndConfirmTransaction } from "@solana/web3.js"; +import { + CustomizableFcfsVaultParams, + CustomizableProrataVaultParams, + IDL, + PoolType, + SEED, +} from "@meteora-ag/alpha-vault"; +import { + ComputeBudgetProgram, + Connection, + PublicKey, + SystemProgram, + Transaction, + sendAndConfirmTransaction, +} from "@solana/web3.js"; import { ALPHA_VAULT_PROGRAM_IDS } from "./constants"; import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; -import { getAlphaVaultWhitelistMode, getAmountInLamports, runSimulateTransaction } from "./utils"; +import { + getAlphaVaultWhitelistMode, + getAmountInLamports, + runSimulateTransaction, +} from "./utils"; import { FcfsAlphaVaultConfig, ProrataAlphaVaultConfig } from "./config"; import { BN } from "bn.js"; @@ -70,7 +87,7 @@ export async function createFcfsAlphaVault( }, wallet.publicKey, computeUnitPriceMicroLamports, - opts + opts, )) as Transaction; if (dryRun) { @@ -147,7 +164,7 @@ export async function createProrataAlphaVault( }, wallet.publicKey, computeUnitPriceMicroLamports, - opts + opts, )) as Transaction; if (dryRun) { @@ -177,10 +194,12 @@ async function createCustomizableFcfsVault( owner: PublicKey, computeUnitPriceMicroLamports: number, opts?: { - alphaVaultProgramId: PublicKey - } + alphaVaultProgramId: PublicKey; + }, ) { - const alphaVaultProgramId = opts?.alphaVaultProgramId || new PublicKey(ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"]); + const alphaVaultProgramId = + opts?.alphaVaultProgramId || + new PublicKey(ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"]); const { poolAddress, poolType, @@ -251,10 +270,12 @@ async function createCustomizableProrataVault( owner: PublicKey, computeUnitPriceMicroLamports: number, opts?: { - alphaVaultProgramId: PublicKey - } + alphaVaultProgramId: PublicKey; + }, ) { - const alphaVaultProgramId = opts?.alphaVaultProgramId || new PublicKey(ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"]); + const alphaVaultProgramId = + opts?.alphaVaultProgramId || + new PublicKey(ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"]); const { poolAddress, poolType, @@ -325,4 +346,4 @@ export function deriveAlphaVault( [Buffer.from(SEED.vault), base.toBuffer(), lbPair.toBuffer()], programId, ); -} \ No newline at end of file +} diff --git a/src/libs/utils.ts b/src/libs/utils.ts index eba3155..a4261ab 100644 --- a/src/libs/utils.ts +++ b/src/libs/utils.ts @@ -219,6 +219,17 @@ export function getAlphaVaultWhitelistMode( } } +export function toAlphaVaulSdkPoolType(poolType: PoolTypeConfig): PoolType { + switch (poolType) { + case PoolTypeConfig.Dynamic: + return PoolType.DYNAMIC; + case PoolTypeConfig.Dlmm: + return PoolType.DLMM; + default: + throw new Error(`Unsupported alpha vault pool type: ${poolType}`); + } +} + /** * Modify priority fee in transaction * @param tx From 040c9ea78cb695063fbcd76177022049fbc5451c Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Mon, 6 Jan 2025 19:14:09 +0700 Subject: [PATCH 03/11] chore: Add alpha vault tests --- package.json | 2 +- ...ol_with_permissionless_alpha_vault.test.ts | 428 ++++++++++++++++++ src/tests/setup.ts | 25 + 3 files changed, 454 insertions(+), 1 deletion(-) create mode 100644 src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts create mode 100644 src/tests/setup.ts diff --git a/package.json b/package.json index d8391c1..a6b6e79 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "test": "bun test", "create-dynamic-amm-pool": "bun run src/create_pool.ts --config ./config/create_dynamic_amm_pool.json", "create-dlmm-pool": "bun run src/create_pool.ts --config ./config/create_dlmm_pool.json", - "start-test-validator": "solana-test-validator --bind-address 0.0.0.0 --account-dir ./src/tests/artifacts/accounts --bpf-program LbVRzDTvBDEcrthxfZ4RL6yiq3uZw8bS6MwtdY6UhFQ ./src/tests/artifacts/lb_clmm.so --bpf-program Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB ./src/tests/artifacts/dynamic_amm.so --bpf-program 24Uqj9JCLxUeoC3hGfh5W3s9FM9uCHDS2SG3LYwBpyTi ./src/tests/artifacts/dynamic_vault.so --bpf-program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s ./src/tests/artifacts/metaplex.so --mint bossj3JvwiNK7pvjr149DqdtJxf2gdygbcmEPTkb2F1 --reset" + "start-test-validator": "solana-test-validator --bind-address 0.0.0.0 --account-dir ./src/tests/artifacts/accounts --bpf-program LbVRzDTvBDEcrthxfZ4RL6yiq3uZw8bS6MwtdY6UhFQ ./src/tests/artifacts/lb_clmm.so --bpf-program Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB ./src/tests/artifacts/dynamic_amm.so --bpf-program 24Uqj9JCLxUeoC3hGfh5W3s9FM9uCHDS2SG3LYwBpyTi ./src/tests/artifacts/dynamic_vault.so --bpf-program metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s ./src/tests/artifacts/metaplex.so --bpf-program SNPmGgnywBvvrAKMLundzG6StojyHTHDLu7T4sdhP4k ./src/tests/artifacts/alpha_vault.so --mint bossj3JvwiNK7pvjr149DqdtJxf2gdygbcmEPTkb2F1 --reset" }, "dependencies": { "@coral-xyz/anchor": "^0.28.0", diff --git a/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts b/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts new file mode 100644 index 0000000..72ffa6e --- /dev/null +++ b/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts @@ -0,0 +1,428 @@ +import { + Keypair, + PublicKey, +} from "@solana/web3.js"; +import { SOL_TOKEN_MINT } from "../libs/constants"; +import { + createPermissionlessDynamicPool, +} from "../index"; +import { web3 } from "@coral-xyz/anchor"; +import { + AlphaVaultTypeConfig, + FcfsAlphaVaultConfig, + MeteoraConfig, + PoolTypeConfig, + ProrataAlphaVaultConfig, + WhitelistModeConfig, +} from "../libs/config"; +import { + ASSOCIATED_TOKEN_PROGRAM_ID, + TOKEN_PROGRAM_ID, + createMint, + getOrCreateAssociatedTokenAccount, + mintTo, +} from "@solana/spl-token"; +import { + connection, + payerKeypair, + rpcUrl, + keypairFilePath, + payerWallet, + DLMM_PROGRAM_ID, + DYNAMIC_AMM_PROGRAM_ID, + ALPHA_VAULT_PROGRAM_ID, +} from "./setup"; +import { deriveCustomizablePermissionlessConstantProductPoolAddress } from "@mercurial-finance/dynamic-amm-sdk/dist/cjs/src/amm/utils"; +import { + createFcfsAlphaVault, + createProrataAlphaVault, +} from "../libs/create_alpha_vault_utils"; +import AlphaVault, { + Permissionless, + PoolType, + VaultMode, +} from "@meteora-ag/alpha-vault"; +import { Clock, ClockLayout } from "@meteora-ag/dlmm"; +import { BN } from "bn.js"; +import AmmImpl from "@mercurial-finance/dynamic-amm-sdk"; + +describe("Test create permissonless dynamic pool with fcfs alpha vault", () => { + const WEN_DECIMALS = 5; + const USDC_DECIMALS = 6; + const WEN_SUPPLY = 100_000_000; + const USDC_SUPPLY = 100_000_000; + const dryRun = false; + const computeUnitPriceMicroLamports = 100000; + + let WEN: PublicKey; + let USDC: PublicKey; + let userWEN: web3.PublicKey; + let userUSDC: web3.PublicKey; + + beforeAll(async () => { + WEN = await createMint( + connection, + payerKeypair, + payerKeypair.publicKey, + null, + WEN_DECIMALS, + Keypair.generate(), + undefined, + TOKEN_PROGRAM_ID, + ); + + USDC = await createMint( + connection, + payerKeypair, + payerKeypair.publicKey, + null, + USDC_DECIMALS, + Keypair.generate(), + undefined, + TOKEN_PROGRAM_ID, + ); + + const userWenInfo = await getOrCreateAssociatedTokenAccount( + connection, + payerKeypair, + WEN, + payerKeypair.publicKey, + false, + "confirmed", + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ); + userWEN = userWenInfo.address; + + const userUsdcInfo = await getOrCreateAssociatedTokenAccount( + connection, + payerKeypair, + USDC, + payerKeypair.publicKey, + false, + "confirmed", + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ); + userUSDC = userUsdcInfo.address; + + await mintTo( + connection, + payerKeypair, + WEN, + userWEN, + payerKeypair.publicKey, + WEN_SUPPLY * 10 ** WEN_DECIMALS, + [], + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ); + + await mintTo( + connection, + payerKeypair, + USDC, + userUSDC, + payerKeypair.publicKey, + USDC_SUPPLY * 10 ** USDC_DECIMALS, + [], + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ); + }); + + it("Test create permissonless dynamic pool with fcfs alpha vault", async () => { + const currentSlot = await connection.getSlot({ + commitment: "confirmed", + }); + const activationPoint = currentSlot + 30; + const depositingPoint = currentSlot; + const startVestingPoint = currentSlot + 50; + const endVestingPoint = currentSlot + 60; + + // 1. Create pool + const config: MeteoraConfig = { + dryRun: false, + rpcUrl, + keypairFilePath, + computeUnitPriceMicroLamports: 100000, + createBaseToken: null, + baseMint: WEN.toString(), + quoteSymbol: "SOL", + dynamicAmm: { + baseAmount: 1000, + quoteAmount: 1, + tradeFeeNumerator: 2500, + activationType: "slot", + activationPoint: activationPoint, + hasAlphaVault: true, + }, + dlmm: null, + alphaVault: { + poolType: PoolTypeConfig.Dynamic, + alphaVaultType: AlphaVaultTypeConfig.Fcfs, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxDepositCap: 0.5, + individualDepositingCap: 0.01, + escrowFee: 0, + whitelistMode: WhitelistModeConfig.Permissionless, + }, + lockLiquidity: null, + lfgSeedLiquidity: null, + singleBinSeedLiquidity: null, + }; + + await createPermissionlessDynamicPool( + config, + connection, + payerWallet, + WEN, + SOL_TOKEN_MINT, + { + programId: DYNAMIC_AMM_PROGRAM_ID, + }, + ); + + const poolKey = deriveCustomizablePermissionlessConstantProductPoolAddress( + WEN, + SOL_TOKEN_MINT, + DYNAMIC_AMM_PROGRAM_ID, + ); + + const pool = await AmmImpl.create(connection, poolKey, { + programId: DYNAMIC_AMM_PROGRAM_ID.toString(), + }); + + // 2. Create alpha vault + await createFcfsAlphaVault( + connection, + payerWallet, + PoolType.DYNAMIC, + poolKey, + WEN, + SOL_TOKEN_MINT, + 9, + config.alphaVault as FcfsAlphaVaultConfig, + dryRun, + computeUnitPriceMicroLamports, + { + alphaVaultProgramId: ALPHA_VAULT_PROGRAM_ID, + }, + ); + + const [alphaVaultPubkey] = deriveAlphaVault( + payerKeypair.publicKey, + poolKey, + ALPHA_VAULT_PROGRAM_ID, + ); + + const alphaVault = await AlphaVault.create(connection, alphaVaultPubkey); + expect(alphaVault.vault.baseMint).toEqual(WEN); + expect(alphaVault.vault.quoteMint).toEqual(SOL_TOKEN_MINT); + expect(alphaVault.vault.poolType).toEqual(PoolType.DYNAMIC); + expect(alphaVault.vault.vaultMode).toEqual(VaultMode.FCFS); + expect(alphaVault.vault.whitelistMode).toEqual(Permissionless); + }); +}); + +describe("Test create permissonless dynamic pool with prorata alpha vault", () => { + const WEN_DECIMALS = 5; + const USDC_DECIMALS = 6; + const WEN_SUPPLY = 100_000_000; + const USDC_SUPPLY = 100_000_000; + const dryRun = false; + const computeUnitPriceMicroLamports = 100000; + + let WEN: PublicKey; + let USDC: PublicKey; + let userWEN: web3.PublicKey; + let userUSDC: web3.PublicKey; + + beforeAll(async () => { + WEN = await createMint( + connection, + payerKeypair, + payerKeypair.publicKey, + null, + WEN_DECIMALS, + Keypair.generate(), + undefined, + TOKEN_PROGRAM_ID, + ); + + USDC = await createMint( + connection, + payerKeypair, + payerKeypair.publicKey, + null, + USDC_DECIMALS, + Keypair.generate(), + undefined, + TOKEN_PROGRAM_ID, + ); + + const userWenInfo = await getOrCreateAssociatedTokenAccount( + connection, + payerKeypair, + WEN, + payerKeypair.publicKey, + false, + "confirmed", + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ); + userWEN = userWenInfo.address; + + const userUsdcInfo = await getOrCreateAssociatedTokenAccount( + connection, + payerKeypair, + USDC, + payerKeypair.publicKey, + false, + "confirmed", + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ); + userUSDC = userUsdcInfo.address; + + await mintTo( + connection, + payerKeypair, + WEN, + userWEN, + payerKeypair.publicKey, + WEN_SUPPLY * 10 ** WEN_DECIMALS, + [], + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ); + + await mintTo( + connection, + payerKeypair, + USDC, + userUSDC, + payerKeypair.publicKey, + USDC_SUPPLY * 10 ** USDC_DECIMALS, + [], + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ); + }); + + it("Test create permissonless dynamic pool with prorata alpha vault", async () => { + const currentSlot = await connection.getSlot({ + commitment: "confirmed", + }); + const activationPoint = currentSlot + 30; + const depositingPoint = currentSlot; + const startVestingPoint = currentSlot + 40; + const endVestingPoint = currentSlot + 60; + + // 1. Create pool + const config: MeteoraConfig = { + dryRun: false, + rpcUrl, + keypairFilePath, + computeUnitPriceMicroLamports: 100000, + createBaseToken: null, + baseMint: WEN.toString(), + quoteSymbol: "SOL", + dynamicAmm: { + baseAmount: 1000, + quoteAmount: 1, + tradeFeeNumerator: 2500, + activationType: "slot", + activationPoint: activationPoint, + hasAlphaVault: true, + }, + dlmm: null, + alphaVault: { + poolType: PoolTypeConfig.Dynamic, + alphaVaultType: AlphaVaultTypeConfig.Prorata, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxBuyingCap: 10, + escrowFee: 0, + whitelistMode: WhitelistModeConfig.Permissionless, + }, + lockLiquidity: null, + lfgSeedLiquidity: null, + singleBinSeedLiquidity: null, + }; + + await createPermissionlessDynamicPool( + config, + connection, + payerWallet, + WEN, + SOL_TOKEN_MINT, + { + programId: DYNAMIC_AMM_PROGRAM_ID, + }, + ); + + const poolKey = deriveCustomizablePermissionlessConstantProductPoolAddress( + WEN, + SOL_TOKEN_MINT, + DYNAMIC_AMM_PROGRAM_ID, + ); + + const pool = await AmmImpl.create(connection, poolKey, { + programId: DYNAMIC_AMM_PROGRAM_ID.toString(), + }); + + // 2. Create alpha vault + await createProrataAlphaVault( + connection, + payerWallet, + PoolType.DYNAMIC, + poolKey, + WEN, + SOL_TOKEN_MINT, + 9, + config.alphaVault as ProrataAlphaVaultConfig, + dryRun, + computeUnitPriceMicroLamports, + { + alphaVaultProgramId: ALPHA_VAULT_PROGRAM_ID, + }, + ); + + const [alphaVaultPubkey] = deriveAlphaVault( + payerKeypair.publicKey, + poolKey, + ALPHA_VAULT_PROGRAM_ID, + ); + + const alphaVault = await AlphaVault.create(connection, alphaVaultPubkey); + expect(alphaVault.vault.baseMint).toEqual(WEN); + expect(alphaVault.vault.quoteMint).toEqual(SOL_TOKEN_MINT); + expect(alphaVault.vault.poolType).toEqual(PoolType.DYNAMIC); + expect(alphaVault.vault.vaultMode).toEqual(VaultMode.PRORATA); + expect(alphaVault.vault.whitelistMode).toEqual(Permissionless); + }); +}); \ No newline at end of file diff --git a/src/tests/setup.ts b/src/tests/setup.ts new file mode 100644 index 0000000..f989337 --- /dev/null +++ b/src/tests/setup.ts @@ -0,0 +1,25 @@ +import { Wallet } from "@coral-xyz/anchor"; +import { Connection, Keypair, PublicKey } from "@solana/web3.js"; +import { + ALPHA_VAULT_PROGRAM_IDS, + DLMM_PROGRAM_IDS, + DYNAMIC_AMM_PROGRAM_IDS, +} from "../libs/constants"; +import fs from "fs"; + +export const keypairFilePath = + "./src/tests/keys/localnet/admin-bossj3JvwiNK7pvjr149DqdtJxf2gdygbcmEPTkb2F1.json"; +export const keypairBuffer = fs.readFileSync(keypairFilePath, "utf-8"); +export const rpcUrl = "http://127.0.0.1:8899"; +export const connection = new Connection("http://127.0.0.1:8899", "confirmed"); +export const payerKeypair = Keypair.fromSecretKey( + new Uint8Array(JSON.parse(keypairBuffer)), +); +export const payerWallet = new Wallet(payerKeypair); +export const DLMM_PROGRAM_ID = new PublicKey(DLMM_PROGRAM_IDS["localhost"]); +export const DYNAMIC_AMM_PROGRAM_ID = new PublicKey( + DYNAMIC_AMM_PROGRAM_IDS["localhost"], +); +export const ALPHA_VAULT_PROGRAM_ID = new PublicKey( + ALPHA_VAULT_PROGRAM_IDS["localhost"], +); \ No newline at end of file From d9ace47b8078e44bc81782c56f038b268d45e0ca Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Mon, 6 Jan 2025 21:32:18 +0700 Subject: [PATCH 04/11] chore: Add alpha vault test artifact --- src/tests/artifacts/alpha_vault.so | Bin 0 -> 1013208 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 src/tests/artifacts/alpha_vault.so diff --git a/src/tests/artifacts/alpha_vault.so b/src/tests/artifacts/alpha_vault.so new file mode 100755 index 0000000000000000000000000000000000000000..fef2324aafb80a82b4dce4d17f04bc953a957bfa GIT binary patch literal 1013208 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 z zXL7sG;m&X1j-Su%32$n{$?$Vvy`HyiI!2a*@ zct?r5CVvlJwI9pRczpgijT>37LFN3Q! z9zO~WOf!CuNiDzZ-y%iN-kiVCr?ApN77r;(GkI#c+^7lqm zc^>(DAj&~-UjE*PiVs}N%MZ%m+feZl`TH5lG5Px#${zXq7s@XA`xVM=`TG;fe))S6 z$^rR%5z3nUJqYEh{JjTdi~Rit<&r*gJvP5nlE2TO;#2bX6_m4@_-ibEME?GPig(H1 zH&FJ<-!D)OoWb)usytniFzN-uE zmr6K3RPG$YJXRhl+uZM5em)8JcNTlxzgZk} zKV@;7`yq?_+@DzNT*v)!zeguOqDRX1&zRePpi9cppP2WQy&IVO%JE;AC(1SMw=Bok zR4#FUWywQjZ`aoJUs3*i8YvHVW1j3mH||0Q+6OUjD!Y$hK01OfJcjlkM+eHu6PR1` z=wJaIokSOw(W6u7(i%EBjrQL}Tj$XJ1$3nBv@oAl4&TMRt6buK$Z~&2${pp_hq%6> za-!Vhe#f$Y`(v!HDErDG_dAw)=TodNDJR_jSjM-w-?4af3G404=!pBt%J|w%%zNCg zQSuFC$IAYHyyUKOLpfBAC$K(I_HM`ASDxL9d3zE)QjT|E-rj>Q-idbaMtjPQy_kpl z(1R(oeE>bHTvLvehswoiT%V`hRPHHnD3?pPK3_Rh9w^)QV!f-pco=ivMK_h(%7Z6y z{DyM$H0I7T=;SE6cMM&8UYYy%$>ZBoF1(22=aeJmpo-($+`muO-&HOy;rQCC=;SrD zdm24dwgSvc-0w`b@4SV1S-E3;9*5pvc9na|edP`10{5$u?OPXc`$gr(JD9hW1MX)f z>x-0&?_qsKx$!>c!3XHRa*6v-$@XI9A@_5V-2M#L7hXh{xnGiuFI>Xhx{S83q5Iqq zN9xPJVBX+kM2yPt^3g7A#~?3y7mA%c?j)1 ziVlvT7w6H5i!MHeE_>+SvuI}l9UMp7FQB_s%_RcDwL&tBUo%70keQA39 z)BQ7N%>R*_#(W<+R`!kgKgu_Z`8#sJ*CUqoN5*^{<<^OO{*4?O^Ksa^KazPn13TzjQKZmV*$6{f_YG7Yly%<_0yT|V)$ zHM8!gqwCd|(lM)4l5Xk$ebK8F{mIUzT9%W&Y;7)Uv)O*jRJLq-li{lEYY^5-uWckzAR%JWPI`JHorq3OQ*-1)Q`Ac mmKFZoZgzG(-@fesgK4cC`{qj18{RtoWG%}b|DFG(xBnk=FNdrE literal 0 HcmV?d00001 From 8af11ad6409a98c07147232d40d8a2ddcdbe6567 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Mon, 6 Jan 2025 21:37:21 +0700 Subject: [PATCH 05/11] fix: Update unit tests --- src/libs/constants.ts | 10 ++++++++-- ...pool_with_permissionless_alpha_vault.test.ts | 17 +++++++---------- src/tests/create_pool.test.ts | 12 ++++++++---- src/tests/seed_liquidity_lfg.test.ts | 10 +++++++--- src/tests/seed_liquidity_single_bin.test.ts | 10 +++++++--- src/tests/setup.ts | 2 +- 6 files changed, 38 insertions(+), 23 deletions(-) diff --git a/src/libs/constants.ts b/src/libs/constants.ts index 7360098..ce806f4 100644 --- a/src/libs/constants.ts +++ b/src/libs/constants.ts @@ -1,6 +1,12 @@ +import { PublicKey } from "@solana/web3.js"; + export const DEFAULT_COMMITMENT_LEVEL = "confirmed"; -export const SOL_TOKEN_MINT = "So11111111111111111111111111111111111111112"; -export const USDC_TOKEN_MINT = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"; +export const SOL_TOKEN_MINT = new PublicKey( + "So11111111111111111111111111111111111111112", +); +export const USDC_TOKEN_MINT = new PublicKey( + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", +); export const SOL_TOKEN_DECIMALS = 9; export const USDC_TOKEN_DECIMALS = 6; diff --git a/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts b/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts index 72ffa6e..7d952f0 100644 --- a/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts +++ b/src/tests/create_dynamic_pool_with_permissionless_alpha_vault.test.ts @@ -1,13 +1,9 @@ -import { - Keypair, - PublicKey, -} from "@solana/web3.js"; +import { Keypair, PublicKey } from "@solana/web3.js"; import { SOL_TOKEN_MINT } from "../libs/constants"; -import { - createPermissionlessDynamicPool, -} from "../index"; +import { createPermissionlessDynamicPool } from "../index"; import { web3 } from "@coral-xyz/anchor"; import { + ActivationTypeConfig, AlphaVaultTypeConfig, FcfsAlphaVaultConfig, MeteoraConfig, @@ -36,6 +32,7 @@ import { deriveCustomizablePermissionlessConstantProductPoolAddress } from "@mer import { createFcfsAlphaVault, createProrataAlphaVault, + deriveAlphaVault, } from "../libs/create_alpha_vault_utils"; import AlphaVault, { Permissionless, @@ -163,7 +160,7 @@ describe("Test create permissonless dynamic pool with fcfs alpha vault", () => { baseAmount: 1000, quoteAmount: 1, tradeFeeNumerator: 2500, - activationType: "slot", + activationType: ActivationTypeConfig.Slot, activationPoint: activationPoint, hasAlphaVault: true, }, @@ -354,7 +351,7 @@ describe("Test create permissonless dynamic pool with prorata alpha vault", () = baseAmount: 1000, quoteAmount: 1, tradeFeeNumerator: 2500, - activationType: "slot", + activationType: ActivationTypeConfig.Slot, activationPoint: activationPoint, hasAlphaVault: true, }, @@ -425,4 +422,4 @@ describe("Test create permissonless dynamic pool with prorata alpha vault", () = expect(alphaVault.vault.vaultMode).toEqual(VaultMode.PRORATA); expect(alphaVault.vault.whitelistMode).toEqual(Permissionless); }); -}); \ No newline at end of file +}); diff --git a/src/tests/create_pool.test.ts b/src/tests/create_pool.test.ts index 8eec75f..f3b238c 100644 --- a/src/tests/create_pool.test.ts +++ b/src/tests/create_pool.test.ts @@ -10,7 +10,11 @@ import { createPermissionlessDynamicPool, } from "../index"; import { Wallet, web3 } from "@coral-xyz/anchor"; -import { MeteoraConfig } from "../libs/config"; +import { + ActivationTypeConfig, + MeteoraConfig, + PriceRoundingConfig, +} from "../libs/config"; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, @@ -139,7 +143,7 @@ describe("Test Create Pool", () => { baseAmount: 1000, quoteAmount: 0.1, tradeFeeNumerator: 2500, - activationType: "timestamp", + activationType: ActivationTypeConfig.Timestamp, activationPoint: null, hasAlphaVault: false, }, @@ -174,9 +178,9 @@ describe("Test Create Pool", () => { binStep: 200, feeBps: 200, initialPrice: 0.5, - activationType: "timestamp", + activationType: ActivationTypeConfig.Timestamp, activationPoint: null, - priceRounding: "up", + priceRounding: PriceRoundingConfig.Up, hasAlphaVault: false, }, dynamicAmm: null, diff --git a/src/tests/seed_liquidity_lfg.test.ts b/src/tests/seed_liquidity_lfg.test.ts index 03df345..ca7ec4e 100644 --- a/src/tests/seed_liquidity_lfg.test.ts +++ b/src/tests/seed_liquidity_lfg.test.ts @@ -8,7 +8,11 @@ import { seedLiquiditySingleBin, } from "../index"; import { BN, Wallet, web3 } from "@coral-xyz/anchor"; -import { MeteoraConfig } from "../libs/config"; +import { + ActivationTypeConfig, + MeteoraConfig, + PriceRoundingConfig, +} from "../libs/config"; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, @@ -151,9 +155,9 @@ describe("Test Seed Liquidity Single Bin", () => { binStep, feeBps, initialPrice, - activationType: "slot", + activationType: ActivationTypeConfig.Slot, activationPoint, - priceRounding: "up", + priceRounding: PriceRoundingConfig.Up, hasAlphaVault: false, }, dynamicAmm: null, diff --git a/src/tests/seed_liquidity_single_bin.test.ts b/src/tests/seed_liquidity_single_bin.test.ts index 73b360b..bffbf88 100644 --- a/src/tests/seed_liquidity_single_bin.test.ts +++ b/src/tests/seed_liquidity_single_bin.test.ts @@ -7,7 +7,11 @@ import { seedLiquiditySingleBin, } from "../index"; import { BN, Wallet, web3 } from "@coral-xyz/anchor"; -import { MeteoraConfig } from "../libs/config"; +import { + ActivationTypeConfig, + MeteoraConfig, + PriceRoundingConfig, +} from "../libs/config"; import { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, @@ -145,9 +149,9 @@ describe("Test Seed Liquidity Single Bin", () => { binStep, feeBps, initialPrice, - activationType: "slot", + activationType: ActivationTypeConfig.Slot, activationPoint, - priceRounding: "up", + priceRounding: PriceRoundingConfig.Up, hasAlphaVault: false, }, dynamicAmm: null, diff --git a/src/tests/setup.ts b/src/tests/setup.ts index f989337..4d40dd2 100644 --- a/src/tests/setup.ts +++ b/src/tests/setup.ts @@ -22,4 +22,4 @@ export const DYNAMIC_AMM_PROGRAM_ID = new PublicKey( ); export const ALPHA_VAULT_PROGRAM_ID = new PublicKey( ALPHA_VAULT_PROGRAM_IDS["localhost"], -); \ No newline at end of file +); From 2fe5bb8482758ec76b7dd24a37ee19303730c4c9 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Mon, 6 Jan 2025 22:06:08 +0700 Subject: [PATCH 06/11] chore: Add function to create permissioned alpha vault with authority --- src/libs/create_alpha_vault_utils.ts | 145 ++++++++++- ...ssioned_with_authority_alpha_vault.test.ts | 232 ++++++++++++++++++ 2 files changed, 375 insertions(+), 2 deletions(-) create mode 100644 src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index 61aad50..951e729 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -1,13 +1,16 @@ -import { +import AlphaVault, { CustomizableFcfsVaultParams, CustomizableProrataVaultParams, IDL, PoolType, SEED, + VaultMode, + WalletDepositCap, } from "@meteora-ag/alpha-vault"; import { ComputeBudgetProgram, Connection, + Keypair, PublicKey, SystemProgram, Transaction, @@ -20,7 +23,12 @@ import { getAmountInLamports, runSimulateTransaction, } from "./utils"; -import { FcfsAlphaVaultConfig, ProrataAlphaVaultConfig } from "./config"; +import { + AlphaVaultTypeConfig, + FcfsAlphaVaultConfig, + ProrataAlphaVaultConfig, + WhitelistModeConfig, +} from "./config"; import { BN } from "bn.js"; export async function createFcfsAlphaVault( @@ -188,6 +196,121 @@ export async function createProrataAlphaVault( } } +export async function createPermissionedAlphaVaultWithAuthority( + connection: Connection, + wallet: Wallet, + vaultAuthority: Keypair, + alphaVaultType: AlphaVaultTypeConfig, + poolType: PoolType, + poolAddress: PublicKey, + baseMint: PublicKey, + quoteMint: PublicKey, + quoteDecimals: number, + params: FcfsAlphaVaultConfig | ProrataAlphaVaultConfig, + whitelistList: WalletDepositCap[], + dryRun: boolean, + computeUnitPriceMicroLamports: number, + opts?: { + alphaVaultProgramId: PublicKey; + }, +): Promise { + if (params.whitelistMode != WhitelistModeConfig.PermissionedWithAuthority) { + throw new Error(`Invalid whitelist mode ${params.whitelistMode}. Only Permissioned with authority is allowed + `); + } + + // 1. Create alpha vault + if (alphaVaultType == AlphaVaultTypeConfig.Fcfs) { + await createFcfsAlphaVault( + connection, + wallet, + poolType, + poolAddress, + baseMint, + quoteMint, + quoteDecimals, + params as FcfsAlphaVaultConfig, + dryRun, + computeUnitPriceMicroLamports, + opts, + ); + } else if (alphaVaultType == AlphaVaultTypeConfig.Prorata) { + await createProrataAlphaVault( + connection, + wallet, + poolType, + poolAddress, + baseMint, + quoteMint, + quoteDecimals, + params as ProrataAlphaVaultConfig, + dryRun, + computeUnitPriceMicroLamports, + opts, + ); + } + + // 2. Create StakeEscrow account for each whitelisted wallet + const alphaVaultProgramId = new PublicKey( + opts?.alphaVaultProgramId ?? ALPHA_VAULT_PROGRAM_IDS["mainnet-beta"], + ); + + const [alphaVaultPubkey] = deriveAlphaVault( + wallet.publicKey, + poolAddress, + alphaVaultProgramId, + ); + + console.log("Creating stake escrow accounts..."); + + const alphaVault = await createAlphaVaultInstance( + connection, + alphaVaultProgramId, + alphaVaultPubkey, + ); + + // Create StakeEscrow accounts for whitelist list + const instructions = + await alphaVault.createMultipleStakeEscrowByAuthorityInstructions( + whitelistList, + vaultAuthority.publicKey, + ); + + const { blockhash, lastValidBlockHeight } = + await connection.getLatestBlockhash("confirmed"); + const setPriorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({ + microLamports: computeUnitPriceMicroLamports, + }); + + const createStakeEscrowAccountsTx = new Transaction({ + blockhash, + lastValidBlockHeight, + feePayer: vaultAuthority.publicKey, + }) + .add(...instructions) + .add(setPriorityFeeIx); + + if (dryRun) { + console.log(`\n> Simulating create stake escrow accounts tx...`); + await runSimulateTransaction(connection, [wallet.payer], wallet.publicKey, [ + createStakeEscrowAccountsTx, + ]); + } else { + console.log(`>> Sending init alpha vault transaction...`); + const createStakeEscrowAccountTxHash = await sendAndConfirmTransaction( + connection, + createStakeEscrowAccountsTx, + [vaultAuthority], + ).catch((err) => { + console.error(err); + throw err; + }); + console.log( + `>>> Create stake escrow accounts successfully with tx hash: ${createStakeEscrowAccountTxHash}`, + ); + } +} + async function createCustomizableFcfsVault( connection: Connection, vaultParam: CustomizableFcfsVaultParams, @@ -347,3 +470,21 @@ export function deriveAlphaVault( programId, ); } + +export async function createAlphaVaultInstance( + connection: Connection, + alphaVaultProgramId: PublicKey, + vaultAddress: PublicKey, +): Promise { + const provider = new AnchorProvider( + connection, + {} as any, + AnchorProvider.defaultOptions(), + ); + const program = new Program(IDL, alphaVaultProgramId, provider); + + const vault = await program.account.vault.fetch(vaultAddress); + const vaultMode = vault.vaultMode === 0 ? VaultMode.PRORATA : VaultMode.FCFS; + + return new AlphaVault(program, vaultAddress, vault, vaultMode); +} diff --git a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts new file mode 100644 index 0000000..aac90b6 --- /dev/null +++ b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts @@ -0,0 +1,232 @@ +import { Keypair, PublicKey } from "@solana/web3.js"; +import { SOL_TOKEN_MINT } from "../libs/constants"; +import { + createPermissionlessDynamicPool, + toAlphaVaulSdkPoolType, +} from "../index"; +import { web3 } from "@coral-xyz/anchor"; +import { + ActivationTypeConfig, + AlphaVaultTypeConfig, + MeteoraConfig, + PoolTypeConfig, + WhitelistModeConfig, +} from "../libs/config"; +import { + ASSOCIATED_TOKEN_PROGRAM_ID, + TOKEN_PROGRAM_ID, + createMint, + getOrCreateAssociatedTokenAccount, + mintTo, +} from "@solana/spl-token"; +import { + connection, + payerKeypair, + rpcUrl, + keypairFilePath, + payerWallet, + DYNAMIC_AMM_PROGRAM_ID, + ALPHA_VAULT_PROGRAM_ID, +} from "./setup"; +import { deriveCustomizablePermissionlessConstantProductPoolAddress } from "@mercurial-finance/dynamic-amm-sdk/dist/cjs/src/amm/utils"; +import { createPermissionedAlphaVaultWithAuthority } from "../libs/create_alpha_vault_utils"; +import { BN } from "bn.js"; + +describe("Test create dynamic pool with permissioned authority fcfs alpha vault", () => { + const WEN_DECIMALS = 5; + const USDC_DECIMALS = 6; + const WEN_SUPPLY = 100_000_000; + const USDC_SUPPLY = 100_000_000; + const dryRun = false; + const computeUnitPriceMicroLamports = 100000; + + let WEN: PublicKey; + let USDC: PublicKey; + let userWEN: web3.PublicKey; + let userUSDC: web3.PublicKey; + + beforeAll(async () => { + WEN = await createMint( + connection, + payerKeypair, + payerKeypair.publicKey, + null, + WEN_DECIMALS, + Keypair.generate(), + undefined, + TOKEN_PROGRAM_ID, + ); + + USDC = await createMint( + connection, + payerKeypair, + payerKeypair.publicKey, + null, + USDC_DECIMALS, + Keypair.generate(), + undefined, + TOKEN_PROGRAM_ID, + ); + + const userWenInfo = await getOrCreateAssociatedTokenAccount( + connection, + payerKeypair, + WEN, + payerKeypair.publicKey, + false, + "confirmed", + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ); + userWEN = userWenInfo.address; + + const userUsdcInfo = await getOrCreateAssociatedTokenAccount( + connection, + payerKeypair, + USDC, + payerKeypair.publicKey, + false, + "confirmed", + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ); + userUSDC = userUsdcInfo.address; + + await mintTo( + connection, + payerKeypair, + WEN, + userWEN, + payerKeypair.publicKey, + WEN_SUPPLY * 10 ** WEN_DECIMALS, + [], + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ); + + await mintTo( + connection, + payerKeypair, + USDC, + userUSDC, + payerKeypair.publicKey, + USDC_SUPPLY * 10 ** USDC_DECIMALS, + [], + { + commitment: "confirmed", + }, + TOKEN_PROGRAM_ID, + ); + }); + + it("Happy case", async () => { + const currentSlot = await connection.getSlot({ + commitment: "confirmed", + }); + const activationPoint = currentSlot + 30; + const depositingPoint = currentSlot; + const startVestingPoint = currentSlot + 50; + const endVestingPoint = currentSlot + 60; + + // 1. Create pool + const config: MeteoraConfig = { + dryRun: false, + rpcUrl, + keypairFilePath, + computeUnitPriceMicroLamports: 100000, + createBaseToken: null, + baseMint: WEN.toString(), + quoteSymbol: "SOL", + dynamicAmm: { + baseAmount: 1000, + quoteAmount: 1, + tradeFeeNumerator: 2500, + activationType: ActivationTypeConfig.Slot, + activationPoint, + hasAlphaVault: true, + }, + dlmm: null, + alphaVault: { + poolType: PoolTypeConfig.Dynamic, + alphaVaultType: AlphaVaultTypeConfig.Fcfs, + depositingPoint, + startVestingPoint, + endVestingPoint, + maxDepositCap: 0.5, + individualDepositingCap: 0.01, + escrowFee: 0, + whitelistMode: WhitelistModeConfig.PermissionedWithAuthority, + }, + lockLiquidity: null, + lfgSeedLiquidity: null, + singleBinSeedLiquidity: null, + }; + + // 1. Create pool + await createPermissionlessDynamicPool( + config, + connection, + payerWallet, + WEN, + SOL_TOKEN_MINT, + { + programId: DYNAMIC_AMM_PROGRAM_ID, + }, + ); + + const vaultAuthority = payerKeypair; + const alphaVaultType = config.alphaVault.alphaVaultType; + const poolType = toAlphaVaulSdkPoolType(config.alphaVault.poolType); + const poolAddress = + deriveCustomizablePermissionlessConstantProductPoolAddress( + WEN, + SOL_TOKEN_MINT, + DYNAMIC_AMM_PROGRAM_ID, + ); + const alphaVaultConfig = config.alphaVault; + + const whiteListedWallet_1 = Keypair.generate(); + const whiteListedWallet_2 = Keypair.generate(); + const whiteListedWallet_1_maxAmount = new BN(1 * 10 ** 9); + const whiteListedWallet_2_maxAmount = new BN(5 * 10 ** 9); + + const whitelistList = [ + { + address: whiteListedWallet_1.publicKey, + maxAmount: whiteListedWallet_1_maxAmount, + }, + { + address: whiteListedWallet_2.publicKey, + maxAmount: whiteListedWallet_2_maxAmount, + }, + ]; + + // 2. Create permissioned alpha vault + await createPermissionedAlphaVaultWithAuthority( + connection, + payerWallet, + vaultAuthority, + alphaVaultType, + poolType, + poolAddress, + WEN, + SOL_TOKEN_MINT, + 9, + alphaVaultConfig, + whitelistList, + dryRun, + computeUnitPriceMicroLamports, + { + alphaVaultProgramId: ALPHA_VAULT_PROGRAM_ID, + }, + ); + }); +}); From 67c342f74794f975d3ab322230195023dfeaa896 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Tue, 7 Jan 2025 14:04:46 +0700 Subject: [PATCH 07/11] chore: Add assertion for create permissioned vault test --- src/libs/create_alpha_vault_utils.ts | 5 +- ...ssioned_with_authority_alpha_vault.test.ts | 106 ++++++++++++++++-- 2 files changed, 98 insertions(+), 13 deletions(-) diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index 951e729..535a652 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -460,14 +460,15 @@ async function createCustomizableProrataVault( }).add(createTx); } +// Derive alpha vault public key export function deriveAlphaVault( base: PublicKey, lbPair: PublicKey, - programId: PublicKey, + alphaVaultProgramId: PublicKey, ) { return PublicKey.findProgramAddressSync( [Buffer.from(SEED.vault), base.toBuffer(), lbPair.toBuffer()], - programId, + alphaVaultProgramId, ); } diff --git a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts index aac90b6..953345b 100644 --- a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts +++ b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts @@ -1,4 +1,4 @@ -import { Keypair, PublicKey } from "@solana/web3.js"; +import { Keypair, PublicKey, sendAndConfirmTransaction } from "@solana/web3.js"; import { SOL_TOKEN_MINT } from "../libs/constants"; import { createPermissionlessDynamicPool, @@ -29,8 +29,13 @@ import { ALPHA_VAULT_PROGRAM_ID, } from "./setup"; import { deriveCustomizablePermissionlessConstantProductPoolAddress } from "@mercurial-finance/dynamic-amm-sdk/dist/cjs/src/amm/utils"; -import { createPermissionedAlphaVaultWithAuthority } from "../libs/create_alpha_vault_utils"; +import { + createAlphaVaultInstance, + createPermissionedAlphaVaultWithAuthority, + deriveAlphaVault, +} from "../libs/create_alpha_vault_utils"; import { BN } from "bn.js"; +import { PermissionWithAuthority } from "@meteora-ag/alpha-vault"; describe("Test create dynamic pool with permissioned authority fcfs alpha vault", () => { const WEN_DECIMALS = 5; @@ -160,7 +165,7 @@ describe("Test create dynamic pool with permissioned authority fcfs alpha vault" depositingPoint, startVestingPoint, endVestingPoint, - maxDepositCap: 0.5, + maxDepositCap: 5, individualDepositingCap: 0.01, escrowFee: 0, whitelistMode: WhitelistModeConfig.PermissionedWithAuthority, @@ -193,19 +198,23 @@ describe("Test create dynamic pool with permissioned authority fcfs alpha vault" ); const alphaVaultConfig = config.alphaVault; - const whiteListedWallet_1 = Keypair.generate(); - const whiteListedWallet_2 = Keypair.generate(); - const whiteListedWallet_1_maxAmount = new BN(1 * 10 ** 9); - const whiteListedWallet_2_maxAmount = new BN(5 * 10 ** 9); + // Generate whitelist wallets + const whitelistWallet_1 = Keypair.generate(); + const whitelistWallet_2 = Keypair.generate(); + await connection.requestAirdrop(whitelistWallet_1.publicKey, 10 * 10 ** 9); + await connection.requestAirdrop(whitelistWallet_2.publicKey, 10 * 10 ** 9); + + const whitelistWallet_1_maxAmount = new BN(1 * 10 ** 9); + const whitelistWallet_2_maxAmount = new BN(5 * 10 ** 9); const whitelistList = [ { - address: whiteListedWallet_1.publicKey, - maxAmount: whiteListedWallet_1_maxAmount, + address: whitelistWallet_1.publicKey, + maxAmount: whitelistWallet_1_maxAmount, }, { - address: whiteListedWallet_2.publicKey, - maxAmount: whiteListedWallet_2_maxAmount, + address: whitelistWallet_2.publicKey, + maxAmount: whitelistWallet_2_maxAmount, }, ]; @@ -228,5 +237,80 @@ describe("Test create dynamic pool with permissioned authority fcfs alpha vault" alphaVaultProgramId: ALPHA_VAULT_PROGRAM_ID, }, ); + + const [alphaVaultPubkey] = deriveAlphaVault( + payerWallet.publicKey, + poolAddress, + ALPHA_VAULT_PROGRAM_ID, + ); + + const alphaVault = await createAlphaVaultInstance( + connection, + ALPHA_VAULT_PROGRAM_ID, + alphaVaultPubkey, + ); + + expect(alphaVault.vault.whitelistMode).toEqual(PermissionWithAuthority); + + { + const depositAmount = new BN(5 * 10 ** 8); + const depositTx = await alphaVault.deposit( + depositAmount, + whitelistWallet_1.publicKey, + ); + + const depositTxHash = await sendAndConfirmTransaction( + connection, + depositTx, + [whitelistWallet_1], + ).catch((e) => { + console.error(e); + throw e; + }); + + const whitelistWalletEscrow_1 = await alphaVault.getEscrow( + whitelistWallet_1.publicKey, + ); + expect(whitelistWalletEscrow_1.totalDeposit.toString()).toEqual( + depositAmount.toString(), + ); + } + + { + const depositAmount = new BN(5 * 10 ** 8); + const depositTx = await alphaVault.deposit( + depositAmount, + whitelistWallet_1.publicKey, + ); + + const depositTxHash = await sendAndConfirmTransaction( + connection, + depositTx, + [whitelistWallet_1], + ).catch((e) => { + console.error(e); + throw e; + }); + + const whitelistWalletEscrow_1 = await alphaVault.getEscrow( + whitelistWallet_1.publicKey, + ); + expect(whitelistWalletEscrow_1.totalDeposit.toString()).toEqual( + (depositAmount * 2).toString(), + ); + } + + // deposit exceed cap + { + const depositAmount = new BN(1 * 10 ** 8); + const depositTx = await alphaVault.deposit( + depositAmount, + whitelistWallet_1.publicKey, + ); + + await expect( + sendAndConfirmTransaction(connection, depositTx, [whitelistWallet_1]), + ).rejects.toThrow(); + } }); }); From aad464d72e5f7a3d1c766e7434cb88495ae3cd14 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Tue, 7 Jan 2025 14:08:02 +0700 Subject: [PATCH 08/11] chore: Format code --- src/libs/create_alpha_vault_utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index 535a652..6582626 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -296,7 +296,7 @@ export async function createPermissionedAlphaVaultWithAuthority( createStakeEscrowAccountsTx, ]); } else { - console.log(`>> Sending init alpha vault transaction...`); + console.log(`>> Sending stake escrow accounts transaction...`); const createStakeEscrowAccountTxHash = await sendAndConfirmTransaction( connection, createStakeEscrowAccountsTx, From 27d4954c20c0ac326de8e1c479ace2c169203aa7 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Tue, 7 Jan 2025 16:01:20 +0700 Subject: [PATCH 09/11] feat: Add script to create permissioned pool with authority --- bun.lockb | Bin 196893 -> 197256 bytes ...ool_with_permissioned_authority_vault.json | 28 ++++++ config/whitelist_wallet.csv | 2 + package.json | 1 + src/create_alpha_vault.ts | 91 ++++++++++++++---- src/libs/config.ts | 3 + src/libs/create_alpha_vault_utils.ts | 7 +- src/libs/utils.ts | 21 ++++ ...ssioned_with_authority_alpha_vault.test.ts | 2 - 9 files changed, 129 insertions(+), 26 deletions(-) create mode 100644 config/create_dynamic_amm_pool_with_permissioned_authority_vault.json create mode 100644 config/whitelist_wallet.csv diff --git a/bun.lockb b/bun.lockb index 65cabfc02541418c89e429304bee701abcf5c3c6..65764a1d61bbaeea36f473714d60b09dfc8a7337 100755 GIT binary patch delta 36438 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 delta 36396 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 P$t-`vElX$l%i8}3`d`2A diff --git a/config/create_dynamic_amm_pool_with_permissioned_authority_vault.json b/config/create_dynamic_amm_pool_with_permissioned_authority_vault.json new file mode 100644 index 0000000..f7d6312 --- /dev/null +++ b/config/create_dynamic_amm_pool_with_permissioned_authority_vault.json @@ -0,0 +1,28 @@ +{ + "rpcUrl": "https://api.mainnet-beta.solana.com", + "dryRun": true, + "keypairFilePath": "keypair.json", + "computeUnitPriceMicroLamports": 100000, + "baseMint": "3B5wuUrMEi5yATD7on46hKfej3pfmd7t1RKgrsN3pump", + "quoteSymbol": "SOL", + "dynamicAmm": { + "baseAmount": "100", + "quoteAmount": "0.001", + "tradeFeeNumerator": 2500, + "activationType": "timestamp", + "activationPoint": null, + "hasAlphaVault": true + }, + "alphaVault": { + "poolType": "dynamic", + "alphaVaultType": "fcfs", + "depositingPoint": 1733547099, + "startVestingPoint": 1733548099, + "endVestingPoint": 1733549099, + "maxDepositCap": 100, + "individualDepositingCap": 1, + "escrowFee": 0, + "whitelistMode": "permissioned_with_authority", + "whitelistFilepath": "./config/whitelist_wallet.csv" + } +} \ No newline at end of file diff --git a/config/whitelist_wallet.csv b/config/whitelist_wallet.csv new file mode 100644 index 0000000..ab07f42 --- /dev/null +++ b/config/whitelist_wallet.csv @@ -0,0 +1,2 @@ +address,maxAmount +ETp2wTykSe3iGYzPCn6upP8NVB7a1pe6WTZidGNJH7KC,0.5 \ No newline at end of file diff --git a/package.json b/package.json index a6b6e79..db7157f 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@types/jest": "^29.5.14", "ajv": "^8.17.1", "bn.js": "^5.2.1", + "csv-parse": "^5.6.0", "decimal.js": "^10.4.3" }, "author": "", diff --git a/src/create_alpha_vault.ts b/src/create_alpha_vault.ts index 4ed2214..133b611 100644 --- a/src/create_alpha_vault.ts +++ b/src/create_alpha_vault.ts @@ -21,11 +21,16 @@ import { AlphaVaultTypeConfig, PoolTypeConfig, toAlphaVaulSdkPoolType, + WhitelistModeConfig, + parseCsv, } from "."; import { AnchorProvider, Wallet } from "@coral-xyz/anchor"; import { BN } from "bn.js"; -import AlphaVault, { PoolType } from "@meteora-ag/alpha-vault"; +import AlphaVault, { + PoolType, + WalletDepositCap, +} from "@meteora-ag/alpha-vault"; import { LBCLMM_PROGRAM_IDS, deriveCustomizablePermissionlessLbPair, @@ -36,6 +41,7 @@ import { } from "@mercurial-finance/dynamic-amm-sdk/dist/cjs/src/amm/utils"; import { createFcfsAlphaVault, + createPermissionedAlphaVaultWithAuthority, createProrataAlphaVault, } from "./libs/create_alpha_vault_utils"; @@ -90,36 +96,81 @@ async function main() { console.log(`\n> Pool address: ${poolKey}, pool type ${poolType}`); - if (config.alphaVault.alphaVaultType == AlphaVaultTypeConfig.Fcfs) { - await createFcfsAlphaVault( - connection, - wallet, - toAlphaVaulSdkPoolType(poolType), - poolKey, - baseMint, - quoteMint, - quoteDecimals, - config.alphaVault as FcfsAlphaVaultConfig, - config.dryRun, - config.computeUnitPriceMicroLamports, + // create permissioned alpha vault with authority + if ( + config.alphaVault.whitelistMode == + WhitelistModeConfig.PermissionedWithAuthority + ) { + if (!config.alphaVault.whitelistFilepath) { + throw new Error("Missing whitelist filepath in configuration"); + } + + interface WhitelistCsv { + address: string; + maxAmount: string; + } + const whitelistListCsv: Array = await parseCsv( + config.alphaVault.whitelistFilepath, ); - } else if (config.alphaVault.alphaVaultType == AlphaVaultTypeConfig.Prorata) { - await createProrataAlphaVault( + + const whitelistList: Array = new Array(0); + for (const item of whitelistListCsv) { + whitelistList.push({ + address: new PublicKey(item.address), + maxAmount: getAmountInLamports(item.maxAmount, quoteDecimals), + }); + } + + await createPermissionedAlphaVaultWithAuthority( connection, wallet, + config.alphaVault.alphaVaultType, toAlphaVaulSdkPoolType(poolType), poolKey, baseMint, quoteMint, quoteDecimals, - config.alphaVault as ProrataAlphaVaultConfig, + config.alphaVault, + whitelistList, config.dryRun, config.computeUnitPriceMicroLamports, ); - } else { - throw new Error( - `Invalid alpha vault type ${config.alphaVault.alphaVaultType}`, - ); + } else if ( + config.alphaVault.whitelistMode == WhitelistModeConfig.Permissionless + ) { + if (config.alphaVault.alphaVaultType == AlphaVaultTypeConfig.Fcfs) { + await createFcfsAlphaVault( + connection, + wallet, + toAlphaVaulSdkPoolType(poolType), + poolKey, + baseMint, + quoteMint, + quoteDecimals, + config.alphaVault as FcfsAlphaVaultConfig, + config.dryRun, + config.computeUnitPriceMicroLamports, + ); + } else if ( + config.alphaVault.alphaVaultType == AlphaVaultTypeConfig.Prorata + ) { + await createProrataAlphaVault( + connection, + wallet, + toAlphaVaulSdkPoolType(poolType), + poolKey, + baseMint, + quoteMint, + quoteDecimals, + config.alphaVault as ProrataAlphaVaultConfig, + config.dryRun, + config.computeUnitPriceMicroLamports, + ); + } else { + throw new Error( + `Invalid alpha vault type ${config.alphaVault.alphaVaultType}`, + ); + } } } diff --git a/src/libs/config.ts b/src/libs/config.ts index 73c8e3b..e887f49 100644 --- a/src/libs/config.ts +++ b/src/libs/config.ts @@ -136,6 +136,7 @@ const CONFIG_SCHEMA: JSONSchemaType = { "permissioned_with_authority", ], }, + whitelistFilepath: { type: "string", nullable: true }, }, required: [ "poolType", @@ -293,6 +294,7 @@ export interface FcfsAlphaVaultConfig { escrowFee: number; // whitelist mode: permissionless / permission_with_merkle_proof / permission_with_authority whitelistMode: WhitelistModeConfig; + whitelistFilepath?: string; } export interface ProrataAlphaVaultConfig { @@ -310,6 +312,7 @@ export interface ProrataAlphaVaultConfig { escrowFee: number; // whitelist mode: permissionless / permission_with_merkle_proof / permission_with_authority whitelistMode: WhitelistModeConfig; + whitelistFilepath?: string; } export interface LockLiquidityConfig { diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index 6582626..c6117ea 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -199,7 +199,6 @@ export async function createProrataAlphaVault( export async function createPermissionedAlphaVaultWithAuthority( connection: Connection, wallet: Wallet, - vaultAuthority: Keypair, alphaVaultType: AlphaVaultTypeConfig, poolType: PoolType, poolAddress: PublicKey, @@ -273,7 +272,7 @@ export async function createPermissionedAlphaVaultWithAuthority( const instructions = await alphaVault.createMultipleStakeEscrowByAuthorityInstructions( whitelistList, - vaultAuthority.publicKey, + wallet.publicKey, ); const { blockhash, lastValidBlockHeight } = @@ -285,7 +284,7 @@ export async function createPermissionedAlphaVaultWithAuthority( const createStakeEscrowAccountsTx = new Transaction({ blockhash, lastValidBlockHeight, - feePayer: vaultAuthority.publicKey, + feePayer: wallet.publicKey, }) .add(...instructions) .add(setPriorityFeeIx); @@ -300,7 +299,7 @@ export async function createPermissionedAlphaVaultWithAuthority( const createStakeEscrowAccountTxHash = await sendAndConfirmTransaction( connection, createStakeEscrowAccountsTx, - [vaultAuthority], + [wallet.payer], ).catch((err) => { console.error(err); throw err; diff --git a/src/libs/utils.ts b/src/libs/utils.ts index a4261ab..fead818 100644 --- a/src/libs/utils.ts +++ b/src/libs/utils.ts @@ -34,6 +34,7 @@ import { PriceRoundingConfig, WhitelistModeConfig, } from ".."; +import { parse } from "csv-parse"; export const DEFAULT_ADD_LIQUIDITY_CU = 800_000; @@ -101,6 +102,26 @@ export function parseKeypairFromSecretKey(secretKey: string): Keypair { return keypair; } +// Function to parse CSV file +export async function parseCsv(filePath: string): Promise> { + const fileStream = fs.createReadStream(filePath); + + return new Promise((resolve, reject) => { + const parser = parse({ + columns: true, // Use the header row as keys + skip_empty_lines: true, // Skip empty lines + }); + + const results = []; + + fileStream + .pipe(parser) + .on("data", (row) => results.push(row)) // Collect rows + .on("end", () => resolve(results)) // Resolve the promise with results + .on("error", (err) => reject(err)); // Reject the promise if error occurs + }); +} + export function getAmountInLamports( amount: number | string, decimals: number, diff --git a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts index 953345b..8254b9a 100644 --- a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts +++ b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts @@ -187,7 +187,6 @@ describe("Test create dynamic pool with permissioned authority fcfs alpha vault" }, ); - const vaultAuthority = payerKeypair; const alphaVaultType = config.alphaVault.alphaVaultType; const poolType = toAlphaVaulSdkPoolType(config.alphaVault.poolType); const poolAddress = @@ -222,7 +221,6 @@ describe("Test create dynamic pool with permissioned authority fcfs alpha vault" await createPermissionedAlphaVaultWithAuthority( connection, payerWallet, - vaultAuthority, alphaVaultType, poolType, poolAddress, From a5cf6a76c088bab6c73e28895fc4b0a39ca085a7 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Fri, 10 Jan 2025 16:43:19 +0700 Subject: [PATCH 10/11] fix: Trunk instructions to many txs --- src/libs/constants.ts | 3 + src/libs/create_alpha_vault_utils.ts | 43 ++++---------- src/libs/utils.ts | 56 +++++++++++++++++++ ...ssioned_with_authority_alpha_vault.test.ts | 29 +++++----- 4 files changed, 82 insertions(+), 49 deletions(-) diff --git a/src/libs/constants.ts b/src/libs/constants.ts index ce806f4..bbdeecb 100644 --- a/src/libs/constants.ts +++ b/src/libs/constants.ts @@ -10,6 +10,9 @@ export const USDC_TOKEN_MINT = new PublicKey( export const SOL_TOKEN_DECIMALS = 9; export const USDC_TOKEN_DECIMALS = 6; +export const TX_SIZE_LIMIT_BYTES = 1232; +export const MAX_INSTRUCTIONS_PER_STAKE_ESCROW_ACCOUNTS_CREATED = 8; + export const DLMM_PROGRAM_IDS = { devnet: "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo", localhost: "LbVRzDTvBDEcrthxfZ4RL6yiq3uZw8bS6MwtdY6UhFQ", diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index c6117ea..427ce9f 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -21,6 +21,7 @@ import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; import { getAlphaVaultWhitelistMode, getAmountInLamports, + handleSendTxs, runSimulateTransaction, } from "./utils"; import { @@ -275,39 +276,15 @@ export async function createPermissionedAlphaVaultWithAuthority( wallet.publicKey, ); - const { blockhash, lastValidBlockHeight } = - await connection.getLatestBlockhash("confirmed"); - const setPriorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({ - microLamports: computeUnitPriceMicroLamports, - }); - - const createStakeEscrowAccountsTx = new Transaction({ - blockhash, - lastValidBlockHeight, - feePayer: wallet.publicKey, - }) - .add(...instructions) - .add(setPriorityFeeIx); - - if (dryRun) { - console.log(`\n> Simulating create stake escrow accounts tx...`); - await runSimulateTransaction(connection, [wallet.payer], wallet.publicKey, [ - createStakeEscrowAccountsTx, - ]); - } else { - console.log(`>> Sending stake escrow accounts transaction...`); - const createStakeEscrowAccountTxHash = await sendAndConfirmTransaction( - connection, - createStakeEscrowAccountsTx, - [wallet.payer], - ).catch((err) => { - console.error(err); - throw err; - }); - console.log( - `>>> Create stake escrow accounts successfully with tx hash: ${createStakeEscrowAccountTxHash}`, - ); - } + await handleSendTxs( + connection, + instructions, + MAX_INSTRUCTIONS_PER_STAKE_ESCROW_ACCOUNTS_CREATED, + wallet.payer, + computeUnitPriceMicroLamports, + dryRun, + "create stake escrow accounts", + ); } async function createCustomizableFcfsVault( diff --git a/src/libs/utils.ts b/src/libs/utils.ts index fead818..ab32b8e 100644 --- a/src/libs/utils.ts +++ b/src/libs/utils.ts @@ -5,7 +5,9 @@ import { Keypair, PublicKey, Transaction, + TransactionInstruction, VersionedTransaction, + sendAndConfirmTransaction, } from "@solana/web3.js"; import * as fs from "fs"; import { parseArgs } from "util"; @@ -14,6 +16,7 @@ import Decimal from "decimal.js"; import { SOL_TOKEN_DECIMALS, SOL_TOKEN_MINT, + TX_SIZE_LIMIT_BYTES, USDC_TOKEN_DECIMALS, USDC_TOKEN_MINT, } from "./constants"; @@ -251,6 +254,59 @@ export function toAlphaVaulSdkPoolType(poolType: PoolTypeConfig): PoolType { } } +/// Divine the instructions to multiple transactions +export async function handleSendTxs( + connection: Connection, + instructions: TransactionInstruction[], + instructionsPerTx: number, + payer: Keypair, + computeUnitPriceMicroLamports: number, + dryRun: boolean, + txLabel?: string, +): Promise { + const numTransactions = Math.ceil(instructions.length / instructionsPerTx); + + for (let i = 0; i < numTransactions; i++) { + const { blockhash, lastValidBlockHeight } = + await connection.getLatestBlockhash("confirmed"); + const setPriorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({ + microLamports: computeUnitPriceMicroLamports, + }); + let tx = new Transaction({ + blockhash, + lastValidBlockHeight, + feePayer: payer.publicKey, + }).add(setPriorityFeeIx); + let lowerIndex = i * instructionsPerTx; + let upperIndex = (i + 1) * instructionsPerTx; + for (let j = lowerIndex; j < upperIndex; j++) { + if (instructions[j]) tx.add(instructions[j]); + } + + const txSize = tx.serialize({ + verifySignatures: false, + }).length; + console.log(`Tx number ${i + 1} txSize = ${txSize}`); + + let label = txLabel ?? ""; + if (dryRun) { + console.log(`\n> Simulating ${label} tx number ${i + 1}...`); + await runSimulateTransaction(connection, [payer], payer.publicKey, [tx]); + } else { + console.log(`>> Sending ${label} transaction number ${i + 1}...`); + const txHash = await sendAndConfirmTransaction(connection, tx, [ + payer, + ]).catch((err) => { + console.error(err); + throw err; + }); + console.log( + `>>> Transaction ${i + 1} ${label} successfully with tx hash: ${txHash}`, + ); + } + } +} + /** * Modify priority fee in transaction * @param tx diff --git a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts index 8254b9a..4f9e131 100644 --- a/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts +++ b/src/tests/create_dynamic_pool_with_permissioned_with_authority_alpha_vault.test.ts @@ -198,24 +198,21 @@ describe("Test create dynamic pool with permissioned authority fcfs alpha vault" const alphaVaultConfig = config.alphaVault; // Generate whitelist wallets - const whitelistWallet_1 = Keypair.generate(); - const whitelistWallet_2 = Keypair.generate(); - await connection.requestAirdrop(whitelistWallet_1.publicKey, 10 * 10 ** 9); - await connection.requestAirdrop(whitelistWallet_2.publicKey, 10 * 10 ** 9); + const whitelistWallets: Array = []; + for (let i = 0; i < 12; i++) { + const wallet = Keypair.generate(); + whitelistWallets.push(wallet); + await connection.requestAirdrop(wallet.publicKey, 10 * 10 ** 9); + } - const whitelistWallet_1_maxAmount = new BN(1 * 10 ** 9); - const whitelistWallet_2_maxAmount = new BN(5 * 10 ** 9); + const whitelistWallet_1 = whitelistWallets[0]; - const whitelistList = [ - { - address: whitelistWallet_1.publicKey, - maxAmount: whitelistWallet_1_maxAmount, - }, - { - address: whitelistWallet_2.publicKey, - maxAmount: whitelistWallet_2_maxAmount, - }, - ]; + const whitelistList = whitelistWallets.map((keypair) => { + return { + address: keypair.publicKey, + maxAmount: new BN(1 * 10 ** 9), + }; + }); // 2. Create permissioned alpha vault await createPermissionedAlphaVaultWithAuthority( From 993af0f9e2a843ebbae2ce2b09c4352ccbfdf6b6 Mon Sep 17 00:00:00 2001 From: quangkeu95 Date: Sat, 11 Jan 2025 08:52:57 +0700 Subject: [PATCH 11/11] chore: Add import --- src/libs/create_alpha_vault_utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/create_alpha_vault_utils.ts b/src/libs/create_alpha_vault_utils.ts index 427ce9f..303f0d6 100644 --- a/src/libs/create_alpha_vault_utils.ts +++ b/src/libs/create_alpha_vault_utils.ts @@ -16,7 +16,7 @@ import { Transaction, sendAndConfirmTransaction, } from "@solana/web3.js"; -import { ALPHA_VAULT_PROGRAM_IDS } from "./constants"; +import { ALPHA_VAULT_PROGRAM_IDS, MAX_INSTRUCTIONS_PER_STAKE_ESCROW_ACCOUNTS_CREATED } from "./constants"; import { AnchorProvider, Program, Wallet } from "@coral-xyz/anchor"; import { getAlphaVaultWhitelistMode,