Help us shape the future of Go! Take the 2026 Go Developer Survey

gonibi

package module
v0.0.7 Latest Latest
Warning

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

Go to latest
Published: May 2, 2024 License: MIT Imports: 32 Imported by: 2

README

gonibi

A Golang client for interacting with the Nibiru blockchain.


Dev Notes

Mini Sprint
  • feat: add in transaction broadcasting
    • initialize keyring obj with mnemonic
    • initialize keyring obj with priv key
    • write a test that sends a bank transfer.
    • write a test that submits a text gov proposal.
  • impl Tendermint RPC client
  • refactor: DRY improvements on the QueryClient initialization
  • ci: Add go tests to CI
  • ci: Add code coverage to CI
  • ci: Add linting to CI
  • docs: for grpc.go
  • docs: for clients.go
  • impl wallet abstraction for the keyring
  • epic: storing transaction history storage
Question Brain-dump
  • Q: Should gonibi run as a binary? -> Yes. What should it be able to do?
  • Q: Which functionality warrants localnet testing?
  • Q: Should there be a way to run queries with JSON-RPC 2 instead of GRPC?

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultNetworkInfo = NetworkInfo{
		GrpcEndpoint:      "localhost:9090",
		LcdEndpoint:       "http://localhost:1317",
		TmRpcEndpoint:     "http://localhost:26657",
		WebsocketEndpoint: "ws://localhost:26657/websocket",
		ChainID:           "nibiru-localnet-0",
	}
)
View Source
var EncodingConfig = app.MakeEncodingConfig()

Functions

func AddSignerToKeyring

func AddSignerToKeyring(
	kring keyring.Keyring, privKey cryptotypes.PrivKey, keyName string,
) error

func BroadcastMsgs

func BroadcastMsgs(
	args BroadcastArgs,
	from sdk.AccAddress,
	msgs ...sdk.Msg,
) (*sdk.TxResponse, error)

func BroadcastMsgsWithSeq

func BroadcastMsgsWithSeq(
	args BroadcastArgs,
	from sdk.AccAddress,
	seq uint64,
	msgs ...sdk.Msg,
) (*sdk.TxResponse, error)

func CreateSigner

func CreateSigner(
	mnemonic string,
	kring keyring.Keyring,
	keyName string,
) (kringRecord *keyring.Record, privKey cryptotypes.PrivKey, err error)

func CreateSignerFromPrivKey

func CreateSignerFromPrivKey(
	privKey cryptotypes.PrivKey, keyName string,
) (*keyring.Record, error)

func EnsureNibiruPrefix

func EnsureNibiruPrefix()

func GetGRPCConnection

func GetGRPCConnection(
	grpcUrl string, grpcInsecure bool, timeoutSeconds int64,
) (*grpc.ClientConn, error)

func NewKeyring

func NewKeyring() keyring.Keyring

NewKeyring: Creates an empty, in-memory keyring

func NewRPCClient

func NewRPCClient(rpcEndpt string, websocket string) (*cmtrpchttp.HTTP, error)

NewRPCClient: A remote Comet-BFT RPC client. An error is returned on invalid remote. The function panics when remote is nil.

Args:

  • rpcEndpt: endpoint in the form <protocol>://<host>:<port>
  • websocket: websocket path (which always seems to be "/websocket")

func PrivKeyFromMnemonic

func PrivKeyFromMnemonic(
	kring keyring.Keyring, mnemonic string, keyName string,
) (cryptotypes.PrivKey, sdk.AccAddress, error)

func TxHashBytesToHex

func TxHashBytesToHex(txHashBz []byte) (txHashHex string)

func TxHashHexToBytes

func TxHashHexToBytes(txHashHex string) ([]byte, error)

Types

type AccountNumbers

type AccountNumbers struct {
	Number   uint64
	Sequence uint64
}

func GetAccountNumbers

func GetAccountNumbers(
	address string,
	grpcConn *grpc.ClientConn,
	encCfg app.EncodingConfig,
) (nums AccountNumbers, err error)

type BroadcastArgs

type BroadcastArgs struct {
	Broadcaster Broadcaster
	// contains filtered or unexported fields
}

type Broadcaster

type Broadcaster interface {
	BroadcastTxSync(txBytes []byte) (*sdk.TxResponse, error)
}

type BroadcasterGrpc

type BroadcasterGrpc struct {
	GRPC *grpc.ClientConn
}

func (BroadcasterGrpc) BroadcastTx

func (b BroadcasterGrpc) BroadcastTx(
	txBytes []byte, mode sdktypestx.BroadcastMode,
) (*sdk.TxResponse, error)

func (BroadcasterGrpc) BroadcastTxAsync

func (b BroadcasterGrpc) BroadcastTxAsync(
	txBytes []byte,
) (*sdk.TxResponse, error)

func (BroadcasterGrpc) BroadcastTxSync

func (b BroadcasterGrpc) BroadcastTxSync(
	txBytes []byte,
) (*sdk.TxResponse, error)

type BroadcasterTmRpc

type BroadcasterTmRpc struct {
	RPC cmtrpc.Client
}

func (BroadcasterTmRpc) BroadcastTxSync

func (b BroadcasterTmRpc) BroadcastTxSync(
	txBytes []byte,
) (*sdk.TxResponse, error)

type INibiruClient

type INibiruClient interface {
	BroadcastMsgs(from csdk.AccAddress, msgs ...csdk.Msg) (*csdk.TxResponse, error)
	ClientCtx(tmCfgRootDir string) sdkclient.Context
	GetAccountNumbers(address string) (nums AccountNumbers, err error)
}

type NetworkInfo

type NetworkInfo struct {
	GrpcEndpoint      string
	LcdEndpoint       string
	TmRpcEndpoint     string
	WebsocketEndpoint string
	ChainID           string
}

type NibiruClient

type NibiruClient struct {
	ChainId          string
	Keyring          keyring.Keyring
	EncCfg           app.EncodingConfig
	Querier          Querier
	CometRPC         cmtrpcclient.Client
	AccountRetriever authtypes.AccountRetriever
	GrpcClient       *grpc.ClientConn
}

func NewNibiruClient

func NewNibiruClient(
	chainId string,
	grpcConn *grpc.ClientConn,
	rpcEndpt string,
) (NibiruClient, error)

func (*NibiruClient) BroadcastMsgs

func (nc *NibiruClient) BroadcastMsgs(
	from sdk.AccAddress,
	msgs ...sdk.Msg,
) (*sdk.TxResponse, error)

func (*NibiruClient) BroadcastMsgsGrpc

func (nc *NibiruClient) BroadcastMsgsGrpc(
	from sdk.AccAddress,
	msgs ...sdk.Msg,
) (*sdk.TxResponse, error)

func (*NibiruClient) BroadcastMsgsGrpcWithSeq

func (nc *NibiruClient) BroadcastMsgsGrpcWithSeq(
	from sdk.AccAddress,
	seq uint64,
	msgs ...sdk.Msg,
) (*sdk.TxResponse, error)

func (*NibiruClient) BroadcastMsgsWithSeq

func (nc *NibiruClient) BroadcastMsgsWithSeq(
	from sdk.AccAddress,
	seq uint64,
	msgs ...sdk.Msg,
) (*sdk.TxResponse, error)

func (*NibiruClient) ClientCtx

func (nc *NibiruClient) ClientCtx(
	tmCfgRootDir string,
) sdkclient.Context

ClientCtx: Docs for args TODO

  • tmCfgRootDir: /node0/simd
  • Validator.Dir: /node0
  • Validator.ClientCtx.KeyringDir: /node0/simcli

func (*NibiruClient) GetAccountNumbers

func (nc *NibiruClient) GetAccountNumbers(
	address string,
) (nums AccountNumbers, err error)

func (*NibiruClient) TxByHash

func (nc *NibiruClient) TxByHash(txHashHex string) (*cmtcoretypes.ResultTx, error)

type Querier

type Querier struct {
	ClientConn *grpc.ClientConn
	Perp       xperp.QueryClient
	Epoch      xepochs.QueryClient
	Oracle     xoracle.QueryClient
	Wasm       xwasm.QueryClient
}

func NewQueryClient

func NewQueryClient(
	grpcConn *grpc.ClientConn,
) (Querier, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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