TransactionHashDeclare
Calculates the transaction hash for a declare transaction.
Method Signature
func (account *Account) TransactionHashDeclare(tx rpc.DeclareTxnType) (*felt.Felt, error)Parameters
tx- Declare transaction (V1, V2, V3, or BroadcastV3)
Returns
*felt.Felt- Transaction hasherror- Error if hash calculation fails
Usage Example
Prerequisites: This example assumes you have an account instance already created. To learn how to create an account, see NewAccount.
package main
import (
"fmt"
"log"
"github.com/NethermindEth/juno/core/felt"
"github.com/NethermindEth/starknet.go/account"
"github.com/NethermindEth/starknet.go/rpc"
)
func main() {
// Assuming 'acc' is your Account instance
var acc *account.Account
// acc = ... (already initialized)
// Create a declare transaction V2
accountAddress, _ := new(felt.Felt).SetString("0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7")
classHash, _ := new(felt.Felt).SetString("0x01f372292df22d28f2d4c5798734421afe9596e6a566b8bc9b7b50e26521b855")
compiledClassHash, _ := new(felt.Felt).SetString("0x017f655f7a639a49ea1d8d56172e99cff8b51f4123b733f0378dfd6378a2cd37")
declareTx := rpc.DeclareTxnV2{
Type: rpc.TransactionTypeDeclare,
SenderAddress: accountAddress,
CompiledClassHash: compiledClassHash,
ClassHash: classHash,
MaxFee: new(felt.Felt).SetUint64(1000000000000),
Version: rpc.TransactionV2,
Signature: []*felt.Felt{},
Nonce: new(felt.Felt).SetUint64(0),
}
// Calculate transaction hash
txHash, err := acc.TransactionHashDeclare(declareTx)
if err != nil {
log.Fatalf("Error calculating hash: %v", err)
}
fmt.Printf("Transaction hash: %s\n", txHash)
}Expected Output
Transaction hash: 0x6270e552411fcb00d24f7a32ef2d3ad77e54373df700629031885b017069121Description
TransactionHashDeclare calculates the hash for declare transactions. Note that V0 transactions are not supported.
Error Handling
hash, err := acc.TransactionHashDeclare(tx)
if err != nil {
if err == account.ErrTxnVersionUnSupported {
// Handle unsupported version (V0)
}
return err
}Related Methods
- SignDeclareTransaction - Uses this for signing
- TransactionHashInvoke - For invoke transactions
- TransactionHashDeployAccount - For deploy account transactions

