Skip to content

BlockNumber

Gets the number (height) of the most recent block.

Method Signature

func (provider *Provider) BlockNumber(ctx context.Context) (uint64, error)

Parameters

  • ctx - Context for request cancellation and timeout

Returns

  • uint64 - The latest block number
  • error - Error if the request fails

Usage Example

package main
 
import (
    "context"
    "fmt"
    "log"
    "os"
 
    "github.com/NethermindEth/starknet.go/rpc"
)
 
func main() {
    // Get RPC URL from environment variable
    rpcURL := os.Getenv("STARKNET_RPC_URL")
    if rpcURL == "" {
        log.Fatal("STARKNET_RPC_URL not set in environment")
    }
 
    ctx := context.Background()
    client, err := rpc.NewProvider(ctx, rpcURL)
    if err != nil {
        log.Fatal("Failed to create client:", err)
    }
 
    // Get latest block number
    blockNumber, err := client.BlockNumber(ctx)
    if err != nil {
        log.Fatal("Failed to get block number:", err)
    }
 
    fmt.Printf("Block Number: %d\n", blockNumber)
}

Expected Output

Block Number: 2839094

Error Handling

Common errors include network timeouts and RPC endpoint unavailability. Always check the error before using the returned value.

blockNumber, err := client.BlockNumber(ctx)
if err != nil {
    log.Printf("Error getting block number: %v", err)
    return
}
// Safe to use blockNumber