sequencerblockv1alpha1

package
v1.34.0-20240504023111... Latest Latest
Warning

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

Go to latest
Published: unknown License: MIT Imports: 7 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_astria_sequencerblock_v1alpha1_block_proto protoreflect.FileDescriptor
View Source
var File_astria_sequencerblock_v1alpha1_celestia_proto protoreflect.FileDescriptor
View Source
var File_astria_sequencerblock_v1alpha1_service_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type CelestiaRollupBlob

type CelestiaRollupBlob struct {

	// The hash of the sequencer block. Must be 32 bytes.
	SequencerBlockHash []byte `protobuf:"bytes,1,opt,name=sequencer_block_hash,json=sequencerBlockHash,proto3" json:"sequencer_block_hash,omitempty"`
	// The 32 bytes identifying the rollup this blob belongs to. Matches
	// `astria.sequencer.v1.RollupTransactions.rollup_id`
	RollupId *v1.RollupId `protobuf:"bytes,2,opt,name=rollup_id,json=rollupId,proto3" json:"rollup_id,omitempty"`
	// A list of opaque bytes that are serialized rollup transactions.
	Transactions [][]byte `protobuf:"bytes,3,rep,name=transactions,proto3" json:"transactions,omitempty"`
	// The proof that these rollup transactions are included in sequencer block.
	// `astria.sequencer.v1alpha.SequencerBlock.rollup_transactions_proof`.
	Proof *v1.Proof `protobuf:"bytes,4,opt,name=proof,proto3" json:"proof,omitempty"`
	// contains filtered or unexported fields
}

A collection of transactions belonging to a specific rollup that are submitted to celestia.

The transactions contained in the item belong to a rollup identified by `rollup_id`, and were included in the sequencer block identified by `sequencer_block_hash`.

func (*CelestiaRollupBlob) Descriptor deprecated

func (*CelestiaRollupBlob) Descriptor() ([]byte, []int)

Deprecated: Use CelestiaRollupBlob.ProtoReflect.Descriptor instead.

func (*CelestiaRollupBlob) GetProof

func (x *CelestiaRollupBlob) GetProof() *v1.Proof

func (*CelestiaRollupBlob) GetRollupId

func (x *CelestiaRollupBlob) GetRollupId() *v1.RollupId

func (*CelestiaRollupBlob) GetSequencerBlockHash

func (x *CelestiaRollupBlob) GetSequencerBlockHash() []byte

func (*CelestiaRollupBlob) GetTransactions

func (x *CelestiaRollupBlob) GetTransactions() [][]byte

func (*CelestiaRollupBlob) ProtoMessage

func (*CelestiaRollupBlob) ProtoMessage()

func (*CelestiaRollupBlob) ProtoReflect

func (x *CelestiaRollupBlob) ProtoReflect() protoreflect.Message

func (*CelestiaRollupBlob) Reset

func (x *CelestiaRollupBlob) Reset()

func (*CelestiaRollupBlob) String

func (x *CelestiaRollupBlob) String() string

type CelestiaSequencerBlob

type CelestiaSequencerBlob struct {

	// the 32-byte block hash of the sequencer block.
	BlockHash []byte `protobuf:"bytes,1,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
	// the block header, which contains sequencer-specific commitments.
	Header *SequencerBlockHeader `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"`
	// The rollup IDs for which `CelestiaRollupBlob`s were submitted to celestia.
	// Corresponds to the `astria.sequencer.v1.RollupTransactions.rollup_id` field
	// and is extracted from `astria.SequencerBlock.rollup_transactions`.
	RollupIds []*v1.RollupId `protobuf:"bytes,3,rep,name=rollup_ids,json=rollupIds,proto3" json:"rollup_ids,omitempty"`
	// The proof that the rollup transactions are included in sequencer block.
	// Corresponds to `astria.sequencer.v1alpha.SequencerBlock.rollup_transactions_proof`.
	RollupTransactionsProof *v1.Proof `` /* 132-byte string literal not displayed */
	// The proof that the rollup IDs are included in sequencer block.
	// Corresponds to `astria.sequencer.v1alpha.SequencerBlock.rollup_ids_proof`.
	RollupIdsProof *v1.Proof `protobuf:"bytes,5,opt,name=rollup_ids_proof,json=rollupIdsProof,proto3" json:"rollup_ids_proof,omitempty"`
	// contains filtered or unexported fields
}

The metadata of a sequencer block that is submitted to celestia.

It is created by splitting a `astria.SequencerBlock` into a `CelestiaSequencerBlob` (which can be thought of as a header), and a sequence ofj `CelestiaRollupBlob`s.

The original sequencer block (and in turn CometBFT block) can be identified by the block hash calculated from `header`.

func (*CelestiaSequencerBlob) Descriptor deprecated

func (*CelestiaSequencerBlob) Descriptor() ([]byte, []int)

Deprecated: Use CelestiaSequencerBlob.ProtoReflect.Descriptor instead.

func (*CelestiaSequencerBlob) GetBlockHash

func (x *CelestiaSequencerBlob) GetBlockHash() []byte

func (*CelestiaSequencerBlob) GetHeader

func (*CelestiaSequencerBlob) GetRollupIds

func (x *CelestiaSequencerBlob) GetRollupIds() []*v1.RollupId

func (*CelestiaSequencerBlob) GetRollupIdsProof

func (x *CelestiaSequencerBlob) GetRollupIdsProof() *v1.Proof

func (*CelestiaSequencerBlob) GetRollupTransactionsProof

func (x *CelestiaSequencerBlob) GetRollupTransactionsProof() *v1.Proof

func (*CelestiaSequencerBlob) ProtoMessage

func (*CelestiaSequencerBlob) ProtoMessage()

func (*CelestiaSequencerBlob) ProtoReflect

func (x *CelestiaSequencerBlob) ProtoReflect() protoreflect.Message

func (*CelestiaSequencerBlob) Reset

func (x *CelestiaSequencerBlob) Reset()

func (*CelestiaSequencerBlob) String

func (x *CelestiaSequencerBlob) String() string

type Deposit

type Deposit struct {

	// the address the funds were locked in on the sequencer.
	// this is required as initializing an account as a bridge account
	// is permissionless, so the rollup consensus needs to know and enshrine
	// which accounts it accepts as valid bridge accounts.
	BridgeAddress *v1.Address `protobuf:"bytes,1,opt,name=bridge_address,json=bridgeAddress,proto3" json:"bridge_address,omitempty"`
	// the rollup_id which the funds are being deposited to
	RollupId *v1.RollupId `protobuf:"bytes,2,opt,name=rollup_id,json=rollupId,proto3" json:"rollup_id,omitempty"`
	Amount   *v1.Uint128  `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"`
	AssetId  []byte       `protobuf:"bytes,4,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"`
	// the address on the destination chain which
	// will receive the bridged funds
	DestinationChainAddress string `` /* 132-byte string literal not displayed */
	// contains filtered or unexported fields
}

`Deposit` represents a deposit from the sequencer to a rollup.

A `Deposit` is similar to an emitted event, in that the sequencer application detects transfers to bridge accounts and the corresponding rollup ID and includes a `Deposit` corresponding to that within the respective rollup's data.

A `Deposit` notifies a rollup that funds were locked to some account on the sequencer, however it's up to the rollup what to do with that info.

func (*Deposit) Descriptor deprecated

func (*Deposit) Descriptor() ([]byte, []int)

Deprecated: Use Deposit.ProtoReflect.Descriptor instead.

func (*Deposit) GetAmount

func (x *Deposit) GetAmount() *v1.Uint128

func (*Deposit) GetAssetId

func (x *Deposit) GetAssetId() []byte

func (*Deposit) GetBridgeAddress

func (x *Deposit) GetBridgeAddress() *v1.Address

func (*Deposit) GetDestinationChainAddress

func (x *Deposit) GetDestinationChainAddress() string

func (*Deposit) GetRollupId

func (x *Deposit) GetRollupId() *v1.RollupId

func (*Deposit) ProtoMessage

func (*Deposit) ProtoMessage()

func (*Deposit) ProtoReflect

func (x *Deposit) ProtoReflect() protoreflect.Message

func (*Deposit) Reset

func (x *Deposit) Reset()

func (*Deposit) String

func (x *Deposit) String() string

type FilteredSequencerBlock

type FilteredSequencerBlock struct {

	// / The block hash of the cometbft block that corresponds to this sequencer block.
	BlockHash []byte `protobuf:"bytes,1,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
	// the block header, which contains sequencer-specific commitments.
	Header *SequencerBlockHeader `protobuf:"bytes,2,opt,name=header,proto3" json:"header,omitempty"`
	// A subset of rollup transactions that were included in this block.
	RollupTransactions []*RollupTransactions `protobuf:"bytes,3,rep,name=rollup_transactions,json=rollupTransactions,proto3" json:"rollup_transactions,omitempty"`
	// The proof that the rollup transactions are included in the CometBFT block this
	// sequencer block is derived form. This proof together with
	// `rollup_transactions_root = Sha256(MTH(rollup_transactions))` must match `header.data_hash`.
	// `MTH(rollup_transactions)` is the Merkle Tree Hash derived from the
	// rollup transactions.
	RollupTransactionsProof *v1.Proof `` /* 132-byte string literal not displayed */
	// The rollup IDs for which `CelestiaRollupBlob`s were submitted to celestia.
	// Corresponds to the `astria.sequencer.v1.RollupTransactions.rollup_id` field
	// and is extracted from `astria.SequencerBlock.rollup_transactions`.
	// Note that these are all the rollup IDs in the sequencer block, not merely those in
	// `rollup_transactions` field. This is necessary to prove that no rollup IDs were omitted.
	AllRollupIds [][]byte `protobuf:"bytes,5,rep,name=all_rollup_ids,json=allRollupIds,proto3" json:"all_rollup_ids,omitempty"`
	// The proof that the `rollup_ids` are included
	// in the CometBFT block this sequencer block is derived form.
	//
	// This proof is used to verify that the relayer that posts to celestia
	// includes all rollup IDs and does not censor any.
	//
	// This proof together with `Sha256(MTH(rollup_ids))` must match `header.data_hash`.
	// `MTH(rollup_ids)` is the Merkle Tree Hash derived from the rollup IDs listed in
	// the rollup transactions.
	RollupIdsProof *v1.Proof `protobuf:"bytes,6,opt,name=rollup_ids_proof,json=rollupIdsProof,proto3" json:"rollup_ids_proof,omitempty"`
	// contains filtered or unexported fields
}

`FilteredSequencerBlock` is similar to `SequencerBlock` but with a subset of the rollup transactions.

func (*FilteredSequencerBlock) Descriptor deprecated

func (*FilteredSequencerBlock) Descriptor() ([]byte, []int)

Deprecated: Use FilteredSequencerBlock.ProtoReflect.Descriptor instead.

func (*FilteredSequencerBlock) GetAllRollupIds

func (x *FilteredSequencerBlock) GetAllRollupIds() [][]byte

func (*FilteredSequencerBlock) GetBlockHash

func (x *FilteredSequencerBlock) GetBlockHash() []byte

func (*FilteredSequencerBlock) GetHeader

func (*FilteredSequencerBlock) GetRollupIdsProof

func (x *FilteredSequencerBlock) GetRollupIdsProof() *v1.Proof

func (*FilteredSequencerBlock) GetRollupTransactions

func (x *FilteredSequencerBlock) GetRollupTransactions() []*RollupTransactions

func (*FilteredSequencerBlock) GetRollupTransactionsProof

func (x *FilteredSequencerBlock) GetRollupTransactionsProof() *v1.Proof

func (*FilteredSequencerBlock) ProtoMessage

func (*FilteredSequencerBlock) ProtoMessage()

func (*FilteredSequencerBlock) ProtoReflect

func (x *FilteredSequencerBlock) ProtoReflect() protoreflect.Message

func (*FilteredSequencerBlock) Reset

func (x *FilteredSequencerBlock) Reset()

func (*FilteredSequencerBlock) String

func (x *FilteredSequencerBlock) String() string

type GetFilteredSequencerBlockRequest

type GetFilteredSequencerBlockRequest struct {

	// The height of the block to retrieve.
	Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	// The 32 bytes identifying a rollup. Usually the sha256 hash of a plain rollup name.
	RollupIds []*v1.RollupId `protobuf:"bytes,2,rep,name=rollup_ids,json=rollupIds,proto3" json:"rollup_ids,omitempty"`
	// contains filtered or unexported fields
}

func (*GetFilteredSequencerBlockRequest) Descriptor deprecated

func (*GetFilteredSequencerBlockRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetFilteredSequencerBlockRequest.ProtoReflect.Descriptor instead.

func (*GetFilteredSequencerBlockRequest) GetHeight

func (*GetFilteredSequencerBlockRequest) GetRollupIds

func (x *GetFilteredSequencerBlockRequest) GetRollupIds() []*v1.RollupId

func (*GetFilteredSequencerBlockRequest) ProtoMessage

func (*GetFilteredSequencerBlockRequest) ProtoMessage()

func (*GetFilteredSequencerBlockRequest) ProtoReflect

func (*GetFilteredSequencerBlockRequest) Reset

func (*GetFilteredSequencerBlockRequest) String

type GetSequencerBlockRequest

type GetSequencerBlockRequest struct {

	// The height of the block to retrieve.
	Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSequencerBlockRequest) Descriptor deprecated

func (*GetSequencerBlockRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetSequencerBlockRequest.ProtoReflect.Descriptor instead.

func (*GetSequencerBlockRequest) GetHeight

func (x *GetSequencerBlockRequest) GetHeight() uint64

func (*GetSequencerBlockRequest) ProtoMessage

func (*GetSequencerBlockRequest) ProtoMessage()

func (*GetSequencerBlockRequest) ProtoReflect

func (x *GetSequencerBlockRequest) ProtoReflect() protoreflect.Message

func (*GetSequencerBlockRequest) Reset

func (x *GetSequencerBlockRequest) Reset()

func (*GetSequencerBlockRequest) String

func (x *GetSequencerBlockRequest) String() string

type RollupData

type RollupData struct {

	// Types that are assignable to Value:
	//
	//	*RollupData_SequencedData
	//	*RollupData_Deposit
	Value isRollupData_Value `protobuf_oneof:"value"`
	// contains filtered or unexported fields
}

A piece of data that is sent to a rollup execution node.

The data can be either sequenced data (originating from a `SequenceAction` submitted by a user) or a `Deposit` originating from a `BridgeLockAction`.

The rollup node receives this type from conductor and must decode them accordingly.

func (*RollupData) Descriptor deprecated

func (*RollupData) Descriptor() ([]byte, []int)

Deprecated: Use RollupData.ProtoReflect.Descriptor instead.

func (*RollupData) GetDeposit

func (x *RollupData) GetDeposit() *Deposit

func (*RollupData) GetSequencedData

func (x *RollupData) GetSequencedData() []byte

func (*RollupData) GetValue

func (m *RollupData) GetValue() isRollupData_Value

func (*RollupData) ProtoMessage

func (*RollupData) ProtoMessage()

func (*RollupData) ProtoReflect

func (x *RollupData) ProtoReflect() protoreflect.Message

func (*RollupData) Reset

func (x *RollupData) Reset()

func (*RollupData) String

func (x *RollupData) String() string

type RollupData_Deposit

type RollupData_Deposit struct {
	Deposit *Deposit `protobuf:"bytes,2,opt,name=deposit,proto3,oneof"`
}

type RollupData_SequencedData

type RollupData_SequencedData struct {
	SequencedData []byte `protobuf:"bytes,1,opt,name=sequenced_data,json=sequencedData,proto3,oneof"`
}

type RollupTransactions

type RollupTransactions struct {

	// The 32 bytes identifying a rollup. Usually the sha256 hash of a plain rollup name.
	RollupId *v1.RollupId `protobuf:"bytes,1,opt,name=rollup_id,json=rollupId,proto3" json:"rollup_id,omitempty"`
	// The serialized bytes of the rollup data.
	// Each entry is a protobuf-encoded `RollupData` message.
	Transactions [][]byte `protobuf:"bytes,2,rep,name=transactions,proto3" json:"transactions,omitempty"`
	// The proof that these rollup transactions are included in sequencer block.
	// `astria.sequencer.v1alpha.SequencerBlock.rollup_transactions_proof`.
	Proof *v1.Proof `protobuf:"bytes,3,opt,name=proof,proto3" json:"proof,omitempty"`
	// contains filtered or unexported fields
}

`RollupTransactions` are a sequence of opaque bytes together with a 32 byte identifier of that rollup.

The binary encoding is understood as an implementation detail of the services sending and receiving the transactions.

func (*RollupTransactions) Descriptor deprecated

func (*RollupTransactions) Descriptor() ([]byte, []int)

Deprecated: Use RollupTransactions.ProtoReflect.Descriptor instead.

func (*RollupTransactions) GetProof

func (x *RollupTransactions) GetProof() *v1.Proof

func (*RollupTransactions) GetRollupId

func (x *RollupTransactions) GetRollupId() *v1.RollupId

func (*RollupTransactions) GetTransactions

func (x *RollupTransactions) GetTransactions() [][]byte

func (*RollupTransactions) ProtoMessage

func (*RollupTransactions) ProtoMessage()

func (*RollupTransactions) ProtoReflect

func (x *RollupTransactions) ProtoReflect() protoreflect.Message

func (*RollupTransactions) Reset

func (x *RollupTransactions) Reset()

func (*RollupTransactions) String

func (x *RollupTransactions) String() string

type SequencerBlock

type SequencerBlock struct {

	// the block header, which contains sequencer-specific commitments.
	Header *SequencerBlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
	// The collection of rollup transactions that were included in this block.
	RollupTransactions []*RollupTransactions `protobuf:"bytes,2,rep,name=rollup_transactions,json=rollupTransactions,proto3" json:"rollup_transactions,omitempty"`
	// The proof that the rollup transactions are included in the CometBFT block this
	// sequencer block is derived form. This proof together with
	// `Sha256(MTH(rollup_transactions))` must match `header.data_hash`.
	// `MTH(rollup_transactions)` is the Merkle Tree Hash derived from the
	// rollup transactions.
	RollupTransactionsProof *v1.Proof `` /* 132-byte string literal not displayed */
	// The proof that the rollup IDs listed in `rollup_transactions` are included
	// in the CometBFT block this sequencer block is derived form.
	//
	// This proof is used to verify that the relayer that posts to celestia
	// includes all rollup IDs and does not censor any.
	//
	// This proof together with `Sha256(MTH(rollup_ids))` must match `header.data_hash`.
	// `MTH(rollup_ids)` is the Merkle Tree Hash derived from the rollup IDs listed in
	// the rollup transactions.
	RollupIdsProof *v1.Proof `protobuf:"bytes,4,opt,name=rollup_ids_proof,json=rollupIdsProof,proto3" json:"rollup_ids_proof,omitempty"`
	// / The block hash of the cometbft block that corresponds to this sequencer block.
	BlockHash []byte `protobuf:"bytes,5,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"`
	// contains filtered or unexported fields
}

`SequencerBlock` is constructed from a tendermint/cometbft block by converting its opaque `data` bytes into sequencer specific types.

func (*SequencerBlock) Descriptor deprecated

func (*SequencerBlock) Descriptor() ([]byte, []int)

Deprecated: Use SequencerBlock.ProtoReflect.Descriptor instead.

func (*SequencerBlock) GetBlockHash

func (x *SequencerBlock) GetBlockHash() []byte

func (*SequencerBlock) GetHeader

func (x *SequencerBlock) GetHeader() *SequencerBlockHeader

func (*SequencerBlock) GetRollupIdsProof

func (x *SequencerBlock) GetRollupIdsProof() *v1.Proof

func (*SequencerBlock) GetRollupTransactions

func (x *SequencerBlock) GetRollupTransactions() []*RollupTransactions

func (*SequencerBlock) GetRollupTransactionsProof

func (x *SequencerBlock) GetRollupTransactionsProof() *v1.Proof

func (*SequencerBlock) ProtoMessage

func (*SequencerBlock) ProtoMessage()

func (*SequencerBlock) ProtoReflect

func (x *SequencerBlock) ProtoReflect() protoreflect.Message

func (*SequencerBlock) Reset

func (x *SequencerBlock) Reset()

func (*SequencerBlock) String

func (x *SequencerBlock) String() string

type SequencerBlockHeader

type SequencerBlockHeader struct {

	// the cometbft chain ID of the sequencer chain
	ChainId string `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
	// the height of this sequencer block
	Height uint64 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"`
	// the timestamp of this sequencer block
	Time *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=time,proto3" json:"time,omitempty"`
	// the data_hash of the sequencer block (merkle root of all transaction hashes)
	DataHash []byte `protobuf:"bytes,4,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
	// the cometbft proposer address of the sequencer block
	ProposerAddress []byte `protobuf:"bytes,5,opt,name=proposer_address,json=proposerAddress,proto3" json:"proposer_address,omitempty"`
	// The 32-byte merkle root of all the rollup transactions in the block,
	// Corresponds to `MHT(astria.SequencerBlock.rollup_transactions)`,
	RollupTransactionsRoot []byte `` /* 129-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*SequencerBlockHeader) Descriptor deprecated

func (*SequencerBlockHeader) Descriptor() ([]byte, []int)

Deprecated: Use SequencerBlockHeader.ProtoReflect.Descriptor instead.

func (*SequencerBlockHeader) GetChainId

func (x *SequencerBlockHeader) GetChainId() string

func (*SequencerBlockHeader) GetDataHash

func (x *SequencerBlockHeader) GetDataHash() []byte

func (*SequencerBlockHeader) GetHeight

func (x *SequencerBlockHeader) GetHeight() uint64

func (*SequencerBlockHeader) GetProposerAddress

func (x *SequencerBlockHeader) GetProposerAddress() []byte

func (*SequencerBlockHeader) GetRollupTransactionsRoot

func (x *SequencerBlockHeader) GetRollupTransactionsRoot() []byte

func (*SequencerBlockHeader) GetTime

func (*SequencerBlockHeader) ProtoMessage

func (*SequencerBlockHeader) ProtoMessage()

func (*SequencerBlockHeader) ProtoReflect

func (x *SequencerBlockHeader) ProtoReflect() protoreflect.Message

func (*SequencerBlockHeader) Reset

func (x *SequencerBlockHeader) Reset()

func (*SequencerBlockHeader) String

func (x *SequencerBlockHeader) String() string

Jump to

Keyboard shortcuts

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