New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

fcl-subscribe

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fcl-subscribe

Subscribe to Flow blockchain events

latest
Source
npmnpm
Version
0.1.9
Version published
Weekly downloads
27
285.71%
Maintainers
1
Weekly downloads
 
Created
Source

fcl-subscribe

Subscribe to Flow blockchain events, wrapping @onflow/fcl.

Motivation

The fcl.send() function (link) "sends arbitrary scripts, transactions, and requests to Flow". Clients can use fcl.send() with the fcl.getEventsAtBlockHeightRange() function (link) to get "all instances of a particular event (by name) within a height range".

However, fcl.getEventsAtBlockHeightRange() is limited to a single block range, "the block range provided must be 250 blocks or lower per request" and fcl.send() only sends the request once. There is no @onflow/fcl method to subscribe to all events of a certain type across a larger block range, including as new blocks are created.

This module implements subscribe() which allows clients to make the same fcl.getEventsAtBlockHeightRange() call across many block ranges (250 blocks at a time), including previous blocks and as new blocks are created.

NOTE: while this module was designed for fcl.getEventsAtBlockHeightRange(), it can be used for any fcl request of a given block range.

Usage

Install as an npm package

npm install --save fcl-subscribe

Import fcl-subscribe and use it in conjunction with @onflow/fcl

import * as fcl from '@onflow/fcl';
import { subscribe } from 'fcl-subscribe';

fcl.config(/* arguments */)

subscribe({
    // inject fcl.block to retrieve latest block height
    block: fcl.block,
    // callback to run query for current block context
    getQuery: function(context) {
        return fcl.send(/* arguments */);
    },
    // handle the response
    onResponse: function(response) {
        fcl.decode(response).then(console.log);
    },
});

See API for the full set of supported arguments.

When specifically subscribing to events, subscribeToEvent is provided as a convenience wrapper for the query (wrapping fcl.send and fcl.getEventsAtBlockHeightRange) and initial processing of the response (wrapping fcl.decode). This module also provides subscribeToEvents to subscribe to multiple events in a single subscription.

import * as fcl from '@onflow/fcl';
import { subscribeToEvents } from 'fcl-subscribe';

fcl.config(/* arguments */);

subscribeToEvents({
    fcl: fcl, // fcl is injected
    events: [/* list of event types to subscribe to */],
    onEvent: console.log,
});

See demo-subscribe-to-events.js for working sample. The demo can be run using:

npm run demo

Debugging

This module uses debug for optional logging. To enable, set DEBUG=fcl-subscribe.

FAQs

Package last updated on 22 Jun 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts