The core protocol of WoopChain
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
woop/client/message.go

40 lines
1.1 KiB

package client
import (
"bytes"
"encoding/gob"
"harmony-benchmark/blockchain"
"harmony-benchmark/common"
)
// The specific types of message under CLIENT category
type ClientMessageType byte
const (
TRANSACTION ClientMessageType = iota
// TODO: add more types
)
// The types of messages used for CLIENT/TRANSACTION
type TransactionMessageType int
const (
CROSS_TX TransactionMessageType = iota // The proof of accept or reject returned by the leader to the cross shard transaction client.
)
// Used to aggregated proofs and unlock utxos in cross shard tx
type CrossShardTxAndProofs struct {
Transaction blockchain.Transaction // The cross shard tx
Proofs []blockchain.CrossShardTxProof // The proofs
}
//ConstructStopMessage is STOP message
func ConstructProofOfAcceptOrRejectMessage(proofs []blockchain.CrossShardTxProof) []byte {
byteBuffer := bytes.NewBuffer([]byte{byte(common.CLIENT)})
byteBuffer.WriteByte(byte(TRANSACTION))
byteBuffer.WriteByte(byte(CROSS_TX))
encoder := gob.NewEncoder(byteBuffer)
encoder.Encode(proofs)
return byteBuffer.Bytes()
}