smt

package
v0.0.0-...-77dcbbd Latest Latest
Warning

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

Go to latest
Published: Feb 2, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

package smt implements sparse merkle tree following LIP-0039.

Index

Constants

View Source
const (
	DefaultKeyLength     = 32
	DefaultSubtreeHeight = 8
)

Variables

This section is empty.

Functions

func CalculateRoot

func CalculateRoot(siblingHashes []codec.Hex, queries QueryProofs) ([]byte, error)

func NewTrie

func NewTrie(root []byte, keyLength int) *trie

func UniqueAndSort

func UniqueAndSort(keys, values [][]byte) ([][]byte, [][]byte)

func Verify

func Verify(
	queryKeys [][]byte,
	proof *Proof,
	root []byte,
	keyLength int,
) (bool, error)

Types

type DBReadWriter

type DBReadWriter interface {
	DBReader
	DBWriter
}

type DBReader

type DBReader interface {
	Get(key []byte) ([]byte, bool)
}

type DBWriter

type DBWriter interface {
	Set(key, val []byte)
	Del(key []byte)
}

type Proof

type Proof struct {
	SiblingHashes []codec.Hex   `json:"siblingHashes" fieldNumber:"1"`
	Queries       []*QueryProof `json:"queries" fieldNumber:"2"`
}

Proof holds a data for inclusion / exclusion proof.

func (*Proof) Copy

func (p *Proof) Copy() *Proof

func (*Proof) Decode

func (e *Proof) Decode(data []byte) error

func (*Proof) DecodeFromReader

func (e *Proof) DecodeFromReader(reader *codec.Reader) error

func (*Proof) DecodeStrict

func (e *Proof) DecodeStrict(data []byte) error

func (*Proof) DecodeStrictFromReader

func (e *Proof) DecodeStrictFromReader(reader *codec.Reader) error

func (*Proof) Encode

func (e *Proof) Encode() []byte

func (*Proof) MustDecode

func (e *Proof) MustDecode(data []byte)

type QueryProof

type QueryProof struct {
	Key    codec.Hex `json:"key" fieldNumber:"1"`
	Value  codec.Hex `json:"value" fieldNumber:"2"`
	Bitmap codec.Hex `json:"bitmap" fieldNumber:"3"`
	// contains filtered or unexported fields
}

QueryProof holds a query for the proof.

func (*QueryProof) Decode

func (e *QueryProof) Decode(data []byte) error

func (*QueryProof) DecodeFromReader

func (e *QueryProof) DecodeFromReader(reader *codec.Reader) error

func (*QueryProof) DecodeStrict

func (e *QueryProof) DecodeStrict(data []byte) error

func (*QueryProof) DecodeStrictFromReader

func (e *QueryProof) DecodeStrictFromReader(reader *codec.Reader) error

func (*QueryProof) Encode

func (e *QueryProof) Encode() []byte

func (*QueryProof) MustDecode

func (e *QueryProof) MustDecode(data []byte)

type QueryProofs

type QueryProofs []*QueryProof

Jump to

Keyboard shortcuts

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