0.1.0 • Published 2 years ago
substreams-sink-telegram v0.1.0
Substreams Telegram CLI Node.js
substreams-sink-telegramis a tool that allows developers to pipe data extracted from a blockchain to the Telegram messaging social platform.
📖 Documentation
Further resources
- Substreams documentation
- Telegram Bot API documentation
- Telegram MarkdownV2 specifications
- Telegram HTML specifications
Protobuf
CLI
- MacOS
- Linux
- Windows
Install globally via npm
$ npm install -g substreams-sink-telegramRun
$ substreams-sink-telegram run [options] <spkg>Formatting
Supports JSON and YAML format for configuration file. Example of config.json format configuration file:
[
{
"entity": "Transfer",
"chat_ids": [
"@some_chat_id",
"@some_other_chat_id"
],
"message": "This *{user_id}* made a transaction with id [{trx_id}](https://someblockexplorer.com/transactions/{trx_id})"
},
{
"entity": "Transfer",
"parse_mode": "HTML",
"chat_ids": [
"@some_chat_id"
],
"message": "PRIVATE GROUP: This <b>{user_id}</b> made a transaction with id <a href=\"https://someblockexplorer.com/transactions/{trx_id}\">{trx_id}</a>"
},
{
"entity": "OtherEntity",
"chat_ids": [
"@some_chat_id"
],
"message": "This {other_field}"
}
]Text between {} are field names and are used as labels for message templating. In the example above, all EntityChanges messages coming from the substream with entity key having Transfer as value, will be sent to Telegram chats with id @some_chat_id and @some_other_chat_id, as specified in the first and second json object.
Features
Substreams
- Consume
*.spkgfrom:- Load URL or IPFS
- Read from
*.spkglocal filesystem - Read from
substreams.yamllocal filesystem
- Handle
cursorrestart
Telegram
- Handle rate limit
- HTML message parsing
- MarkdownV2 message parsing (by default)