diff --git a/cmd/transaction/const.go b/cmd/transaction/const.go index 08d9707b7..31fee2798 100644 --- a/cmd/transaction/const.go +++ b/cmd/transaction/const.go @@ -38,6 +38,9 @@ var ( nodeOwnerAccountAddress string nodeAddress string lockedBalance int64 + poowMessageByte []byte + signatureByte []byte + nodePubKey []byte proofOfOwnershipHex string databasePath string databaseName string diff --git a/cmd/transaction/generator.go b/cmd/transaction/generator.go index 232240d17..8ef5f114b 100644 --- a/cmd/transaction/generator.go +++ b/cmd/transaction/generator.go @@ -462,3 +462,84 @@ func GeneratedMultiSignatureTransaction( tx.TransactionBodyLength = uint32(len(tx.TransactionBodyBytes)) return tx } + +func GenerateTxRegisterNodeHDwallet( + tx *model.Transaction, + recipientAccountAddress, nodeAddress string, + lockedBalance int64, + poownMessageBytes, signature, nodePubKey []byte, +) *model.Transaction { + txBody := &model.NodeRegistrationTransactionBody{ + NodePublicKey: nodePubKey, + NodeAddress: &model.NodeAddress{ + Address: nodeAddress, + }, + LockedBalance: lockedBalance, + Poown: &model.ProofOfOwnership{ + MessageBytes: poownMessageBytes, + Signature: signature, + }, + } + txBodyBytes := (&transaction.NodeRegistration{ + Body: txBody, + NodeRegistrationQuery: query.NewNodeRegistrationQuery(), + }).GetBodyBytes() + + tx.TransactionType = util.ConvertBytesToUint32(txTypeMap["registerNode"]) + tx.TransactionBody = &model.Transaction_NodeRegistrationTransactionBody{ + NodeRegistrationTransactionBody: txBody, + } + tx.TransactionBodyBytes = txBodyBytes + tx.TransactionBodyLength = uint32(len(txBodyBytes)) + + return tx +} + +func GenerateTxUpdateNodeHDwallet( + tx *model.Transaction, + nodeAddress string, + lockedBalance int64, + poowMessageBytes, signature, nodePubKey []byte, +) *model.Transaction { + txBody := &model.UpdateNodeRegistrationTransactionBody{ + NodePublicKey: nodePubKey, + NodeAddress: &model.NodeAddress{ + Address: nodeAddress, + }, + LockedBalance: lockedBalance, + Poown: &model.ProofOfOwnership{ + MessageBytes: poowMessageBytes, + Signature: signature, + }, + } + txBodyBytes := (&transaction.UpdateNodeRegistration{ + Body: txBody, + NodeRegistrationQuery: query.NewNodeRegistrationQuery(), + }).GetBodyBytes() + + tx.TransactionBodyLength = uint32(len(txBodyBytes)) + tx.TransactionType = util.ConvertBytesToUint32(txTypeMap["updateNodeRegistration"]) + tx.TransactionBody = &model.Transaction_UpdateNodeRegistrationTransactionBody{ + UpdateNodeRegistrationTransactionBody: txBody, + } + tx.TransactionBodyBytes = txBodyBytes + return tx +} + +func GenerateTxRemoveNodeHDwallet(tx *model.Transaction, nodePubKey []byte) *model.Transaction { + txBody := &model.RemoveNodeRegistrationTransactionBody{ + NodePublicKey: nodePubKey, + } + txBodyBytes := (&transaction.RemoveNodeRegistration{ + Body: txBody, + NodeRegistrationQuery: query.NewNodeRegistrationQuery(), + }).GetBodyBytes() + + tx.TransactionType = util.ConvertBytesToUint32(txTypeMap["removeNodeRegistration"]) + tx.TransactionBody = &model.Transaction_RemoveNodeRegistrationTransactionBody{ + RemoveNodeRegistrationTransactionBody: txBody, + } + tx.TransactionBodyBytes = txBodyBytes + tx.TransactionBodyLength = uint32(len(txBodyBytes)) + return tx +} diff --git a/common/schema b/common/schema index 1ac98dcee..19e27af04 160000 --- a/common/schema +++ b/common/schema @@ -1 +1 @@ -Subproject commit 1ac98dcee5e6a47ac22e19abad23942686a2bdbc +Subproject commit 19e27af04d19e3796614a13e985c66cdad7cddd9