Documentation ¶
Overview ¶
Copyright 2022 Serv Foundation This file is part of the Serv Network packages.
Serv is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The Serv packages are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with the Serv packages. If not, see https://github.com/twobitedd/serv/blob/main/LICENSE
Index ¶
- func BroadcastTxBytes(app *app.Serv, txEncoder sdk.TxEncoder, tx sdk.Tx) (abci.ResponseDeliverTx, error)
- func CheckEthTx(appServ *app.Serv, priv cryptotypes.PrivKey, msgs ...sdk.Msg) (abci.ResponseCheckTx, error)
- func CheckEthTxResponse(r abci.ResponseDeliverTx, cdc codec.Codec) (*evm.MsgEthereumTxResponse, error)
- func CheckTx(ctx sdk.Context, appServ *app.Serv, priv cryptotypes.PrivKey, ...) (abci.ResponseCheckTx, error)
- func Commit(ctx sdk.Context, app *app.Serv, t time.Duration, vs *tmtypes.ValidatorSet) (sdk.Context, error)
- func Delegate(ctx sdk.Context, appServ *app.Serv, priv *ethsecp256k1.PrivKey, ...) (abci.ResponseDeliverTx, error)
- func DeliverEthTx(appServ *app.Serv, priv cryptotypes.PrivKey, msgs ...sdk.Msg) (abci.ResponseDeliverTx, error)
- func DeliverTx(ctx sdk.Context, appServ *app.Serv, priv cryptotypes.PrivKey, ...) (abci.ResponseDeliverTx, error)
- func DeployContract(ctx sdk.Context, servApp *app.Serv, priv cryptotypes.PrivKey, ...) (common.Address, error)
- func DeployContractWithFactory(ctx sdk.Context, servApp *app.Serv, priv cryptotypes.PrivKey, ...) (common.Address, abci.ResponseDeliverTx, error)
- func FundAccount(ctx sdk.Context, bankKeeper bankkeeper.Keeper, addr sdk.AccAddress, ...) error
- func FundAccountWithBaseDenom(ctx sdk.Context, bankKeeper bankkeeper.Keeper, addr sdk.AccAddress, ...) error
- func FundModuleAccount(ctx sdk.Context, bankKeeper bankkeeper.Keeper, recipientMod string, ...) error
- func GetTotalDelegationRewards(ctx sdk.Context, distributionKeeper distributionkeeper.Keeper, ...) (sdk.DecCoins, error)
- func NewHeader(height int64, blockTime time.Time, chainID string, proposer sdk.ConsAddress, ...) tmproto.Header
- func NewStateDB(ctx sdk.Context, evmKeeper evm.EVMKeeper) *statedb.StateDB
- func NextFn(ctx sdk.Context, _ sdk.Tx, _ bool) (sdk.Context, error)
- func PrepareAccountsForDelegationRewards(t *testing.T, ctx sdk.Context, app *app.Serv, addr sdk.AccAddress, ...) (sdk.Context, error)
- func SubmitProposal(ctx sdk.Context, appServ *app.Serv, pk *ethsecp256k1.PrivKey, ...) (id uint64, err error)
- func ValidateAnteForMsgs(ctx sdk.Context, dec sdk.AnteDecorator, msgs ...sdk.Msg) error
- func Vote(ctx sdk.Context, appServ *app.Serv, priv *ethsecp256k1.PrivKey, ...) (abci.ResponseDeliverTx, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BroadcastTxBytes ¶
func BroadcastTxBytes(app *app.Serv, txEncoder sdk.TxEncoder, tx sdk.Tx) (abci.ResponseDeliverTx, error)
BroadcastTxBytes encodes a transaction and calls DeliverTx on the app.
func CheckEthTx ¶
func CheckEthTx( appServ *app.Serv, priv cryptotypes.PrivKey, msgs ...sdk.Msg, ) (abci.ResponseCheckTx, error)
CheckEthTx checks a Ethereum tx for a given set of msgs
func CheckEthTxResponse ¶
func CheckEthTxResponse(r abci.ResponseDeliverTx, cdc codec.Codec) (*evm.MsgEthereumTxResponse, error)
CheckEthTxResponse checks that the transaction was executed successfully
func CheckTx ¶
func CheckTx( ctx sdk.Context, appServ *app.Serv, priv cryptotypes.PrivKey, gasPrice *sdkmath.Int, msgs ...sdk.Msg, ) (abci.ResponseCheckTx, error)
CheckTx checks a cosmos tx for a given set of msgs
func Commit ¶
func Commit(ctx sdk.Context, app *app.Serv, t time.Duration, vs *tmtypes.ValidatorSet) (sdk.Context, error)
Commit commits a block at a given time. Reminder: At the end of each Tendermint Consensus round the following methods are run
- BeginBlock
- DeliverTx
- EndBlock
- Commit
func Delegate ¶
func Delegate( ctx sdk.Context, appServ *app.Serv, priv *ethsecp256k1.PrivKey, delegateAmount sdk.Coin, validator stakingtypes.Validator, ) (abci.ResponseDeliverTx, error)
Delegate delivers a delegate tx
func DeliverEthTx ¶
func DeliverEthTx( appServ *app.Serv, priv cryptotypes.PrivKey, msgs ...sdk.Msg, ) (abci.ResponseDeliverTx, error)
DeliverEthTx generates and broadcasts a Cosmos Tx populated with MsgEthereumTx messages. If a private key is provided, it will attempt to sign all messages with the given private key, otherwise, it will assume the messages have already been signed.
func DeliverTx ¶
func DeliverTx( ctx sdk.Context, appServ *app.Serv, priv cryptotypes.PrivKey, gasPrice *sdkmath.Int, msgs ...sdk.Msg, ) (abci.ResponseDeliverTx, error)
DeliverTx delivers a cosmos tx for a given set of msgs
func DeployContract ¶
func DeployContract( ctx sdk.Context, servApp *app.Serv, priv cryptotypes.PrivKey, queryClientEvm evm.QueryClient, contract evm.CompiledContract, constructorArgs ...interface{}, ) (common.Address, error)
DeployContract deploys a contract with the provided private key, compiled contract data and constructor arguments
func DeployContractWithFactory ¶
func DeployContractWithFactory( ctx sdk.Context, servApp *app.Serv, priv cryptotypes.PrivKey, factoryAddress common.Address, ) (common.Address, abci.ResponseDeliverTx, error)
DeployContractWithFactory deploys a contract using a contract factory with the provided factoryAddress
func FundAccount ¶
func FundAccount(ctx sdk.Context, bankKeeper bankkeeper.Keeper, addr sdk.AccAddress, amounts sdk.Coins) error
FundAccount is a utility function that funds an account by minting and sending the coins to the address.
func FundAccountWithBaseDenom ¶
func FundAccountWithBaseDenom(ctx sdk.Context, bankKeeper bankkeeper.Keeper, addr sdk.AccAddress, amount int64) error
FundAccountWithBaseDenom is a utility function that uses the FundAccount function to fund an account with the default Serv denomination.
func FundModuleAccount ¶
func FundModuleAccount(ctx sdk.Context, bankKeeper bankkeeper.Keeper, recipientMod string, amounts sdk.Coins) error
FundModuleAccount is a utility function that funds a module account by minting and sending the coins to the address.
func GetTotalDelegationRewards ¶
func GetTotalDelegationRewards(ctx sdk.Context, distributionKeeper distributionkeeper.Keeper, addr sdk.AccAddress) (sdk.DecCoins, error)
GetTotalDelegationRewards returns the total delegation rewards that are currently outstanding for the given address.
func NewHeader ¶
func NewHeader( height int64, blockTime time.Time, chainID string, proposer sdk.ConsAddress, appHash, validatorHash []byte, ) tmproto.Header
NewHeader creates a new Tendermint header for testing purposes.
func NewStateDB ¶
NewStateDB returns a new StateDB for testing purposes.
func NextFn ¶
NextFn is a no-op function that returns the context and no error in order to mock the next function in the AnteHandler chain.
It can be used in unit tests when calling a decorator's AnteHandle method, e.g. `dec.AnteHandle(ctx, tx, false, NextFn)`
func PrepareAccountsForDelegationRewards ¶
func PrepareAccountsForDelegationRewards(t *testing.T, ctx sdk.Context, app *app.Serv, addr sdk.AccAddress, balance sdkmath.Int, rewards ...sdkmath.Int) (sdk.Context, error)
PrepareAccountsForDelegationRewards prepares the test suite for testing to withdraw delegation rewards.
Balance is the amount of tokens that will be left in the account after the setup is done. For each defined reward, a validator is created and tokens are allocated to it using the distribution keeper, such that the given amount of tokens is outstanding as a staking reward for the account.
The setup is done in the following way:
- Fund the account with the given address with the given balance.
- If the given balance is zero, the account will be created with zero balance.
For every reward defined in the rewards argument, the following steps are executed:
- Set up a validator with zero commission and delegate to it -> the account delegation will be 50% of the total delegation.
- Allocate rewards to the validator.
The function returns the updated context along with a potential error.
func SubmitProposal ¶
func SubmitProposal( ctx sdk.Context, appServ *app.Serv, pk *ethsecp256k1.PrivKey, content govv1beta1.Content, eventNum int, ) (id uint64, err error)
SubmitProposal delivers a submit proposal tx for a given gov content. Depending on the content type, the eventNum needs to specify submit_proposal event.
func ValidateAnteForMsgs ¶
ValidateAnteForMsgs is a helper function, which takes in an AnteDecorator as well as 1 or more messages, builds a transaction containing these messages, and returns any error that the AnteHandler might return.
func Vote ¶
func Vote( ctx sdk.Context, appServ *app.Serv, priv *ethsecp256k1.PrivKey, proposalID uint64, voteOption govv1beta1.VoteOption, ) (abci.ResponseDeliverTx, error)
Vote delivers a vote tx with the VoteOption "yes"
Types ¶
This section is empty.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package network implements and exposes a fully operational in-process Tendermint test network that consists of at least one or potentially many validators.
|
Package network implements and exposes a fully operational in-process Tendermint test network that consists of at least one or potentially many validators. |