agency

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 8, 2023 License: Apache-2.0 Imports: 10 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	TxsExecutorConstructorM         = make(map[string]TxsExecutorConstructor)
	ContractConstructorM            = make(map[string]*ContractInfo)
	RegisterConstructorM            = make(map[string]RegistryConstructor)
	LicenseConstructorM             = make(map[string]LicenseConstructor)
	PierHAConstructorM              = make(map[string]PierHAConstructor)
	OrderConstructorM               = make(map[string]OrderConstructor)
	OffchainTransmissionContructorM = make(map[string]OffchainTransmissionConstructor)
)

Functions

func GetRegisteredContractInfo

func GetRegisteredContractInfo() map[string]*ContractInfo

func RegisterContractConstructor

func RegisterContractConstructor(name string, addr *types.Address, f ContractConstructor)

func RegisterExecutorConstructor

func RegisterExecutorConstructor(typ string, f TxsExecutorConstructor)

func RegisterLicenseConstructor

func RegisterLicenseConstructor(typ string, f LicenseConstructor)

func RegisterOffchainTransmissionConstructor

func RegisterOffchainTransmissionConstructor(typ string, f OffchainTransmissionConstructor)

func RegisterOrderConstructor

func RegisterOrderConstructor(typ string, f OrderConstructor)

func RegisterPierHAConstructor

func RegisterPierHAConstructor(typ string, f PierHAConstructor)

func RegisterRegistryConstructor

func RegisterRegistryConstructor(typ string, f RegistryConstructor)

Types

type ApplyTxFunc

type ApplyTxFunc func(int, pb.Transaction, InvalidReason, *TxOpt) *pb.Receipt

type Client

type Client interface {
	// Initialize initialize plugin client
	Initialize(configPath string, extra []byte, mode string) error

	// Start starts to listen appchain event
	Start() error

	// Stop stops client
	Stop() error

	// GetIBTPCh gets an interchain ibtp channel generated by client
	GetIBTPCh() chan *pb.IBTP

	// GetUpdateMeta gets an updated trust meta channel by client
	GetUpdateMeta() chan *pb.UpdateMeta

	// SubmitIBTP submits the interchain ibtp to appchain
	SubmitIBTP(from string, index uint64, serviceID string, ibtpType pb.IBTP_Type, content *pb.Content, proof *pb.BxhProof, isEncrypted bool) (*pb.SubmitIBTPResponse, error)

	// SubmitIBTPBatch submit the multi interchain ibtps to appchain
	SubmitIBTPBatch(from []string, index []uint64, serviceID []string, ibtpType []pb.IBTP_Type, content []*pb.Content, proof []*pb.BxhProof, isEncrypted []bool) (*pb.SubmitIBTPResponse, error)

	// SubmitReceipt submit the multi receipt ibtp to appchain
	SubmitReceipt(to string, index uint64, serviceID string, ibtpType pb.IBTP_Type, result *pb.Result, proof *pb.BxhProof) (*pb.SubmitIBTPResponse, error)

	// SubmitReceiptBatch submit the receipt ibtp to appchain
	SubmitReceiptBatch(to []string, index []uint64, serviceID []string, ibtpType []pb.IBTP_Type, result []*pb.Result, proof []*pb.BxhProof) (*pb.SubmitIBTPResponse, error)

	// GetOutMessage gets interchain ibtp by service pair and index from broker contract
	GetOutMessage(servicePair string, idx uint64) (*pb.IBTP, error)

	// GetReceiptMessage gets receipt ibtp by service pair and index from broker contract
	GetReceiptMessage(servicePair string, idx uint64) (*pb.IBTP, error)

	// GetInMeta gets an index map, which implicates the greatest index of
	// ingoing interchain txs for each service pair
	GetInMeta() (map[string]uint64, error)

	// GetOutMeta gets an index map, which implicates the greatest index of
	// outgoing interchain txs for each service pair
	GetOutMeta() (map[string]uint64, error)

	// GetCallbackMeta gets an index map, which implicates the greatest index of
	// executed callback txs for each service pair
	GetCallbackMeta() (map[string]uint64, error)

	// GetDstRollbackMeta gets an index map, which implicates the greatest index of
	// executed rollback txs from each service pair
	GetDstRollbackMeta() (map[string]uint64, error)

	// GetDirectTransactionMeta gets transaction start timestamp, timeout period and transaction status in direct mode
	GetDirectTransactionMeta(string) (uint64, uint64, uint64, error)

	// GetServices gets all service IDs the pier cares
	GetServices() ([]string, error)

	// GetChainID gets BitXHub and appchain ID
	GetChainID() (string, string, error)

	// GetAppchainInfo gets appchain information by appchain ID
	GetAppchainInfo(chainID string) (string, []byte, string, error)

	// Name gets name of blockchain from plugin
	Name() string

	// Type gets type of blockchain from plugin
	Type() string

	// GetOffChainData get offchain data and send back
	GetOffChainData(request *pb.GetDataRequest) (*pb.OffChainDataInfo, error)

	// GetOffChainDataReq get offchain data request
	GetOffChainDataReq() chan *pb.GetDataRequest

	// SubmitOffChainData submit offchain data to plugin
	SubmitOffChainData(response *pb.GetDataResponse) error
}

Client defines the interface that interacts with appchain

type ConfigOption

type ConfigOption interface{}

type Contract

type Contract interface{}

type ContractConstructor

type ContractConstructor func() Contract

type ContractInfo

type ContractInfo struct {
	Name        string
	Constructor ContractConstructor
}

func GetContractInfo

func GetContractInfo(addr *types.Address) (*ContractInfo, error)

type DHTManager

type DHTManager interface {
	// FindProviders Search for peers who are able to provide a given key
	FindProviders(id string) (string, error)

	// Provider adds the given cid to the content routing system. If 'true' is
	// passed, it also announces it, otherwise it is just kept in the local
	// accounting of which objects are being provided.
	Provider(string, bool) error
}

type HAClient

type HAClient interface {
	//Check whethe there is a master pier connect to the BitXHub.
	CheckMasterPier(address string) (*pb.Response, error)

	//Set the master pier connect to the BitXHub.
	SetMasterPier(address string, index string, timeout int64) (*pb.Response, error)

	//Update the master pier status
	HeartBeat(address string, index string) (*pb.Response, error)
}

type InvalidReason

type InvalidReason string

type License

type License interface {
	Verify(licensePath string) error
}

type LicenseConstructor

type LicenseConstructor func(pubKey, verifier string) License

func GetLicenseConstructor

func GetLicenseConstructor(typ string) (LicenseConstructor, error)

type OffChainTransmission

type OffChainTransmission interface {
	Start() error

	Stop() error
}

type OffchainTransmissionConstructor

type OffchainTransmissionConstructor func() OffChainTransmission

func GetOffchainTransmissionConstructor

func GetOffchainTransmissionConstructor(typ string) (OffchainTransmissionConstructor, error)

type OrderConstructor

type OrderConstructor func(opt ...order.Option) (order.Order, error)

func GetOrderConstructor

func GetOrderConstructor(typ string) (OrderConstructor, error)

type PeerManager

type PeerManager interface {
	basicMgr.BasicPeerManager

	DHTManager

	Connect(info *peer.AddrInfo) (string, error)

	// AsyncSendWithStream sends message using existed stream
	AsyncSendWithStream(network.Stream, *pb.Message) error

	// ConnectedPeerIDs find connectedPeers
	ConnectedPeerIDs() []string

	// RegisterMsgHandler
	RegisterMsgHandler(pb.Message_Type, func(network.Stream, *pb.Message)) error

	// RegisterMultiMsgHandler
	RegisterMultiMsgHandler([]pb.Message_Type, func(network.Stream, *pb.Message)) error

	// RegisterConnectHandler
	RegisterConnectHandler(func(string)) error
}

type PierHA

type PierHA interface {
	Start() error

	Stop() error

	IsMain() <-chan bool
}

type PierHAConstructor

type PierHAConstructor func(client HAClient, pierID string) PierHA

func GetPierHAConstructor

func GetPierHAConstructor(typ string) (PierHAConstructor, error)

type RegisterContractFunc

type RegisterContractFunc func() map[string]Contract

type Registry

type Registry interface{}

type RegistryConstructor

type RegistryConstructor func(storage.Storage, logrus.FieldLogger) Registry

func GetRegistryConstructor

func GetRegistryConstructor(typ string) (RegistryConstructor, error)

type TxOpt

type TxOpt struct {
	Contracts map[string]Contract
	Changer   interface{}
}

type TxsExecutor

type TxsExecutor interface {
	ApplyTransactions(txs []pb.Transaction, invalidTxs map[int]InvalidReason) []*pb.Receipt

	GetBoltContracts() map[string]Contract

	AddNormalTx(hash *types.Hash)

	GetNormalTxs() []*types.Hash

	AddInterchainCounter(to string, index *pb.VerifiedIndex)

	GetInterchainCounter() map[string][]*pb.VerifiedIndex

	GetDescription() string
}

type TxsExecutorConstructor

type TxsExecutorConstructor func(ApplyTxFunc, RegisterContractFunc, logrus.FieldLogger) TxsExecutor

func GetExecutorConstructor

func GetExecutorConstructor(typ string) (TxsExecutorConstructor, error)

Jump to

Keyboard shortcuts

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