mayachain

package
v1.109.0 Latest Latest
Warning

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

Go to latest
Published: Apr 7, 2024 License: MIT Imports: 63 Imported by: 0

Documentation

Overview

go:build !testnet && !mocknet && !stagenet

go:build !testnet && !mocknet && !stagenet

go:build !testnet && !mocknet && !stagenet

go:build !testnet && !mocknet && !stagenet

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
	MayaFund         = types.MayaFund

	// 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

	// Node type
	NodeTypeUnknown   = types.NodeType_TypeUnknown
	NodeTypeValidator = types.NodeType_TypeValidator
	NodeTypeVault     = types.NodeType_TypeVault

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

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

	// Order Type
	MarketOrder = types.OrderType_market
	LimitOrder  = types.OrderType_limit

	// 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
	TxWithdraw        = mem.TxWithdraw
	TxMAYAName        = mem.TxMAYAName
)
View Source
const (
	// CodeBadVersion error code for bad version
	CodeInternalError     uint32 = 99
	CodeTxFail            uint32 = 100
	CodeBadVersion        uint32 = 101
	CodeInvalidMessage    uint32 = 102
	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
	CodeAddLiquidityMismatchAddr     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
	CodeWithdrawFailIsBonderValidation uint32 = 139
	CodeMaxWithdrawReach               uint32 = 140
	CodeMaxWithdrawWillBeReach         uint32 = 141
	CodeInvalidTier                    uint32 = 142
	CodeWithdrawLiquidityMismatchAddr  uint32 = 143
	CodeInvalidSymbolicNodeMimirValue  uint32 = 144
)

BASEChain error code start at 99

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

const values used to emit events

View Source
const (
	MimirRecallFund      = `MimirRecallFund`
	MimirUpgradeContract = `MimirUpgradeContract`

	MimirRecallFundTemplate      = `MimirRecallFund%s`
	MimirUpgradeContractTemplate = `MimirUpgradeContract%s`
)
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 BASEChain 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
	NewProtocolOwnedLiquidity      = types.NewProtocolOwnedLiquidity
	NewObservedTx                  = types.NewObservedTx
	NewTssVoter                    = types.NewTssVoter
	NewBanVoter                    = types.NewBanVoter
	NewErrataTxVoter               = types.NewErrataTxVoter
	NewObservedTxVoter             = types.NewObservedTxVoter
	NewMsgForgiveSlash             = types.NewMsgForgiveSlash
	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
	NewMsgSetAztecAddress          = types.NewMsgSetAztecAddress
	NewMsgManageMAYAName           = types.NewMsgManageMAYAName
	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
	NewEventBondV105               = types.NewEventBondV105
	NewEventSwitch                 = types.NewEventSwitch
	NewEventSwitchV87              = types.NewEventSwitchV87
	NewEventGas                    = types.NewEventGas
	NewEventScheduledOutbound      = types.NewEventScheduledOutbound
	NewEventSecurity               = types.NewEventSecurity
	NewEventSlash                  = types.NewEventSlash
	NewEventSlashPoint             = types.NewEventSlashPoint
	NewEventReserve                = types.NewEventReserve
	NewEventErrata                 = types.NewEventErrata
	NewEventFee                    = types.NewEventFee
	NewEventOutbound               = types.NewEventOutbound
	NewEventSetMimir               = types.NewEventSetMimir
	NewEventSetNodeMimir           = types.NewEventSetNodeMimir
	NewEventTssKeygenMetric        = types.NewEventTssKeygenMetric
	NewEventTssKeysignMetric       = types.NewEventTssKeysignMetric
	NewEventPoolBalanceChanged     = types.NewEventPoolBalanceChanged
	NewEventPendingLiquidity       = types.NewEventPendingLiquidity
	NewEventMAYAName               = types.NewEventMAYAName
	NewPoolMod                     = types.NewPoolMod
	NewMsgRefundTx                 = types.NewMsgRefundTx
	NewMsgOutboundTx               = types.NewMsgOutboundTx
	NewMsgMigrate                  = types.NewMsgMigrate
	NewMsgRagnarok                 = types.NewMsgRagnarok
	NewQueryNodeAccount            = types.NewQueryNodeAccount
	NewQueryTxOutItem              = types.NewQueryTxOutItem
	NewQueryLiquidityProvider      = types.NewQueryLiquidityProvider
	NewQuerySaver                  = types.NewQuerySaver
	ModuleCdc                      = types.ModuleCdc
	RegisterCodec                  = types.RegisterCodec
	RegisterInterfaces             = types.RegisterInterfaces
	NewBondProviders               = types.NewBondProviders
	NewBondProvider                = types.NewBondProvider
	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
	NewMsgLeave                    = types.NewMsgLeave
	NewMsgSetVersion               = types.NewMsgSetVersion
	NewMsgSetIPAddress             = types.NewMsgSetIPAddress
	NewMsgNetworkFee               = types.NewMsgNetworkFee
	NewNetworkFee                  = types.NewNetworkFee
	NewMAYAName                    = types.NewMAYAName
	GetPoolStatus                  = types.GetPoolStatus
	GetRandomVault                 = types.GetRandomVault
	GetRandomYggVault              = types.GetRandomYggVault
	GetRandomTx                    = types.GetRandomTx
	GetRandomObservedTx            = types.GetRandomObservedTx
	GetRandomTxOutItem             = types.GetRandomTxOutItem
	GetRandomObservedTxVoter       = types.GetRandomObservedTxVoter
	GetRandomValidatorNode         = types.GetRandomValidatorNode
	GetRandomVaultNode             = types.GetRandomVaultNode
	GetRandomBaseAddress           = types.GetRandomBaseAddress
	GetRandomAZTECAddress          = types.GetRandomAZTECAddress
	GetRandomBNBAddress            = types.GetRandomBNBAddress
	GetRandomGAIAAddress           = types.GetRandomGAIAAddress
	GetRandomKUJIAddress           = types.GetRandomKUJIAddress
	GetRandomBTCAddress            = types.GetRandomBTCAddress
	GetRandomLTCAddress            = types.GetRandomLTCAddress
	GetRandomBCHAddress            = types.GetRandomBCHAddress
	GetRandomDASHAddress           = types.GetRandomDASHAddress
	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
	HasMinority                    = types.HasMinority
	DefaultGenesis                 = types.DefaultGenesis
	NewSolvencyVoter               = types.NewSolvencyVoter
	NewMsgSolvency                 = types.NewMsgSolvency
	GetLiquidityPools              = types.GetLiquidityPools

	// Memo
	ParseMemo              = mem.ParseMemo
	ParseMemoWithMAYANames = mem.ParseMemoWithMAYANames
	FetchAddress           = mem.FetchAddress
	NewRefundMemo          = mem.NewRefundMemo
	NewOutboundMemo        = mem.NewOutboundMemo
	NewRagnarokMemo        = mem.NewRagnarokMemo
	NewYggdrasilReturn     = mem.NewYggdrasilReturn
	NewYggdrasilFund       = mem.NewYggdrasilFund
	NewMigrateMemo         = mem.NewMigrateMemo
	NewForgiveSlashMemo    = mem.NewForgiveSlashMemo
	FetchDexAggregator     = aggregators.FetchDexAggregator
)
View Source
var ADMINS = []string{
	"maya1tqn0l6spm9fukjv6az9nhffm40k0003rlqp5xt",
	"maya18z343fsdlav47chtkyp0aawqt6sgxsh3vjy2vz",
	"maya1a7gg93dgwlulsrqf6qtage985ujhpu068zllw7",
	"maya1py0w7j7kfzf8p5qytwl8dc329aa0a646wrazem",
}

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 FOUNDERS = "maya1m3t5wwrpfylss8e9g3jvq5chsv2xl3uchjja6v"
View Source
var GenesisNodes = []string{
	"maya1q3jj8n8pkvl2kjv3pajdyju4hp92cmxnadknd2",
	"maya10sy79jhw9hw9sqwdgu0k4mw4qawzl7czewzs47",
	"maya1gv85v0jvc0rsjunku3qxempax6kmrg5jqh8vmg",
	"maya1vm43yk3jq0evzn2u6a97mh2k9x4xf5mzp62g23",
	"maya12amvthg5jqv99j0w4pnmqwqnysgvgljxmazgnq",
}
View Source
var IsValidMAYANameV1 = regexp.MustCompile(`^[a-zA-Z0-9+_-]+$`).MatchString

Supported chains for mainnet

Supported chains for mainnet

Supported chains for mainnet

Supported chains for mainnet

View Source
var VALIDATORS = []string{}
View Source
var WhitelistedArbs = []string{
	"maya1a7gg93dgwlulsrqf6qtage985ujhpu068zllw7",
	"thor1a7gg93dgwlulsrqf6qtage985ujhpu0684pncw",
	"bc1qztdn5395243l3zwskwdxaghgrgs8swy5fjrhls",
	"qq2pan7svvhwc5ttyc4u3dqnl2hlmfzkmudfsj8ayh",
	"0xef1c6f153afaf86424fd984728d32535902f1c3d",
	"bnb13sjakc98xrjz4we6d8a546xvlvrzver3pdfhap",
	"ltc1qwhlcemz3vwpzph8tmad47r4gm5r0mdwwhf4sl9",
}
View Source
var WhitelistedArbsV107 = []string{
	"maya1a7gg93dgwlulsrqf6qtage985ujhpu068zllw7",
	"thor1a7gg93dgwlulsrqf6qtage985ujhpu0684pncw",
	"bc1qztdn5395243l3zwskwdxaghgrgs8swy5fjrhls",
	"qq2pan7svvhwc5ttyc4u3dqnl2hlmfzkmudfsj8ayh",
	"0xef1c6f153afaf86424fd984728d32535902f1c3d",
	"bnb13sjakc98xrjz4we6d8a546xvlvrzver3pdfhap",
	"ltc1qwhlcemz3vwpzph8tmad47r4gm5r0mdwwhf4sl9",
	"XmjZcjdymUo79tJikPJxKQWQuRVbcqkFp5",
	"kujira1a7gg93dgwlulsrqf6qtage985ujhpu06s66sqm",
}

Functions

func CalculateMayaFundPercentage

func CalculateMayaFundPercentage(gas common.Coin, mgr Manager) (common.Coin, common.Coin)

Calculate Maya Fund --> gasFee = 90%, Maya Fund = 10%

func DollarInRune

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

DollarInRune 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

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

GetKeeper return Keeper

func GetSupportChains added in v1.104.1

func GetSupportChains(version semver.Version) common.Chains

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 IsPeriodLastBlock

func IsPeriodLastBlock(ctx cosmos.Context, blocksPerPeriod uint64) bool

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

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

AddLiquidityHandler is to handle add liquidity

func NewAddLiquidityHandler

func NewAddLiquidityHandler(mgr Manager) AddLiquidityHandler

NewAddLiquidityHandler create a new instance of AddLiquidityHandler

func (AddLiquidityHandler) Run

Run execute the handler

type AddLiquidityMemo

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.BinaryCodec, coinKeeper bankkeeper.Keeper, accountKeeper authkeeper.AccountKeeper, ibctransferKeeper ibctransferkeeper.Keeper, 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) ConsensusVersion

func (AppModule) ConsensusVersion() uint64

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.JSONCodec) json.RawMessage

ExportGenesis export genesis

func (AppModule) InitGenesis

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

InitGenesis initialise genesis

func (AppModule) LegacyQuerierHandler

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

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.JSONCodec) 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

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

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

RegisterInterfaces registers the module's interface types

func (AppModuleBasic) RegisterLegacyAminoCodec

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.JSONCodec, 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

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 BondProvider

type BondProvider = types.BondProvider

type BondProviders

type BondProviders = types.BondProviders

type ChainContract

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

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

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

func NewConsolidateHandler

func NewConsolidateHandler(mgr Manager) ConsolidateHandler

NewConsolidateHandler create a new instance of the ConsolidateHandler

func (ConsolidateHandler) Run

type ConsolidateMemo

type ConsolidateMemo = mem.ConsolidateMemo

type DepositHandler

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

DepositHandler is to process native messages on BASEChain

func NewDepositHandler

func NewDepositHandler(mgr Manager) DepositHandler

NewDepositHandler create a new instance of DepositHandler

func (DepositHandler) Run

Run is the main entry of DepositHandler

type DonateHandler

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

DonateHandler is to handle donate message

func NewDonateHandler

func NewDonateHandler(mgr Manager) DonateHandler

NewDonateHandler create a new instance of DonateHandler

func (DonateHandler) Run

Run is the main entry point to execute donate logic

type DonateMemo

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

type EventAddLiquidity = types.EventAddLiquidity

type EventBond

type EventBond = types.EventBond

type EventBondV105 added in v1.104.1

type EventBondV105 = types.EventBondV105

type EventDonate

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
	EmitBondEvent(ctx cosmos.Context, mgr Manager, asset common.Asset, amount cosmos.Uint, bondType types.BondType, txIn common.Tx) 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) EmitBondEvent added in v1.104.1

func (m *EventMgrV1) EmitBondEvent(ctx cosmos.Context, mgr Manager, asset common.Asset, amount cosmos.Uint, bondType types.BondType, txIn common.Tx) error

EmitBondEvent emit a bond event through event manager taking version into account

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

type EventWithdraw = types.EventWithdraw

type ForgiveSlash

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

ForgiveSlash is to handle Ban message

func NewForgiveSlashHandler

func NewForgiveSlashHandler(mgr Manager) ForgiveSlash

NewForgiveSlash create new instance of ForgiveSlash

func (ForgiveSlash) Run

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

Run is the main entry point to execute Ban logic

type ForgiveSlashMemo

type ForgiveSlashMemo = mem.ForgiveSlashMemo

type GasManager

type GasManager interface {
	BeginBlock(mgr Manager)
	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
	GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)
	GetMaxGas(ctx cosmos.Context, chain common.Chain) (common.Coin, error)
	GetGasRate(ctx cosmos.Context, chain common.Chain) cosmos.Uint
	SubGas(gas common.Gas)
	CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint
}

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 GasMgrV100 added in v1.100.0

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

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

func (*GasMgrV100) AddGasAsset added in v1.100.0

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

AddGasAsset to the EventGas

func (*GasMgrV100) BeginBlock added in v1.100.0

func (gm *GasMgrV100) BeginBlock(mgr Manager)

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

func (*GasMgrV100) CalcOutboundFeeMultiplier added in v1.106.0

func (gm *GasMgrV100) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

func (*GasMgrV100) EndBlock added in v1.100.0

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

EndBlock emit the events

func (*GasMgrV100) GetFee added in v1.100.0

func (gm *GasMgrV100) 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 (*GasMgrV100) GetGas added in v1.100.0

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

GetGas return gas

func (*GasMgrV100) GetGasRate added in v1.100.0

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

GetGasRate return the gas rate

func (*GasMgrV100) GetMaxGas added in v1.100.0

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV100) GetNetworkFee added in v1.106.0

func (gm *GasMgrV100) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV100) ProcessGas added in v1.100.0

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

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

func (*GasMgrV100) SubGas added in v1.100.0

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

SubGas will subtract the gas from the gas manager

type GasMgrV103 added in v1.103.0

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

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

func (*GasMgrV103) AddGasAsset added in v1.103.0

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

AddGasAsset to the EventGas

func (*GasMgrV103) BeginBlock added in v1.103.0

func (gm *GasMgrV103) BeginBlock(mgr Manager)

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

func (*GasMgrV103) CalcOutboundFeeMultiplier added in v1.106.0

func (gm *GasMgrV103) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

func (*GasMgrV103) EndBlock added in v1.103.0

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

EndBlock emit the events

func (*GasMgrV103) GetFee added in v1.103.0

func (gm *GasMgrV103) 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 (*GasMgrV103) GetGas added in v1.103.0

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

GetGas return gas

func (*GasMgrV103) GetGasRate added in v1.103.0

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

GetGasRate return the gas rate

func (*GasMgrV103) GetMaxGas added in v1.103.0

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV103) GetNetworkFee added in v1.106.0

func (gm *GasMgrV103) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV103) ProcessGas added in v1.103.0

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

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

func (*GasMgrV103) SubGas added in v1.103.0

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

SubGas will subtract the gas from the gas manager

type GasMgrV104 added in v1.104.0

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

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

func (*GasMgrV104) AddGasAsset added in v1.104.0

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

AddGasAsset to the EventGas

func (*GasMgrV104) BeginBlock added in v1.104.0

func (gm *GasMgrV104) BeginBlock(mgr Manager)

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

func (*GasMgrV104) CalcOutboundFeeMultiplier added in v1.106.0

func (gm *GasMgrV104) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

func (*GasMgrV104) EndBlock added in v1.104.0

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

EndBlock emit the events

func (*GasMgrV104) GetFee added in v1.104.0

func (gm *GasMgrV104) 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 (*GasMgrV104) GetGas added in v1.104.0

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

GetGas return gas

func (*GasMgrV104) GetGasRate added in v1.104.0

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

GetGasRate return the gas rate

func (*GasMgrV104) GetMaxGas added in v1.104.0

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV104) GetNetworkFee added in v1.106.0

func (gm *GasMgrV104) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV104) ProcessGas added in v1.104.0

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

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

func (*GasMgrV104) SubGas added in v1.104.0

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

SubGas will subtract the gas from the gas manager

type GasMgrV106 added in v1.106.0

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

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

func (*GasMgrV106) AddGasAsset added in v1.106.0

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

AddGasAsset to the EventGas

func (*GasMgrV106) BeginBlock added in v1.106.0

func (gm *GasMgrV106) BeginBlock(mgr Manager)

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

func (*GasMgrV106) CalcOutboundFeeMultiplier added in v1.106.0

func (gm *GasMgrV106) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

CalcOutboundFeeMultiplier returns the current outbound fee multiplier based on current and target outbound fee surplus

func (*GasMgrV106) EndBlock added in v1.106.0

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

EndBlock emit the events

func (*GasMgrV106) GetFee added in v1.106.0

func (gm *GasMgrV106) 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 (*GasMgrV106) GetGas added in v1.106.0

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

GetGas return gas

func (*GasMgrV106) GetGasRate added in v1.106.0

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

GetGasRate return the gas rate

func (*GasMgrV106) GetMaxGas added in v1.106.0

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV106) GetNetworkFee added in v1.106.0

func (gm *GasMgrV106) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV106) ProcessGas added in v1.106.0

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

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

func (*GasMgrV106) SubGas added in v1.106.0

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

SubGas will subtract the gas from the gas manager

type GasMgrV108 added in v1.108.0

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

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

func (*GasMgrV108) AddGasAsset added in v1.108.0

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

AddGasAsset to the EventGas

func (*GasMgrV108) BeginBlock added in v1.108.0

func (gm *GasMgrV108) BeginBlock(mgr Manager)

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

func (*GasMgrV108) CalcOutboundFeeMultiplier added in v1.108.0

func (gm *GasMgrV108) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

CalcOutboundFeeMultiplier returns the current outbound fee multiplier based on current and target outbound fee surplus

func (*GasMgrV108) EndBlock added in v1.108.0

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

EndBlock emit the events

func (*GasMgrV108) GetFee added in v1.108.0

func (gm *GasMgrV108) 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 (*GasMgrV108) GetGas added in v1.108.0

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

GetGas return gas

func (*GasMgrV108) GetGasRate added in v1.108.0

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

GetGasRate return the gas rate

func (*GasMgrV108) GetMaxGas added in v1.108.0

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV108) GetNetworkFee added in v1.108.0

func (gm *GasMgrV108) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV108) ProcessGas added in v1.108.0

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

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

func (*GasMgrV108) SubGas added in v1.108.0

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

SubGas will subtract the gas from the gas manager

type GasMgrV109 added in v1.109.0

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

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

func (*GasMgrV109) AddGasAsset added in v1.109.0

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

AddGasAsset to the EventGas

func (*GasMgrV109) BeginBlock added in v1.109.0

func (gm *GasMgrV109) BeginBlock(mgr Manager)

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

func (*GasMgrV109) CalcOutboundFeeMultiplier added in v1.109.0

func (gm *GasMgrV109) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

CalcOutboundFeeMultiplier returns the current outbound fee multiplier based on current and target outbound fee surplus

func (*GasMgrV109) EndBlock added in v1.109.0

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

EndBlock emit the events

func (*GasMgrV109) GetFee added in v1.109.0

func (gm *GasMgrV109) 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 (*GasMgrV109) GetGas added in v1.109.0

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

GetGas return gas

func (*GasMgrV109) GetGasRate added in v1.109.0

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

GetGasRate return the gas rate

func (*GasMgrV109) GetMaxGas added in v1.109.0

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV109) GetNetworkFee added in v1.109.0

func (gm *GasMgrV109) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV109) ProcessGas added in v1.109.0

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

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

func (*GasMgrV109) SubGas added in v1.109.0

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

SubGas will subtract the gas from the gas manager

type GasMgrV94

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

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

func (*GasMgrV94) AddGasAsset

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

AddGasAsset to the EventGas

func (*GasMgrV94) BeginBlock

func (gm *GasMgrV94) BeginBlock(mgr Manager)

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

func (*GasMgrV94) CalcOutboundFeeMultiplier added in v1.106.0

func (gm *GasMgrV94) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

func (*GasMgrV94) EndBlock

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

EndBlock emit the events

func (*GasMgrV94) GetFee

func (gm *GasMgrV94) 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 (*GasMgrV94) GetGas

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

GetGas return gas

func (*GasMgrV94) GetGasRate

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

GetGasRate return the gas rate

func (*GasMgrV94) GetMaxGas

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV94) GetNetworkFee added in v1.106.0

func (gm *GasMgrV94) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV94) ProcessGas

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

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

func (*GasMgrV94) SubGas

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

SubGas will subtract the gas from the gas manager

type GasMgrV98

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

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

func (*GasMgrV98) AddGasAsset

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

AddGasAsset to the EventGas

func (*GasMgrV98) BeginBlock

func (gm *GasMgrV98) BeginBlock(mgr Manager)

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

func (*GasMgrV98) CalcOutboundFeeMultiplier added in v1.106.0

func (gm *GasMgrV98) CalcOutboundFeeMultiplier(ctx cosmos.Context, targetSurplusRune, gasSpentRune, gasWithheldRune, maxMultiplier, minMultiplier cosmos.Uint) cosmos.Uint

func (*GasMgrV98) EndBlock

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

EndBlock emit the events

func (*GasMgrV98) GetFee

func (gm *GasMgrV98) 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 (*GasMgrV98) GetGas

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

GetGas return gas

func (*GasMgrV98) GetGasRate

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

GetGasRate return the gas rate

func (*GasMgrV98) GetMaxGas

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

GetMaxGas will calculate the maximum gas fee a tx can use

func (*GasMgrV98) GetNetworkFee added in v1.106.0

func (gm *GasMgrV98) GetNetworkFee(ctx cosmos.Context, chain common.Chain) (NetworkFee, error)

func (*GasMgrV98) ProcessGas

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

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

func (*GasMgrV98) SubGas

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

SubGas will subtract the gas from the gas manager

type GasPool

type GasPool = types.GasPool

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 LPBondedNode added in v1.104.1

type LPBondedNode = types.LPBondedNode

type LeaveHandler

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

LeaveHandler a handler to process leave request if an operator of BASEChain 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

type LiquidityProvider = types.LiquidityProvider

type LiquidityProviders

type LiquidityProviders = types.LiquidityProviders

type MAYAName

type MAYAName = types.MAYAName

type MAYANameAlias

type MAYANameAlias = types.MAYANameAlias

type ManageMAYANameHandler

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

ManageMAYANameHandler a handler to process MsgNetworkFee messages

func NewManageMAYANameHandler

func NewManageMAYANameHandler(mgr Manager) ManageMAYANameHandler

NewManageMAYANameHandler create a new instance of network fee handler

func (ManageMAYANameHandler) Run

Run is the main entry point for network fee logic

type ManageMAYANameMemo

type ManageMAYANameMemo = mem.ManageMAYANameMemo

type Manager

type Manager interface {
	GetConstants() constants.ConstantValues
	GetConfigInt64(ctx cosmos.Context, key constants.ConstantName) int64
	GetVersion() semver.Version
	Keeper() keeper.Keeper
	GasMgr() GasManager
	EventMgr() EventManager
	TxOutStore() TxOutStore
	NetworkMgr() NetworkManager
	ValidatorMgr() ValidatorManager
	ObMgr() ObserverManager
	PoolMgr() PoolManager
	SwapQ() SwapQueue
	OrderBookMgr() OrderBook
	Slasher() Slasher
	YggManager() YggManager
}

Manager is an interface to define all the required methods

type Mgrs

type Mgrs struct {
	K keeper.Keeper
	// contains filtered or unexported fields
}

Mgrs is an implementation of Manager interface

func NewManagers

func NewManagers(keeper keeper.Keeper, cdc codec.BinaryCodec, coinKeeper bankkeeper.Keeper, accountKeeper authkeeper.AccountKeeper, ibcTransferkeeper ibctransferkeeper.Keeper, 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) GetConfigInt64 added in v1.106.0

func (mgr *Mgrs) GetConfigInt64(ctx cosmos.Context, key constants.ConstantName) int64

func (*Mgrs) GetConstants

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

func (*Mgrs) GetVersion

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

func (*Mgrs) Keeper

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

Keeper return Keeper

func (*Mgrs) NetworkMgr

func (mgr *Mgrs) NetworkMgr() NetworkManager

VaultMgr return a valid NetworkManager

func (*Mgrs) ObMgr

func (mgr *Mgrs) ObMgr() ObserverManager

ObMgr return an implementation of ObserverManager

func (*Mgrs) OrderBookMgr

func (mgr *Mgrs) OrderBookMgr() OrderBook

OrderBookMgr

func (*Mgrs) PoolMgr

func (mgr *Mgrs) PoolMgr() PoolManager

PoolMgr return a valid PoolManager

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) 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

type MsgAddLiquidity = types.MsgAddLiquidity

type MsgBan

type MsgBan = types.MsgBan

type MsgBond

type MsgBond = types.MsgBond

type MsgConsolidate

type MsgConsolidate = types.MsgConsolidate

type MsgDeposit

type MsgDeposit = types.MsgDeposit

type MsgDonate

type MsgDonate = types.MsgDonate

type MsgErrataTx

type MsgErrataTx = types.MsgErrataTx

type MsgForgiveSlash

type MsgForgiveSlash = types.MsgForgiveSlash

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 MsgManageMAYAName

type MsgManageMAYAName = types.MsgManageMAYAName

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

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 MsgSetAztecAddress

type MsgSetAztecAddress = types.MsgSetAztecAddress

type MsgSetIPAddress

type MsgSetIPAddress = types.MsgSetIPAddress

type MsgSetNodeKeys

type MsgSetNodeKeys = types.MsgSetNodeKeys

type MsgSetVersion

type MsgSetVersion = types.MsgSetVersion

type MsgSolvency

type MsgSolvency = types.MsgSolvency

type MsgSwap

type MsgSwap = types.MsgSwap

type MsgTssKeysignFail

type MsgTssKeysignFail = types.MsgTssKeysignFail

type MsgTssPool

type MsgTssPool = types.MsgTssPool

type MsgUnBond

type MsgUnBond = types.MsgUnBond

type MsgWithdrawLiquidity

type MsgWithdrawLiquidity = types.MsgWithdrawLiquidity

type MsgYggdrasil

type MsgYggdrasil = types.MsgYggdrasil

type Network

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

type NetworkManager interface {
	TriggerKeygen(ctx cosmos.Context, nas NodeAccounts) error
	RotateVault(ctx cosmos.Context, vault Vault) error
	EndBlock(ctx cosmos.Context, mgr Manager) 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 network Manager

func GetNetworkManager

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

GetNetworkManager retrieve a NetworkManager that is compatible with the given version

type NetworkMgrV102 added in v1.102.0

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

NetworkMgrV102 is going to manage the vaults

func (*NetworkMgrV102) EndBlock added in v1.102.0

func (vm *NetworkMgrV102) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV102) POLCycle added in v1.102.0

func (vm *NetworkMgrV102) POLCycle(ctx cosmos.Context, mgr Manager) error

func (*NetworkMgrV102) RecallChainFunds added in v1.102.0

func (vm *NetworkMgrV102) 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 (*NetworkMgrV102) RotateVault added in v1.102.0

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

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV102) TriggerKeygen added in v1.102.0

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

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV102) UpdateNetwork added in v1.102.0

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

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV107 added in v1.109.0

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

NetworkMgrV107 is going to manage the vaults

func (*NetworkMgrV107) EndBlock added in v1.109.0

func (vm *NetworkMgrV107) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV107) POLCycle added in v1.109.0

func (vm *NetworkMgrV107) POLCycle(ctx cosmos.Context, mgr Manager) error

func (*NetworkMgrV107) RecallChainFunds added in v1.109.0

func (vm *NetworkMgrV107) 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 (*NetworkMgrV107) RotateVault added in v1.109.0

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

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV107) TriggerKeygen added in v1.109.0

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

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV107) UpdateNetwork added in v1.109.0

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

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV108 added in v1.108.0

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

NetworkMgrV108 is going to manage the vaults

func (*NetworkMgrV108) EndBlock added in v1.108.0

func (vm *NetworkMgrV108) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV108) POLCycle added in v1.108.0

func (vm *NetworkMgrV108) POLCycle(ctx cosmos.Context, mgr Manager) error

func (*NetworkMgrV108) RecallChainFunds added in v1.108.0

func (vm *NetworkMgrV108) 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 (*NetworkMgrV108) RotateVault added in v1.108.0

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

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV108) TriggerKeygen added in v1.108.0

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

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV108) UpdateNetwork added in v1.108.0

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

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV109 added in v1.109.0

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

NetworkMgrV109 is going to manage the vaults

func (*NetworkMgrV109) EndBlock added in v1.109.0

func (vm *NetworkMgrV109) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV109) POLCycle added in v1.109.0

func (vm *NetworkMgrV109) POLCycle(ctx cosmos.Context, mgr Manager) error

func (*NetworkMgrV109) RecallChainFunds added in v1.109.0

func (vm *NetworkMgrV109) 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 (*NetworkMgrV109) RotateVault added in v1.109.0

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

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV109) TriggerKeygen added in v1.109.0

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

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV109) UpdateNetwork added in v1.109.0

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

UpdateNetwork Update the network data to reflect changing in this block

type NetworkMgrV96

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

NetworkMgrV96 is going to manage the vaults

func (*NetworkMgrV96) EndBlock

func (vm *NetworkMgrV96) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock move funds from retiring asgard vaults

func (*NetworkMgrV96) POLCycle

func (vm *NetworkMgrV96) POLCycle(ctx cosmos.Context, mgr Manager) error

func (*NetworkMgrV96) RecallChainFunds

func (vm *NetworkMgrV96) 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 (*NetworkMgrV96) RotateVault

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

RotateVault update vault to Retiring and new vault to active

func (*NetworkMgrV96) TriggerKeygen

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

TriggerKeygen generate a record to instruct signer kick off keygen process

func (*NetworkMgrV96) UpdateNetwork

func (vm *NetworkMgrV96) 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

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

NoOpHandler is to handle donate message

func NewNoOpHandler

func NewNoOpHandler(mgr Manager) NoOpHandler

NewNoOpHandler create a new instance of NoOpHandler

func (NoOpHandler) Run

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

type NoOpMemo = mem.NoOpMemo

type Node

type Node = types.Node

type NodeAccount

type NodeAccount = types.NodeAccount

type NodeAccounts

type NodeAccounts = types.NodeAccounts

type NodeMimir

type NodeMimir = types.NodeMimir

type NodeMimirs

type NodeMimirs = types.NodeMimirs

type NodePauseChainHandler

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

NodePauseChainHandler is to handle node pause chain messages

func NewNodePauseChainHandler

func NewNodePauseChainHandler(mgr Manager) NodePauseChainHandler

NewNodePauseChainHandler create new instance of NodePauseChainHandler

func (NodePauseChainHandler) Run

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 OrderBook

type OrderBook interface {
	EndBlock(ctx cosmos.Context, mgr Manager) error
}

OrderBook interface define the contract of Order Book

func GetOrderBook

func GetOrderBook(version semver.Version, keeper keeper.Keeper) (OrderBook, error)

GetOrderBook retrieve a OrderBook that is compatible with the given version

type OrderBookV1

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

OrderBookV1 is going to manage the swaps queue

func (*OrderBookV1) AddOrderBookItem

func (ob *OrderBookV1) AddOrderBookItem(ctx cosmos.Context, msg MsgSwap) error

func (*OrderBookV1) EndBlock

func (ob *OrderBookV1) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock trigger the real swap to be processed

func (*OrderBookV1) FetchQueue

func (ob *OrderBookV1) FetchQueue(ctx cosmos.Context, mgr Manager, pairs tradePairs, pools Pools) (orderItems, error)

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

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 PoolManager

type PoolManager interface {
	EndBlock(ctx cosmos.Context, mgr Manager) error
}

PoolManager interface define the contract of PoolManager

func GetPoolManager

func GetPoolManager(version semver.Version, keeper keeper.Keeper) (PoolManager, error)

GetPoolManager return an implementation of PoolManager

type PoolMgrV108 added in v1.108.0

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

func (*PoolMgrV108) EndBlock added in v1.108.0

func (pm *PoolMgrV108) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock cycle pools if required and if ragnarok is not in progress

type PoolMgrV95

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

func (*PoolMgrV95) EndBlock

func (pm *PoolMgrV95) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock cycle pools if required and if ragnarok is not in progress

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 PreRegisterMAYAName

type PreRegisterMAYAName struct {
	Name    string
	Address string
}

type ProtoStrings

type ProtoStrings = types.ProtoStrings

Proto

type ProtocolOwnedLiquidity

type ProtocolOwnedLiquidity = types.ProtocolOwnedLiquidity

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

type QueryResLastBlockHeights = types.QueryResLastBlockHeights

type QuerySaver added in v1.108.0

type QuerySaver = types.QuerySaver

type QueryTxOutItem

type QueryTxOutItem = types.QueryTxOutItem

type QueryVaultPubKeyContract

type QueryVaultPubKeyContract = types.QueryVaultPubKeyContract

type QueryVaultsPubKeys

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

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 RefundTxCACAO added in v1.108.0

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

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

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

func NewRouterUpgradeController

func NewRouterUpgradeController(mgr Manager) *RouterUpgradeController

NewRouterUpgradeController create a new instance of RouterUpgradeController

func (*RouterUpgradeController) Process

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 SetAztecAddressHandler

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

SetAztecAddressHandler process MsgSetAztecAddress MsgSetAztecAddress is used by operators to set their aztec address

func NewSetAztecAddressHandler

func NewSetAztecAddressHandler(mgr Manager) SetAztecAddressHandler

NewSetAztecAddressHandler create a new instance of SetAztecAddressHandler

func (SetAztecAddressHandler) Run

Run is the main entry point to process MsgSetAztecAddress

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, mgr Manager) error
	SlashVaultToLP(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager, subsidize bool) error
	SlashNodeAccountLP(ctx cosmos.Context, na NodeAccount, slash cosmos.Uint) (cosmos.Uint, []PoolAmt, 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(version semver.Version, keeper keeper.Keeper, eventMgr EventManager) (Slasher, error)

GetSlasher return an implementation of Slasher

type SlasherV102 added in v1.102.0

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

SlasherV102 is v88 implementation of slasher

func (*SlasherV102) BeginBlock added in v1.102.0

func (s *SlasherV102) 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 (*SlasherV102) DecSlashPoints added in v1.102.0

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

DecSlashPoints will decrease the given account's slash points

func (*SlasherV102) HandleDoubleSign added in v1.102.0

func (s *SlasherV102) 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 (*SlasherV102) IncSlashPoints added in v1.102.0

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

IncSlashPoints will increase the given account's slash points

func (*SlasherV102) LackObserving added in v1.102.0

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

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

func (*SlasherV102) LackSigning added in v1.102.0

func (s *SlasherV102) LackSigning(ctx cosmos.Context, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV102) SlashNodeAccountLP added in v1.102.0

func (s *SlasherV102) SlashNodeAccountLP(ctx cosmos.Context, na NodeAccount, slash cosmos.Uint) (cosmos.Uint, []types.PoolAmt, error)

SlashNodeAccountLP slashes a node account based its LP units. We take the percentage that the slash represents from the total bond of the node and slash that percentage of the LP units to each of the

func (*SlasherV102) SlashVaultToLP added in v1.102.0

func (s *SlasherV102) SlashVaultToLP(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager, subsidize bool) error

SlashVaultToLP slashes a vault the membership's LPUnits that are bonded.

type SlasherV104 added in v1.104.0

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

SlasherV104 is v88 implementation of slasher

func (*SlasherV104) BeginBlock added in v1.104.0

func (s *SlasherV104) 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 (*SlasherV104) DecSlashPoints added in v1.104.0

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

DecSlashPoints will decrease the given account's slash points

func (*SlasherV104) HandleDoubleSign added in v1.104.0

func (s *SlasherV104) 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 (*SlasherV104) IncSlashPoints added in v1.104.0

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

IncSlashPoints will increase the given account's slash points

func (*SlasherV104) LackObserving added in v1.104.0

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

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

func (*SlasherV104) LackSigning added in v1.104.0

func (s *SlasherV104) LackSigning(ctx cosmos.Context, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV104) SlashNodeAccountLP added in v1.104.0

func (s *SlasherV104) SlashNodeAccountLP(ctx cosmos.Context, na NodeAccount, slash cosmos.Uint) (cosmos.Uint, []types.PoolAmt, error)

SlashNodeAccountLP slashes a node account based its LP units. We take the percentage that the slash represents from the total bond of the node and slash that percentage of the LP units to each of the

func (*SlasherV104) SlashVaultToLP added in v1.104.0

func (s *SlasherV104) SlashVaultToLP(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager, subsidize bool) error

SlashVaultToLP slashes a vault the membership's LPUnits that are bonded.

type SlasherV105 added in v1.104.1

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

SlasherV105 is v88 implementation of slasher

func (*SlasherV105) BeginBlock added in v1.104.1

func (s *SlasherV105) 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 (*SlasherV105) DecSlashPoints added in v1.104.1

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

DecSlashPoints will decrease the given account's slash points

func (*SlasherV105) HandleDoubleSign added in v1.104.1

func (s *SlasherV105) 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 (*SlasherV105) IncSlashPoints added in v1.104.1

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

IncSlashPoints will increase the given account's slash points

func (*SlasherV105) LackObserving added in v1.104.1

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

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

func (*SlasherV105) LackSigning added in v1.104.1

func (s *SlasherV105) LackSigning(ctx cosmos.Context, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV105) SlashNodeAccountLP added in v1.104.1

func (s *SlasherV105) SlashNodeAccountLP(ctx cosmos.Context, na NodeAccount, slash cosmos.Uint) (cosmos.Uint, []types.PoolAmt, error)

SlashNodeAccountLP slashes a node account based its LP units. We take the percentage that the slash represents from the total bond of the node and slash that percentage of the LP units to each of the

func (*SlasherV105) SlashVaultToLP added in v1.104.1

func (s *SlasherV105) SlashVaultToLP(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager, subsidize bool) error

SlashVaultToLP slashes a vault the membership's LPUnits that are bonded.

type SlasherV108 added in v1.108.0

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

SlasherV108 is v88 implementation of slasher

func (*SlasherV108) BeginBlock added in v1.108.0

func (s *SlasherV108) 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 (*SlasherV108) DecSlashPoints added in v1.108.0

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

DecSlashPoints will decrease the given account's slash points

func (*SlasherV108) HandleDoubleSign added in v1.108.0

func (s *SlasherV108) 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 (*SlasherV108) IncSlashPoints added in v1.108.0

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

IncSlashPoints will increase the given account's slash points

func (*SlasherV108) LackObserving added in v1.108.0

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

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

func (*SlasherV108) LackSigning added in v1.108.0

func (s *SlasherV108) LackSigning(ctx cosmos.Context, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV108) SlashNodeAccountLP added in v1.108.0

func (s *SlasherV108) SlashNodeAccountLP(ctx cosmos.Context, na NodeAccount, slash cosmos.Uint) (cosmos.Uint, []types.PoolAmt, error)

SlashNodeAccountLP slashes a node account based its LP units. We take the percentage that the slash represents from the total bond of the node and slash that percentage of the LP units to each of the

func (*SlasherV108) SlashVaultToLP added in v1.108.0

func (s *SlasherV108) SlashVaultToLP(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager, subsidize bool) error

SlashVaultToLP slashes a vault the membership's LPUnits that are bonded.

type SlasherV92

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

SlasherV92 is v88 implementation of slasher

func (*SlasherV92) BeginBlock

func (s *SlasherV92) 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 (*SlasherV92) DecSlashPoints

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

DecSlashPoints will decrease the given account's slash points

func (*SlasherV92) HandleDoubleSign

func (s *SlasherV92) 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 (*SlasherV92) IncSlashPoints

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

IncSlashPoints will increase the given account's slash points

func (*SlasherV92) LackObserving

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

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

func (*SlasherV92) LackSigning

func (s *SlasherV92) LackSigning(ctx cosmos.Context, mgr Manager) error

LackSigning slash account that fail to sign tx

func (*SlasherV92) SlashNodeAccountLP

func (s *SlasherV92) SlashNodeAccountLP(ctx cosmos.Context, na NodeAccount, slash cosmos.Uint) (cosmos.Uint, []types.PoolAmt, error)

SlashNodeAccountLP slashes a node account based its LP units. We take the percentage that the slash represents from the total bond of the node and slash that percentage of the LP units to each of the LPs that come from the relationship tree of node < bond providers < LPs.

func (*SlasherV92) SlashVaultToLP

func (s *SlasherV92) SlashVaultToLP(ctx cosmos.Context, vaultPK common.PubKey, coins common.Coins, mgr Manager, subsidize bool) error

SlashVaultToLP slashes a vault the membership's LPUnits that are bonded.

type SolvencyHandler

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

func NewSolvencyHandler(mgr Manager) SolvencyHandler

NewSolvencyHandler create a new instance of solvency handler

func (SolvencyHandler) Run

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) error
}

SwapQueue interface define the contract of Swap Queue

func GetSwapQueue

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

GetSwapQueue retrieve a SwapQueue that is compatible with the given version

type SwapQv95

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

SwapQv95 is going to manage the swaps queue

func (*SwapQv95) EndBlock

func (vm *SwapQv95) EndBlock(ctx cosmos.Context, mgr Manager) error

EndBlock trigger the real swap to be processed

func (*SwapQv95) FetchQueue

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

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

type Swapper

type Swapper interface {
	Swap(ctx cosmos.Context,
		keeper keeper.Keeper,
		tx common.Tx,
		target common.Asset,
		destination common.Address,
		swapTarget cosmos.Uint,
		dexAgg string,
		dexAggTargetAsset string,
		dexAggLimit *cosmos.Uint,
		transactionFee cosmos.Uint,
		synthVirtualDepthMult int64,
		mgr Manager,
	) (cosmos.Uint, []*EventSwap, error)
	CalcAssetEmission(X, x, Y cosmos.Uint) cosmos.Uint
	CalcLiquidityFee(X, x, Y cosmos.Uint) cosmos.Uint
	CalcSwapSlip(Xi, xi cosmos.Uint, feebasePoint cosmos.Uint) cosmos.Uint
}

func GetSwapper

func GetSwapper(version semver.Version) (Swapper, error)

GetSwapper return an implementation of Swapper

type SwapperV107 added in v1.107.0

type SwapperV107 struct{}

func (*SwapperV107) CalcAssetEmission added in v1.107.0

func (s *SwapperV107) CalcAssetEmission(X, x, Y cosmos.Uint) cosmos.Uint

calculate the number of assets sent to the address (includes liquidity fee) nolint

func (*SwapperV107) CalcLiquidityFee added in v1.107.0

func (s *SwapperV107) CalcLiquidityFee(X, x, Y cosmos.Uint) cosmos.Uint

CalculateLiquidityFee the fee of the swap nolint

func (*SwapperV107) CalcSwapSlip added in v1.107.0

func (s *SwapperV107) CalcSwapSlip(Xi, xi cosmos.Uint, slipFeeAddedBasisPoints cosmos.Uint) cosmos.Uint

CalcSwapSlip - calculate the swap slip, expressed in basis points (10000) nolint

func (*SwapperV107) Swap added in v1.107.0

func (s *SwapperV107) Swap(ctx cosmos.Context,
	keeper keeper.Keeper,
	tx common.Tx,
	target common.Asset,
	destination common.Address,
	swapTarget cosmos.Uint,
	dexAgg string,
	dexAggTargetAsset string,
	dexAggLimit *cosmos.Uint,
	transactionFee cosmos.Uint, synthVirtualDepthMult int64, mgr Manager,
) (cosmos.Uint, []*EventSwap, error)

type SwapperV109 added in v1.109.0

type SwapperV109 struct{}

func (*SwapperV109) CalcAssetEmission added in v1.109.0

func (s *SwapperV109) CalcAssetEmission(X, x, Y cosmos.Uint) cosmos.Uint

calculate the number of assets sent to the address (includes liquidity fee) nolint

func (*SwapperV109) CalcLiquidityFee added in v1.109.0

func (s *SwapperV109) CalcLiquidityFee(X, x, Y cosmos.Uint) cosmos.Uint

CalculateLiquidityFee the fee of the swap nolint

func (*SwapperV109) CalcSwapSlip added in v1.109.0

func (s *SwapperV109) CalcSwapSlip(Xi, xi cosmos.Uint, slipFeeAddedBasisPoints cosmos.Uint) cosmos.Uint

CalcSwapSlip - calculate the swap slip, expressed in basis points (10000) nolint

func (*SwapperV109) Swap added in v1.109.0

func (s *SwapperV109) Swap(ctx cosmos.Context,
	keeper keeper.Keeper,
	tx common.Tx,
	target common.Asset,
	destination common.Address,
	swapTarget cosmos.Uint,
	dexAgg string,
	dexAggTargetAsset string,
	dexAggLimit *cosmos.Uint,
	transactionFee cosmos.Uint, synthVirtualDepthMult int64, mgr Manager,
) (cosmos.Uint, []*EventSwap, error)

type SwapperV95

type SwapperV95 struct{}

func (*SwapperV95) CalcAssetEmission

func (s *SwapperV95) CalcAssetEmission(X, x, Y cosmos.Uint) cosmos.Uint

calculate the number of assets sent to the address (includes liquidity fee) nolint

func (*SwapperV95) CalcLiquidityFee

func (s *SwapperV95) CalcLiquidityFee(X, x, Y cosmos.Uint) cosmos.Uint

CalculateLiquidityFee the fee of the swap nolint

func (*SwapperV95) CalcSwapSlip

func (s *SwapperV95) CalcSwapSlip(Xi, xi cosmos.Uint, slipFeeAddedBasisPoints cosmos.Uint) cosmos.Uint

CalcSwapSlip - calculate the swap slip, expressed in basis points (10000) nolint

func (*SwapperV95) Swap

func (s *SwapperV95) Swap(ctx cosmos.Context,
	keeper keeper.Keeper,
	tx common.Tx,
	target common.Asset,
	destination common.Address,
	swapTarget cosmos.Uint,
	dexAgg string,
	dexAggTargetAsset string,
	dexAggLimit *cosmos.Uint,
	transactionFee cosmos.Uint, synthVirtualDepthMult int64, mgr Manager,
) (cosmos.Uint, []*EventSwap, error)

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 TxOutStorageV104 added in v1.104.0

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

TxOutStorageV104 is going to manage all the outgoing tx

func (*TxOutStorageV104) CalcTxOutHeight added in v1.104.0

func (tos *TxOutStorageV104) CalcTxOutHeight(ctx cosmos.Context, version semver.Version, toi TxOutItem) (int64, error)

func (*TxOutStorageV104) ClearOutboundItems added in v1.104.0

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

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

func (*TxOutStorageV104) EndBlock added in v1.104.0

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

func (*TxOutStorageV104) GetBlockOut added in v1.104.0

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

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV104) GetOutboundItemByToAddress added in v1.104.0

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

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

func (*TxOutStorageV104) GetOutboundItems added in v1.104.0

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

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV104) TryAddTxOutItem added in v1.104.0

func (tos *TxOutStorageV104) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem, minOut cosmos.Uint) (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 (*TxOutStorageV104) UnSafeAddTxOutItem added in v1.104.0

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

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

type TxOutStorageV106 added in v1.106.0

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

TxOutStorageV106 is going to manage all the outgoing tx

func (*TxOutStorageV106) CalcTxOutHeight added in v1.106.0

func (tos *TxOutStorageV106) CalcTxOutHeight(ctx cosmos.Context, version semver.Version, toi TxOutItem) (int64, error)

func (*TxOutStorageV106) ClearOutboundItems added in v1.106.0

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

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

func (*TxOutStorageV106) EndBlock added in v1.106.0

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

func (*TxOutStorageV106) GetBlockOut added in v1.106.0

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

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV106) GetOutboundItemByToAddress added in v1.106.0

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

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

func (*TxOutStorageV106) GetOutboundItems added in v1.106.0

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

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV106) TryAddTxOutItem added in v1.106.0

func (tos *TxOutStorageV106) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem, minOut cosmos.Uint) (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 (*TxOutStorageV106) UnSafeAddTxOutItem added in v1.106.0

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

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

type TxOutStorageV108 added in v1.108.0

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

TxOutStorageV108 is going to manage all the outgoing tx

func (*TxOutStorageV108) CalcTxOutHeight added in v1.108.0

func (tos *TxOutStorageV108) CalcTxOutHeight(ctx cosmos.Context, version semver.Version, toi TxOutItem) (int64, error)

func (*TxOutStorageV108) ClearOutboundItems added in v1.108.0

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

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

func (*TxOutStorageV108) EndBlock added in v1.108.0

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

func (*TxOutStorageV108) GetBlockOut added in v1.108.0

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

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV108) GetOutboundItemByToAddress added in v1.108.0

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

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

func (*TxOutStorageV108) GetOutboundItems added in v1.108.0

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

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV108) TryAddTxOutItem added in v1.108.0

func (tos *TxOutStorageV108) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem, minOut cosmos.Uint) (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 (*TxOutStorageV108) UnSafeAddTxOutItem added in v1.108.0

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

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

type TxOutStorageV95

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

TxOutStorageV95 is going to manage all the outgoing tx

func (*TxOutStorageV95) CalcTxOutHeight added in v1.102.0

func (tos *TxOutStorageV95) CalcTxOutHeight(ctx cosmos.Context, version semver.Version, toi TxOutItem) (int64, error)

func (*TxOutStorageV95) ClearOutboundItems

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

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

func (*TxOutStorageV95) EndBlock

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

func (*TxOutStorageV95) GetBlockOut

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

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV95) GetOutboundItemByToAddress

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

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

func (*TxOutStorageV95) GetOutboundItems

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

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV95) TryAddTxOutItem

func (tos *TxOutStorageV95) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem, minOut cosmos.Uint) (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 (*TxOutStorageV95) UnSafeAddTxOutItem

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

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

type TxOutStorageV97

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

TxOutStorageV97 is going to manage all the outgoing tx

func (*TxOutStorageV97) CalcTxOutHeight added in v1.102.0

func (tos *TxOutStorageV97) CalcTxOutHeight(ctx cosmos.Context, version semver.Version, toi TxOutItem) (int64, error)

func (*TxOutStorageV97) ClearOutboundItems

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

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

func (*TxOutStorageV97) EndBlock

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

func (*TxOutStorageV97) GetBlockOut

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

GetBlockOut read the TxOut from kv store

func (*TxOutStorageV97) GetOutboundItemByToAddress

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

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

func (*TxOutStorageV97) GetOutboundItems

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

GetOutboundItems read all the outbound item from kv store

func (*TxOutStorageV97) TryAddTxOutItem

func (tos *TxOutStorageV97) TryAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem, minOut cosmos.Uint) (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 (*TxOutStorageV97) UnSafeAddTxOutItem

func (tos *TxOutStorageV97) 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, minOut cosmos.Uint) (bool, error)
	UnSafeAddTxOutItem(ctx cosmos.Context, mgr Manager, toi TxOutItem) error
	GetOutboundItemByToAddress(cosmos.Context, common.Address) []TxOutItem
	CalcTxOutHeight(cosmos.Context, semver.Version, TxOutItem) (int64, error)
}

TxOutStore define the method required for TxOutStore

func GetTxOutStore

func GetTxOutStore(version semver.Version, keeper keeper.Keeper, 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) []abci.ValidatorUpdate
	RequestYggReturn(ctx cosmos.Context, node NodeAccount, mgr Manager) 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(version semver.Version, keeper keeper.Keeper, networkMgr 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

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

WithdrawLiquidityHandler to process withdraw requests

func NewWithdrawLiquidityHandler

func NewWithdrawLiquidityHandler(mgr Manager) WithdrawLiquidityHandler

NewWithdrawLiquidityHandler create a new instance of WithdrawLiquidityHandler to process withdraw request

func (WithdrawLiquidityHandler) Run

Run is the main entry point of withdraw

type WithdrawLiquidityMemo

type WithdrawLiquidityMemo = mem.WithdrawLiquidityMemo

type YggManager

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

YggManager define method to fund yggdrasil

func GetYggManager

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

GetYggManager return an implementation of YggManager

type YggMgrV79

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

YggMgrV79 is an implementation of YggManager

func (YggMgrV79) Fund

func (ymgr YggMgrV79) Fund(ctx cosmos.Context, mgr Manager) 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