-
Notifications
You must be signed in to change notification settings - Fork 81
Expand file tree
/
Copy pathmain.test.ts
More file actions
73 lines (60 loc) · 3.05 KB
/
main.test.ts
File metadata and controls
73 lines (60 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import futarchyAmm from "./integration/futarchyAmm.test.js";
import initializeDao from "./unit/initializeDao.test.js";
import initializeProposal from "./unit/initializeProposal.test.js";
import launchProposal from "./unit/launchProposal.test.js";
import finalizeProposal from "./unit/finalizeProposal.test.js";
import updateDao from "./unit/updateDao.test.js";
import collectFees from "./unit/collectFees.test.js";
import conditionalSwap from "./unit/conditionalSwap.test.js";
import provideLiquidity from "./unit/provideLiquidity.test.js";
import executeSpendingLimitChange from "./unit/executeSpendingLimitChange.test.js";
import collectMeteoraDammFees from "./unit/collectMeteoraDammFees.test.js";
import adminApproveMultisigProposal from "./unit/adminApproveMultisigProposal.test.js";
import adminExecuteMultisigProposal from "./unit/adminExecuteMultisigProposal.test.js";
import adminCancelProposal from "./unit/adminCancelProposal.test.js";
import adminRemoveProposal from "./unit/adminRemoveProposal.test.js";
import unstakeFromProposal from "./unit/unstakeFromProposal.test.js";
import { PublicKey } from "@solana/web3.js";
import {
LAUNCHPAD_PROGRAM_ID,
MAINNET_METEORA_CONFIG,
} from "@metadaoproject/futarchy/v0.7";
export default function suite() {
before(async function () {
const dynamicConfig = await this.banksClient.getAccount(
new PublicKey("4mPQ4VuvvtYL3CeMPt14Uj1CLpBWcVdJoLoTH9ea4Kod"),
);
// discriminator + vault config authority
const poolCreatorAuthorityOffset = 8 + 32;
// discriminator + vault config authority + pool creator authority + pool fees config + activation type + collect fee mode
const configTypeOffset = 8 + 32 + 32 + 128 + 1 + 1;
const [poolCreatorAuthority] = PublicKey.findProgramAddressSync(
[Buffer.from("damm_pool_creator_authority")],
LAUNCHPAD_PROGRAM_ID,
);
dynamicConfig.data.set(
poolCreatorAuthority.toBuffer(),
poolCreatorAuthorityOffset,
);
dynamicConfig.data.set([1], configTypeOffset);
this.context.setAccount(MAINNET_METEORA_CONFIG, dynamicConfig);
});
describe("#initialize_dao", initializeDao);
describe("#initialize_proposal", initializeProposal);
describe("#launch_proposal", launchProposal);
describe("#finalize_proposal", finalizeProposal);
describe("#update_dao", updateDao);
describe("#collect_fees", collectFees);
describe("#conditional_swap", conditionalSwap);
describe("#provide_liquidity", provideLiquidity);
describe("#execute_spending_limit_change", executeSpendingLimitChange);
describe("#collect_meteora_damm_fees", collectMeteoraDammFees);
describe("#admin_approve_multisig_proposal", adminApproveMultisigProposal);
describe("#admin_execute_multisig_proposal", adminExecuteMultisigProposal);
describe("#admin_cancel_proposal", adminCancelProposal);
describe("#admin_remove_proposal", adminRemoveProposal);
describe("#unstake_from_proposal", unstakeFromProposal);
// describe("full proposal", fullProposal);
// describe("proposal with a squads batch tx", proposalBatchTx);
describe("futarchy amm", futarchyAmm);
}