Skip to content

Commit

Permalink
fix: for chunking, ensure incrementing IDs
Browse files Browse the repository at this point in the history
  • Loading branch information
mehcode committed Jul 16, 2020
1 parent c1a79a9 commit 7486f1a
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions consensus_message_submit_transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,13 +101,15 @@ func (builder ConsensusMessageSubmitTransaction) Build(client *Client) (Transact

list := make([]Transaction, chunks)

var transactionID TransactionID
var initialTransactionID TransactionID
if builder.TransactionBuilder.pb.TransactionID != nil {
transactionID = transactionIDFromProto(builder.TransactionBuilder.pb.TransactionID)
initialTransactionID = transactionIDFromProto(builder.TransactionBuilder.pb.TransactionID)
} else {
transactionID = NewTransactionID(client.GetOperatorID())
initialTransactionID = NewTransactionID(client.GetOperatorID())
}

nextTransactionID := initialTransactionID

for i := 1; i < len(builder.message); i += chunkSize {
start := i * chunkSize
end := (i + 1) * chunkSize
Expand All @@ -116,17 +118,22 @@ func (builder ConsensusMessageSubmitTransaction) Build(client *Client) (Transact
end = len(builder.message)
}

transaction, err := NewConsensusMessageSubmitTransaction().
transactionBuilder := NewConsensusMessageSubmitTransaction()
transactionBuilder.TransactionBuilder = builder.TransactionBuilder

transaction, err := transactionBuilder.
SetMessage(builder.message[start:end]).
SetTransactionID(nextTransactionID).
SetTopicID(builder.topicID).
SetChunkInfo(transactionID, int32(chunks), int32(i)+1).
SetChunkInfo(initialTransactionID, int32(chunks), int32(i)+1).
Build(client)

if err != nil {
return TransactionList{}, err
}

list = append(list, transaction.List[0])
nextTransactionID.ValidStart = nextTransactionID.ValidStart.Add(1 * time.Nanosecond)
}

return TransactionList{list}, nil
Expand Down

0 comments on commit 7486f1a

Please sign in to comment.