Skip to main content

Connect to Ganache using Golang

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

Popular posts from this blog

Why Go Language?

Go Language: Open Source Programming language Statically Typed language Makes sharing code easy Similar to C programming language Organization that use Go includes Google, Docker, Kubernetes, Cloudflare, Dropbox, Netflix & Uber. Why Go language? C like Syntax Compiles to native code i.e. one executable file is need to run the whole program. Garbage collection Concurrency built-in language Compatibility promise → Once a program written to the go one specification will continue to compile and run correctly, over the lifetime of that specification. Why Go Compiler is fast? Simple and Minimalistic (20 keywords only) Does not allows unused dependencies No circular dependencies Does not use header files Solving Modern problems with Go: Go has concise syntax with few keywords to remember. Languages like C or C++ offers fast execution, whereas languages like Ruby or Python offers rapid application development, Go bridges these computing worlds and offers development fast. Modern Computers ...

Crypto RSA Signing and Verification in Golang

  RSA [Rivest-shamir-Adleman] encryption is one of the most widely used algorithms for secure data encryption. Signing and Verification:   RSA works by generating form of key pair of private and public keys. For Signing:  we need to provide some inputs,  A random reader used for generating random bits because if we provide the same input, it doesn't give the same output as last time. Before signing, we need to hash our message. we also need to provide which hash function is used for message hashing. Finally, private key.  For Verifying: we need to provide some inputs,  hash of our message. which hash function is used for message hashing while signing. Finally, public key and signature what we obtained while signing.  Example: package main import ( "crypto" "crypto/rand" "crypto/rsa" "crypto/sha256" "encoding/hex" "fmt" "log" ) func main() { privatekey, publickey := GenerateRsaKeys() message := ...

Smart contract with remix IDE and Ganache

  Previous Topic:  Simple transaction with ganache using Golang In the Previous topic, we learned how to do transaction with ganache using Golang. Now, we will learn what is smart contract and how to write smart contract and how to deploy it and how to call the contract using remix. To learn what is smart contract, we already write a blog about that. Please feel free to take a look.  Ethereum Smart contract . For beginners, use the Remix IDE for learning smart contract and understand how it works. Then we will use Truffle framework. REMIX:  Remix IDE Link Remix will provide a default workspace for developing smart contract. Now you can able to create a new file and start writing contracts, compile it with solidity compiler and deploy that contract and test the contracts. Simple Smart Contract: First create new file called store.sol  and start writing a simple contract. Contract Functionality: Store a record using SetRecord method. View the latest record . [reco...