2 unstable releases

0.2.0 Mar 11, 2022
0.1.4 Mar 5, 2022

#41 in #governance

AGPL-3.0

21KB
291 lines

permalock

Crates.io Docs.rs License Build Status Contributors NPM

Permalock: Tribeca vote escrows with infinite lockup durations.

About

The Permalock program allows the creation of permalocks: vote escrows which are always locked to the maximum duration.

It works by allowing any user to refresh the lockup period of the vote escrow to the maximum period, ensuring that the owner of the Permalock can never unstake the tokens. Since the Tribeca DAO holds the program upgrade keys, a DAO can be certain that a permalock will never be unlocked, ever.

Documentation

Detailed documentation may be found on the Tribeca Documentation site.

Usage

Locking tokens

First, transfer tokens to the Permalock's pending_tokens account. The pending_tokens account holds all tokens that are ready to be max-locked.

Next, refresh the Permalock with permalock::refresh_lock. This refreshes the Permalock's escrow to max lock the tokens that have been deposited, plus refreshes the lock period of all existing Escrow tokens.

Address

Program addresses are the same on devnet, testnet, and mainnet-beta.

Contribution

Thank you for your interest in contributing to Tribeca Protocol! All contributions are welcome no matter how big or small. This includes (but is not limited to) filing issues, adding documentation, fixing bugs, creating examples, and implementing features.

When contributing, please make sure your code adheres to some basic coding guidlines:

  • Code must be formatted with the configured formatters (e.g. rustfmt and prettier).
  • Comment lines should be no longer than 80 characters and written with proper grammar and punctuation.

License

The Tribeca Permalock program is licensed under the Affero General Public License, version 3.0.

Dependencies

~21–32MB
~550K SLoC