README
Ark Notifier Plugin
This plugin calls webhooks when a certain events occurs. You can use it to post alerts on Slack, Discord, send Emails/SMS or use whichever service that supports webhooks.
❤️ Support maintenance and development of plugins
If you find this or other plugins useful please consider
- voting for
deadlock
delegate - donating to
AWtgFYbvtLDYccJvC5MChk4dpiUy2Krt2U
to support development new plugins and tools for Ark's Ecosystem and maintenance of existing ones. Full list of contributions can be found on https://arkdelegates.live/delegate/deadlock/. 🖖
Installation
Adding plugin to config
Before restarting your process, you need to add the plugin into the very end core.plugins
or relay.plugins
section of app.json
file:
{
"package": "@deadlock-delegate/notifier",
"options": {
"enabled": true,
"webhooks": [{
"endpoint": "https://discordapp.com/api/webhooks/612412465124612462/A1Ag12F&ijafa-3mtASA121mja",
"payload": {
"msg": "content"
},
"events": ["wallet.vote", "wallet.unvote", "forger.missing", "forger.failed"]
}, {
"endpoint": "https://hooks.slack.com/services/T1212ASDA/BAEWAS12/ASxASJL901ajkS",
"payload": {
"msg": "text"
},
"events": ["wallet.vote", "wallet.unvote", "forger.missing", "forger.failed"]
},
{
"endpoint": "https://api.pushover.net/",
"payload": {
"msg": "message",
"user": "<pushover user key>",
"token": "<pushover token>"
},
"events": ["forger.missing", "forger.failed"]
}]
}
}
}
For production (eg. devnet/mainnet):
- Install plugin:
ark plugin:install @deadlock-delegate/notifier
- Add plugin to
app.json
- Start your node as you usually start it
For development (eg. testnet):
Assuming you don't run testnet locally via docker:
- Clone this plugin into
plugins/
directory of the core project - Add plugin to
app.json
, for testnet the file can be found in:core/packages/core/bin/config/testnet/app.json
- Go into the plugin's directory:
cd notifier
- Build plugin:
yarn build
- Run
yarn full:testnet
insidecore/packages/core
directory to start testnet with notifier plugin
Configuration explanation
{
"package": "@deadlock-delegate/notifier",
"options": {
"enabled": true,
"webhooks": [{
"endpoint": "webhook endpoint url",
"payload": {
"msg": "name of the message field eg. Discord has 'content', Slack has 'text', Pushover has 'message'"
},
"events": ["list of events you want to subscribe to"]
}]
}
}
Events you can subscribe to
Handlers for unticked events haven't been implemented yet. Feel free to make a contribution.
- wallet.vote
- wallet.unvote
- forger.missing - when a delegate fails to forge in a round (could be any delegate)
- forger.failed - if your forger process fails to forge (only works if a plugin is running on a node with a forging process running)
- forger.started - when your forging process starts
- block.applied
- block.forged - when your forging process forges a new block
- block.reverted
- delegate.registered
- delegate.resigned
- peer.added
- peer.removed
- transaction.applied
- transaction.expired
- transaction.forged
- transaction.reverted
- activedelegateschanged - when active delegates change (voted out/in) (note: this is a custom event and does not existing in
core
!)
Credits
License
MIT © deadlock delegate