tongo

package module
v1.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2023 License: MIT Imports: 15 Imported by: 63

README

tongo


Go implementation of libraries for TON blockchain.

Library structure

  1. ADNL - low level adnl protocol implementation
  2. Lite client - interaction with TON node as lite client
  3. BOC - cells and bag-of-cells methods and primitives
  4. TL - interaction with binary data described by TL (Type Language) schemas
  5. TLB - interaction with binary data (in Cells) described by TL-B (Typed Language - Binary) schemas
  6. TVM - interaction with TVM (TON Virtual Machine)
  7. Wallet - tools to simplify the deployment and interaction with the wallet smart contract
  8. Contract - tools to simplify the interaction with the smart contracts like Jettons and NFT
  9. Examples

Dependencies

Libraries

For TVM executor you need a libraries from lib/darwin (MAC) or lib/linux

Connection to TON node

For connect to TON node you need to know public key and ip:port. In most cases you can use public config files. Download global-config.json (mainnet) or testnet-global.config.json (testnet) file from ton.org Lite client supports auto-download mainnet config from ton.org.

Package installation

go get github.com/tonkeeper/tongo

Basic types

Tongo operates with TON blockchain structures described in block.tlb and some types described in lite_api.tl. Go definitions of these types you can find in files: ton/account.go, ton/transactions.go, ton/models.go ...

Chat

You can join to our chat in telegram - https://t.me/tongo_lib

Don't be afraid if you see only russians - we welcome any english speakers too.

Documentation

Index

Constants

View Source
const (
	// DefaultRoot is the default root address used by the addressParser.
	DefaultRoot = "-1:e56754f83426f69b09267bd876ac97c44821345b7e266bd956a7bfbfb98df35c"
)

Variables

View Source
var BlockchainInterfaceIsNil = errors.New("blockchain interface is nil")

Functions

func CreateExternalMessage

func CreateExternalMessage(address AccountID, body *boc.Cell, init *tlb.StateInit, importFee tlb.Grams) (tlb.Message, error)

func DefaultAddressParser added in v1.2.1

func DefaultAddressParser() *addressParser

DefaultAddressParser returns a default address parser that works in the mainnet. Currently, there is no way to change the network. Take a look at NewAccountAddressParser to create a parser for a different network or with a different root address.

func NewAccountAddressParser added in v1.2.1

func NewAccountAddressParser(resolver dnsResolver) *addressParser

func ParseAddress added in v1.2.1

func ParseAddress(a string) (ton.Address, error)

ParseAddress parses a string of different formats to a ton.Address.

Types

type AccountID

type AccountID = ton.AccountID

func AccountIDFromBase64Url

func AccountIDFromBase64Url(s string) (AccountID, error)

func AccountIDFromRaw

func AccountIDFromRaw(s string) (AccountID, error)

func AccountIDFromTlb added in v1.0.1

func AccountIDFromTlb(a tlb.MsgAddress) (*AccountID, error)

func MustParseAccountID

func MustParseAccountID(s string) AccountID

func NewAccountId

func NewAccountId(id int32, addr [32]byte) *AccountID

func ParseAccountID

func ParseAccountID(s string) (AccountID, error)

type Bits256 added in v1.0.1

type Bits256 = ton.Bits256

func MustParseHash

func MustParseHash(s string) Bits256

func ParseHash

func ParseHash(s string) (Bits256, error)

type BlockID added in v1.0.1

type BlockID = ton.BlockID

func MustParseBlockID added in v1.1.2

func MustParseBlockID(s string) BlockID

func ParseBlockID added in v1.1.2

func ParseBlockID(s string) (BlockID, error)

ParseBlockID tries to construct BlockID from the given string.

type BlockIDExt added in v1.0.1

type BlockIDExt = ton.BlockIDExt

func GetParents added in v1.0.1

func GetParents(i tlb.BlockInfo) ([]BlockIDExt, error)

func NewTonBlockId

func NewTonBlockId(fileHash, rootHash Bits256, seqno uint32, shard uint64, workchain int32) *BlockIDExt

func ShardIDs added in v1.0.1

func ShardIDs(blk *tlb.Block) []BlockIDExt

ShardIDs returns a list of IDs of shard blocks this block refers to.

func ToBlockId added in v1.0.1

func ToBlockId(s tlb.ShardDesc, workchain int32) BlockIDExt

type JettonMetadata

type JettonMetadata = tep64.Metadata // deprecated

type ShardID

type ShardID = ton.ShardID

func MustParseShardID

func MustParseShardID(m int64) ShardID

func ParseShardID

func ParseShardID(m int64) (ShardID, error)

type Transaction

type Transaction = ton.Transaction

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL