A Configurable Automated Profit Sharing Token Distributor.
You must use the linear or exponential decay calculators to determine the configuration.
You need to modify config.js
according to your requirements. Below are explanations for each of the configuration variables.
token_contract_id: String
- The contract ID of the token being emittedemission_period: Integer
- (E) Emission time period in secondstime_interval: Integer
- (I) Number of seconds in between each distribution cycleinitial_emit_amount: Integer
- (A) The initial amount of tokens to emitdecay_const
- (k) The decay constant for an exponential decay curve
Note: Set
decay_const
asundefined
if you're using linear curve!
The taf is what determines who PSTs are sent to on each run. You must build this function yourself, but the function must return one of two options:
Format 1:
["pvPWBZ8A5HLpGSEfhEmK1A3PfMgB_an8vVS6L14Hsls", "WNeEQzI24ZKWslZkQT573JZ8bhatwDVx6XVDrrGbUyk"]
Each wallet address would be distributed an equal amount of PSTs at a given run
Format 2:
[
{
"address": "pvPWBZ8A5HLpGSEfhEmK1A3PfMgB_an8vVS6L14Hsls",
"weight": 6
},
{
"address": "WNeEQzI24ZKWslZkQT573JZ8bhatwDVx6XVDrrGbUyk",
"weight": 4
}
]
Each wallet address would be distributed an amount equivalent to its weight out of the total
In the above example, wallet 1 would receive 60% and wallet 2 would receive 40% of the PSTs being distributed at that time
You need to set the schedule in .github/workflows/decay.yml
equal to the interval you set in the Configuration. You can refer to crontab.guru for more info on cron syntax.
on:
workflow_dispatch:
schedule:
- cron: '* * * * *'
Note: GitHub's cron scheduler has an error margin of ±5 minutes, so try to keep the interval greater than at least 15 minutes. Also GitHub doesn't support cron interval less than 1 minute or greater than 1 year.
You also need to store your Arweave keyfile as a GitHub Secret named KEYFILE
and the contents of your arweave keyfile as the value. Visit the Secrets documentation for more info.
This software is licensed under The MIT License