For the complete documentation index, see llms.txt. This page is also available as Markdown.

Interacting with Smart Contract on Swan Chain Using Go

Introduction to Swan Chain and Connecting to RPC

  • Exploring Swan Chain: An Overview of Its Blockchain Features

  • Setting up the Go Development Environment for Swan Chain

  • Connecting to a Swan Chain RPC Using Go

  • Fetching Basic Blockchain Data from Swan Chain

1.Setting up the Go Development Environment for Swan Chain

package main
// Shared RPC URL
const rpcURL = "https://mainnet-rpc.swanchain.org" // Replace with your testnet's RPC URL

2.Connecting to a Swan Chain RPC Using Go

func TestConnectToTestnet(t *testing.T) {
	ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
	defer cancel()

	// Assuming rpcURL is defined as a constant or variable that contains your Ethereum testnet RPC URL
	client, err := ethclient.DialContext(ctx, rpcURL)
	if err != nil {
		t.Fatalf("Failed to connect to the testnet: %v", err)
	}
	defer client.Close()

	// Fetching the network ID
	networkID, err := client.NetworkID(ctx)
	if err != nil {
		t.Fatalf("Failed to get network ID: %v", err)
	}

	// Fetching the latest block number
	blockNumber, err := client.BlockNumber(ctx)
	if err != nil {
		t.Fatalf("Failed to get the latest block number: %v", err)
	}

	t.Logf("Network ID: %v", networkID)
	t.Logf("Latest block number: %d", blockNumber)
}

3.Managing Wallets and Checking Balances

  • Creating and Managing Swan Chain Wallets with Go

  • Understanding and Checking Wallet Balances on Swan Chain

  • Handling Swan Chain's Native Cryptocurrency Units

Output:

=== RUN TestGetAccountBalance ethclient_test.go:64: Balance of account [0xA41c36BCd65bDbFB62FE93E3b7a28d290E63C1F7]: 0.045930 Ether

--- PASS: TestGetAccountBalance (0.21s)

4.Writing and Reading from a Smart Contract

  • Setting up Go for Smart Contract Interaction

  • Writing Data to a Smart Contract on Swan Chain

  • Reading and Interpreting Data from a Smart Contract

Source code can be found here:

Last updated