Skip to content

Commit

Permalink
fix: update TokenTransfersTransaction.AddTransfer() to append to ex…
Browse files Browse the repository at this point in the history
…isting list
  • Loading branch information
janaakhterov committed Oct 30, 2020
1 parent 74b2150 commit 932fc78
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 17 deletions.
1 change: 1 addition & 0 deletions token_create_transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ func NewTokenCreateTransaction() *TokenCreateTransaction {
}

transaction.SetAutoRenewPeriod(7890000)
transaction.SetExpirationTime(uint64(time.Now().Add(7890000 * time.Second).Unix()))

return &transaction
}
Expand Down
31 changes: 16 additions & 15 deletions token_transfer_transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,17 @@ import (

type TokenTransferTransaction struct {
Transaction
pb *proto.TokenTransfersTransactionBody
pb *proto.TokenTransfersTransactionBody
tokenIndexes map[TokenID]int
}

func NewTokenTransferTransaction() *TokenTransferTransaction {
pb := &proto.TokenTransfersTransactionBody{}

transaction := TokenTransferTransaction{
pb: pb,
Transaction: newTransaction(),
pb: pb,
Transaction: newTransaction(),
tokenIndexes: make(map[TokenID]int),
}

return &transaction
Expand Down Expand Up @@ -45,25 +47,24 @@ func (transaction *TokenTransferTransaction) AddRecipient(tokenID TokenID, accou
func (transaction *TokenTransferTransaction) AddTransfer(tokenID TokenID, accountID AccountID, value int64) *TokenTransferTransaction {
transaction.requireNotFrozen()

println("value", value)

accountAmount := proto.AccountAmount{
AccountID: accountID.toProtobuf(),
Amount: value,
}

accountAmountArray := make([]*proto.AccountAmount, 1)
accountAmountArray[0] = &accountAmount

println("value", accountAmountArray[0].String())

tokenTransfers := &proto.TokenTransferList{
Token: tokenID.toProtobuf(),
Transfers: accountAmountArray,
if index, ok := transaction.tokenIndexes[tokenID]; ok {
transaction.pb.TokenTransfers[index].Transfers = append(
transaction.pb.TokenTransfers[index].Transfers,
&accountAmount,
)
} else {
transaction.tokenIndexes[tokenID] = len(transaction.pb.TokenTransfers)
transaction.pb.TokenTransfers = append(transaction.pb.TokenTransfers, &proto.TokenTransferList{
Token: tokenID.toProtobuf(),
Transfers: []*proto.AccountAmount{&accountAmount},
})
}

transaction.pb.TokenTransfers = append(transaction.pb.TokenTransfers, tokenTransfers)

return transaction
}

Expand Down
5 changes: 3 additions & 2 deletions transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,9 @@ func transaction_makeRequest(request request) protoRequest {
}

func transaction_advanceRequest(request request) {
request.transaction.nextTransactionIndex++
length := len(request.transaction.transactions)
currentIndex := request.transaction.nextTransactionIndex
request.transaction.nextTransactionIndex = (currentIndex + 1) % length
}

func transaction_getNodeId(
Expand All @@ -231,7 +233,6 @@ func transaction_mapResponseStatus(
_ request,
response response,
) Status {
println(Status(response.transaction.NodeTransactionPrecheckCode).String())
return Status(response.transaction.NodeTransactionPrecheckCode)
}

Expand Down

0 comments on commit 932fc78

Please sign in to comment.