wasmbinding

package
v11.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

README

CosmWasm support

This package contains CosmWasm integration points.

This package provides first class support for:

  • Queries
    • Denoms
    • Pools
    • Prices
  • Messages / Execution
    • Minting / controlling of new native tokens
    • Swap

Command line interface (CLI)

  • Commands
  osmosisd tx wasm -h
  • Query
  osmosisd query wasm -h

Tests

This contains a few high level tests that x/wasm is properly integrated.

Since the code tested is not in this repo, and we are just testing the application integration (app.go), I figured this is the most suitable location for it.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChangeAdmin

func ChangeAdmin(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, changeAdmin *bindings.ChangeAdmin) error

ChangeAdmin is used with changeAdmin to validate changeAdmin messages and to dispatch.

func ConvertSdkCoinToWasmCoin

func ConvertSdkCoinToWasmCoin(coin sdk.Coin) wasmvmtypes.Coin

ConvertSdkCoinToWasmCoin converts a sdk type coin to a wasm vm type coin

func ConvertSdkCoinsToWasmCoins

func ConvertSdkCoinsToWasmCoins(coins []sdk.Coin) wasmvmtypes.Coins

ConvertSdkCoinsToWasmCoins converts sdk type coins to wasm vm type coins

func CustomMessageDecorator

func CustomMessageDecorator(gammKeeper *gammkeeper.Keeper, bank *bankkeeper.BaseKeeper, tokenFactory *tokenfactorykeeper.Keeper) func(wasmkeeper.Messenger) wasmkeeper.Messenger

CustomMessageDecorator returns decorator for custom CosmWasm bindings messages

func CustomQuerier

func CustomQuerier(qp *QueryPlugin) func(ctx sdk.Context, request json.RawMessage) ([]byte, error)

CustomQuerier dispatches custom CosmWasm bindings queries.

func GetFullDenom

func GetFullDenom(contract string, subDenom string) (string, error)

GetFullDenom is a function, not method, so the message_plugin can use it

func PerformBurn

func PerformBurn(f *tokenfactorykeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, burn *bindings.BurnTokens) error

PerformBurn performs token burning after validating tokenBurn message.

func PerformCreateDenom

func PerformCreateDenom(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, createDenom *bindings.CreateDenom) error

PerformCreateDenom is used with createDenom to create a token denom; validates the msgCreateDenom.

func PerformMint

func PerformMint(f *tokenfactorykeeper.Keeper, b *bankkeeper.BaseKeeper, ctx sdk.Context, contractAddr sdk.AccAddress, mint *bindings.MintTokens) error

PerformMint used with mintTokens to validate the mint message and mint through token factory.

func PerformSwap

func PerformSwap(keeper *gammkeeper.Keeper, ctx sdk.Context, contractAddr sdk.AccAddress, swap *bindings.SwapMsg) (*bindings.SwapAmount, error)

PerformSwap can be used both for the real swap, and the EstimateSwap query

func RegisterCustomPlugins

func RegisterCustomPlugins(
	gammKeeper *gammkeeper.Keeper,
	bank *bankkeeper.BaseKeeper,
	twap *twap.Keeper,
	tokenFactory *tokenfactorykeeper.Keeper,
) []wasmkeeper.Option

Types

type CustomMessenger

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

func (*CustomMessenger) DispatchMsg

func (m *CustomMessenger) DispatchMsg(ctx sdk.Context, contractAddr sdk.AccAddress, contractIBCPortID string, msg wasmvmtypes.CosmosMsg) ([]sdk.Event, [][]byte, error)

DispatchMsg executes on the contractMsg.

type QueryPlugin

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

func NewQueryPlugin

func NewQueryPlugin(gk *gammkeeper.Keeper, tk *twapkeeper.Keeper, tfk *tokenfactorykeeper.Keeper) *QueryPlugin

NewQueryPlugin returns a reference to a new QueryPlugin.

func (QueryPlugin) ArithmeticTwap

func (qp QueryPlugin) ArithmeticTwap(ctx sdk.Context, arithmeticTwap *bindings.ArithmeticTwap) (*sdk.Dec, error)

func (QueryPlugin) ArithmeticTwapToNow

func (qp QueryPlugin) ArithmeticTwapToNow(ctx sdk.Context, arithmeticTwap *bindings.ArithmeticTwapToNow) (*sdk.Dec, error)

func (QueryPlugin) EstimateSwap

func (qp QueryPlugin) EstimateSwap(ctx sdk.Context, estimateSwap *bindings.EstimateSwap) (*bindings.SwapAmount, error)

EstimateSwap validates each denom (in / out) and performs a swap.

func (QueryPlugin) GetDenomAdmin

func (qp QueryPlugin) GetDenomAdmin(ctx sdk.Context, denom string) (*bindings.DenomAdminResponse, error)

GetDenomAdmin is a query to get denom admin.

func (QueryPlugin) GetPoolState

func (qp QueryPlugin) GetPoolState(ctx sdk.Context, poolID uint64) (*bindings.PoolAssets, error)

GetPoolState is a query to get pool liquidity and amount of each denoms' pool shares.

func (QueryPlugin) GetSpotPrice

func (qp QueryPlugin) GetSpotPrice(ctx sdk.Context, spotPrice *bindings.SpotPrice) (*sdk.Dec, error)

GetSpotPrice is a query to get spot price of denoms.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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