Previous Topic: Ganache Overview
Connect to Ganache:
We are going use the go-ethereum - ethclient package to make a connection with the ganache server using Golang.
go get github.com/ethereum/go-ethereum/ethclient
In the below example, we are just simply connecting with ganache server and retrieve the chain Id value from the server.
package main
import (
"context"
"fmt"
"log"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("http://127.0.0.1:7545")
if err != nil {
log.Fatal(err)
}
fmt.Println("Connection with ganache successful")
chainId, err := client.ChainID(context.Background())
if err != nil {
log.Fatal(err)
}
fmt.Println("Chain Id :", chainId)
}
Output:
Connection with ganache successful Chain Id : 1337
Retrieving Balance for the accounts:
go get github.com/ethereum/go-ethereum/common
In the below example, we are going to retrieve the balance of address.
package main
import (
"context"
"fmt"
"log"
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/ethclient"
)
func main() {
client, err := ethclient.Dial("http://127.0.0.1:7545")
if err != nil {
log.Fatal(err)
}
fmt.Println("Connection with ganache successful")
blockNumber, err := client.BlockNumber(context.Background())
if err != nil {
log.Fatal(err)
}
address := common.HexToAddress("0xA3A0634b58CB4f800f4f4c1f61ba8d0f361a29Cf")
accountBalance, err := client.BalanceAt(context.Background(), address, big.NewInt(int64(blockNumber)))
if err != nil {
log.Fatal(err)
}
fmt.Println("Account - "+address.String()+" Balance:", accountBalance)
}
Output:
Connection with ganache successful Account - 0xA3A0634b58CB4f800f4f4c1f61ba8d0f361a29Cf Balance: 100000000000000000000


Comments
Post a Comment