package main
import (
"log"
"os"
"github.com/bronlabs/bron-sdk-go/sdk"
"github.com/bronlabs/bron-sdk-go/sdk/types"
"github.com/google/uuid"
"github.com/joho/godotenv"
)
func main() {
godotenv.Load()
client := sdk.NewBronClient(bron.BronClientConfig{
APIKey: os.Getenv("BRON_API_KEY"),
WorkspaceID: os.Getenv("BRON_WORKSPACE_ID"),
})
// Get workspace
workspace, err := client.Workspaces.GetWorkspaceById()
if err != nil {
log.Fatal(err)
}
log.Printf("Workspace: %s", workspace.Name)
// Get accounts
accounts, err := client.Accounts.GetAccounts(nil)
if err != nil {
log.Fatal(err)
}
// Get balances for first account
if len(accounts.Accounts) > 0 {
account := accounts.Accounts[0]
accountIds := []string{account.AccountId}
balances, err := client.Balances.GetBalances(&types.BalancesQuery{
AccountIds: &accountIds,
})
if err != nil {
log.Fatal(err)
}
for _, balance := range balances.Balances {
log.Printf("Balance %s (%s): %s", balance.AssetId, balance.Symbol, balance.TotalBalance)
}
// Create transaction
tx, err := client.Transactions.CreateTransaction(types.CreateTransaction{
AccountId: account.AccountId,
ExternalId: uuid.New().String(),
TransactionType: "withdrawal",
Params: map[string]interface{}{
"amount": "73.042",
"assetId": "2",
"networkId": "ETH",
"toAddress": "0x428CdE5631142916F295d7bb2DA9d1b5f49F0eF9",
},
})
if err != nil {
log.Fatal(err)
}
log.Printf("Created transaction '%s' (%s): sent %s", tx.TransactionId, tx.Status, tx.Params["amount"])
}
}