microwavedcola1
f81e308a7d
Add tests for discovered lockup voting power issue
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-01-25 13:00:45 +01:00
Christian Kamm
23b0cf9747
Bump version to 0.1.5
2022-01-19 09:06:15 +01:00
Christian Kamm
183626ad32
Add LogVoterInfo instruction
...
It has no effect on any state. It logs information about the voter and
all of its deposits to the program log. This can be used from the UI.
2022-01-19 09:04:39 +01:00
Christian Kamm
5f07ada27b
Improve docs/readability on ConfigureVotingMint ( #21 )
2022-01-13 15:28:40 +01:00
microwavedcola1
6b59d48df3
Mc/release experiments ( #20 )
...
* fix anchor version
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix solana version, use the version anchor-lang refers to
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* add comment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* uncomment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* rename
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix test script
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* rename + make consistent
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* cleanup script and do a proper release
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* not required in ts package
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix-comment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-01-13 11:53:24 +01:00
microwavedcola1
38d7b03735
ts client
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-01-10 10:13:08 +01:00
Christian Kamm
18edcd602e
Overflow checking in vested vote power computation
2021-12-29 10:01:36 +01:00
Christian Kamm
1574f53a65
Overflow check when accumulating voter weight
2021-12-29 10:01:36 +01:00
microwavedcola1
4c3215c9b0
Merge pull request #17 from blockworks-foundation/ci
...
github instead of travis for ci tests
2021-12-20 12:01:41 +01:00
microwavedcola1
1477c29a0f
linter-fix
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-20 11:09:51 +01:00
Christian Kamm
bb4c3f85ea
Remove separate clawback_authority ( #15 )
...
Just use the realm authority instead.
2021-12-20 11:01:23 +01:00
Christian Kamm
0e45b0d8a4
Prefer Pubkey::default() over manual init
2021-12-18 14:24:58 +01:00
microwavedcola1
bfab92e534
fix-comment
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-18 14:22:22 +01:00
microwavedcola1
332f1f76fc
remove unused, was added for ts tests, which we not longer maintain
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-18 14:09:20 +01:00
microwavedcola1
6ba0788e48
comment
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-18 14:06:08 +01:00
Christian Kamm
afa1e30269
Tests for starting time in deposit/grant
...
Including a bugfix to the Grant instruction
2021-12-17 10:44:11 +01:00
microwavedcola1
9d72320bdd
make vault per voter+mint instead of global per registrar+mint ( #14 )
2021-12-17 08:02:14 +01:00
Christian Kamm
9c8dd35ba6
Grant/CreateDeposit: Allow control of start timestamp
2021-12-17 07:51:06 +01:00
Christian Kamm
ae7dea95eb
Create voter requires authority signature
...
and can only be called once for each voter_authority.
Now that there's a separate "Grant" instruction, there's no longer a
need for CreateVoter to be idempotent and be callable on foreign
accounts.
Calling create voter manually on a PDA account could have allowed
automation.
2021-12-17 07:51:06 +01:00
Christian Kamm
a5659f6666
Use specific size of VoterWeightRecord in initialization
2021-12-17 07:51:06 +01:00
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
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
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
microwavedcola1
f777a43ed6
basic logging
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2021-12-05 21:10:32 +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