GithubHelp home page GithubHelp logo

network-client-go's Introduction

network-client-go

Both fetcher and broadcaster client
This library is always up-to-date with main branch of [https://github.com/scorum/cosmos-network](Scorum Cosmos Network)

Broadcaster

This package is used to broadcast messages from go code.

Broadcaster instance requires keyring provided

Usage

b, err := broadcaster.New(Config{
    KeyringRootDir:     "test",
    KeyringBackend:     "file",
    KeyringPromptInput: "1qaz2wsX",
    NodeURI:            "localhost:26657",
    BroadcastMode:      "block",
    From:               "keyringKey",
    ChainID:            "test",
})
if err != nil {
    return fmt.Errorf("failed to create broadcaster: %w", err)
}

msg := NewSomeScorumMsg(from)
tx, err := b.BroadcastMsg(msg, "memo")
if err != nil {
    return fmt.Errorf("failed to broadcast: %w", err)
}

log.Info(tx.TxHash)

Fetcher

This package is used to listen blockchain. Note: fetcher's FetchBlocks call is blocking.

Usage

f, err := fetcher.New(ctx, "localhost:9090", time.Second)
if err != nil {
    return fmt.Errorf("failed to create fetcher: %w", err)
}

f.FetchBlocks(
    ctx,
    from,
    func(b Block) error {
        fmt.Printf("%+v", b)

        return nil
    },
    WithErrHandler(func(height uint64, err error) {
        log.Error("failed to fetch", height, err)
    }),
    WithRetryInterval(time.Minute),
    WithSkipError(false),
    WithRetryLastBlockInterval(time.Second*5),
)

network-client-go's People

Contributors

mikluke avatar

Watchers

Andrew Avdeev avatar Alex avatar  avatar Yury Muski avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.