mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-27 15:53:57 +00:00
Just some name changes, put in a stand in emission amount, and started copying the algo from Karlsen. Not release worthy yet. Therefore Dev branch exists now. Also, for now this is for research purposes only. I got no clue what to build on top of Kaspa yet. Help would be appreciated for ideas and implementations.
116 lines
3.2 KiB
Go
116 lines
3.2 KiB
Go
package appmessage
|
|
|
|
// SubmitTransactionRequestMessage is an appmessage corresponding to
|
|
// its respective RPC message
|
|
type SubmitTransactionRequestMessage struct {
|
|
baseMessage
|
|
Transaction *RPCTransaction
|
|
AllowOrphan bool
|
|
}
|
|
|
|
// Command returns the protocol command string for the message
|
|
func (msg *SubmitTransactionRequestMessage) Command() MessageCommand {
|
|
return CmdSubmitTransactionRequestMessage
|
|
}
|
|
|
|
// NewSubmitTransactionRequestMessage returns a instance of the message
|
|
func NewSubmitTransactionRequestMessage(transaction *RPCTransaction, allowOrphan bool) *SubmitTransactionRequestMessage {
|
|
return &SubmitTransactionRequestMessage{
|
|
Transaction: transaction,
|
|
AllowOrphan: allowOrphan,
|
|
}
|
|
}
|
|
|
|
// SubmitTransactionResponseMessage is an appmessage corresponding to
|
|
// its respective RPC message
|
|
type SubmitTransactionResponseMessage struct {
|
|
baseMessage
|
|
TransactionID string
|
|
|
|
Error *RPCError
|
|
}
|
|
|
|
// Command returns the protocol command string for the message
|
|
func (msg *SubmitTransactionResponseMessage) Command() MessageCommand {
|
|
return CmdSubmitTransactionResponseMessage
|
|
}
|
|
|
|
// NewSubmitTransactionResponseMessage returns a instance of the message
|
|
func NewSubmitTransactionResponseMessage(transactionID string) *SubmitTransactionResponseMessage {
|
|
return &SubmitTransactionResponseMessage{
|
|
TransactionID: transactionID,
|
|
}
|
|
}
|
|
|
|
// RPCTransaction is a zoomyd transaction representation meant to be
|
|
// used over RPC
|
|
type RPCTransaction struct {
|
|
Version uint16
|
|
Inputs []*RPCTransactionInput
|
|
Outputs []*RPCTransactionOutput
|
|
LockTime uint64
|
|
SubnetworkID string
|
|
Gas uint64
|
|
Payload string
|
|
VerboseData *RPCTransactionVerboseData
|
|
}
|
|
|
|
// RPCTransactionInput is a zoomyd transaction input representation
|
|
// meant to be used over RPC
|
|
type RPCTransactionInput struct {
|
|
PreviousOutpoint *RPCOutpoint
|
|
SignatureScript string
|
|
Sequence uint64
|
|
SigOpCount byte
|
|
VerboseData *RPCTransactionInputVerboseData
|
|
}
|
|
|
|
// RPCScriptPublicKey is a zoomyd ScriptPublicKey representation
|
|
type RPCScriptPublicKey struct {
|
|
Version uint16
|
|
Script string
|
|
}
|
|
|
|
// RPCTransactionOutput is a zoomyd transaction output representation
|
|
// meant to be used over RPC
|
|
type RPCTransactionOutput struct {
|
|
Amount uint64
|
|
ScriptPublicKey *RPCScriptPublicKey
|
|
VerboseData *RPCTransactionOutputVerboseData
|
|
}
|
|
|
|
// RPCOutpoint is a zoomyd outpoint representation meant to be used
|
|
// over RPC
|
|
type RPCOutpoint struct {
|
|
TransactionID string
|
|
Index uint32
|
|
}
|
|
|
|
// RPCUTXOEntry is a zoomyd utxo entry representation meant to be used
|
|
// over RPC
|
|
type RPCUTXOEntry struct {
|
|
Amount uint64
|
|
ScriptPublicKey *RPCScriptPublicKey
|
|
BlockDAAScore uint64
|
|
IsCoinbase bool
|
|
}
|
|
|
|
// RPCTransactionVerboseData holds verbose data about a transaction
|
|
type RPCTransactionVerboseData struct {
|
|
TransactionID string
|
|
Hash string
|
|
Mass uint64
|
|
BlockHash string
|
|
BlockTime uint64
|
|
}
|
|
|
|
// RPCTransactionInputVerboseData holds data about a transaction input
|
|
type RPCTransactionInputVerboseData struct {
|
|
}
|
|
|
|
// RPCTransactionOutputVerboseData holds data about a transaction output
|
|
type RPCTransactionOutputVerboseData struct {
|
|
ScriptPublicKeyType string
|
|
ScriptPublicKeyAddress string
|
|
}
|