Skip to content

Commit

Permalink
Fix serialization issues
Browse files Browse the repository at this point in the history
- fix auto renew on token create tx
- fix return type on system delete tx

Signed-off-by: Antonio Mindov <[email protected]>
  • Loading branch information
rokn committed Sep 27, 2023
1 parent f7e9c4b commit 760a6e4
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 3 deletions.
2 changes: 1 addition & 1 deletion file_append_transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func _FileAppendTransactionFromProtobuf(transaction Transaction, pb *services.Tr
return &FileAppendTransaction{
Transaction: transaction,
maxChunks: 20,
contents: make([]byte, 0),
contents: pb.GetFileAppend().GetContents(),
chunkSize: 2048,
fileID: _FileIDFromProtobuf(pb.GetFileAppend().GetFileID()),
}
Expand Down
29 changes: 29 additions & 0 deletions file_append_transaction_unit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -363,3 +363,32 @@ func TestUnitFileAppendTransactionCoverage(t *testing.T) {
b.AddSignature(newKey.PublicKey(), sig)
}
}

func TestUnitFileAppendTransactionSerialization(t *testing.T) {
t.Parallel()

fileID := FileID{File: 7}
nodeAccountID := []AccountID{{Account: 10}}
transactionID := TransactionIDGenerate(AccountID{Account: 324})

transaction, err := NewFileAppendTransaction().
SetTransactionID(transactionID).
SetNodeAccountIDs(nodeAccountID).
SetFileID(fileID).
SetContents([]byte("Hello, World")).
Freeze()
require.NoError(t, err)

txBytes, err := transaction.ToBytes()
require.NoError(t, err)

txParsed, err := TransactionFromBytes(txBytes)
require.NoError(t, err)

result, ok := txParsed.(FileAppendTransaction)
require.True(t, ok)

require.Equal(t, transactionID.AccountID, result.GetTransactionID().AccountID)
require.Equal(t, fileID, result.GetFileID())
require.Equal(t, transaction.GetContents(), result.GetContents())
}
2 changes: 1 addition & 1 deletion token_create_transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,7 @@ func (transaction *TokenCreateTransaction) Freeze() (*TokenCreateTransaction, er
}

func (transaction *TokenCreateTransaction) FreezeWith(client *Client) (*TokenCreateTransaction, error) {
if transaction.autoRenewPeriod != nil && client != nil && !client.GetOperatorAccountID()._IsZero() {
if transaction.autoRenewAccountID == nil && transaction.autoRenewPeriod != nil && client != nil && !client.GetOperatorAccountID()._IsZero() {
transaction.SetAutoRenewAccount(client.GetOperatorAccountID())
}

Expand Down
11 changes: 11 additions & 0 deletions token_create_transaction_unit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -330,3 +330,14 @@ func TestUnitTokenCreateTransactionMock(t *testing.T) {
_, err = freez.Sign(newKey).Execute(client)
require.NoError(t, err)
}

func TestUnitTokenCreateAutoRenewAccountSetting(t *testing.T) {
client, err := _NewMockClient()
autoRenewAccount := AccountID{Account: 3}
frozenTx, err := NewTokenCreateTransaction().
SetAutoRenewAccount(autoRenewAccount).
SetAutoRenewPeriod(24 * time.Hour).
FreezeWith(client)
require.NoError(t, err)
require.Equal(t, autoRenewAccount, frozenTx.GetAutoRenewAccount())
}
2 changes: 1 addition & 1 deletion topic_message_submit_transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func _TopicMessageSubmitTransactionFromProtobuf(transaction Transaction, pb *ser
tx := &TopicMessageSubmitTransaction{
Transaction: transaction,
maxChunks: 20,
message: make([]byte, 0),
message: pb.GetConsensusSubmitMessage().GetMessage(),
topicID: _TopicIDFromProtobuf(pb.GetConsensusSubmitMessage().GetTopicID()),
}

Expand Down
31 changes: 31 additions & 0 deletions topic_message_submit_transaction_unit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -291,3 +291,34 @@ func TestUnitTopicMessageSubmitTransactionCoverage(t *testing.T) {
b.AddSignature(newKey.PublicKey(), sig)
}
}

func TestUnitTopicMessageSubmitTransactionSerialization(t *testing.T) {
t.Parallel()

topic := TopicID{Topic: 3}
nodeAccountID := []AccountID{{Account: 10}}
transactionID := TransactionIDGenerate(AccountID{Account: 324})

transaction, err := NewTopicMessageSubmitTransaction().
SetTransactionID(transactionID).
SetNodeAccountIDs(nodeAccountID).
SetTopicID(topic).
SetMessage([]byte("nothing to see here")).
SetMaxChunks(30).
SetTransactionMemo("no").
Freeze()
require.NoError(t, err)

txBytes, err := transaction.ToBytes()
require.NoError(t, err)

txParsed, err := TransactionFromBytes(txBytes)
require.NoError(t, err)

result, ok := txParsed.(TopicMessageSubmitTransaction)
require.True(t, ok)

require.Equal(t, transactionID.AccountID, result.GetTransactionID().AccountID)
require.Equal(t, transaction.GetMessage(), result.GetMessage())
require.Equal(t, transaction.GetTransactionMemo(), result.GetTransactionMemo())
}

0 comments on commit 760a6e4

Please sign in to comment.