✏️
go-conflux-sdk
  • README
  • Quickstart
  • Getting Started
    • Run a Node locally
    • Interacting with a Node
    • Deploy and Interact with Smart Contracts
    • Subscription
  • Smart Contracts
    • Smart Contract Overview
    • Getting Started with Solidity
    • Compiling Solidity source code
    • Interacting with Smart Contracts
    • Application Binary Interface
    • Contracts Supported
  • Transactions
    • Conflux Transactions
    • Obtaining CFX
    • Gas & Storage Collateral
    • Account Manager
    • Transfer CFX
    • Transaction Nonce
    • Batch Call snd Send Transactions
  • Other
    • Call/BatchCall RPC Hook
    • Conflux Addreess
  • Conflux-ABIGEN
  • ChangeLog
  • References
Powered by GitBook
On this page
  • Conflux Golang API
  • Install go-conflux-sdk
  • Use go-conflux-sdk

Was this helpful?

README

NextQuickstart

Last updated 9 months ago

Was this helpful?

Conflux Golang API

The Conflux Golang API allows any Golang client to interact with a local or remote Conflux node based on JSON-RPC 2.0 protocol. With Conflux Golang API, users can easily manage accounts, send transactions, deploy smart contracts, and query blockchain information.

Please read the for more.

And read the API documentation from .

Install go-conflux-sdk

go get github.com/Conflux-Chain/go-conflux-sdk

You can also add the Conflux Golang API into the vendor folder.

govendor fetch github.com/Conflux-Chain/go-conflux-sdk

Use go-conflux-sdk

Create Client

usd sdk.NewClient to creat a client for interact with conflux-rust node, the sdk.ClientOption is for setting Account Manager keystore folder path and retry options.

client, err := sdk.NewClient("https://test.confluxrpc.com", sdk.ClientOption{
    KeystorePath: "../context/keystore",
})

Query RPC

epoch, err := client.GetEpochNumber()

Send Transaction

chainID, err := client.GetNetworkID()
if err!=nil {
    panic(err)
}

from, err :=client.AccountManger().GetDefault()
if err!=nil {
    panic(err)
}

utx, err := client.CreateUnsignedTransaction(*from, cfxaddress.MustNewFromHex("0x1cad0b19bb29d4674531d6f115237e16afce377d", chainID), types.NewBigInt(1), nil)
if err!=nil {
    panic(err)
}

txhash, err := client.SendTransaction(utx)

Interact With Smart Contract

The most simple way to interact with contract is generator contract binding by conflux-abigen, see details from

here
documentation
here