confirmations

package
v1.1.6 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Copyright © 2022 Kaleido, Inc.

SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockInfo

type BlockInfo struct {
	BlockNumber       fftypes.FFuint64 `json:"blockNumber"`
	BlockHash         string           `json:"blockHash"`
	ParentHash        string           `json:"parentHash"`
	TransactionHashes []string         `json:"transactionHashes,omitempty"`
}

type EventInfo

type EventInfo struct {
	ID        *ffcapi.EventID
	Confirmed func(ctx context.Context, confirmations []BlockInfo)
}

type Manager

type Manager interface {
	Notify(n *Notification) error
	Start()
	Stop()
	NewBlockHashes() chan<- *ffcapi.BlockHashEvent
	CheckInFlight(listenerID *fftypes.UUID) bool
}

Manager listens to the blocks on the chain, and attributes confirmations to pending events. Once those events meet a threshold they are considered final and dispatched to the relevant listener.

func NewBlockConfirmationManager

func NewBlockConfirmationManager(baseContext context.Context, connector ffcapi.API, desc string) Manager

type Notification

type Notification struct {
	NotificationType NotificationType
	Event            *EventInfo
	Transaction      *TransactionInfo
	RemovedListener  *RemovedListenerInfo
}

type NotificationType

type NotificationType int
const (
	NewEventLog NotificationType = iota
	RemovedEventLog
	NewTransaction
	RemovedTransaction
	ListenerRemoved
)

type RemovedListenerInfo added in v0.9.3

type RemovedListenerInfo struct {
	ListenerID *fftypes.UUID
	Completed  chan struct{}
}

type TransactionInfo

type TransactionInfo struct {
	TransactionHash string
	Receipt         func(ctx context.Context, receipt *ffcapi.TransactionReceiptResponse)
	Confirmed       func(ctx context.Context, confirmations []BlockInfo)
}

Jump to

Keyboard shortcuts

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