Commit Graph

251 Commits

Author SHA1 Message Date
Christian Kamm a3771f1d16 Add hint about how to get "anchor publish" to work to Cargo.toml
Since anchor doesn't upload the full source tree but does not seem to
rewrite the list of workspace members, "anchor publish" fails on the
"cli" workspace member.
2022-04-03 09:15:16 +02:00
Christian Kamm acd76e8031 Bump version to 0.2.1, introduce changelog 2022-04-03 08:43:04 +02:00
Christian Kamm 09ef15f869 Increase lockup period limit to 365 * 200
By request.
2022-04-03 08:19:31 +02:00
microwavedcola1 8bfb10fb9b pretty print, remove redundant examples
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-03-17 13:48:42 +01:00
Christian Kamm 6699b25e49 Deps: Update regex due to "cargo audit" security advisory
This has no effect on the voter stake registry program.
2022-03-10 12:38:02 +01: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 2ea39ddc99 CI: Run Soteria only on the program 2022-02-28 12:27:06 +01:00
Christian Kamm 56850fe514 Cli: Add info about locked tokens in the future 2022-02-28 12:27:06 +01:00
Christian Kamm c510f25b87 Cli: Add binary to decode voter accounts 2022-02-28 12:27:06 +01:00
Christian Kamm 849aeba40a Update Anchor.toml for mainnet address 2022-02-15 14:08:21 +01:00
Christian Kamm a41616a9bc Bump version to 0.2.0 2022-02-14 10:54:08 +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 4c5d896912 Tests: Bump max compute to 120k
The Grant instruction could randomly exceed 110k, likely due to deriving
account addresses. That would cause random ci test failure occasionally.
2022-02-14 09:10:39 +01:00
Christian Kamm 37d6bed309 CI: Only run for PRs and pushes to master 2022-02-14 09:10:39 +01:00
Christian Kamm 16d22648f7 Rename padding -> reserved and increase its size 2022-02-14 09:06:29 +01:00
Christian Kamm bb9738b12f Update to 0.1.11 2022-02-11 13:53:06 +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 ee7d51c229
Mc/update workflow to match solana version + do soteria scan and lint+tests on all branches to catch issues early on (#37)
* use solana version on ci, same as local, same as in cargo.toml in dev

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* run soteria scan and tests on all branches, so that devs can detect problems early

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* maybe this works to match all branches

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>

* try stable

Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 20:35:39 +01:00
microwavedcola1 357648e4da bump version
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-10 19:37:56 +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
Sebastian Bor 7ff4ad2e23 chore: update version to 0.1.9 2022-02-09 13:59:52 +00: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
microwavedcola1 997767a06e Revert "use solana version on ci, same as local, same as in cargo.toml in dev"
This reverts commit b6e19da7e4.
2022-02-08 12:46:28 +01:00
microwavedcola1 b6e19da7e4 use solana version on ci, same as local, same as in cargo.toml in dev
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-08 12:32:56 +01:00
microwavedcola1 77642d7f0c
update solana dep (#36)
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-05 18:06:50 +01:00
Sebastian Bor f2482ce800
chore: specify explicit anchor and solana version (#35) 2022-02-04 17:02:29 +01:00
Christian Kamm 5835652650 Bump version to 0.1.8, release 2022-02-04 14:32:20 +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
microwavedcola1 b466f0d002 release
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
2022-02-02 18:19:34 +01:00
Christian Kamm be8f033842 Update spl_governance fixture binary 2022-02-02 08:46:16 +01:00
Sebastian Bor ce16b0e4c6 chore: add version comments 2022-02-02 08:43:42 +01:00
Sebastian Bor b6fe798af6 chore: upgrade spl-gov to 2.2.0 2022-02-02 08:43:42 +01:00
Sebastian Bor 6bbae6519c chore: replace obsolete set_bpf_compute_max_units 2022-02-02 08:43:42 +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
silas fdad234b1e CI: Soteria job cache improvements
Co-authored-by: Christian Kamm <mail@ckamm.de>
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
silas e1980488bd Soteria updates 2022-01-26 11:56:53 +01:00
Christian Kamm 3566b7eece Adjust release script to not auto-commit/push 2022-01-26 09:57:32 +01:00
Christian Kamm dff41754e2 Update to version 0.1.6 2022-01-26 09:44:27 +01:00
Christian Kamm 68da83cfa9 Test: add basic one for internal_transfer_unlocked 2022-01-26 09:01:17 +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