Dragonchain Go SDK

A self-contained Go SDK for interacting with Dragonchain nodes.

Installation

go get git.dragonchain.com/dragonchain/dragonchain-prime-sdk-go

Usage

package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "git.dragonchain.com/dragonchain/dragonchain-prime-sdk-go"
    "git.dragonchain.com/dragonchain/dragonchain-prime-sdk-go/models"
)

func main() {
    // Initialize the SDK
    client := sdk.NewDragonchainSDK(
        "your-public-id",
        "your-auth-key-id",
        "your-auth-key",
        "https://your-dragonchain-endpoint.com",
    )

    // Create a context with timeout
    ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
    defer cancel()

    // Check system health
    if err := client.System.Health(ctx); err != nil {
        log.Fatal("Health check failed:", err)
    }

    // Get system status
    status, err := client.System.Status(ctx)
    if err != nil {
        log.Fatal("Failed to get status:", err)
    }
    fmt.Printf("Chain ID: %s, Level: %d\n", status.ID, status.Level)

    // Create a transaction
    txn := &models.TransactionCreateRequest{
        TxnType: "my-transaction-type",
        Payload: map[string]interface{}{
            "message": "Hello Dragonchain",
        },
        Tag: "example-tag",
    }

    resp, err := client.Transaction.Create(ctx, txn)
    if err != nil {
        log.Fatal("Failed to create transaction:", err)
    }
    fmt.Printf("Created transaction: %s\n", resp.TransactionID)
}

Available Endpoints

All API methods accept a context.Context as their first parameter for timeout and cancellation control.

System

  • Health(ctx) - Check system health
  • Status(ctx) - Get system status

Transaction

  • Create(ctx, req) - Create a new transaction
  • CreateBulk(ctx, req) - Create multiple transactions
  • Get(ctx, transactionID) - Get transaction by ID
  • List(ctx) - List all transactions

Transaction Type

  • Create(ctx, req) - Create a new transaction type
  • Get(ctx, txnType) - Get transaction type by name
  • List(ctx) - List all transaction types
  • Delete(ctx, txnType) - Delete a transaction type

Smart Contract

  • Create(ctx, req) - Create a new smart contract
  • Get(ctx, contractID) - Get smart contract by ID
  • List(ctx) - List all smart contracts
  • Update(ctx, contractID, req) - Update a smart contract
  • Upload(ctx, contractID, filepath) - Upload smart contract code
  • Delete(ctx, contractID) - Delete a smart contract

Block

  • Get(ctx, blockID) - Get block by ID

Authentication

The SDK uses HMAC-SHA256 authentication. You need to provide:

  • publicID - Your Dragonchain public ID
  • authKeyID - Your authentication key ID
  • authKey - Your authentication key
  • baseURL - The base URL of your Dragonchain node (e.g., "https://chains.dragonchain.com")
Description
No description provided
Readme Apache-2.0 52 KiB
Languages
Go 100%