|
||
---|---|---|
migrations | ||
static | ||
templates | ||
.gitignore | ||
client.go | ||
config.go | ||
db.go | ||
flexassistant.yaml.example | ||
go.mod | ||
go.sum | ||
LICENSE | ||
main.go | ||
Makefile | ||
miner.go | ||
notification.go | ||
pool.go | ||
README.md | ||
UPGRADES.md | ||
utils.go | ||
VERSION |
flexassistant
Flexpool.io is a famous cryptocurrency mining or farming pool supporting Ethereum and Chia blockchains. As a miner, or a farmer, we like to get notified when a block is mined, or farmed. We also like to keep track of our unpaid balance and our transactions to our personal wallet.
flexassistant is a tool that parses the Flexpool API and sends notifications via Telegram.
Installation
Note: this guide has been written with Linux x86_64 in mind.
Binaries
Go to Releases to download the binary in the version you like (latest is recommended) into a bin
directory.
Write checksum information to a local file:
echo checksum > flexassistant-VERSION-Linux-x86_64.sha256sum
Verify checksums to avoid binary corruption:
sha256sum -c flexassistant-VERSION-Linux-x86_64.sha256sum
Compilation
You will need to install Go, Git and a development toolkit (including make) for your environment.
Then, you'll need to download and compile the source code:
git clone https://github.com/jouir/flexassistant.git
cd flexassistant
make
The binary will be available under the bin
directory:
ls -l bin/flexassistant
Configuration
flexassistant can be configured using a YaML file. By default, the flexassistant.yaml
file is used but it can be another file provided by the -config
argument.
As a good start, you can copy the configuration file example:
cp -p flexassistant.yaml.example flexassistant.yaml
Then edit this file at will.
Reference:
database-file
(optional): file name of the database file to persist information between two executions (SQLite database)max-blocks
(optional): maximum number of blocks to retreive from the APImax-payments
(optional): maximum number of payments to retreive from the APIpools
(optional): list of poolscoin
: coin of the pool (ex:eth
,xch
)enable-blocks
(optional): enable block notifications for this pool (disabled by default)
miners
(optional): list of miners and/or farmersaddress
: address of the miner or the farmer registered on the APIenable-balance
(optional): enable balance notifications (disabled by default)enable-payments
(optional): enable payments notifications (disabled by default)enable-offline-workers
(optional): enable offline/online notifications for associated workers (disabled by default)
telegram
: Telegram configurationtoken
: token of the Telegram botchat-id
(optional ifchannel-name
is present): chat identifier to send Telegram notificationschannel-name
(optional ifchat-id
is present): channel name to send Telegram notifications
notification-templates
(optional): path to template files for each notification typebalance
(optional): path to template file to format balance notificationspayment
(optional): path to template file to format payment notificationsblock
(optional): path to template file to format block notificationsoffline-worker
(optional): path to template file to format offline worker notifications
Templating
Notifications can be customized with templating.
The following functions are available to templates:
upper(str string)
: convert string to upper caselower(str string)
: convert string to lower caseconvertCurrency(coin string, value int64)
: convert the smallest unit of a coin to a human readable unitconvertAction(coin string)
: return "Farmed" word for Chia coin or "Mined" for other coinsformatBlockURL(coin string, hash string)
: return the URL on the explorer website of the coin of the block identified by its hashformatTransactionURL(coin string, hash string)
: return the URL on the explorer website of the coin of the transaction identified by its hash
The following data is available to templates:
- balance:
.Miner
- payment:
.Miner
,.Payment
- block:
.Pool
,.Block
- offline-worker:
.Worker
Default templates are available in the templates directory.
Custom template files can be used with the notification-templates
settings (see Configuration section).
Usage
Usage of ./flexassistant:
-config string
Configuration file name (default "flexassistant.yaml")
-debug
Print even more logs
-quiet
Log errors only
-verbose
Print more logs
-version
Print version and exit