basic

package
v0.0.0-...-3442dc8 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2023 License: GPL-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Transaction_V1                 TransactionVersion = 1
	Transaction_Topia_Universal_V1                    = 1
	Transaction_Eth_V1                                = 1
)

Variables

View Source
var (
	ErrInvalidLengthTransaction        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowTransaction          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupTransaction = fmt.Errorf("proto: unexpected end of group")
)
View Source
var CurrentTxServantPolicy = TxServantPolicy_WR

Functions

func TxResultRoot

func TxResultRoot(txResults []TransactionResult, txs []*Transaction) []byte

func TxRoot

func TxRoot(txs []*Transaction) []byte

func TxRootByBytes

func TxRootByBytes(txsBytes [][]byte) []byte

func TxRootWithRtn

func TxRootWithRtn(txs []Transaction) ([]byte, [][]byte)

Types

type PubSubMessageTxs

type PubSubMessageTxs struct {
	Txs                  []*Transaction `protobuf:"bytes,1,rep,name=Txs,proto3" json:"txs"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (*PubSubMessageTxs) Descriptor

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

func (*PubSubMessageTxs) GetTxs

func (m *PubSubMessageTxs) GetTxs() []*Transaction

func (*PubSubMessageTxs) Marshal

func (m *PubSubMessageTxs) Marshal() (dAtA []byte, err error)

func (*PubSubMessageTxs) MarshalTo

func (m *PubSubMessageTxs) MarshalTo(dAtA []byte) (int, error)

func (*PubSubMessageTxs) MarshalToSizedBuffer

func (m *PubSubMessageTxs) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*PubSubMessageTxs) ProtoMessage

func (*PubSubMessageTxs) ProtoMessage()

func (*PubSubMessageTxs) Reset

func (m *PubSubMessageTxs) Reset()

func (*PubSubMessageTxs) Size

func (m *PubSubMessageTxs) Size() (n int)

func (*PubSubMessageTxs) String

func (m *PubSubMessageTxs) String() string

func (*PubSubMessageTxs) Unmarshal

func (m *PubSubMessageTxs) Unmarshal(dAtA []byte) error

func (*PubSubMessageTxs) XXX_DiscardUnknown

func (m *PubSubMessageTxs) XXX_DiscardUnknown()

func (*PubSubMessageTxs) XXX_Marshal

func (m *PubSubMessageTxs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*PubSubMessageTxs) XXX_Merge

func (m *PubSubMessageTxs) XXX_Merge(src proto.Message)

func (*PubSubMessageTxs) XXX_Size

func (m *PubSubMessageTxs) XXX_Size() int

func (*PubSubMessageTxs) XXX_Unmarshal

func (m *PubSubMessageTxs) XXX_Unmarshal(b []byte) error

type Transaction

type Transaction struct {
	Head                 *TransactionHead `protobuf:"bytes,1,opt,name=Head,proto3" json:"head"`
	Data                 *TransactionData `protobuf:"bytes,2,opt,name=Data,proto3" json:"data"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func NewTransaction

func NewTransaction(log tplog.Logger, cryptService tpcrt.CryptService, privKey tpcrtypes.PrivateKey, nonce uint64, txCategory TransactionCategory, txVersion TransactionVersion, data []byte) *Transaction

func TxDifference

func TxDifference(a, b []*Transaction) []*Transaction

TxDifference returns a new set which is the difference between a and b.

func (*Transaction) BasicVerify

func (m *Transaction) BasicVerify(ctx context.Context, log tplog.Logger, txServant TransactionServant) VerifyResult

func (*Transaction) Bytes

func (m *Transaction) Bytes() ([]byte, error)

func (*Transaction) CryptType

func (m *Transaction) CryptType() (tpcrtypes.CryptType, error)

func (*Transaction) Descriptor

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

func (*Transaction) GetData

func (m *Transaction) GetData() *TransactionData

func (*Transaction) GetHead

func (m *Transaction) GetHead() *TransactionHead

func (*Transaction) HashBytes

func (m *Transaction) HashBytes() ([]byte, error)

func (*Transaction) HashHex

func (m *Transaction) HashHex() (string, error)

func (*Transaction) Marshal

func (m *Transaction) Marshal() (dAtA []byte, err error)

func (*Transaction) MarshalTo

func (m *Transaction) MarshalTo(dAtA []byte) (int, error)

func (*Transaction) MarshalToSizedBuffer

func (m *Transaction) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*Transaction) ProtoMessage

func (*Transaction) ProtoMessage()

func (*Transaction) Reset

func (m *Transaction) Reset()

func (*Transaction) Size

func (m *Transaction) Size() (n int)

func (*Transaction) String

func (m *Transaction) String() string

func (*Transaction) TxID

func (m *Transaction) TxID() (TxID, error)

func (*Transaction) Unmarshal

func (m *Transaction) Unmarshal(dAtA []byte) error

func (*Transaction) XXX_DiscardUnknown

func (m *Transaction) XXX_DiscardUnknown()

func (*Transaction) XXX_Marshal

func (m *Transaction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Transaction) XXX_Merge

func (m *Transaction) XXX_Merge(src proto.Message)

func (*Transaction) XXX_Size

func (m *Transaction) XXX_Size() int

func (*Transaction) XXX_Unmarshal

func (m *Transaction) XXX_Unmarshal(b []byte) error

type TransactionCategory

type TransactionCategory string
const (
	TransactionCategory_Topia_Universal TransactionCategory = "topia_universal"
	TransactionCategory_Eth                                 = "eth"
)

type TransactionData

type TransactionData struct {
	Specification        []byte   `protobuf:"bytes,1,opt,name=Specification,proto3" json:"specification"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*TransactionData) Descriptor

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

func (*TransactionData) GetSpecification

func (m *TransactionData) GetSpecification() []byte

func (*TransactionData) Marshal

func (m *TransactionData) Marshal() (dAtA []byte, err error)

func (*TransactionData) MarshalTo

func (m *TransactionData) MarshalTo(dAtA []byte) (int, error)

func (*TransactionData) MarshalToSizedBuffer

func (m *TransactionData) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*TransactionData) ProtoMessage

func (*TransactionData) ProtoMessage()

func (*TransactionData) Reset

func (m *TransactionData) Reset()

func (*TransactionData) Size

func (m *TransactionData) Size() (n int)

func (*TransactionData) String

func (m *TransactionData) String() string

func (*TransactionData) Unmarshal

func (m *TransactionData) Unmarshal(dAtA []byte) error

func (*TransactionData) XXX_DiscardUnknown

func (m *TransactionData) XXX_DiscardUnknown()

func (*TransactionData) XXX_Marshal

func (m *TransactionData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TransactionData) XXX_Merge

func (m *TransactionData) XXX_Merge(src proto.Message)

func (*TransactionData) XXX_Size

func (m *TransactionData) XXX_Size() int

func (*TransactionData) XXX_Unmarshal

func (m *TransactionData) XXX_Unmarshal(b []byte) error

type TransactionHead

type TransactionHead struct {
	Category             []byte   `protobuf:"bytes,1,opt,name=Category,proto3" json:"category"`
	ChainID              []byte   `protobuf:"bytes,2,opt,name=ChainID,proto3" json:"chainID"`
	Version              uint32   `protobuf:"varint,3,opt,name=Version,proto3" json:"version"`
	TimeStamp            uint64   `protobuf:"varint,4,opt,name=TimeStamp,proto3" json:"timeStamp"`
	Index                uint64   `protobuf:"varint,5,opt,name=Index,proto3" json:"index"`
	FromAddr             []byte   `protobuf:"bytes,6,opt,name=FromAddr,proto3" json:"fromAddr"`
	Nonce                uint64   `protobuf:"varint,7,opt,name=Nonce,proto3" json:"nonce"`
	Signature            []byte   `protobuf:"bytes,8,opt,name=Signature,proto3" json:"signature,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*TransactionHead) Descriptor

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

func (*TransactionHead) GetCategory

func (m *TransactionHead) GetCategory() []byte

func (*TransactionHead) GetChainID

func (m *TransactionHead) GetChainID() []byte

func (*TransactionHead) GetFromAddr

func (m *TransactionHead) GetFromAddr() []byte

func (*TransactionHead) GetIndex

func (m *TransactionHead) GetIndex() uint64

func (*TransactionHead) GetNonce

func (m *TransactionHead) GetNonce() uint64

func (*TransactionHead) GetSignature

func (m *TransactionHead) GetSignature() []byte

func (*TransactionHead) GetTimeStamp

func (m *TransactionHead) GetTimeStamp() uint64

func (*TransactionHead) GetVersion

func (m *TransactionHead) GetVersion() uint32

func (*TransactionHead) Marshal

func (m *TransactionHead) Marshal() (dAtA []byte, err error)

func (*TransactionHead) MarshalTo

func (m *TransactionHead) MarshalTo(dAtA []byte) (int, error)

func (*TransactionHead) MarshalToSizedBuffer

func (m *TransactionHead) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*TransactionHead) ProtoMessage

func (*TransactionHead) ProtoMessage()

func (*TransactionHead) Reset

func (m *TransactionHead) Reset()

func (*TransactionHead) Size

func (m *TransactionHead) Size() (n int)

func (*TransactionHead) String

func (m *TransactionHead) String() string

func (*TransactionHead) Unmarshal

func (m *TransactionHead) Unmarshal(dAtA []byte) error

func (*TransactionHead) XXX_DiscardUnknown

func (m *TransactionHead) XXX_DiscardUnknown()

func (*TransactionHead) XXX_Marshal

func (m *TransactionHead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TransactionHead) XXX_Merge

func (m *TransactionHead) XXX_Merge(src proto.Message)

func (*TransactionHead) XXX_Size

func (m *TransactionHead) XXX_Size() int

func (*TransactionHead) XXX_Unmarshal

func (m *TransactionHead) XXX_Unmarshal(b []byte) error

type TransactionResult

type TransactionResult struct {
	Head                 *TransactionResultHead `protobuf:"bytes,1,opt,name=Head,proto3" json:"head"`
	Data                 *TransactionResultData `protobuf:"bytes,2,opt,name=Data,proto3" json:"data"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (*TransactionResult) Descriptor

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

func (*TransactionResult) GetData

func (*TransactionResult) GetHead

func (*TransactionResult) HashBytes

func (m *TransactionResult) HashBytes() ([]byte, error)

func (*TransactionResult) HashHex

func (m *TransactionResult) HashHex() (string, error)

func (*TransactionResult) Marshal

func (m *TransactionResult) Marshal() (dAtA []byte, err error)

func (*TransactionResult) MarshalTo

func (m *TransactionResult) MarshalTo(dAtA []byte) (int, error)

func (*TransactionResult) MarshalToSizedBuffer

func (m *TransactionResult) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*TransactionResult) ProtoMessage

func (*TransactionResult) ProtoMessage()

func (*TransactionResult) Reset

func (m *TransactionResult) Reset()

func (*TransactionResult) Size

func (m *TransactionResult) Size() (n int)

func (*TransactionResult) String

func (m *TransactionResult) String() string

func (*TransactionResult) Unmarshal

func (m *TransactionResult) Unmarshal(dAtA []byte) error

func (*TransactionResult) XXX_DiscardUnknown

func (m *TransactionResult) XXX_DiscardUnknown()

func (*TransactionResult) XXX_Marshal

func (m *TransactionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TransactionResult) XXX_Merge

func (m *TransactionResult) XXX_Merge(src proto.Message)

func (*TransactionResult) XXX_Size

func (m *TransactionResult) XXX_Size() int

func (*TransactionResult) XXX_Unmarshal

func (m *TransactionResult) XXX_Unmarshal(b []byte) error

type TransactionResultData

type TransactionResultData struct {
	Specification        []byte   `protobuf:"bytes,1,opt,name=Specification,proto3" json:"specification"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*TransactionResultData) Descriptor

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

func (*TransactionResultData) GetSpecification

func (m *TransactionResultData) GetSpecification() []byte

func (*TransactionResultData) Marshal

func (m *TransactionResultData) Marshal() (dAtA []byte, err error)

func (*TransactionResultData) MarshalTo

func (m *TransactionResultData) MarshalTo(dAtA []byte) (int, error)

func (*TransactionResultData) MarshalToSizedBuffer

func (m *TransactionResultData) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*TransactionResultData) ProtoMessage

func (*TransactionResultData) ProtoMessage()

func (*TransactionResultData) Reset

func (m *TransactionResultData) Reset()

func (*TransactionResultData) Size

func (m *TransactionResultData) Size() (n int)

func (*TransactionResultData) String

func (m *TransactionResultData) String() string

func (*TransactionResultData) Unmarshal

func (m *TransactionResultData) Unmarshal(dAtA []byte) error

func (*TransactionResultData) XXX_DiscardUnknown

func (m *TransactionResultData) XXX_DiscardUnknown()

func (*TransactionResultData) XXX_Marshal

func (m *TransactionResultData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TransactionResultData) XXX_Merge

func (m *TransactionResultData) XXX_Merge(src proto.Message)

func (*TransactionResultData) XXX_Size

func (m *TransactionResultData) XXX_Size() int

func (*TransactionResultData) XXX_Unmarshal

func (m *TransactionResultData) XXX_Unmarshal(b []byte) error

type TransactionResultHead

type TransactionResultHead struct {
	Category             []byte   `protobuf:"bytes,1,opt,name=Category,proto3" json:"category"`
	ChainID              []byte   `protobuf:"bytes,2,opt,name=ChainID,proto3" json:"chainID"`
	Version              uint32   `protobuf:"varint,3,opt,name=Version,proto3" json:"version"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*TransactionResultHead) Descriptor

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

func (*TransactionResultHead) GetCategory

func (m *TransactionResultHead) GetCategory() []byte

func (*TransactionResultHead) GetChainID

func (m *TransactionResultHead) GetChainID() []byte

func (*TransactionResultHead) GetVersion

func (m *TransactionResultHead) GetVersion() uint32

func (*TransactionResultHead) Marshal

func (m *TransactionResultHead) Marshal() (dAtA []byte, err error)

func (*TransactionResultHead) MarshalTo

func (m *TransactionResultHead) MarshalTo(dAtA []byte) (int, error)

func (*TransactionResultHead) MarshalToSizedBuffer

func (m *TransactionResultHead) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*TransactionResultHead) ProtoMessage

func (*TransactionResultHead) ProtoMessage()

func (*TransactionResultHead) Reset

func (m *TransactionResultHead) Reset()

func (*TransactionResultHead) Size

func (m *TransactionResultHead) Size() (n int)

func (*TransactionResultHead) String

func (m *TransactionResultHead) String() string

func (*TransactionResultHead) Unmarshal

func (m *TransactionResultHead) Unmarshal(dAtA []byte) error

func (*TransactionResultHead) XXX_DiscardUnknown

func (m *TransactionResultHead) XXX_DiscardUnknown()

func (*TransactionResultHead) XXX_Marshal

func (m *TransactionResultHead) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*TransactionResultHead) XXX_Merge

func (m *TransactionResultHead) XXX_Merge(src proto.Message)

func (*TransactionResultHead) XXX_Size

func (m *TransactionResultHead) XXX_Size() int

func (*TransactionResultHead) XXX_Unmarshal

func (m *TransactionResultHead) XXX_Unmarshal(b []byte) error

type TransactionServant

type TransactionServant interface {
	TransactionServantBaseRead

	GetCryptService(log tplog.Logger, cryptType tpcrtypes.CryptType) (tpcrt.CryptService, error)

	GetGasConfig() *configuration.GasConfiguration

	GetChainConfig() *configuration.ChainConfiguration

	AddAccount(acc *tpacc.Account) error

	UpdateAccount(account *tpacc.Account) error

	UpdateNonce(addr tpcrtypes.Address, nonce uint64) error

	UpdateBalance(addr tpcrtypes.Address, symbol currency.TokenSymbol, value *big.Int) error

	UpdateName(addr tpcrtypes.Address, name tpacc.AccountName) error
}

func NewTansactionServantSimulate

func NewTansactionServantSimulate(tsBaseRead TransactionServantBaseRead) TransactionServant

func NewTransactionServant

func NewTransactionServant(chainState statechain.ChainState,
	accountState stateaccount.AccountState,
	marshaler codec.Marshaler,
	txPoolSize func() int64) TransactionServant

type TransactionServantBaseRead

type TransactionServantBaseRead interface {
	ChainID() tpchaintypes.ChainID

	NetworkType() common.NetworkType

	GetNonce(addr tpcrtypes.Address) (uint64, error)

	GetBalance(addr tpcrtypes.Address, symbol currency.TokenSymbol) (*big.Int, error)

	GetAccount(addr tpcrtypes.Address) (*tpacc.Account, error)

	GetMarshaler() codec.Marshaler

	GetTxPoolSize() int64

	GetLatestBlock() (*tpchaintypes.Block, error)
}

type TransactionVerifier

type TransactionVerifier func(ctx context.Context, log tplog.Logger, txI interface{}, txServant TransactionServant) VerifyResult

func TransactionChainIDVerifier

func TransactionChainIDVerifier() TransactionVerifier

func TransactionFromAddressVerifier

func TransactionFromAddressVerifier() TransactionVerifier

func TransactionSignatureVerifier

func TransactionSignatureVerifier() TransactionVerifier

type TransactionVersion

type TransactionVersion uint32

type TxID

type TxID string

type TxServantPolicy

type TxServantPolicy byte
const (
	TxServantPolicy_Unknown TxServantPolicy = iota
	TxServantPolicy_WR
	TxServantPolicy_RO
)

type VerifyResult

type VerifyResult byte
const (
	ValidationResult_Unknown VerifyResult = iota
	VerifyResult_Accept
	VerifyResult_Reject
	VerifyResult_Ignore
)

func ApplyTransactionVerifiers

func ApplyTransactionVerifiers(ctx context.Context, log tplog.Logger, txT interface{}, txServant TransactionServant, verifiers ...TransactionVerifier) VerifyResult

Jump to

Keyboard shortcuts

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