mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

* [NOD-1500] Added Domain type and Constructor * [NOD-1500] Replaced dag+txpool with domain in flowContext * [NOD-1500] Replaced dag+txpool with domain in flowContext * [NOD-1500] Converters: domain objects from/to appmessage * [NOD-1500] Convert hashes to DomainHashes in appmessages * [NOD-1500] Remove references to daghash in dagconfig * [NOD-1500] Fixed all appmessage usages of hashes * [NOD-1500] Update all RPC to use domain * [NOD-1500] Big chunk of protocol flows re-wired to domain * [NOD-1500] Finished re-wiring all protocol flows to new Domain * [NOD-1500] Fix some mempool and kaspaminer compilation errors * [NOD-1500] Deleted util/{block,tx,daghash} and dbaccess * [NOD-1500] util.CoinbaseTransactionIndex -> transactionhelper.CoinbaseTransactionIndex * [NOD-1500] Fix txsigner * [NOD-1500] Removed all references to util/subnetworkid * [NOD-1500] Update RpcGetBlock related messages * [NOD-1500] Many more compilation fixes * [NOD-1500] Return full list of missing blocks for orphan resolution * [NOD-1500] Fixed handshake * [NOD-1500] Fixed flowcontext compilation * [NOD-1500] Update users of StartIBDIfRequired to handle error * [NOD-1500] Removed some more fields from RPC * [NOD-1500] Fix the getBlockTemplate flow * [NOD-1500] Fix HandleGetCurrentNetwork * [NOD-1500] Remove redundant code * [NOD-1500] Remove obsolete notifications * [NOD-1500] Split MiningManager and Consensus to separate fields in Domain * [NOD-1500] Update two wrong references to location of txscript * [NOD-1500] Added comments * [NOD-1500] Fix some tests * [NOD-1500] Removed serialization logic from appmessage * [NOD-1500] Rename database/serialization/messages.proto to dbobjects.proto * [NOD-1500] Delete integration tests * [NOD-1500] Remove txsort * [NOD-1500] Fix tiny bug * [NOD-1500] Remove rogue dependancy on bchd * [NOD-1500] Some stylistic fixes
109 lines
3.1 KiB
Go
109 lines
3.1 KiB
Go
package appmessage
|
|
|
|
// GetBlockRequestMessage is an appmessage corresponding to
|
|
// its respective RPC message
|
|
type GetBlockRequestMessage struct {
|
|
baseMessage
|
|
Hash string
|
|
SubnetworkID string
|
|
IncludeTransactionVerboseData bool
|
|
}
|
|
|
|
// Command returns the protocol command string for the message
|
|
func (msg *GetBlockRequestMessage) Command() MessageCommand {
|
|
return CmdGetBlockRequestMessage
|
|
}
|
|
|
|
// NewGetBlockRequestMessage returns a instance of the message
|
|
func NewGetBlockRequestMessage(hash string, subnetworkID string, includeTransactionVerboseData bool) *GetBlockRequestMessage {
|
|
return &GetBlockRequestMessage{
|
|
Hash: hash,
|
|
SubnetworkID: subnetworkID,
|
|
IncludeTransactionVerboseData: includeTransactionVerboseData,
|
|
}
|
|
}
|
|
|
|
// GetBlockResponseMessage is an appmessage corresponding to
|
|
// its respective RPC message
|
|
type GetBlockResponseMessage struct {
|
|
baseMessage
|
|
BlockVerboseData *BlockVerboseData
|
|
|
|
Error *RPCError
|
|
}
|
|
|
|
// Command returns the protocol command string for the message
|
|
func (msg *GetBlockResponseMessage) Command() MessageCommand {
|
|
return CmdGetBlockResponseMessage
|
|
}
|
|
|
|
// NewGetBlockResponseMessage returns a instance of the message
|
|
func NewGetBlockResponseMessage() *GetBlockResponseMessage {
|
|
return &GetBlockResponseMessage{}
|
|
}
|
|
|
|
// BlockVerboseData holds verbose data about a block
|
|
type BlockVerboseData struct {
|
|
Hash string
|
|
Version int32
|
|
VersionHex string
|
|
HashMerkleRoot string
|
|
AcceptedIDMerkleRoot string
|
|
UTXOCommitment string
|
|
TxIDs []string
|
|
TransactionVerboseData []*TransactionVerboseData
|
|
Time int64
|
|
Nonce uint64
|
|
Bits string
|
|
Difficulty float64
|
|
ParentHashes []string
|
|
SelectedParentHash string
|
|
}
|
|
|
|
// TransactionVerboseData holds verbose data about a transaction
|
|
type TransactionVerboseData struct {
|
|
TxID string
|
|
Hash string
|
|
Size uint64
|
|
Version int32
|
|
LockTime uint64
|
|
SubnetworkID string
|
|
Gas uint64
|
|
PayloadHash string
|
|
Payload string
|
|
TransactionVerboseInputs []*TransactionVerboseInput
|
|
TransactionVerboseOutputs []*TransactionVerboseOutput
|
|
BlockHash string
|
|
Time uint64
|
|
BlockTime uint64
|
|
}
|
|
|
|
// TransactionVerboseInput holds data about a transaction input
|
|
type TransactionVerboseInput struct {
|
|
TxID string
|
|
OutputIndex uint32
|
|
ScriptSig *ScriptSig
|
|
Sequence uint64
|
|
}
|
|
|
|
// ScriptSig holds data about a script signature
|
|
type ScriptSig struct {
|
|
Asm string
|
|
Hex string
|
|
}
|
|
|
|
// TransactionVerboseOutput holds data about a transaction output
|
|
type TransactionVerboseOutput struct {
|
|
Value uint64
|
|
Index uint32
|
|
ScriptPubKey *ScriptPubKeyResult
|
|
}
|
|
|
|
// ScriptPubKeyResult holds data about a script public key
|
|
type ScriptPubKeyResult struct {
|
|
Asm string
|
|
Hex string
|
|
Type string
|
|
Address string
|
|
}
|