Skip to main content

Golang SDK

Usage Examples

This section includes some examples of how to use Golang SDK:

  • Sending a transfer
  • Installing a contract via a Deploy

Generating Account Keys

    import (
"fmt"
"github.com/casper-ecosystem/casper-golang-sdk/keypair"
"github.com/casper-ecosystem/casper-golang-sdk/keypair/ed25519"
"github.com/casper-ecosystem/casper-golang-sdk/sdk"
"math/big"
"time"
)
    func main() {
nodeRpc := "http://159.65.118.250:7777"
nodeEvent := "http://159.65.118.250:9999"
privKeyPath := "/path/to/secret_key.pem"

rpcClient, _ := sdk.NewRpcClient(nodeRpc)
eventClient := sdk.NewEventService(nodeEvent)

pair, _ := ed25519.ParseKeyFiles(privKeyPath)
target, _ := keypair.FromPublicKeyHex("0172a54c123b336fb1d386bbdff450623d1b5da904f5e2523b3e347b6d7573ae80")

deployParams := sdk.DeployParams{
Account: pair.PublicKey(),
Timestamp: time.Now(),
TTL: 30 * time.Minute,
GasPrice: 1,
ChainName: "casper-test",
}
payment := sdk.StandardPayment(big.NewInt(100000000))
session := sdk.NewTransfer(big.NewInt(25000000000), target, uint64(5589324))

deploy, _ := sdk.MakeDeploy(deployParams, payment, session)
_ = deploy.Sign(pair)
putDeploy, _ := rpcClient.PutDeploy(deploy)

processedDeploy, _ := eventClient.AwaitDeploy(putDeploy.DeployHash)

fmt.Printf("%+v\n", processedDeploy)
}

Deploying a contract

    import (
"fmt"
"github.com/casper-ecosystem/casper-golang-sdk/keypair"
"github.com/casper-ecosystem/casper-golang-sdk/keypair/ed25519"
"github.com/casper-ecosystem/casper-golang-sdk/sdk"
"math/big"
"time"
)
    func main() {
nodeRpc := "http://159.65.118.250:7777"
nodeEvent := "http://159.65.118.250:9999"
privKeyPath := "/path/to/secret_key.pem"
modulePath := "/path/to/contract.wasm"

rpcClient, _ := sdk.NewRpcClient(nodeRpc)
eventClient := sdk.NewEventService(nodeEvent)

pair, _ := ed25519.ParseKeyFiles(privKeyPath)
module, _ := ioutil.ReadFile(modulePath)

deployParams := sdk.DeployParams{
Account: pair.PublicKey(),
Timestamp: time.Now(),
TTL: 30 * time.Minute,
GasPrice: 1,
ChainName: "casper-test",
}
payment := sdk.StandardPayment(big.NewInt(100000000))
session := sdk.NewModuleBytes(module, nil)

deploy, _ := sdk.MakeDeploy(deployParams, payment, session)
_ = deploy.Sign(pair)
putDeploy, _ := rpcClient.PutDeploy(deploy)

processedDeploy, _ := eventClient.AwaitDeploy(putDeploy.DeployHash)

fmt.Printf("%+v\n", processedDeploy)
}