Christian Kamm
5aa1114beb
Make VotingMintConfig::in_use based on the mint
2021-12-17 07:51:06 +01:00
Christian Kamm
b937452f51
Increase default voting_mints size to 4.
2021-12-17 07:51:06 +01:00
microwavedcola1
be92028d59
fix
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-15 10:35:31 +01:00
microwavedcola1
b51a7a5b68
sample cli
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-15 10:21:11 +01:00
Christian Kamm
d877eae443
Upgrade spl-governance dependency to current master
2021-12-14 13:46:38 +01:00
Christian Kamm
3071c1edcf
Update program ids for devnet deployment
2021-12-14 12:47:12 +01:00
Christian Kamm
a7dd5684c3
Update anchor dependency
...
The previous version didn't include the fix needed to use init_if_needed
with the voter weight record.
2021-12-14 12:25:03 +01:00
microwavedcola1
b987fb225d
Update README.md
2021-12-14 12:17:39 +01:00
microwavedcola1
24bedd7628
Update README.md
2021-12-14 12:17:09 +01:00
microwavedcola1
24b5db0ef5
Update README.md
2021-12-14 12:16:53 +01:00
microwavedcola1
36859e5c92
Update README.md
2021-12-14 12:14:27 +01:00
microwavedcola1
73fc3aa224
update lockfile
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-14 11:37:28 +01:00
Christian Kamm
49e137eb51
Add constant-maturity lockup
...
Adds LockupKind::Constant, extends the reset_lockup instruction and
adds the internal_transfer instruction to allow working with constant
maturity lockups.
2021-12-14 10:19:47 +01:00
Christian Kamm
b41dfae916
Grant instruction: Add separate "payer" signer
...
The governance PDAs can't pay.
2021-12-10 18:06:52 +01:00
Christian Kamm
8f3af93f99
Change assert() to require()
...
So these assumption-guaranteeing checks aren't removed.
2021-12-10 16:22:43 +01:00
Christian Kamm
9a5182d317
Fix a bug where start_ts could become > end_ts
...
Previously period_current() could exceed periods_total().
2021-12-10 16:22:43 +01:00
Christian Kamm
89f5954961
Allow changing of voting mint config parameters
...
Previously the configure_voting_mint() instruction could only be run
once per index. Now it's allowed to call it again to change a mint's
parameters.
This will directly be useful for Mango, which will likely start out
configuring the MNGO voting mint without lockup vote scaling and then
later enable it, when the ui is ready.
2021-12-10 09:26:30 +01:00
Christian Kamm
decdd1230c
Address unaligned references, add padding
...
- Make Registrar zero-copy. While it was using borsh for serialization,
the array of voting mint configs couldn't be serialized without
unaligned references.
- Reorganize all zero_copy fields such that switching to repr(C) would
not make a difference. (just for safety in case that happens)
- Add static asserts on the sizes of all account structs, so any changes
are visible very early.
- Add padding to structs that didn't have it yet.
2021-12-09 11:59:14 +01:00
Christian Kamm
ddf37c4de0
Configurable options for vote weight scaling factors ( #7 )
...
Configurable options for vote weight scaling and lockup saturation
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-09 11:58:15 +01:00
microwavedcola1
317b7168eb
Remove instruction name logs since they would be redundant with next anchor release
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-07 19:12:56 +01:00
Armani Ferrante
2f5e133648
Fix conversion_factor comment
2021-12-07 18:11:32 +01:00
Christian Kamm
fea2c9a0cd
Apply review suggestions
2021-12-07 09:26:47 +01:00
Christian Kamm
e8b0a1f50a
Fix vote power computation for monthly vesting
...
- The vote power decay now has second resolution.
- Monthly and daily vesting behave exactly like multiple cliff locked
deposits.
- In particular, monthly vesting deposits lock-up power decays during
the month, making it smooth over time.
- Gain vote power even if start_ts is in the future (shouldn't happen)
2021-12-06 16:11:32 +01:00
Christian Kamm
573305f789
Test: Check placing something in all deposits
...
And reduce the compute limit in tests to half the current live limit.
2021-12-06 07:29:50 +01:00
Christian Kamm
8f5229e237
README: Update grant flow
2021-12-05 22:48:44 +01:00
microwavedcola1
f777a43ed6
basic logging
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-05 21:10:32 +01:00
Christian Kamm
a6ad8b2fdb
README: Add grant instruction
2021-12-05 20:46:21 +01:00
Christian Kamm
119bdffcec
Add grant instruction
2021-12-05 20:36:01 +01:00
Christian Kamm
4cbe9ad4d6
Make create_voter idempotent
2021-12-05 15:29:14 +01:00
Christian Kamm
05582700cf
Make create_voter permissionless
2021-12-05 14:34:03 +01:00
Christian Kamm
bae63655cc
Update voter weight record in withdraw
...
This avoids a security issue where three separate transactions in the
same slot may update the voter weight record, withdraw funds and then
vote with the stale voter weight record.
2021-12-05 11:58:56 +01:00
Christian Kamm
01168bad3c
Fix new withdraw() instruction check
2021-12-05 11:39:39 +01:00
microwavedcola1
14040bafc7
Revert "this condition is not needed anymore, since we check that the withdraw is the first ix in the tx"
...
This reverts commit 5f2bfea4e3
.
2021-12-05 11:31:00 +01:00
microwavedcola1
5f2bfea4e3
this condition is not needed anymore, since we check that the withdraw is the first ix in the tx
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-05 10:14:56 +01:00
microwavedcola1
bac332b1c8
add-todo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-05 10:14:05 +01:00
microwavedcola1
3f1be68c06
typo
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-05 10:12:47 +01:00
microwavedcola1
7698d2f45e
withdraw should be the firs instruction
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-05 09:53:39 +01:00
Christian Kamm
edc64452ed
Address test compilation warnings
2021-12-05 09:04:04 +01:00
Christian Kamm
645f02ebd4
Tests: Add a test that checks integration with spl-governance
...
By making a proposal (with the necessary amount of vote weight) and
voting on it.
2021-12-05 09:00:07 +01:00
Christian Kamm
03cfe65d9c
Simplify withdraw/clawback authority checks
2021-12-04 10:54:33 +01:00
microwavedcola1
9c1763f8c4
separate clawback and withdraw
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-04 09:22:22 +01:00
microwavedcola1
a9731a749c
add seed checks
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-04 09:02:20 +01:00
Christian Kamm
9a3233db98
README: Fix bad links
2021-12-03 21:56:53 +01:00
Christian Kamm
f68809c8f6
README: Add instruction overview
2021-12-03 21:51:46 +01:00
Christian Kamm
9472c882ee
Minor local var rename
2021-12-03 21:19:33 +01:00
Christian Kamm
aad6f296da
Restructure and add sanity asserts
2021-12-03 21:13:32 +01:00
Christian Kamm
3374f6c09c
Rename ExchangeRate -> VotingMintConfig
2021-12-03 20:49:34 +01:00
microwavedcola1
0f4a0a40c9
some minor renaming
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-03 16:06:44 +01:00
Christian Kamm
15c69a317a
Lockup: share common code and checks
2021-12-03 14:51:10 +01:00
Christian Kamm
6392e5f2c9
Add function for computing amount of locked tokens
2021-12-03 14:36:23 +01:00