From 2049181197c947e825adc684d1f6dd84d5c5aca0 Mon Sep 17 00:00:00 2001 From: vlady-kotsev Date: Wed, 14 Aug 2024 17:35:21 +0300 Subject: [PATCH] Add burn tnx type support, fix waiting for various tnx types --- scripts/common/sign/sign-transaction.go | 13 +++++++++++- scripts/common/submit/submit-transaction.go | 22 +++++++++++++++++---- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/scripts/common/sign/sign-transaction.go b/scripts/common/sign/sign-transaction.go index db84e0b1b..c7ad01871 100644 --- a/scripts/common/sign/sign-transaction.go +++ b/scripts/common/sign/sign-transaction.go @@ -20,8 +20,9 @@ import ( "encoding/hex" "flag" "fmt" - "github.com/hashgraph/hedera-sdk-go/v2" "strings" + + "github.com/hashgraph/hedera-sdk-go/v2" ) func main() { @@ -136,6 +137,16 @@ func main() { panic(err) } fmt.Println(hex.EncodeToString(bytes)) + case hedera.TokenBurnTransaction: + ref := &tx + for _, key := range keys { + ref = ref.Sign(key) + } + bytes, err := ref.ToBytes() + if err != nil { + panic(err) + } + fmt.Println(hex.EncodeToString(bytes)) default: panic("invalid tx type provided") } diff --git a/scripts/common/submit/submit-transaction.go b/scripts/common/submit/submit-transaction.go index 29127fccf..6b9310b94 100644 --- a/scripts/common/submit/submit-transaction.go +++ b/scripts/common/submit/submit-transaction.go @@ -26,6 +26,10 @@ import ( "github.com/limechain/hedera-eth-bridge-validator/scripts/client" ) +type Transactioner interface { + GetTransactionID() hedera.TransactionID +} + func main() { privateKey := flag.String("privateKey", "0x0", "Hedera Private Key") accountID := flag.String("accountID", "0.0", "Hedera Account ID") @@ -44,29 +48,40 @@ func main() { if err != nil { panic(fmt.Sprintf("failed to parse transaction. err [%s]", err)) } - waitForTransactionStart(deserialized) + var transactionResponse hedera.TransactionResponse switch tx := deserialized.(type) { case hedera.TransferTransaction: + waitForTransactionStart(&tx) transactionResponse, err = tx.Execute(client) case hedera.TopicUpdateTransaction: + waitForTransactionStart(&tx) transactionResponse, err = tx.Execute(client) case hedera.TokenUpdateTransaction: + waitForTransactionStart(&tx) transactionResponse, err = tx.Execute(client) case hedera.AccountUpdateTransaction: + waitForTransactionStart(&tx) transactionResponse, err = tx.Execute(client) case hedera.TokenCreateTransaction: + waitForTransactionStart(&tx) fmt.Println(tx) transactionResponse, err = tx.Execute(client) case hedera.TokenMintTransaction: + waitForTransactionStart(&tx) fmt.Println(tx) transactionResponse, err = tx.Execute(client) case hedera.TokenAssociateTransaction: + waitForTransactionStart(&tx) fmt.Println(tx) transactionResponse, err = tx.Execute(client) case hedera.TopicMessageSubmitTransaction: + waitForTransactionStart(&tx) fmt.Println(tx) transactionResponse, err = tx.Execute(client) + case hedera.TokenBurnTransaction: + waitForTransactionStart(&tx) + transactionResponse, err = tx.Execute(client) default: panic("invalid tx type provided") } @@ -95,9 +110,8 @@ func validateParams(transaction *string, privateKey *string, accountID *string) } } -func waitForTransactionStart(deserializedTx interface{}) { - tx := deserializedTx.(hedera.TransferTransaction) - validStart := tx.Transaction.GetTransactionID().ValidStart +func waitForTransactionStart(tx Transactioner) { + validStart := tx.GetTransactionID().ValidStart waitTime := time.Until(*validStart) fmt.Printf("Transaction will be excuted after: %v\n", waitTime) time.Sleep(waitTime)