From 027a18271f69a2573edcd3d916cb4093e1f3fff6 Mon Sep 17 00:00:00 2001 From: hana <81144685+2501babe@users.noreply.github.com> Date: Wed, 15 Jan 2025 04:39:07 -0800 Subject: [PATCH] js: fix initialize to deposit 1sol --- clients/js-legacy/tests/transactions.test.ts | 17 +++++++++++++++-- clients/js/src/transactions.ts | 6 ++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/clients/js-legacy/tests/transactions.test.ts b/clients/js-legacy/tests/transactions.test.ts index 91d20fbf..8d249c80 100644 --- a/clients/js-legacy/tests/transactions.test.ts +++ b/clients/js-legacy/tests/transactions.test.ts @@ -37,6 +37,7 @@ const voteAccount = { }; const SLOTS_PER_EPOCH: bigint = 432000n; +const LAMPORTS_PER_SOL: number = 1_000_000_000; class BanksConnection { constructor(client: BanksClient, payer: Keypair) { @@ -109,6 +110,10 @@ async function startWithContext(authorizedWithdrawer?: PublicKey) { }, }, ], + undefined, + undefined, + // stake_raise_minimum_delegation_to_1_sol::id() + [new PublicKey('9onWzzvCzNC2jfhxxeqRgs5q7nFAAKpCUvkj6T6GJK9i')], ); } @@ -245,7 +250,11 @@ test('deposit', async (t) => { const stakeRent = await connection.getMinimumBalanceForRentExemption(StakeProgram.space); const minimumDelegation = (await connection.getStakeMinimumDelegation()).value; const poolStakeAccount = await client.getAccount(poolStakeAddress); - t.is(poolStakeAccount.lamports, minimumDelegation * 2 + stakeRent, 'stake has been deposited'); + t.is( + poolStakeAccount.lamports, + LAMPORTS_PER_SOL + minimumDelegation + stakeRent, + 'stake has been deposited', + ); }); test('deposit from default', async (t) => { @@ -286,7 +295,11 @@ test('deposit from default', async (t) => { const stakeRent = await connection.getMinimumBalanceForRentExemption(StakeProgram.space); const poolStakeAccount = await client.getAccount(poolStakeAddress); - t.is(poolStakeAccount.lamports, minimumDelegation * 2 + stakeRent, 'stake has been deposited'); + t.is( + poolStakeAccount.lamports, + LAMPORTS_PER_SOL + minimumDelegation + stakeRent, + 'stake has been deposited', + ); }); test('withdraw', async (t) => { diff --git a/clients/js/src/transactions.ts b/clients/js/src/transactions.ts index 7ad7b257..9e1dcb48 100644 --- a/clients/js/src/transactions.ts +++ b/clients/js/src/transactions.ts @@ -91,7 +91,9 @@ export async function initializeTransaction( rpc.getMinimumBalanceForRentExemption(MINT_SIZE).send(), rpc.getStakeMinimumDelegation().send(), ]); - const minimumDelegation = minimumDelegationObj.value; + const lamportsPerSol = 1_000_000_000n; + const minimumPoolBalance = + minimumDelegationObj.value > lamportsPerSol ? minimumDelegationObj.value : lamportsPerSol; transaction = appendTransactionMessageInstruction( SystemInstruction.transfer({ @@ -106,7 +108,7 @@ export async function initializeTransaction( SystemInstruction.transfer({ from: payer, to: stake, - lamports: stakeRent + minimumDelegation, + lamports: stakeRent + minimumPoolBalance, }), transaction, );