Documentation ¶
Index ¶
- Constants
- Variables
- func BroadcastGovExpireVotesTx(jobCtx *JobsContext, proposalID governance.ProposalID, jobID string) error
- func BroadcastGovFinalizeVotesTx(jobCtx *JobsContext, proposalID governance.ProposalID, jobID string) error
- func BroadcastReportFinalityETHTx(ethCtx *JobsContext, trackerName ethereum.TrackerName, jobID string, ...) error
- func Broadcasting(ctx interface{}) error
- func Cleanup(ctx interface{}) error
- func CleanupFailed(ctx interface{}) error
- func DeleteCompletedJobs(ctx *JobsContext, js *jobs.JobStore)
- func Finalization(ctx interface{}) error
- func Finalizing(ctx interface{}) error
- func FreezeForBroadcast(inp interface{}) error
- func MakeAvailable(input interface{}) error
- func NewAddSignatureJob(trackerName, id string) jobs.Job
- func NewBTCBroadcastJob(trackerName, id string) jobs.Job
- func NewBTCCheckFinalityJob(trackerName, id string) jobs.Job
- func ProcessAllJobs(ctx *JobsContext, js *jobs.JobStore)
- func RangeJobs(js *jobs.JobStore, pro JobProcess)
- func RedeemConfirmed(ctx interface{}) error
- func ReportBroadcastSuccess(inp interface{}) error
- func ReserveTracker(inp interface{}) error
- func Signing(ctx interface{}) error
- func VerifyRedeem(ctx interface{}) error
- type BroadcastReply
- type InternalBroadcastRequest
- type JobAddSignature
- type JobBTCBroadcast
- type JobBTCCheckFinality
- type JobBus
- type JobETHBroadcast
- type JobETHCheckFinality
- type JobETHSignRedeem
- type JobETHVerifyRedeem
- type JobGovCheckVotes
- type JobGovFinalizeProposal
- type JobProcess
- type JobsContext
- type Option
- type Service
Constants ¶
View Source
const ( TwoMinutes = 60 * 2 FiveMinutes = 60 * 5 SixtyMinutes = 60 * 60 )
View Source
const ( JobTypeAddSignature = "addSignature" JobTypeBTCBroadcast = "btcBroadcast" JobTypeBTCCheckFinality = "btcCheckFinality" JobTypeETHCheckfinalty = "ethCheckFinality" JobTypeETHBroadcast = "ethBroadcast" JobTypeETHSignRedeem = "ethsignredeem" JobTypeETHVerifyRedeem = "verifyredeem" JobTypeGOVCheckVotes = "govCheckVotes" JobTypeGOVFinalizeProposal = "govFinalizeProposal" MaxJobRetries = 10 )
View Source
const (
MAX_BROADCAST_RETRY = 20
)
Variables ¶
View Source
var ( EthLockEngine transition.Engine EthRedeemEngine transition.Engine BtcEngine transition.Engine )
Functions ¶
func BroadcastGovExpireVotesTx ¶ added in v0.14.3
func BroadcastGovExpireVotesTx(jobCtx *JobsContext, proposalID governance.ProposalID, jobID string) error
func BroadcastGovFinalizeVotesTx ¶ added in v0.14.3
func BroadcastGovFinalizeVotesTx(jobCtx *JobsContext, proposalID governance.ProposalID, jobID string) error
func BroadcastReportFinalityETHTx ¶ added in v0.14.0
func BroadcastReportFinalityETHTx(ethCtx *JobsContext, trackerName ethereum.TrackerName, jobID string, success bool) error
^TODO Replace error with InternalBroadcastStatus
func Broadcasting ¶
func Broadcasting(ctx interface{}) error
TODO Go back to Busy broadcasting if there is a failure in Finalizing.
func CleanupFailed ¶ added in v0.14.0
func CleanupFailed(ctx interface{}) error
func DeleteCompletedJobs ¶
func DeleteCompletedJobs(ctx *JobsContext, js *jobs.JobStore)
func Finalization ¶
func Finalization(ctx interface{}) error
func Finalizing ¶
func Finalizing(ctx interface{}) error
func FreezeForBroadcast ¶
func FreezeForBroadcast(inp interface{}) error
func MakeAvailable ¶
func MakeAvailable(input interface{}) error
func NewAddSignatureJob ¶
func NewBTCBroadcastJob ¶
func NewBTCCheckFinalityJob ¶
func ProcessAllJobs ¶
func ProcessAllJobs(ctx *JobsContext, js *jobs.JobStore)
func RangeJobs ¶
func RangeJobs(js *jobs.JobStore, pro JobProcess)
func RedeemConfirmed ¶
func RedeemConfirmed(ctx interface{}) error
func ReportBroadcastSuccess ¶
func ReportBroadcastSuccess(inp interface{}) error
func ReserveTracker ¶
func ReserveTracker(inp interface{}) error
func VerifyRedeem ¶
func VerifyRedeem(ctx interface{}) error
Types ¶
type BroadcastReply ¶
type BroadcastReply struct { TxHash bytes.HexBytes `json:"txHash"` // OK indicates whether this broadcast was a request. // For TxSync, it indicates success of CheckTx. Does not guarantee inclusion of a block // For TxAsync, it always returns true // For TxCommit, it indicates the success of both CheckTx and DeliverTx. If the broadcast fails is false. OK bool `json:"ok"` Height *int64 `json:"height,omitempty"` Log string `json:"log"` }
func (*BroadcastReply) FromResultBroadcastTx ¶
func (reply *BroadcastReply) FromResultBroadcastTx(result *ctypes.ResultBroadcastTx)
type JobAddSignature ¶
func (*JobAddSignature) DoMyJob ¶
func (j *JobAddSignature) DoMyJob(ctxI interface{})
func (*JobAddSignature) GetJobID ¶
func (j *JobAddSignature) GetJobID() string
func (*JobAddSignature) GetType ¶
func (j *JobAddSignature) GetType() string
func (JobAddSignature) IsDone ¶
func (j JobAddSignature) IsDone() bool
func (*JobAddSignature) IsFailed ¶ added in v0.14.0
func (j *JobAddSignature) IsFailed() bool
type JobBTCBroadcast ¶
type JobBTCBroadcast struct { Type string TrackerName string JobID string Status jobs.Status RetryCount int }
func (*JobBTCBroadcast) DoMyJob ¶
func (j *JobBTCBroadcast) DoMyJob(ctxI interface{})
func (*JobBTCBroadcast) GetJobID ¶
func (j *JobBTCBroadcast) GetJobID() string
func (JobBTCBroadcast) IsDone ¶
func (j JobBTCBroadcast) IsDone() bool
func (*JobBTCBroadcast) IsFailed ¶ added in v0.14.0
func (j *JobBTCBroadcast) IsFailed() bool
type JobBTCCheckFinality ¶
type JobBTCCheckFinality struct { Type string TrackerName string JobID string CheckAfter int64 Status jobs.Status }
func (*JobBTCCheckFinality) DoMyJob ¶
func (cf *JobBTCCheckFinality) DoMyJob(ctxI interface{})
func (*JobBTCCheckFinality) GetJobID ¶
func (cf *JobBTCCheckFinality) GetJobID() string
func (*JobBTCCheckFinality) GetType ¶
func (cf *JobBTCCheckFinality) GetType() string
func (*JobBTCCheckFinality) IsDone ¶
func (cf *JobBTCCheckFinality) IsDone() bool
func (*JobBTCCheckFinality) IsFailed ¶ added in v0.14.0
func (cf *JobBTCCheckFinality) IsFailed() bool
type JobBus ¶
type JobBus struct {
// contains filtered or unexported fields
}
func (*JobBus) Start ¶
func (j *JobBus) Start(ctx *JobsContext) error
type JobETHBroadcast ¶
type JobETHBroadcast struct { TrackerName ethereum.TrackerName JobID string RetryCount int Status jobs.Status }
func NewETHBroadcast ¶
func NewETHBroadcast(name ethereum.TrackerName, state trackerlib.TrackerState) *JobETHBroadcast
func (*JobETHBroadcast) DoMyJob ¶
func (job *JobETHBroadcast) DoMyJob(ctx interface{})
func (*JobETHBroadcast) GetJobID ¶
func (job *JobETHBroadcast) GetJobID() string
func (*JobETHBroadcast) GetType ¶
func (job *JobETHBroadcast) GetType() string
func (*JobETHBroadcast) IsDone ¶
func (job *JobETHBroadcast) IsDone() bool
func (*JobETHBroadcast) IsFailed ¶ added in v0.14.0
func (job *JobETHBroadcast) IsFailed() bool
type JobETHCheckFinality ¶
type JobETHCheckFinality struct { TrackerName ethereum.TrackerName JobID string RetryCount int Status jobs.Status }
func NewETHCheckFinality ¶
func NewETHCheckFinality(name ethereum.TrackerName, state trackerlib.TrackerState) *JobETHCheckFinality
func (*JobETHCheckFinality) DoMyJob ¶
func (job *JobETHCheckFinality) DoMyJob(ctx interface{})
func (*JobETHCheckFinality) GetJobID ¶
func (job *JobETHCheckFinality) GetJobID() string
func (*JobETHCheckFinality) GetType ¶
func (job *JobETHCheckFinality) GetType() string
func (*JobETHCheckFinality) IsDone ¶
func (job *JobETHCheckFinality) IsDone() bool
func (*JobETHCheckFinality) IsFailed ¶ added in v0.14.0
func (job *JobETHCheckFinality) IsFailed() bool
type JobETHSignRedeem ¶
type JobETHSignRedeem struct { TrackerName ethereum.TrackerName JobID string RetryCount int Status jobs.Status TxHash *ethereum.TransactionHash }
func NewETHSignRedeem ¶
func NewETHSignRedeem(name ethereum.TrackerName, state trackerlib.TrackerState) *JobETHSignRedeem
func (*JobETHSignRedeem) DoMyJob ¶
func (j *JobETHSignRedeem) DoMyJob(ctx interface{})
func (*JobETHSignRedeem) GetJobID ¶
func (j *JobETHSignRedeem) GetJobID() string
func (*JobETHSignRedeem) GetType ¶
func (j *JobETHSignRedeem) GetType() string
func (*JobETHSignRedeem) IsDone ¶
func (j *JobETHSignRedeem) IsDone() bool
func (*JobETHSignRedeem) IsFailed ¶ added in v0.14.0
func (j *JobETHSignRedeem) IsFailed() bool
type JobETHVerifyRedeem ¶
type JobETHVerifyRedeem struct { TrackerName ethereum.TrackerName JobID string RetryCount int Status jobs.Status }
func NewETHVerifyRedeem ¶
func NewETHVerifyRedeem(name ethereum.TrackerName, state trackerlib.TrackerState) *JobETHVerifyRedeem
func (*JobETHVerifyRedeem) DoMyJob ¶
func (job *JobETHVerifyRedeem) DoMyJob(ctx interface{})
func (*JobETHVerifyRedeem) GetJobID ¶
func (job *JobETHVerifyRedeem) GetJobID() string
func (*JobETHVerifyRedeem) GetType ¶
func (job *JobETHVerifyRedeem) GetType() string
func (*JobETHVerifyRedeem) IsDone ¶
func (job *JobETHVerifyRedeem) IsDone() bool
func (*JobETHVerifyRedeem) IsFailed ¶ added in v0.14.0
func (job *JobETHVerifyRedeem) IsFailed() bool
type JobGovCheckVotes ¶ added in v0.14.3
type JobGovCheckVotes struct { ProposalID governance.ProposalID JobID string RetryCount int Status jobs.Status }
func NewGovCheckVotesJob ¶ added in v0.14.3
func NewGovCheckVotesJob(proposalID governance.ProposalID, status governance.ProposalStatus) *JobGovCheckVotes
func (*JobGovCheckVotes) DoMyJob ¶ added in v0.14.3
func (j *JobGovCheckVotes) DoMyJob(ctx interface{})
func (*JobGovCheckVotes) GetJobID ¶ added in v0.14.3
func (j *JobGovCheckVotes) GetJobID() string
func (*JobGovCheckVotes) GetType ¶ added in v0.14.3
func (j *JobGovCheckVotes) GetType() string
func (*JobGovCheckVotes) IsDone ¶ added in v0.14.3
func (j *JobGovCheckVotes) IsDone() bool
func (*JobGovCheckVotes) IsFailed ¶ added in v0.14.3
func (j *JobGovCheckVotes) IsFailed() bool
type JobGovFinalizeProposal ¶ added in v0.14.3
type JobGovFinalizeProposal struct { ProposalID governance.ProposalID JobID string RetryCount int Status jobs.Status }
func NewGovFinalizeProposalJob ¶ added in v0.14.3
func NewGovFinalizeProposalJob(proposalID governance.ProposalID, status governance.ProposalStatus) *JobGovFinalizeProposal
func (*JobGovFinalizeProposal) DoMyJob ¶ added in v0.14.3
func (j *JobGovFinalizeProposal) DoMyJob(ctx interface{})
func (*JobGovFinalizeProposal) GetJobID ¶ added in v0.14.3
func (j *JobGovFinalizeProposal) GetJobID() string
func (*JobGovFinalizeProposal) GetType ¶ added in v0.14.3
func (j *JobGovFinalizeProposal) GetType() string
func (*JobGovFinalizeProposal) IsDone ¶ added in v0.14.3
func (j *JobGovFinalizeProposal) IsDone() bool
func (*JobGovFinalizeProposal) IsFailed ¶ added in v0.14.3
func (j *JobGovFinalizeProposal) IsFailed() bool
type JobsContext ¶
type JobsContext struct { Service *Service Logger *log.Logger Trackers *bitcoin.TrackerStore Validators *identity.ValidatorStore BTCPrivKey *keys.PrivateKey ETHPrivKey *keys.PrivateKey ValidatorAddress action.Address LockScripts *bitcoin.LockScriptStore EthereumTrackers *ethereum.TrackerStore ProposalMaster *governance.ProposalMasterStore // contains filtered or unexported fields }
func NewJobsContext ¶
func NewJobsContext(cfg config.Server, svc *Service, trackers *bitcoin.TrackerStore, validators *identity.ValidatorStore, privKey *keys.PrivateKey, ethprivKey *keys.PrivateKey, valAddress keys.Address, lStore *bitcoin.LockScriptStore, ethTracker *ethereum.TrackerStore, proposalMaster *governance.ProposalMasterStore, logger *log.Logger, ) *JobsContext
func (*JobsContext) GetValidatorETHAddress ¶
func (jc *JobsContext) GetValidatorETHAddress() common.Address
func (*JobsContext) GetValidatorETHPrivKey ¶
func (jc *JobsContext) GetValidatorETHPrivKey() *ecdsa.PrivateKey
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func (Service) InternalBroadcast ¶
func (svc Service) InternalBroadcast(request InternalBroadcastRequest, reply *BroadcastReply) error
Source Files ¶
- btc_add_signature.go
- btc_broadcast.go
- btc_check_finality.go
- btc_transitions.go
- context.go
- eth_broadcast.go
- eth_check_finality.go
- eth_lock_transitions.go
- eth_redeem_transitions.go
- eth_sign_redeem.go
- eth_verify_redeem.go
- gov_check_votes.go
- gov_finalize_proposal.go
- init.go
- internal_service.go
- process.go
Click to show internal directories.
Click to hide internal directories.