Skip to content

Commit

Permalink
add tracking for max tx fee
Browse files Browse the repository at this point in the history
  • Loading branch information
QuestofIranon committed Feb 19, 2020
1 parent 894a81a commit 8b65305
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions transaction_builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,20 @@ import (

type TransactionBuilder struct {
pb *proto.TransactionBody

// unfortunately; this is required
setTXFee bool
}

func newTransactionBuilder() TransactionBuilder {
builder := TransactionBuilder{&proto.TransactionBody{}}
builder := TransactionBuilder{&proto.TransactionBody{}, false}
builder.SetTransactionValidDuration(120 * time.Second)

return builder
}

func (builder TransactionBuilder) Build(client *Client) (Transaction, error) {
if client != nil && builder.pb.TransactionFee == 0 {
if client != nil && !builder.setTXFee {
builder.SetMaxTransactionFee(client.maxTransactionFee)
}

Expand Down Expand Up @@ -82,12 +85,14 @@ func (builder TransactionBuilder) Cost(client *Client) (Hbar, error) {
oldFee := builder.pb.TransactionFee
oldTxID := builder.pb.TransactionID
oldValidDuration := builder.pb.TransactionValidDuration
oldTxFeeStatus := builder.setTXFee

defer func(){
defer func() {
// always reset the state of the builder before exiting this function
builder.pb.TransactionFee = oldFee
builder.pb.TransactionID = oldTxID
builder.pb.TransactionValidDuration = oldValidDuration
builder.setTXFee = oldTxFeeStatus
}()

costTx, err := builder.
Expand Down Expand Up @@ -121,6 +126,7 @@ func (builder TransactionBuilder) Cost(client *Client) (Hbar, error) {
//

func (builder TransactionBuilder) SetMaxTransactionFee(maxTransactionFee Hbar) TransactionBuilder {
builder.setTXFee = true
builder.pb.TransactionFee = uint64(maxTransactionFee.AsTinybar())
return builder
}
Expand Down

0 comments on commit 8b65305

Please sign in to comment.