Go: TonUtils
package main
import (
"context"
"fmt"
"log"
"github.com/xssnick/tonutils-go/address"
"github.com/xssnick/tonutils-go/liteclient"
"github.com/xssnick/tonutils-go/ton"
)
func main() {
client := liteclient.NewConnectionPool()
// connect to mainnet lite server
err := client.AddConnection(context.Background(), "IP_FROM_BOT:PORT_FROM_BOT", "BASE64_KEY_FROM_BOT")
if err != nil {
log.Fatalln("connection err: ", err.Error())
return
}
// initialize ton api lite connection wrapper
api := ton.NewAPIClient(client)
// we need fresh block info to run get methods
b, err := api.CurrentMasterchainInfo(context.Background())
if err != nil {
log.Fatalln("get block err:", err.Error())
return
}
/*
We will run such method of contract
cell mult(int a, int b) method_id {
return begin_cell().store_uint(a * b, 64).end_cell();
}
*/
res, err := api.WaitForBlock(b.SeqNo).RunGetMethod(context.Background(), b,
address.MustParseAddr("kQBL2_3lMiyywU17g-or8N7v9hDmPCpttzBPE2isF2GTziky"), "mult", 7, 7)
if err != nil {
log.Fatalln("run get method err:", err.Error())
return
}
val, err := res.MustCell(0).BeginParse().LoadUInt(64)
if err != nil {
println("ERR", err.Error())
return
}
fmt.Printf("parsed result: %d\n", val)
}
Last updated