Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -118,12 +118,12 @@ go-example: ## Run a specific Go example. Usage: make go-example example
go-example:
@printf "\nRunning Go example \"$(word 2,$(MAKECMDGOALS))\"\n"
@cd bindings/go/examples; \
LD_LIBRARY_PATH="../../../target/release" CGO_LDFLAGS="-liota_sdk_ffi -L../../../target/release" go run $(word 2,$(MAKECMDGOALS)).go || exit $$?; \
LD_LIBRARY_PATH="../../../target/release" CGO_LDFLAGS="-liota_sdk_ffi -L../../../target/release" go run $(word 2,$(MAKECMDGOALS))/main.go || exit $$?; \
cd -

.PHONY: go-examples
go-examples: ## Run all Go bindings examples
@for example in $$(find bindings/go/examples -name "*.go" -exec basename {} .go \;); do \
@for example in $$(find bindings/go/examples/* -type d -exec basename {} \;); do \
$(MAKE) go-example "$$example" || exit $$?; \
done

Expand Down
12 changes: 12 additions & 0 deletions bindings/go/common/common.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package common

import (
sdk "bindings/iota_sdk_ffi"
)

func IsClientErr(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,16 @@ import (
"fmt"
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

chainID, err := client.ChainId()
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get chain ID: %v", err)
}
fmt.Println("Chain ID:", chainID)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,16 @@ import (
"fmt"
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

// Get current epoch
currentEpoch, err := client.Epoch(nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get current epoch: %v", err)
}
if currentEpoch == nil {
Expand All @@ -35,7 +29,7 @@ func main() {
// Get previous epoch
previousEpochId := currentEpoch.EpochId - 1
previousEpoch, err := client.Epoch(&previousEpochId)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get previous epoch: %v", err)
}
if previousEpoch == nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,10 @@ import (
"fmt"
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

Expand All @@ -26,7 +20,7 @@ func main() {
}

coins, err := client.Coins(address, nil, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get coins: %v", err)
}

Expand All @@ -35,7 +29,7 @@ func main() {
}

balance, err := client.Balance(address, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get balance: %v", err)
}
fmt.Printf("Total Balance = %d\n", *balance)
Expand All @@ -47,7 +41,7 @@ func main() {
}
txFilter := sdk.TransactionsFilter{
AtCheckpoint: &atCheckpoint,
InputObject: &inputObject,
InputObject: &inputObject,
}
eventFilter := sdk.EventFilter{
Sender: &address,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,10 @@ import (
"fmt"
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

Expand All @@ -27,7 +21,7 @@ func main() {
}

objOpt, err := client.Object(objectID, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get object contents: %v", err)
}
if objOpt == nil {
Expand All @@ -36,7 +30,7 @@ func main() {
obj := *objOpt

objType := "Package"
if obj.ObjectType().IsStruct() {
if obj.ObjectType().IsStruct() {
objType = obj.ObjectType().AsStruct().String()
}

Expand All @@ -50,11 +44,11 @@ func main() {
}

fmt.Println("Object ID:", obj.ObjectId().ToHex())
fmt.Println("Version:", obj.Version())
fmt.Println("Previous transaction:", obj.PreviousTransaction().ToBase58())
fmt.Println("Owner:", objOwner)
fmt.Println("Storage rebate:", obj.StorageRebate())
fmt.Println("Type:", objType)
fmt.Println("BCS bytes:", hex.EncodeToString(obj.AsStruct().Contents))
fmt.Println("Version:", obj.Version())
fmt.Println("Previous transaction:", obj.PreviousTransaction().ToBase58())
fmt.Println("Owner:", objOwner)
fmt.Println("Storage rebate:", obj.StorageRebate())
fmt.Println("Type:", objType)
fmt.Println("BCS bytes:", hex.EncodeToString(obj.AsStruct().Contents))

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,12 @@
package main

import (
sdk "bindings/iota_sdk_ffi"
"fmt"
"log"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}
"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func main() {
client := sdk.GraphQlClientNewDevnet()
Expand All @@ -23,17 +18,17 @@ func main() {
if err != nil {
log.Fatalf("Failed to parse address: %v", err)
}

packageOpt, err := client.Package(packageAddress, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get package: %v", err)
}
if packageOpt == nil {
log.Fatalf("Missing package: %v", err)
}
pkg := *packageOpt

for moduleId, _ := range pkg.Modules() {
for moduleId := range pkg.Modules() {
moduleOpt, err := client.NormalizedMoveModule(
packageAddress,
moduleId.AsStr(),
Expand All @@ -43,7 +38,7 @@ func main() {
nil,
nil,
)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get module: %v", err)
}
if moduleOpt == nil {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,10 @@ package main
import (
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

Expand All @@ -25,7 +19,7 @@ func main() {
}

validators, err := client.ActiveValidators(nil, &sdk.PaginationFilter{Direction: sdk.DirectionForward})
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get active validators: %v", err)
}

Expand All @@ -47,7 +41,7 @@ func main() {
log.Fatalf("Failed to parse object ID: %v", err)
}
coin, err := client.Object(coinObjId, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get coin: %v", err)
}

Expand All @@ -56,7 +50,7 @@ func main() {
log.Fatalf("Failed to parse object ID: %v", err)
}
gasCoin, err := client.Object(gasCoinObjId, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get gas coin: %v", err)
}

Expand Down Expand Up @@ -97,7 +91,7 @@ func main() {
builder.SetSender(myAddress)
builder.SetGasBudget(50000000)
gasPrice, err := client.ReferenceGasPrice(nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get gas price: %v", err)
}
builder.SetGasPrice(*gasPrice)
Expand All @@ -109,7 +103,7 @@ func main() {
}

res, err := client.DryRunTx(txn, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get gas price: %v", err)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,10 @@ import (
"fmt"
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

Expand All @@ -26,7 +20,7 @@ func main() {
}

transactions, err := client.Transactions(&sdk.TransactionsFilter{InputObject: &sharedObjId}, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get transactions: %v", err)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,16 @@ package main
import (
"log"

"bindings/common"
sdk "bindings/iota_sdk_ffi"
)

func isNilError(err error) bool {
if sdkErr, ok := err.(*sdk.SdkFfiError); ok {
return sdkErr == nil
}
return false
}

func main() {
client := sdk.GraphQlClientNewDevnet()

stakedIotaType := "0x3::staking_pool::StakedIota"
stakedIotas, err := client.Objects(&sdk.ObjectFilter{TypeTag: &stakedIotaType}, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get staked iota: %v", err)
}
if len(stakedIotas.Data) == 0 {
Expand All @@ -31,7 +25,7 @@ func main() {

gasCoinType := sdk.StructTagGasCoin().String()
gasCoins, err := client.Objects(&sdk.ObjectFilter{TypeTag: &gasCoinType, Owner: stakedIota.Owner().AsAddressOpt()}, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get gas coin: %v", err)
}
if len(gasCoins.Data) == 0 {
Expand Down Expand Up @@ -76,7 +70,7 @@ func main() {
builder.SetSender(gasCoin.Owner().AsAddress())
builder.SetGasBudget(50000000)
gasPrice, err := client.ReferenceGasPrice(nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get gas price: %v", err)
}
builder.SetGasPrice(*gasPrice)
Expand All @@ -88,7 +82,7 @@ func main() {
}

res, err := client.DryRunTx(txn, nil)
if !isNilError(err) {
if !common.IsClientErr(err) {
log.Fatalf("Failed to get gas price: %v", err)
}

Expand Down