TONLIB Golang library for accessing Telegram Open Network with liteclient protocol, which is based itself on tdlib library. Warning: this repository is under active development, not ready for production use
$ go get -u github.com/mercuryoio/tonlib-go
import "github.com/mercuryoio/tonlib-go"
- createNewKey
- deleteKey
- exportKey
- exportPemKey
- exportEncryptedKey
- importKey
- importPemKey
- importEncryptedKey
- changeLocalPassword
- unpackAccountAddress
- packAccountAddress
- wallet.init
- wallet.getAccountAddress
- [-] wallet.getAccountState
- [-] wallet.sendGrams
- raw.sendMessage
- raw.getTransactions
- raw.getAccountState
- generic.sendGrams
- getLogStream
- sync
- CreateAndSendMessage
- generic.createSendGramsQuery
- query.send
- query.forge
- query.estimateFees
- query.getInfo
- smc.load
- smc.getCode
- smc.getData
- smc.getState
- smc.runGetMethod
Create new client
options, err := tonlib.ParseConfigFile("path/to/config.json")
if err != nil {
panic(err)
}
// make req
req := tonlib.TonInitRequest{
"init",
*options,
}
tonClient, err = tonlib.NewClient(
&req, // init request
tonlib.Config{}, // config
10, // timeout in seconds for each (currently only QueryEstimateFees) tonlib.Client`s public method
)
if err != nil {
panic(err)
}
defer cln.Destroy()
// prepare data
loc := SecureBytes("loc_pass")
mem := SecureBytes("mem_pass")
seed := SecureBytes("")
// create new key
pKey, err := cln.CreateNewKey(&loc, &mem, &seed)
if err != nil {
panic(err)
}
addrr, err := cln.WalletGetAccountAddress(tonlib.NewWalletInitialAccountState("YourPublicKey"))
if err != nil {
panic(err)
}
To install sample cli application:
$ go get -u github.com/mercuryoio/tonlib-go/cmd/tongo
To run sample cli app your have to set LD_LIBRARY_PATH:
For linux export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path2repository>/lib/linux
For MacOS export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path2repository>/lib/darwin
If you need to update structures and add new methods based on a fresh release of TON`s client you can do it by using code generation command. In order to perform such operation - run the command bellow and provide path of *.tl file to the running command as in the example bellow.
$ go run github.com/mercuryoio/tonlib-go/cmd/tlgenerator /path/to/repos/ton/tl/generate/scheme/tonlib_api.tl
PRs are welcome!