This RPC works identically to the existsexpiredtickets RPC but checks for missed rather than expired tickets.
318 lines
10 KiB
Go
318 lines
10 KiB
Go
// Copyright (c) 2015-2016 The Decred developers
|
|
// Use of this source code is governed by an ISC
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// NOTE: This file is intended to house the RPC commands that are supported by
|
|
// a chain server with btcd extensions.
|
|
|
|
package dcrjson
|
|
|
|
// EstimateStakeDiffCmd defines the eststakedifficulty JSON-RPC command.
|
|
type EstimateStakeDiffCmd struct {
|
|
Tickets *uint32
|
|
}
|
|
|
|
// NewEstimateStakeDiffCmd defines the eststakedifficulty JSON-RPC command.
|
|
func NewEstimateStakeDiffCmd(tickets *uint32) *EstimateStakeDiffCmd {
|
|
return &EstimateStakeDiffCmd{
|
|
Tickets: tickets,
|
|
}
|
|
}
|
|
|
|
// ExistsAddressCmd defines the existsaddress JSON-RPC command.
|
|
type ExistsAddressCmd struct {
|
|
Address string
|
|
}
|
|
|
|
// NewExistsAddressCmd returns a new instance which can be used to issue a
|
|
// existsaddress JSON-RPC command.
|
|
func NewExistsAddressCmd(address string) *ExistsAddressCmd {
|
|
return &ExistsAddressCmd{
|
|
Address: address,
|
|
}
|
|
}
|
|
|
|
// ExistsAddressesCmd defines the existsaddresses JSON-RPC command.
|
|
type ExistsAddressesCmd struct {
|
|
Addresses []string
|
|
}
|
|
|
|
// NewExistsAddressesCmd returns a new instance which can be used to issue an
|
|
// existsaddresses JSON-RPC command.
|
|
func NewExistsAddressesCmd(addresses []string) *ExistsAddressesCmd {
|
|
return &ExistsAddressesCmd{
|
|
Addresses: addresses,
|
|
}
|
|
}
|
|
|
|
// ExistsMissedTicketsCmd defines the existsmissedtickets JSON-RPC command.
|
|
type ExistsMissedTicketsCmd struct {
|
|
TxHashBlob string
|
|
}
|
|
|
|
// NewExistsMissedTicketsCmd returns a new instance which can be used to issue an
|
|
// existsmissedtickets JSON-RPC command.
|
|
func NewExistsMissedTicketsCmd(txHashBlob string) *ExistsMissedTicketsCmd {
|
|
return &ExistsMissedTicketsCmd{
|
|
TxHashBlob: txHashBlob,
|
|
}
|
|
}
|
|
|
|
// ExistsExpiredTicketsCmd defines the existsexpiredtickets JSON-RPC command.
|
|
type ExistsExpiredTicketsCmd struct {
|
|
TxHashBlob string
|
|
}
|
|
|
|
// NewExistsExpiredTicketsCmd returns a new instance which can be used to issue an
|
|
// existsexpiredtickets JSON-RPC command.
|
|
func NewExistsExpiredTicketsCmd(txHashBlob string) *ExistsExpiredTicketsCmd {
|
|
return &ExistsExpiredTicketsCmd{
|
|
TxHashBlob: txHashBlob,
|
|
}
|
|
}
|
|
|
|
// ExistsLiveTicketCmd defines the existsliveticket JSON-RPC command.
|
|
type ExistsLiveTicketCmd struct {
|
|
TxHash string
|
|
}
|
|
|
|
// NewExistsLiveTicketCmd returns a new instance which can be used to issue an
|
|
// existsliveticket JSON-RPC command.
|
|
func NewExistsLiveTicketCmd(txHash string) *ExistsLiveTicketCmd {
|
|
return &ExistsLiveTicketCmd{
|
|
TxHash: txHash,
|
|
}
|
|
}
|
|
|
|
// ExistsLiveTicketsCmd defines the existslivetickets JSON-RPC command.
|
|
type ExistsLiveTicketsCmd struct {
|
|
TxHashBlob string
|
|
}
|
|
|
|
// NewExistsLiveTicketsCmd returns a new instance which can be used to issue an
|
|
// existslivetickets JSON-RPC command.
|
|
func NewExistsLiveTicketsCmd(txHashBlob string) *ExistsLiveTicketsCmd {
|
|
return &ExistsLiveTicketsCmd{
|
|
TxHashBlob: txHashBlob,
|
|
}
|
|
}
|
|
|
|
// ExistsMempoolTxsCmd defines the existsmempooltxs JSON-RPC command.
|
|
type ExistsMempoolTxsCmd struct {
|
|
TxHashBlob string
|
|
}
|
|
|
|
// NewExistsMempoolTxsCmd returns a new instance which can be used to issue an
|
|
// existslivetickets JSON-RPC command.
|
|
func NewExistsMempoolTxsCmd(txHashBlob string) *ExistsMempoolTxsCmd {
|
|
return &ExistsMempoolTxsCmd{
|
|
TxHashBlob: txHashBlob,
|
|
}
|
|
}
|
|
|
|
// GetCoinSupplyCmd defines the getcoinsupply JSON-RPC command.
|
|
type GetCoinSupplyCmd struct{}
|
|
|
|
// NewGetCoinSupplyCmd returns a new instance which can be used to issue a
|
|
// getcoinsupply JSON-RPC command.
|
|
func NewGetCoinSupplyCmd() *GetCoinSupplyCmd {
|
|
return &GetCoinSupplyCmd{}
|
|
}
|
|
|
|
// GetStakeDifficultyCmd is a type handling custom marshaling and
|
|
// unmarshaling of getstakedifficulty JSON RPC commands.
|
|
type GetStakeDifficultyCmd struct{}
|
|
|
|
// NewGetStakeDifficultyCmd returns a new instance which can be used to
|
|
// issue a JSON-RPC getstakedifficulty command.
|
|
func NewGetStakeDifficultyCmd() *GetStakeDifficultyCmd {
|
|
return &GetStakeDifficultyCmd{}
|
|
}
|
|
|
|
// GetStakeVersionInfoCmd returns stake version info for the current interval.
|
|
// Optionally, Count indicates how many additional intervals to return.
|
|
type GetStakeVersionInfoCmd struct {
|
|
Count *int32
|
|
}
|
|
|
|
// NewGetStakeVersionInfoCmd returns a new instance which can be used to
|
|
// issue a JSON-RPC getstakeversioninfo command.
|
|
func NewGetStakeVersionInfoCmd(count int32) *GetStakeVersionInfoCmd {
|
|
return &GetStakeVersionInfoCmd{
|
|
Count: &count,
|
|
}
|
|
}
|
|
|
|
// GetStakeVersionsCmd returns stake version for a range of blocks.
|
|
// Count indicates how many blocks are walked backwards.
|
|
type GetStakeVersionsCmd struct {
|
|
Hash string
|
|
Count int32
|
|
}
|
|
|
|
// NewGetStakeVersionsCmd returns a new instance which can be used to
|
|
// issue a JSON-RPC getstakeversions command.
|
|
func NewGetStakeVersionsCmd(hash string, count int32) *GetStakeVersionsCmd {
|
|
return &GetStakeVersionsCmd{
|
|
Hash: hash,
|
|
Count: count,
|
|
}
|
|
}
|
|
|
|
// GetTicketPoolValueCmd defines the getticketpoolvalue JSON-RPC command.
|
|
type GetTicketPoolValueCmd struct{}
|
|
|
|
// NewGetTicketPoolValueCmd returns a new instance which can be used to issue a
|
|
// getticketpoolvalue JSON-RPC command.
|
|
func NewGetTicketPoolValueCmd() *GetTicketPoolValueCmd {
|
|
return &GetTicketPoolValueCmd{}
|
|
}
|
|
|
|
// GetVoteInfoCmd returns voting results over a range of blocks. Count
|
|
// indicates how many blocks are walked backwards.
|
|
type GetVoteInfoCmd struct {
|
|
Version uint32
|
|
}
|
|
|
|
// NewGetVoteInfoCmd returns a new instance which can be used to
|
|
// issue a JSON-RPC getvoteinfo command.
|
|
func NewGetVoteInfoCmd(version uint32) *GetVoteInfoCmd {
|
|
return &GetVoteInfoCmd{
|
|
Version: version,
|
|
}
|
|
}
|
|
|
|
// LiveTicketsCmd is a type handling custom marshaling and
|
|
// unmarshaling of livetickets JSON RPC commands.
|
|
type LiveTicketsCmd struct{}
|
|
|
|
// NewLiveTicketsCmd returns a new instance which can be used to issue a JSON-RPC
|
|
// livetickets command.
|
|
func NewLiveTicketsCmd() *LiveTicketsCmd {
|
|
return &LiveTicketsCmd{}
|
|
}
|
|
|
|
// MissedTicketsCmd is a type handling custom marshaling and
|
|
// unmarshaling of missedtickets JSON RPC commands.
|
|
type MissedTicketsCmd struct{}
|
|
|
|
// NewMissedTicketsCmd returns a new instance which can be used to issue a JSON-RPC
|
|
// missedtickets command.
|
|
func NewMissedTicketsCmd() *MissedTicketsCmd {
|
|
return &MissedTicketsCmd{}
|
|
}
|
|
|
|
// RebroadcastMissedCmd is a type handling custom marshaling and
|
|
// unmarshaling of rebroadcastwinners JSON RPC commands.
|
|
type RebroadcastMissedCmd struct{}
|
|
|
|
// NewRebroadcastMissedCmd returns a new instance which can be used to
|
|
// issue a JSON-RPC rebroadcastmissed command.
|
|
func NewRebroadcastMissedCmd() *RebroadcastMissedCmd {
|
|
return &RebroadcastMissedCmd{}
|
|
}
|
|
|
|
// RebroadcastWinnersCmd is a type handling custom marshaling and
|
|
// unmarshaling of rebroadcastwinners JSON RPC commands.
|
|
type RebroadcastWinnersCmd struct{}
|
|
|
|
// NewRebroadcastWinnersCmd returns a new instance which can be used to
|
|
// issue a JSON-RPC rebroadcastwinners command.
|
|
func NewRebroadcastWinnersCmd() *RebroadcastWinnersCmd {
|
|
return &RebroadcastWinnersCmd{}
|
|
}
|
|
|
|
// TicketFeeInfoCmd defines the ticketsfeeinfo JSON-RPC command.
|
|
type TicketFeeInfoCmd struct {
|
|
Blocks *uint32
|
|
Windows *uint32
|
|
}
|
|
|
|
// NewTicketFeeInfoCmd returns a new instance which can be used to issue a
|
|
// JSON-RPC ticket fee info command.
|
|
func NewTicketFeeInfoCmd(blocks *uint32, windows *uint32) *TicketFeeInfoCmd {
|
|
return &TicketFeeInfoCmd{
|
|
Blocks: blocks,
|
|
Windows: windows,
|
|
}
|
|
}
|
|
|
|
// TicketsForAddressCmd defines the ticketsforbucket JSON-RPC command.
|
|
type TicketsForAddressCmd struct {
|
|
Address string
|
|
}
|
|
|
|
// NewTicketsForAddressCmd returns a new instance which can be used to issue a
|
|
// JSON-RPC tickets for bucket command.
|
|
func NewTicketsForAddressCmd(addr string) *TicketsForAddressCmd {
|
|
return &TicketsForAddressCmd{addr}
|
|
}
|
|
|
|
// TicketVWAPCmd defines the ticketvwap JSON-RPC command.
|
|
type TicketVWAPCmd struct {
|
|
Start *uint32
|
|
End *uint32
|
|
}
|
|
|
|
// NewTicketVWAPCmd returns a new instance which can be used to issue a
|
|
// JSON-RPC ticket volume weight average price command.
|
|
func NewTicketVWAPCmd(start *uint32, end *uint32) *TicketVWAPCmd {
|
|
return &TicketVWAPCmd{
|
|
Start: start,
|
|
End: end,
|
|
}
|
|
}
|
|
|
|
// TxFeeInfoCmd defines the ticketsfeeinfo JSON-RPC command.
|
|
type TxFeeInfoCmd struct {
|
|
Blocks *uint32
|
|
RangeStart *uint32
|
|
RangeEnd *uint32
|
|
}
|
|
|
|
// NewTxFeeInfoCmd returns a new instance which can be used to issue a
|
|
// JSON-RPC ticket fee info command.
|
|
func NewTxFeeInfoCmd(blocks *uint32, start *uint32, end *uint32) *TxFeeInfoCmd {
|
|
return &TxFeeInfoCmd{
|
|
Blocks: blocks,
|
|
RangeStart: start,
|
|
RangeEnd: end,
|
|
}
|
|
}
|
|
|
|
// VersionCmd defines the version JSON-RPC command.
|
|
type VersionCmd struct{}
|
|
|
|
// NewVersionCmd returns a new instance which can be used to issue a JSON-RPC
|
|
// version command.
|
|
func NewVersionCmd() *VersionCmd { return new(VersionCmd) }
|
|
|
|
func init() {
|
|
// No special flags for commands in this file.
|
|
flags := UsageFlag(0)
|
|
|
|
MustRegisterCmd("estimatestakediff", (*EstimateStakeDiffCmd)(nil), flags)
|
|
MustRegisterCmd("existsaddress", (*ExistsAddressCmd)(nil), flags)
|
|
MustRegisterCmd("existsaddresses", (*ExistsAddressesCmd)(nil), flags)
|
|
MustRegisterCmd("existsmissedtickets", (*ExistsMissedTicketsCmd)(nil), flags)
|
|
MustRegisterCmd("existsexpiredtickets", (*ExistsExpiredTicketsCmd)(nil), flags)
|
|
MustRegisterCmd("existsliveticket", (*ExistsLiveTicketCmd)(nil), flags)
|
|
MustRegisterCmd("existslivetickets", (*ExistsLiveTicketsCmd)(nil), flags)
|
|
MustRegisterCmd("existsmempooltxs", (*ExistsMempoolTxsCmd)(nil), flags)
|
|
MustRegisterCmd("getcoinsupply", (*GetCoinSupplyCmd)(nil), flags)
|
|
MustRegisterCmd("getstakedifficulty", (*GetStakeDifficultyCmd)(nil), flags)
|
|
MustRegisterCmd("getstakeversioninfo", (*GetStakeVersionInfoCmd)(nil), flags)
|
|
MustRegisterCmd("getstakeversions", (*GetStakeVersionsCmd)(nil), flags)
|
|
MustRegisterCmd("getticketpoolvalue", (*GetTicketPoolValueCmd)(nil), flags)
|
|
MustRegisterCmd("getvoteinfo", (*GetVoteInfoCmd)(nil), flags)
|
|
MustRegisterCmd("livetickets", (*LiveTicketsCmd)(nil), flags)
|
|
MustRegisterCmd("missedtickets", (*MissedTicketsCmd)(nil), flags)
|
|
MustRegisterCmd("rebroadcastmissed", (*RebroadcastMissedCmd)(nil), flags)
|
|
MustRegisterCmd("rebroadcastwinners", (*RebroadcastWinnersCmd)(nil), flags)
|
|
MustRegisterCmd("ticketfeeinfo", (*TicketFeeInfoCmd)(nil), flags)
|
|
MustRegisterCmd("ticketsforaddress", (*TicketsForAddressCmd)(nil), flags)
|
|
MustRegisterCmd("ticketvwap", (*TicketVWAPCmd)(nil), flags)
|
|
MustRegisterCmd("txfeeinfo", (*TxFeeInfoCmd)(nil), flags)
|
|
MustRegisterCmd("version", (*VersionCmd)(nil), flags)
|
|
}
|