Skip to content

Commit 27ead09

Browse files
committed
test: add ts tests
1 parent 8d128a7 commit 27ead09

File tree

9 files changed

+1204
-23
lines changed

9 files changed

+1204
-23
lines changed

package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@
1010
"devDependencies": {
1111
"@coral-xyz/anchor-errors": "^0.31.0",
1212
"@solana/spl-token": "^0.4.8",
13+
"@solana/spl-token-metadata": "^0.1.6",
1314
"@solana/web3.js": "^1.95.3",
1415
"@types/bn.js": "^5.1.0",
1516
"@types/chai": "^4.3.0",
1617
"@types/mocha": "^9.0.0",
1718
"chai": "^4.3.4",
19+
"decimal.js": "^10.4.2",
1820
"mocha": "^9.0.3",
1921
"prettier": "^2.6.2",
20-
"ts-mocha": "^10.0.0",
21-
"typescript": "^4.3.5",
2222
"solana-bankrun": "^0.4.0",
23-
"decimal.js": "^10.4.2"
23+
"ts-mocha": "^10.0.0",
24+
"typescript": "^4.3.5"
2425
}
25-
}
26+
}

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

programs/dynamic-bonding-curve/src/instructions/migration/meteora_damm/meteora_damm_lock_lp_token.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ pub fn handle_migrate_meteora_damm_lock_lp_token<'info>(
142142
let lp_to_lock =
143143
migration_metadata.validate_and_get_self_partnered_creator_lock_amount()?;
144144
let lp_exclude_fee = exclude_fee_lp_amount(lp_to_lock, damm_migration_accounts)?;
145-
migration_metadata.lock_as_self_partnered_creator(lp_exclude_fee);
145+
migration_metadata.lock_as_self_partnered_creator(lp_exclude_fee)?;
146146
lp_exclude_fee
147147
}
148148
(true, false) => {

programs/dynamic-bonding-curve/src/instructions/migration/meteora_damm/meteora_damm_metadata_state.rs

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,11 +112,20 @@ impl MeteoraDammMigrationMetadata {
112112
Ok(lp_to_lock)
113113
}
114114

115-
pub fn lock_as_self_partnered_creator(&mut self, actual_lock_amount: u64) {
115+
pub fn lock_as_self_partnered_creator(&mut self, actual_lock_amount: u64) -> Result<()> {
116116
self.set_creator_lock_status();
117117
self.set_partner_lock_status();
118-
self.actual_creator_locked_lp = actual_lock_amount;
119-
self.actual_partner_locked_lp = actual_lock_amount;
118+
119+
let total_lp_to_lock = self.creator_locked_lp.safe_add(self.partner_locked_lp)?;
120+
121+
self.actual_partner_locked_lp = actual_lock_amount
122+
.safe_mul(self.partner_locked_lp)?
123+
.safe_div(total_lp_to_lock)?;
124+
125+
self.actual_creator_locked_lp =
126+
actual_lock_amount.safe_sub(self.actual_partner_locked_lp)?;
127+
128+
Ok(())
120129
}
121130

122131
pub fn set_partner_lock_status(&mut self) {
@@ -173,6 +182,7 @@ impl MeteoraDammMigrationMetadata {
173182
PoolError::NotPermitToDoThisAction
174183
);
175184

185+
// Prevent existing migrated pool to claim lp fee
176186
require!(
177187
self.actual_creator_locked_lp != 0,
178188
PoolError::NotPermitToDoThisAction
@@ -198,6 +208,7 @@ impl MeteoraDammMigrationMetadata {
198208
PoolError::NotPermitToDoThisAction
199209
);
200210

211+
// Prevent existing migrated pool to claim lp fee
201212
require!(
202213
self.actual_partner_locked_lp != 0,
203214
PoolError::NotPermitToDoThisAction
@@ -225,14 +236,20 @@ impl MeteoraDammMigrationMetadata {
225236
PoolError::NotPermitToDoThisAction
226237
);
227238

239+
let total_actual_locked_lp = self
240+
.actual_creator_locked_lp
241+
.safe_add(self.actual_partner_locked_lp)?;
242+
243+
// Prevent existing migrated pool to claim lp fee
228244
require!(
229-
self.actual_creator_locked_lp != 0,
245+
total_actual_locked_lp != 0,
230246
PoolError::NotPermitToDoThisAction
231247
);
232248

233249
let lp_to_claim = self
234250
.creator_locked_lp
235-
.safe_sub(self.actual_creator_locked_lp)?;
251+
.safe_add(self.partner_locked_lp)?
252+
.safe_sub(total_actual_locked_lp)?;
236253

237254
self.set_creator_claim_lp_fee_status();
238255
self.set_partner_claim_lp_fee_status();

0 commit comments

Comments
 (0)