storage

package
v0.0.0-...-19b0ade Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AttestationVaa

type AttestationVaa struct {
	ID               string      `db:"id"`
	VaaID            string      `db:"vaa_id"`
	Version          uint8       `db:"version"`
	EmitterChain     sdk.ChainID `db:"emitter_chain_id"`
	EmitterAddress   string      `db:"emitter_address"`
	Sequence         Uint64      `db:"sequence"`
	GuardianSetIdx   uint32      `db:"guardian_set_index"`
	Raw              []byte      `db:"raw"`
	Timestamp        time.Time   `db:"timestamp"`
	Active           bool        `db:"active"`
	IsDuplicated     bool        `db:"is_duplicated"`
	ConsistencyLevel *uint8      `db:"consistency_level"`
	CreatedAt        time.Time   `db:"created_at"`
	UpdatedAt        *time.Time  `db:"updated_at"`
}

type DuplicateVaaDoc

type DuplicateVaaDoc struct {
	ID               string      `bson:"_id"`
	VaaID            string      `bson:"vaaId"`
	Version          uint8       `bson:"version"`
	EmitterChain     sdk.ChainID `bson:"emitterChain"`
	EmitterAddr      string      `bson:"emitterAddr"`
	Sequence         string      `bson:"sequence"`
	GuardianSetIndex uint32      `bson:"guardianSetIndex"`
	Vaa              []byte      `bson:"vaas"`
	Digest           string      `bson:"digest"`
	ConsistencyLevel uint8       `bson:"consistencyLevel"`
	TxHash           string      `bson:"txHash,omitempty"`
	Timestamp        *time.Time  `bson:"timestamp"`
	UpdatedAt        *time.Time  `bson:"updatedAt"`
}

DuplicateVaaDoc represents a duplicate VAA document.

func (*DuplicateVaaDoc) ToVaaDoc

func (d *DuplicateVaaDoc) ToVaaDoc(duplicatedFixed bool) *VaaDoc

type GovernorConfigChain

type GovernorConfigChain struct {
	GovernorConfigID   string    `db:"governor_config_id"`
	ChainID            uint16    `db:"chain_id"`
	NotionalLimit      uint64    `db:"notional_limit"`
	BigTransactionSize uint64    `db:"big_transaction_size"`
	CreatedAt          time.Time `db:"created_at"`
	UpdatedAt          time.Time `db:"updated_at"`
}

type GovernorStatusRepository

type GovernorStatusRepository interface {
	FindNodeGovernorVaaByNodeAddress(ctx context.Context, nodeAddress string) ([]NodeGovernorVaa, error)
	FindNodeGovernorVaaByVaaID(ctx context.Context, vaaID string) ([]NodeGovernorVaa, error)
	FindNodeGovernorVaaByVaaIDs(ctx context.Context, vaaID []string) ([]NodeGovernorVaa, error)
	FindGovernorVaaByVaaIDs(ctx context.Context, vaaID []string) ([]GovernorVaa, error)
	UpdateGovernorStatus(ctx context.Context, nodeName string, nodeAddress string, nodeGovernorVaaDocToInsert []NodeGovernorVaa,
		nodeGovernorVaaDocToDelete []string, governorVaasToInsert []GovernorVaa,
		governorVaaIdsToDelete []string) error
}

type GovernorVaa

type GovernorVaa struct {
	ID             string      `bson:"_id" db:"id"`
	ChainID        sdk.ChainID `bson:"chainId" db:"chain_id"`
	EmitterAddress string      `bson:"emitterAddress" db:"emitter_address"`
	Sequence       string      `bson:"sequence" db:"sequence"`
	TxHash         string      `bson:"txHash" db:"tx_hash"`
	ReleaseTime    time.Time   `bson:"releaseTime" db:"release_time"`
	Amount         Uint64      `bson:"amount" db:"notional_value"`
	CreatedAt      *time.Time  `bson:"-" db:"created_at"`
	UpdatedAt      *time.Time  `bson:"-" db:"updated_at"`
}

type NodeGovernorVaa

type NodeGovernorVaa struct {
	ID          string     `bson:"_id" db:"guardian_address"`
	NodeName    string     `bson:"nodeName" db:"guardian_name"`
	NodeAddress string     `bson:"nodeAddress" db:"guardian_address"`
	VaaID       string     `bson:"vaaId" db:"vaa_id"`
	CreatedAt   *time.Time `bson:"-" db:"created_at"`
	UpdatedAt   *time.Time `bson:"-" db:"updated_at"`
}

type PostgresRepository

type PostgresRepository struct {
	// contains filtered or unexported fields
}

PostgresRepository is a repository for postgres.

func NewPostgresRepository

func NewPostgresRepository(db *db.DB, logger *zap.Logger, metrics metrics.Metrics) *PostgresRepository

NewPostgresRepository creates a new repository.

func (*PostgresRepository) FindActiveAttestationVaaByVaaID

func (r *PostgresRepository) FindActiveAttestationVaaByVaaID(ctx context.Context, vaaID string) (*AttestationVaa, error)

FindActiveAttestationVaaByVaaID finds active attestation vaa by vaa id.

func (*PostgresRepository) FindAttestationVaaByVaaId

func (r *PostgresRepository) FindAttestationVaaByVaaId(ctx context.Context, vaaID string) ([]AttestationVaa, error)

FindAttestationVaaByVaaId finds attestation vaa by vaa id.

func (*PostgresRepository) FindGovernorVaaByVaaIDs

func (r *PostgresRepository) FindGovernorVaaByVaaIDs(ctx context.Context, vaaID []string) ([]GovernorVaa, error)

func (*PostgresRepository) FindNodeGovernorVaaByNodeAddress

func (r *PostgresRepository) FindNodeGovernorVaaByNodeAddress(ctx context.Context, nodeAddress string) ([]NodeGovernorVaa, error)

func (*PostgresRepository) FindNodeGovernorVaaByVaaID

func (r *PostgresRepository) FindNodeGovernorVaaByVaaID(ctx context.Context, vaaID string) ([]NodeGovernorVaa, error)

func (*PostgresRepository) FindNodeGovernorVaaByVaaIDs

func (r *PostgresRepository) FindNodeGovernorVaaByVaaIDs(ctx context.Context, vaaID []string) ([]NodeGovernorVaa, error)

func (*PostgresRepository) FixActiveVaa

func (r *PostgresRepository) FixActiveVaa(ctx context.Context, id string, vaaID string) error

FixActiveVaa fixes active vaa.

func (*PostgresRepository) GetGovernorConfig

func (r *PostgresRepository) GetGovernorConfig(
	ctx context.Context,
	nodeAddress string) ([]GovernorConfigChain, error)

GetGovernorConfig gets a governor config by node address.

func (*PostgresRepository) UpdateAttestationVaaIsDuplicated

func (r *PostgresRepository) UpdateAttestationVaaIsDuplicated(ctx context.Context, id string, isDuplicated bool) error

UpdateAttestationVaaIsDuplicated updates attestation vaa is duplicated.

func (*PostgresRepository) UpdateGovernorConfigChains

func (r *PostgresRepository) UpdateGovernorConfigChains(
	ctx context.Context,
	nodeAddress string,
	chains []GovernorConfigChain) error

UpdateGovernorConfigChains updates governor config chains.

func (*PostgresRepository) UpdateGovernorStatus

func (r *PostgresRepository) UpdateGovernorStatus(
	ctx context.Context,
	nodeName string,
	nodeAddress string,
	nodeGovernorVaaDocToInsert []NodeGovernorVaa,
	nodeGovernorVaaDocToDelete []string,
	governorVaasToInsert []GovernorVaa,
	governorVaaIdsToDelete []string) error

type Repository

type Repository struct {
	// contains filtered or unexported fields
}

Repository exposes operations over the `globalTransactions` collection. Remove Repository after switch to use only postgres.

func NewRepository

func NewRepository(logger *zap.Logger, db *mongo.Database, metrics metrics.Metrics) *Repository

New creates a new repository.

func (*Repository) FindDuplicateVAAById

func (r *Repository) FindDuplicateVAAById(ctx context.Context, id string) (*DuplicateVaaDoc, error)

FindDuplicateVAAById find a duplicate vaa by id.

func (*Repository) FindDuplicateVAAs

func (r *Repository) FindDuplicateVAAs(ctx context.Context, vaaID string) ([]DuplicateVaaDoc, error)

FindDuplicateVAAs find duplicate vaas by vaa id.

func (*Repository) FindGovernorVaaByVaaIDs

func (r *Repository) FindGovernorVaaByVaaIDs(ctx context.Context, vaaID []string) ([]GovernorVaa, error)

FindGovernorVaaByVaaID find governor vaas by a list of vaaIds

func (*Repository) FindNodeGovernorVaaByNodeAddress

func (r *Repository) FindNodeGovernorVaaByNodeAddress(ctx context.Context, nodeAddress string) ([]NodeGovernorVaa, error)

FindNodeGovernorVaaByNodeAddress find governor vaas by node address.

func (*Repository) FindNodeGovernorVaaByVaaID

func (r *Repository) FindNodeGovernorVaaByVaaID(ctx context.Context, vaaID string) ([]NodeGovernorVaa, error)

FindNodeGovernorVaaByVaaID find governor vaas by vaa id.

func (*Repository) FindNodeGovernorVaaByVaaIDs

func (r *Repository) FindNodeGovernorVaaByVaaIDs(ctx context.Context, vaaID []string) ([]NodeGovernorVaa, error)

FindNodeGovernorVaaByVaaIDs find governor vaas by vaa ids.

func (*Repository) FindVAAById

func (r *Repository) FindVAAById(ctx context.Context, vaaID string) (*VaaDoc, error)

FindVAAById find a vaa by id.

func (*Repository) FixVAA

func (r *Repository) FixVAA(ctx context.Context, vaaID, duplicateID string) error

FixVAA fix a vaa by id.

func (*Repository) UpdateGovernorStatus

func (r *Repository) UpdateGovernorStatus(
	ctx context.Context,
	nodeName string,
	nodeAddress string,
	nodeGovernorVaaDocToInsert []NodeGovernorVaa,
	nodeGovernorVaaDocToDelete []string,
	governorVaasToInsert []GovernorVaa,
	governorVaaIdsToDelete []string) error

type Uint64

type Uint64 uint64

func (Uint64) MarshalBSONValue

func (u Uint64) MarshalBSONValue() (bsontype.Type, []byte, error)

func (*Uint64) UnmarshalBSONValue

func (u *Uint64) UnmarshalBSONValue(t bsontype.Type, b []byte) error

type VaaDoc

type VaaDoc struct {
	ID               string      `bson:"_id"`
	Version          uint8       `bson:"version"`
	EmitterChain     sdk.ChainID `bson:"emitterChain"`
	EmitterAddr      string      `bson:"emitterAddr"`
	Sequence         string      `bson:"sequence"`
	GuardianSetIndex uint32      `bson:"guardianSetIndex"`
	Vaa              []byte      `bson:"vaas"`
	TxHash           string      `bson:"txHash,omitempty"`
	OriginTxHash     *string     `bson:"_originTxHash,omitempty"` //this is temporary field for fix enconding txHash
	Timestamp        *time.Time  `bson:"timestamp"`
	UpdatedAt        *time.Time  `bson:"updatedAt"`
	Digest           string      `bson:"digest"`
	IsDuplicated     bool        `bson:"isDuplicated"`
	DuplicatedFixed  bool        `bson:"duplicatedFixed"`
}

VaaDoc represents a VAA document.

func (*VaaDoc) ToDuplicateVaaDoc

func (v *VaaDoc) ToDuplicateVaaDoc() (*DuplicateVaaDoc, error)

Jump to

Keyboard shortcuts

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