UNPKG

substreams-sink-slack

Version:
74 lines (56 loc) 2.33 kB
# [`Substreams`](https://substreams.streamingfast.io/) [Slack](https://slack.com/) CLI `Node.js` <!-- [<img alt="github" src="" height="20">](https://github.com/pinax-network/substreams-sink-slack) --> <!-- [<img alt="npm" src="" height="20">](https://www.npmjs.com/package/substreams-sink-slack) --> <!-- [<img alt="GitHub Workflow Status" src="" height="20">](https://github.com/pinax-network/substreams-sink-slack/actions?query=branch%3Amain) --> > `substreams-sink-slack` is a tool that allows developers to pipe data extracted from a blockchain to the Slack messaging social platform. ## 📖 Documentation <!-- ### https://www.npmjs.com/package/substreams-sink-slack --> ### Further resources - [**Substreams** documentation](https://substreams.streamingfast.io) - [**Slack** API documentation](https://api.slack.com/automation) ### Protobuf - [`sf.substreams.entity.v1.EntityChanges`](https://github.com/streamingfast/substreams-entity-change/blob/develop/proto/entity/v1/entity.proto) ## CLI [**Use pre-built binaries**](https://github.com/pinax-network/substreams-sink-slack/releases) - [x] MacOS - [x] Linux - [x] Windows **Install** globally via npm ``` $ npm install -g substreams-sink-slack ``` **Run** ``` $ substreams-sink-slack run [options] <spkg> ``` ### Formatting Supports `JSON` and `YAML` format for configuration file. Example of `config.json` format configuration file: ```json [ { "entity": "Transfer", "chat_ids": [ "U0G9QF9C6" ], "message": "This *{user_id}* made a _transaction_ with id `{trx_id}`" }, { "entity": "Grants", "chat": [ "U0G9QF9C6" ], "message": "This `{grant}`" } ] ``` 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 [Slack](https://slack.com/) channel or user with id `U0G9QF9C6`, as specified in the first json object. ## Features ### Substreams - Consume `*.spkg` from: - [x] Load URL or IPFS - [ ] Read from `*.spkg` local filesystem - [ ] Read from `substreams.yaml` local filesystem - [x] Handle `cursor` restart ### Slack - [x] Handle rate limit - [x] Markdown message parsing