@@ -7,6 +7,7 @@ import { getAssociatedTokenAddressSync } from "@solana/spl-token";
7
7
import { createCreatePoolInstruction } from "./ts/instructions/create_pool" ;
8
8
import { createDepositLiquidityInstruction } from "./ts/instructions/deposit_liquidity" ;
9
9
import { expect } from "chai" ;
10
+ import { getTokenBalance } from "./utils" ;
10
11
11
12
12
13
describe ( 'Deposit liquidity' , async ( ) => {
@@ -17,16 +18,6 @@ describe('Deposit liquidity', async () => {
17
18
let depositorAccountLiquidity , depositorAccountA , depositorAccountB ;
18
19
const default_mint_amount = 100 * 10 ** 6 ;
19
20
const minimum_liquidity = 100 ; // Matches rust constant
20
- const getTokenBalance = async ( tokenAccount ) => {
21
- const account = await client . getAccount ( tokenAccount ) ;
22
- if ( ! account ) {
23
- throw new Error ( `Account ${ tokenAccount . toString ( ) } not found` ) ;
24
- }
25
- // Token account data has an 8-byte discriminator followed by mint, owner, amount
26
- // Amount is stored as a u64 at offset 64
27
- const balance = Buffer . from ( account . data ) . readBigUInt64LE ( 64 ) ;
28
- return Number ( balance ) ;
29
- } ;
30
21
beforeEach ( async ( ) => {
31
22
programId = PublicKey . unique ( ) ;
32
23
context = await start ( [ { name : "token_swap_native" , programId } ] , [ ] ) ;
@@ -84,11 +75,11 @@ describe('Deposit liquidity', async () => {
84
75
tx . add ( ix ) . sign ( payer , admin ) ;
85
76
await client . processTransaction ( tx ) ;
86
77
87
- const depositorLiquidityBalance = await getTokenBalance ( depositorAccountLiquidity ) ;
88
- const depositorABalance = await getTokenBalance ( depositorAccountA ) ;
89
- const depositorBBalance = await getTokenBalance ( depositorAccountB ) ;
90
- const poolABalance = await getTokenBalance ( poolAccountA ) ;
91
- const poolBBalance = await getTokenBalance ( poolAccountB ) ;
78
+ const depositorLiquidityBalance = await getTokenBalance ( client , depositorAccountLiquidity ) ;
79
+ const depositorABalance = await getTokenBalance ( client , depositorAccountA ) ;
80
+ const depositorBBalance = await getTokenBalance ( client , depositorAccountB ) ;
81
+ const poolABalance = await getTokenBalance ( client , poolAccountA ) ;
82
+ const poolBBalance = await getTokenBalance ( client , poolAccountB ) ;
92
83
93
84
expect ( depositorLiquidityBalance ) . to . equal ( amount_a - minimum_liquidity ) ;
94
85
expect ( depositorABalance ) . to . equal ( default_mint_amount - amount_a ) ;
@@ -105,11 +96,11 @@ describe('Deposit liquidity', async () => {
105
96
tx2 . add ( ix2 ) . sign ( payer , admin ) ;
106
97
await client . processTransaction ( tx2 ) ;
107
98
108
- const depositorLiquidityBalance2 = await getTokenBalance ( depositorAccountLiquidity ) ;
109
- const depositorABalance2 = await getTokenBalance ( depositorAccountA ) ;
110
- const depositorBBalance2 = await getTokenBalance ( depositorAccountB ) ;
111
- const poolABalance2 = await getTokenBalance ( poolAccountA ) ;
112
- const poolBBalance2 = await getTokenBalance ( poolAccountB ) ;
99
+ const depositorLiquidityBalance2 = await getTokenBalance ( client , depositorAccountLiquidity ) ;
100
+ const depositorABalance2 = await getTokenBalance ( client , depositorAccountA ) ;
101
+ const depositorBBalance2 = await getTokenBalance ( client , depositorAccountB ) ;
102
+ const poolABalance2 = await getTokenBalance ( client , poolAccountA ) ;
103
+ const poolBBalance2 = await getTokenBalance ( client , poolAccountB ) ;
113
104
114
105
expect ( depositorLiquidityBalance2 ) . to . equal ( depositorLiquidityBalance + amount_a ) ;
115
106
expect ( depositorABalance2 ) . to . equal ( depositorABalance - amount_a ) ;
@@ -128,11 +119,11 @@ describe('Deposit liquidity', async () => {
128
119
tx . add ( ix ) . sign ( payer , admin ) ;
129
120
await client . processTransaction ( tx ) ;
130
121
131
- const depositorLiquidityBalance = await getTokenBalance ( depositorAccountLiquidity ) ;
132
- const depositorABalance = await getTokenBalance ( depositorAccountA ) ;
133
- const depositorBBalance = await getTokenBalance ( depositorAccountB ) ;
134
- const poolABalance = await getTokenBalance ( poolAccountA ) ;
135
- const poolBBalance = await getTokenBalance ( poolAccountB ) ;
122
+ const depositorLiquidityBalance = await getTokenBalance ( client , depositorAccountLiquidity ) ;
123
+ const depositorABalance = await getTokenBalance ( client , depositorAccountA ) ;
124
+ const depositorBBalance = await getTokenBalance ( client , depositorAccountB ) ;
125
+ const poolABalance = await getTokenBalance ( client , poolAccountA ) ;
126
+ const poolBBalance = await getTokenBalance ( client , poolAccountB ) ;
136
127
137
128
expect ( depositorLiquidityBalance ) . to . equal ( 6 * 10 ** 6 - minimum_liquidity ) ;
138
129
expect ( depositorABalance ) . to . equal ( default_mint_amount - amount_a ) ;
@@ -155,11 +146,11 @@ describe('Deposit liquidity', async () => {
155
146
tx2 . add ( ix2 ) . sign ( payer , admin ) ;
156
147
await client . processTransaction ( tx2 ) ;
157
148
158
- const depositorLiquidityBalance2 = await getTokenBalance ( depositorAccountLiquidity ) ;
159
- const depositorABalance2 = await getTokenBalance ( depositorAccountA ) ;
160
- const depositorBBalance2 = await getTokenBalance ( depositorAccountB ) ;
161
- const poolABalance2 = await getTokenBalance ( poolAccountA ) ;
162
- const poolBBalance2 = await getTokenBalance ( poolAccountB ) ;
149
+ const depositorLiquidityBalance2 = await getTokenBalance ( client , depositorAccountLiquidity ) ;
150
+ const depositorABalance2 = await getTokenBalance ( client , depositorAccountA ) ;
151
+ const depositorBBalance2 = await getTokenBalance ( client , depositorAccountB ) ;
152
+ const poolABalance2 = await getTokenBalance ( client , poolAccountA ) ;
153
+ const poolBBalance2 = await getTokenBalance ( client , poolAccountB ) ;
163
154
164
155
expect ( depositorLiquidityBalance2 ) . to . equal ( depositorLiquidityBalance + 40.5 * 10 ** 6 ) ;
165
156
expect ( depositorABalance2 ) . to . equal ( depositorABalance - 60.75 * 10 ** 6 ) ;
@@ -178,11 +169,11 @@ describe('Deposit liquidity', async () => {
178
169
tx . add ( ix ) . sign ( payer , admin ) ;
179
170
await client . processTransaction ( tx ) ;
180
171
181
- const depositorLiquidityBalance = await getTokenBalance ( depositorAccountLiquidity ) ;
182
- const depositorABalance = await getTokenBalance ( depositorAccountA ) ;
183
- const depositorBBalance = await getTokenBalance ( depositorAccountB ) ;
184
- const poolABalance = await getTokenBalance ( poolAccountA ) ;
185
- const poolBBalance = await getTokenBalance ( poolAccountB ) ;
172
+ const depositorLiquidityBalance = await getTokenBalance ( client , depositorAccountLiquidity ) ;
173
+ const depositorABalance = await getTokenBalance ( client , depositorAccountA ) ;
174
+ const depositorBBalance = await getTokenBalance ( client , depositorAccountB ) ;
175
+ const poolABalance = await getTokenBalance ( client , poolAccountA ) ;
176
+ const poolBBalance = await getTokenBalance ( client , poolAccountB ) ;
186
177
187
178
expect ( depositorLiquidityBalance ) . to . equal ( 6 * 10 ** 6 - minimum_liquidity ) ;
188
179
expect ( depositorABalance ) . to . equal ( default_mint_amount - amount_a ) ;
@@ -205,11 +196,11 @@ describe('Deposit liquidity', async () => {
205
196
tx2 . add ( ix2 ) . sign ( payer , admin ) ;
206
197
await client . processTransaction ( tx2 ) ;
207
198
208
- const depositorLiquidityBalance2 = await getTokenBalance ( depositorAccountLiquidity ) ;
209
- const depositorABalance2 = await getTokenBalance ( depositorAccountA ) ;
210
- const depositorBBalance2 = await getTokenBalance ( depositorAccountB ) ;
211
- const poolABalance2 = await getTokenBalance ( poolAccountA ) ;
212
- const poolBBalance2 = await getTokenBalance ( poolAccountB ) ;
199
+ const depositorLiquidityBalance2 = await getTokenBalance ( client , depositorAccountLiquidity ) ;
200
+ const depositorABalance2 = await getTokenBalance ( client , depositorAccountA ) ;
201
+ const depositorBBalance2 = await getTokenBalance ( client , depositorAccountB ) ;
202
+ const poolABalance2 = await getTokenBalance ( client , poolAccountA ) ;
203
+ const poolBBalance2 = await getTokenBalance ( client , poolAccountB ) ;
213
204
214
205
expect ( depositorLiquidityBalance2 ) . to . equal ( depositorLiquidityBalance + 40.5 * 10 ** 6 ) ;
215
206
expect ( depositorABalance2 ) . to . equal ( depositorABalance - amount_a2 ) ;
0 commit comments