Sebastian Bor
62f96fee96
Merge pull request #55 from blockworks-foundation/anchor-v0-26-0-upgrade
...
Upgrade anchor to v0.26.0
Note: test_all_deposits timeouts on the CI build but works locally and needs to be investigated separately
2022-12-22 11:30:20 +00:00
Connor O'Hara
3ef766d249
Added the required CHECK docs from Anchor
2022-12-22 09:21:35 +01:00
Sebastian Bor
dd6be5bef8
chore: Make Clippy happy
2022-12-21 13:10:19 +00:00
Christian Kamm
8eee11a86a
Ensure the behavior of the bump ix arguments is unchanged
2022-05-04 13:50:50 +02:00
Christian Kamm
233e5414f4
Use anchor's new require_*!() macros
2022-05-04 13:50:50 +02:00
Christian Kamm
eb46a030d1
Upgrade anchor to 0.24.2
2022-05-04 13:50:50 +02:00
microwavedcola1
bb29cb7efc
zero out voter completely
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-04-08 15:38:44 +02:00
Christian Kamm
09ef15f869
Increase lockup period limit to 365 * 200
...
By request.
2022-04-03 08:19:31 +02:00
Christian Kamm
b0660df3b9
Add function to compute the guaranteed locked vote power bonus
...
This is useful for other programs that may want to make decisions purely
based on the amount of weight generated from guaranteed-to-be-locked
tokens at a specific time.
2022-03-10 12:38:02 +01:00
Christian Kamm
94e74a71e5
Comment updates
2022-02-14 10:51:13 +01:00
Christian Kamm
dd51d3cbdd
Renames
...
"unlocked_scaled_factor" was a confusing name because the value is
also used when computing vote weight for locked deposits. Rename to
"baseline_vote_weight_scaled_factor" and generally change "unlocked"
to "baseline" in several places.
Also rename "lockup_scaled_factor" to
"max_extra_lockup_vote_weight_scaled_factor" to highlight that it's just
the maximum contribution and that it's "extra" - on top of baseline.
2022-02-14 10:51:13 +01:00
Christian Kamm
16d22648f7
Rename padding -> reserved and increase its size
2022-02-14 09:06:29 +01:00
Christian Kamm
b7782dcd5c
LogVoterInfo: Make range configurable
...
Previously the instruction was hardcoded to return 16 accounts. It
turned out that this number was too big for the current limits on
compute units.
2022-02-11 13:47:47 +01:00
microwavedcola1
69767b2323
add note why clawback is possible when someone is engaged in an active proposal ( #39 )
...
* add comment
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* remove unused
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
* fix test
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 19:34:48 +01:00
Christian Kamm
929c38f512
Withdraw: Never block withdraws of tokens without voting power
...
Previously being engaged in a proposal would prohibit these withdraws.
2022-02-09 10:31:06 +01:00
Christian Kamm
b77b23d268
Grant: Separate authorities, allow the voter to grant to itself
...
This is done to allow governance proposals to grant to a voter from
arbitrary token accounts, as long as it's the voter themselves who
executes the proposal once the vote has succeeded.
2022-02-04 14:27:13 +01:00
microwavedcola1
2105e1b173
fix clippy warnings and some other deprecations ( #33 )
...
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-04 09:32:55 +01:00
silas
12432b3340
Registrar: Fix unsafe math op
...
Wouldn't be an issue in production because time_offset can only be
non-zero in tests.
2022-02-01 12:58:17 +01:00
Christian Kamm
1a577eb7bd
Upgrade spl-governance version ( #30 )
...
Upgrade to latest spl-governance
Co-authored-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-01 10:46:03 +01:00
Christian Kamm
5b3d07ffb3
Renames for clarity
...
- withdrawable -> unlocked
"withdrawable" was a bad name, since these funds - while unlocked -
are not necessarily withdrawable if the voter is currently engaged in
a vote.
- only_deposit -> only_unlocked
Locked funds are technically also deposited. Make it clearer that this
is talking about the unlocked parts of the funds on the account.
2022-01-26 09:01:17 +01:00
Christian Kamm
7b7ce7d8ce
Add internal_transfer_unlocked
...
Rename internal_transfer -> internal_transfer_locked
The new instruction can move only unlocked funds and is useful to avoid
needing to withdraw funds if they should be re-locked in a different
deposit entry.
Withdrawing can be impossible when a voter is engaged in proposals.
2022-01-26 09:01:17 +01:00
microwavedcola1
e7ffe744e9
close vault and return rent sol ( #26 )
...
close vault and recover rent sol via remaining accounts, in close voter ix
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-01-25 14:56:15 +01:00
Christian Kamm
b30375e0ac
Update error comments for easy error code reference
2022-01-25 13:01:11 +01:00
Christian Kamm
819038a9ae
Use checked_div() more
2022-01-25 13:00:45 +01:00
Christian Kamm
22b4923ef2
Address all math issues reported by soteria
...
None of these should have been a real issue.
2022-01-25 13:00:45 +01:00
Christian Kamm
40708e80ef
Fix underflow in voting computation
...
The vote power computation was broken for lockups that start very far
in the future.
- Fix the underflow itself
- Disallow lockups that start more than 100 years in the future
- Error if the lockup-scaled voting power is bigger than the maximum
lockup voting power
2022-01-25 13:00:45 +01:00
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
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
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
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