A CosmWasm Smart Contract to implement the Juno Unity Prop.
For information on verifying the on-chain smart contract, see VERIFYING.md.
Develop features and write unit tests.
Before committing, run ./scripts/check.sh
.
The contract assumes a low-trust environment where the withdrawal_address
might want to withdraw their funds.
However, there is a configurable delay to do so.
The governance module, meanwhile, can take several actions immediately, using the sudo
functionality in CW.
This exposes an entrypoint that can only be used by governance.
This means that any arbitrary vesting or release schedule can be executed via governance, if an agreement is reached.
The withdraw_address
has only one action available, on a timer:
This is implemented via two messages:
- The first initiates a withdrawal
- The second claims a withdrawal, if available
Governance has three actions available. All three are executed without delay:
- Burn all funds held by the contract
- Send x quantity of native funds held by the contract
- Send all funds held by the contract