thorchain

package
v0.66.0-testnet Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2021 License: MIT Imports: 46 Imported by: 5

Documentation

Index

Constants

View Source
const (
	ModuleName       = types.ModuleName
	ReserveName      = types.ReserveName
	AsgardName       = types.AsgardName
	BondName         = types.BondName
	RouterKey        = types.RouterKey
	StoreKey         = types.StoreKey
	DefaultCodespace = types.DefaultCodespace

	// pool status
	PoolAvailable = types.PoolStatus_Available
	PoolStaged    = types.PoolStatus_Staged
	PoolSuspended = types.PoolStatus_Suspended

	// Admin config keys
	MaxWithdrawBasisPoints = types.MaxWithdrawBasisPoints

	// Vaults
	AsgardVault    = types.VaultType_AsgardVault
	YggdrasilVault = types.VaultType_YggdrasilVault
	UnknownVault   = types.VaultType_UnknownVault
	ActiveVault    = types.VaultStatus_ActiveVault
	InactiveVault  = types.VaultStatus_InactiveVault
	RetiringVault  = types.VaultStatus_RetiringVault
	InitVault      = types.VaultStatus_InitVault

	// Node status
	NodeActive      = types.NodeStatus_Active
	NodeWhiteListed = types.NodeStatus_Whitelisted
	NodeDisabled    = types.NodeStatus_Disabled
	NodeReady       = types.NodeStatus_Ready
	NodeStandby     = types.NodeStatus_Standby
	NodeUnknown     = types.NodeStatus_Unknown

	// Bond type
	BondPaid     = types.BondType_bond_paid
	BondReturned = types.BondType_bond_returned
	BondCost     = types.BondType_bond_cost
	BondReward   = types.BondType_bond_reward
	AsgardKeygen = types.KeygenType_AsgardKeygen

	// Bond type
	AddPendingLiquidity      = types.PendingLiquidityType_add
	WithdrawPendingLiquidity = types.PendingLiquidityType_withdraw

	// Memos
	TxSwap            = mem.TxSwap
	TxAdd             = mem.TxAdd
	TxBond            = mem.TxBond
	TxYggdrasilFund   = mem.TxYggdrasilFund
	TxYggdrasilReturn = mem.TxYggdrasilReturn
	TxMigrate         = mem.TxMigrate
	TxRagnarok        = mem.TxRagnarok
	TxReserve         = mem.TxReserve
	TxOutbound        = mem.TxOutbound
	TxRefund          = mem.TxRefund
	TxUnBond          = mem.TxUnbond
	TxLeave           = mem.TxLeave
	TxTHORName        = mem.TxTHORName
)
View Source
const (
	// CodeBadVersion error code for bad version
	CodeInternalError         uint32 = 99
	CodeTxFail                uint32 = 100
	CodeBadVersion            uint32 = 101
	CodeInvalidMessage        uint32 = 102
	CodeConstantsNotAvailable uint32 = 103
	CodeInvalidVault          uint32 = 104
	CodeInvalidMemo           uint32 = 105
	CodeInvalidPoolStatus     uint32 = 107

	CodeSwapFail                 uint32 = 108
	CodeSwapFailNotEnoughFee     uint32 = 110
	CodeSwapFailInvalidAmount    uint32 = 113
	CodeSwapFailInvalidBalance   uint32 = 114
	CodeSwapFailNotEnoughBalance uint32 = 115

	CodeAddLiquidityFailValidation    uint32 = 120
	CodeFailGetLiquidityProvider      uint32 = 122
	CodeAddLiquidityMismatchAssetAddr uint32 = 123
	CodeLiquidityInvalidPoolAsset     uint32 = 124
	CodeAddLiquidityRUNEOverLimit     uint32 = 125
	CodeAddLiquidityRUNEMoreThanBond  uint32 = 126

	CodeWithdrawFailValidation uint32 = 130
	CodeFailAddOutboundTx      uint32 = 131
	CodeFailSaveEvent          uint32 = 132
	CodeNoLiquidityUnitLeft    uint32 = 135
	CodeWithdrawWithin24Hours  uint32 = 136
	CodeWithdrawFail           uint32 = 137
	CodeEmptyChain             uint32 = 138
)

THORChain error code start at 99

View Source
const (
	EventTypeActiveVault   = "ActiveVault"
	EventTypeInactiveVault = "InactiveVault"
)

const values used to emit events

View Source
const (
	MimirRecallFund      = `MimirRecallFund`
	MimirWithdrawUSDT    = `MimirWithdrawUSDT`
	MimirUpgradeContract = `MimirUpgradeContract`
)
View Source
const BEP2RuneOwnerAddress = "bnb1e4q8whcufp6d72w8nwmpuhxd96r4n0fstegyuy"

BEP2RuneOwnerAddress this is the BEP2 RUNE owner address , during migration all upgraded BEP2 RUNE will be send to this owner address THORChain admin will burn those upgraded RUNE appropriately , It need to send to owner address is because only owner can burn it

Variables

View Source
var (
	NewPool                        = types.NewPool
	NewNetwork                     = types.NewNetwork
	NewObservedTx                  = types.NewObservedTx
	NewTssVoter                    = types.NewTssVoter
	NewBanVoter                    = types.NewBanVoter
	NewErrataTxVoter               = types.NewErrataTxVoter
	NewObservedTxVoter             = types.NewObservedTxVoter
	NewMsgMimir                    = types.NewMsgMimir
	NewMsgNodePauseChain           = types.NewMsgNodePauseChain
	NewMsgDeposit                  = types.NewMsgDeposit
	NewMsgTssPool                  = types.NewMsgTssPool
	NewMsgTssKeysignFail           = types.NewMsgTssKeysignFail
	NewMsgObservedTxIn             = types.NewMsgObservedTxIn
	NewMsgObservedTxOut            = types.NewMsgObservedTxOut
	NewMsgNoOp                     = types.NewMsgNoOp
	NewMsgConsolidate              = types.NewMsgConsolidate
	NewMsgDonate                   = types.NewMsgDonate
	NewMsgAddLiquidity             = types.NewMsgAddLiquidity
	NewMsgWithdrawLiquidity        = types.NewMsgWithdrawLiquidity
	NewMsgSwap                     = types.NewMsgSwap
	NewKeygen                      = types.NewKeygen
	NewKeygenBlock                 = types.NewKeygenBlock
	NewMsgSetNodeKeys              = types.NewMsgSetNodeKeys
	NewMsgManageTHORName           = types.NewMsgManageTHORName
	NewTxOut                       = types.NewTxOut
	NewEventRewards                = types.NewEventRewards
	NewEventPool                   = types.NewEventPool
	NewEventDonate                 = types.NewEventDonate
	NewEventSwap                   = types.NewEventSwap
	NewEventAddLiquidity           = types.NewEventAddLiquidity
	NewEventWithdraw               = types.NewEventWithdraw
	NewEventRefund                 = types.NewEventRefund
	NewEventBond                   = types.NewEventBond
	NewEventSwitch                 = types.NewEventSwitch
	NewEventSwitchV56              = types.NewEventSwitchV56
	NewEventGas                    = types.NewEventGas
	NewEventSlash                  = types.NewEventSlash
	NewEventSlashPoint             = types.NewEventSlashPoint
	NewEventReserve                = types.NewEventReserve
	NewEventErrata                 = types.NewEventErrata
	NewEventFee                    = types.NewEventFee
	NewEventOutbound               = types.NewEventOutbound
	NewEventTssKeygenMetric        = types.NewEventTssKeygenMetric
	NewEventTssKeysignMetric       = types.NewEventTssKeysignMetric
	NewEventPoolBalanceChanged     = types.NewEventPoolBalanceChanged
	NewEventPendingLiquidity       = types.NewEventPendingLiquidity
	NewEventTHORName               = types.NewEventTHORName
	NewPoolMod                     = types.NewPoolMod
	NewMsgRefundTx                 = types.NewMsgRefundTx
	NewMsgOutboundTx               = types.NewMsgOutboundTx
	NewMsgMigrate                  = types.NewMsgMigrate
	NewMsgRagnarok                 = types.NewMsgRagnarok
	NewQueryNodeAccount            = types.NewQueryNodeAccount
	NewQueryTxOutItem              = types.NewQueryTxOutItem
	GetThreshold                   = types.GetThreshold
	ModuleCdc                      = types.ModuleCdc
	RegisterCodec                  = types.RegisterCodec
	RegisterInterfaces             = types.RegisterInterfaces
	NewNodeAccount                 = types.NewNodeAccount
	NewVault                       = types.NewVault
	NewReserveContributor          = types.NewReserveContributor
	NewMsgYggdrasil                = types.NewMsgYggdrasil
	NewMsgReserveContributor       = types.NewMsgReserveContributor
	NewMsgBond                     = types.NewMsgBond
	NewMsgUnBond                   = types.NewMsgUnBond
	NewMsgErrataTx                 = types.NewMsgErrataTx
	NewMsgBan                      = types.NewMsgBan
	NewMsgSwitch                   = types.NewMsgSwitch
	NewMsgLeave                    = types.NewMsgLeave
	NewMsgSetVersion               = types.NewMsgSetVersion
	NewMsgSetIPAddress             = types.NewMsgSetIPAddress
	NewMsgNetworkFee               = types.NewMsgNetworkFee
	NewNetworkFee                  = types.NewNetworkFee
	NewTHORName                    = types.NewTHORName
	GetPoolStatus                  = types.GetPoolStatus
	GetRandomVault                 = types.GetRandomVault
	GetRandomTx                    = types.GetRandomTx
	GetRandomObservedTx            = types.GetRandomObservedTx
	GetRandomNodeAccount           = types.GetRandomNodeAccount
	GetRandomTHORAddress           = types.GetRandomTHORAddress
	GetRandomRUNEAddress           = types.GetRandomRUNEAddress
	GetRandomBNBAddress            = types.GetRandomBNBAddress
	GetRandomBTCAddress            = types.GetRandomBTCAddress
	GetRandomLTCAddress            = types.GetRandomLTCAddress
	GetRandomBCHAddress            = types.GetRandomBCHAddress
	GetRandomDOGEAddress           = types.GetRandomDOGEAddress
	GetRandomTxHash                = types.GetRandomTxHash
	GetRandomBech32Addr            = types.GetRandomBech32Addr
	GetRandomBech32ConsensusPubKey = types.GetRandomBech32ConsensusPubKey
	GetRandomPubKey                = types.GetRandomPubKey
	GetRandomPubKeySet             = types.GetRandomPubKeySet
	GetCurrentVersion              = types.GetCurrentVersion
	SetupConfigForTest             = types.SetupConfigForTest
	HasSimpleMajority              = types.HasSimpleMajority
	HasSuperMajority               = types.HasSuperMajority
	NewTssKeysignMetric            = types.NewTssKeysignMetric
	DefaultGenesis                 = types.DefaultGenesis
	NewSolvencyVoter               = types.NewSolvencyVoter
	NewMsgSolvency                 = types.NewMsgSolvency

	// Memo
	ParseMemo              = mem.ParseMemo
	ParseMemoWithTHORNames = mem.ParseMemoWithTHORNames
	FetchAddress           = mem.FetchAddress
	NewRefundMemo          = mem.NewRefundMemo
	NewOutboundMemo        = mem.NewOutboundMemo
	NewRagnarokMemo        = mem.NewRagnarokMemo
	NewYggdrasilReturn     = mem.NewYggdrasilReturn
	NewYggdrasilFund       = mem.NewYggdrasilFund
	NewMigrateMemo         = mem.NewMigrateMemo
)
View Source
var (
	ErrInvalidLengthGenesis        = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowGenesis          = fmt.Errorf("proto: integer overflow")
	ErrUnexpectedEndOfGroupGenesis = fmt.Errorf("proto: unexpected end of group")
)
View Source
var ADMINS = []string{
	"thor1xghvhe4p50aqh5zq2t2vls938as0dkr2mzgpgh",
	"thor19pkncem64gajdwrd5kasspyj0t75hhkpqjn5qh",
}

ADMINS hard coded admin address

View Source
var ErrNotEnoughToPayFee = errors.New("not enough asset to pay for fees")

ErrNotEnoughToPayFee will happen when the emitted asset is not enough to pay for fee

View Source
var IsValidTHORNameV1 = regexp.MustCompile(`^[a-zA-Z0-9+_-]+$`).MatchString
View Source
var WhitelistedArbs = []string{
	"thor1egxvam70a86jafa8gcg3kqfmfax3s0m2g3m754",
	"bc1qq2z2f4gs4nd7t0a9jjp90y9l9zzjtegu4nczha",
	"qz7262r7uufxk89ematxrf6yquk7zfwrjqm97vskzw",
	"0x04c5998ded94f89263370444ce64a99b7dbc9f46",
	"bnb1pa6hpjs7qv0vkd5ks5tqa2xtt2gk5n08yw7v7f",
	"ltc1qaa064vvv4d6stgywnf777j6dl8rd3tt93fp6jx",
}

Functions

func DollarInRune added in v0.66.0

func DollarInRune(ctx cosmos.Context, mgr Manager) cosmos.Uint

gets the amount of rune that is equal to 1 USD

func ErrInternal

func ErrInternal(err error, msg string) error

ErrInternal return an error of errInternal with additional message

func GetKeeper added in v0.54.1

func GetKeeper(version semver.Version, cdc codec.BinaryMarshaler, coinKeeper bankkeeper.Keeper, accountKeeper authkeeper.AccountKeeper, storeKey cosmos.StoreKey) (keeper.Keeper, error)

GetKeeper return Keeper

func InitGenesis

func InitGenesis(ctx cosmos.Context, keeper keeper.Keeper, data GenesisState) []abci.ValidatorUpdate

InitGenesis read the data in GenesisState and apply it to data store

func NewExternalHandler

func NewExternalHandler(mgr Manager) cosmos.Handler

NewExternalHandler returns a handler for "thorchain" type messages.

func NewInternalHandler

func NewInternalHandler(mgr Manager) cosmos.Handler

NewInternalHandler returns a handler for "thorchain" internal type messages.

func NewQuerier

func NewQuerier(mgr *Mgrs, kbs cosmos.KeybaseStore) cosmos.Querier

NewQuerier is the module level router for state queries

func ValidateGenesis

func ValidateGenesis(data GenesisState) error

ValidateGenesis validate genesis is valid or not

Types

type AddLiquidityHandler added in v0.41.0

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

AddLiquidityHandler is to handle add liquidity

func NewAddLiquidityHandler added in v0.41.0

func NewAddLiquidityHandler(mgr Manager) AddLiquidityHandler

NewAddLiquidityHandler create a new instance of AddLiquidityHandler

func (AddLiquidityHandler) Run added in v0.41.0

Run execute the handler

type AddLiquidityMemo added in v0.41.0

type AddLiquidityMemo = mem.AddLiquidityMemo

type AppModule

type AppModule struct {
	AppModuleBasic
	// contains filtered or unexported fields
}

AppModule implements an application module for the thorchain module.

func NewAppModule

func NewAppModule(k keeper.Keeper, cdc codec.BinaryMarshaler, coinKeeper bankkeeper.Keeper, accountKeeper authkeeper.AccountKeeper, storeKey cosmos.StoreKey, telemetryEnabled bool) AppModule

NewAppModule creates a new AppModule Object

func (AppModule) BeginBlock

func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock)

BeginBlock called when a block get proposed

func (AppModule) EndBlock

func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate

EndBlock called when a block get committed

func (AppModule) ExportGenesis

func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONMarshaler) json.RawMessage

ExportGenesis export genesis

func (AppModule) InitGenesis

func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONMarshaler, data json.RawMessage) []abci.ValidatorUpdate

InitGenesis initialise genesis

func (AppModule) LegacyQuerierHandler added in v0.41.0

func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier

LegacyQuerierHandler returns the capability module's Querier.

func (AppModule) Name

func (AppModule) Name() string

func (AppModule) NewHandler

func (am AppModule) NewHandler() sdk.Handler

func (AppModule) NewQuerierHandler

func (am AppModule) NewQuerierHandler() sdk.Querier

func (AppModule) QuerierRoute

func (am AppModule) QuerierRoute() string

func (AppModule) RegisterInvariants

func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry)

func (AppModule) RegisterServices added in v0.41.0

func (am AppModule) RegisterServices(cfg module.Configurator)

RegisterServices registers module services.

func (AppModule) Route

func (am AppModule) Route() cosmos.Route

type AppModuleBasic

type AppModuleBasic struct{}

AppModuleBasic app module Basics object

func (AppModuleBasic) DefaultGenesis

func (AppModuleBasic) DefaultGenesis(cdc codec.JSONMarshaler) json.RawMessage

DefaultGenesis returns default genesis state as raw bytes for the module.

func (AppModuleBasic) GetQueryCmd

func (AppModuleBasic) GetQueryCmd() *cobra.Command

GetQueryCmd get the root query command of this module

func (AppModuleBasic) GetTxCmd

func (AppModuleBasic) GetTxCmd() *cobra.Command

GetTxCmd get the root tx command of this module

func (AppModuleBasic) Name

func (AppModuleBasic) Name() string

Name return the module's name

func (AppModuleBasic) RegisterGRPCGatewayRoutes added in v0.41.0

func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux)

RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the mint module. thornode current doesn't have grpc enpoint yet

func (AppModuleBasic) RegisterInterfaces added in v0.41.0

func (a AppModuleBasic) RegisterInterfaces(reg cdctypes.InterfaceRegistry)

RegisterInterfaces registers the module's interface types

func (AppModuleBasic) RegisterLegacyAminoCodec added in v0.41.0

func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino)

RegisterLegacyAminoCodec registers the module's types for the given codec.

func (AppModuleBasic) RegisterRESTRoutes

func (AppModuleBasic) RegisterRESTRoutes(ctx client.Context, rtr *mux.Router)

RegisterRESTRoutes register rest routes

func (AppModuleBasic) ValidateGenesis

func (AppModuleBasic) ValidateGenesis(cdc codec.JSONMarshaler, config client.TxEncodingConfig, bz json.RawMessage) error

ValidateGenesis check of the Genesis

type BanHandler

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

BanHandler is to handle Ban message

func NewBanHandler

func NewBanHandler(mgr Manager) BanHandler

NewBanHandler create new instance of BanHandler

func (BanHandler) Run

func (h BanHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run is the main entry point to execute Ban logic

type BanVoter

type BanVoter = types.BanVoter

type Blame added in v0.41.0

type Blame = types.Blame

type BondHandler

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

BondHandler a handler to process bond

func NewBondHandler

func NewBondHandler(mgr Manager) BondHandler

NewBondHandler create new BondHandler

func (BondHandler) Run

func (h BondHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run execute the handler

type BondMemo

type BondMemo = mem.BondMemo

type ChainContract added in v0.41.0

type ChainContract = types.ChainContract

type CommonOutboundTxHandler

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

CommonOutboundTxHandler is the place where those common logic can be shared between multiple different kind of outbound tx handler at the moment, handler_refund, and handler_outbound_tx are largely the same , only some small difference

func NewCommonOutboundTxHandler

func NewCommonOutboundTxHandler(mgr Manager) CommonOutboundTxHandler

NewCommonOutboundTxHandler create a new instance of the CommonOutboundTxHandler

type ConsolidateHandler added in v0.54.0

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

ConsolidateHandler handles transactions the network sends to itself, to consolidate UTXOs

func NewConsolidateHandler added in v0.54.0

func NewConsolidateHandler(mgr Manager) ConsolidateHandler

NewConsolidateHandler create a new instance of the ConsolidateHandler

func (ConsolidateHandler) Run added in v0.54.0

type ConsolidateMemo added in v0.54.0

type ConsolidateMemo = mem.ConsolidateMemo

type DepositHandler added in v0.41.0

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

DepositHandler is to process native messages on THORChain

func NewDepositHandler added in v0.41.0

func NewDepositHandler(mgr Manager) DepositHandler

NewDepositHandler create a new instance of DepositHandler

func (DepositHandler) Run added in v0.41.0

Run is the main entry of DepositHandler

type DonateHandler added in v0.41.0

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

DonateHandler is to handle donate message

func NewDonateHandler added in v0.41.0

func NewDonateHandler(mgr Manager) DonateHandler

NewDonateHandler create a new instance of DonateHandler

func (DonateHandler) Run added in v0.41.0

Run is the main entry point to execute donate logic

type DonateMemo added in v0.41.0

type DonateMemo = mem.DonateMemo

type EmitEventItem

type EmitEventItem interface {
	Events() (cosmos.Events, error)
}

EmitEventItem define the method all event need to implement

type ErrataTxHandler

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

ErrataTxHandler is to handle ErrataTx message

func NewErrataTxHandler

func NewErrataTxHandler(mgr Manager) ErrataTxHandler

NewErrataTxHandler create new instance of ErrataTxHandler

func (ErrataTxHandler) Run

Run is the main entry point to execute ErrataTx logic

type ErrataTxVoter

type ErrataTxVoter = types.ErrataTxVoter

type EventAddLiquidity added in v0.41.0

type EventAddLiquidity = types.EventAddLiquidity

type EventBond

type EventBond = types.EventBond

type EventDonate added in v0.41.0

type EventDonate = types.EventDonate

type EventErrata

type EventErrata = types.EventErrata

type EventFee

type EventFee = types.EventFee

type EventGas

type EventGas = types.EventGas

type EventManager

type EventManager interface {
	EmitEvent(ctx cosmos.Context, evt EmitEventItem) error
	EmitGasEvent(ctx cosmos.Context, gasEvent *EventGas) error
	EmitSwapEvent(ctx cosmos.Context, swap *EventSwap) error
	EmitFeeEvent(ctx cosmos.Context, feeEvent *EventFee) error
}

EventManager define methods need to be support to manage events

func GetEventManager

func GetEventManager(version semver.Version) (EventManager, error)

GetEventManager will return an implementation of EventManager

type EventMgrV1

type EventMgrV1 struct{}

EventMgrV1 implement EventManager interface

func (*EventMgrV1) EmitEvent

func (m *EventMgrV1) EmitEvent(ctx cosmos.Context, evt EmitEventItem) error

EmitEvent to block

func (*EventMgrV1) EmitFeeEvent

func (m *EventMgrV1) EmitFeeEvent(ctx cosmos.Context, feeEvent *EventFee) error

EmitFeeEvent emit a fee event through event manager

func (*EventMgrV1) EmitGasEvent

func (m *EventMgrV1) EmitGasEvent(ctx cosmos.Context, gasEvent *EventGas) error

EmitGasEvent emit gas events

func (*EventMgrV1) EmitSwapEvent

func (m *EventMgrV1) EmitSwapEvent(ctx cosmos.Context, swap *EventSwap) error

EmitSwapEvent emit swap event to block

type EventOutbound

type EventOutbound = types.EventOutbound

type EventPool

type EventPool = types.EventPool

type EventRefund

type EventRefund = types.EventRefund

type EventReserve

type EventReserve = types.EventReserve

type EventRewards

type EventRewards = types.EventRewards

type EventSlash

type EventSlash = types.EventSlash

type EventSwap

type EventSwap = types.EventSwap

type EventWithdraw added in v0.41.0

type EventWithdraw = types.EventWithdraw

type GasManager

type GasManager interface {
	BeginBlock()
	EndBlock(ctx cosmos.Context, keeper keeper.Keeper, eventManager EventManager)
	AddGasAsset(gas common.Gas, increaseTxCount bool)
	ProcessGas(ctx cosmos.Context, keeper keeper.Keeper)
	GetGas() common.Gas
	GetFee(ctx cosmos.Context, chain common.Chain, asset common.Asset) cosmos.Uint
	GetMaxGas(ctx cosmos.Context, chain common.Chain) (common.Coin, error)
	GetGasRate(ctx cosmos.Context, chain common.Chain) cosmos.Uint
	SubGas(gas common.Gas)
}

GasManager define all the methods required to manage gas

func GetGasManager

func GetGasManager(version semver.Version, keeper keeper.Keeper) (GasManager, error)

GetGasManager return GasManager

type GasMgrV1

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

GasMgrV1 implement GasManager interface which will store the gas related events happened in thorchain to memory emit GasEvent per block if there are any

func (*GasMgrV1) AddGasAsset

func (gm *GasMgrV1) AddGasAsset(gas common.Gas, increaseTxCount bool)

AddGasAsset to the EventGas

func (*GasMgrV1) BeginBlock

func (gm *GasMgrV1) BeginBlock()

BeginBlock need to be called when a new block get created , update the internal EventGas to new one

func (*GasMgrV1) EndBlock

func (gm *GasMgrV1) EndBlock(ctx cosmos.Context, keeper keeper.Keeper, eventManager EventManager)

EndBlock emit the events

func (*GasMgrV1) GetFee added in v0.41.0

func (gm *GasMgrV1) GetFee(ctx cosmos.Context, chain common.Chain, asset common.Asset) cosmos.Uint

GetFee retrieve the network fee information from kv store, and calculate the dynamic fee customer should pay the return value is the amount of fee in RUNE

func (*GasMgrV1) GetGas

func (gm *GasMgrV1) GetGas() common.Gas

GetGas return gas

func (*GasMgrV1) GetGasRate added in v0.41.0

func (gm *GasMgrV1) GetGasRate(ctx cosmos.Context, chain common.Chain) cosmos.Uint

GetGasRate return the gas rate

func (*GasMgrV1) GetMaxGas added in v0.41.0

func (gm *GasMgrV1) GetMaxGas(ctx cosmos.Context, chain common.Chain) (common.Coin, error)

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV1) ProcessGas

func (gm *GasMgrV1) ProcessGas(ctx cosmos.Context, keeper keeper.Keeper)

ProcessGas to subsidise the pool with RUNE for the gas they have spent

func (*GasMgrV1) SubGas added in v0.41.0

func (gm *GasMgrV1) SubGas(gas common.Gas)

SubGas will subtract the gas from the gas manager

type GasPool

type GasPool = types.GasPool

type GenesisState

type GenesisState struct {
	Pools                []types.Pool                                                        `protobuf:"bytes,1,rep,name=pools,proto3" json:"pools"`
	LiquidityProviders   gitlab_com_thorchain_thornode_x_thorchain_types.LiquidityProviders  `` /* 185-byte string literal not displayed */
	ObservedTxInVoters   gitlab_com_thorchain_thornode_x_thorchain_types.ObservedTxVoters    `` /* 187-byte string literal not displayed */
	ObservedTxOutVoters  gitlab_com_thorchain_thornode_x_thorchain_types.ObservedTxVoters    `` /* 190-byte string literal not displayed */
	TxOuts               []types.TxOut                                                       `protobuf:"bytes,5,rep,name=tx_outs,json=txOuts,proto3" json:"tx_outs"`
	NodeAccounts         gitlab_com_thorchain_thornode_x_thorchain_types.NodeAccounts        `` /* 161-byte string literal not displayed */
	Vaults               gitlab_com_thorchain_thornode_x_thorchain_types.Vaults              `protobuf:"bytes,7,rep,name=vaults,proto3,castrepeated=gitlab.com/thorchain/thornode/x/thorchain/types.Vaults" json:"vaults"`
	Reserve              uint64                                                              `protobuf:"varint,8,opt,name=reserve,proto3" json:"reserve,omitempty"`
	BanVoters            []types.BanVoter                                                    `protobuf:"bytes,9,rep,name=ban_voters,json=banVoters,proto3" json:"ban_voters"`
	LastSignedHeight     int64                                                               `protobuf:"varint,10,opt,name=last_signed_height,json=lastSignedHeight,proto3" json:"last_signed_height,omitempty"`
	LastChainHeights     map[string]int64                                                    `` /* 201-byte string literal not displayed */
	ReserveContributors  gitlab_com_thorchain_thornode_x_thorchain_types.ReserveContributors `` /* 190-byte string literal not displayed */
	Network              types.Network                                                       `protobuf:"bytes,13,opt,name=network,proto3" json:"network"`
	TssVoters            []types.TssVoter                                                    `protobuf:"bytes,14,rep,name=tss_voters,json=tssVoters,proto3" json:"tss_voters"`
	TssKeysignFailVoters []types.TssKeysignFailVoter                                         `protobuf:"bytes,15,rep,name=tss_keysign_fail_voters,json=tssKeysignFailVoters,proto3" json:"tss_keysign_fail_voters"`
	KeygenBlocks         []types.KeygenBlock                                                 `protobuf:"bytes,16,rep,name=keygen_blocks,json=keygenBlocks,proto3" json:"keygen_blocks"`
	ErrataTxVoters       []types.ErrataTxVoter                                               `protobuf:"bytes,18,rep,name=errata_tx_voters,json=errataTxVoters,proto3" json:"errata_tx_voters"`
	MsgSwaps             []types.MsgSwap                                                     `protobuf:"bytes,19,rep,name=msg_swaps,json=msgSwaps,proto3" json:"msg_swaps"`
	NetworkFees          []types.NetworkFee                                                  `protobuf:"bytes,20,rep,name=network_fees,json=networkFees,proto3" json:"network_fees"`
	NetworkFeeVoters     []types.ObservedNetworkFeeVoter                                     `protobuf:"bytes,21,rep,name=network_fee_voters,json=networkFeeVoters,proto3" json:"network_fee_voters"`
	ChainContracts       []types.ChainContract                                               `protobuf:"bytes,22,rep,name=chain_contracts,json=chainContracts,proto3" json:"chain_contracts"`
	THORNames            []types.THORName                                                    `protobuf:"bytes,23,rep,name=THORNames,proto3" json:"THORNames"`
}

func DefaultGenesisState

func DefaultGenesisState() GenesisState

DefaultGenesisState the default values THORNode put in the Genesis

func ExportGenesis

func ExportGenesis(ctx cosmos.Context, k keeper.Keeper) GenesisState

ExportGenesis export the data in Genesis

func NewGenesisState

func NewGenesisState() GenesisState

NewGenesisState create a new instance of GenesisState

func (*GenesisState) Descriptor added in v0.41.0

func (*GenesisState) Descriptor() ([]byte, []int)

func (*GenesisState) GetBanVoters added in v0.41.0

func (m *GenesisState) GetBanVoters() []types.BanVoter

func (*GenesisState) GetChainContracts added in v0.41.0

func (m *GenesisState) GetChainContracts() []types.ChainContract

func (*GenesisState) GetErrataTxVoters added in v0.41.0

func (m *GenesisState) GetErrataTxVoters() []types.ErrataTxVoter

func (*GenesisState) GetKeygenBlocks added in v0.41.0

func (m *GenesisState) GetKeygenBlocks() []types.KeygenBlock

func (*GenesisState) GetLastChainHeights added in v0.41.0

func (m *GenesisState) GetLastChainHeights() map[string]int64

func (*GenesisState) GetLastSignedHeight added in v0.41.0

func (m *GenesisState) GetLastSignedHeight() int64

func (*GenesisState) GetLiquidityProviders added in v0.41.0

func (*GenesisState) GetMsgSwaps added in v0.41.0

func (m *GenesisState) GetMsgSwaps() []types.MsgSwap

func (*GenesisState) GetNetwork added in v0.41.0

func (m *GenesisState) GetNetwork() types.Network

func (*GenesisState) GetNetworkFeeVoters added in v0.41.0

func (m *GenesisState) GetNetworkFeeVoters() []types.ObservedNetworkFeeVoter

func (*GenesisState) GetNetworkFees added in v0.41.0

func (m *GenesisState) GetNetworkFees() []types.NetworkFee

func (*GenesisState) GetNodeAccounts added in v0.41.0

func (*GenesisState) GetObservedTxInVoters added in v0.41.0

func (*GenesisState) GetObservedTxOutVoters added in v0.41.0

func (*GenesisState) GetPools added in v0.41.0

func (m *GenesisState) GetPools() []types.Pool

func (*GenesisState) GetReserve added in v0.41.0

func (m *GenesisState) GetReserve() uint64

func (*GenesisState) GetReserveContributors added in v0.41.0

func (*GenesisState) GetTHORNames added in v0.58.0

func (m *GenesisState) GetTHORNames() []types.THORName

func (*GenesisState) GetTssKeysignFailVoters added in v0.41.0

func (m *GenesisState) GetTssKeysignFailVoters() []types.TssKeysignFailVoter

func (*GenesisState) GetTssVoters added in v0.41.0

func (m *GenesisState) GetTssVoters() []types.TssVoter

func (*GenesisState) GetTxOuts added in v0.41.0

func (m *GenesisState) GetTxOuts() []types.TxOut

func (*GenesisState) GetVaults added in v0.41.0

func (*GenesisState) Marshal added in v0.41.0

func (m *GenesisState) Marshal() (dAtA []byte, err error)

func (*GenesisState) MarshalTo added in v0.41.0

func (m *GenesisState) MarshalTo(dAtA []byte) (int, error)

func (*GenesisState) MarshalToSizedBuffer added in v0.41.0

func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error)

func (*GenesisState) ProtoMessage added in v0.41.0

func (*GenesisState) ProtoMessage()

func (*GenesisState) Reset added in v0.41.0

func (m *GenesisState) Reset()

func (*GenesisState) Size added in v0.41.0

func (m *GenesisState) Size() (n int)

func (*GenesisState) String added in v0.41.0

func (m *GenesisState) String() string

func (*GenesisState) Unmarshal added in v0.41.0

func (m *GenesisState) Unmarshal(dAtA []byte) error

func (*GenesisState) XXX_DiscardUnknown added in v0.41.0

func (m *GenesisState) XXX_DiscardUnknown()

func (*GenesisState) XXX_Marshal added in v0.41.0

func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*GenesisState) XXX_Merge added in v0.41.0

func (m *GenesisState) XXX_Merge(src proto.Message)

func (*GenesisState) XXX_Size added in v0.41.0

func (m *GenesisState) XXX_Size() int

func (*GenesisState) XXX_Unmarshal added in v0.41.0

func (m *GenesisState) XXX_Unmarshal(b []byte) error

type IPAddressHandler

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

IPAddressHandler is to handle ip address message

func NewIPAddressHandler

func NewIPAddressHandler(mgr Manager) IPAddressHandler

NewIPAddressHandler create new instance of IPAddressHandler

func (IPAddressHandler) Run

Run it the main entry point to execute ip address logic

type Jail

type Jail = types.Jail

type Keygen

type Keygen = types.Keygen

type KeygenBlock

type KeygenBlock = types.KeygenBlock

type LeaveHandler

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

LeaveHandler a handler to process leave request if an operator of THORChain node would like to leave and get their bond back , they have to send a Leave request through Binance Chain

func NewLeaveHandler

func NewLeaveHandler(mgr Manager) LeaveHandler

NewLeaveHandler create a new LeaveHandler

func (LeaveHandler) Run

func (h LeaveHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run execute the handler

type LeaveMemo

type LeaveMemo = mem.LeaveMemo

type LiquidityProvider added in v0.41.0

type LiquidityProvider = types.LiquidityProvider

type LiquidityProviders added in v0.41.0

type LiquidityProviders = types.LiquidityProviders

type ManageTHORNameHandler added in v0.58.0

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

ManageTHORNameHandler a handler to process MsgNetworkFee messages

func NewManageTHORNameHandler added in v0.58.0

func NewManageTHORNameHandler(mgr Manager) ManageTHORNameHandler

NewManageTHORNameHandler create a new instance of network fee handler

func (ManageTHORNameHandler) Run added in v0.58.0

Run is the main entry point for network fee logic

type ManageTHORNameMemo added in v0.58.0

type ManageTHORNameMemo = mem.ManageTHORNameMemo

type Manager

type Manager interface {
	GetConstants() constants.ConstantValues
	GetVersion() semver.Version
	Keeper() keeper.Keeper
	GasMgr() GasManager
	EventMgr() EventManager
	TxOutStore() TxOutStore
	VaultMgr() NetworkManager
	ValidatorMgr() ValidatorManager
	ObMgr() ObserverManager
	SwapQ() SwapQueue
	Slasher() Slasher
	YggManager() YggManager
}

Manager is an interface to define all the required methods

type Mgrs

type Mgrs struct {
	CurrentVersion semver.Version

	ConstAccessor constants.ConstantValues

	K keeper.Keeper
	// contains filtered or unexported fields
}

Mgrs is an implementation of Manager interface

func NewManagers

func NewManagers(keeper keeper.Keeper, cdc codec.BinaryMarshaler, coinKeeper bankkeeper.Keeper, accountKeeper authkeeper.AccountKeeper, storeKey cosmos.StoreKey) *Mgrs

NewManagers create a new Manager

func (*Mgrs) BeginBlock

func (mgr *Mgrs) BeginBlock(ctx cosmos.Context) error

BeginBlock detect whether there are new version available, if it is available then create a new version of Mgr

func (*Mgrs) EventMgr

func (mgr *Mgrs) EventMgr() EventManager

EventMgr return EventMgr

func (*Mgrs) GasMgr

func (mgr *Mgrs) GasMgr() GasManager

GasMgr return GasManager

func (*Mgrs) GetConstants added in v0.56.0

func (mgr *Mgrs) GetConstants() constants.ConstantValues

func (*Mgrs) GetVersion added in v0.55.0

func (mgr *Mgrs) GetVersion() semver.Version

func (*Mgrs) Keeper

func (mgr *Mgrs) Keeper() keeper.Keeper

Keeper return Keeper

func (*Mgrs) ObMgr

func (mgr *Mgrs) ObMgr() ObserverManager

ObMgr return an implementation of ObserverManager

func (*Mgrs) Slasher

func (mgr *Mgrs) Slasher() Slasher

Slasher return an implementation of Slasher

func (*Mgrs) SwapQ

func (mgr *Mgrs) SwapQ() SwapQueue

SwapQ return an implementation of SwapQueue

func (*Mgrs) TxOutStore

func (mgr *Mgrs) TxOutStore() TxOutStore

TxOutStore return an TxOutStore

func (*Mgrs) ValidatorMgr

func (mgr *Mgrs) ValidatorMgr() ValidatorManager

ValidatorMgr return an implementation of ValidatorManager

func (*Mgrs) VaultMgr

func (mgr *Mgrs) VaultMgr() NetworkManager

VaultMgr return a valid NetworkManager

func (*Mgrs) YggManager

func (mgr *Mgrs) YggManager() YggManager

YggManager return an implementation of YggManager

type MigrateHandler

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

MigrateHandler is a handler to process MsgMigrate

func NewMigrateHandler

func NewMigrateHandler(mgr Manager) MigrateHandler

NewMigrateHandler create a new instance of MigrateHandler

func (MigrateHandler) Run

Run is the main entry point of Migrate handler

type MigrateMemo

type MigrateMemo = mem.MigrateMemo

type MimirHandler

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

MimirHandler is to handle admin messages

func NewMimirHandler

func NewMimirHandler(mgr Manager) MimirHandler

NewMimirHandler create new instance of MimirHandler

func (MimirHandler) Run

func (h MimirHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run is the main entry point to execute mimir logic

type MsgAddLiquidity added in v0.41.0

type MsgAddLiquidity = types.MsgAddLiquidity

type MsgBan

type MsgBan = types.MsgBan

type MsgBond

type MsgBond = types.MsgBond

type MsgConsolidate added in v0.54.0

type MsgConsolidate = types.MsgConsolidate

type MsgDeposit added in v0.41.0

type MsgDeposit = types.MsgDeposit

type MsgDonate added in v0.41.0

type MsgDonate = types.MsgDonate

type MsgErrataTx

type MsgErrataTx = types.MsgErrataTx

type MsgHandler

type MsgHandler interface {
	Run(ctx cosmos.Context, msg cosmos.Msg) (*cosmos.Result, error)
}

MsgHandler is an interface expect all handler to implement

type MsgLeave

type MsgLeave = types.MsgLeave

type MsgManageTHORName added in v0.58.0

type MsgManageTHORName = types.MsgManageTHORName

type MsgMigrate

type MsgMigrate = types.MsgMigrate

type MsgMimir

type MsgMimir = types.MsgMimir

type MsgNetworkFee

type MsgNetworkFee = types.MsgNetworkFee

type MsgNoOp

type MsgNoOp = types.MsgNoOp

type MsgNodePauseChain added in v0.65.0

type MsgNodePauseChain = types.MsgNodePauseChain

type MsgObservedTxIn

type MsgObservedTxIn = types.MsgObservedTxIn

type MsgObservedTxOut

type MsgObservedTxOut = types.MsgObservedTxOut

type MsgOutboundTx

type MsgOutboundTx = types.MsgOutboundTx

type MsgRagnarok

type MsgRagnarok = types.MsgRagnarok

type MsgRefundTx

type MsgRefundTx = types.MsgRefundTx

type MsgReserveContributor

type MsgReserveContributor = types.MsgReserveContributor

type MsgSend

type MsgSend = types.MsgSend

type MsgSetIPAddress

type MsgSetIPAddress = types.MsgSetIPAddress

type MsgSetNodeKeys

type MsgSetNodeKeys = types.MsgSetNodeKeys

type MsgSetVersion

type MsgSetVersion = types.MsgSetVersion

type MsgSolvency added in v0.63.0

type MsgSolvency = types.MsgSolvency

type MsgSwap

type MsgSwap = types.MsgSwap

type MsgSwitch

type MsgSwitch = types.MsgSwitch

type MsgTssKeysignFail

type MsgTssKeysignFail = types.MsgTssKeysignFail

type MsgTssPool

type MsgTssPool = types.MsgTssPool

type MsgUnBond

type MsgUnBond = types.MsgUnBond

type MsgWithdrawLiquidity added in v0.41.0

type MsgWithdrawLiquidity = types.MsgWithdrawLiquidity

type MsgYggdrasil

type MsgYggdrasil = types.MsgYggdrasil

type Network added in v0.41.0

type Network = types.Network

type NetworkFee

type NetworkFee = types.NetworkFee

type NetworkFeeHandler

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

NetworkFeeHandler a handler to process MsgNetworkFee messages

func NewNetworkFeeHandler

func NewNetworkFeeHandler(mgr Manager) NetworkFeeHandler

NewNetworkFeeHandler create a new instance of network fee handler

func (NetworkFeeHandler) Run

Run is the main entry point for network fee logic

type NetworkManager added in v0.41.0

type NetworkManager interface {
	TriggerKeygen(ctx cosmos.Context, nas NodeAccounts) error
	RotateVault(ctx cosmos.Context, vault Vault) error
	EndBlock(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error
	UpdateNetwork(ctx cosmos.Context, constAccessor constants.ConstantValues, gasManager GasManager, eventMgr EventManager) error
	RecallChainFunds(ctx cosmos.Context, chain common.Chain, mgr Manager, excludeNode common.PubKeys) error
}

NetworkManager interface define the contract of Vault Manager

func GetVaultManager

func GetVaultManager(keeper keeper.Keeper, version semver.Version, txOutStore TxOutStore, eventMgr EventManager) (NetworkManager, error)

GetVaultManager retrieve a NetworkManager that is compatible with the given version

type NetworkMgrV1 added in v0.41.0

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

NetworkMgrV1 is going to manage the vaults

func (*NetworkMgrV1) EndBlock added in v0.41.0

func (vm *NetworkMgrV1) EndBlock(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV1) RecallChainFunds added in v0.41.0

func (vm *NetworkMgrV1) RecallChainFunds(ctx cosmos.Context, chain common.Chain, mgr Manager, excludeNodes common.PubKeys) error

RecallChainFunds - sends a message to bifrost nodes to send back all funds associated with given chain

func (*NetworkMgrV1) RotateVault added in v0.41.0

func (vm *NetworkMgrV1) RotateVault(ctx cosmos.Context, vault Vault) error

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV1) TriggerKeygen added in v0.41.0

func (vm *NetworkMgrV1) TriggerKeygen(ctx cosmos.Context, nas NodeAccounts) error

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV1) UpdateNetwork added in v0.41.0

func (vm *NetworkMgrV1) UpdateNetwork(ctx cosmos.Context, constAccessor constants.ConstantValues, gasManager GasManager, eventMgr EventManager) error

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV57 added in v0.57.0

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

NetworkMgrV57 is going to manage the vaults

func (*NetworkMgrV57) EndBlock added in v0.57.0

func (vm *NetworkMgrV57) EndBlock(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV57) RecallChainFunds added in v0.57.0

func (vm *NetworkMgrV57) RecallChainFunds(ctx cosmos.Context, chain common.Chain, mgr Manager, excludeNodes common.PubKeys) error

RecallChainFunds - sends a message to bifrost nodes to send back all funds associated with given chain

func (*NetworkMgrV57) RotateVault added in v0.57.0

func (vm *NetworkMgrV57) RotateVault(ctx cosmos.Context, vault Vault) error

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV57) TriggerKeygen added in v0.57.0

func (vm *NetworkMgrV57) TriggerKeygen(ctx cosmos.Context, nas NodeAccounts) error

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV57) UpdateNetwork added in v0.57.0

func (vm *NetworkMgrV57) UpdateNetwork(ctx cosmos.Context, constAccessor constants.ConstantValues, gasManager GasManager, eventMgr EventManager) error

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV59 added in v0.59.1

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

NetworkMgrV59 is going to manage the vaults

func (*NetworkMgrV59) EndBlock added in v0.59.1

func (vm *NetworkMgrV59) EndBlock(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV59) RecallChainFunds added in v0.59.1

func (vm *NetworkMgrV59) RecallChainFunds(ctx cosmos.Context, chain common.Chain, mgr Manager, excludeNodes common.PubKeys) error

RecallChainFunds - sends a message to bifrost nodes to send back all funds associated with given chain

func (*NetworkMgrV59) RotateVault added in v0.59.1

func (vm *NetworkMgrV59) RotateVault(ctx cosmos.Context, vault Vault) error

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV59) TriggerKeygen added in v0.59.1

func (vm *NetworkMgrV59) TriggerKeygen(ctx cosmos.Context, nas NodeAccounts) error

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV59) UpdateNetwork added in v0.59.1

func (vm *NetworkMgrV59) UpdateNetwork(ctx cosmos.Context, constAccessor constants.ConstantValues, gasManager GasManager, eventMgr EventManager) error

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV63 added in v0.63.0

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

NetworkMgrV63 is going to manage the vaults

func (*NetworkMgrV63) EndBlock added in v0.63.0

func (vm *NetworkMgrV63) EndBlock(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV63) RecallChainFunds added in v0.63.0

func (vm *NetworkMgrV63) RecallChainFunds(ctx cosmos.Context, chain common.Chain, mgr Manager, excludeNodes common.PubKeys) error

RecallChainFunds - sends a message to bifrost nodes to send back all funds associated with given chain

func (*NetworkMgrV63) RotateVault added in v0.63.0

func (vm *NetworkMgrV63) RotateVault(ctx cosmos.Context, vault Vault) error

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV63) TriggerKeygen added in v0.63.0

func (vm *NetworkMgrV63) TriggerKeygen(ctx cosmos.Context, nas NodeAccounts) error

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV63) UpdateNetwork added in v0.63.0

func (vm *NetworkMgrV63) UpdateNetwork(ctx cosmos.Context, constAccessor constants.ConstantValues, gasManager GasManager, eventMgr EventManager) error

UpdateNetwork Update the network data to reflect changing in this block

type NoOpHandler added in v0.41.0

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

NoOpHandler is to handle donate message

func NewNoOpHandler added in v0.41.0

func NewNoOpHandler(mgr Manager) NoOpHandler

NewNoOpHandler create a new instance of NoOpHandler

func (NoOpHandler) Run added in v0.41.0

func (h NoOpHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run is the main entry point to execute donate logic

type NoOpMemo added in v0.41.0

type NoOpMemo = mem.NoOpMemo

type Node added in v0.41.0

type Node = types.Node

type NodeAccount

type NodeAccount = types.NodeAccount

type NodeAccounts

type NodeAccounts = types.NodeAccounts

type NodePauseChainHandler added in v0.65.0

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

NodePauseChainHandler is to handle node pause chain messages

func NewNodePauseChainHandler added in v0.65.0

func NewNodePauseChainHandler(mgr Manager) NodePauseChainHandler

NewNodePauseChainHandler create new instance of NodePauseChainHandler

func (NodePauseChainHandler) Run added in v0.65.0

Run is the main entry point to execute node pause chain logic

type NodeStatus

type NodeStatus = types.NodeStatus

type ObservedNetworkFeeVoter

type ObservedNetworkFeeVoter = types.ObservedNetworkFeeVoter

type ObservedTx

type ObservedTx = types.ObservedTx

type ObservedTxInHandler

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

ObservedTxInHandler to handle MsgObservedTxIn

func NewObservedTxInHandler

func NewObservedTxInHandler(mgr Manager) ObservedTxInHandler

NewObservedTxInHandler create a new instance of ObservedTxInHandler

func (ObservedTxInHandler) Run

Run is the main entry point of ObservedTxInHandler

type ObservedTxOutHandler

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

ObservedTxOutHandler process MsgObservedTxOut messages

func NewObservedTxOutHandler

func NewObservedTxOutHandler(mgr Manager) ObservedTxOutHandler

NewObservedTxOutHandler create a new instance of ObservedTxOutHandler

func (ObservedTxOutHandler) Run

Run is the main entry point for ObservedTxOutHandler

type ObservedTxVoter

type ObservedTxVoter = types.ObservedTxVoter

type ObservedTxVoters

type ObservedTxVoters = types.ObservedTxVoters

type ObservedTxs

type ObservedTxs = types.ObservedTxs

type ObserverManager

type ObserverManager interface {
	BeginBlock()
	EndBlock(ctx cosmos.Context, keeper keeper.Keeper)
	AppendObserver(chain common.Chain, addrs []cosmos.AccAddress)
	List() []cosmos.AccAddress
}

ObserverManager define the method to manage observes

func GetObserverManager

func GetObserverManager(version semver.Version) (ObserverManager, error)

GetObserverManager return an instance that implements ObserverManager interface when there is no version can match the given semver , it will return nil

type ObserverMgrV1

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

ObserverMgrV1 implement a ObserverManager which will store the observers in memory before written to chain

func (*ObserverMgrV1) AppendObserver

func (om *ObserverMgrV1) AppendObserver(chain common.Chain, addrs []cosmos.AccAddress)

AppendObserver add the address

func (*ObserverMgrV1) BeginBlock

func (om *ObserverMgrV1) BeginBlock()

BeginBlock called when a new block get proposed

func (*ObserverMgrV1) EndBlock

func (om *ObserverMgrV1) EndBlock(ctx cosmos.Context, keeper keeper.Keeper)

EndBlock emit the observers

func (*ObserverMgrV1) List

func (om *ObserverMgrV1) List() []cosmos.AccAddress

List - gets a list of addresses that have been observed in all chains

type OutboundMemo

type OutboundMemo = mem.OutboundMemo

type OutboundTxHandler

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

func NewOutboundTxHandler

func NewOutboundTxHandler(mgr Manager) OutboundTxHandler

func (OutboundTxHandler) Run

type Pool

type Pool = types.Pool

type PoolAmt

type PoolAmt = types.PoolAmt

type PoolMod

type PoolMod = types.PoolMod

type PoolMods

type PoolMods = types.PoolMods

type PoolStatus

type PoolStatus = types.PoolStatus

type Pools

type Pools = types.Pools

type QueryChainAddress

type QueryChainAddress = types.QueryChainAddress

type QueryKeygenBlock

type QueryKeygenBlock = types.QueryKeygenBlock

type QueryKeysign

type QueryKeysign = types.QueryKeysign

type QueryNodeAccount

type QueryNodeAccount = types.QueryNodeAccount

type QueryNodeAccountPreflightCheck

type QueryNodeAccountPreflightCheck = types.QueryNodeAccountPreflightCheck

type QueryQueue

type QueryQueue = types.QueryQueue

type QueryResLastBlockHeights added in v0.41.0

type QueryResLastBlockHeights = types.QueryResLastBlockHeights

type QueryTxOutItem added in v0.65.0

type QueryTxOutItem = types.QueryTxOutItem

type QueryVaultPubKeyContract added in v0.41.0

type QueryVaultPubKeyContract = types.QueryVaultPubKeyContract

type QueryVaultsPubKeys added in v0.41.0

type QueryVaultsPubKeys = types.QueryVaultsPubKeys

type QueryVersion

type QueryVersion = types.QueryVersion

type QueryYggdrasilVaults

type QueryYggdrasilVaults = types.QueryYggdrasilVaults

type RagnarokHandler

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

RagnarokHandler process MsgRagnarok

func NewRagnarokHandler

func NewRagnarokHandler(mgr Manager) RagnarokHandler

NewRagnarokHandler create a new instance of RagnarokHandler

func (RagnarokHandler) Run

Run is the main entry point of ragnarok handler

type RagnarokMemo

type RagnarokMemo = mem.RagnarokMemo

type RagnarokWithdrawPosition added in v0.41.0

type RagnarokWithdrawPosition = types.RagnarokWithdrawPosition

type RefundHandler

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

RefundHandler a handle to process tx that had refund memo usually this type or tx is because Thorchain fail to process the tx, which result in a refund, signer honour the tx and refund customer accordingly

func NewRefundHandler

func NewRefundHandler(mgr Manager) RefundHandler

NewRefundHandler create a new refund handler

func (RefundHandler) Run

Run is the main entry point to process refund outbound message

type RefundMemo

type RefundMemo = mem.RefundMemo

type ReserveContributor

type ReserveContributor = types.ReserveContributor

type ReserveContributorHandler

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

ReserveContributorHandler is handler to process MsgReserveContributor

func NewReserveContributorHandler

func NewReserveContributorHandler(mgr Manager) ReserveContributorHandler

NewReserveContributorHandler create a new instance of ReserveContributorHandler

func (ReserveContributorHandler) Run

Run is the main entry point for ReserveContributorHandler

type ReserveContributors

type ReserveContributors = types.ReserveContributors

type ReserveMemo

type ReserveMemo = mem.ReserveMemo

type RouterUpgradeController added in v0.59.1

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

func NewRouterUpgradeController added in v0.59.1

func NewRouterUpgradeController(mgr Manager) *RouterUpgradeController

NewRouterUpgradeController create a new instance of RouterUpgradeController

func (*RouterUpgradeController) Process added in v0.59.1

func (r *RouterUpgradeController) Process(ctx cosmos.Context)

Process is the main entry of router upgrade controller , it will recall yggdrasil fund , and refund all USDT liquidity , and then upgrade contract

all these steps are controlled by mimir

type SendHandler

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

SendHandler handle MsgSend

func NewSendHandler

func NewSendHandler(mgr Manager) SendHandler

NewSendHandler create a new instance of SendHandler

func (SendHandler) Run

func (h SendHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run the main entry point to process MsgSend

type SetNodeKeysHandler

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

SetNodeKeysHandler process MsgSetNodeKeys MsgSetNodeKeys is used by operators after the node account had been white list , to update the consensus pubkey and node account pubkey

func NewSetNodeKeysHandler

func NewSetNodeKeysHandler(mgr Manager) SetNodeKeysHandler

NewSetNodeKeysHandler create a new instance of SetNodeKeysHandler

func (SetNodeKeysHandler) Run

Run is the main entry point to process MsgSetNodeKeys

type Slasher

type Slasher interface {
	BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)
	HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error
	LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error
	LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error
	SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error
	IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)
	DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)
}

Slasher define all the method to perform slash

func GetSlasher

func GetSlasher(keeper keeper.Keeper, version semver.Version, eventMgr EventManager) (Slasher, error)

GetSlasher return an implementation of Slasher

type SlasherV1

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

SlasherV1 is v1 implementation os slasher

func (*SlasherV1) BeginBlock

func (s *SlasherV1) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV1) DecSlashPoints

func (s *SlasherV1) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV1) HandleDoubleSign

func (s *SlasherV1) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for singing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV1) IncSlashPoints

func (s *SlasherV1) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV1) LackObserving

func (s *SlasherV1) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV1) LackSigning

func (s *SlasherV1) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV1) SlashVault added in v0.41.0

func (s *SlasherV1) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV43 added in v0.54.0

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

SlasherV43 is v1 implementation os slasher

func (*SlasherV43) BeginBlock added in v0.54.0

func (s *SlasherV43) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV43) DecSlashPoints added in v0.54.0

func (s *SlasherV43) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV43) HandleDoubleSign added in v0.54.0

func (s *SlasherV43) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for singing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV43) IncSlashPoints added in v0.54.0

func (s *SlasherV43) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV43) LackObserving added in v0.54.0

func (s *SlasherV43) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV43) LackSigning added in v0.54.0

func (s *SlasherV43) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV43) SlashVault added in v0.54.0

func (s *SlasherV43) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV44 added in v0.54.0

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

SlasherV44 is v1 implementation os slasher

func (*SlasherV44) BeginBlock added in v0.54.0

func (s *SlasherV44) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV44) DecSlashPoints added in v0.54.0

func (s *SlasherV44) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV44) HandleDoubleSign added in v0.54.0

func (s *SlasherV44) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for singing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV44) IncSlashPoints added in v0.54.0

func (s *SlasherV44) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV44) LackObserving added in v0.54.0

func (s *SlasherV44) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV44) LackSigning added in v0.54.0

func (s *SlasherV44) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV44) SlashVault added in v0.54.0

func (s *SlasherV44) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV47 added in v0.54.0

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

SlasherV47 is v1 implementation os slasher

func (*SlasherV47) BeginBlock added in v0.54.0

func (s *SlasherV47) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV47) DecSlashPoints added in v0.54.0

func (s *SlasherV47) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV47) HandleDoubleSign added in v0.54.0

func (s *SlasherV47) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for singing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV47) IncSlashPoints added in v0.54.0

func (s *SlasherV47) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV47) LackObserving added in v0.54.0

func (s *SlasherV47) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV47) LackSigning added in v0.54.0

func (s *SlasherV47) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV47) SlashVault added in v0.54.0

func (s *SlasherV47) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV48 added in v0.54.0

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

SlasherV48 is v1 implementation os slasher

func (*SlasherV48) BeginBlock added in v0.54.0

func (s *SlasherV48) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV48) DecSlashPoints added in v0.54.0

func (s *SlasherV48) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV48) HandleDoubleSign added in v0.54.0

func (s *SlasherV48) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for singing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV48) IncSlashPoints added in v0.54.0

func (s *SlasherV48) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV48) LackObserving added in v0.54.0

func (s *SlasherV48) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV48) LackSigning added in v0.54.0

func (s *SlasherV48) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV48) SlashVault added in v0.54.0

func (s *SlasherV48) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV54 added in v0.54.0

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

SlasherV54 is v54 implementation of slasher

func (*SlasherV54) BeginBlock added in v0.54.0

func (s *SlasherV54) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV54) DecSlashPoints added in v0.54.0

func (s *SlasherV54) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV54) HandleDoubleSign added in v0.54.0

func (s *SlasherV54) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for signing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV54) IncSlashPoints added in v0.54.0

func (s *SlasherV54) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV54) LackObserving added in v0.54.0

func (s *SlasherV54) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV54) LackSigning added in v0.54.0

func (s *SlasherV54) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV54) SlashVault added in v0.54.0

func (s *SlasherV54) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV58 added in v0.58.0

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

SlasherV58 is v54 implementation of slasher

func (*SlasherV58) BeginBlock added in v0.58.0

func (s *SlasherV58) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV58) DecSlashPoints added in v0.58.0

func (s *SlasherV58) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV58) HandleDoubleSign added in v0.58.0

func (s *SlasherV58) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for signing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV58) IncSlashPoints added in v0.58.0

func (s *SlasherV58) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV58) LackObserving added in v0.58.0

func (s *SlasherV58) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV58) LackSigning added in v0.58.0

func (s *SlasherV58) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV58) SlashVault added in v0.58.0

func (s *SlasherV58) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV63 added in v0.63.0

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

SlasherV63 is v54 implementation of slasher

func (*SlasherV63) BeginBlock added in v0.63.0

func (s *SlasherV63) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV63) DecSlashPoints added in v0.63.0

func (s *SlasherV63) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV63) HandleDoubleSign added in v0.63.0

func (s *SlasherV63) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for signing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV63) IncSlashPoints added in v0.63.0

func (s *SlasherV63) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV63) LackObserving added in v0.63.0

func (s *SlasherV63) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV63) LackSigning added in v0.63.0

func (s *SlasherV63) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV63) SlashVault added in v0.63.0

func (s *SlasherV63) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SlasherV65 added in v0.65.0

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

SlasherV65 is v54 implementation of slasher

func (*SlasherV65) BeginBlock added in v0.65.0

func (s *SlasherV65) BeginBlock(ctx cosmos.Context, req abci.RequestBeginBlock, constAccessor constants.ConstantValues)

BeginBlock called when a new block get proposed to detect whether there are duplicate vote

func (*SlasherV65) DecSlashPoints added in v0.65.0

func (s *SlasherV65) DecSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

DecSlashPoints will decrease the given account's slash points

func (*SlasherV65) HandleDoubleSign added in v0.65.0

func (s *SlasherV65) HandleDoubleSign(ctx cosmos.Context, addr crypto.Address, infractionHeight int64, constAccessor constants.ConstantValues) error

HandleDoubleSign - slashes a validator for signing two blocks at the same block height https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae

func (*SlasherV65) IncSlashPoints added in v0.65.0

func (s *SlasherV65) IncSlashPoints(ctx cosmos.Context, point int64, addresses ...cosmos.AccAddress)

IncSlashPoints will increase the given account's slash points

func (*SlasherV65) LackObserving added in v0.65.0

func (s *SlasherV65) LackObserving(ctx cosmos.Context, constAccessor constants.ConstantValues) error

LackObserving Slash node accounts that didn't observe a single inbound txn

func (*SlasherV65) LackSigning added in v0.65.0

func (s *SlasherV65) LackSigning(ctx cosmos.Context, constAccessor constants.ConstantValues, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV65) SlashVault added in v0.65.0

func (s *SlasherV65) SlashVault(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager) error

SlashVault thorchain keep monitoring the outbound tx from asgard pool and yggdrasil pool, usually the txout is triggered by thorchain itself by adding an item into the txout array, refer to TxOutItem for the detail, the TxOutItem contains a specific coin and amount. if somehow thorchain discover signer send out fund more than the amount specified in TxOutItem, it will slash the node account who does that by taking 1.5 * extra fund from node account's bond and subsidise the pool that actually lost it.

type SolvencyHandler added in v0.63.0

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

SolvencyHandler is to process MsgSolvency message from bifrost Bifrost constantly monitor the account balance , and report to THORNode If it detect that wallet is short of fund , much less than vault, the network should automatically halt trading

func NewSolvencyHandler added in v0.63.0

func NewSolvencyHandler(mgr Manager) SolvencyHandler

NewSolvencyHandler create a new instance of solvency handler

func (SolvencyHandler) Run added in v0.63.0

Run is the main entry point to process MsgSolvency

type StoreManager

type StoreManager interface {
	Iterator(_ cosmos.Context) error
}

StoreManager define the method as the entry point for store upgrade

type StoreMgr

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

StoreMgr implement StoreManager interface

func (*StoreMgr) Iterator

func (smgr *StoreMgr) Iterator(ctx cosmos.Context) error

Iterator implement StoreManager interface decide whether it need to upgrade store

type SwapHandler

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

SwapHandler is the handler to process swap request

func NewSwapHandler

func NewSwapHandler(mgr Manager) SwapHandler

NewSwapHandler create a new instance of swap handler

func (SwapHandler) Run

func (h SwapHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run is the main entry point of swap message

type SwapMemo

type SwapMemo = mem.SwapMemo

Memo

type SwapQueue

type SwapQueue interface {
	EndBlock(ctx cosmos.Context, mgr Manager, version semver.Version, constAccessor constants.ConstantValues) error
}

SwapQueue interface define the contract of Swap Queue

func GetSwapQueue

func GetSwapQueue(keeper keeper.Keeper, version semver.Version) (SwapQueue, error)

GetSwapQueue retrieve a SwapQueue that is compatible with the given version

type SwapQv1

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

SwapQv1 is going to manage the swaps queue

func (*SwapQv1) EndBlock

func (vm *SwapQv1) EndBlock(ctx cosmos.Context, mgr Manager, version semver.Version, constAccessor constants.ConstantValues) error

EndBlock trigger the real swap to be processed

func (*SwapQv1) FetchQueue

func (vm *SwapQv1) FetchQueue(ctx cosmos.Context) (swapItems, error)

FetchQueue - grabs all swap queue items from the kvstore and returns them

type SwapQv47 added in v0.54.0

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

SwapQv47 is going to manage the swaps queue

func (*SwapQv47) EndBlock added in v0.54.0

func (vm *SwapQv47) EndBlock(ctx cosmos.Context, mgr Manager, version semver.Version, constAccessor constants.ConstantValues) error

EndBlock trigger the real swap to be processed

func (*SwapQv47) FetchQueue added in v0.54.0

func (vm *SwapQv47) FetchQueue(ctx cosmos.Context) (swapItems, error)

FetchQueue - grabs all swap queue items from the kvstore and returns them

type SwapQv58 added in v0.58.0

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

SwapQv58 is going to manage the swaps queue

func (*SwapQv58) EndBlock added in v0.58.0

func (vm *SwapQv58) EndBlock(ctx cosmos.Context, mgr Manager, version semver.Version, constAccessor constants.ConstantValues) error

EndBlock trigger the real swap to be processed

func (*SwapQv58) FetchQueue added in v0.58.0

func (vm *SwapQv58) FetchQueue(ctx cosmos.Context) (swapItems, error)

FetchQueue - grabs all swap queue items from the kvstore and returns them

type SwapperV1 added in v0.41.0

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

func NewSwapperV1 added in v0.41.0

func NewSwapperV1() *SwapperV1

type SwapperV55 added in v0.55.0

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

func NewSwapperV55 added in v0.55.0

func NewSwapperV55() *SwapperV55

type SwapperV56 added in v0.56.0

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

func NewSwapperV56 added in v0.56.0

func NewSwapperV56() *SwapperV56

type SwitchHandler

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

SwitchHandler is to handle Switch message MsgSwitch is used to switch from bep2 RUNE to native RUNE

func NewSwitchHandler

func NewSwitchHandler(mgr Manager) SwitchHandler

NewSwitchHandler create new instance of SwitchHandler

func (SwitchHandler) Run

Run it the main entry point to execute Switch logic

type SwitchMemo

type SwitchMemo = mem.SwitchMemo

type THORName added in v0.58.0

type THORName = types.THORName

type THORNameAlias added in v0.58.0

type THORNameAlias = types.THORNameAlias

type TssHandler

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

TssHandler handle MsgTssPool

func NewTssHandler

func NewTssHandler(mgr Manager) TssHandler

NewTssHandler create a new handler to process MsgTssPool

func (TssHandler) Run

func (h TssHandler) Run(ctx cosmos.Context, m cosmos.Msg) (*cosmos.Result, error)

Run is the main entry for TssHandler

type TssKeysignFailVoter

type TssKeysignFailVoter = types.TssKeysignFailVoter

type TssKeysignHandler

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

TssKeysignHandler is design to process MsgTssKeysignFail

func NewTssKeysignHandler

func NewTssKeysignHandler(mgr Manager) TssKeysignHandler

NewTssKeysignHandler create a new instance of TssKeysignHandler when a signer fail to join tss keysign , thorchain need to slash the node account

func (TssKeysignHandler) Run

Run is the main entry to process MsgTssKeysignFail

type TssVoter

type TssVoter = types.TssVoter

type TxOut

type TxOut = types.TxOut

type TxOutItem

type TxOutItem = types.TxOutItem

type TxOutStorageV1

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

TxOutStorageV1 is going to manage all the outgoing tx

func (*TxOutStorageV1) ClearOutboundItems

func (tos *TxOutStorageV1) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV1) EndBlock added in v0.65.0

func (tos *TxOutStorageV1) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV1) GetBlockOut

func (tos *TxOutStorageV1) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV1) GetOutboundItemByToAddress

func (tos *TxOutStorageV1) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV1) GetOutboundItems

func (tos *TxOutStorageV1) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV1) TryAddTxOutItem

func (tos *TxOutStorageV1) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV1) UnSafeAddTxOutItem

func (tos *TxOutStorageV1) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV46 added in v0.54.0

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

TxOutStorageV46 is going to manage all the outgoing tx

func (*TxOutStorageV46) ClearOutboundItems added in v0.54.0

func (tos *TxOutStorageV46) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV46) EndBlock added in v0.65.0

func (tos *TxOutStorageV46) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV46) GetBlockOut added in v0.54.0

func (tos *TxOutStorageV46) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV46) GetOutboundItemByToAddress added in v0.54.0

func (tos *TxOutStorageV46) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV46) GetOutboundItems added in v0.54.0

func (tos *TxOutStorageV46) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV46) TryAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV46) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV46) UnSafeAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV46) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV51 added in v0.54.0

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

TxOutStorageV51 is going to manage all the outgoing tx

func (*TxOutStorageV51) ClearOutboundItems added in v0.54.0

func (tos *TxOutStorageV51) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV51) EndBlock added in v0.65.0

func (tos *TxOutStorageV51) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV51) GetBlockOut added in v0.54.0

func (tos *TxOutStorageV51) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV51) GetOutboundItemByToAddress added in v0.54.0

func (tos *TxOutStorageV51) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV51) GetOutboundItems added in v0.54.0

func (tos *TxOutStorageV51) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV51) TryAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV51) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV51) UnSafeAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV51) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV52 added in v0.54.0

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

TxOutStorageV52 is going to manage all the outgoing tx

func (*TxOutStorageV52) ClearOutboundItems added in v0.54.0

func (tos *TxOutStorageV52) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV52) EndBlock added in v0.65.0

func (tos *TxOutStorageV52) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV52) GetBlockOut added in v0.54.0

func (tos *TxOutStorageV52) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV52) GetOutboundItemByToAddress added in v0.54.0

func (tos *TxOutStorageV52) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV52) GetOutboundItems added in v0.54.0

func (tos *TxOutStorageV52) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV52) TryAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV52) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV52) UnSafeAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV52) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV53 added in v0.54.0

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

TxOutStorageV53 is going to manage all the outgoing tx

func (*TxOutStorageV53) ClearOutboundItems added in v0.54.0

func (tos *TxOutStorageV53) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV53) EndBlock added in v0.65.0

func (tos *TxOutStorageV53) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV53) GetBlockOut added in v0.54.0

func (tos *TxOutStorageV53) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV53) GetOutboundItemByToAddress added in v0.54.0

func (tos *TxOutStorageV53) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV53) GetOutboundItems added in v0.54.0

func (tos *TxOutStorageV53) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV53) TryAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV53) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV53) UnSafeAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV53) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV54 added in v0.54.0

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

TxOutStorageV54 is going to manage all the outgoing tx

func (*TxOutStorageV54) ClearOutboundItems added in v0.54.0

func (tos *TxOutStorageV54) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV54) EndBlock added in v0.65.0

func (tos *TxOutStorageV54) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV54) GetBlockOut added in v0.54.0

func (tos *TxOutStorageV54) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV54) GetOutboundItemByToAddress added in v0.54.0

func (tos *TxOutStorageV54) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV54) GetOutboundItems added in v0.54.0

func (tos *TxOutStorageV54) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV54) TryAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV54) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV54) UnSafeAddTxOutItem added in v0.54.0

func (tos *TxOutStorageV54) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV55 added in v0.55.0

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

TxOutStorageV55 is going to manage all the outgoing tx

func (*TxOutStorageV55) ClearOutboundItems added in v0.55.0

func (tos *TxOutStorageV55) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV55) EndBlock added in v0.65.0

func (tos *TxOutStorageV55) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV55) GetBlockOut added in v0.55.0

func (tos *TxOutStorageV55) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV55) GetOutboundItemByToAddress added in v0.55.0

func (tos *TxOutStorageV55) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV55) GetOutboundItems added in v0.55.0

func (tos *TxOutStorageV55) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV55) TryAddTxOutItem added in v0.55.0

func (tos *TxOutStorageV55) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV55) UnSafeAddTxOutItem added in v0.55.0

func (tos *TxOutStorageV55) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV58 added in v0.58.0

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

TxOutStorageV58 is going to manage all the outgoing tx

func (*TxOutStorageV58) ClearOutboundItems added in v0.58.0

func (tos *TxOutStorageV58) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV58) EndBlock added in v0.65.0

func (tos *TxOutStorageV58) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV58) GetBlockOut added in v0.58.0

func (tos *TxOutStorageV58) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV58) GetOutboundItemByToAddress added in v0.58.0

func (tos *TxOutStorageV58) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV58) GetOutboundItems added in v0.58.0

func (tos *TxOutStorageV58) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV58) TryAddTxOutItem added in v0.58.0

func (tos *TxOutStorageV58) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV58) UnSafeAddTxOutItem added in v0.58.0

func (tos *TxOutStorageV58) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV64 added in v0.64.0

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

TxOutStorageV64 is going to manage all the outgoing tx

func (*TxOutStorageV64) ClearOutboundItems added in v0.64.0

func (tos *TxOutStorageV64) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV64) EndBlock added in v0.65.0

func (tos *TxOutStorageV64) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV64) GetBlockOut added in v0.64.0

func (tos *TxOutStorageV64) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV64) GetOutboundItemByToAddress added in v0.64.0

func (tos *TxOutStorageV64) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV64) GetOutboundItems added in v0.64.0

func (tos *TxOutStorageV64) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV64) TryAddTxOutItem added in v0.64.0

func (tos *TxOutStorageV64) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV64) UnSafeAddTxOutItem added in v0.64.0

func (tos *TxOutStorageV64) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV65 added in v0.65.0

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

TxOutStorageV65 is going to manage all the outgoing tx

func (*TxOutStorageV65) ClearOutboundItems added in v0.65.0

func (tos *TxOutStorageV65) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV65) EndBlock added in v0.65.0

func (tos *TxOutStorageV65) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV65) GetBlockOut added in v0.65.0

func (tos *TxOutStorageV65) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV65) GetOutboundItemByToAddress added in v0.65.0

func (tos *TxOutStorageV65) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV65) GetOutboundItems added in v0.65.0

func (tos *TxOutStorageV65) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV65) TryAddTxOutItem added in v0.65.0

func (tos *TxOutStorageV65) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV65) UnSafeAddTxOutItem added in v0.65.0

func (tos *TxOutStorageV65) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStorageV66 added in v0.66.0

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

TxOutStorageV66 is going to manage all the outgoing tx

func (*TxOutStorageV66) ClearOutboundItems added in v0.66.0

func (tos *TxOutStorageV66) ClearOutboundItems(ctx cosmos.Context)

ClearOutboundItems remove all the tx out items , mostly used for test

func (*TxOutStorageV66) EndBlock added in v0.66.0

func (tos *TxOutStorageV66) EndBlock(ctx cosmos.Context, mgr Manager) error

func (*TxOutStorageV66) GetBlockOut added in v0.66.0

func (tos *TxOutStorageV66) GetBlockOut(ctx cosmos.Context) (*TxOut, error)

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV66) GetOutboundItemByToAddress added in v0.66.0

func (tos *TxOutStorageV66) GetOutboundItemByToAddress(ctx cosmos.Context, to common.Address) []TxOutItem

GetOutboundItemByToAddress read all the outbound items filter by the given to address

func (*TxOutStorageV66) GetOutboundItems added in v0.66.0

func (tos *TxOutStorageV66) GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV66) TryAddTxOutItem added in v0.66.0

func (tos *TxOutStorageV66) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)

TryAddTxOutItem add an outbound tx to block return bool indicate whether the transaction had been added successful or not return error indicate error

func (*TxOutStorageV66) UnSafeAddTxOutItem added in v0.66.0

func (tos *TxOutStorageV66) UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error

UnSafeAddTxOutItem - blindly adds a tx out, skipping vault selection, transaction fee deduction, etc

type TxOutStore

type TxOutStore interface {
	EndBlock(ctx cosmos.Context, mgr Manager) error
	GetBlockOut(ctx cosmos.Context) (*TxOut, error)
	ClearOutboundItems(ctx cosmos.Context)
	GetOutboundItems(ctx cosmos.Context) ([]TxOutItem, error)
	TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) (bool, error)
	UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error
	GetOutboundItemByToAddress(_ cosmos.Context, _ common.Address) []TxOutItem
}

TxOutStore define the method required for TxOutStore

func GetTxOutStore

func GetTxOutStore(keeper keeper.Keeper, version semver.Version, eventMgr EventManager, gasManager GasManager) (TxOutStore, error)

GetTxOutStore will return an implementation of the txout store that

type UnBondHandler

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

UnBondHandler a handler to process unbond request

func NewUnBondHandler

func NewUnBondHandler(mgr Manager) UnBondHandler

NewUnBondHandler create new UnBondHandler

func (UnBondHandler) Run

Run execute the handler

type UnbondMemo

type UnbondMemo = mem.UnbondMemo

type ValidatorManager

type ValidatorManager interface {
	BeginBlock(ctx cosmos.Context, constAccessor constants.ConstantValues, existingValidators []string) error
	EndBlock(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) []abci.ValidatorUpdate
	RequestYggReturn(ctx cosmos.Context, node NodeAccount, mgr Manager, constAccessor constants.ConstantValues) error

	NodeAccountPreflightCheck(ctx cosmos.Context, na NodeAccount, constAccessor constants.ConstantValues) (NodeStatus, error)
	// contains filtered or unexported methods
}

ValidatorManager define the method to manage validators

func GetValidatorManager

func GetValidatorManager(keeper keeper.Keeper, version semver.Version, vaultMgr NetworkManager, txOutStore TxOutStore, eventMgr EventManager) (ValidatorManager, error)

GetValidatorManager create a new instance of Validator Manager

type Vault

type Vault = types.Vault

type VaultStatus

type VaultStatus = types.VaultStatus

type Vaults

type Vaults = types.Vaults

type VersionHandler

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

VersionHandler is to handle Version message

func NewVersionHandler

func NewVersionHandler(mgr Manager) VersionHandler

NewVersionHandler create new instance of VersionHandler

func (VersionHandler) Run

Run it the main entry point to execute Version logic

type WithdrawLiquidityHandler added in v0.41.0

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

WithdrawLiquidityHandler to process withdraw requests

func NewWithdrawLiquidityHandler added in v0.41.0

func NewWithdrawLiquidityHandler(mgr Manager) WithdrawLiquidityHandler

NewWithdrawLiquidityHandler create a new instance of WithdrawLiquidityHandler to process withdraw request

func (WithdrawLiquidityHandler) Run added in v0.41.0

Run is the main entry point of withdraw

type WithdrawLiquidityMemo added in v0.41.0

type WithdrawLiquidityMemo = mem.WithdrawLiquidityMemo

type YggManager

type YggManager interface {
	Fund(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error
}

YggManager define method to fund yggdrasil

func GetYggManager

func GetYggManager(keeper keeper.Keeper, version semver.Version) (YggManager, error)

GetYggManager return an implementation of YggManager

type YggMgrV1

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

YggMgrV1 is an implementation of YggManager

func (YggMgrV1) Fund

func (ymgr YggMgrV1) Fund(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

Fund is a method to fund yggdrasil pool

type YggMgrV45 added in v0.54.0

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

YggMgrV45 is an implementation of YggManager

func (YggMgrV45) Fund added in v0.54.0

func (ymgr YggMgrV45) Fund(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

Fund is a method to fund yggdrasil pool

type YggMgrV59 added in v0.59.1

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

YggMgrV59 is an implementation of YggManager

func (YggMgrV59) Fund added in v0.59.1

func (ymgr YggMgrV59) Fund(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

Fund is a method to fund yggdrasil pool

type YggMgrV63 added in v0.63.0

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

YggMgrV63 is an implementation of YggManager

func (YggMgrV63) Fund added in v0.63.0

func (ymgr YggMgrV63) Fund(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

Fund is a method to fund yggdrasil pool

type YggMgrV65 added in v0.65.0

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

YggMgrV65 is an implementation of YggManager

func (YggMgrV65) Fund added in v0.65.0

func (ymgr YggMgrV65) Fund(ctx cosmos.Context, mgr Manager, constAccessor constants.ConstantValues) error

Fund is a method to fund yggdrasil pool

type YggdrasilFundMemo

type YggdrasilFundMemo = mem.YggdrasilFundMemo

type YggdrasilHandler

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

YggdrasilHandler is to process yggdrasil messages When thorchain fund yggdrasil pool , observer should observe two transactions 1. outbound tx from asgard vault 2. inbound tx to yggdrasil vault when yggdrasil pool return fund , observer should observe two transactions as well 1. outbound tx from yggdrasil vault 2. inbound tx to asgard vault

func NewYggdrasilHandler

func NewYggdrasilHandler(mgr Manager) YggdrasilHandler

NewYggdrasilHandler create a new Yggdrasil handler

func (YggdrasilHandler) Run

Run execute the logic in Yggdrasil Handler

type YggdrasilReturnMemo

type YggdrasilReturnMemo = mem.YggdrasilReturnMemo

Source Files

Directories

Path Synopsis
client
cli
v1
Please put all the test related function to here
Please put all the test related function to here

Jump to

Keyboard shortcuts

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