Utils
The utils package provides essential utility functions for Starknet development, including data conversions, transaction builders, cryptographic operations, and unit conversions.
Overview
The utils package is designed to simplify common operations when working with Starknet, offering utilities for:
- Converting between different data types (hex, felt, big.Int)
- Building and managing transactions
- Cryptographic operations and hashing
- Currency and unit conversions
- Universal Deployer Contract (UDC) operations
Main Categories
Conversion Functions
Functions for converting between different data representations:
- Hex to Felt and vice versa
- Big.Int to Felt conversions
- String to ByteArray conversions
- U256 conversions
See Conversion Functions for detailed documentation.
Transaction Builders
Helper functions for building Starknet transactions:
- Invoke transactions
- Declare transactions
- Deploy account transactions
- UDC deployments
- Fee estimation utilities
See Transaction Builders for detailed documentation.
Cryptographic Utilities
Cryptographic and hashing functions:
- Function selector generation
- Keccak256 hashing
- Fact computation
- Bit masking operations
See Cryptographic Utilities for detailed documentation.
Unit Conversions
Currency and unit conversion utilities:
- ETH to Wei conversions
- STRK to FRI conversions
See Unit Conversions for detailed documentation.
Types
Type definitions and structures used throughout the utils package:
- TxnOptions for transaction configuration
- UDCOptions for Universal Deployer Contract
- KeccakState for hashing operations
See Types for detailed documentation.
Quick Example
package main
import (
"fmt"
"log"
"github.com/NethermindEth/starknet.go/utils"
)
func main() {
// Convert hex string to felt
contractAddress, err := utils.HexToFelt("0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7")
if err != nil {
log.Fatal("Failed to convert hex to felt:", err)
}
// Get selector from function name
selector := utils.GetSelectorFromNameFelt("transfer")
// Convert ETH to Wei
weiAmount := utils.ETHToWei(1.5)
fmt.Printf("Contract Address: %s\n", contractAddress)
fmt.Printf("Transfer Selector: %s\n", selector)
fmt.Printf("Wei Amount: %s\n", weiAmount)
}Package Reference
For complete API reference, see the pkg.go.dev documentation.

