Documentation ¶
Index ¶
- Variables
- func GetSoftSigner(slip44 uint, mnemonic string) (crypto.BytesSigner, error)
- func IsGasPriceError(codespace string, code uint32) bool
- func IsGasRelatedError(codespace string, code uint32) bool
- func IsSuccess(broadcastResult *txtypes.BroadcastTxResponse) (bool, error)
- func IsSuccessTxStatus(txStatus *txtypes.GetTxResponse) bool
- type Broadcaster
- type FileGasPriceProvider
- func (p *FileGasPriceProvider) GetGasFactor(chainName string) (float64, error)
- func (p *FileGasPriceProvider) GetGasPrice(chainName string) (float64, error)
- func (p *FileGasPriceProvider) HasGasFactor(chainName string) (bool, error)
- func (p *FileGasPriceProvider) HasGasPrice(chainName string) (bool, error)
- func (p *FileGasPriceProvider) SetGasFactor(chainName string, gasFactor float64) error
- func (p *FileGasPriceProvider) SetGasPrice(chainName string, gasPrice float64) error
- type GasData
- type GasManager
- type GasPriceProvider
- type InMemoryGasPriceProvider
- func (gp *InMemoryGasPriceProvider) GetGasFactor(chainName string) (float64, error)
- func (gp *InMemoryGasPriceProvider) GetGasPrice(chainName string) (float64, error)
- func (gp *InMemoryGasPriceProvider) HasGasFactor(chainName string) (bool, error)
- func (gp *InMemoryGasPriceProvider) HasGasPrice(chainName string) (bool, error)
- func (gp *InMemoryGasPriceProvider) SetGasFactor(chainName string, gasFactor float64) error
- func (gp *InMemoryGasPriceProvider) SetGasPrice(chainName string, gasPrice float64) error
- type SigningMetadata
- type SigningMetadataProvider
- type SimulationManager
- type SimulationResult
- type TxBroadcaster
- func NewDefaultTxBroadcaster(chainName string, bech32Prefix string, signer crypto.BytesSigner, ...) (TxBroadcaster, error)
- func NewGasTrackingTxBroadcaster(chainName string, gasManager GasManager, logger *log.Logger, ...) (TxBroadcaster, error)
- func NewPollingTxBroadcaster(attempts uint, delay time.Duration, logger *log.Logger, ...) (TxBroadcaster, error)
- func NewRetryableBroadcaster(attempts uint, delay time.Duration, logger *log.Logger, ...) (TxBroadcaster, error)
- type TxProvider
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoGasPrice = errors.New("no known gas price") ErrNoGasFactor = errors.New("no known gas factor") )
Functions ¶
func GetSoftSigner ¶
func GetSoftSigner(slip44 uint, mnemonic string) (crypto.BytesSigner, error)
Get a signer given a SLIP44 value.
func IsGasPriceError ¶ added in v1.1.0
Helper function to determine if an error is related to too small of a gas price
func IsGasRelatedError ¶ added in v1.1.0
Helper function to know if an error had to do with gas.
func IsSuccess ¶ added in v1.1.0
func IsSuccess(broadcastResult *txtypes.BroadcastTxResponse) (bool, error)
func IsSuccessTxStatus ¶ added in v1.1.0
func IsSuccessTxStatus(txStatus *txtypes.GetTxResponse) bool
Types ¶
type Broadcaster ¶ added in v1.1.0
type Broadcaster struct {
// contains filtered or unexported fields
}
func NewDefaultBroadcaster ¶ added in v1.1.0
func NewDefaultBroadcaster( chainName string, bech32Prefix string, signer crypto.BytesSigner, gasManager GasManager, logger *log.Logger, rpcClient rpc.RpcClient, signingMetadataProvider *SigningMetadataProvider, txProvider TxProvider, txPollAttempts uint, txPollDelay time.Duration, retryAttempts uint, retryDelay time.Duration, ) (*Broadcaster, error)
Retryable broadcaster with polling and gas management.
func (*Broadcaster) SignAndBroadcast ¶ added in v1.1.0
type FileGasPriceProvider ¶ added in v1.1.7
type FileGasPriceProvider struct {
// contains filtered or unexported fields
}
FileGasPriceProvider writes gas prices to a file by internally wrapping calls to an InMemoryGasPriceProvider.
func (*FileGasPriceProvider) GetGasFactor ¶ added in v1.1.7
func (p *FileGasPriceProvider) GetGasFactor(chainName string) (float64, error)
func (*FileGasPriceProvider) GetGasPrice ¶ added in v1.1.7
func (p *FileGasPriceProvider) GetGasPrice(chainName string) (float64, error)
func (*FileGasPriceProvider) HasGasFactor ¶ added in v1.1.7
func (p *FileGasPriceProvider) HasGasFactor(chainName string) (bool, error)
func (*FileGasPriceProvider) HasGasPrice ¶ added in v1.1.7
func (p *FileGasPriceProvider) HasGasPrice(chainName string) (bool, error)
func (*FileGasPriceProvider) SetGasFactor ¶ added in v1.1.7
func (p *FileGasPriceProvider) SetGasFactor(chainName string, gasFactor float64) error
func (*FileGasPriceProvider) SetGasPrice ¶ added in v1.1.7
func (p *FileGasPriceProvider) SetGasPrice(chainName string, gasPrice float64) error
type GasData ¶ added in v1.1.7
type GasData struct { GasFactors map[string]float64 `json:"gas_factors"` GasPrices map[string]float64 `json:"gas_prices"` }
Data format for gas file.
type GasManager ¶
type GasManager interface { InitializePrice(chainName string, gasPrice float64) error // Get a suggested gas price for the chainName GetGasPrice(chainName string) (float64, error) // Get a gas factor for the chain name GetGasFactor(chainName string) (float64, error) // Given a broadcast result for a chainName, update gas prices. Calling with a successful broadcast result is a no-op. Tally successes // using ManageTransactionStatus. ManageFailingBroadcastResult(chainName string, broadcastResult *txtypes.BroadcastTxResponse) error // Manage a transaction status once it has settled on chain. Statuses could be positive or negative. ManageIncludedTransactionStatus(chainName string, txStatus *txtypes.GetTxResponse) error // Manage a failure in the case a tx was successfully broadcasted, but never landed on chain and we thus are unable to provide a tx status ManageInclusionFailure(chainName string) error }
GasManager interprets tx results and associated outcomes.
func NewGeometricGasManager ¶ added in v1.1.0
func NewGeometricGasManager( stepSize float64, maxStepSize float64, scaleFactor float64, gasPriceProvider GasPriceProvider, logger *log.Logger, ) (GasManager, error)
type GasPriceProvider ¶
type GasPriceProvider interface { HasGasPrice(chainName string) (bool, error) GetGasPrice(chainName string) (float64, error) SetGasPrice(chainName string, gasPrice float64) error HasGasFactor(chainName string) (bool, error) GetGasFactor(chainName string) (float64, error) SetGasFactor(chainName string, gasFactor float64) error // contains filtered or unexported methods }
GasPriceProvider is a simple KV store for gas.
func NewFileGasPriceProvider ¶ added in v1.1.7
func NewFileGasPriceProvider(logger *log.Logger, dataDirectory string) (GasPriceProvider, error)
Create a new FileGasProvider which will wrap an in-memory gas price provider
func NewInMemoryGasPriceProvider ¶ added in v1.0.14
func NewInMemoryGasPriceProvider() (GasPriceProvider, error)
type InMemoryGasPriceProvider ¶
type InMemoryGasPriceProvider struct {
// contains filtered or unexported fields
}
InMemoryGasPriceProvider stores gas prices in memory.
func (*InMemoryGasPriceProvider) GetGasFactor ¶ added in v1.1.0
func (gp *InMemoryGasPriceProvider) GetGasFactor(chainName string) (float64, error)
func (*InMemoryGasPriceProvider) GetGasPrice ¶
func (gp *InMemoryGasPriceProvider) GetGasPrice(chainName string) (float64, error)
func (*InMemoryGasPriceProvider) HasGasFactor ¶ added in v1.1.0
func (gp *InMemoryGasPriceProvider) HasGasFactor(chainName string) (bool, error)
func (*InMemoryGasPriceProvider) HasGasPrice ¶ added in v1.1.0
func (gp *InMemoryGasPriceProvider) HasGasPrice(chainName string) (bool, error)
func (*InMemoryGasPriceProvider) SetGasFactor ¶ added in v1.1.0
func (gp *InMemoryGasPriceProvider) SetGasFactor(chainName string, gasFactor float64) error
func (*InMemoryGasPriceProvider) SetGasPrice ¶
func (gp *InMemoryGasPriceProvider) SetGasPrice(chainName string, gasPrice float64) error
type SigningMetadata ¶
type SigningMetadata struct {
// contains filtered or unexported fields
}
func (*SigningMetadata) AccountNumber ¶
func (sm *SigningMetadata) AccountNumber() uint64
func (*SigningMetadata) Address ¶
func (sm *SigningMetadata) Address() string
func (*SigningMetadata) ChainID ¶ added in v1.0.13
func (sm *SigningMetadata) ChainID() string
func (*SigningMetadata) Sequence ¶
func (sm *SigningMetadata) Sequence() uint64
type SigningMetadataProvider ¶
type SigningMetadataProvider struct {
// contains filtered or unexported fields
}
func NewSigningMetadataProvider ¶
func NewSigningMetadataProvider(chainID string, rpcClient rpc.RpcClient) (*SigningMetadataProvider, error)
func (*SigningMetadataProvider) SigningMetadataForAccount ¶
func (sip *SigningMetadataProvider) SigningMetadataForAccount(ctx context.Context, address string) (*SigningMetadata, error)
type SimulationManager ¶
type SimulationManager interface { SimulateTx(ctx context.Context, tx authsigning.Tx, gasFactor float64) (*SimulationResult, error) SimulateTxBytes(ctx context.Context, txBytes []byte, gasFactor float64) (*SimulationResult, error) }
SimulationManager manages simulating gas from transactions.
func NewSimulationManager ¶
func NewSimulationManager(rpcClient rpc.RpcClient, txConfig client.TxConfig) (SimulationManager, error)
NewSimulationManager makes a new default simulationManager
type SimulationResult ¶
type SimulationResult struct {
GasRecommendation int64
}
type TxBroadcaster ¶ added in v1.1.0
type TxBroadcaster interface {
// contains filtered or unexported methods
}
Broadcasts transactions reliably, and with retries
func NewDefaultTxBroadcaster ¶ added in v1.1.0
func NewDefaultTxBroadcaster( chainName string, bech32Prefix string, signer crypto.BytesSigner, gasManager GasManager, logger *log.Logger, rpcClient rpc.RpcClient, signingMetadataProvider *SigningMetadataProvider, txProvider TxProvider, ) (TxBroadcaster, error)
func NewGasTrackingTxBroadcaster ¶ added in v1.1.0
func NewGasTrackingTxBroadcaster( chainName string, gasManager GasManager, logger *log.Logger, wrappedBroadcaster TxBroadcaster, ) (TxBroadcaster, error)
func NewPollingTxBroadcaster ¶ added in v1.1.0
func NewPollingTxBroadcaster( attempts uint, delay time.Duration, logger *log.Logger, wrappedBroadcaster TxBroadcaster, ) (TxBroadcaster, error)
func NewRetryableBroadcaster ¶ added in v1.1.0
func NewRetryableBroadcaster( attempts uint, delay time.Duration, logger *log.Logger, wrappedBroadcaster TxBroadcaster, ) (TxBroadcaster, error)
type TxProvider ¶ added in v1.0.14
type TxProvider interface {
ProvideTx(ctx context.Context, gasPrice, gasFactor float64, messages []sdk.Msg, metadata *SigningMetadata) ([]byte, int64, error)
}
func NewTxProvider ¶ added in v1.0.14
func NewTxProvider(bytesSigner crypto.BytesSigner, chainID, feeDenom, memo string, logger *log.Logger, simulationManager SimulationManager, txConfig client.TxConfig) (TxProvider, error)