1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package qlight
- import (
- "encoding/base64"
- "fmt"
- "github.com/ethereum/go-ethereum/common"
- "github.com/ethereum/go-ethereum/core/types"
- "github.com/ethereum/go-ethereum/plugin/security"
- "github.com/ethereum/go-ethereum/private/engine"
- "github.com/ethereum/go-ethereum/private/engine/qlightptm"
- "github.com/ethereum/go-ethereum/rlp"
- )
- type PrivateStateRootHashValidator interface {
- ValidatePrivateStateRoot(blockHash common.Hash, blockPublicStateRoot common.Hash) error
- }
- type PrivateClientCache interface {
- PrivateStateRootHashValidator
- AddPrivateBlock(blockPrivateData BlockPrivateData) error
- CheckAndAddEmptyEntry(hash common.EncryptedPayloadHash)
- }
- type PrivateBlockDataResolver interface {
- PrepareBlockPrivateData(block *types.Block, psi string) (*BlockPrivateData, error)
- }
- type AuthManagerProvider func() security.AuthenticationManager
- type AuthProvider interface {
- Initialize() error
- Authorize(token string, psi string) error
- }
- type CacheWithEmpty interface {
- Cache(privateTxData *qlightptm.CachablePrivateTransactionData) error
- CheckAndAddEmptyToCache(hash common.EncryptedPayloadHash)
- }
- type BlockPrivateData struct {
- BlockHash common.Hash
- PSI types.PrivateStateIdentifier
- PrivateStateRoot common.Hash
- PrivateTransactions []PrivateTransactionData
- }
- type QLightCacheKey struct {
- BlockHash common.Hash
- PSI types.PrivateStateIdentifier
- }
- func (k *QLightCacheKey) String() string {
- bytes, err := rlp.EncodeToBytes(k)
- if err != nil {
- return err.Error()
- }
- return base64.StdEncoding.EncodeToString(bytes)
- }
- type PrivateTransactionData struct {
- Hash *common.EncryptedPayloadHash
- Payload []byte
- Extra *engine.ExtraMetadata
- IsSender bool
- }
- func (d *PrivateTransactionData) ToCachable() *qlightptm.CachablePrivateTransactionData {
- return &qlightptm.CachablePrivateTransactionData{
- Hash: *d.Hash,
- QuorumPrivateTxData: engine.QuorumPayloadExtra{
- Payload: fmt.Sprintf("0x%x", d.Payload),
- ExtraMetaData: d.Extra,
- IsSender: d.IsSender,
- },
- }
- }
|