aepp-sdk-go
aepp-sdk-go copied to clipboard
Golang SDK to interact with the Æternity blockchain
aepp-sdk-go
golang sdk for aeternity blockchain
Setup
go get github.com/aeternity/aepp-sdk-go/v9
If your project uses Go Modules (go.mod, go.sum files), you must include the major version in the import line like this:
import github.com/aepp-sdk-go/v9/aeternity
If your project won't use Go Modules (no go.mod, go.sum files), ensure your $GOPATH/src/github.com/aeternity/aepp-sdk-go is on the correct branch. Then your import should be:
import github.com/aepp-sdk-go/aeternity
Contextual Knowledge
Every transaction submitted to a node needs a nonce (to ensure its uniqueness), a TTL (how long, in blocks, should the transaction stay in the mempool). Signing a transaction includes the NetworkID as well, so a transaction meant for ae_uat (testnet) won't make it onto ae_mainnet (mainnet). The SDK communicates with the node and/or Sophia compiler over a HTTP REST API to find the current account nonce/current height/broadcast the transaction etc.
In short, creating a transaction always follows this pattern:
- Find the account nonce, get the transaction TTL (in blocks)
- Make the transaction
- Sign the transaction with a given network ID
- Broadcast it to a node of your choosing
Where to find examples
All examples are in godoc.org, except the integration tests.
General workflow code examples are in package aeternity, or check out the integration tests in package integration_test
Account, HD wallet management in package account
etc.