Many self-sovereign blockchains have their own tokenomics that can influence the block rewards:
Rewards for incentivization pools (incentivized liquidity pools for ex)
Rewards for community pools
Rewards for predefined addresses
Rewards for insurance funds
etc....
The current methodology for a project is to fork one of these customized mint module and change it for the logic of the chain since the SDK mint module doesn't allow for flexibility.
As opened here https://github.com/tendermint/spn/issues/852, customized open sourced mint found in the space also include very few tests for such an important and sensitive component.
The same as the claim module, the idea of this issue is to make mint module under this repo universal and reusable for any other project with minimal changes. Developers can integrate the module with extensive test and plug it into other module for usage of rewards.
Proposed solution
Include as part of the module params:
Weight for staking rewards
Weight for community pool
Generic list of weighted addresses, where a description can be associated with each address
Generic list of... let's say "pipes" for customized rewards redirection
Many self-sovereign blockchains have their own tokenomics that can influence the block rewards:
The current methodology for a project is to fork one of these customized
mint
module and change it for the logic of the chain since the SDKmint
module doesn't allow for flexibility. As opened here https://github.com/tendermint/spn/issues/852, customized open sourcedmint
found in the space also include very few tests for such an important and sensitive component.The same as the
claim
module, the idea of this issue is to makemint
module under this repo universal and reusable for any other project with minimal changes. Developers can integrate the module with extensive test and plug it into other module for usage of rewards.Proposed solution
Include as part of the module params:
The pipe is a generic way to represent a redirection of the block rewards.
In
app.go
modules can register for a pipe with the following method:The method panic is a pipe is subscribed twice.
Example: usage: