subscription

package
v1.2.1-0...-5ea5176 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2021 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Overview

* Copyright (C) 2019 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* Copyright (C) 2019 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* Copyright (C) 2019 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* Copyright (C) 2019 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* Copyright (C) 2019 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

* Copyright (C) 2019 Zilliqa * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/>.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Complete

type Complete struct {
	sync.Mutex
	Number int
}

type EventLogSubscriber

type EventLogSubscriber struct {
	Ws *Websocket
}

func BuildEventLogSubscriber

func BuildEventLogSubscriber(url url.URL, addresses []string) *EventLogSubscriber

func (*EventLogSubscriber) Start

func (subscriber *EventLogSubscriber) Start() (error, chan error, chan []byte)

type GetEventReceiptTask

type GetEventReceiptTask struct {
	Provider *provider.Provider
	Id       string
	Complete *Complete
	Walker   *Walker
	BlockNum uint64
}

func NewGetReceiptTask

func NewGetReceiptTask(tx string, provider2 *provider.Provider, c *Complete, w *Walker, b uint64) GetEventReceiptTask

func (GetEventReceiptTask) Run

func (t GetEventReceiptTask) Run()

func (GetEventReceiptTask) UUID

func (t GetEventReceiptTask) UUID() string

type Log

type Log struct {
	Hash      string
	EventName string
	Address   string
	Logs      interface{}
}

type MessageTypeT

type MessageTypeT string

message type pushed by server side and we can query with to server

const (
	NewBlock     MessageTypeT = "NewBlock"
	EventLog     MessageTypeT = "EventLog"
	Notification MessageTypeT = "Notification"
	UnSubscribe  MessageTypeT = "Unsubscribe"
)

type NewBlockQuery

type NewBlockQuery struct {
	Query string `json:"query"`
}

func (*NewBlockQuery) Stringify

func (query *NewBlockQuery) Stringify() ([]byte, error)

type NewBlockSubscriber

type NewBlockSubscriber struct {
	Ws *Websocket
}

func BuildNewBlockSubscriber

func BuildNewBlockSubscriber(url url.URL) *NewBlockSubscriber

func (*NewBlockSubscriber) Start

func (subscriber *NewBlockSubscriber) Start() (error, chan error, chan []byte)

type NewEventLogQuery

type NewEventLogQuery struct {
	Query     string   `json:"query"`
	Addresses []string `json:"addresses"`
}

func (*NewEventLogQuery) Stringify

func (query *NewEventLogQuery) Stringify() ([]byte, error)

type SocketConnectT

type SocketConnectT string
const (
	Ready     SocketConnectT = "ready"
	Connect   SocketConnectT = "connect"
	Error     SocketConnectT = "error"
	Close     SocketConnectT = "close"
	Reconnect SocketConnectT = "reconnect"
)

type SocketStateT

type SocketStateT string
const (
	SocketConnect SocketStateT = "socket_connect"
	SocketMessage SocketStateT = "socket_message"
	SocketReady   SocketStateT = "socket_ready"
	SocketClose   SocketStateT = "socket_close"
	SocketError   SocketStateT = "socket_error"
)

type StatusType

type StatusType string
const (
	SubscribeNewBlock StatusType = "SubscribeNewBlock"
	SubscribeEventLog StatusType = "SubscribeEventLog"
)

type Topic

type Topic interface {
	Stringify() ([]byte, error)
}

type Unsubscribe

type Unsubscribe struct {
	Query string `json:"query"`
	Type  string `json:"type"`
}

func (*Unsubscribe) Stringify

func (query *Unsubscribe) Stringify() ([]byte, error)

type Walker

type Walker struct {
	Provider     *provider.Provider
	FromBlock    uint64
	ToBlock      uint64
	CurrentBlock uint64
	Address      string
	EventLogs    map[uint64]Log
	WorkerNumber int64
	EventName    string
}

func NewWalker

func NewWalker(p *provider.Provider, from, to uint64, address string, workerNumber int64, eventName string) *Walker

func (*Walker) StartTraversalBlock

func (w *Walker) StartTraversalBlock()

type Websocket

type Websocket struct {
	Topic  Topic
	URL    url.URL
	Err    chan error
	Msg    chan []byte
	Client *websocket.Conn
}

func NewWebsocket

func NewWebsocket(topic Topic, url url.URL, err chan error, msg chan []byte) *Websocket

func (*Websocket) Close

func (w *Websocket) Close() error

func (*Websocket) Start

func (w *Websocket) Start()

func (*Websocket) Subscribe

func (w *Websocket) Subscribe() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL