types

package
v0.0.18 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2022 License: MIT Imports: 12 Imported by: 1

Documentation

Overview

Package types contains common types

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CombineDestinationAndNonce

func CombineDestinationAndNonce(destination, nonce uint32) uint64

CombineDestinationAndNonce combines a destination and nonce.

func EncodeAttestation

func EncodeAttestation(attestation Attestation) ([]byte, error)

EncodeAttestation encodes an attestation.

func EncodeHeader

func EncodeHeader(header Header) ([]byte, error)

EncodeHeader encodes a message header.

func EncodeMessage

func EncodeMessage(m Message) ([]byte, error)

EncodeMessage encodes a message.

func EncodeSignature

func EncodeSignature(sig Signature) ([]byte, error)

EncodeSignature encodes a signature.

func EncodeSignedAttestation

func EncodeSignedAttestation(signed SignedAttestation) ([]byte, error)

EncodeSignedAttestation encodes a signed attestation.

func EncodeTips

func EncodeTips(tips Tips) ([]byte, error)

EncodeTips encodes a list of tips. nolint: makezero

func TotalTips

func TotalTips(tips Tips) *big.Int

TotalTips gets the combined value of the tips.

Types

type Attestation

type Attestation interface {
	// Domain gets the domain of the attestation
	Domain() uint32
	// Nonce gets the nonce of the attestation
	Nonce() uint32
	// Root gets the root of the contract
	Root() [32]byte
}

Attestation is the attestation.

func DecodeAttestation

func DecodeAttestation(toDecode []byte) (Attestation, error)

DecodeAttestation decodes an attestation.

func NewAttestation

func NewAttestation(localDomain, nonce uint32, root [32]byte) Attestation

NewAttestation creates a new attestation.

type AttestationSubmitted

type AttestationSubmitted interface {
	// Notary gets the notary of the attestation.
	Notary() common.Hash
	// Attestation gets the raw bytes of the attestation.
	Attestation() []byte
}

AttestationSubmitted is the type emitted by the AttestationCollector when an attestation is submitted.

func NewAttestationSubmitted

func NewAttestationSubmitted(notary common.Hash, attestation []byte) AttestationSubmitted

NewAttestationSubmitted creates a new attestation submitted type.

type ChainType

type ChainType uint8

ChainType is the type of chain being used (e.g. evm).

const (
	// EVM is a chain that conforms to the evm standard.
	EVM ChainType = 0
)

func AllChainTypes

func AllChainTypes() []ChainType

AllChainTypes gets all chain types for the chain.

func (ChainType) String

func (i ChainType) String() string

type CommittedMessage

type CommittedMessage interface {
	// LeafIndex is the index at which the message is committed
	LeafIndex() uint32
	// Message is the fully detailed message that was committed
	Message() []byte
	// Leaf gets a leaf
	Leaf() [32]byte
	// Encode encodes a message
	Encode() ([]byte, error)
}

CommittedMessage is the message that got committed.

func DecodeCommittedMessage

func DecodeCommittedMessage(rawMessage []byte) (CommittedMessage, error)

DecodeCommittedMessage decodes a committed message into a struct.

func NewCommittedMessage

func NewCommittedMessage(leafIndex uint32, message []byte) CommittedMessage

NewCommittedMessage creates a new committed message.

type CommittedMessageEncoder

type CommittedMessageEncoder struct {
	LeafIndex     uint32
	CommittedRoot common.Hash
	Message       []byte
}

CommittedMessageEncoder is used to export fields for struct encoding.

type Header interface {
	// Version gets the version of the header
	Version() uint16
	// OriginDomain is the origin domain of the message
	OriginDomain() uint32
	// Sender is the sender of the message
	Sender() common.Hash
	// Nonce is the nonce of the message
	Nonce() uint32
	// DestinationDomain is the destination domain of the message
	DestinationDomain() uint32
	// Recipient is the recipient of the message
	Recipient() common.Hash
	// OptimisticSeconds is the optimistic time period of the message in seconds
	OptimisticSeconds() uint32
}

Header contains information of a message.

func DecodeHeader

func DecodeHeader(header []byte) (Header, error)

DecodeHeader decodes a header from a byte slice.

func NewHeader

func NewHeader(originDomain uint32, sender common.Hash, nonce uint32, destinationDomain uint32, recipient common.Hash, optimisticSeconds uint32) Header

NewHeader creates a new header type.

type Message

type Message interface {
	// Version gets the version of the message
	Version() uint16
	// Header gets the message header
	Header() Header
	// Tips gets the tips
	Tips() Tips
	// Body gets the message body
	Body() []byte

	// OriginDomain returns the Slip-44 ID
	OriginDomain() uint32
	// Sender is the address of the sender
	Sender() common.Hash
	// Nonce is the count of all previous messages to the destination
	Nonce() uint32
	// DestinationDomain is the slip-44 id of the destination
	DestinationDomain() uint32
	// Recipient is the address of the recipient
	Recipient() common.Hash
	// ToLeaf converts a leaf to a keccac256
	ToLeaf() (leaf [32]byte, err error)
	// DestinationAndNonce gets the destination and nonce encoded into a single field
	DestinationAndNonce() uint64
	// OptimisticSeconds gets the optimistic seconds count
	OptimisticSeconds() uint32
}

Message is an interface that contains metadata. nolint:interface-bloat: this interface needs more than ten methods.

func DecodeMessage

func DecodeMessage(message []byte) (Message, error)

DecodeMessage decodes a message from a byte slice.

func NewMessage

func NewMessage(header Header, tips Tips, body []byte) Message

NewMessage creates a new message from fields passed in.

type Proof

type Proof interface {
	// Leaf is the leaf in the proof
	Leaf() common.Hash
	// Index is the index in the tree
	Index() uint32
	// Path is the merkle branch
	Path() common.Hash
	// Encode encodes a message
	Encode() ([]byte, error)
}

Proof is a merkle proof object. The leaf it's path to the root and its index in the tree.

func DecodeProof

func DecodeProof(rawProof []byte) (Proof, error)

DecodeProof decodes a proof.

func NewProof

func NewProof(leaf common.Hash, index uint32, path common.Hash) Proof

NewProof creates a new merkle proof.

type ProofEncoder

type ProofEncoder struct {
	Leaf  common.Hash
	Index uint32
	Path  common.Hash
}

ProofEncoder is exported to allow proofs to be encoded/deoded from binary.

type Signature

type Signature interface {
	// V gets the v value of the signature
	V() *big.Int
	// R is the r value of the signature
	R() *big.Int
	// S is the s value of the signature
	S() *big.Int
}

Signature creates a new signature.

func DecodeSignature

func DecodeSignature(toDecode []byte) (sig Signature, err error)

DecodeSignature decodes a signature.

func NewSignature

func NewSignature(v, r, s *big.Int) Signature

NewSignature creates a new signature.

type SignedAttestation

type SignedAttestation interface {
	// Attestation gets the unsigned attestation
	Attestation() Attestation
	// Signature is the signature of the attestation
	Signature() Signature
}

SignedAttestation is a signed attestation.

func DecodeSignedAttestation

func DecodeSignedAttestation(toDecode []byte) (SignedAttestation, error)

DecodeSignedAttestation decodes a signed attestation.

func NewSignedAttestation

func NewSignedAttestation(attestation Attestation, signature Signature) SignedAttestation

NewSignedAttestation creates a new signed attestation.

type Tips

type Tips interface {
	// Version gets the version of the tips header
	Version() uint16
	// NotaryTip gets the tips for the notary
	NotaryTip() *big.Int
	// BroadcasterTip gets the tips for the broadcaster
	BroadcasterTip() *big.Int
	// ProverTip gets the tips for the prover
	ProverTip() *big.Int
	// ExecutorTip gets the tips for the executor
	ExecutorTip() *big.Int
}

Tips contain tips used for scientizing different agents.

func DecodeTips

func DecodeTips(toDecode []byte) (Tips, error)

DecodeTips decodes a tips typed mem view.

func NewTips

func NewTips(notaryTip, broadcasterTip, proverTip, executorTip *big.Int) Tips

NewTips creates a new tips type.

Jump to

Keyboard shortcuts

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