BlockNumber
Gets the number (height) of the most recently accepted block on Starknet. The block number (also called block height) starts from 0 (genesis block) and increments with each new block.
Method Signature
func (provider *Provider) BlockNumber(ctx context.Context) (uint64, error)Source: block.go
Parameters
ctx(context.Context): Context for request cancellation and timeout
Returns
uint64: The latest block number (height)error: Error if the request fails
Usage Example
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/NethermindEth/starknet.go/rpc"
"github.com/joho/godotenv"
)
func main() {
// Load environment variables from .env file
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
// Get RPC URL from environment variable
rpcURL := os.Getenv("STARKNET_RPC_URL")
if rpcURL == "" {
log.Fatal("STARKNET_RPC_URL not found in .env file")
}
// Initialize provider
provider, err := rpc.NewProvider(context.Background(), rpcURL)
if err != nil {
log.Fatal(err)
}
// Get latest block number
blockNumber, err := provider.BlockNumber(context.Background())
if err != nil {
log.Fatal(err)
}
fmt.Printf("Latest block number: %d\n", blockNumber)
}Error Handling
blockNumber, err := provider.BlockNumber(ctx)
if err != nil {
switch {
case errors.Is(err, rpc.ErrNoBlocks):
log.Println("There are no blocks")
default:
log.Printf("RPC error: %v", err)
}
return
}
fmt.Printf("Block number: %d\n", blockNumber)
