PedersenArray
Computes the Pedersen hash of multiple field elements.
Function Signature
func PedersenArray(felts ...*felt.Felt) *felt.FeltParameters
felts(...*felt.Felt): Variadic number of field elements to hash
Returns
*felt.Felt: The Pedersen hash of all inputs
Usage Example
package main
import (
"fmt"
"log"
"github.com/NethermindEth/juno/core/felt"
"github.com/NethermindEth/starknet.go/curve"
)
func main() {
// Create array of felt values
felt1 := new(felt.Felt).SetUint64(1)
felt2 := new(felt.Felt).SetUint64(2)
felt3 := new(felt.Felt).SetUint64(3)
felt4 := new(felt.Felt).SetUint64(4)
// Compute Pedersen hash of array
hash := curve.PedersenArray(felt1, felt2, felt3, felt4)
if hash == nil {
log.Fatal("Failed to compute PedersenArray hash")
}
fmt.Println("PedersenArray Hash:")
fmt.Printf(" Input: [%s, %s, %s, %s]\n", felt1.String(), felt2.String(), felt3.String(), felt4.String())
fmt.Printf(" Hash: %s\n", hash.String())
}Expected Output
PedersenArray Hash:
Input: [0x1, 0x2, 0x3, 0x4]
Hash: 0x66bd4335902683054d08a0572747ea78ebd9e531536fb43125424ca9f902084Use Cases
1. Hash Transaction Data
// Hash multiple transaction fields
nonce := new(felt.Felt).SetUint64(1)
amount := new(felt.Felt).SetString("0x1000")
recipient := new(felt.Felt).SetString("0xabc...")
txHash := curve.PedersenArray(nonce, amount, recipient)2. Hash Calldata
// Hash array of calldata parameters
calldata := []*felt.Felt{
new(felt.Felt).SetString("0x1"),
new(felt.Felt).SetString("0x2"),
new(felt.Felt).SetString("0x3"),
}
calldataHash := curve.PedersenArray(calldata...)Related Functions
- Pedersen - Hash two elements
- PoseidonArray - Alternative array hash
- ComputeHashOnElements - Hash with length prefix

