penumbra

package
v7.0.4 Latest Latest
Warning

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

Go to latest
Published: Feb 1, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Overview

Package penumbra provides an implementation of ibc.Chain for the Penumbra blockchain.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GenesisFile

type GenesisFile struct {
	Validators []GenesisValidators `json:"validators"`
}

type GenesisValidatorPubKey

type GenesisValidatorPubKey struct {
	Type  string `json:"type"`
	Value string `json:"value"`
}

type GenesisValidators

type GenesisValidators struct {
	Address string                 `json:"address"`
	Name    string                 `json:"name"`
	Power   string                 `json:"power"`
	PubKey  GenesisValidatorPubKey `json:"pub_key"`
}

type PenumbraAppNode

type PenumbraAppNode struct {
	Index        int
	VolumeName   string
	Chain        ibc.Chain
	TestName     string
	NetworkID    string
	DockerClient *client.Client
	Image        ibc.DockerImage
	// contains filtered or unexported fields
}

func (*PenumbraAppNode) AllocationsInputFileContainer

func (p *PenumbraAppNode) AllocationsInputFileContainer() string

func (*PenumbraAppNode) Bind

func (p *PenumbraAppNode) Bind() []string

Bind returns the home folder bind point for running the node

func (*PenumbraAppNode) CreateKey

func (p *PenumbraAppNode) CreateKey(ctx context.Context, keyName string) error

func (*PenumbraAppNode) CreateNodeContainer

func (p *PenumbraAppNode) CreateNodeContainer(ctx context.Context) error

func (*PenumbraAppNode) Exec

func (p *PenumbraAppNode) Exec(ctx context.Context, cmd []string, env []string) ([]byte, []byte, error)

Exec run a container for a specific job and block until the container exits

func (*PenumbraAppNode) GenerateGenesisFile

func (p *PenumbraAppNode) GenerateGenesisFile(
	ctx context.Context,
	chainID string,
	validators []PenumbraValidatorDefinition,
	allocations []PenumbraGenesisAppStateAllocation,
) error

func (*PenumbraAppNode) GetAddress

func (p *PenumbraAppNode) GetAddress(ctx context.Context, keyName string) ([]byte, error)

func (*PenumbraAppNode) GetAddressBech32m

func (p *PenumbraAppNode) GetAddressBech32m(ctx context.Context, keyName string) (string, error)

func (*PenumbraAppNode) HomeDir

func (p *PenumbraAppNode) HomeDir() string

func (*PenumbraAppNode) HostName

func (p *PenumbraAppNode) HostName() string

the hostname of the test node container

func (*PenumbraAppNode) InitValidatorFile

func (p *PenumbraAppNode) InitValidatorFile(ctx context.Context, valKeyName string) error

initializes validator definition template file wallet must be generated first

func (*PenumbraAppNode) Name

func (p *PenumbraAppNode) Name() string

Name of the test node container

func (*PenumbraAppNode) RecoverKey

func (p *PenumbraAppNode) RecoverKey(ctx context.Context, keyName, mnemonic string) error

RecoverKey restores a key from a given mnemonic.

func (*PenumbraAppNode) SendFunds

func (p *PenumbraAppNode) SendFunds(ctx context.Context, keyName string, amount ibc.WalletAmount) error

func (*PenumbraAppNode) SendIBCTransfer

func (p *PenumbraAppNode) SendIBCTransfer(
	ctx context.Context,
	channelID string,
	keyName string,
	amount ibc.WalletAmount,
	options ibc.TransferOptions,
) (ibc.Tx, error)

func (*PenumbraAppNode) StartContainer

func (p *PenumbraAppNode) StartContainer(ctx context.Context) error

func (*PenumbraAppNode) StopContainer

func (p *PenumbraAppNode) StopContainer(ctx context.Context) error

func (*PenumbraAppNode) ValidatorDefinitionTemplateFilePathContainer

func (p *PenumbraAppNode) ValidatorDefinitionTemplateFilePathContainer() string

func (*PenumbraAppNode) ValidatorsInputFileContainer

func (p *PenumbraAppNode) ValidatorsInputFileContainer() string

type PenumbraChain

type PenumbraChain struct {
	PenumbraNodes PenumbraNodes
	// contains filtered or unexported fields
}

func NewPenumbraChain

func NewPenumbraChain(log *zap.Logger, testName string, chainConfig ibc.ChainConfig, numValidators int, numFullNodes int) *PenumbraChain

func (*PenumbraChain) Acknowledgements

func (c *PenumbraChain) Acknowledgements(ctx context.Context, height uint64) ([]ibc.PacketAcknowledgement, error)

func (*PenumbraChain) BuildRelayerWallet

func (c *PenumbraChain) BuildRelayerWallet(ctx context.Context, keyName string) (ibc.Wallet, error)

BuildRelayerWallet will return a Penumbra wallet populated with the mnemonic so that the wallet can be restored in the relayer node using the mnemonic. After it is built, that address is included in genesis with some funds.

func (*PenumbraChain) BuildWallet

func (c *PenumbraChain) BuildWallet(ctx context.Context, keyName string, mnemonic string) (ibc.Wallet, error)

BuildWallet will return a Penumbra wallet If mnemonic != "", it will restore using that mnemonic If mnemonic == "", it will create a new key

func (*PenumbraChain) Config

func (c *PenumbraChain) Config() ibc.ChainConfig

Implements Chain interface

func (*PenumbraChain) CreateKey

func (c *PenumbraChain) CreateKey(ctx context.Context, keyName string) error

Implements Chain interface

func (*PenumbraChain) Exec

func (c *PenumbraChain) Exec(ctx context.Context, cmd []string, env []string) (stdout, stderr []byte, err error)

Exec implements chain interface.

func (*PenumbraChain) ExportState

func (c *PenumbraChain) ExportState(ctx context.Context, height int64) (string, error)

Implements Chain interface

func (*PenumbraChain) GetAddress

func (c *PenumbraChain) GetAddress(ctx context.Context, keyName string) ([]byte, error)

Implements Chain interface

func (*PenumbraChain) GetBalance

func (c *PenumbraChain) GetBalance(ctx context.Context, address string, denom string) (math.Int, error)

Implements Chain interface

func (*PenumbraChain) GetGRPCAddress

func (c *PenumbraChain) GetGRPCAddress() string

Implements Chain interface

func (*PenumbraChain) GetGasFeesInNativeDenom

func (c *PenumbraChain) GetGasFeesInNativeDenom(gasPaid int64) int64

Implements Chain interface

func (*PenumbraChain) GetHostGRPCAddress

func (c *PenumbraChain) GetHostGRPCAddress() string

GetHostGRPCAddress returns the address of the gRPC server accessible by the host. This will not return a valid address until the chain has been started.

func (*PenumbraChain) GetHostRPCAddress

func (c *PenumbraChain) GetHostRPCAddress() string

GetHostRPCAddress returns the address of the RPC server accessible by the host. This will not return a valid address until the chain has been started.

func (*PenumbraChain) GetRPCAddress

func (c *PenumbraChain) GetRPCAddress() string

Implements Chain interface

func (*PenumbraChain) Height

func (c *PenumbraChain) Height(ctx context.Context) (uint64, error)

func (*PenumbraChain) HomeDir

func (c *PenumbraChain) HomeDir() string

func (*PenumbraChain) Initialize

func (c *PenumbraChain) Initialize(ctx context.Context, testName string, cli *client.Client, networkID string) error

Implements Chain interface

func (*PenumbraChain) NewChainNode

func (c *PenumbraChain) NewChainNode(
	ctx context.Context,
	i int,
	dockerClient *dockerclient.Client,
	networkID string,
	testName string,
	tendermintImage ibc.DockerImage,
	penumbraImage ibc.DockerImage,
) (PenumbraNode, error)

NewChainNode returns a penumbra chain node with tendermint and penumbra nodes with docker volumes created.

func (*PenumbraChain) RecoverKey

func (c *PenumbraChain) RecoverKey(ctx context.Context, name, mnemonic string) error

func (*PenumbraChain) SendFunds

func (c *PenumbraChain) SendFunds(ctx context.Context, keyName string, amount ibc.WalletAmount) error

Implements Chain interface

func (*PenumbraChain) SendIBCTransfer

func (c *PenumbraChain) SendIBCTransfer(
	ctx context.Context,
	channelID string,
	keyName string,
	amount ibc.WalletAmount,
	options ibc.TransferOptions,
) (ibc.Tx, error)

Implements Chain interface

func (*PenumbraChain) Start

func (c *PenumbraChain) Start(testName string, ctx context.Context, additionalGenesisWallets ...ibc.WalletAmount) error

func (*PenumbraChain) Timeouts

func (c *PenumbraChain) Timeouts(ctx context.Context, height uint64) ([]ibc.PacketTimeout, error)

type PenumbraConsensusKey

type PenumbraConsensusKey struct {
	Type  string `json:"type" toml:"type"`
	Value string `json:"value" toml:"value"`
}

type PenumbraGenesisAppStateAllocation

type PenumbraGenesisAppStateAllocation struct {
	Amount  math.Int `json:"amount"`
	Denom   string   `json:"denom"`
	Address string   `json:"address"`
}

type PenumbraNode

type PenumbraNode struct {
	TendermintNode  *tendermint.TendermintNode
	PenumbraAppNode *PenumbraAppNode
}

type PenumbraNodes

type PenumbraNodes []PenumbraNode

type PenumbraValidatorDefinition

type PenumbraValidatorDefinition struct {
	SequenceNumber int                              `json:"sequence_number" toml:"sequence_number"`
	Enabled        bool                             `json:"enabled" toml:"enabled"`
	Name           string                           `json:"name" toml:"name"`
	Website        string                           `json:"website" toml:"website"`
	Description    string                           `json:"description" toml:"description"`
	IdentityKey    string                           `json:"identity_key" toml:"identity_key"`
	GovernanceKey  string                           `json:"governance_key" toml:"governance_key"`
	ConsensusKey   PenumbraConsensusKey             `json:"consensus_key" toml:"consensus_key"`
	FundingStreams []PenumbraValidatorFundingStream `json:"funding_streams" toml:"funding_stream"`
}

type PenumbraValidatorFundingStream

type PenumbraValidatorFundingStream struct {
	Address string `json:"address" toml:"address"`
	RateBPS int64  `json:"rate_bps" toml:"rate_bps"`
}

type PenumbraWallet

type PenumbraWallet struct {
	// contains filtered or unexported fields
}

func NewWallet

func NewWallet(keyname string, address []byte, mnemonic string, chainCfg ibc.ChainConfig) *PenumbraWallet

func (*PenumbraWallet) Address

func (w *PenumbraWallet) Address() []byte

Get Address

func (*PenumbraWallet) FormattedAddress

func (w *PenumbraWallet) FormattedAddress() string

Get Address formatted with chain's prefix

func (*PenumbraWallet) FormattedAddressWithPrefix

func (w *PenumbraWallet) FormattedAddressWithPrefix(prefix string) string

func (*PenumbraWallet) KeyName

func (w *PenumbraWallet) KeyName() string

func (*PenumbraWallet) Mnemonic

func (w *PenumbraWallet) Mnemonic() string

Get mnemonic, only used for relayer wallets

type ValidatorWithIntPower

type ValidatorWithIntPower struct {
	Address      string
	Power        int64
	PubKeyBase64 string
}

Jump to

Keyboard shortcuts

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